传奇脚本基于事件驱动,通过 #IF、#ACT 等命令控制游戏逻辑。以下是脚本核心结构与常用命令的详细说明,可直接用于编写NPC对话、任务或功能脚本。
一、脚本基础框架与流程控制
所有脚本都遵循“条件判断 → 执行动作 → 跳转对话”的结构,主要标签如下:
• #IF:表示“如果”,用于判断条件是否成立。可并列多个条件,用空格分隔表示“与”,用 #OR 分隔表示“或”。
• #ACT:表示“则执行”,当 #IF 条件全部满足时,执行其后的命令。
• #SAY:输出文本内容,通常配合 #IF 使用,当条件满足时显示对话。
• #ELSESAY:与 #IF 配合,当 #IF 条件不满足时,执行此处的对话。
• Break:结束当前脚本段,防止命令顺序执行。
示例:简单的元宝检测与扣费
#IF
CheckGameGold > 99 ; 检测元宝是否大于99
#ACT
Take GameGold 100 ; 扣除100元宝
Give 屠龙 1 ; 给予屠龙一把
SendMsg 5 “购买成功!”
#ELSESAY
你的元宝不足100个,无法购买屠龙。\ \
\<返回/@main>
二、人物属性检测命令
检测玩家当前的状态或数值,通常放在 #IF 后面。
命令格式 作用说明 示例
CheckLevel 检测人物等级 CheckLevel > 34 (等级大于34)
CheckJob 检测职业 CheckJob Warrior (是否为战士)
CheckGold 检测金币数量 CheckGold 1000000 (金币是否≥100万)
CheckGameGold 检测元宝数量 CheckGameGold 500 (元宝是否≥500)
CheckItem 检测背包物品 CheckItem 金条 1 (是否有1个金条)
CheckBagSize 检测背包空位 CheckBagSize 5 (空位是否≥5)
CheckLuck 检测幸运值 CheckLuck > 6 (幸运是否大于6)
三、物品与货币操作命令
执行给予、扣除、消耗等操作,通常放在 #ACT 后面。
命令格式 作用说明 示例
Give 给予物品 Give 裁决之杖 1 (给1把裁决)
Take 扣除物品 Take 沃玛号角 1 (收回1个号角)
AddGold 增加金币 AddGold 1000000 (增加100万金币)
TakeGold 扣除金币 TakeGold 500000 (扣除50万金币)
GameGold 增加元宝 GameGold + 50 (增加50元宝)
TakeGameGold 扣除元宝 TakeGameGold 200 (扣除200元宝)
GiveEx 给予绑定物品 GiveEx 绑定金币 1000000
四、实用功能命令
实现传送、广播、技能学习等常见功能。
命令格式 作用说明 示例
MapMove 地图传送 MapMove 3 330 330 (传送到土城坐标)
MonClear 清理当前地图怪物 MonClear (清场)
Param1 设置变量 MOV P1 1 (设置变量P1=1)
#CALL 调用外部脚本 #CALL [\任务\初级任务.txt] @任务开始
SendMsg 发送消息 SendMsg 5 “欢迎来到沙巴克!”
AddSkill 学习技能 AddSkill 半月弯刀 (学习半月技能)
ChangeExp 增加经验 ChangeExp + 1000000 (增加100万经验)
五、综合脚本实例
以下是一个完整的NPC脚本,包含条件判断、物品交换和随机奖励。
[@main]
欢迎来到装备回收站。\ \
用 **祖玛装备 x3** 可兑换 **100元宝**,有几率额外获得 **祝福油**。\ \
\<兑换/@兑换祖玛> \<离开/@exit>
[@兑换祖玛]
#IF
CheckItem 绿色项链 3
CheckItem 紫碧螺 3
CheckItem 泰坦戒指 3
#ACT
Take 绿色项链 3
Take 紫碧螺 3
Take 泰坦戒指 3
GameGold + 100
MOVR N$随机数 100
#IF
SMALL N$随机数 20
#ACT
Give 祝福油 1
SendMsg 5 “兑换成功!额外获得祝福油。”
#ELSESAY
兑换成功,获得100元宝。\ \
\<返回/@main>
#ELSESAY
祖玛装备数量不足,每种都需要3个。\ \
\<返回/@main>
关键点解析:
1. MOVR N$随机数 100:生成一个0-99的随机数,赋值给变量 N$随机数。
2. SMALL N$随机数 20:判断变量是否小于20,即20%概率。
六、脚本存放与调试
1. 存放路径:NPC脚本在 MirServer\Mir200\Envir\Market_Def 目录,文件名对应 Merchant.txt 中的NPC编号。
2. 编码格式:必须使用 ANSI 编码保存,否则游戏内显示乱码。
3. 调试方法:修改脚本后,在M2引擎控制台点击“重新加载NPC”即可生效,无需重启服务器。若报错,检查命令拼写、参数数量及变量格式。

