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

传奇脚本技术入门与HeroM2命令速查

热度:
传奇脚本是控制NPC对话、任务流程、物品使用等游戏逻辑的文本指令集,基于HeroM2(Sky)引擎的语法规范。学习脚本需掌握“条件判断-执行动作”的核心结构及文件存放规则。

一、脚本基础结构与执行逻辑

传奇脚本采用标签化分段结构,核心指令为#IF(条件判断)、#ACT(执行动作)、#SAY(显示文本)。

1.基础框架示例(NPC对话)
[@main];NPC主入口标签
#SAY
欢迎来到比奇城。\\
<领取新手武器/@getweapon><离开/@exit>;\为换行,<>为可点击按钮

[@getweapon];点击“领取新手武器”触发的标签
#IF
CheckLevel>10;条件:等级大于10级
CheckBagSize1;条件:背包至少有1个空位
#ACT
Give乌木剑1;动作:给予1把乌木剑
SendMsg5领取成功!
#ELSESAY;条件不满足时显示
等级不足10级或背包已满,无法领取。

关键点:@开头的标签是功能入口,#IF和#ACT必须成对出现,Break用于结束当前脚本段。

2.文件存放与编码规范
•路径:NPC脚本存放在服务端MirServer\Mir200\Envir\Market_Def目录。

•文件名:通常对应Merchant.txt中NPC的编号(如“盟重老兵-3.txt”)。

•编码:必须使用ANSI格式保存,否则游戏内显示乱码。修改脚本后,在M2控制台点击“重新加载NPC”即可生效,无需重启服务器。

二、HeroM2引擎常用命令大全

以下命令适用于HeroM2及衍生引擎(Sky、3KM2等),按功能分类列出高频指令。

1.人物属性检测命令(#IF后使用)

命令格式作用说明示例

CheckLevel检测人物等级CheckLevel>34(等级大于34)

CheckJob检测职业CheckJobWarrior(战士)/Wizard(法师)/Taoist(道士)

CheckGold检测金币数量CheckGold1000000(金币≥100万)

CheckGameGold检测元宝数量CheckGameGold500(元宝≥500)

CheckItem检测背包物品CheckItem金条1(是否有1个金条)

CheckBagSize检测背包空位CheckBagSize5(空位≥5)

CheckSlaveCount检测宝宝数量CheckSlaveCount<1(宝宝数小于1,用于限制宠物)

Random随机概率Random3(1/3概率触发)
2.物品与货币操作命令(#ACT后使用)
命令格式作用说明示例

Give给予物品Give裁决之杖1

Take扣除物品Take沃玛号角1

AddGold增加金币AddGold1000000

TakeGold扣除金币TakeGold500000

GameGold+增加元宝GameGold+50

TakeGameGold扣除元宝TakeGameGold200
3.地图传送与移动命令
命令格式作用说明示例

MapMove传送到指定地图坐标MapMove3330330(传送到盟重坐标)

Map传送到地图随机点Map0150(传送到石墓阵)

MonClear清理当前地图怪物MonClear
4.变量与计算命令
命令格式作用说明示例

MOV/MOVR赋值/随机赋值MOVN$数量10(N$数量=10)<br>MOVRP1100(P1=0-99随机数)

INC/DEC变量自增/自减INCN$计数1(N$计数+1)

SMALL/LARGE变量比较SMALLN$计数5(判断N$计数<5)

三、脚本实战:编写一个“装备回收”功能

利用上述命令,编写一个包含条件检测、概率奖励的NPC脚本。
[@main]
欢迎使用装备回收系统。\\
回收**祖玛装备x3**可获得**100元宝**,并有**20%几率**额外获得**祝福油**。\\
<开始回收/@recycle>

[@recycle]
#IF
CheckItem绿色项链3
CheckItem紫碧螺3
CheckItem泰坦戒指3
#ACT
Take绿色项链3
Take紫碧螺3
Take泰坦戒指3
GameGold+100
MOVRN$随机数100;生成0-99随机数
#IF
SmallN$随机数20;20%概率
#ACT
Give祝福油1
SendMsg5“回收成功n外获得祝福油。”
#ELSESAY
回收成功,获得100元宝。\\
\<返回/@main>
#ELSESAY
祖玛装备数量不足,每种都需要3个。\\
\<返回/@main>


四、学习路径与调试技巧

1.从模仿开始:不要直接写复杂脚本,先修改服务端自带的“新手向导”、“仓库管理员”等现有NPC,理解其逻辑。
2.善用M2报错:脚本错误时,M2引擎控制台的“脚本错误”标签页会显示具体行号和错误原因(如命令拼写错误、参数数量不对)。
3.变量选择:
◦临时变量(P0-P9):仅在当前NPC对话中有效,适合做临时计数。

◦个人变量(N$开头):人物在线期间有效,适合做任务进度记录。

◦全局变量(G$开头):全服玩家共享,适合做全服活动计数。

避坑提示:脚本中的物品名称、怪物名称必须与数据库(StdItems.DB、Monster.DB)中的Name字段完全一致,包括空格和符号,否则命令会失效。
[顶部]