Skip to content

Instantly share code, notes, and snippets.

@Jesuszilla
Last active September 1, 2023 09:32
Show Gist options
  • Save Jesuszilla/77441a9bb8d80561be67f835351d9fcc to your computer and use it in GitHub Desktop.
Save Jesuszilla/77441a9bb8d80561be67f835351d9fcc to your computer and use it in GitHub Desktop.
CvS2 Pushback System for M.U.G.E.N
; -- HITDEF ARRAY SEQUENCE (NORMAL SPEED) ------------------------------ X DIST -- DESCRIPTION ----------------------- HITDEF ID -
; 6, 5, 4, 4, 3, 2, 2, 1, 1, 1, 1 30 Ground Light/Air Medium/Heavy (ID 1)
; 6, 6, 6, 5, 5, 5, 4, 4, 3, 3, 2, 1, 1, 1, 1, 1 54 Ground Medium (ID 2)
; 8, 8, 8, 7, 7, 7, 6, 5, 5, 4, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1 78 Ground Heavy (ID 3)
; 4, 4, 4, 4, 3, 3, 3, 2, 1, 1, 1 30 Alternate Light Pushback (ID 4)
; 2, 2, 2, 1, 1 10 Super Light Pushback (ID 5)
; 9, 9, 9, 8, 8, 8, 7, 6, 6, 5, 4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1 102 Manchester Gold (ID 6)
; 6, 5, 4, 4, 3, 3, 3, 2, 1 31 Air Light (ID 7)
; 3, 3, 3, 3, 2, 2, 2, 1, 1 20 Rolling Buckler (ID 8)
; 3, 2, 2, 2, 1, 1, 1 12 Ground CC Light/Air Medium/Heavy (ID 11)
; 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1 22 Ground CC Medium (ID 12)
; 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1, 1 32 Ground CC Heavy (ID 13)
[Statedef -2]
;===============================================================================
; ------- CvS2 Cornerpush System by Vans & Jesuszilla --------
;===============================================================================
[State -2, Reset Time counter]
type = VarSet
trigger1 = MoveContact
trigger2 = !NumTarget && !NumProjID(3)
var(56) = 0
ignorehitpause = 1
[State -2, Increase]
type = VarSet
triggerall = !Var(48)
trigger1 = numtarget ;>= 1
trigger1 = target, HitShakeOver
trigger2 = NumProjID(3)
var(56) = Var(56)+1
[State -2, Kill Cornerpush]
type = VarSet
triggerall = FVar(39)
trigger1 = !NumTarget || NumTarget(0) || MoveContact
trigger2 = Var(50) = [3,4]
trigger3 = NumTarget(1)
trigger3 = Var(56) > 10
trigger4 = NumTarget(2)
trigger4 = Var(56) > 14
trigger5 = NumTarget(3) || NumProjID(3)
trigger5 = Var(56) > 17
trigger6 = NumTarget(11)
trigger6 = Var(56) > 6
trigger7 = NumTarget(12)
trigger7 = Var(56) > 10
trigger8 = NumTarget(13)
trigger8 = Var(56) > 10
trigger9 = NumTarget(4)
trigger9 = Var(56) > 10
trigger10 = NumTarget(5)
trigger10 = Var(56) > 5
trigger11 = NumTarget(6)
trigger11 = Var(56) > 21
trigger12 = NumTarget(7)
trigger12 = Var(56) > 7
trigger13 = NumTarget(8)
trigger13 = Var(56) > 7
fvar(39) = 0
ignorehitpause = 1
[State -2, Freeze Pos During Superpause]
type = PosFreeze
trigger1 = Var(48)
value = 1
;----------------------------------------------------------------------------------
; CvS2 Pushback System by Jesuszilla
[State -2, Simul Hack]
type = TargetDrop
trigger1 = NumTarget >= 2
keepone = 1 ; This will still drop BOTH if it hits at the same time. I hate simul.
[State -2, TargetDrop]
type = VarSet
trigger1 = !NumTarget
var(32) = -1
[State -2, VarSet]
type = VarSet
trigger1 = MoveContact = 1
trigger2 = !NumTarget
fvar(6) = 0
[State -2, Sign]
type = VarSet
triggerall = HitDefAttr != SCA, NT, ST, HT
triggerall = StateNo != [800,899]
trigger1 = MoveContact
var(5) = cond(P2Dist X < 0, (var(5)|(2**29)), (var(5)&-536870913))
[State -2, TargetState]
type = TargetState
triggerall = HitPauseTime = 0
triggerall = MoveHit && !MoveReversed
triggerall = NumTarget
triggerall = StateNo != [800,899]
triggerall = Target, StateType != A && Target, StateType != L
triggerall = !Target, GetHitVar(YVel)
triggerall = Target, Alive
;triggerall = Var(6) >= 0
triggerall = FVar(6) = 0
trigger1 = NumTarget(1)
trigger1 = Target(1), HitShakeOver
trigger1 = (fvar(6) := 1)
trigger2 = NumTarget(2)
trigger2 = Target(2), HitShakeOver
trigger2 = (fvar(6) := 1)
trigger3 = NumTarget(3)
trigger3 = Target(3), HitShakeOver
trigger3 = (fvar(6) := 1)
trigger4 = NumTarget(4)
trigger4 = Target(4), HitShakeOver
trigger4 = (fvar(6) := 1)
trigger5 = NumTarget(5)
trigger5 = Target(5), HitShakeOver
trigger5 = (fvar(6) := 1)
trigger6 = NumTarget(6)
trigger6 = Target(6), HitShakeOver
trigger6 = (fvar(6) := 1)
trigger7 = NumTarget(7)
trigger7 = Target(7), HitShakeOver
trigger7 = (fvar(6) := 1)
trigger8 = NumTarget(8)
trigger8 = Target(8), HitShakeOver
trigger8 = (fvar(6) := 1)
trigger9 = NumTarget(11)
trigger9 = Target(11), HitShakeOver
trigger9 = (fvar(6) := 1)
trigger10 = NumTarget(12)
trigger10 = Target(12), HitShakeOver
trigger10 = (fvar(6) := 1)
trigger11 = NumTarget(13)
trigger11 = Target(13), HitShakeOver
trigger11 = (fvar(6) := 1)
value = 15000
ignorehitpause = 1
[State -2, VarSet]
type = VarSet
triggerall = NumTarget || NumProj
trigger1 = NumTarget(1)
trigger1 = Var(56) = [7,10]
trigger2 = NumTarget(2)
trigger2 = Var(56) = [10,14]
trigger3 = NumTarget(3) || NumProjID(3)
trigger3 = Var(56) = [11,14]
trigger4 = NumTarget(3) || NumProjID(3)
trigger4 = Var(56) = [16,17]
trigger5 = NumTarget(11)
trigger5 = Var(56) = 6
trigger6 = NumTarget(12)
trigger6 = Var(56) = [8,10]
trigger7 = NumTarget(4) || NumProjID(4)
trigger7 = Var(56) = [8,10]
trigger8 = NumTarget(5)
trigger8 = Var(56) = [4,5]
trigger9 = NumTarget(6)
trigger9 = Var(56) = [18,21]
trigger10 = NumTarget(7)
trigger10 = Var(56) = 7
trigger11 = NumTarget(8)
trigger11 = Var(56) = [6,7]
fvar(39) = 1.0
[State -2, VarSet]
type = VarSet
triggerall = NumTarget || NumProj
trigger1 = NumTarget(1)
trigger1 = Var(56) = 6
trigger2 = NumTarget(3) || NumProjID(3)
trigger2 = Var(56) = 15
trigger3 = NumTarget(11)
trigger3 = Var(56) = [2,5]
trigger4 = NumTarget(12)
trigger4 = Var(56) = 4
trigger5 = NumTarget(12)
trigger5 = Var(56) = [6,7]
trigger6 = NumTarget(13)
trigger6 = Var(56) = [7,10]
trigger7 = NumTarget(5)
trigger7 = Var(56) = [1,3]
trigger8 = NumTarget(4) || NumProjID(4)
trigger8 = Var(56) = 7
trigger9 = NumTarget(6)
trigger9 = Var(56) = [11,14]
trigger10 = NumTarget(6)
trigger10 = Var(56) = [16,17]
trigger11 = NumTarget(7)
trigger11 = Var(56) = 6
trigger12 = NumTarget(8)
trigger12 = Var(56) = 5
fvar(39) = 2.0
[State -2, VarSet]
type = VarSet
triggerall = NumTarget || NumProj
trigger1 = NumTarget(2)
trigger1 = Var(56) = [7,9]
trigger2 = NumTarget(11)
trigger2 = Var(56) = 1
trigger3 = NumTarget(12)
trigger3 = Var(56) = [1,3]
trigger4 = NumTarget(13)
trigger4 = Var(56) = 4
trigger5 = NumTarget(13)
trigger5 = Var(56) = 6
trigger6 = NumTarget(4) || NumProjID(4)
trigger6 = Var(56) = 6
trigger7 = NumTarget(7)
trigger7 = Var(56) = 5
trigger8 = NumTarget(8)
trigger8 = Var(56) = [1,2]
fvar(39) = 3.0
[State -2, TargetVelSet]
type = VarSet
triggerall = NumTarget || NumProj
trigger1 = NumTarget(1)
trigger1 = Var(56) = [3,4]
trigger2 = NumTarget(2)
trigger2 = Var(56) = [5,6]
trigger3 = NumTarget(3) || NumProjID(3)
trigger3 = Var(56) = 9
trigger4 = NumTarget(4) || NumProjID(4)
trigger4 = Var(56) = [1,4]
trigger5 = NumTarget(12)
trigger5 = Var(56) = 5
trigger6 = NumTarget(13)
trigger6 = Var(56) = [1,3]
trigger7 = NumTarget(6)
trigger7 = Var(56) = 15
trigger8 = NumTarget(8)
trigger8 = Var(56) = 4
fvar(39) = 4.0
[State -2, TargetVelSet]
type = VarSet
triggerall = NumTarget || NumProj
trigger1 = NumTarget(1)
trigger1 = Var(56) = 2
trigger2 = NumTarget(1)
trigger2 = Var(56) = 5
trigger3 = NumTarget(2)
trigger3 = Var(56) = [7,8]
trigger4 = NumTarget(3) || NumProjID(3)
trigger4 = Var(56) = [7,8]
trigger5 = NumTarget(3) || NumProjID(3)
trigger5 = Var(56) = 10
trigger6 = NumTarget(6)
trigger6 = Var(56) = 9
trigger7 = NumTarget(7)
trigger7 = Var(56) = 2
fvar(39) = 5.0
[State -2, TargetVelSet]
type = VarSet
triggerall = NumTarget || NumProj
trigger1 = NumTarget(2)
trigger1 = Var(56) = [1,2]
trigger2 = NumTarget(3) || NumProjID(3)
trigger2 = Var(56) = 6
trigger3 = NumTarget(13)
trigger3 = Var(56) = 5
trigger4 = NumTarget(4) || NumProjID(4)
trigger4 = Var(56) = 5
trigger5 = NumTarget(6)
trigger5 = Var(56) = [7,8]
trigger6 = NumTarget(7)
trigger6 = Var(56) = 1
trigger7 = NumTarget(7)
trigger7 = Var(56) = 4
trigger8 = NumTarget(8)
trigger8 = Var(56) = 3
fvar(39) = 6.0
[State -2, TargetVelSet]
type = VarSet
triggerall = NumTarget || NumProj
trigger1 = NumTarget(3) || NumProjID(3)
trigger1 = Var(56) = 4
trigger2 = NumTarget(6)
trigger2 = Var(56) = 6
trigger3 = NumTarget(6)
trigger3 = Var(56) = 10
fvar(39) = 7.0
[State -2, TargetVelSet]
type = VarSet
triggerall = NumTarget || NumProj
trigger1 = NumTarget(3) || NumProjID(3)
trigger1 = Var(56) = [1,3]
trigger2 = NumTarget(6)
trigger2 = Var(56) = 4
trigger3 = NumTarget(7)
trigger3 = Var(56) = 3
fvar(39) = 8.0
[State -2, TargetVelSet]
type = VarSet
triggerall = NumTarget || NumProj
trigger1 = NumTarget(6)
trigger1 = Var(56) = [1,3]
fvar(39) = 9.0
[State -2, TargetVelSet]
type = VarSet
triggerall = NumTarget || NumProj
trigger1 = NumTarget(2)
trigger1 = Var(56) = 4
fvar(39) = 10.0
[State -2, TargetVelSet]
type = VarSet
triggerall = NumTarget || NumProj
trigger1 = NumTarget(3) || NumProjID(3)
trigger1 = Var(56) = 5
fvar(39) = 14.0
[State -2, TargetVelSet]
type = VarSet
triggerall = NumTarget || NumProj
trigger1 = NumTarget(6)
trigger1 = Var(56) = 5
fvar(39) = 16.0
[State -2, TargetVelSet]
type = TargetVelSet
triggerall = NumTarget
triggerall = P2StateType != A && P2StateType != L
triggerall = Target, GetHitVar(YVel) = 0
triggerall = Var(50) = [1,2]
trigger1 = StateNo != [800,839]
x = FVar(39) * (160.0/179.0) * cond((var(5)&(2**29)) > 0, -1, 1) * (facing * target,facing)
[State -2, TargetVelAdd]
type = TargetVelAdd
triggerall = NumTarget
triggerall = P2StateType = A && P2StateType != L
triggerall = P2StateNo != [120,155]
triggerall = Target, GetHitVar(XVel) < 0
triggerall = cond(NumTarget(800), (Target, ID != Target(800), ID), 1)
triggerall = !MoveReversed && !MoveGuarded
trigger1 = StateNo != [800,839]
x = cond(target, Vel X >= 0,0,0.01953125)*(25.0/16.0)*(160.0/179.0)*cond((var(5)&(2**29)) > 0, 1, -1) * (facing * target,facing)
[State -2, TargetVelAdd]
type = TargetVelAdd
triggerall = NumTarget
triggerall = P2StateType = A && P2StateType != L
triggerall = P2StateNo != [120,155]
triggerall = Target, GetHitVar(XVel) > 0
triggerall = cond(NumTarget(800), (Target, ID != Target(800), ID), 1)
triggerall = !MoveReversed && !MoveGuarded
trigger1 = StateNo != [800,839]
x = cond(target, Vel X <= 0,0,-0.01953125)*(25.0/16.0)*(160.0/179.0)*cond((var(5)&(2**29)) > 0, 1, -1) * (facing * target,facing)
;---------------------------------------------------------------------------
; CUSTOM HIT_SLIDE
[Statedef 15000]
type = U
movetype = H
physics = N
[State 5001, 8]
type = SelfState
trigger1 = !Alive
value = 5050
ctrl = 1
[State 0, VelSet]
type = VelSet
trigger1 = Time = 0
x = 0
y = 0
[State 5001, 1]
type = HitVelSet
trigger1 = Time = 0
x = 0
[State 5001, 2]
type = ChangeAnim
triggerall = SelfAnimExist(anim + 5)
trigger1 = HitOver || AnimTime = 0
value = anim + 5
persistent = 0
[State 5001, 4]
type = VelSet
trigger1 = HitOver
x = 0
[State 5001, 5]
type = DefenceMulSet
trigger1 = HitOver
value = 1
[State 5001, 6]
type = CtrlSet
trigger1 = HitOver
value = 1
[State 5001, 7]
type = StateTypeSet
trigger1 = HitOver
movetype = I
[State 5001, 8]
type = SelfState
trigger1 = HitOver
value = PrevStateNo+1
ctrl = 1
;---------------------------------------------------------------------------
; CUSTOM HIT_L
[Statedef 15080]
type = U
movetype = H
physics = U
velset = 0,0
[State 5080, 0]
type = PosSet
trigger1 = Time = 0
y = 0
[State 5080, 0]
type = SelfState
trigger1 = Time = 0
value = 5080
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment