传奇脚本命令大全与实战学习手册

来源: 作者: 点击:
一、脚本基础结构与语法规则

1.文件路径与格式
脚本文件均为纯文本格式(.txt),存放于服务端Mir200\Envir目录下。NPC脚本通常在Market_Def或QuestDiary文件夹。严禁使用Word等富文本编辑器,必须使用Notepad++或系统自带的记事本,保存时编码选ANSI,否则将导致乱码或M2报错。

2.核心语法前缀
•#IF:条件判断,必须与#ACT(执行动作)配对使用。格式为#IF[条件]换行#ACT。

-[@]:标签跳转,用于标记脚本段落,如[@Main]为NPC默认对话入口。
•;:注释符,该行分号后的内容会被引擎忽略,用于备注说明。

3.基础执行逻辑
脚本严格遵循“条件-动作-反馈”结构。示例:检测等级并给予物品。

[@Main]
#IF
CHECKLEVEL40;检测等级是否≥40
#ACT
GIVE屠龙1;执行:给予屠龙
SENDMSG6奖励已发放;提示:绿色消息
#ELSEACT
MESSAGEBOX等级不足;条件不满足时弹窗


二、常用脚本命令分类速查

1.条件检测命令(#IF段使用)

-CHECKLEVEL数值:检测人物等级。
-CHECKITEM物品名数量:检测背包物品数量。
-CHECKGOLD数值/CHECKGAMEGOLD数值:检测金币/元宝。
-CHECKJOBWarrior:检测职业(Warrior/Wizard/Taoist)。
-CHECKBAGGAGE:检测背包是否已满(满则条件成立)。

2.物品与货币操作(#ACT段使用)

-GIVE物品名数量:给予物品(如GIVE金币100000)。
-TAKE物品名数量:扣除物品。
-GAMEGOLD+数值:增加元宝(GOM/GEE引擎)。
-GOLDCOUNT+数值:增加金币。

3.地图传送与移动

-MAPMOVE地图编号XY:定点传送(如MAPMOVE3330330传送到盟重)。
-MAP地图名:随机传送至该地图某坐标。
-MonGen怪物名数量时间:在当前地图刷怪(时间单位为分钟)。

4.消息提示与界面

-SENDMSG类型内容:发送系统消息。类型0为全局公告,6为个人绿色提示。
-MESSAGEBOX内容:弹出确认对话框。
-#SAY文本:在NPC对话框显示文字。
-CLOSE:关闭NPC对话框。

5.变量与跳转

-MOV变量名数值:赋值(如MOVS10已领取)。
-INC变量名数值:变量自增。
-GOTO@标签:跳转到指定标签段(如GOTO@Reward)。

三、NPC脚本实战编写示例

1.新手礼包NPC脚本
在Market_Def目录新建新手礼包-3.txt(文件名对应地图NPC配置),写入以下内容:

[@Main]
#if
CHECKLEVELEX<10;检测等级小于10级
#act
GIVE木剑1
GIVE布衣(男)1
GIVE金创药(小量)5
GAMEGOLD+100
SENDMSG6新手礼包领取成功!
#elseact
MESSAGEBOX你的等级已超过10级,无法领取。


2.副本传送NPC脚本
实现收费传送与等级检测:

[@Main]
#if
CHECKLEVEL35
CHECKGAMEGOLD>99
#act
GAMEGOLD-100
MAPMOVED0015050
SENDMSG0玩家[%s]进入了魔龙副本!
#elseact
MESSAGEBOX等级不足35级或元宝不足100。


四、机器人脚本与定时任务(Robot.txt)

1.自动公告脚本
编辑Mir200\Envir\Robot.txt,添加定时任务:

#AutoRunNPCMIN10@AutoMsg

在Robot_def文件夹下的脚本中写入:

[@AutoMsg]
#act
SENDMSG0【系统】服务器运行正常,祝大家游戏愉快!


2.定时清理地面垃圾
在Robot.txt中添加:

#AutoRunNPCMIN30@ClearItems

对应脚本:

[@ClearItems]
#act
CLEARMAPITEMS;清理全服地面物品


五、脚本调试与常见错误

•M2启动报错:检查脚本中是否缺少#END(部分引擎要求)、括号不匹配或使用了全角符号(必须英文半角)。

-NPC点击无反应:确认Merchant.txt中的NPC坐标与脚本文件名是否对应。
•变量不保存:个人变量(如S0-S99)需配合SAVE命令或特定引擎设置才能持久化。

-刷怪不显示:MonGen.txt中的地图编号错误,或怪物名称与Monster.DB数据库不一致。

关键点:修改脚本后,在M2Server控制台输入@ReloadNpc重载NPC,输入@ReloadRobot重载机器人脚本,无需重启服务端即可生效。
[顶部]