传奇门派系统入门脚本hero引擎限制原因及其他引擎改法

来源: 作者: 点击:
传奇门派系统入门脚本标注只能hero引擎使用,通常是因为原脚本调用了hero专有判断、变量或属性命令。拿到脚本先不急着全服放,按引擎类型拆开看哪些命令可保留、哪些必须重写。

hero引擎门派脚本基础结构

门派NPC放在MirServer\Mir200\Envir\Market_Def,文件名按“门派大使-3.txt”这类格式,数字为地图编号。NPC是否在地图显示,还要在刷新配置里写地图号、坐标、NPC编号;hero可在NpcTalk相关配置绑定对话,修改后通过M2控制台重新加载NpcTalk脚本即可生效。

入门逻辑一般分三段:

1. 判断有无门派
hero可用Check[门派]""检测空值,用Check[门派]某某派检测已入派。若原脚本写Check[变量名],基本就是hero语法,换引擎要改条件命令。

2. 入派发属性
hero常用SET[门派]派名、USEBONUSPOINT给附加点,配合CALCVARHUMAN写个人变量,SAVEVARHUMAN落盘到QuestDiary子目录dat文件。防重复加属性可用个人变量标记,例如首次入派置1,再次判断变量为0才发奖。

3. 通知和查询
SENDMSG发系统提示,OPENMERCHANTBIG或普通对话做门派面板。若原脚本用OpenBigDialogBox大对话框,迁到GOM/GEE要改成OPENMERCHANTBIGDLG并补WIL序号、图片序号、坐标等参数。

hero专属点排查清单

打开脚本全文搜这些特征,命中越多越难直接挪到其他引擎:

• Check[xxx]、Set[xxx]、CalVarHuman、SaveVarHuman、LoadVarHuman

• USEBONUSPOINTxx+n 直接调附加属性点

• HeroM2机器人目录Robot专属假人/定时逻辑

• 大对话框OpenBigDialogBox、某些hero封装命令

• 脚本里引用QuestDiary相对路径 .\ 或 ..\ 混合,且依赖hero目录规范

只用了GIVE、TAKE、SENDMSG、SET、CHECKLEVEL、CHECKITEM、GOTO、#IF/#ACT/#SAY,理论上不算hero独占,可往其他引擎改;但变量名、标签格式、路径仍要重调。

迁GOM/GEE思路

GOM/GEE条件常写成#IF CheckVarHuman或CheckItem,不按hero的Check[xxx]裸写。路径上GOM/GEE很多QuestDiary引用要把hero的 .\ 改成 ..\,否则报找不到文件。大对话框替换成OPENMERCHANTBIGDLG;输入框若原hero用@@InPutString1这类,GOM/GEE常改为@InPutString1并按引擎文档取变量。个人变量如在QManage登录段未声明,GOM可能不生效,需要在[@Login]做初始化。

迁LEGEND思路

LEGEND常用[@MAIN]、#CALL结构,hero的(@main)小写标签要改大写中括号标签;跳转若原hero写goto@标签,LEGEND按自身#ACT goto规则处理。物品、技能名回Data里的Item.txt、Skill.txt对齐,门派奖励用LEGEND支持的条件命令重写,不要保留Check[门派]这种hero式判断。

迁3K思路

3K输入框与原hero差异明显,hero用@@InPutString存INPUTSTR,3K部分版本用@@InPutString93存S变量,全局变量作用域也不同;简单门派起名、入派记录可重做,复杂用S变量暂存再写库。在线检测、GOTO大小写、变量范围都要按3K手册对照,直接抄hero脚本会无响应。

迁BLUE思路

BLUE脚本目录和hero不同,NPC可走Envir\Script\NpcScript集中管理,也可按blue版本放对应脚本目录。hero的QuestDiary多子目录、Robot假人、专用大对话框在BLUE不一定有对应模块;门派只做入派、发奖、记录、查询可重画,若原系统依赖hero假人自动跑门派任务,换BLUE要另写机器人或定时脚本。

入门脚本最小可运行改法(不挑引擎的原则)

把“门派”抽象成三个数据:门派名、入派条件、入派奖励。
NPC对话只做:

• 检测角色是否已记录门派名

• 未入派且满足条件则写记录、扣资源、发经验/金币/物品/基础属性

• 已入派则展示门派信息和每日任务入口

• 用登录触发初始化门派变量,用退出/换派逻辑清旧记录

属性奖励别硬绑USEBONUSPOINT,如果目标引擎不支持,就用该引擎的附加属性命令或写数据库字段,由M2属性模块读取。这样同一套玩法可复用到GOM/GEE/LEGEND/BLUE,只是命令名不同。

排错顺序

先开M2看脚本加载日志,报路径错误查QuestDiary/Market_Def相对路径;报命令未知就搜该命令是否属于hero专有;NPC不说话查编号、地图刷新、NpcTalk加载;入派后无属性查变量作用域和属性命令返回值;换引擎后大对话框空白查OPENMERCHANTBIGDLG参数和WIL补丁。每次只改一类命令,重新加载后进游戏点NPC验证,避免多处同时改导致分不清哪行出错。

门派系统要不要继续用hero,看原脚本深度:只做入派发奖可任意换引擎重写;若用了hero变量落盘、Robot假人、USEBONUSPOINT批量调点、专有大对话框,保留hero最省事,换引擎按上面分模块重做更稳。