(@upgradenow @getbackupgnow )
%100
+5
+6
[@main]
没有一个人来光顾,顾客,请进\
我的自尊使我不允许对这个物品的价格再要求打折\ \
<开始武器升级/@upgrade>\
<返回武器升级/@getbackupgnow>\
<听更多的歌/@heardsing>\
<离 开/@exit>\
[@upgrade]
你像是想要升级你的武器\
给我看你的武器,升级价格是<$UPGRADEWEAPONFEE>金币\
修炼这个武器需要原料<黑铁矿/@Biron>,<饰品/@Etc>,<武器/@Weapon>\
和 <金币/@Gold>.你确定要它吗?\
别的原料你可以使用你包内的物品\
你想委托你的武器进入修炼系统吗?\ \
<确认修炼/@confirmupgrade>\
<取消/@main>\
[@Biron]
你可以在矿山里采到黑铁矿。\
如果你想修炼过程得到一个好得结果\
你最好拿给我更高纯度的黑铁矿。\
顺便请记得,在修炼期间如果没有足够数\
量的黑色铁矿,那怕你的矿石纯度再高\
修练的结果也可能不好.\ \
<返 回/@upgrade>
[@Etc]
装饰品,项链,手镯\
当你的特殊技能融入了这种装饰\
物的时候,能够加强你的武器\
如果你给我好原料我能给你好结果\
如果你给我糟糕的装饰品\
那可能会失败,除非你有很好的运气\ \
<返 回/@upgrade>
[@Weapon]
只能对武器进行炼制\
如果你想要升级武器\
请给我你携带的武器 ...\ \
<返 回/@upgrade>
[@Gold]
修练武器的金子太少...\
你真的认为我的技术的价值就这么点数量的程度?\
这个价格我不能做这个工作。 ..\\
<返 回/@upgrade>
[@confirmupgrade]
给我看你给我的原料\
修炼你的<$USERWEAPON>,我的视力不好\
我想从你的包里取得更多的饰品和黑铁矿。\
如果你有重要的物品,在你寄存在仓库后请回来\\
<请求修炼/@upgradenow>\
<在安排好以后再回来/@exit>\
[@heardsing]
如果你给我3万金子我会再考虑一下...\
<支付3万金币/@paythree>\
<退出/@main>\
[@paythree]
不知名的杂草...\ \
<退出/@exit>\
[~@upgradenow_ok]
我会把它弄得像新的一样,\
所以请30分钟以后再回来 \
<返 回/@Main>\
[~@upgradenow_ing]
我们工作的规则是一个人只能进行一个项目 \
请下次再来 ...\ \
<返 回/@Main>
[~@upgradenow_fail]
材料不够。请你下次来的时候, \
准备好所有的矿石,武器和饰品。 \
当然,我的工作才是最基本的...\ \
<返 回/@Main>\
[~@getbackupgnow_ok]
就这样了,我尽我最大努力精炼了你的武器,
结果是否<成功/@Success>\
只有在你使用过一次后才知道,出去试试吧。\ \
<退出/@exit>\
[@Success]
通过使用它,你可以体会到它精炼的好处。\
无论你的战斗对象是其他玩家还是怪物...\
你都会发现这个成果...\ \
<退出/@exit>\
[~@getbackupgnow_ing]
这个工作正忙着呢,请稍等片刻...\ \
<返 回/@Main>\
[~@getbackupgnow_fail]
以前你是不是寄存了很多东西?\
如果你找我是为了取回你很\
久前寄存在这里的物品,\
那你还是回去吧,我可记\
不起来了,这也过去太长时间了……\ \
<返 回/@Main>\
[Goods]
你贴出的这套升级武器脚本是早期引擎的经典基础版本,本身保留了最原始的升武器对话逻辑,但存在大量参数缺失、判断漏洞和功能断层问题,运行时很容易出现点击无响应、材料不校验、升级直接失败、取回武器逻辑失效等各类异常,下面结合你给出的原始代码,逐段定位问题并给出完整的修复和补全方案,所有调整都完全兼容原版引擎的命令规则,不会破坏原本的升级逻辑。
先看最顶层的配置部分,你脚本开头直接写的%100、+5、+6是无效代码,引擎完全无法识别,这部分是升级武器的核心概率和等级配置,必须放到!Setup.txt的武器升级专属配置段里,不能直接写在NPC脚本的开头。正确的配置规则是,在服务端根目录的!Setup文件里找到WeaponUpgrade段,设置WeaponSuccessRate=100,对应你想要的基础成功率100%,WeaponMaxLevel=6,把武器最高可升级等级限制到6,同时设置WeaponNeedIronCount=5,规定升级一次最少需要5个黑铁矿,WeaponNeedAccessoryCount=3,规定最少需要3个饰品作为材料,这部分配置不补全,后续所有材料校验逻辑都不会生效,哪怕玩家不带任何材料也能点确认修炼,直接导致升级逻辑完全混乱。
接下来是[@main]段的基础对话逻辑,这段本身没有致命错误,但缺少了前置状态判断,玩家身上已经寄存了正在升级的武器时,点击NPC直接进入主对话,很容易出现状态冲突。在[@main]段最开头添加状态校验代码,先检测玩家身上是否有正在进行中的升级任务,若检测到升级中状态,直接跳转到取回武器的流程,不会让已经寄存武器的玩家重复提交新武器,避免出现多把武器同时寄存的逻辑冲突,修复之后玩家手里有正在升级的武器时,打开NPC会直接弹出对应的提示,不会重复进入提交流程。
[@upgrade]段的核心问题是没有前置校验,玩家手里没有任何可升级的武器时,也能直接点确认修炼,后续逻辑直接报错卡死。在这段的开头添加#ACT段代码,先执行CHECKUSERWEAPON命令,判断玩家当前手里是否佩戴了武器,同时检测武器的当前升级等级,若武器已经升到6级达到上限,直接弹出对应提示,阻止玩家继续升级。另外原始脚本里的<$UPGRADEWEAPONFEE>变量没有提前赋值,部分老引擎无法自动读取升级费用,会在对话里显示空白,在这段开头用MOV命令把升级费用赋值为对应数值,比如升级一次固定收取10万金币,直接显示在对话里,不会出现空白的变量占位符。
[@confirmupgrade]段的漏洞最容易被忽略,原始脚本里没有任何前置校验就直接跳转到@upgradenow,玩家金币不足、材料数量不够的时候,点击请求修炼也能直接提交,引擎直接返回升级失败,不会给玩家任何提前提示。在这段的开头添加完整的三重校验逻辑,第一重用CHECKGOLD命令校验玩家身上的金币是否足够支付升级费用,金币不足直接弹出“你的金币不够支付升级费用,无法提交修炼申请”的提示,直接跳转回主界面;第二重用CHECKITEM命令校验玩家背包里的黑铁矿数量,若数量少于配置要求的5个,弹出对应矿石不足的提示,返回上一步;第三重校验饰品数量,遍历玩家背包里的项链、手镯、戒指类饰品,若数量少于3个,弹出饰品不足的提示,阻止提交。三重校验全部通过之后,再允许跳转到@upgradenow,不会出现玩家点了确认之后直接返回失败的情况。
几个材料说明的子标签[@Biron][@Etc][@Weapon][@Gold],原始脚本逻辑本身通顺,只需要补全对应的跳转容错,玩家在这些页面里直接点离开也能正常返回主界面,不会出现点击无响应的问题。[@heardsing]和[@paythree]这段听歌的彩蛋逻辑,原始脚本点击支付3万金币之后直接跳转到退出,没有任何金币扣除和效果反馈,在[@paythree]段里添加GOLD - 30000的扣金币命令,同时添加SENDMSG提示“你支付了3万金币,听完了一首神秘的老歌”,让这段彩蛋逻辑完整运行,不会出现点了之后没有任何反应的情况。
接下来是所有带~前缀的系统回调段,这部分是引擎处理升级逻辑之后自动返回的结果段,原始脚本里的跳转逻辑有大量错误,比如[~@upgradenow_ok]段最后跳转回的@Main标签,原始脚本里根本不存在,只有[@main]首字母小写的标签,大小写不匹配会导致引擎找不到跳转目标,直接卡死在对话界面。把所有回调段里的<返 回/@Main>全部修改为<返 回/@main>,保证标签大小写完全匹配,引擎能正常跳转到对应页面。同时在[~@upgradenow_ok]段里添加倒计时标记,给玩家身上赋值一个升级完成倒计时变量,设置30分钟之后变量自动触发,玩家在30分钟之内点击取回武器,直接弹出“你的武器还在精炼中,请30分钟之后再来”的提示,提前阻止提前取武器的操作,不会出现升级时间没到就提前取出武器的异常。
[~@getbackupgnow_ok]段的取回武器逻辑,原始脚本缺少最关键的武器取出和武器攻击属性随机判定代码,玩家点完成功之后根本拿不到升级后的武器,点击Success标签也没有任何属性生效的反馈。在这段里添加ACT执行段,先把玩家之前寄存的武器从临时存储区取回到玩家背包,然后执行UPGRADEWEAPON命令,按照配置的概率给武器加上对应等级的攻击属性,同时弹出系统提示“你的武器升级成功,攻击属性获得提升”,玩家退出对话之后武器的升级属性直接生效,砍一刀就能看到明显的伤害变化。如果升级失败,在对应的[~@getbackupgnow_fail]段里添加代码,把玩家的原武器返还给玩家,扣除全部提交的黑铁矿和饰品材料,弹出“武器精炼失败,材料已消耗,原武器已归还到你的背包”的提示,不会出现升级失败之后武器直接消失的严重BUG。
最后是脚本末尾的[Goods]段,原始脚本完全是空的,这部分是升级武器的临时寄存物品定义段,必须补全对应的物品存储规则,添加代码定义玩家提交的武器、黑铁矿、饰品全部存入专属的升级临时寄存区,不会和玩家的普通背包物品混淆,也不会因为玩家下线就直接清空寄存数据,哪怕玩家中途退出游戏重新登录,回来找NPC依然能正常取回自己正在升级的武器。
所有修改完成之后,不要直接覆盖原脚本运行,先在测试账号里逐段测试:先测试空身点击NPC,确认没有武器的情况下无法提交升级;再测试不带材料、金币不足的情况,确认所有校验逻辑正常拦截;最后提交完整材料等待30分钟,取回武器之后砍怪测试属性是否正常生效,全部测试通过之后再放到正式服使用,整套修复完成之后,这套升级武器脚本就能稳定运行,不会再出现点击无响应、材料消失、逻辑卡死的各类问题。
传奇升级武器脚本全问题排查修复指南 适配原版逻辑补全与异常处理完整方案
来源:
作者:
点击:

