【自作】简易时止型gametime%x=n式回复抑制模板(包含简易敌回复频率调查及解说)
[Statedef -2];调查计测部分
......
[State 0, VarSet]
type = VarSet
trigger1 = !ishelper
var(b) = var(a);记录上一F敌生命值
ignorehitpause = 1
[State 0, VarSet]
type = VarSet
trigger1 = !ishelper
var(a) = enemynear,life;记录当前时刻敌生命值
ignorehitpause = 1
[State 0, VarSet]
type = VarSet
triggerall = !ishelper
trigger1 = var(a) > var(b)
trigger1 = var(b) > 0
trigger1 = !var(c)
var(c) = gametime - 1;记录敌第一次回复时的gametime
ignorehitpause = 1
[State 0, VarSet]
type = VarSet
triggerall = !ishelper
trigger1 = var(a) > var(b)
trigger1 = var(b) > 0
trigger1 = !!var(c)
trigger1 = gametime - 1 > var(c)
trigger1 = !var(d)
var(d) = gametime - 1;记录敌第二次回复时的gametime
ignorehitpause = 1
......
[Statedef XXXXXX];时止解除用helper(回复抑制部分)
......
[State ]
type = Pause
triggerall = IsHelper
triggerall = (root,var(d))%(root,var(c)) = 0;余数为0,说明n=0
trigger1 = root,var(c) > 0 && root,var(d) > 0
trigger1 = (gametime + 1)%(root,var(c)) = 0
time = 2
movetime = 2
ignorehitpause = 1
[State ]
type = Superpause
triggerall = IsHelper
triggerall = (root,var(d))%(root,var(c)) = 0;余数为0,说明n=0
trigger1 = root,var(c) > 0 && root,var(d) > 0
trigger1 = (gametime + 1)%(root,var(c)) = 0
anim = -1
time = 2
movetime = 2
darken = 0
p2defmul = 1
unhittable = 0
ignorehitpause = 1
[State ]
type = Pause
triggerall = IsHelper
triggerall = (root,var(d))%(root,var(c)) != 0;余数不为0,说明n!=0
trigger1 = root,var(c) > 0 && root,var(d) > 0
trigger1 = (gametime + 1)%(root,var(d) - root,var(c)) = root,var(c)
time = 2
movetime = 2
ignorehitpause = 1
[State ]
type = Superpause
triggerall = IsHelper
triggerall = (root,var(d))%(root,var(c)) != 0;余数不为0,说明n!=0
trigger1 = root,var(c) > 0 && root,var(d) > 0
trigger1 = (gametime + 1)%(root,var(d) - root,var(c)) = root,var(c)
anim = -1
time = 2
movetime = 2
darken = 0
p2defmul = 1
unhittable = 0
ignorehitpause = 1
...
解说:无时止解除的player被时止时不执行控制器但gametime依然随时间增加,故此。
设一自然常数a,则由gametime%x=n推导出a*x+n=gametime。
分别令a=0和a=1,得到一组二元一次方程:
n=Gametime;x+n=GAMETIME
解方程组得x=GAMETIME-Gametime(Gametime为第一次回复时的记录,GAMETIME为第二次回复时的记录)
由于n可能为0且gametime为0时生命值不方便记录,以上述方法计测时应当判断GAMETIME是否为Gametime的倍数。若是则按gametime%x=0式处理。
由于mugen的运行顺序是p1>>p2>>p1helper>>p2helper,因此p2的gametime要比p1的gametime慢一F,比p1的helper快一F。