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

