传奇服务端脚本通过QFunction-0.txt、QManage.txt等文件控制NPC对话、任务触发和玩家交互。核心结构为#IF(条件判断)搭配#ACT(执行动作),以下列出高频使用的脚本代码及实际应用示例。
一、基础结构语法
[@main]
IF
CheckGameGold>99
ACT
GiveGold100
Close
说明:当玩家元宝大于99时,给予100金币并关闭对话框。所有条件必须在#IF下,执行动作必须在#ACT下,不可混写。
二、常用条件判断指令
CheckGameGold>数值:检测元宝是否大于指定值。
CheckGameGold数值:检测角色等级是否高于某级。
CheckPkPoint>数值:检测PK值是否超过设定值。
CheckHumWear武器名:检测是否穿戴指定装备(如“屠龙”)。
CheckBagSize:检测背包剩余格子数(需配合>或分钟数:检测在线时长是否超过设定值。
Random数值:随机概率触发(如Random30表示30%几率成立)。
三、常用执行动作指令
Give物品名数量:给予物品(如Give太阳神水5)。
Take物品名数量:扣除背包内物品。
TakeGameGold数值:扣除元宝。
ChangeLevel数值:直接设置角色等级。
RecallMob怪物名数量等级:召唤怪物(如RecallMob骷髅35)。
MapMove地图编号XY:传送至指定坐标。
SendMsg0文本内容:向玩家发送系统提示(0为黄色文字)。
DelayGoto@标签名时间(毫秒):延时跳转到指定标签。
Break:中断当前脚本流程。
Close:关闭NPC对话窗口。
Set[变量名]数值:设置自定义变量(如SetA11)。
四、复合条件写法
多条件需分行书写,逻辑为“与”关系:
IF
CheckLevel>30
CheckGameGold>500
CheckHumWear龙之戒指
ACT
SendMsg0符合全部条件!
若需“或”逻辑,需用多个独立#IF块实现。
五、变量与标签跳转
[@start]
IF
CheckGameGold>100
ACT
SetGIVEFLAG1
Goto@giveitem
[@giveitem]
IF
EQUALGIVEFLAG1
ACT
Give金条1
TakeGameGold100
EQUAL用于判断自定义变量值,Goto实现流程跳转。
六、注意事项
物品名称必须与ItemDB.txt完全一致,含空格或特殊符号需原样输入。
所有数值比较仅支持整数,不支持小数。
脚本文件编码需为ANSI,UTF-8会导致乱码失效。
修改后需在M2控制台输入@ReloadNpc或重启服务端生效。
条件与动作之间不可插入注释或空行,否则可能中断解析。
以上代码适用于主流Mir2引擎服务端,包括Hero、GOM等版本。实际编写时应先备份原始脚本,逐段测试避免逻辑冲突。新人玩家可从简单兑换NPC入手,逐步掌握复杂任务链设计。
一、基础结构语法
[@main]
IF
CheckGameGold>99
ACT
GiveGold100
Close
说明:当玩家元宝大于99时,给予100金币并关闭对话框。所有条件必须在#IF下,执行动作必须在#ACT下,不可混写。
二、常用条件判断指令
CheckGameGold>数值:检测元宝是否大于指定值。
CheckGameGold数值:检测角色等级是否高于某级。
CheckPkPoint>数值:检测PK值是否超过设定值。
CheckHumWear武器名:检测是否穿戴指定装备(如“屠龙”)。
CheckBagSize:检测背包剩余格子数(需配合>或分钟数:检测在线时长是否超过设定值。
Random数值:随机概率触发(如Random30表示30%几率成立)。
三、常用执行动作指令
Give物品名数量:给予物品(如Give太阳神水5)。
Take物品名数量:扣除背包内物品。
TakeGameGold数值:扣除元宝。
ChangeLevel数值:直接设置角色等级。
RecallMob怪物名数量等级:召唤怪物(如RecallMob骷髅35)。
MapMove地图编号XY:传送至指定坐标。
SendMsg0文本内容:向玩家发送系统提示(0为黄色文字)。
DelayGoto@标签名时间(毫秒):延时跳转到指定标签。
Break:中断当前脚本流程。
Close:关闭NPC对话窗口。
Set[变量名]数值:设置自定义变量(如SetA11)。
四、复合条件写法
多条件需分行书写,逻辑为“与”关系:
IF
CheckLevel>30
CheckGameGold>500
CheckHumWear龙之戒指
ACT
SendMsg0符合全部条件!
若需“或”逻辑,需用多个独立#IF块实现。
五、变量与标签跳转
[@start]
IF
CheckGameGold>100
ACT
SetGIVEFLAG1
Goto@giveitem
[@giveitem]
IF
EQUALGIVEFLAG1
ACT
Give金条1
TakeGameGold100
EQUAL用于判断自定义变量值,Goto实现流程跳转。
六、注意事项
物品名称必须与ItemDB.txt完全一致,含空格或特殊符号需原样输入。
所有数值比较仅支持整数,不支持小数。
脚本文件编码需为ANSI,UTF-8会导致乱码失效。
修改后需在M2控制台输入@ReloadNpc或重启服务端生效。
条件与动作之间不可插入注释或空行,否则可能中断解析。
以上代码适用于主流Mir2引擎服务端,包括Hero、GOM等版本。实际编写时应先备份原始脚本,逐段测试避免逻辑冲突。新人玩家可从简单兑换NPC入手,逐步掌握复杂任务链设计。

