[ Mugen ] persisent刷值时,消耗的hitpausetime和状态内循环次数不等?

我自己也震惊了。我在mugen 1.0的研究里发现,在mugen 1.0下,当hitpausetime存在时,可以刷值,有时候为了刷值必须设置状态内的循环控制变量。说白了就是使用如下代码在状态内不断地循环,循环次数我自己设定


[state 2]  ; 循环次数 变量。
type=varadd
trigger1=1
var(44) = 1
ignorehitpause=1


...

...

[state ]
type=Varset
trigger1=var(44) > 251
Sysvar(1) = 8            ; 判断用Flag
ignorehitpause=1

[state ]
type=selfstate
trigger1=sysvar(1) = 8  
value= 111222333    ; 跳转到其他状态里
ignorehitpause=1


[state ]
type=selfstate
trigger1= sysvar(1) !=8
value=stateno                ; 返回该状态继续刷
ignorehitpause=1



我观察发现,hitpausetime变化1,那么大概只能在同一状态内循环2次。这些数字都不确定,只是统计规律。


我试着修改persisent,发现变化并不大。


如果我没记错的话,WinMugen里,必须在1帧内循环完所有的次数。也就是,在同一个状态内,如果我给定了循环次数,那么必须在1帧内刷完。其实说出这句话,我心里也没底,因为我好像并没试验过,甚至自己忘记了不知道有没有人感兴趣实验一下,WinMugen里的情况。


刚刚实验了一下发现,WinMugen内也是类似的,也就是循环在同一状态下,

1帧 ≈状态内循环2次(读两次代码)。


这不禁让我想到了 0帧亲变更,到底怎么做到的。我没有深刻透彻的研究过0帧亲变更,就算有,我也忘了,所以我现在无权发言。但是有一点各位可以想一下,如果要把自己的helper的亲ID修改成敌方helper的PlayerID,那刷值次数必须和 原先亲ID和现在敌方helper的playerID的差值 有关。这个差值,随着helper的增多,会很大。

一旦这个差值超过2,那么就需要至少1帧的时间来进行刷值,刷值次数超过2。那就不可能0帧内亲变更了。

所以网上说的0帧亲变更,我很好奇是怎么做到的。




哦,顺便说一下,就算你存在hitpausetime,依然会读取 -2状态下的代码。




Date : 2017.07.07

Author : yui



 
评论
热度(2)
 
回到顶部