传奇服务端脚本命令是构建游戏功能的基础,涵盖条件判断、行为执行、变量控制、流程调度等维度,需结合脚本标签与场景需求灵活组合。以下按功能分类详解高频命令,附实操案例,适配各类脚本编写需求。
一、核心标签与基础语法
脚本命令需依托固定标签执行,核心标签定义命令作用范围与逻辑关系,是命令生效的前提,基础语法规则需严格遵循。
- [@标签名]:脚本触发标签,用于定义脚本入口,如[@Main](主界面)、[@GetExp](获取经验触发)、[@AutoFight](自动战斗),标签名需简洁关联功能,便于调用。
- #IF:条件判断标签,后续跟随条件命令,满足条件则执行#ACT标签下的操作,不满足则执行#ELSEACT(可选)下的操作。
- #ACT:操作执行标签,用于承载具体行为命令,仅在#IF条件满足时触发,是脚本功能实现的核心区域。
- #ELSEACT:条件不满足时的执行标签,可选配置,用于反馈条件不符提示或执行备选操作。
- 语法规则:命令需区分大小写(部分引擎兼容小写,建议统一大写),每行仅写一条命令,特殊符号需用英文格式,避免语法错误。
二、条件判断类命令
搭配#IF标签使用,用于筛选脚本执行场景,精准控制行为触发时机,是脚本逻辑分层的核心,高频命令如下:
1. 角色状态判断
- CHECKLEVEL 等级:检测角色等级,支持>、<、=逻辑运算符,例:CHECKLEVEL >= 60(等级不低于60级)、CHECKLEVEL < 30(等级低于30级)。
- CHECKHP 数值:检测角色血量占比(百分比),例:CHECKHP < 25(血量低于25%),适配回血、避险脚本。
- CHECKMP 数值:检测角色蓝量占比,用法同CHECKHP,例:CHECKMP < 30(蓝量低于30%),适配法师、道士续航逻辑。
- CHECKJOB 职业名称:检测角色职业,例:CHECKJOB 战士、CHECKJOB 法师,用于职业专属功能触发。
2. 道具与资源判断
- CHECKITEM 道具ID 数量:检测背包是否存在指定道具及对应数量,例:CHECKITEM 1001 1(是否有1个大红药)、CHECKITEM 2002 5(是否有5个元宝)。
- CHECKITEM2 道具ID 数量:检测背包+仓库是否存在指定道具,例:CHECKITEM2 3001 1(背包或仓库有1个裁决),适配道具兑换、任务提交场景。
- CHECKBAG 空格数量:检测背包剩余空格,例:CHECKBAG >= 2(背包至少有2个空格),避免背包满溢无法拾取、接收道具。
3. 场景与关系判断
- CHECKMAP 地图ID/名称:检测角色当前所在地图,例:CHECKMAP 比奇城、CHECKMAP 0(地图编号0),用于地图专属功能触发。
- CHECKNAMELIST 文件路径:检测角色名称是否在指定文本列表,例:CHECKNAMELIST ..\QuestDiary\宗派\成员名单.txt,适配宗派、权限判断。
- FINDMONSTER 怪物名称/等级:检测周围是否有指定怪物,无参数则检测任意可攻击怪物,例:FINDMONSTER 沃玛卫士、FINDMONSTER(检测任意怪物)。
- CHECKPLAYERRANGE 距离:检测周围指定距离内是否有其他玩家,例:CHECKPLAYERRANGE 5(5格内有其他玩家),用于安全规避、组队限制。
三、行为执行类命令
搭配#ACT标签使用,执行具体游戏行为,涵盖道具、技能、移动、数值修改等核心操作,是脚本功能落地的关键。
1. 道具与数值操作
- GIVE 道具ID 数量:向角色发放指定道具,例:GIVE 1001 5(发放5个大红药)、GIVE 2001 10(发放10个元宝),用于奖励、福利领取。
- TAKE 道具ID 数量:扣除背包内指定道具,例:TAKE 3001 1(扣除1个裁决)、TAKE 2001 5(扣除5个元宝),用于任务提交、道具兑换。
- USEITEM 道具ID:使用指定道具,例:USEITEM 1001(使用大红药)、USEITEM 4001(使用随机传送卷),适配自动续航、位移场景。
- ADDEXP 数值:增加角色经验值,例:ADDEXP 10000(增加10000点经验),用于任务奖励、活动加成。
- ADDHP 数值、ADDMP 数值:直接增加固定血量/蓝量,例:ADDHP 500(增加500点血量)、ADDMP 300(增加300点蓝量),适配技能、道具效果。
2. 技能与战斗操作
- USESKILL 技能名称/ID:释放指定技能,例:USESKILL 烈火剑法、USESKILL 123(技能ID123),搭配DELAY命令控制释放频率。
- ATTACK:触发角色普攻,需搭配FINDMONSTER使用,例:检测到怪物后执行ATTACK,实现自动攻击。
- CALLPET 召唤兽名称:道士召唤指定召唤兽,例:CALLPET 骷髅精灵、CALLPET 神兽,适配道士挂机脚本。
- STOPATTACK:停止当前攻击行为,用于拾取道具、避险、对话等场景,避免攻击状态干扰操作。
3. 移动与传送操作
- MOVE X坐标 Y坐标:将角色移动到当前地图指定坐标,例:MOVE 150 200(移动至150,200位置),适配定点挂机、场景导航。
- BACKMAP 地图ID/名称:传送角色至指定地图,例:BACKMAP 比奇城、BACKMAP 0(回城),适配避险、任务传送场景。
- RANDOMMOVE 范围:角色在指定范围内随机移动,例:RANDOMMOVE 50(50格内随机移动),适配挂机避怪、分散站位。
- MAPMOVE 地图ID X坐标 Y坐标:跨地图传送并定位坐标,例:MAPMOVE 1 200 300(传送至地图1的200,300位置),用于副本、活动入口传送。
四、变量与标记类命令
用于记录角色状态、控制执行次数,避免重复操作,实现脚本逻辑闭环,核心分为角色变量、临时变量、全局变量。
- MOV 变量名 数值/内容:给变量赋值,例:MOV HEROVAR(Hero_Task) 1(角色变量标记任务已接取)、MOV S28 100(临时变量S28赋值100)。
- INC 变量名 数值:增加变量值,例:INC d21 5(变量d21增加5)、INC HEROVAR(Hero_Count) 1(计数变量+1),适配累计统计、数值叠加。
- DEC 变量名 数值:减少变量值,用法同INC,例:DEC HEROVAR(Hero_Item) 1(道具计数变量-1),适配消耗统计。
- SET TIMER 时间 标签名:设置定时器,指定时间(秒)后触发对应标签,例:SET TIMER 1 @ResetFlag(1秒后触发@ResetFlag),用于状态重置、延时执行。
- LOADVAR 变量名 文件路径、SAVEVAR 变量名 文件路径:读取/保存变量值到文本文件,例:SAVEVAR HEROVAR(Hero_Task) ..\QuestDiary\任务\状态.txt,实现变量持久化,角色下线后状态不丢失。
五、流程控制类命令
用于控制脚本执行顺序、跳转与终止,保障逻辑流畅,避免死循环、操作冲突,核心命令如下:
- GOTO 标签名:跳转到指定脚本标签,例:GOTO @Main(跳转至主界面)、GOTO @AutoFight(跳转至挂机逻辑),实现脚本循环、分支跳转。
- BREAK:终止当前代码块执行,后续命令不再触发,例:条件满足执行完发放奖励后用BREAK,避免重复执行。
- RETURN:返回上一级调用标签,适配嵌套脚本,例:子标签执行完毕后RETURN,回到主标签继续执行。
- DELAY 毫秒数:延迟指定时间执行后续命令,例:DELAY 1500(延迟1.5秒),用于技能CD、模块切换间隔,避免操作叠加冲突。
- WAITINPUT 选项数 @标签1 @标签2...:等待玩家输入选择,触发对应标签,例:WAITINPUT 2 @GetReward @Cancel(2个选项,分别跳转至领取奖励、取消标签),适配NPC对话交互。
六、文本与提示类命令
用于向玩家发送提示信息、操作文本文件,适配交互反馈、名单管理场景,高频命令如下:
- SENDMSG 颜色代码 内容:发送系统提示,例:SENDMSG 6 福利领取成功!(6为黄色)、SENDMSG 2 血量过低,请及时回血!(2为红色),颜色代码按引擎规则适配。
- AddTextList 内容 文件路径:向文本文件添加内容,例:AddTextList <$USERNAME> ..\QuestDiary\宗派\成员名单.txt(添加角色名到宗派名单)。
- DelTextList 内容 文件路径:从文本文件删除内容,例:DelTextList <$USERNAME> ..\QuestDiary\宗派\成员名单.txt(移除角色出宗派名单)。
- SAY 内容:NPC对话文本,例:SAY 欢迎来到沙巴克城堡,领取专属福利!,用于NPC交互提示。
七、实操脚本案例(基础版)
1. NPC等级福利领取脚本
[@Main]
#ACT
SAY 请选择操作:
SAY 1. 领取等级福利(≥60级)
WAITINPUT 1 @GetWelfare
[@GetWelfare]
#IF
CHECKLEVEL >= 60
HEROVAR(Hero_GetWelfare) = 0
#ACT
GIVE 2001 20(发放20个元宝)
GIVE 1001 10(发放10个大红药)
MOV HEROVAR(Hero_GetWelfare) 1
SENDMSG 6 等级福利领取成功!
BREAK
#ELSEACT
SENDMSG 2 等级不足60级或已领取福利!
BREAK
2. 基础挂机战斗脚本
[@AutoFight]
#IF
CHECKHP < 30
#ACT
USEITEM 1001(使用大红药)
DELAY 500
GOTO @AutoFight
#IF
NOT FINDMONSTER
#ACT
RANDOMMOVE 50
DELAY 1000
GOTO @AutoFight
#IF
FINDMONSTER
#ACT
USESKILL 烈火剑法
DELAY 1500
ATTACK
GOTO @AutoFight
#ELSEACT
DELAY 500
GOTO @AutoFight
八、命令使用注意事项
1. 引擎适配:不同服务端引擎(HERO、GOM、GEE)对命令支持有差异,部分命令存在别名,例:HERO引擎的ADDYUANBAO,GOM引擎可能为ADDGOLD,需查阅对应引擎手册。
2. 参数准确:道具ID、地图ID、文件路径需精准核对,避免因参数错误导致命令失效,可在服务端配置文件中查询对应参数。
3. 循环控制:使用GOTO命令时需添加条件判断或延时,避免无限制跳转导致死循环,可通过变量标记、定时器阻断循环。
4. 权限管控:涉及数值修改、道具发放的命令,需合理配置触发条件,避免恶意调用,保障游戏平衡。
5. 调试技巧:脚本编写完成后,先在测试服分步调试,逐一验证命令有效性,排查逻辑冲突、语法错误,再正式部署。

