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

    QQ登录

    只需一步,快速开始

    查看: 3|回复: 0

    如何确保预设规则的参数设置正确

    [复制链接]
    avatar
    • 打卡等级:魔龙套勇士
    • 打卡总天数:112
    • 打卡月天数:5
    • 打卡总奖励:13503
    • 最近打卡:2025-08-05 00:19:04

    6371

    主题

    120

    回帖

    7907

    积分

    管理员

    本站站长

    积分
    7907
    online_admin 发表于 昨天 18:34 | 显示全部楼层 |阅读模式
    在 GEE 引擎中确保物品回收预设规则(ITEMRECYCLESET)的参数设置正确,需要从参数合法性校验、配置文件匹配、测试验证三个维度入手,结合引擎特性和工具进行多环节检查。以下是具体方法:
    一、参数合法性基础校验(逐个参数检查)
    1. 规则 ID:确保唯一性与范围有效
    范围校验:规则 ID 必须在 1~9999 之间(超出范围会被引擎忽略)。
    唯一性校验:通过 “全局搜索” 检查所有脚本(如 QuestDiary 目录下的 .txt 文件),确保同一 ID 未被重复定义(重复会覆盖旧规则)。
    工具:使用 Notepad++ 的 “在文件中查找” 功能,搜索 ITEMRECYCLESET 目标ID,确认仅存在一次定义。
    2. 物品名称:与Item.txt完全匹配
    物品名称是最容易出错的参数,需严格匹配 Data/Item.txt 中的定义:

    精确匹配检查:
    打开 Item.txt,查找目标物品(如 “裁决之杖”),确认名称大小写、空格、特殊符号完全一致(如 裁决之杖(+7) 不能写成 裁决之杖+7)。
    若包含特殊符号(如 [、]、(),需在脚本中使用转义符 \(如 ITEMRECYCLESET 10 屠龙\[+9\] ...)。
    多物品分隔符检查:多个物品用 | 分隔(如 屠龙|裁决之杖),不能使用逗号或空格。
    3. 最小强化等级:与物品强化属性匹配
    取值范围校验:必须为非负整数(0~引擎配置的强化上限,通常为 9 或 15),负数会被引擎自动修正为 0。
    与物品属性匹配:
    强化等级对应 Item.txt 中的 UpgradeCount 字段(如 UpgradeCount=5 表示该物品可强化至 + 5)。若规则中 “最小强化等级 = 7”,但物品最大强化仅为 5,则该规则永远无法触发,需降低等级或修改物品配置。
    4. 品质要求:与Item.txt的Quality字段对应
    取值范围校验:必须为 0~5(0 = 不限制,1 = 普通,2 = 优秀,3 = 精良,4 = 史诗,5 = 神器),超出范围会被修正为 0。
    与物品品质匹配:
    打开 Item.txt 查看目标物品的 Quality 字段(如 Quality=4 表示史诗品质)。若规则要求 “品质≥5”,但物品最高品质为 4,则规则无效,需降低品质要求。
    5. 奖励类型与奖励值:逻辑对应且有效
    奖励类型(1~5)与奖励值必须一一对应,否则奖励无效:

    奖励类型        奖励值合法性检查要点
    1(金币)        数值为非负整数(支持 0,最大不超过引擎金币上限,通常为 21 亿)
    2(经验)        支持正负整数(正数增加经验,负数扣除),数值范围需在引擎经验配置内
    3(材料)        奖励值必须是 Item.txt 中存在的材料 ID(如 102 对应 “金刚石”),且该物品类型为 “材料”(非装备 / 消耗品)
    4(元宝)        非负整数,需确保引擎已开启元宝系统(Envir/Config.ini 中 EnableGold=1)
    5(声望)        非负整数,需确保引擎已配置声望系统(Envir/Settings.txt 中 EnableReputation=1)

    检查方法:
    奖励类型 = 3 时,打开 Item.txt,确认奖励值对应的 ID 存在(如奖励值 = 102,检查 Item.txt 第 102 行是否为有效材料)。
    奖励类型 = 4/5 时,通过引擎配置文件确认对应系统已启用。
    二、配置文件关联校验(确保规则与引擎配置兼容)
    1. 关联Item.txt全量检查
    ITEMRECYCLESET 的核心依赖 Item.txt,需确保:

    目标物品在 Item.txt 中存在(未被注释或删除)。
    物品的 CanRecycle 字段为 1(部分引擎支持该字段控制是否允许回收,默认为 1,若为 0 则无法回收)。
    材料类物品(奖励类型 = 3 时)的 IsMaterial 字段为 1(确保被识别为材料)。
    2. 引擎参数兼容性检查
    部分引擎配置会影响回收规则生效,需在 Envir/Config.ini 中确认:

    EnableItemRecycle=1(开启物品回收功能,默认为 1,若为 0 则所有回收命令无效)。
    MaxRecycleLevel=9(强化等级上限,需≥规则中的 “最小强化等级”)。
    MaxRecycleQuality=5(品质上限,需≥规则中的 “品质要求”)。
    三、测试验证(通过实际调用确认规则生效)
    1. 编写测试脚本
    创建一个简单的 NPC 测试脚本(如 QuestDiary/回收测试.txt),调用目标规则:

    plaintext
    #IF
      TRUE  // 无条件执行
    #ACT
      ITEMRECYCLEEX <$USERNAME> 规则ID=目标ID  // 调用预设规则
      SENDMSG 6 回收测试:规则ID=目标ID 执行完成  // 发送提示信息
    2. 模拟玩家操作验证
    准备测试物品:在游戏中获取符合规则条件的物品(如规则要求 “强化≥5、品质 4 的裁决之杖”,则准备对应的物品放入背包)。
    触发回收:与测试 NPC 对话,执行回收命令。
    检查结果:
    物品是否从背包中消失(符合条件则被回收)。
    奖励是否正确发放(金币 / 经验 / 材料是否到账)。
    3. 查看引擎日志定位问题
    若回收失败,通过引擎日志排查具体原因:

    回收日志:Log/Recycle.log 记录所有回收操作,包含 “玩家名、物品名称、是否符合条件、奖励发放结果”。
    示例日志:2023-10-01 12:00:00 玩家[测试] 回收[裁决之杖] 失败:强化等级不足(当前3 < 要求5)
    错误日志:Log/Error.log 记录参数错误(如 “物品名称不存在”“奖励类型无效”)。
    四、常见错误案例与解决方案
    问题现象        可能原因        解决方法
    规则调用后无任何反应        规则 ID 不存在或被覆盖        重新检查规则 ID 是否正确定义,确保唯一
    物品未被回收        物品名称与Item.txt不匹配        严格对照Item.txt修正物品名称,处理特殊符号
    符合条件的物品未回收        强化等级 / 品质要求高于物品实际属性        降低规则中的 “最小强化等级” 或 “品质要求”
    奖励未发放        奖励类型与奖励值不匹配(如类型 3 对应无效 ID)        检查Item.txt中的材料 ID,修正奖励值
    多物品仅部分被回收        未被回收的物品不符合条件(如品质不足)        单独测试未回收物品,调整规则或物品属性
    五、总结:预设规则检查清单
    为确保参数正确,建议按以下清单逐项检查:

    规则 ID 在 1~9999 范围内且唯一。
    物品名称与Item.txt完全一致(含特殊符号和大小写)。
    最小强化等级≤物品最大可强化等级(Item.txt的UpgradeCount)。
    品质要求≤物品实际品质(Item.txt的Quality)。
    奖励类型与奖励值逻辑对应(如类型 3 对应有效材料 ID)。
    引擎配置中开启物品回收功能(EnableItemRecycle=1)。
    通过测试脚本验证回收和奖励是否正常,并查看日志确认无错误。

    通过以上步骤,可系统性验证预设规则的参数正确性,避免因配置失误导致回收功能失效。

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

    本版积分规则

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

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