传奇土城泡经验NPC脚本制作 定时扣金币给经验功能实现

来源: 作者: 点击:
一、核心准备:2步搞定基础工作,避免改崩

制作前先做两件关键事,新手也能稳住:① 复制服务端“Mir200\Script”文件夹,重命名为“Script备份”,出错直接替换;② 确认土城地图信息——打开“Mir200\Data\MapList.txt”,找到“土城”对应的地图编号(通常是3,记牢这个数字),后续定位NPC位置要用。

二、NPC脚本制作:分3步,复制模板就能用

泡经验NPC核心是“对话触发+范围锁定+定时循环”,全程用记事本操作,以“每10分钟扣1万金币、给1万经验”为例,步骤如下:

1. 新建NPC脚本文件,定位置和对话

打开“Mir200\Script\NPC”文件夹,右键新建文本文档,重命名为“土城泡经验NPC.txt”。双击打开,粘贴以下模板,括号内可按需修改:

“@NPCName 土城泡经验官(NPC名字可改)
@NPCFace 12(12是NPC头像编号,不用改)
@Map 3(土城地图编号,对应MapList里的数字)
@X 320(土城安全区X坐标,可微调)
@Y 330(土城安全区Y坐标,可微调)
@SendMsg 土城安全区泡经验,每10分钟扣1万金币,给1万经验!
@Select 开始泡经验|CallScript Task\ExpLoop.txt;放弃|Close”

坐标说明:土城安全区核心坐标多为320,330,若想让NPC在安全区中心,可进游戏按“F11”显示当前坐标,移动到目标点记下数值替换即可。

2. 做核心循环脚本,实现定时扣币给经验

打开“Mir200\Script\Task”文件夹,新建“ExpLoop.txt”文件,这是控制定时功能的核心脚本,粘贴模板并理解关键命令:

“@ExpStart(标记泡经验开始)
// 第一步:判断是否在土城安全区范围
@If @GetMap != 3(不在土城直接终止)
@SendMsg 请回到土城安全区泡经验!
@Exit
@EndIf
@If @GetX < 300 或 @GetX > 340 或 @GetY < 310 或 @GetY > 350(超出安全区范围)
@SendMsg 已离开泡经验区域,功能关闭!
@Exit
@EndIf

// 第二步:判断金币是否足够
@If @GetMoney < 10000
@SendMsg 金币不足1万,无法继续泡经验!
@Exit
@EndIf

// 第三步:定时执行扣币给经验
@Loop(循环执行以下命令)
@Wait 600(10分钟=600秒,改时间就改这个数字)
// 再次判断范围,防止中途离开
@If @GetX < 300 或 @GetX > 340 或 @GetY < 310 或 @GetY > 350
@SendMsg 已离开安全区,泡经验终止!
@ExitLoop(退出循环)
@EndIf
// 扣金币给经验
@ChangeMoney -10000(扣1万金币,负号代表扣除)
@AddExp 10000(给1万经验)
@SendMsg 本次泡经验获得1万经验,已扣除1万金币!
@EndLoop
@ExpEnd”

关键修改点:想改成“每5分钟扣5000金币给8000经验”,就把“@Wait 600”改成300,“-10000”改成-5000,“10000”改成8000。

3. 生效设置:重启服务端,NPC上线

两个脚本都保存后,关闭正在运行的服务端(右键任务栏服务端图标退出),重新打开启动程序。进游戏传送到土城安全区,就能看到新建的NPC,对话选择“开始泡经验”即可触发功能。

三、常见问题修正:4类问题快速解决

1. NPC不在土城出现:地图编号或坐标错

核心是“@Map 3”里的数字不对,或坐标超出土城地图范围。修正:① 重新查“MapList.txt”确认土城编号;② 进游戏用“F11”看安全区坐标,确保脚本里的X、Y在土城地图内(通常X100-500,Y100-500)。

2. 泡经验中途不扣币:范围判断或循环错

要么是安全区范围数值写反(如把“<300”写成“>300”),要么是漏了“@EndLoop”导致循环中断。修正:① 核对脚本里的X、Y范围判断符号;② 确保“@Loop”和“@EndLoop”成对出现,中间命令不缺失。

3. 金币够却提示不足:命令格式错

把“@GetMoney”写成“@GetGold”等错误命令,引擎无法识别玩家金币数量。修正:统一用标准命令“@GetMoney”获取金币,“@ChangeMoney”修改金币,避免自定义命令。

4. 离开范围不终止:判断语句位置错

只在循环开头加了范围判断,中途离开后没二次校验。修正:必须在“@Wait 600”后面再加一次范围判断(如模板里的写法),确保每轮定时前都检查玩家位置。

四、新手拓展:2个实用优化技巧

1. 加等级限制:想让30级以上才能泡经验,在“ExpLoop.txt”开头加“@If @GetLevel <30
@SendMsg 等级不足30级,无法泡经验!
@Exit
@EndIf”。

2. 多档泡经验:给NPC加“高级泡经验”选项,新建“ExpLoopHigh.txt”脚本,设置“@Wait 600 @ChangeMoney -50000 @AddExp 60000”,再在NPC脚本的“@Select”里加“高级泡经验|CallScript Task\ExpLoopHigh.txt”。