当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇NPC脚本实现综合服务员全身修理功能命令详解

热度:
在传奇服务端中,通过NPC脚本实现“综合服务员”提供全身修理功能,需使用特定指令检测玩家装备耐久并执行修复。核心命令为REPAIRALL或FIXALL,具体取决于所用引擎类型。以下分步骤说明完整脚本写法。

第一步:创建NPC对话界面

在EnvirMarket_def目录下新建文件,例如ZongHeFuwu.txt,内容如下:

[@main]
\
\
\
 \
 『』\
 『』\

该界面显示两个选项:全身修理和离开。

第二步:编写全身修理逻辑分支

在同文件中添加[@QuanShenXiuLi]标签,处理修理请求:

[@QuanShenXiuLi]
IF
CHECKWEAPONHOLE;部分引擎要求先检查是否有装备
ACT
REPAIRALL
SENDMSG0您的全部装备已修复完毕!
CLOSEMERCHANT
BREAK

ELSEACT
SENDMSG0您身上没有需要修理的装备。
CLOSEMERCHANT

关键命令说明

REPAIRALL:Hero、GOM、GEE等主流引擎通用的全身修理指令,自动修复角色穿戴的所有装备(武器、衣服、头盔、项链、手镯、戒指、腰带、靴子),不包括背包内未穿装备。
FIXALL:少数旧版Mir2引擎使用此命令,若REPAIRALL无效可尝试替换。
SENDMSG0:在屏幕下方显示提示信息,0表示白色普通消息;若需醒目提示可用SENDMSG6(黄色)或SENDMSG7(居中红字)。
CLOSEMERCHANT:关闭当前NPC对话窗口。

第三步:注册NPC到游戏内

在!Setup.txt(位于MirServerMir200EnvirMarket_def)末尾添加一行:

NZongHeFuwu300300ZongHeFuwu.txt

其中:
NZongHeFuwu是NPC内部标识名;
300300是地图坐标(如主城坐标);
ZongHeFuwu.txt是脚本文件名。

随后在MapQuest_def对应地图文件(如0.txt)中放置NPC坐标:

300300N$ZongHeFuwu

补充:是否收费修理?

默认REPAIRALL为免费修理。若需收取金币,需先检测玩家金币数量,再扣款后执行修理。例如收取10万金币:

[@QuanShenXiuLi]
IF
CHECKCREDITPOINT>100000
ACT
CREDITPOINT-100000
REPAIRALL
SENDMSG0扣除100000金币,全身装备已修复!
CLOSEMERCHANT
BREAK

ELSEACT
SENDMSG7金币不足,无法修理!
CLOSEMERCHANT

注意:部分引擎使用CHECKGAMEGOLD和GAMEGOLD操作元宝,而CREDITPOINT对应金币。请根据实际货币系统选择。

验证与调试

启动服务端,进入游戏找到该NPC;
穿戴一件耐久为0的装备(可用GM命令DURAPPLY装备名0测试);
点击“全身修理”,观察装备耐久是否恢复、是否提示成功;
若无反应,检查:
脚本文件是否保存为ANSI编码;
NPC坐标是否与地图文件一致;
引擎是否支持REPAIRALL(可查阅引擎文档或测试@REPAIRALL命令)。

通过以上步骤,即可实现综合服务员提供一键全身修理功能,操作简单,兼容性强。
[顶部]