LegendM2引擎内置整套内功相关NPC指令,分为检测判断命令、修改内功数值命令、内功经验操作命令、英雄内功专属命令,配套QF对应的内功升级触发段,多用于内功修炼NPC、内功等级奖励、内功洗点、内功经验兑换等功能开发。所有命令写在NPC脚本#ACT执行段内,检测命令放置在#IF条件段,区分人物本体与英雄,英雄相关命令前面需要添加H.前缀,书写格式不能省略。
基础内功检测命令,CHECKIPLEVEL 数字,用于判断当前人物内功等级是否大于等于设定数值,常用于NPC进入条件,内功等级不足时直接拒绝功能执行。CHECKIPEXP 数字,检测人物当前内功经验,用来判断是否满足内功升级或者兑换消耗。CHECKMAXIPLEVEL 数字,检测人物内功等级上限,用来限制内功封顶,防止内功等级突破预设上限。英雄内功检测使用H.CHECKIPLEVEL、H.CHECKIPEXP、H.CHECKMAXIPLEVEL,功能逻辑和本体一致,读取英雄内功数据。
内功修改核心命令,CHANGEIPLEVEL 操作符 数值,操作符支持+、-、=,用来增加、减少或者直接设置人物内功等级。CHANGEIPEXP 操作符 数值,修改人物内功经验,兑换内功经验丹、领取内功奖励都使用这条命令。SETMAXIPLEVEL 数值,单独设置人物内功等级上限,可按角色、职业设置不同封顶数值。英雄内功修改命令为H.CHANGEIPLEVEL、H.CHANGEIPEXP、H.SETMAXIPLEVEL,单独操作英雄内功数据,本体命令不会影响英雄。
内功恢复与内力值操作命令,CHANGEINNERMP 操作符 数值,修改人物当前内力值,内力就是内功蓝条,可用于NPC补满内力、消耗内力兑换奖励。CHANGEINNERMPMAX 操作符 数值,修改人物内力最大值,内功等级提升之后内力上限同步调整。英雄内力操作命令H.CHANGEINNERMP、H.CHANGEINNERMPMAX,单独控制英雄内力数值。读取内力数值存入变量可以搭配GETINNERMP、GETINNERMPMAX,把当前内力、内力上限读取到自定义变量,用于文字展示。
内功技能相关NPC命令,CHECKINNERSKILL 技能名称 等级,检测角色是否学习指定内功技能以及技能等级,未习得内功技能的玩家无法触发对应功能。ADDINNERSKILL 技能名称 等级,给角色添加内功技能,用于内功NPC学习静之、怒之系列技能。DELINNERSKILL 技能名称,删除角色身上已学习的内功技能,用于内功重置洗点功能。英雄内功技能操作命令H.CHECKINNERSKILL、H.ADDINNERSKILL、H.DELINNERSKILL,专门操作英雄的内功技能列表。
QF脚本内功触发段,[@IPLEVELUP],人物内功等级提升时自动触发,可在该段添加内功升级奖励、系统提示、封顶限制逻辑。[@HEROIPLEVELUP],英雄内功升级触发段,英雄内功升级瞬间执行脚本,发放英雄内功奖励。在触发段内用CHECKIPLEVEL判断等级,达到封顶等级后使用CHANGEIPLEVEL锁定等级,同时SENDMSG推送内功升级提示。两个触发段存放于Envir\QFunction-0.txt文件,文件编码选择ANSI,否则引擎无法识别触发标签。
内功NPC完整脚本示例逻辑,#IF段使用CHECKIPLEVEL判断内功等级,同时检测背包道具是否满足消耗条件。#ACT段先扣除背包内消耗物品,执行CHANGEIPEXP增加内功经验,判断内功经验达标自动升级,使用SENDMSG发送内功提升提示。增加ELSEACT分支,条件不满足时弹出提示文字,告知玩家缺少道具或者内功等级不足。脚本内不要循环执行内功修改命令,短时间重复调用会造成内功数据异常。
地图内功经验倍率配置,在MapInfo.txt地图参数添加NGEXPRATE(数值),数值除以100等于内功经验倍率,NGEXPRATE(200)代表该地图内功经验双倍。该参数不属于NPC命令,属于地图基础配置,和NPC脚本配合使用,打造内功修炼专属地图,配合NPC传送入口,玩家进入地图获取更高内功经验。
命令使用注意事项,修改内功等级、内功经验操作前,尽量增加条件校验,避免无限制调用造成内功数值溢出。内功等级封顶优先使用SETMAXIPLEVEL,不要单纯依靠CHANGEIPLEVEL强制扣减等级,防止数据错乱。本体和英雄命令不要混用,本体命令只能读取人物数据,H开头命令只识别英雄数据,混用会出现读取数值为空。修改内功相关脚本之后,重载NPC脚本或者重启M2,改动才会生效。
常见故障排查,NPC点击后内功等级不变化,核对命令拼写,检查#IF条件是否全部满足,确认脚本保存编码为ANSI格式。内功经验增加但是内功等级不自动提升,检查M2引擎内功系统开关,确认内功自动升级功能开启,核对内功经验数值是否达到升级所需阈值。英雄内功操作无效果,确认命令添加H.前缀,区分大小写。无法检测内功技能,核对内功技能数据库名称,脚本内技能名称必须和magic.db内名称完全一致。内力数值修改后不生效,检查M2内功基础参数,确认内力系统开关开启。
功能拓展实现,使用GETIPLEVEL、GETIPEXP读取内功等级与内功经验存入变量,在NPC对话面板展示玩家当前内功信息。搭配物品双击触发脚本,使用[@ItemUse],双击内功经验道具时执行CHANGEIPEXP增加内功经验。增加内功重置NPC,扣除指定道具,DELINNERSKILL清空全部内功技能,同时重置内功等级与内功经验,实现内功洗点。增加内功等级分段奖励,使用多个CHECKIPLEVEL条件,不同内功等级领取对应奖励。
上线前性能校验,大量玩家同时使用内功NPC时,引擎会频繁读写角色内功数据,条件判断语句尽量精简,减少不必要变量读取。测试多账号连续领取内功经验,观察M2日志,确认没有内功数据读写报错。设置内功数值上限,防止数值超出数据库字段范围,引发角色数据异常。修改内功相关脚本前备份QFunction文件和NPC脚本,语法出错可以快速回滚。全部测试验证通过,再向玩家开放内功相关NPC功能。
传奇LegendM2内功相关NPC脚本命令大全 人物英雄内功检查修改与触发脚本编写教程
来源:
作者:
点击:

