先看你现在这段脚本结构,逻辑本身没大毛病:点“使用元宝”→检测元宝是否大于2→扣3元宝→执行RepairAll→弹修理成功。RepairAll是大部分GOM/GEE/翎风引擎认的原生命令,作用是把身上所有装备送回对应NPC特修。
一、最常见问题:RepairAll不认
不同引擎里“全修”命令写法不一样:
•GOM/GEE:RepairAll
•HERO:RepairAllItem或直接RepairAll
•翎风:多数认RepairAll,但部分版本要S_REPAIRALL
•老清风二开:RepairAllEx、AutoRepair
•某些服根本没这个命令,只能用循环特修每个部位
如果你M2报“未知命令:RepairAll”,先去QuestCommandList.txt/EngineCommand.txt搜“repair”,看引擎里到底叫什么。搜不到RepairAll但有RepairItem,说明引擎只支持按部位修,不支持一键全修。
二、按部位逐个修的写法(通用版)
如果引擎没有RepairAll,改成显式列出所有装备位:
#Act
GAMEGOLD-3
RepairItem衣服
RepairItem武器
RepairItem头盔
RepairItem项链
RepairItem左手镯
RepairItem右手镯
RepairItem左戒指
RepairItem右戒指
RepairItem腰带
RepairItem鞋子
RepairItem宝石
MessageBox修理成功!!
goto@main
部位名必须跟引擎内部名一致。有的服“左手镯”叫LeftBracelet,有的叫左手镯,有的叫BraceletL。先在M2里手动特修一次,看通讯日志里发的是哪个词,脚本里就用哪个。
三、CHECKGAMEGOLD>2的坑
你写的是“大于2”,意思是元宝≥3才能扣。逻辑没问题,但要确认:
1.GAMEGOLD在你这服是不是元宝变量。很多服:金币=GOLD,元宝=GAMEGOLD,绑定元宝=GAMEPOINT。如果这服把元宝定义成别的变量名,CHECKGAMEGOLD永远返回0,玩家有元宝也走#Elseact。
2.去M2→游戏参数→货币设置,确认元宝对应的变量是GAMEGOLD。
3.如果这服用的是“充值元宝=GAMEGOLD,绑定元宝=GAMEPOINT”,而你希望扣绑定元宝,就把CHECKGAMEGOLD换成CHECKGAMEPOINT,GAMEGOLD-3换成GAMEPOINT-3。
四、扣费顺序和失败处理
现在脚本是“先扣钱再修”。如果修失败了(比如身上没装备、或RepairAll不认),钱已经扣了玩家白亏。改成先判断能不能修:
[@texiu]
#If
CHECKGAMEGOLD>2
#Act
GAMEGOLD-3
#If
RepairAll
#Act
MessageBox修理成功!!
goto@main
#Elseact
MessageBox修理失败,请稍后再试!
goto@main
#Elseact
MessageBox特修失败!本服务每次收费3元宝
goto@main
注意:不是所有引擎支持RepairAll作为#IF条件判断。不支持的版本里,#IfRepairAll永远为false,就会走#Elseact弹“修理失败”。这种版本只能放弃判断,直接扣钱+执行。
五、NPC上下文问题
RepairAll之类的修理命令,很多引擎要求“当前对话NPC是能修装备的NPC”。你在抽奖员、活动员、传送员身上挂全修,NPC不是武器店老板,引擎就可能拒绝执行,报“该NPC不支持此命令”。
解决办法:
1.把全修NPC做成“武器店老板/防具店老板”这类本身有修理功能的NPC,脚本挂在它的Market_Def文件里。
2.或者在脚本里先切换NPC上下文(部分引擎支持SetNpc或OpenNpc武器店老板),再执行RepairAll。
3.最稳的做法:全修NPC直接用@S_REPAIR系列命令,在基本设置里配好特修前执行@002,让引擎走标准修理流程。
六、改脚本的具体位置
文件在:MirServer\Mir200\Envir\Market_Def\
文件名就是你的NPC名字,比如全修员.txt或修理员.txt。
用Notepad++打开(别用记事本,会写UTF-8BOM),找到[@texiu]这段,按上面的改法调整。
改完不用重启M2,大部分引擎会热加载Market_Def变化;如果没生效,M2控制台“重新加载NPC”或重启一下。
七、完整可用版本(兼容写法)
[@全修]
你只要轻轻点击一下,就可以全部特修你身上的所有装备爽吧?\
本服务每次收费<3>个元宝!\\
<使用元宝/@texiu>\\
<返回上页/@main>
[@texiu]
#If
CHECKGAMEGOLD>2
#Act
GAMEGOLD-3
#If
RepairItem衣服
#Act
;逐部位修,引擎不支持RepairAll时用这套
RepairItem武器
RepairItem头盔
RepairItem项链
RepairItem左手镯
RepairItem右手镯
RepairItem左戒指
RepairItem右戒指
RepairItem腰带
RepairItem鞋子
RepairItem宝石
MessageBox修理成功!!
goto@main
#Elseact
MessageBox修理失败,请稍后再试!
goto@main
#Elseact
MessageBox特修失败!本服务每次收费3元宝
goto@main
如果引擎认RepairAll,就把那堆RepairItem换成单独一行RepairAll。
八、测试步骤
1.改完脚本保存,编码ANSI/GBK。
2.进游戏点全修NPC,故意带0元宝点一次→应弹“收费3元宝”。
3.充3元宝再点→元宝扣掉、弹“修理成功”、装备耐久恢复。
4.如果元宝扣了但装备没修→RepairAll/部位名不对,或NPC不支持修理。
5.如果什么都不扣也不弹→脚本没加载,检查文件名、标签@texiu是否对得上链接文字。
九、几个细节
•MessageBox\特修失败里那个反斜杠\是换行符,没问题,但MessageBox后面空格再写内容,别写成MessageBox\。
•<使用元宝/@texiu>的链接文字和标签[@texiu]必须完全对应,大小写一致。
•收费提示写“3个元宝”,判断用>2,扣GAMEGOLD-3,三者要统一。别提示收3,判断却写>4,玩家带3元宝时点不动。
•想做成“普通修理免费、特修收费”,在#Act里先RepairAll,再判断是否耐久=0才扣钱,逻辑更复杂,先把基础版跑通。
脚本改完不红、不扣冤枉钱、装备真修好,才是全修功能正常。别只看弹窗说成功就以为修好了,打开角色面板看耐久有没有恢复才是真相。
一、最常见问题:RepairAll不认
不同引擎里“全修”命令写法不一样:
•GOM/GEE:RepairAll
•HERO:RepairAllItem或直接RepairAll
•翎风:多数认RepairAll,但部分版本要S_REPAIRALL
•老清风二开:RepairAllEx、AutoRepair
•某些服根本没这个命令,只能用循环特修每个部位
如果你M2报“未知命令:RepairAll”,先去QuestCommandList.txt/EngineCommand.txt搜“repair”,看引擎里到底叫什么。搜不到RepairAll但有RepairItem,说明引擎只支持按部位修,不支持一键全修。
二、按部位逐个修的写法(通用版)
如果引擎没有RepairAll,改成显式列出所有装备位:
#Act
GAMEGOLD-3
RepairItem衣服
RepairItem武器
RepairItem头盔
RepairItem项链
RepairItem左手镯
RepairItem右手镯
RepairItem左戒指
RepairItem右戒指
RepairItem腰带
RepairItem鞋子
RepairItem宝石
MessageBox修理成功!!
goto@main
部位名必须跟引擎内部名一致。有的服“左手镯”叫LeftBracelet,有的叫左手镯,有的叫BraceletL。先在M2里手动特修一次,看通讯日志里发的是哪个词,脚本里就用哪个。
三、CHECKGAMEGOLD>2的坑
你写的是“大于2”,意思是元宝≥3才能扣。逻辑没问题,但要确认:
1.GAMEGOLD在你这服是不是元宝变量。很多服:金币=GOLD,元宝=GAMEGOLD,绑定元宝=GAMEPOINT。如果这服把元宝定义成别的变量名,CHECKGAMEGOLD永远返回0,玩家有元宝也走#Elseact。
2.去M2→游戏参数→货币设置,确认元宝对应的变量是GAMEGOLD。
3.如果这服用的是“充值元宝=GAMEGOLD,绑定元宝=GAMEPOINT”,而你希望扣绑定元宝,就把CHECKGAMEGOLD换成CHECKGAMEPOINT,GAMEGOLD-3换成GAMEPOINT-3。
四、扣费顺序和失败处理
现在脚本是“先扣钱再修”。如果修失败了(比如身上没装备、或RepairAll不认),钱已经扣了玩家白亏。改成先判断能不能修:
[@texiu]
#If
CHECKGAMEGOLD>2
#Act
GAMEGOLD-3
#If
RepairAll
#Act
MessageBox修理成功!!
goto@main
#Elseact
MessageBox修理失败,请稍后再试!
goto@main
#Elseact
MessageBox特修失败!本服务每次收费3元宝
goto@main
注意:不是所有引擎支持RepairAll作为#IF条件判断。不支持的版本里,#IfRepairAll永远为false,就会走#Elseact弹“修理失败”。这种版本只能放弃判断,直接扣钱+执行。
五、NPC上下文问题
RepairAll之类的修理命令,很多引擎要求“当前对话NPC是能修装备的NPC”。你在抽奖员、活动员、传送员身上挂全修,NPC不是武器店老板,引擎就可能拒绝执行,报“该NPC不支持此命令”。
解决办法:
1.把全修NPC做成“武器店老板/防具店老板”这类本身有修理功能的NPC,脚本挂在它的Market_Def文件里。
2.或者在脚本里先切换NPC上下文(部分引擎支持SetNpc或OpenNpc武器店老板),再执行RepairAll。
3.最稳的做法:全修NPC直接用@S_REPAIR系列命令,在基本设置里配好特修前执行@002,让引擎走标准修理流程。
六、改脚本的具体位置
文件在:MirServer\Mir200\Envir\Market_Def\
文件名就是你的NPC名字,比如全修员.txt或修理员.txt。
用Notepad++打开(别用记事本,会写UTF-8BOM),找到[@texiu]这段,按上面的改法调整。
改完不用重启M2,大部分引擎会热加载Market_Def变化;如果没生效,M2控制台“重新加载NPC”或重启一下。
七、完整可用版本(兼容写法)
[@全修]
你只要轻轻点击一下,就可以全部特修你身上的所有装备爽吧?\
本服务每次收费<3>个元宝!\\
<使用元宝/@texiu>\\
<返回上页/@main>
[@texiu]
#If
CHECKGAMEGOLD>2
#Act
GAMEGOLD-3
#If
RepairItem衣服
#Act
;逐部位修,引擎不支持RepairAll时用这套
RepairItem武器
RepairItem头盔
RepairItem项链
RepairItem左手镯
RepairItem右手镯
RepairItem左戒指
RepairItem右戒指
RepairItem腰带
RepairItem鞋子
RepairItem宝石
MessageBox修理成功!!
goto@main
#Elseact
MessageBox修理失败,请稍后再试!
goto@main
#Elseact
MessageBox特修失败!本服务每次收费3元宝
goto@main
如果引擎认RepairAll,就把那堆RepairItem换成单独一行RepairAll。
八、测试步骤
1.改完脚本保存,编码ANSI/GBK。
2.进游戏点全修NPC,故意带0元宝点一次→应弹“收费3元宝”。
3.充3元宝再点→元宝扣掉、弹“修理成功”、装备耐久恢复。
4.如果元宝扣了但装备没修→RepairAll/部位名不对,或NPC不支持修理。
5.如果什么都不扣也不弹→脚本没加载,检查文件名、标签@texiu是否对得上链接文字。
九、几个细节
•MessageBox\特修失败里那个反斜杠\是换行符,没问题,但MessageBox后面空格再写内容,别写成MessageBox\。
•<使用元宝/@texiu>的链接文字和标签[@texiu]必须完全对应,大小写一致。
•收费提示写“3个元宝”,判断用>2,扣GAMEGOLD-3,三者要统一。别提示收3,判断却写>4,玩家带3元宝时点不动。
•想做成“普通修理免费、特修收费”,在#Act里先RepairAll,再判断是否耐久=0才扣钱,逻辑更复杂,先把基础版跑通。
脚本改完不红、不扣冤枉钱、装备真修好,才是全修功能正常。别只看弹窗说成功就以为修好了,打开角色面板看耐久有没有恢复才是真相。

