原文来自11区民间整合的Mugen主程序报错汇总,同时加入了千寻网站平时收集的常见报错,源地址:http://mugenbinran.web.fc2.com/error.html
以下皆为机翻,有空会慢慢修正翻译
加载初始场景报错
报错关键字:dojo.def 或 stage0.def
原因:程序以debug模式运行且调用了debug场景
解决方法:1、在mugen.cfg文件内找到[Debug]下的StartStage =,将场景改为一个存在的场景def文件名。2、或者将一个场景的def文件名改为报错时提示的场景名
人物版本过老
报错关键字:Character mugenversion is older than this version of M.U.G.E.N.
下一行是出问题的人物Sauke The Last,上一面是出错的代码部分[State 0, Explod]
原因:1、人物代码中使用了win版的代码,但使用了1.0或1.1以上的主程序运行。2、代码格式错误
解决方法:1、换个高版本的主程序。2、根据图中报错的详细信息,将人物代码修正,但前提是你懂代码。
SFF文件过大
报错关键字:Can't load xxxxx.sff
某个角色对应的sff文件无法载入
原因:角色sff文件过大。程序读取过多大容量人物会导致内存过大,从而无法运行。详细见https://qxmugen.com/article/12594.html
解决方法:1、使用该人物之前重新启动主程序。2、将sff文件中的图片替换为小尺寸的图。3、下载并运行人物占用内存过大崩溃补丁,下载地址https://qxmugen.com/portal/60
场景载入错误
报错关键字:BG error reading
原因:该战斗场景的def文件中,指定sff的路径用的是“/”,这会导致一些电脑载入该场景时报错。
解决方法:去场景文件夹里打开该场景的def文件,将指定sff的路径中所有的“/”改为“\”
凶恶代码版本不兼容
报错关键字:Invalid format specifier in "%n"
原因:人物代码中含%n、%f的都是作者利用win版主程序的漏洞而写的凶恶向代码,使人物拥有非常规的能力,1.0和1.1主程序修复了这个漏洞,因此这类人物不能在win版以上的主程序运行。
解决方法:使用win版程序运行该人物
非法控制器
关键语句:not a valid elem type
表示所使用的控制器名称不对
招式指令过多
关键语句:Player has too many commands. Only 128 unique commands labels allowed.
表示角色在cmd中的招式指令超过了128个,128为一个角色的上限数量
数据类型错误
关键语句:Type mismatch detected
表示使用了该字段不支持的类型
系统文件读取错误
报错关键字:Error loading system data
图中为读取data/mugen1下的system.def文件出错,出错原因是上一行的system.sff无法读取
原因:1、system.def中指向的system.sff文件不存在。2、system.sff文件的版本太高,但当前运行的主程序是老版(通常是win版)
误差下降
发生错误MUGEN掉了很多场合的错误信息被表示。
错误报文基础
从下面依次读的话,我想问题的地方和内容就会明白。
报错关键字:Not a valid elem type
例图:状态控制错误
根据上面的例图,从下面开始:
哪个播放器的错误?
在哪里保存的角色
什么文件?
哪Statedef?
哪State?
有什么错误(空白的事情)。
表示,表示。
在这种情况下playsnd和写的地方playsn和以外没写而发生了错误。
基本上这种单纯的记述错误导致错误是上面介绍的cnslint原因特定。
记述错误以外的错误,有以下的东西。
特殊的错误信息
代码中1行最多256个字符,超过的部分会被忽视
256文字记述到正好作为问题如果没有错误掉不预想外的动作的原因。嗯,请注意。
新版MUGEN中这个限制被解除。
角色指令超过128个
报错关键字:Player has too many commands. Only 128 unique commands labels allowed.
角色拥有过多的指令招式,最多只能有128个
[Command ] 128标签为止,显示实际上126标签只到不能使用。
标签CommandName,CommandName同样的东西一标签和数。
(数不对的是隐藏CommandName 2个存在?
Float型的数值/或%进行运算。
报错关键字:Type mismatch detected
winMUGEN问题的地方不被表示,所以/或%搜索的确认,
新MUGEN或是问题的地方为止会显示新MUGEN启动,
想在方法中找到问题的地方。
一个StateDef读取超过了2500次
报错关键字:State machine stuck in loop (stopped after [StateNo] for [name])Check your states for infinite ChangeState loops.
例图:statedef 200在循环读取2500次后停住了,请检查是否有ChangeState无限循环
但是,后述的StateDef 52 StateDef 140的方法的关系如果只1楼里StateDef几次错误信息读取也没有。
某个StateDef的控制器超过了512个
报错关键字:state [StateNo] can only have max of 512 controllers
Statedef 200最多只能拥有512个控制器,即ctrl
一部分的参数中触发器重定向的()内数字以外使用
报错关键字:Player [name] ([PlayerID]) in state [StateNo]: malformed expression
这个错误的原因是HitDef参数,Projectile,ReversalDef和Width下面列出的参数的一部分而已。
但是,为了把原因和这个原因的参数对应的参数,用全部书写来防止这一错误。
这个错误的理由是猜测,不过,省略的话对应的参数从原因的参数值决定值,参照时发生错误。
HitDef原因参数参数
damage(第1引数のみ)getpowergivepower
pausetimeguard.pausetime
ground.slidetimeguard.slidetime
guard.slidetimeguard.ctrltime
ground.hittimeguard.hittime
guard.ctrltimairguard.ctrltime
ground.velocity(第1引数のみ)guard.velocity
guard.velocityground.cornerpush.veloff
air.velocityairguard.velocitydown.velocity
ground.cornerpush.veloffair.cornerpush.veloffdown.cornerpush.veloffguard.cornerpush.veloff
guard.cornerpush.veloffairguard.cornerpush.veloff
fallなしProjectile(Hitdefと同じパラメータはHitDefの項目を参照。)原因のパラメータ対応したパラメータ
projhitanimprojremanim
projremanimprojcancelanim
ReversalDef(他のHitdefと同じパラメータはHitDefの項目を参照。)原因のパラメータ対応したパラメータ
pausetimeguard.pausetime
Width原因のパラメータ対応したパラメータ
valueなし
HitDef,Projectile (, ReversalDef)的fall和Width的value是
无法找到对应的参数。
但是,Width替代格式的value,而是通常的格式。edge和player这个发生错误,因为没这利用好了吧。
Assert failure簡易一覧エラーメッセージ原因
Assert failure in array line 100animelemtime(0) >= 0 使用
Assert failure in array line 110指定了不存在的动画号码
Assert failure in spr-lib.c line 516詳細不明
Assert failure in spr-lib.c line 560
Assert failure in spr-lib.c line 601詳細不明
Assert failure in charsel.c line 3162cfgファイルのAI.RandomColor=1とした状態でdefファイルのPal.Defaultsを指定していないキャラがアーケードまたはサバイバルに出現
死机
“复数的目标保持的状态”Target~的舞台鲲(但是TargetDrop除外)的参数target重定向和使用死机。
(TargetFacing的ID这个BUG不发生,这只是这个参数是功能而不。)
对策1:target重定向值的一次变量保存参数的那个变量使用。
对策2:trigger上NumTarget = 1放入复数目标所持的时候不实行的。
对策3:在TargetDrop持有指定目标之一只放。
帮手DestroySelf运行后,那个帮手帮手或Explod发出死机。
原因:DestroySelf实行后的记述也为了实行。
对策1:尽量DestroySelf其StateDef的最下面写。
对策2:DestroySelf以下的舞台上PlayerIDExist鲲触发器(ID)加。
HitDef的snap参数变量和运算符。使用时Shift + F4重载于是死机。
通常的数据读取正常読み込め,调试等很麻烦,所以不推荐。
TargetBind等使用比较好。
StateDef 52 StateDef 140的式样的无限循环的死机。
不仅是这些MUGEN默认存在的common1.cns上写的国家是一个特殊的方法很多,所以差摆弄和问题产生。
原因:StateDef 52 StateDef 140的方法的关系如果只2500循环错误不掉。
从这个循环死机无法脱出而起床。
说明:根据下表式样循环的3种自动读取比国起床。自動ステート移動(読み込み)の条件読み込み先StateDefESCF12ループ中のPrevStateNotimeがリセットPhysics = A && Pos y >= 0 && Vel y >= 052無効52?
StateNo = 140 && StateType = S,C,A &&経過Time >= 「その時点でのAnimの総表示時間」以上StateTypeに応じて0,11,51有効140される
StateNo = 140 && StateType=L &&経過Time >= 「その時点でのAnimの総表示時間」以上140無効140に来る前のStateNoされない
第一:角色空中状态(Physics = A)且比地面下的(pos y >= 0)且下掉着(vel y >= 0),满足的时候,自动StateNo = 52移动StateDef 52读取。
默认的大街StateDef 52的Physics A以外的事对策出来。
第二:先从读取140移动时的StateType决定的,站在(S)的话,下蹲(C)到0的话,向空中(A)11话51移动到读取。
与其他的2个不同移动的前头返回140回的状态不起来,发生了的时候请调查一下140回的状态。
第三:条件的第二位的东西比较相似,但140读取纠正,Time 0不被复位,ESC键和F 12键不好使这样的差异。
未完待续...