News:

MFG's Character of the Month: October 2026 Nominations

Main Menu

Juggle combo programation. How could I do this?

Started by PorraJinta, February 27, 2017, 04:52:04 AM

Previous topic - Next topic

PorraJinta

I have a question! I'm editing a Marco Rodrigues (Kushnood Butt) in SNK version. I put MAX on it and look great, though, there is something I want to do and I do not know how.

Let's suppose I have his shoryuken, "F, D, DF, punch" and, we also have his dash: "D, DB, B, kick", then I'd like to do: Shoryuken, dash, shoryuken, dash ... But I can not put "juggle = 0" at the beginning of the hit, because if I do that, shoryuken will hit even when the previous attack is not a counter. How can I program this hitdef so that it only works in combos and etc?

I would also like to do this with your projectile, just like Ryo does in KOF XIII, shoryuken, oouken, oouken ... but, again, if I put juggle 0, the magic hits the opponent at any time and I do not want it .

Thanks for reading!

Memo

Id = statedef number and chainid = statedef number, do you know how to
Use Id and chainid??

Niitris

#2
Quote from: PorraJinta on February 27, 2017, 04:52:04 AM
But I can not put "juggle = 0" at the beginning of the hit, because if I do that, shoryuken will hit even when the previous attack is not a counter. How can I program this hitdef so that it only works in combos and etc?

To make juggles work off counter hit, you need to have a variable to detect counter hits.

edit: sorry, misread :P

PorraJinta

Quote from: Memo on February 27, 2017, 09:13:05 AM
Id = statedef number and chainid = statedef number, do you know how to
Use Id and chainid??

Sorry, bro. But I don't know. I already saw some programations in a K' that I have. His hitdefs are too goods but, I could not understand cuz in specifications on CNS, shows weird letters. He gots ID and NochainID. NochainID its var(6) in most, but IDs some até 1,2,3 and 256. I don't know.

PorraJinta

Quote from: Niitris on February 27, 2017, 09:19:50 AM
Quote from: PorraJinta on February 27, 2017, 04:52:04 AM
But I can not put "juggle = 0" at the beginning of the hit, because if I do that, shoryuken will hit even when the previous attack is not a counter. How can I program this hitdef so that it only works in combos and etc?

To make juggles work off counter hit, you need to have a variable to detect counter hits.

Counter hits isn't the question. With juggle=0, the DP or whatever will hits in all ocasions

Memo

#5
it might work for you and ill type an example of how it works

say I want statedef 2000 to combo into 2001

in the hitdef of statedef 2000 I will put id = 2000, I gave that hitdef an id number

now in the hitdef of statedef 2001 ill put chainid = 2000

it might work try it out

PorraJinta

So, If Isso put ID:1200 chainID: 1200 in the same hitdef works? I'll try It later. Thanks, bro.

Niitris

He meant put the ID:No in the first StateDef, and then put the chainID:No in the second.

PorraJinta

Here are a demonstration of what I wanted to do:

The DP are with juggle=0 and the dash don't hits the opponent. But, as I said, if I put juggle 0, that hit takes the opponent in every situation.
Counter, not counter, recovering, stuff. I just want to combos. Understand?



Memo

Post the attacks statedefs up so I can see them

PorraJinta

Okay!

Here it's the strong shoryuken:
;‹­ŒÕ–C
[Statedef 1045]
type = S
movetype = A
physics = N
velset = 0, 0
ctrl = 0
facep2 = 1
anim = 1045
poweradd = 80;(109 * (var(13) = -1))
sprpriority = 2
juggle = IfElse((PrevStateNo=[1000,1999]),0,8)

[State a];"_–Å
type = palfx
triggerall = var(40) > 0
triggerall = time <= 5
trigger1 = (prevstateno = [1000,2999])
time = 1
add = 256,256,256
color = 1
ignorehitpause = 1

[State a];MAXƒQ[ƒW
type = varadd
triggerall = var(40) > 0
triggerall = time = 0
trigger1 = (prevstateno = [1000,2999])
v = 40
value = -150

;[State 1045, cancel flag reset]
;type = varSet
;trigger1 = time = 0
;var(1) = 0

[state a]
type = nothitby
trigger1 = animelem = 4,<0
value = SCA

[State 1045, air state]
type = stateTypeSet
trigger1 = animElem = 7
statetype = A

[State 1045, ground state]
type = stateTypeSet
trigger1 = animElem = 16
stateType = S

[State 1045, play voice]
type = playSnd
trigger1 = animElem = 1
value = s2, 4

[State 1040, play se]
type = playSnd
trigger1 = animElem = 6
value = f1000,5;1, 10
;channel = 1

[State 1040, play se]
type = playSnd
trigger1 = animElem = 16
value = f50,5;1, 7
channel = 1

[State 1045, initial velocity]
type = velSet
trigger1 = animElem = 1
x = 3.5

[State 1045, initial velocity]
type = velSet
trigger1 = animElem = 6
y = -8.5

[State 1045, gravity]
type = velAdd
trigger1 = animElemTime(7) >= 0
trigger1 = animElemTime(16) < 0
y = 0.44

[State 1045, accelerate]
type = velAdd
trigger1 = animElem = 7
x = 1.0

[State 1045, decelerate]
type = velAdd
trigger1 = animElemTime(9) = 3
x = -3.0

;[State 1045, decelerate]
;type = null ;velAdd
;trigger1 = animElem = 19
;x = -3.5

[State 1045, land]
type = velSet
trigger1 = animElem = 16
x = 0
y = 0

[State 1045, land]
type = posSet
trigger1 = animElem = 16
y = 0

[State 1045, explod]
type = explod
trigger1 = animElem = 7
anim = f8053;1042
sprpriority = 3
ownpal = 1
removeongethit = 1
pos = 0, 20
scale = const(size.xscale), const(size.yscale)


[State 320, 3]
type = Hitdef
trigger1 = AnimElem = 5
attr = S, NP
animtype = Medium
damage = 68,10
hitflag = MAF
guardflag = M
pausetime = 12,13
sparkno = 3
guard.sparkno = 50
sparkxy = -15, floor(-60 * const(size.yscale))
hitsound = f5,28
guardsound = f6,1
priority = 7, Hit
ground.type = Low
ground.slidetime = 17
ground.hittime = 17
ground.velocity = -12
air.velocity = -2,-8.5
airguard.velocity = -4,-10
ground.cornerpush.veloff = -0
air.cornerpush.veloff = -0
guard.cornerpush.veloff = -0
guard.velocity = -12
guard.slidetime = 17
;guard.hittime = 17
getpower = 45,45
givepower = 50,20
yaccel = .5
fall.yvelocity = -2.0
air.fall = 1

[State 320, 3]
type = HitDef
trigger1 = animElem = 7
attr = S, NP
animtype = Medium
damage = 68,10
hitflag = MAF
guardflag = M
pausetime = 12,12
sparkno = 3
guard.sparkno = 50
sparkxy = -11,-90
hitsound = f5,28
guardsound = f6,1
priority = 7, Hit
ground.type = Low
ground.slidetime = 17
ground.hittime = 17
ground.velocity = -2,-11
air.velocity = -2,-11
airguard.velocity = -4,-11
ground.cornerpush.veloff = -0
air.cornerpush.veloff = -0
guard.cornerpush.veloff = -0
guard.velocity = -12
guard.slidetime = 17
;guard.hittime = 17
getpower = 90,90
givepower = 50,20
yaccel = .5
fall.yvelocity = -3.4
fall = 1
fall.recovertime = 40

[State 1045, idle]
type = stateTypeSet
trigger1 = animElem = 9
movetype = I

;[State 1045, braking]
;type = changeState
;triggerall = animElem = 6
;trigger1 = command = "hold_a"
;trigger1 = command = "hold_x"
;trigger2 = command = "hold_z"
;value = 1041

[State 1045, state end]
type = changeState
trigger1 = animTime = 0
value = 0
ctrl = 1

PorraJinta

The dash.

;ã'i•¥,¢
[Statedef 1030]
type = S
movetype = I
physics = N
velset = 0, 0
ctrl = 0
facep2 = 1
anim = 1030
poweradd = 70;(94 * (var(13) = -1))
sprpriority = 2

[State a];"_–Å
type = palfx
triggerall = var(40) > 0
triggerall = time <= 5
trigger1 = (prevstateno = [1000,2999])
time = 1
add = 256,256,256
color = 1
ignorehitpause = 1

[State a];MAXƒQ[ƒW
type = varadd
triggerall = var(40) > 0
triggerall = time = 0
trigger1 = (prevstateno = [1000,2999])
v = 40
value = -150

;[State 1030, cancel flag reset]
;type = varSet
;trigger1 = time = 0
;var(1) = 0

[State 1030, play voice]
type = playSnd
trigger1 = time = 0
value = s2, 13
channel = 0

[State 1030, play se]
type = playSnd
trigger1 = animElem = 4
value = f1000,21;1, 9
;channel = 1

[State 1030, initial velocity]
type = velSet
trigger1 = animElem = 3
x = 9.5

[State 1030, decelerate]
type = velAdd
trigger1 = animElem = 8
x = -9

[State 1030, decelerate]
type = velAdd
trigger1 = animElem = 10
x = -0.5

[State 1030, reversal def]
type = reversalDef
trigger1 = animElem = 4
reversal.attr = SCA, NA, SA, HA
pausetime = 8, 7
sparkno = 81;S6100
sparkxy = 20, 0
hitsound = f900,4;S1, 1
p1stateno = 1031

[State 1030, state end]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

PorraJinta

And, the fireball:

;ŽãŒÕàŠŒ
[Statedef 1000]
type = S
movetype = A
physics = N
velset = 0, 0
ctrl = 0
facep2 = 1
anim = 1000
;poweradd = (94 * (var(13) = -1))
sprpriority = 2

[State a];"_–Å
type = palfx
triggerall = var(40) > 0
triggerall = time <= 5
trigger1 = (prevstateno = [1000,2999])
time = 1
add = 256,256,256
color = 1
ignorehitpause = 1

[State a];MAXƒQ[ƒW
type = varadd
triggerall = var(40) > 0
triggerall = time = 0
trigger1 = (prevstateno = [1000,2999])
v = 40
value = -150

;[State 1000, cancel flag reset]
;type = varSet
;trigger1 = time = 0
;var(1) = 0

[State 1000, play voice]
type = playSnd
trigger1 = animElem = 1
value = s2, 5
channel = 0

[State 1000, play se]
type = playSnd
trigger1 = animElem = 7
value = f1000,0;1, 4
;channel = 1

;[State 1000, explod]
;type = Explod
;trigger1 = time = 0
;anim = 1001
;sprpriority = 4
;removeongethit = 1
;ignorehitpause = 1
;scale = const(size.xscale), const(size.yscale)

[State a]
type = helper
trigger1 = time = 0
name = "shadow"
helpertype = normal
ID = 1001
pos = 0,0
postype = p1
stateno = 1001
keyctrl = 0
ownpal = 1

;[State 1000, helper]
;type = helper
;trigger1 = animelem = 9
;helpertype = normal
;name = "koou"
;ID = 1001
;stateno = 1001
;pos = floor(72 * const(size.xscale)), floor(-60 * const(size.yscale))
;postype = p1
;ownpal = 1
;ignorehitpause = 1

[State 3000]
type = Projectile
trigger1 = AnimElem = 9
projID = 1000
projanim = 1002
projremove = 1
;projpriority = 1
projhitanim = 1003
projremanim = 1003
projsprpriority = 5
projshadow = 0,0,0
projremovetime = -1
getpower = 50
ownpal = 0
offset = 60,-75;floor(72 * const(size.xscale)), floor(-60 * const(size.yscale))
velocity = 5, 0
attr = S, SP
animtype = Hard
damage = 80 ,8
hitflag = MAF
guardflag = M
hitsound = f5,1
guardsound = f6,1
pausetime = 0,10
sparkno = 3
guard.sparkno = 50
sparkxy = -10,-5
ground.type = High
ground.hittime = 21
ground.slidetime = 21
ground.velocity = -9
air.juggle = 8
air.velocity = -3.6,-3.8
air.fall = 1
fall.recover = 0
afterimage.length = 4
afterimage.PalBright = 10,0,0
afterimage.PalContrast =105,105,105
afterimage.PalAdd = 0,0,0
afterimage.palmul = 0.9,0.9,0.9
afterimage.TimeGap  = 2
afterimage.FrameGap = 1
afterimage.Trans = Add
afterimage.time = 9999
afterimage.Sprpriority = 9999

[State 1000, idle]
type = stateTypeSet
trigger1 = animElem = 10
movetype = I

[State 1000, state end]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1


Memo

Quote from: PorraJinta on April 07, 2017, 08:49:40 AM
Where are you, Memo?

My bad I've been busy but I'll take a look at this when I get home


Memo

Is there a special state or var your char uses when he's doing
Those attacks you want to juggle?