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

    QQ登录

    只需一步,快速开始

    查看: 28|回复: 0

    聊聊规则ID可以动态修改吗?

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

    7393

    主题

    230

    回帖

    9039

    积分

    管理员

    本站站长

    积分
    9039
    online_admin 发表于 2025-8-29 18:44:47 | 显示全部楼层 |阅读模式
    在 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 作为 “唯一标识” 的稳定性,又通过 “覆盖定义” 支持灵活调整回收逻辑,适配日常、活动等不同场景的需求。

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

    本版积分规则

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

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