3KM2传奇引擎英雄常用脚本命令大全 英雄检测召唤控制属性修改指令汇总

来源: 作者: 点击:
3KM2引擎支持独立的英雄脚本指令,英雄相关操作和主人物指令不能混用,很多编写脚本时出现英雄不执行动作、检测失效,大多是误用主人物命令,下面整理常用英雄脚本命令,附带使用场景与基础写法。

英雄召唤与收回相关命令,ACT指令段内使用H.CALLHUMAN召唤英雄,执行后自动召唤对应人物英雄,前提是该账号已经创建英雄。H.CLOSEHUMAN用来直接收回英雄,执行后英雄消失。H.ISHEROEXIST可以检测英雄是否存在,搭配IF判断,当英雄在线时执行后续逻辑,不存在则跳转其他分支。H.ISHEROONLINE检测英雄是否处于出战状态,英雄创建但未召唤时判定为不在线。这几条指令多用于登录触发、NPC领取英雄界面,判断玩家英雄状态,未创建英雄的角色无法执行召唤命令,需要提前做人物英雄数据检测。

英雄移动与攻击指令,H.MOVE 地图编号 X Y,让英雄移动到指定坐标,移动期间英雄不会主动攻击怪物。H.ATTACK 目标对象,令英雄攻击指定目标,目标可以是怪物编号或者人物名称。H.STOPATTACK,停止英雄当前攻击动作,原地待命。H.RUNMOVE 地图编号 X Y,英雄跑步移动,区别于走路MOVE,适合追击场景。H.MOVETOSELF,英雄移动到主人物身边,很多护送、回城脚本会使用这条指令,当英雄脱离主人物距离过远时调用,拉回英雄位置。需要注意,英雄移动指令执行有延迟,连续叠加多条移动命令容易造成指令排队失效,两条移动指令之间增加延时。

英雄属性与变量操作,H.CHANGEHUMANHP 数值,修改英雄当前血量,正数增加血量,负数扣除血量。H.CHANGEHUMANMP 数值,修改英雄魔法值。H.SETHUMANHPMAX 数值,设置英雄最大血量上限,H.SETHUMANMPMAX设置英雄最大魔法上限。H.SETHUMANATTR 属性类型 数值,用来修改英雄基础属性,包含攻击、魔法、道术、防御、魔御。H.GETHUMANATTR 属性类型 变量,读取英雄属性存入人物变量,方便后续做属性判断。变量区分主人物变量和英雄变量,H开头读取的是英雄数据,不带H的读取主号,混用会读取错误数值。

英雄物品与背包指令,H.CHECKHAVEITEM 物品名称 数量,检测英雄背包内是否存在指定物品。H.TAKEHAVEITEM 物品名称 数量,扣除英雄背包里对应物品。H.ADDITEM 物品名称 数量,给英雄背包增加物品。H.CHECKBAGSPACE,检测英雄背包是否有空位,用于发放奖励前判断,背包满则提示无法领取。H.MOVEITEMTOHUMAN,将主人物背包物品转移到英雄背包,反向指令H.MOVEITEMTOSELF,英雄物品转移到主号背包。操作英雄背包物品时,需要注意物品绑定标记,部分特殊标记物品无法转移,脚本执行会直接跳过。

英雄技能与状态指令,H.ADDSKILL 技能名称 等级,给英雄增加技能并设置等级。H.DELSKILL 技能名称,删除英雄已学习技能。H.SKILLLEVEL 技能名称 变量,读取英雄该技能等级存入变量。H.BUFFADD BUFF编号 持续秒数,给英雄添加增益状态,H.BUFFDEL BUFF编号,移除英雄身上指定BUFF。H.SETHUMANMODE 模式编号,设置英雄攻击模式,包含和平、全体、行会、编组模式,模式编号参照引擎说明文档。H.RESETHUMANSTATUS,重置英雄PK状态,清除英雄红名。

英雄经验等级与称号指令,H.CHANGEHUMANEXP 数值,增减英雄经验。H.SETHUMANLEVEL 等级,直接设置英雄等级,使用这条指令会自动刷新英雄属性。H.GETHUMANLEVEL 变量,读取英雄当前等级。H.SETHUMANTITLE 称号名称,设置英雄头顶称号,H.CLEARHUMANTITLE清除英雄称号。修改英雄等级的时候,注意引擎等级上限,超出上限指令不会生效,还会在M2日志输出报错。

英雄拾取、保护、自动功能指令,H.SETAUTOPICK 0/1,0关闭英雄自动捡物,1开启自动拾取。H.SETHUMANPROTECT HP百分比,设置英雄血量低于百分比自动收英雄,数值填写50,代表英雄血量剩余50%自动收回。H.SETHUMANREVIVE 0/1,控制英雄死亡是否自动复活,1开启自动复活,0关闭。H.REVIVEHUMAN,直接复活已经死亡的英雄,复活指令执行前需要判断英雄是否死亡,英雄存活状态执行复活指令无效。

英雄对话与消息提示,H.SENDMSG 消息类型 内容,在英雄视角弹出提示文字,大部分场景使用主号SENDMSG即可,仅特殊需求才使用英雄消息输出。H.SENDNOTICE,英雄头顶浮动文字提示。

常用判断条件汇总,ISHERO,判断当前对象是否为英雄,多用于怪物拾取、死亡触发脚本。H.ISHUMANDEAD,检测英雄是否死亡。H.ISGUILD,读取英雄行会信息。H.GETHUMANNAME 变量,把英雄名字存入变量,后续可用于消息输出、记录日志。

编写脚本常见错误,没有加H前缀,直接使用主人物指令操作英雄,命令不会执行。连续执行多条英雄动作指令,没有延时,指令冲突失效。修改英雄属性后没有刷新,部分属性修改完成需要执行H.REFRESHHUMAN刷新英雄面板数据。检测英雄背包物品时,忽略英雄分身、临时背包,造成检测结果不准确。部分指令在英雄死亡状态下无法调用,需要先增加英雄存活判断。

3KM2引擎英雄脚本指令和HERO、LEGEND引擎英雄指令存在差异,直接复制其他引擎的英雄脚本会出现未知命令报错。脚本编写完成后,在测试环境逐条测试,查看M2日志输出,定位无效指令。批量调试优先测试召唤、收回、复活、物品检测这一类高频指令,确认基础功能正常,再编写复杂的英雄战斗逻辑。英雄相关脚本尽量单独封装,和主人物脚本分开,减少变量冲突,方便后续维护修改。