设为首页收藏本站
  • 官方微信
    lmkj_wx 微信公众号 添加方式:
    1:扫描左侧二维码
  • 手机访问
    lmkj_sj
  •  找回密码
     立即注册

    QQ登录

    只需一步,快速开始

    查看: 34|回复: 0

    如何通过覆盖的方式修改规则ID对应的规则内容

    [复制链接]
    avatar
    • 打卡等级:魔龙套勇士
    • 打卡总天数:182
    • 打卡月天数:14
    • 打卡总奖励:19156
    • 最近打卡:2025-10-14 00:17:14

    7393

    主题

    230

    回帖

    9039

    积分

    管理员

    本站站长

    积分
    9039
    online_admin 发表于 2025-8-29 18:46:09 | 显示全部楼层 |阅读模式
    在 GEE 引擎中,通过覆盖方式修改规则 ID 对应的内容的核心逻辑是:使用相同的规则 ID 重新执行ITEMRECYCLESET命令,新定义的参数(物品、条件、奖励等)会自动替换该 ID 原有的规则内容。这种方式无需删除旧规则,操作简单且实时生效,适用于动态调整回收逻辑(如活动期间临时提升奖励)。
    一、覆盖修改的基本原理
    GEE 引擎对ITEMRECYCLESET命令的处理逻辑是:同一规则 ID 的最新定义会覆盖所有历史定义。当引擎执行ITEMRECYCLESET 目标ID ...时,会将该 ID 对应的规则参数(物品名称、强化等级、奖励等)更新为最新定义的内容,后续调用该 ID 时将执行新规则。

    核心公式:

    plaintext
    // 初始定义规则
    ITEMRECYCLESET 目标ID 旧物品 旧强化 旧品质 旧奖励类型 旧奖励值 ...

    // 覆盖修改(相同ID,新参数)
    ITEMRECYCLESET 目标ID 新物品 新强化 新品质 新奖励类型 新奖励值 ...
    二、具体操作步骤与示例
    步骤 1:定义初始规则(基础规则)
    首先在脚本中定义一个初始规则(如日常回收规则),例如:

    plaintext
    // 初始规则:ID=50,回收普通武器,奖励基础金币
    ITEMRECYCLESET 50 木剑|青铜剑 0 0 1 1000 2 5000  
    // 含义:回收任意木剑/青铜剑,奖励1000金币+5000经验
    步骤 2:覆盖修改规则(相同 ID,新参数)
    当需要调整规则时(如活动期间提升奖励),使用相同的 ID=50重新执行ITEMRECYCLESET,填写新参数:

    plaintext
    // 覆盖修改:同一ID=50,提升奖励
    ITEMRECYCLESET 50 木剑|青铜剑 0 0 1 2000 2 10000  
    // 含义:回收相同物品,奖励提升为2000金币+10000经验(覆盖旧规则)
    步骤 3:调用验证(规则已更新)
    调用ITEMRECYCLEEX时,引擎会自动执行最新覆盖的规则:

    plaintext
    #ACT
      // 调用ID=50,执行的是覆盖后的新规则
      ITEMRECYCLEEX <$USERNAME> 规则ID=50  
      SENDMSG 6 回收成功!获得2000金币和10000经验(活动双倍)!
    三、典型应用场景示例
    场景 1:活动期间临时提升奖励
    plaintext
    // 文件名:QuestDiary/回收商人.txt
    #TITLE 回收商人(活动期间)
    #SAY
      日常回收 → 1\n
      活动双倍回收(限时) → 2

    // 初始加载时定义日常规则(ID=10)
    #ACT
      ITEMRECYCLESET 10 裁决之杖 5 4 1 100000 3 102  // 日常:10万金币+1个金刚石

    // 玩家选择“活动双倍回收”
    #CASE 2
      #ACT
        // 覆盖ID=10,奖励翻倍
        ITEMRECYCLESET 10 裁决之杖 5 4 1 200000 3 102,2  // 活动:20万金币+2个金刚石
        ITEMRECYCLEEX <$USERNAME> 规则ID=10  
        SENDMSG 6 活动期间奖励翻倍!

    // 玩家选择“日常回收”
    #CASE 1
      #ACT
        // 覆盖ID=10,恢复日常奖励
        ITEMRECYCLESET 10 裁决之杖 5 4 1 100000 3 102  
        ITEMRECYCLEEX <$USERNAME> 规则ID=10  
        SENDMSG 6 日常回收完成!
    场景 2:根据玩家状态动态调整规则
    plaintext
    #TITLE 会员专属回收
    #SAY
      点击回收装备 → 1

    #ACT
      // 定义基础规则(ID=20)
      ITEMRECYCLESET 20 沃玛号角 0 2 1 50000  

      // 若玩家是会员,覆盖规则提升奖励
      #IF
        CHECKMEMBER 1  // 检查是否为会员
      #ACT
        ITEMRECYCLESET 20 沃玛号角 0 2 1 100000  // 会员奖励翻倍
      #ELSE
        // 非会员保持基础规则(无需操作,已初始定义)

      // 调用ID=20,自动执行会员/非会员对应的规则
      ITEMRECYCLEEX <$USERNAME> 规则ID=20  
    四、覆盖修改的注意事项
    ID 必须完全一致:
    覆盖时的规则 ID 必须与初始定义的 ID 完全相同(数字一致),否则会被视为新规则(而非覆盖)。
    例如:初始 ID=50,覆盖时写成 ID=51,会新增一条 ID=51 的规则,而非修改 ID=50。
    参数完整性:
    覆盖时需填写完整的规则参数(与初始定义的参数数量一致),否则可能导致规则失效。
    例如:初始规则包含 2 种奖励(金币 + 经验),覆盖时若只填 1 种奖励,会导致第二种奖励丢失。
    实时生效:
    覆盖操作执行后,立即生效(无需重启引擎),后续所有调用该 ID 的操作都会执行新规则。
    日志验证:
    覆盖后可通过 Log/Recycle.log 确认规则是否更新,日志会记录新规则的参数:
    示例日志:2023-10-01 21:00:00 规则ID=50 已更新:物品[木剑|青铜剑] 奖励[2000金币,10000经验]。
    五、常见问题与解决方案
    问题现象        原因        解决方案
    覆盖后规则未更新        覆盖时 ID 与初始 ID 不一致        核对 ID 是否完全相同(如 50 vs 050,注意数字是否一致)
    奖励参数丢失        覆盖时参数数量少于初始定义        确保覆盖规则的参数数量与初始规则一致(如初始有 2 种奖励,覆盖时也需填 2 种)
    调用后执行旧规则        覆盖操作未被执行(如条件未满足)        在覆盖前添加 SENDMSG 提示,确认脚本执行到覆盖步骤
    总结
    通过覆盖方式修改规则 ID 的内容,本质是利用 GEE 引擎 “同 ID 最新定义优先” 的特性,用相同 ID 重新执行ITEMRECYCLESET命令即可。这种方式无需删除旧规则,操作简单且实时生效,特别适合日常 / 活动规则切换、会员 / 非会员差异化回收等场景,是 GEE 引擎中动态调整回收逻辑的核心方法。

    您需要登录后才可以回帖 登录 | 立即注册 qq_login

    本版积分规则

    QQArchiver 手机版 小黑屋 39传奇素材网 ( 蜀ICP备2022016510号-3 )

    快速回复 快速发帖 返回顶部 返回列表