传奇脚本通过特定指令控制角色行为,广泛应用于自动任务、打怪、交易等场景。脚本文件通常为纯文本格式,由条件判断、动作执行和跳转逻辑组成,需在支持的引擎或辅助工具中运行。
基础结构以标签(Label)为单位,格式为[@标签名],后接条件与动作。例如:
[@main]
IF
checklevel 30
ACT
goto @start
条件指令用于判断状态。常用命令包括:
checklevel X:角色等级是否≥X
checkgold X:金币是否≥X
checkitem 物品名 数量:背包是否有指定物品
checkmap 地图名:当前是否在指定地图
checkonline:角色是否在线
random X:X%概率触发(X为0-100整数)
动作指令用于执行操作。核心命令如下:
give 物品名 数量:给予物品
take 物品名 数量:扣除物品
mapmove 地图名 X Y:传送到指定坐标
movemonster 怪物名 X Y:在坐标生成怪物
sendmsg X 消息内容:发送消息(X=0私聊,1公告,5系统提示)
delay X:延时X毫秒
close:关闭对话框
break:终止当前脚本
goto @标签名:跳转至指定标签
变量操作支持数值计算与存储。常用命令:
mov A B:将B值赋给变量A
inc A X:A增加X
dec A X:A减少X
large A B:判断A是否大于B
equal A B:判断A是否等于B
NPC对话脚本通常绑定于QFunction.txt或QManage.txt。例如玩家点击NPC后触发:
[@playclick]
IF
checkitem 金条 1
ACT
take 金条 1
give 烈焰剑 1
sendmsg 5 获得烈焰剑!
elseact
sendmsg 5 金条不足,无法兑换。
打怪挂机脚本常结合坐标移动与技能释放。示例如下:
[@autohunt]
IF
checkhp 50
ACT
use 升级太阳水
delay 500
mapmove 比奇野外 320 330
attack 黑野猪
物品制造脚本需严格匹配名称与权限。例如:
[@make_weapon]
IF
checkitem 铁矿 10
checklevel 25
ACT
take 铁矿 10
give 修罗战斧 1
sendmsg 5 制造成功!
地图坐标可通过游戏内小地图或GM命令获取。部分服务端支持@where命令显示当前位置。脚本中的地图名必须与MapInfo.txt中定义一致,如“D401”对应赤月老巢。
循环结构通过goto实现。例如反复挖矿:
[@mining]
mapmove 矿洞一层 150 200
attack 矿工
delay 3000
goto @mining
字符串比较使用compare命令。例如验证输入密码:
[@input_check]
IF
compare S$INPUT_PASSWORD 123456
ACT
give 传送戒指 1
所有脚本修改后需重载或重启服务端生效。部分引擎支持热加载,但涉及核心逻辑变更仍需重启。脚本错误会导致NPC无响应或命令失效,应逐行检查语法与缩进。
实际应用中,复杂功能需组合多条命令。例如每日签到脚本包含时间判断、物品发放、记录标记等步骤,依赖变量持久化存储。建议从简单任务入手,逐步掌握条件嵌套与流程控制。

