Mugen主程序报错汇总
加载初始场景报错
报错关键字: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.
原因:1、人物代码中使用了win版的代码,但使用了1.0或1.1以上的主程序运行。2、代码格式错误
解决方法:1、换个高版本的主程序。2、根据图中报错的详细信息,将人物代码修正,但前提是你懂代码。
SFF文件过大
报错关键字:Can't load xxxxx.sff
某个角色对应的sff文件无法载入
原因:角色sff文件过大。程序读取过多大容量人物会导致内存过大,从而无法运行。详细见https://qxmugen.com/article/13138.html
解决方法:1、使用该人物之前重新启动主程序。2、将sff文件中的图片替换为小尺寸的图。3、下载并运行人物占用内存过大崩溃补丁,下载地址https://qxmugen.com/tools/10027
场景载入错误
报错关键字: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
表示所使用的控制器名称不对——"playsn"应改为"playsnd"
招式指令过多
关键语句: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版)
特殊的错误信息
WinMugen代码中1行最多256个字符,超过这个上限的字符会被忽视或导致主程序报错
RCMugen(mugen1.0和mugen1.1)中这个限制被解除。
一个StateDef读取超过了2500次
报错关键字:State machine stuck in loop (stopped after [StateNo] for [name])
Check your states for infinite ChangeState loops.
例图:statedef 200在循环读取2500次后停住了,请检查是否有ChangeState无限循环
某个StateDef的控制器超过了512个
报错关键字:state [StateNo] can only have max of 512 controllers
Statedef 200最多只能拥有512个控制器,即最多只能写512个 type = ×××
异常表达式
报错关键字:Player [name] ([PlayerID]) in state [StateNo]: malformed expression
与数据类型错误类似,不同点在于是出现在:=赋值中,亦或是计算中的数据类型错误
例1——var(20):=1.2——给整型变量赋予浮点数报错
例2——gamewidth%320——gamewidth默认为浮点数,直接参与取余运算报错
Assert failure簡易一覧
エラーメッセージ | 原因 |
---|---|
Assert failure in array line 100 | animelemtime(0) >= 0 使用 |
Assert failure in array line 110 | 指定了不存在的动画号码 |
Assert failure in spr-lib.c line 437 | 詳細不明 Assert failure in array.c line 437[lunaの倉庫] Assert failure in array.c line 437[虹格な海底宝物庫] Assert failure in array.c line 437続き[lunaの倉庫] |
Assert failure in spr-lib.c line 516 | 詳細不明 |
Assert failure in spr-lib.c line 560 | assert failure in spr-lib.c line 560の正体[lunaの倉庫] win版特有bug,貌似和跟暂停和helper啥的有关系 |
Assert failure in spr-lib.c line 601 | 詳細不明 |
Assert failure in charsel.c line 3162 | 在mugen.cfg设置了AI.RandomColor = 1 但角色的def中没有写上Pal.Defaults 这个错误一般出现在街机模式(arcades)和生存模式(survival) |
主程序死机
同时取得多个target后的重定向使用死机(TargetFacing、TargetDrop除外)
方案1:target重定向值使用特定的变量存储
方案2:trigger中写上NumTarget = 1的条件,当同时取得多个target时不运行
方案3:当同时取得多个target时使用TargetDrop丢弃其余目标,保存特定目标
helper自毁后,helper或Explod导致的死机。
原因:DestroySelf实行后,写在它之后的代码也继续实行。
方案1:尽量将DestroySelf写在一个状态组StateDef的最下面。
方案2:DestroySelf以后的代码使用PlayerIDExist(ID)或其他重定向的条件来区分运行的对象。
使用HitDef的snap参数时,Shift + F4重新载入对战时死机。
方案:不推荐使用该参数,建议使用TargetBind
[StateDef 52] [StateDef 140]等样式的2500循环的死机。
自動ステート移動(読み込み)の条件 | 読み込み先StateDef | ESC F12 | ループ中の PrevStateNo | timeが リセット |
---|---|---|---|---|
Physics = A && Pos y >= 0 && Vel y >= 0 | 52 | 無効 | 52 | ? |
StateNo = 140 && StateType = S,C,A && 経過Time >= 「その時点でのAnimの総表示時間」以上 | StateTypeに応じて0,11,51 | 有効 | 140 | される |
StateNo = 140 && StateType=L && 経過Time >= 「その時点でのAnimの総表示時間」以上 | 140 | 無効 | 140に来る前の StateNo | されない |
方案1:角色物理状态为空中(Physics = A)且竖直位置在地面及以下(pos y >= 0)且下落速度大于等于零(vel y >= 0)满足的时候,转入[statedef 52]
方案2:先从读取140移动时的StateType决定的,为站立S转入[statedef 0],为下蹲C转入[statedef 11],为空中A转入[statedef 51],条件中还要写上time>=当时显示的anim时间及以上
方案3:与方案2比较相似,不同点在于上一个状态号不为140
评论区部分报错解答
Library error message: Died parsing ifelse(Stagevar(Info.name)!="Boss",1,7)
Error detected.
Trigger not valid for mugenversion of character: Stagevar
Error parsing PlaySnd
Error parsing [State 5000, PlaySnd]
Error in [Statedef 5105]
Error in data/common1.cns:1538
方案:将【官方】主程序data中的common1.cns文件复制粘贴进人物包中
OxO...failed.
方案:打开mugen.cfg,改变渲染模式RenderMode,不使用OpenGL
Can't access [Info]
Error loading chars/ff3_0/ff3_0.def
Error loading p1
方案:勿使用FF3启动主程序
Error detected.
Clipboard tail:
---------------------------------------------------
M.U.G.E.N ver 1.1.0 Beta 1 P1 (2013.08.11) status log
---------------------------------------------------
Parsing command line...
Command line: F:\ÐÄMUGEN\mugen.exe
Parse command line OK
Initializing...
Allocating game variables
Reading configuration file...Setting language "en".
OK
Initializing timer...performance timer enabled...frequency 2338378...OK
Initializing keyboard...configuring...OK
Initializing input engine...OK
Initializing sound...OK
Initializing BGM... OK
Initializing graphics...gameCoord 1280x720...render mode 2_20...trying 1280x720x32 mode 0x0...failed.
大家,这个怎么办