双英雄主副将体系依托引擎内置多英雄存储机制,整套功能分为英雄寄存、卧龙英雄创建、主副将资格校验、评定判定、英雄切换、副将职业转换、状态检测、事件触发多个模块。评定成功之后,两个英雄只能轮流召唤出战,无法同时登场,评定标记写入角色数据,默认规则评定完成后不可随意重置,脚本需要配套条件判断、状态读取、状态写入、消息推送命令,全部脚本存放于Envir\Market_Def下的NPC文本,QFunction-0.txt存放双英雄相关触发段。
寄存英雄模块脚本,寄存是评定前置条件,必须将白日门英雄与卧龙英雄都寄存至NPC,未寄存状态无法执行评定操作。#IF段检测玩家当前是否召唤英雄,检测寄存位置是否存在空余存储位,检测寄存道具烧酒是否存在背包。#ACT执行寄存命令,将当前出战英雄存入寄存库,写入寄存标记,SENDMSG推送寄存成功提示。ELSEACT分支处理异常,英雄未召唤、寄存位已满、缺少道具时弹出对应提示。寄存脚本增加变量记录寄存英雄数量,寄存第一个英雄标记S0=1,寄存第二个英雄标记S0=2,S0等于2才开放评定入口。寄存完成后,玩家可以调用领取英雄脚本,从寄存库取出对应英雄,领取时清除寄存标记,恢复英雄出战状态。
卧龙英雄创建脚本,玩家寄存白日门英雄之后,方可创建卧龙英雄。#IF检测主号等级,检测寄存库已有白日门英雄记录,检测背包烧酒道具。#ACT调用CREATEHEROEx命令创建卧龙英雄,支持选择战士、法师、道士职业与性别,创建完成自动写入寄存库,更新寄存计数变量。创建完成弹出提示,告知玩家卧龙英雄已经存入寄存处,需要两个英雄全部寄存后,才能执行主副将评定。ELSEACT处理等级不足、缺少道具、寄存库已有卧龙英雄的拦截逻辑,防止重复创建卧龙英雄。
主副将评定核心判定脚本,评定入口只有寄存库内同时存在白日门英雄、卧龙英雄,且未执行过评定的角色才可以访问。#IF读取寄存库内两个英雄等级,读取角色评定标记变量,判定标记等于0代表未评定。#ACT读取两个英雄等级数值进行对比,等级高的自动标记为主将,等级低的标记为副将;等级相同则以白日门英雄默认作为主将。执行SETMAINHERO、SETVICEHERO命令写入主副将身份标记,设置副将召唤冷却时间,写入评定完成标记S1=1,标记写入后锁定评定功能,无法重复评定。SENDMSG推送评定成功文字,告知玩家主将副将分配结果,提示玩家可以使用快捷键切换召唤。ELSEACT分支拦截不满足条件场景,寄存英雄不足两个、已经完成评定、英雄处于取出状态,都会返回对应提示,拒绝执行评定操作。
主副将状态检测命令,用于NPC面板展示信息与条件判断。CHECKMAINHEROEXIST检测主将是否存在,CHECKVICEHEROEXIST检测副将是否存在。GETMAINHERONAME读取主将名称存入变量,GETVICEHERONAME读取副将名称存入变量。GETMAINHEROLEVEL读取主将等级,GETVICEHEROLEVEL读取副将等级。CHECKHEROSTATE检测英雄寄存或者出战状态,用来判断英雄是否在寄存库内。读取变量之后,在NPC对话文本内展示主将名字、副将名字、双方等级、评定状态,方便玩家查看当前双英雄信息。
英雄切换召唤脚本,用于NPC手动切换主副将,搭配客户端快捷键共同使用。#IF检测已经完成评定标记,检测当前英雄冷却时间,检测当前地图是否允许召唤英雄。#ACT执行HEROCHANGE切换命令,收回当前出战英雄,召唤另一主副将出战,同时写入冷却计时变量。SENDMSG推送切换成功提示。ELSEACT拦截冷却未结束、地图禁止召唤、没有评定主副将的角色。脚本内增加冷却限制,主将召唤间隔设置60秒,副将召唤间隔设置300秒,冷却时间未到禁止切换,防止高频反复切换英雄造成引擎数据读写压力。
副将职业转换脚本,评定完成后的副将支持切换三职业出战,该功能为双英雄体系拓展功能。#IF检测角色已经评定主副将,检测背包消耗道具。#ACT执行VICEHEROJOB命令,修改副将出战职业,同步更新副将基础属性,SENDMSG推送职业切换成功提示。ELSEACT判断缺少道具或者未评定,拒绝转换。每次转换需要扣除对应道具,避免无限制免费切换职业,脚本内增加职业记录变量,保存当前副将出战职业,NPC对话面板展示当前副将职业。
QFunction-0.txt双英雄相关触发段,[@MAINHEROCALL]主将召唤成功触发,可写入属性加成、系统提示、buff附加逻辑。[@VICEHEROCALL]副将召唤成功触发,可添加副将复仇状态,主将阵亡短时间召唤副将,触发攻击防御增幅效果。[@HEROCHANGESUCCESS]主副将切换成功触发,记录切换日志,推送系统提示。[@VICEHEROJOBCHANGE]副将职业变更触发,记录职业变更记录。所有触发段使用ANSI编码保存,引擎重载QF脚本即可生效。
主副将经验传功脚本,主将获得经验时自动累积经验,召唤副将时把累积经验传递给副将。[@MAINHEROEXPCHANGE]主将获取经验触发,使用ADDHEROEXPPOINT命令存入经验累积变量。[@VICEHEROCALL]副将召唤触发,读取累积经验,执行VICEHEROTRANSFEREXP命令,将累积经验转移给副将,经验传递完成清空累积变量。配套内功经验传功,使用VICEHEROTRANSFERIPEXP命令传递内功经验,副将获取独立内功经验。增加等级限制,副将等级不可超过主将,检测副将等级,达到主将等级时停止副将经验获取。
配套日志记录脚本,每次寄存、创建、评定、切换、副将职业变更都写入日志,记录角色名称、操作时间、操作类型、主副将名称。日志写入命令保存至文本文件,后期核查异常操作。增加GM检测命令,GM可查看任意角色主副将评定状态,支持清除评定标记,用于后台测试与数据修复。
脚本加载与测试操作,编写完成全部NPC脚本,保存为ANSI编码,重载NPC脚本。登录测试账号,按流程依次寄存白日门英雄、创建卧龙英雄、寄存卧龙英雄,打开评定NPC执行评定,核对主副将分配是否按等级判定。测试主副将召唤切换,验证冷却时间是否生效,副将职业切换功能正常执行。测试主将阵亡之后,短时间召唤副将,复仇属性正常触发。查看M2运行日志,确认脚本执行无报错,英雄数据读写无异常。多账号并发测试,多名玩家同时寄存、评定、切换英雄,观察引擎资源占用,防止高频英雄操作造成卡顿。
常见故障排查,点击评定提示条件不足,核对寄存计数变量,确认两个英雄全部寄存,检查评定标记变量是否提前标记为已评定。评定后主副将无法切换,检查M2引擎双英雄开关是否开启,核对HEROCHANGE命令拼写,确认地图没有禁止召唤英雄参数。副将职业切换无效果,核对VICEHEROJOB命令,检查引擎版本是否支持副将多职业功能。寄存英雄失败,检测当前英雄是否处于出战状态,确认寄存道具扣除逻辑正常。主副将经验无法传功,检查QF内[@MAINHEROEXPCHANGE]触发标签,确认经验累积命令正常执行,副将等级上限判断逻辑生效。读取英雄名称变量空白,核对变量读取命令,区分主将副将读取命令,不要混用。
功能拓展开发,增加主副将装备独立仓库脚本,主将、副将各自独立包裹存储装备。增加主副将合击技能检测,CHECKHEROCOMBSKILL检测主副将组合合击技能,ADDHEROCOMBSKILL添加合击技能。增加主副将属性加成NPC,消耗道具提升主将或者副将基础属性。增加双英雄洗练NPC,重置副将属性,保留主副将评定标记,不清除评定关系。
上线前校验,测试大量连续切换英雄场景,观察角色英雄数据库读写情况,防止频繁切换造成数据错乱。设置变量上限,控制寄存库英雄数量,避免单角色无限创建英雄。所有脚本修改前备份NPC文件与QFunction文件,语法出错可以快速回滚。全部流程测试稳定,寄存、评定、切换、传功、副将职业转换全部功能正常,再开放给玩家使用。
传奇LegendM2双英雄主副将评定全套NPC脚本 寄存创建判定切换与QF触发完整编写
来源:
作者:
点击:

