传奇脚本语言核心由标签、条件判断(#IF)、执行动作(#ACT)及变量操作组成,所有逻辑均基于文本文件编写,存放于Mir200Envir目录下的QFunction.txt、Market_Def文件夹或自定义脚本文件中。掌握基础指令结构是编写任务、NPC对话、装备兑换及元宝交易功能的前提。以下按功能分类详细解析常用代码写法与逻辑组合。
基础结构由三部分组成:标签定义、条件判断、执行动作。标签以[@]开头,如[@main]、[@buy],作为脚本入口或跳转点。#IF段落位于标签下方,列出所有必须满足的条件,只有当所有条件同时成立时,才会执行紧随其后的#ACT段落。若#IF中任一条件不成立,则跳过#ACT,直接执行#ELSEACT段落(若存在)。标准格式如下:
[@TestLabel]
IF
CHECKLEVEL >= 30
CHECKJOB WARRIOR
CHECKITEM 沃玛号角 1
ACT
GIVE 屠龙刀 1
SENDMSG 6 恭喜你获得屠龙刀!
BREAK
ELSEACT
SENDMSG 5 等级不足或非战士职业,或未携带沃玛号角。
BREAK
条件判断指令(#IF段专用):
CHECKLEVEL >= 数值:检测玩家等级是否大于等于指定值,支持>、=、= 10
ACT
GIVE 奖励物品 1
MOV H0 0
SENDMSG 6 任务完成,计数已重置。
元宝检测专项用法:
CHECKGAMEGOLD > 99 表示检测元宝是否大于99。若需检测等于100,写为 CHECKGAMEGOLD = 100。消费逻辑通常结合TAKE思路,但元宝直接使用GAMEGOLD - 数量扣除。完整消费示例:
[@BuyItem]
IF
CHECKGAMEGOLD >= 100
ACT
GAMEGOLD - 100
GIVE 高级药水 10
SENDMSG 6 购买成功,扣除100元宝。
BREAK
ELSEACT
SENDMSG 5 元宝不足,需要100元宝。
BREAK
注意事项:所有脚本文件必须保存为ANSI编码,UTF-8会导致中文乱码及指令识别失败。物品名、职业名大小写敏感,必须与数据库严格匹配。M2Server启动时加载脚本,修改后需重启M2或在控制台输入@RELOADSCRIPT命令热更新。若脚本报错,查看M2控制台输出的具体行号,检查是否有拼写错误或语法缺失(如漏写#ACT)。通过灵活组合上述指令,可实现从简单对话到复杂副本系统的任意功能。

