传奇脚本命令是构建脚本逻辑的核心,涵盖条件判断、行为执行、事件触发等类别,玩家在使用脚本时出现异常,多为命令格式错误、参数不匹配或引擎适配问题,以下整理常用命令及问题排查方法,助力快速解决脚本故障。
核心传奇脚本命令分类及用法
一、条件判断命令(脚本逻辑基础)
条件判断命令用于设定脚本触发前提,常见于装备检测、数值验证、状态判断等场景,格式错误会导致脚本逻辑断裂,需严格遵循语法规则。
1. CHECKITEM:检测角色是否拥有指定物品及数量,语法:CHECKITEM 物品名称 数量。示例:CHECKITEM 麻痹戒指 1,检测角色是否佩戴1枚麻痹戒指,常用于装备触发类脚本。
2. CHECKUSERVAR/CHECKVAR:检测用户变量值,GOM引擎用CHECKUSERVAR,GEE/LEG引擎用CHECKVAR,语法:CHECKUSERVAR 变量名 比较符 数值。示例:CHECKUSERVAR CutDamage > 0,检测切割伤害变量是否大于0。
3. CHECKSKILL:检测角色技能等级,语法:CHECKSKILL 技能名称 比较符 等级。示例:CHECKSKILL 烈火剑法 = 3,检测角色是否拥有3级烈火剑法,适配技能触发脚本。
4. CHECKMONSTERNAME:检测攻击目标是否为指定怪物,语法:CHECKMONSTERNAME 怪物名称。示例:CHECKMONSTERNAME 沃玛教主,仅对沃玛教主触发专属逻辑,需与数据库怪物名称完全一致。
5. CHECKLIFE:检测角色血量,语法:CHECKLIFE 比较符 数值(百分比或具体血量)。示例:CHECKLIFE < 30,检测角色血量是否低于30%,用于补血、回城等逻辑。
二、行为执行命令(脚本核心操作)
行为执行命令用于触发具体操作,涵盖属性修改、伤害附加、信息提示等,参数错误会导致操作失效或异常。
1. SETUSERVAR/SETVAR:设置用户变量值,GOM用SETUSERVAR,GEE/LEG用SETVAR,语法:SETUSERVAR 变量名 数值。示例:SETUSERVAR CutDamage 500,设置切割伤害变量为500点。
2. HITMONSTER CUT/CUTMONSTER:附加切割伤害,GOM用HITMONSTER CUT,GEE用CUTMONSTER,语法:HITMONSTER CUT 伤害值。示例:HITMONSTER CUT %CutDamage%,附加变量对应的切割伤害。
3. SENDMSG:向角色发送提示信息,语法:SENDMSG 颜色代码 提示内容。颜色代码5为白色、6为红色,示例:SENDMSG 5 切割伤害已激活,向角色发送白色提示。
4. GAMEGOLD:修改角色金币数量,语法:GAMEGOLD +/- 数值。示例:GAMEGOLD - 100000,扣除角色10万金币,适配招募、兑换等场景。
5. CHANGEHP:修改角色血量,语法:CHANGEHP +/- 数值。示例:CHANGEHP + 100,为角色增加100点血量,常用于吸血、补血逻辑。
6. DELAY:设置脚本执行延时,语法:DELAY 数值(单位毫秒)。示例:DELAY 500,暂停500毫秒后执行下一条命令,避免操作过快导致冲突。
三、事件触发命令(脚本触发入口)
事件触发命令绑定脚本执行场景,确保逻辑在指定条件下启动,需根据引擎要求绑定对应事件。
1. @OnEquipItem/@OnUnEquipItem:装备佩戴/卸下触发,无需额外绑定,直接编写逻辑即可,适配装备激活类脚本。
2. @OnSkillUse:技能释放时触发,语法:[@OnSkillUse] + 条件 + 行为,用于技能附加效果脚本。
3. @OnAttack/@OnAttackMonster:攻击/攻击怪物时触发,GOM/GEE引擎可直接使用,LEG引擎需补充#EVENT OnAttack @OnAttack绑定事件。
4. @OnLogin:角色登录时触发,语法:[@OnLogin] + 逻辑,常用于初始化变量、开启系统等场景。
常见脚本命令问题排查方法
玩家查看脚本时,可按以下顺序排查命令问题,快速定位故障原因并解决。
1. 命令格式错误:核对命令语法是否正确,如CHECKITEM需包含物品名和数量,缺少参数会导致条件判断失效;DELAY数值需为纯数字,不可添加单位,避免出现“DELAY 500毫秒”这类错误。
2. 引擎适配问题:不同引擎命令存在差异,如GEE引擎无CHECKUSERVAR命令,需替换为CHECKVAR;HITMONSTER CUT在GEE中需改为CUTMONSTER,误用命令会导致脚本无响应。
3. 变量/参数不匹配:检查变量名是否一致,如设置变量为CutDamage,调用时需保持名称完全相同,大小写错误也会导致变量失效;物品名、怪物名需与服务端数据库一致,避免因名称偏差导致检测失败。
4. 注释符号干扰:脚本中注释需用英文分号“;”开头,若误用水中文分号“;”,会导致注释内容被识别为命令,引发脚本报错,需统一替换为英文注释符号。
5. 逻辑冲突问题:若脚本中存在重复命令,如多次设置同一变量值,会导致逻辑混乱,需删除冗余命令,确保每条逻辑唯一且连贯;条件判断顺序不合理也会影响效果,需按优先级排列条件。
脚本命令使用注意要点
1. 统一命令风格:同一脚本中需适配同一引擎命令,不可混合使用GOM与GEE命令,如同时出现SETUSERVAR和CUTMONSTER,会导致脚本部分功能失效。
2. 控制延时间隔:DELAY数值需合理设置,过短会导致操作冲突,过长会影响脚本流畅度,常规场景设置500-1000毫秒为宜。
3. 备份原脚本:修改命令前需备份原脚本文件,若修改后出现异常,可快速恢复原版本,避免脚本彻底失效。
4. 核对数据库信息:涉及物品、怪物、技能的命令,需与服务端DBC数据库核对名称,确保完全一致,数据库路径通常为Mirserver\Mud2\DB。
常用脚本命令示例(可直接参考)
以下示例适配主流引擎,可直接借鉴命令格式,调整参数后使用。
; 装备佩戴激活属性(GOM引擎)
[@OnEquipItem]
#IF
CHECKITEM 屠龙刀 1
#ACT
SETUSERVAR AttackBonus 200
SENDMSG 5 佩戴屠龙刀,攻击提升200点!
; 技能释放附加伤害(GEE引擎)
[@OnSkillUse]
#IF
CHECKSKILL 冰咆哮 = 3
CHECKMONSTEREXIST
#ACT
CUTMONSTER 300
SENDMSG 6 冰咆哮触发额外切割伤害300点!
; 攻击吸血逻辑(LEG引擎)
#EVENT OnAttack @OnAttack
[@OnAttack]
#IF
CHECKVAR BloodSuck > 0
CHECKMONSTEREXIST
#ACT
CHANGEHP + 50
SENDMSG 5 攻击吸血,回复50点血量!
DELAY 800

