- 打卡等级:魔龙套勇士
- 打卡总天数:182
- 打卡月天数:14
- 打卡总奖励:19156
- 最近打卡:2025-10-14 00:17:14
管理员
本站站长
- 积分
- 9039
|
在 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 引擎中动态调整回收逻辑的核心方法。
|
|