[Mugen] - 变量赋值时,大小写一定要规范!(血的教训)

血的教训啊!!!


比如,

sysvar(0)  --- 这种全部小写的写法,非常正确,极力推荐


而往往 很多作者会写 SysVar(0)这样显得美观,易读


但是,mugen主程序里,如果你是给 sysvar(0)赋值的时候,

如果这么写了,就会报错


报错,只会存在 变量赋值的时候,就是varset 或者 varadd的时候

比如:

[State 200204, helper数量确保用flag]
Type = VarSet
Trigger1 = IsHelper(204)
Trigger1 = NumHelper(204) = 1 && !(sysvar(0) & 1)
sysvar(0) = (sysvar(0) | 1)  
IgnoreHitPause = 1

如果你把

sysvar(0) = (sysvar(0) | 1)    ; 正确的写法

写成了

SysVar(0) = (sysvar(0) | 1)   ; 就会报错

事实上,开头字母大写并不要紧,比如 Var,Sysvar

也就是说,你写成

Sysvar(0) = (sysvar(0) | 1) ,也是可以的。


所以对于变量赋值来说,sysvar 和 Sysvar都是可以的,但是SysVar就是不可以的。



然而,

一旦变量操作太频繁,变量的大小写就尤为重要,不然Mugen读取很可能报错出问题。

你排查会非常麻烦,因为你肯定认为你的变量写的非常正确。


所以说,一开始既要把 var 统一写“小写的” var 而不是 Var

sysvar 统一写 小写的。而不是 SysVar 。


-----------------

如果你已经写了很多 SysVar 或者SysFvar的时候,不用担心

用notepad ++等 文本编辑器,里的 “全部替换”就好了

一键全部替换,就全部换掉了。



----------

送给强迫症患者:

有人可能会问,为什么作为条件没事,而varset赋值的时候会出问题呢?

我这里做一个猜测

变量赋值 对Mugen来说是 最神圣的事情,条件有时可以忽略,

甚至一些错误的条件都可能不会报错。

如果你条件里用了上述错误的写法,不一定会报错,但是可能你的一些用到变量的表达式的数值会有问题。当然,也可能没有问题,仅仅是Mugen对变量赋值那里要求非常高。

具体我没实验,感兴趣的自己搞吧。







 
评论(1)
热度(1)
 
回到顶部