一、脚本问题诊断:CheckItemAddvalue参数误区
你编写的脚本核心问题在于参数使用错误。CheckItemAddvalue命令用于检测装备的升级点数(如攻击+1、道术+1),而非持久值。检测装备持久值,应使用 CheckItemDura 命令。同时,UPGRADEITEMEX命令用于升级装备属性点,增加持久需使用 RESTOREDURATIONITEM 命令。
二、完整脚本示例:限制10点持久的提升NPC
以下脚本实现功能:玩家与NPC对话,消耗1000元宝提升身上1号装备位(武器)1点持久,最高可提升10点。每次提升后,持久上限增加1点,当前持久回满。
[@main]
#if
CHECKGAMEGOLD > 999
#act
#SAY
你好,我可以为你的武器提升耐久,使其承载更强的力量。\ \
每次提升需1000元宝,最多可提升10点持久上限。\ \
你当前的武器持久为:<$WEAPON> / <$WEAPONMAXDUR>\ \
<提升1点持久/@提升持久>\
<算了,我暂时不需要/@exit>
[@提升持久]
; 检测装备持久上限是否已提升10次
; 通过检测装备的“属性”字段(如幸运、准确等)的升级次数来计数
; 这里假设用“准确”字段(位置13)来记录提升次数
#if
CHECKITEMADDVALUE 1 13 < 10
CHECKGAMEGOLD > 999
CHECKITEMTYPE 1
; 检测1号位置是否为武器(Type=5),可避免对非武器操作
#ACT
GAMEGOLD - 1000
; 先增加1点持久上限
UPGRADEITEMEX 1 13 1 0 1
; 再恢复持久(将当前持久恢复至上限)
RESTOREDURATIONITEM 1
GOTO @main
BREAK
#ELSEACT
; 提示信息
#if
CHECKITEMADDVALUE 1 13 >= 10
#ACT
MESSAGEBOX 提示:该装备的持久上限已提升10次,无法继续提升。
BREAK
#ELSEACT
MESSAGEBOX 提示:你的元宝不足1000,或身上1号位置没有可提升的装备。
BREAK
三、脚本核心命令与参数解析
1. CHECKITEMADDVALUE 参数详解
CHECKITEMADDVALUE 装备位置 属性位置 操作符 数值
• 装备位置:1(武器)、2(衣服)... 详见引擎说明书。
• 属性位置:13=准确,14=敏捷。此处我们借用准确(13)或敏捷(14)字段来记录持久提升的次数,因为它不常用,且可用CheckItemAddvalue检测。持久值本身无法用此命令检测。
2. UPGRADEITEMEX 参数详解(用于记录次数)
UPGRADEITEMEX 装备位置 属性位置 点数 成功机率(0-100) 是否广播(0/1)
• 我们在脚本中用它来增加“准确”属性1点,目的是记录次数,而非真的增加准确。因为“准确”属性可被CheckItemAddvalue检测,从而判断次数是否小于10。
3. RESTOREDURATIONITEM 参数详解
RESTOREDURATIONITEM 装备位置
• 此命令将指定装备位置的当前持久恢复至上限。配合UPGRADEITEMEX增加持久上限后使用,实现“增加1点持久上限并回满”的效果。
四、脚本优化与功能扩展
1. 防止持久超出上限的保险措施
在提升前可增加持久检测,避免意外情况:
#if
CHECKITEMADDVALUE 1 13 < 10
LARGE <$WEAPONMAXDUR> 60
#act
MESSAGEBOX 提示:装备持久上限已超过60,无法继续提升。
BREAK
2. 实现攻击倍数功能
若要实现“1.5倍石头”的倍数提升,核心思路是检测装备是否镶嵌了特定道具(如“倍击石”),然后通过脚本临时或永久增加攻击力。这通常涉及:
• 自定义装备特殊属性字段(如“暴击倍数”)。
• 使用CHECKITEMW检测背包是否含有“倍击石”,使用TAKE命令扣除石头。
• 使用UPGRADEITEMEX增加装备的攻击力属性,或通过CHANGEITEMABILITY命令增加一个自定义的倍数属性。
最终建议:在实现复杂功能前,务必查阅你所使用引擎的说明书,确认上述命令的格式、参数位置与支持情况,不同引擎(GOM/GEE/HERO)的命令参数位置可能存在差异。测试时,先在单机环境备份数据,逐步调试。

