- 打卡等级:魔龙套勇士
- 打卡总天数:182
- 打卡月天数:14
- 打卡总奖励:19156
- 最近打卡:2025-10-14 00:17:14
管理员
本站站长
- 积分
- 9039
|
在 GEE 引擎中,规则 ID 的数值本身不能动态修改(即不能在脚本运行中直接改变一个已定义规则的 ID 编号),但规则 ID 对应的回收规则内容(如物品、条件、奖励)可以动态修改(通过覆盖定义实现)。具体特性如下:
一、规则 ID 的数值不可动态修改
规则 ID 是回收规则的 “固定标识”,一旦通过ITEMRECYCLESET定义(如ID=10),其数值(10)无法在脚本运行中被 “重命名” 为其他数值(如改为 11)。若需要使用新 ID,必须重新定义一条新规则:
plaintext
#ACT
// 原规则ID=10
ITEMRECYCLESET 10 木剑 0 0 1 1000
// 无法将ID=10直接改为ID=11,只能新增ID=11的规则
ITEMRECYCLESET 11 木剑 0 0 1 2000 // 新ID=11的规则
二、规则 ID 对应的内容可以动态修改(覆盖定义)
虽然 ID 数值不可改,但同一 ID 对应的回收规则内容(物品、强化等级、奖励等)可以动态修改—— 通过重新执行ITEMRECYCLESET命令,用相同 ID 定义新的规则参数,新规则会自动覆盖旧规则。
这一特性常用于 “动态调整回收奖励”(如活动期间临时提升奖励):
示例:活动期间动态修改规则内容
plaintext
#TITLE 动态回收NPC
#SAY
日常回收 → 1\n
活动双倍回收 → 2
// 初始定义:日常规则(ID=20)
#ACT
ITEMRECYCLESET 20 裁决之杖 5 4 1 100000 // 日常奖励10万金币
// 玩家选择“活动双倍回收”
#CASE 2
#ACT
// 用同一ID=20覆盖旧规则,奖励翻倍
ITEMRECYCLESET 20 裁决之杖 5 4 1 200000
ITEMRECYCLEEX <$USERNAME> 规则ID=20 // 调用时执行新规则(20万金币)
SENDMSG 6 活动期间奖励翻倍!
// 玩家选择“日常回收”
#CASE 1
#ACT
// 恢复原规则(同一ID=20覆盖)
ITEMRECYCLESET 20 裁决之杖 5 4 1 100000
ITEMRECYCLEEX <$USERNAME> 规则ID=20 // 执行原规则(10万金币)
三、通过变量动态生成规则 ID(间接实现 “动态 ID”)
若需要根据场景动态使用不同 ID(而非修改已有 ID),可通过变量动态生成 ID 数值(需确保数值在 1~9999 范围内)。
示例:根据玩家等级动态选择 ID
plaintext
#ACT
// 根据玩家等级设置不同ID(100=低等级,200=高等级)
MOV N1 100 // 默认低等级ID=100
#IF
CHECKLEVEL >= 50
#ACT
MOV N1 200 // 50级以上用ID=200
// 动态定义对应ID的规则
ITEMRECYCLESET <$STR(N1)> 屠龙 5 4 1 <$STR(N1)*1000> // 奖励随ID变化
// 动态调用生成的ID
ITEMRECYCLEEX <$USERNAME> 规则ID=<$STR(N1)>
四、注意事项
覆盖规则的时效性:
新规则覆盖旧规则后,所有后续调用该 ID 的操作都会执行新规则,直至再次被覆盖或引擎重启。
全局唯一性:
动态生成 ID 时,需确保变量生成的 ID 在全局范围内唯一(避免与其他脚本的 ID 重复),否则会导致规则被意外覆盖。
日志追踪:
动态修改规则后,Log/Recycle.log 会记录新规则的执行情况,可通过日志确认 ID 对应的最新规则是否生效。
总结
规则 ID 的数值不可动态修改(不能重命名),但可通过变量动态生成新 ID。
规则 ID 对应的回收规则内容可以动态修改(通过相同 ID 重新定义覆盖)。
这种机制既保证了 ID 作为 “唯一标识” 的稳定性,又通过 “覆盖定义” 支持灵活调整回收逻辑,适配日常、活动等不同场景的需求。
|
|