Problem with Custom Cornerpush System...

Started by jaede_, September 07, 2014, 04:04:13 AM

Previous topic - Next topic

jaede_

So as I'm starting in my new project, I've fell through an issue.

I've used the following cornerpush system:

[State -3, Corner Push Reset]; Reset
type= varset
trigger1= fvar(5)
trigger1= numtarget
trigger1= (target, hitover) || (target, gethitvar(hitshaketime) > 0 && target, time <= 0)
fvar(5)= 0

[State -3, Corner Push Initial Vel]; Get initial velocity
type= varset
trigger1= movecontact=1 && numtarget
trigger1 = stateno!= 800
fvar(5) = (target, gethitvar(xvel))
ignorehitpause= 1

[State 0, DisplayToClipboard]
type = DisplayToClipboard
trigger1 =  1
text = "aaaaaaaaa = %f"
params = fvar(5)
ignorehitpause = 1


[State -3, Corner Push Apply]; Apply corner push
type= posadd
triggerall = fvar(5)
triggerall = (statetype = S || statetype = C) && numtarget
triggerall = !hitpausetime && (target, gethitvar(hitshaketime) <= 0)
triggerall = (target,stateno!=[250,252]) && (target, statetype = S || target, statetype = A || target, statetype = C)
trigger1 = target, frontedgebodydist <= abs(target, vel x)
trigger1 = (target, gethitvar(xvel) * target, facing) > 0
trigger2 = target, backedgebodydist <= abs(target, vel x)
trigger2 = (target, gethitvar(xvel) * target, facing) < 0
x = ifelse(target, frontedgebodydist <= 0, -1, 1) * (target, facing) * fvar(5)

[State -2, Freeze Pos During Superpause]
type = null;PosFreeze
trigger1 = Var(9)
value = 1

[State -3, Corner Push Friction]; Apply friction to the velocity
type= varset
trigger1= numtarget
trigger1= target, gethitvar(hitshaketime) <= 0
fvar(5) = fvar(5)*0.85


It works perfectly if P2 is:
Standing/Crouch Guarding/Hit
Air Hit

But it doesn't work if P2 is air guarding, the character just stays there.

In case it's necessary, this is statedef 200:

;---------------------------------------------------------------------------
; Standing Light Punch
; CNS difficulty: easy
[Statedef 200]
type    = S
movetype= A
physics = S
juggle  = 0
velset = 0,0
ctrl = 0
anim = 200
poweradd = 5
sprpriority = 2


[State Give 'em a lil' 40, taken from The_None]
type = VarSet
trigger1 = var(31) = [1,2]
trigger1 = numtarget
trigger1 = (target,statetype = A) || (target,statetype = L)
var(40) = var(40) | floor(exp(1*ln(2)) + 0.5)
ignorehitpause = 1
persistent = 0

[State NOBALLZ]
type = PlaySnd
trigger1 = animelem=3
value = S0,30

[State Ass]
type = HitDef
trigger1 = Time=0
attr = S,NA
hitflag = MAF
guardflag = MA
animtype = light
fall.animtype = Diagup
priority = 4,Hit
damage = 23,0
pausetime = 8,8
sparkno = 0
guard.sparkno = 40
sparkxy = -10,-99
hitsound = S5,0
guardsound = S6,0
ground.type = High
ground.slidetime = 14
guard.slidetime = 13
ground.hittime = 14
guard.hittime = 13
air.hittime = 14
yaccel = 0.5
ground.velocity = -4
guard.velocity = -3
air.velocity = -4,-2
airguard.velocity = -3.5,-1.5
ground.cornerpush.veloff = 0
air.cornerpush.veloff = 0
down.cornerpush.veloff = 0
guard.cornerpush.veloff = 0
airguard.cornerpush.veloff = 0
fall.recover = 0
id = 123
nochainID = ifelse(!(var(40) & floor(exp(1*ln(2)) + 0.5) ),1234,123)

[State ass]
type = StateTypeSet
trigger1 = animelem=4
movetype = I


[State 200, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1


PS: I noticed fvar(5) is being RESET to 0, so there's that.
you can find me on discord as jaede_ but be forewarned I do not talk about MUGEN nor my creations or anyone else's much these days.