• Welcome, Guest. Please login.
 
November 26, 2024, 09:41:45 PM

News:

Visit our IRC channel, #TrinityMUGEN on irc.sorcery.net!


warusaki3 - what p1 can do p2 cannot

Started by tellerby, January 03, 2013, 07:21:38 PM

Previous topic - Next topic

tellerby

Not sure where to post this, but:

For the life of me, I'm trying to work with waru's characters but I'm constantly running into places where I have to guess which vars are doing what.

I'm trying to modify some of waru's hitdefs and custom states but am finding that they behave differently between p1 and p2. Does anyone know how I can stop this?

tellerby

January 03, 2013, 10:06:00 PM #1 Last Edit: January 03, 2013, 10:07:39 PM by tellerby
Sorry for the late reply Vans
This vid illustrates the problem:
nashgrab

Here are the definitions:
Nash Grab
[spoiler]
Quote;---------------------------------------------------------------------------
;ƒtƒ‰ƒCƒ"ƒOƒoƒXƒ^[ƒhƒƒbƒvi'Í,݃,[ƒVƒ‡ƒ"j
[Statedef 930616]
type    = A
movetype = A
physics = N
juggle = 0
ctrl = 0
anim = 950+var(6)
poweradd = 89*(1000+var(24))/1000*ifelse((var(15)||var(16)),0,1)

[State 900, 1]
type = HitDef
triggerall = enemy, Statetype = A
;triggerall = p2bodydist y = [-35,30]
triggerall = p2bodydist X = [-75,75]
triggerall = enemy, stateno = 936616
trigger1 = AnimElem = 1
attr = A, NT
hitflag = A
priority = 3, Miss
sparkno = -1
p1facing = ifelse(command = "holdfwdfwd", 1, -1)
p2facing = 1
p1stateno = 931
p2stateno = 939
guard.dist = 0
numhits = 0
;nochainID = var(40)

[State 900, 1]
type = HitDef
triggerall = enemy, Statetype = A
;triggerall = p2bodydist y = [-35,30]
triggerall = p2bodydist X = [-75,75]
triggerall = enemy, stateno = 936616
trigger1 = AnimElem = 1
attr = A, NT
hitflag = AF
priority = 3, Miss
sparkno = -1
p1facing = ifelse(command = "holdfwdfwd", 1, -1)
p2facing = 1
p1stateno = 931616
p2stateno = 939
guard.dist = 0
numhits = 0
;nochainID = var(40)

[State 900, 1]
type = HitDef
triggerall = P2Statetype = A
triggerall = P2bodydist X = [-25,20]
triggerall = enemy, stateno != 936616
trigger1 = AnimElem = 1
attr = A, NT
hitflag = A
priority = 3, Miss
sparkno = -1
p1facing = ifelse(command = "holdfwdfwd", 1, -1)
p2facing = 1
p1stateno = 931
p2stateno = 939
guard.dist = 0
numhits = 0
nochainID = var(40)

[State 900, 1]
type = HitDef
triggerall = P2Statetype = A
triggerall = P2bodydist X = [-25,20]
triggerall = enemy, stateno != 936616
trigger1 = AnimElem = 1
attr = A, NT
hitflag = AF
priority = 3, Miss
sparkno = -1
p1facing = ifelse(command = "holdfwdfwd", 1, -1)
p2facing = 1
p1stateno = 931616
p2stateno = 939
guard.dist = 0
numhits = 0
nochainID = var(40)

[State 900, 2]
type = ChangeState
Trigger1 = AnimTime = 0
value = 50616;ifelse(!vel X, 651, 650)
[/spoiler]


Opponent Grabbed State
[spoiler]
Quote;---------------------------------------------------------------------------
;ƒtƒ‰ƒCƒ"ƒOƒoƒXƒ^[ƒhƒƒbƒvi'ŠŽèj2
[Statedef 936616]
type    = A
movetype = H
physics = N
velset = 0,0

[State 0, NotHitBy]
type = NotHitBy
trigger1 = enemy, stateno != 930616
value = SCA,NT,ST,HT
;time = -1
ignorehitpause = 1

[State 902, 1]
type = ChangeAnim2
trigger1 = Time = 0
value = 936

[State 903, 2]
type = SelfState
trigger1 = AnimElemTime(1) > 18
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 0
value = 5100
[/spoiler]

I wanted to know why it is that when Charlie is p1 he is able to execute the grab perfectly, while when he is palyer2, he cannot.

tellerby

Quote from: Vans on January 04, 2013, 10:13:07 AM
Have you checked the CLSN boxes to see if they turn green on Sagat?
Well, I deactivated the nochainID via a ";" and I'm the one who placed the CLSN box into the custom state.

Quote from: Vans on January 04, 2013, 10:28:06 AM
Both of your hitdefs have the same conditions to trigger, depending on how accurate you were on P2dist you'll either get a throw that'll send P1 to 931 or state 931616, it's kinda badly made. :P
I probably should have mentioned that I pulled some cheap trickery. And if it's poorly made blame 2 or waru.

To summarize the following, you can ignore the p2stateno's.
P1's state starts at 930616, goes into 931616 when p2 is successfully grabbed, and goes to 932616 when the throw reaches its descent. When P1 reaches 932616, the "Targetstate" is set to 936616.
So:
P1 = 930616->931616->932616
P2 = doeesn't matter->doesn't matter->936616

The states
P1 - Throwing
[spoiler]
Quote;---------------------------------------------------------------------------
;ƒtƒ‰ƒCƒ"ƒOƒoƒXƒ^[ƒhƒƒbƒv
[Statedef 931616]
type    = A
movetype = A
physics = N
velset = 0,0

[State 901, Throw]
type = TargetState
trigger1 = Time = 0
value = 935

[State 820, Anim]
type = ChangeAnim
trigger1 = Time = 0
value = 931
persistent = 0

[State 3001, Width]
type = Width
trigger1 = 1
edge = 20,0

[State 901, Effect]
type = PlaySnd
trigger1 = AnimElem = 1
value = 900, 0
channel = 1

[State 901,1]
type = TargetBind
trigger1 = animelem = 1
pos = ceil(36*const(size.xscale)),ceil(-100*const(size.yscale))
time = -1

[State 901,1]
type = TargetBind
trigger1 = animelemtime(1) = 23
pos = ceil(8*const(size.xscale)),ceil(-100*const(size.yscale))
time = -1

[State 1100, Velocity]
type = VelAdd
trigger1 = animelemtime(1) > 11
y = .55

[State 901, State End]
type = ChangeState
trigger1 = Vel Y > 0 && Pos Y >= 0
value = 932616

;---------------------------------------------------------------------------
;ƒtƒ‰ƒCƒ"ƒOƒoƒXƒ^[ƒhƒƒbƒv2
[Statedef 932616]
type    = S
movetype = A
physics = N
velset = 0,0
anim = 932

[State 52, 2]
type = PosSet
trigger1 = Time = 0
y = 0

[State 52, Effect]
type = PlaySnd
trigger1 = Time = 0
value = 52, 0
channel = 20

[State 901, Throw]
type = TargetState
trigger1 = Time = 0
value = 936616

[State 901, Effect]
type = PlaySnd
trigger1 = AnimElemTime(1) = 4
value = 0, 4
channel = 0

[State 901, Effect]
type = PlaySnd
trigger1 = AnimElem = 1
value = 5100, 1

[State 901, Effect]
type = PlaySnd
trigger1 = AnimElem = 1
value = 2, 2

[State 1000, Spark]
type = Explod
trigger1 = AnimElem = 1
Anim = 8030
pos = 0, 0
postype = p1
ownpal = 1
sprpriority = -3
;pausemovetime = -1
supermovetime = -1
scale = .5,.5

[State 1000, Spark]
type = Explod
trigger1 = AnimElem = 1
Anim = 8310
pos = 0, 5
postype = p1
ownpal = 1
sprpriority = -3
;pausemovetime = -1
supermovetime = -1
scale = .5,.5

[State 1100, Fire1]
type = Explod
trigger1 = AnimElem = 1
Anim = 8200+(random%8)
pos = ceil(30*const(size.xscale)),ceil(-75*const(size.yscale))
postype = p1
ownpal = 1
ignorehitpause = 1
bindtime = 1
removeongethit = 1
ontop = 1

[State 901,1]
type = TargetBind
trigger1 = animelem = 1
pos = ceil(10*const(size.xscale)),ceil(-48*const(size.yscale))
time = 1

[State 3001, Add Hits!]
type = HitAdd
trigger1 = AnimElem = 1
value = 1

[State -2, Combo]
type = VarAdd
trigger1 = AnimElem = 1
var(17) = 1
ignorehitpause = 1

[State 180, 1]
type = VarAdd
trigger1 = AnimElem = 1
var(50)=500
ignorehitpause = 1
persistent = 1

[State 180, 1]
type = VarAdd
triggerall = var(17) >= 2
trigger1 = AnimElem = 1
var(50)=ifelse(var(17)<6,2000,500)
ignorehitpause = 1
persistent = 1

[State 901, Hurt]
type = TargetLifeAdd
trigger1 = AnimElem = 1
value = ceil(ifelse((-140*fvar(10))>-7,-7,(-140*fvar(10))))

[State 901, Hurt]
type = TargetPowerAdd
trigger1 = AnimElem = 1
value = 35

[State 903, EnvShake]
type = EnvShake
trigger1 = AnimElem = 1
time = 20

[State 901, State End]
type = ChangeState
trigger1 = AnimTime = 0
value = 40616
[/spoiler]

P2 - Thrown
[spoiler]
Quote;---------------------------------------------------------------------------
;ƒtƒ‰ƒCƒ"ƒOƒoƒXƒ^[ƒhƒƒbƒvi'ŠŽèj2
[Statedef 936616]
type    = A
movetype = H
physics = N
velset = 0,0

[State 0, NotHitBy]
type = NotHitBy
trigger1 = enemy, stateno != 930616
value = SCA,NT,ST,HT
;time = -1
ignorehitpause = 1

;[Sate 0, HitBy]
;type = HitBy
;trigger1 = enemy, stateno = 930616
;value = SCA,NA,SA,HA,NP,SP,HP
;time = -1
;ignorehitpause = 1

[State 902, 1]
type = ChangeAnim2
trigger1 = Time = 0
value = 936

[State 1201, screenbound]
type = screenbound
trigger1 = AnimElemTime(1) < 18
value = 1

[State 903, Vel]
type = VelSet
trigger1 = AnimElemTime(1) = 18
x = -1
y = -10.9
;567

[State 903, Vel]
type = veladd
trigger1 = AnimElemTime(1) > 18
y = .49

[State 903, EnvShake]
type = EnvShake
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 0
time = 20

[State 1300,Turn]
type = Turn
trigger1 = AnimElemTime(1) > 18
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 0

[State 903, 2]
type = SelfState
trigger1 = AnimElemTime(1) > 18
trigger1 = Vel Y > 0
trigger1 = Pos Y >= 0
value = 5100
[/spoiler]

tellerby

January 04, 2013, 02:37:52 PM #3 Last Edit: January 04, 2013, 02:45:18 PM by tellerby
Quote from: Vans on January 04, 2013, 02:02:02 PMIf you turn on collision display in mugen (ctrl + D for debug => ctrl + C for collision display), it should look like this:
http://i.imgur.com/Nz5yq.png
Actually I tend to use ctrl+C+C so solid hitboxes are displayed. I'm not that much of a newb, big guy. I just didn't want to rerecord the vid, but rest assured, waru's "large" throw boxes have been maintained and the custom state's newly added hitbox falls well within its range.

Quote from: Vans on January 04, 2013, 02:02:02 PM
Quote from: tellerby on January 04, 2013, 01:10:27 PM
Well, I deactivated the nochainID via a ";" and I'm the one who placed the CLSN box into the custom state.
That's not what I meant (and I still see nochainid flags active in that code you pasted, I was referring to those). Turning those nochainid flags off would give me more hints as to what's going on if it works.
I included specific triggers to assure that certain hitdefs would only be active while p2 was in state 936616 and to prevent it from being active otherwise, so:
[spoiler]
Throw
Quote
;---------------------------------------------------------------------------
;ƒtƒ‰ƒCƒ"ƒOƒoƒXƒ^[ƒhƒƒbƒvi'Í,݃,[ƒVƒ‡ƒ"j
[Statedef 930616]
type    = A
movetype = A
physics = N
juggle = 0
ctrl = 0
anim = 950+var(6)
poweradd = 89*(1000+var(24))/1000*ifelse((var(15)||var(16)),0,1)

[State 900, 1]
type = HitDef
triggerall = enemy, Statetype = A
;triggerall = p2bodydist y = [-35,30]
triggerall = p2bodydist X = [-75,75]
triggerall = enemy, stateno = 936616
trigger1 = AnimElem = 1
attr = A, NT
hitflag = A
priority = 3, Miss
sparkno = -1
p1facing = ifelse(command = "holdfwdfwd", 1, -1)
p2facing = 1
p1stateno = 931616
p2stateno = 939
guard.dist = 0
numhits = 0
;nochainID = var(40)

[State 900, 1]
type = HitDef
triggerall = enemy, Statetype = A
;triggerall = p2bodydist y = [-35,30]
triggerall = p2bodydist X = [-75,75]
triggerall = enemy, stateno = 936616
trigger1 = AnimElem = 1
attr = A, NT
hitflag = AF
priority = 3, Miss
sparkno = -1
p1facing = ifelse(command = "holdfwdfwd", 1, -1)
p2facing = 1
p1stateno = 931616
p2stateno = 939
guard.dist = 0
numhits = 0
;nochainID = var(40)

[State 900, 1]
type = HitDef
triggerall = P2Statetype = A
triggerall = P2bodydist X = [-25,20]
triggerall = enemy, stateno != 936616
trigger1 = AnimElem = 1
attr = A, NT
hitflag = A
priority = 3, Miss
sparkno = -1
p1facing = ifelse(command = "holdfwdfwd", 1, -1)
p2facing = 1
p1stateno = 931616
p2stateno = 939
guard.dist = 0
numhits = 0
nochainID = var(40)

[State 900, 1]
type = HitDef
triggerall = P2Statetype = A
triggerall = P2bodydist X = [-25,20]
triggerall = enemy, stateno != 936616
trigger1 = AnimElem = 1
attr = A, NT
hitflag = AF
priority = 3, Miss
sparkno = -1
p1facing = ifelse(command = "holdfwdfwd", 1, -1)
p2facing = 1
p1stateno = 931616
p2stateno = 939
guard.dist = 0
numhits = 0
nochainID = var(40)
[/spoiler]

[spoiler]
Thrown State
Quote
;---------------------------------------------------------------------------
;ƒtƒ‰ƒCƒ"ƒOƒoƒXƒ^[ƒhƒƒbƒvi'ŠŽèj2
[Statedef 936616]
type    = A
movetype = H
physics = N
velset = 0,0

[State 0, NotHitBy]
type = NotHitBy
trigger1 = enemy, stateno != 930616
value = SCA,NT,ST,HT
;time = -1
ignorehitpause = 1

;[Sate 0, HitBy]
;type = HitBy
;trigger1 = enemy, stateno = 930616
;value = SCA,NA,SA,HA,NP,SP,HP
;time = -1
;ignorehitpause = 1
[/spoiler]

Quote from: Vans on January 04, 2013, 02:02:02 PMNotice Jhun's CLSN2 box is green. This means you have a hitby flag active. If the "MUTEKI" message is displayed, he's invincible and cannot be hit.
I'm asking this because you have a nothitby on P2's state that sets muteki on certain conditions, I would like to see if that's turning itself on for some reason.
Hitby flag active? Does it also mean that you have a nothitby active without a "hitby" specifically defined?

Quote from: Vans on January 04, 2013, 02:02:02 PMFurthermore, have you tested this on any other characters other than Sagat?
Indeed I have. Same result.

Quote from: Vans on January 04, 2013, 02:02:02 PMI wish I could deliver more efficient help, but there's a lot of things that could be going on here.
Let's just make sure that the states are working correctly before digging into his variables.
Duly noted. Thanks for the help.

tellerby

Quote from: Vans on January 04, 2013, 02:43:57 PM
I'm guessing it didn't work even if you removed those nochainid flags?
Yep.

tellerby

I FUCKING LOVE YOU VANS!!!
Makes perfect sense.

I'll adjust it now. Would you sendspacing it back to me, BTW?
I'll test it first, though.