行会战/行会站脚本报错,先别整包替换。大多数情况是MapInfo地图参数、NPC申请脚本、QuestDiary触发脚本、M2行会战争开关、变量冲突这五处至少有一处不对。按下面顺序查,能直接定位到行号。
一、先看M2日志定文件行号
不管弹窗还是进地图报错,先抓日志,别凭感觉改。
1. M2主窗口看实时报错:通常会带脚本文件名、NPC名、地图号、坐标、命令名、参数。例如“QManage.txt line 105”“Market_Def\行会战NPC.txt 行 22”“Cmd:CHECKOFGUILD 参数空”。
2. 进服务端Log目录看ScriptError.log、ErrorLog.txt、M2Error.log,搜“Script”“Line”“参数”“未知命令”“MAP”“GUILD”。第一条报错优先处理,后面很多是连锁。
3. 用Notepad++打开报错文件,Ctrl+G跳行号;别用Word,别用WPS富文本。改完确认编码是ANSI,UTF-8带BOM会让中文命令和分号乱码,老引擎尤其容易报语法错。
4. 如果只说“脚本错误”不标行号,用分段注释法:把最近改的NPC或QuestDiary内容按段前面加“;”注释,重载后逐段放开,哪段一放开就报,错就在那段。
二、MapInfo行会战地图参数核对
行会站地图进不去、进了乱PK、死了掉装不对、反复报错,先查Mir200\Envir\MapInfo.txt。
标准行会战/攻城类地图常用参数:
1. FIGHT3:行会战地图专用,进图人物名字变色、杀人不加PK。需要死亡不掉装写FIGHT3(0),需要死亡掉装写FIGHT3(1)。只写FIGHT3不写括号参数,部分引擎按默认处理,行为不稳定。
2. FIGHT/FIGHT2/FIGHT4/FIGHT5:普通战斗图用,攻城皇宫和行会站不建议混用;FIGHT3才是行会战变色逻辑,用错参数会导致“不开战也变色”或“开战不变色”。
3. NORECONNECT(地图号:X:Y:范围):设置掉线重连回指定点。行会站若写错地图号或坐标越界,重连报错;不写则按引擎默认。
4. CHECKQUEST(Q001):进图执行任务脚本,对应MapQuest_def\Q001.txt或QuestDiary对应目录。行会战胜负靠脚本判定时,这个参数漏写,进图不触发开战、不刷旗、不结算。
5. NEEDSET_ON/NEEDSET_OFF:进图要人物标志。行会战如果用了报名标志,写NEEDSET_ON(标志号);没做标志系统却写了这个,玩家进图直接被拦或报脚本/条件错。
6. NODEAL、NODRUG、QUIZ、NORUNMON按需加:行会站常禁交易、禁随机;如果地图卡怪卡人,任务图可加RUNMON(1)、RUNHUMAN(1)。
7. 地图号不重复:MapInfo里行会战地图编号必须唯一,且和Map目录的.map文件名、服务端其它配置一致。编号重复会出现“进A图实际加载B图”、脚本坐标全错。
8. 坐标范围:脚本里MAPMOVE、刷怪、出生点坐标不能超出该地图尺寸。超出会报参数错误、传送到空地、进图闪退。用地图编辑器或同版本正常端对照最大X/Y。
示例行会战地图配置思路(按你引擎字段改,不照搬数字):
[地图号 行会战地图] FIGHT3(0) NORECONNECT(地图号:330:330:0) CHECKQUEST(Q行会战) NODRUG NORANDOMMOVE
三、NPC申请/报名脚本格式
行会战报名NPC通常放Market_Def,脚本结构就是标签+#IF+#ACT+#SAY/#ELSEACT。
基础格式:
[@Main] #IF CHECKGUILD 行会判断条件写这里 #ACT 执行报名/扣道具/写变量 SENDMSG 6 报名成功 #ELSESAY 条件不满足提示
常见错法:
1. #IF写了条件但没#ACT,引擎读到条件后无动作,表现为点NPC没反应或报脚本结构错。
2. GIVE/TAKE物品名和StdItems不一致。比如脚本写“祖玛头像”,数据库写“祖玛头像(攻城)”,TAKE永远扣不到,报名卡第一步。
3. MAPMOVE地图号坐标错。格式MAPMOVE地图号 X Y,地图号必须MapInfo存在,X/Y在范围内;写“MAPMOVE 0 99999 99999”必然异常。
4. 变量未初始化就判断。比如开头没MOV S10 0,后面#IF EQUAL S10 1,结果永远不成立或报变量类型错。行会战状态、是否已开战、已发奖,都用固定S/U/G变量并开头赋值。
5. 标签重复。两个@ApplyWar、@GuildWar段在不同NPC文件里重名,QuestDiary调用时跳错文件。
6. 中文标点。参数分隔用空格和英文符号,写“,” “=” “;”全角会解析失败。
攻城类NPC若用GUILDWAR命令,先确认M2允许申请;脚本只写GUILDWAR不带行会/日期/地图参数,会报参数不正确。
四、QuestDiary行会战触发与结算
行会站如果靠进入地图触发、杀旗、计时、结算奖励,脚本多在Envir\QuestDiary\行会战或MapQuest_def。
按触发类型查:
1. 进入地图触发:MapInfo写CHECKQUEST(QX),QuestDiary里必须有[@QX]或对应标签;标签名不一致就不执行,表现为能进图但不开战。
2. 开战计时:脚本设定总时长,例如用SETMAPTIME/引擎等效命令设置地图时间,或用变量记录开战时间戳。GOM和GEE命令前缀不完全一样,混用会报未知命令;先在主引擎控制器看引擎版本,再按对应命令手册改。
3. 旗帜/守旗NPC:击杀旗NPC触发[@KillNpc1001]类标签,若写成怪物击杀标签、或NPC编号和地图刷的旗编号不一致,击杀无结算。旗NPC要用NPC刷新不是MonGen普通怪。
4. 胜负判定:击杀旗、占点、剩余人数、时间到等条件写全。只写“时间到”不写“若双方都在则按占旗判定”,会出现无奖励;只写“杀旗”不写超时兜底,会卡局。
5. 奖励发放:@Warend或等效结束标签里GIVE物品,物品名必须StdItems存在;REWARDID写数据库没有的ID会报无效物品。奖励前用变量防重复领取,例如#IF EQUAL S20 0再发,发完MOV S20 1。
6. 死循环:#GOTO回标签没有退出条件,行会战每秒定时器一调就卡M2。全局触发脚本里尤其别写无条件GOTO。
五、M2行会战争/攻城开关
脚本没问题但就是不报名、不开门、不结算,查M2参数。
1. M2选项-参数设置-行会战争/攻城设置:勾允许申请攻城、设置攻城星期、提前通知时间、皇宫等级限制。攻城日期没勾,GUILDWAR类脚本会因日期不匹配不执行。
2. 行会战独立活动如果走M2“行会战争”模块,确认地图号、开始时间、持续时间、胜利条件与脚本一致;M2填地图A、脚本刷旗地图B,必然不开战。
3. 查看变量功能里检查G1001、U10、S系列是否被泡点、活动、充值脚本占用。行会战专用变量改成冷门号,例如G1990-G1999,脚本和M2变量配置同步,避免冲突。
4. 重新加载:改完NPC、QuestDiary、MapInfo,M2管理-重新加载脚本;部分引擎还要重载MapInfo、重载NPC、重载QManage。只改文件不重载,报错依旧。
5. 插件冲突:PlugList.txt里行会/攻城插件如果版本和M2不一致,开战命令会报未知命令。先注掉第三方插件用原始端测试,原始不报再换同版本插件。
六、CHECKOFGUILD等行会条件命令参数
行会战脚本常判断城主、行会名、成员数,命令格式错是最典型的“脚本参数不正确”。
1. 检查是否城主类条件,按引擎写完整参数,例如CHECKOFGUILD城主,或CHECKOFGUILD占领 沙巴克,不要只写CHECKOFGUILD后面空参数。
2. 检查行会名条件,参数用行会名字符串,别用人物名代替;成员数判断写明比较符号和数值,例如成员数条件按引擎支持格式写,不写“>50”若引擎只支持“50”会参数错。
3. QManage/QFunction里调用行会条件,报错显示地图0坐标0,多数是全局脚本被错误触发。搜CHECKOFGUILD、CHECKGUILD、GUILDWAR,定位到文件后按引擎手册补参数。
4. #CALL调用行会战子脚本,格式#CALL[路径\文件名]@标签;路径相对Envir,文件名和标签必须存在。路径多一层中文、标签拼错,会报找不到脚本或空参数。
七、标准兜底流程
1. 备份当前Envir、Mir200下MapInfo、StdItems、DB相关文件,别直接覆盖。
2. 用同版本原始服务端把MapInfo行会战段、Market_Def报名NPC、QuestDiary行会战目录、M2行会战争参数先恢复原始。
3. 原始端起服,建两个测试行会,报名/进图/开战/击旗/结算走一遍;原始正常再合并你的改动。
4. 合并时一次只改一类:先改MapInfo参数并重载;再改NPC报名并Reload NPC;再改QuestDiary并Reload脚本;再改M2开关。每改一类进图测一次,报错立刻知道哪类。
5. 日志仍有行号,按文件跳行,重点看MAPMOVE地图坐标、GUILDWAR/CHECKOFGUILD参数个数、GIVE/TAKE物品名、SETMAPTIME/计时命令前缀、变量相等判断。
6. 全服跑一段行会战仍闪或卡主,移走插件、移走自定义机器人/活动脚本,用最小脚本复现;最小脚本不报再逐步加回。
行会战脚本报错的核心不是“重装服务端”,而是地图参数用FIGHT3还是FIGHT、NPC报名条件与物品库一致、QuestDiary进图触发标签和MapInfo CHECKQUEST对应、M2攻城开关与脚本地图号时间一致、变量不和其它活动冲突。按日志行号从MapInfo到NPC再到QuestDiary最后查M2,基本能把“进图脚本错误、不开战、不结算、参数不正确”这几类都定位出来。
传奇行会战地图脚本参数错误M2服务端报错完整修复教程
来源:
作者:
点击:

