Problems with giving cybasters batman an air parry

Started by goldeneragaming, January 01, 2016, 04:19:44 PM

Previous topic - Next topic

goldeneragaming

Standing parry and crouching parry work just fine but for some reason after the air parry the controls become inverted and I can't jump.

Any idea why this would happen?

goldeneragaming

I checked all of the .cns and the .cmd and the state numbers are not doubled.

The parry happens just fine but when batman lands right is left and left is right and for some reason batman can't jump.

Any ideas?

Odb718

that sounds completely impossible... the only thing I could think of is a noturn in an assert special.
What happens if P2 attacks him? Does he return to normal? What about after a regular jump?
vVv Gouken718 vVv SabreTooth718 vVv


goldeneragaming

Quote from: Odb718 on January 03, 2016, 03:24:04 AM
that sounds completely impossible... the only thing I could think of is a noturn in an assert special.
What happens if P2 attacks him? Does he return to normal? What about after a regular jump?

After a regular jump he returns to normal.

I didn't have assert special in the statedef for the jump parry so I doubt that was it but it may be.

I changed around a bunch of the code to be more organized and fit cybasters files.

I reached good results, forward is now forward and back is now back.

However, I can't seem to jump too high.

Batman does a half jump and then goes right back to the ground.

goldeneragaming

sorry for the double post but I want as many members of the mugen community who can help me to please view this:

Here's how I have the code set up now:

under the system.cns I have

Spoiler (click to show)
;----------------------------------------------------parry
[Statedef 3731]
type = U
movetype = I
physics = U
anim = 3731
velset = 0,0
ctrl = 0
poweradd = 0
juggle = 0
facep2 = 1
hitdefpersist = 0
movehitpersist = 0
hitcountpersist = 0
sprpriority = 2

[State 3731: AssertSpecial]
type = AssertSpecial
trigger1 = 1
flag = NoWalk

[State 3731: CtrlSet]
type = CtrlSet
trigger1 = (Time > 4) && (StateType = S)
value = 1

[State 3731: NotHitBy]
type = NotHitBy
trigger1 = 1
value = SCA

[State 3731: Pause]
type = Pause
trigger1 = (!Time)
time = 14
movetime = 14

[State 3731: VarSet]
type = VarSet
trigger1 = (!Time)
var(1) = 1

[State 3731: PalFX]
type = PalFX
trigger1 = (!Time)
time = 8
add = 0,0,0
mul = 256,256,256
sinadd = 75,100,255,8
invertall = 0
color = 256

[State 3731: EnvColor]
type = EnvColor
trigger1 = (!Time)
value = 255,255,255
time = 4

[State 3731: EnvShake]
type = EnvShake
trigger1 = (!Time)
time = 8
freq = 60
ampl = -2
phase = 90

[State 3738: PlaySnd]
type = PlaySnd
trigger1 = (!Time)
value = S0,760

[State 3731: Explod]
type = Explod
trigger1 = (!Time)
anim = 8360
id = 8360
pos = ceil(42 * const(size.xscale)), ceil(-71 * const(size.yscale))
pausemovetime = -1
supermovetime = -1
scale = 0.5, 0.5
ownpal = 1
postype = p1
facing = 1
vfacing = 1
bindtime = 1
vel = 0,0
accel = 0,0
random = 0,0
removetime = -2
supermove = 0
supermovetime = 0
pausemovetime = 12
scale = 1,1
sprpriority = 3
ontop = 0
shadow = 0,0,0
ownpal = 1
removeongethit = 1

[State 3731: ChangeState]
type = ChangeState
trigger1 = (!AnimTime)
value = IfElse(StateType = S,0,11)
ctrl = 1

[Statedef 3732]
type = U
movetype = I
physics = U
anim = 3732 ;<--- The first value should be the standing parry anim, 2nd being the crouching parry anim.
velset = 0,0
ctrl = 0
poweradd = 0
juggle = 0
facep2 = 1
hitdefpersist = 0
movehitpersist = 0
hitcountpersist = 0
sprpriority = 2

[State 3732: AssertSpecial]
type = AssertSpecial
trigger1 = 1
flag = NoWalk

[State 3732: CtrlSet]
type = CtrlSet
trigger1 = (Time > 4) && (StateType = S)
value = 1

[State 3732: NotHitBy]
type = NotHitBy
trigger1 = 1
value = SCA

[State 3732: Pause]
type = Pause
trigger1 = (!Time)
time = 14
movetime = 14

[State 3732: VarSet]
type = VarSet
trigger1 = (!Time)
var(1) = 1

[State 3732: PalFX]
type = PalFX
trigger1 = (!Time)
time = 8
add = 0,0,0
mul = 256,256,256
sinadd = 75,100,255,8
invertall = 0
color = 256

[State 3732: EnvColor]
type = EnvColor
trigger1 = (!Time)
value = 255,255,255
time = 4

[State 3732: EnvShake]
type = EnvShake
trigger1 = (!Time)
time = 8
freq = 60
ampl = -2
phase = 90

[State 3738: PlaySnd]
type = PlaySnd
trigger1 = (!Time)
value = S0,760

[State 3732: Explod]
type = Explod
trigger1 = (!Time)
anim = 8360
id = 8360
pos = ceil(42 * const(size.xscale)), ceil(-71 * const(size.yscale))
pausemovetime = -1
supermovetime = -1
scale = 0.5, 0.5
ownpal = 1
postype = p1
facing = 1
vfacing = 1
bindtime = 1
vel = 0,0
accel = 0,0
random = 0,0
removetime = -2
supermove = 0
supermovetime = 0
pausemovetime = 12
scale = 1,1
sprpriority = 3
ontop = 0
shadow = 0,0,0
ownpal = 1
removeongethit = 1

[State 3732: ChangeState]
type = ChangeState
trigger1 = (!AnimTime)
value = IfElse(StateType = S,0,11)
ctrl = 1

[Statedef 3733]
type = A
movetype = I
physics = N
anim = 3733
ctrl = 0
poweradd = 0
juggle = 0
facep2 = 0
hitdefpersist = 0
movehitpersist = 0
hitcountpersist = 0
sprpriority = 2

[State 3733: CtrlSet]
type = CtrlSet
trigger1 = (Time > 4)
value = 1

[State 3733: NotHitBy]
type = NotHitBy
trigger1 = (Time < 14)
value = SCA

[State 3733: Pause]
type = Pause
trigger1 = (!Time)
time = 14
movetime = 14

[State 3733: VarSet]
type = VarSet
trigger1 = (!Time)
var(1) = 1

[State 3733: Null]
type = Null
trigger1 = (!Time)
trigger1 = (FVar(0) := Vel X) && (FVar(1) := Vel Y)

[State 3733: VelSet]
type = VelSet
trigger1 = (Time)
x = 0
y = 0
persistent = 0

[State 3733: VelSet]
type = VelSet
trigger1 = (Time > 14)
x = FVar(0)
y = FVar(1)
persistent = 0

[State 3733: VelAdd]
type = VelAdd
trigger1 = (Time > 14)
y = 0.45

[State 3738: PlaySnd]
type = PlaySnd
trigger1 = (!Time)
value = S0,760

[State 3733: Explod]
type = Explod
trigger1 = (!Time)
anim = 8360
id = 8360
pos = ceil(21 * const(size.xscale)), ceil(-84 * const(size.yscale))
pausemovetime = -1
supermovetime = -1
scale = 0.5, 0.5
ownpal = 1
postype = p1
facing = 1
vfacing = 1
bindtime = 1
vel = 0,0
accel = 0,0
random = 0,0
removetime = -2
supermove = 0
supermovetime = 0
pausemovetime = 12
scale = 1,1
sprpriority = 3
ontop = 0
shadow = 0,0,0
ownpal = 1
removeongethit = 1

[State 3733: ChangeState]
type = ChangeState
trigger1 = (Pos Y >= 0) && (Vel Y > 0)
value = 52
ctrl = 1

[Statedef 3737]
type = A
movetype = I
physics = N
anim = 3737
poweradd = 0
juggle = 0
facep2 = 0
hitdefpersist = 0
movehitpersist = 0
hitcountpersist = 0
sprpriority = 2

[State 3737: ParentVarSet]
type = ParentVarSet
trigger1 = (!Time)
var(0) = 8
ignorehitpause = 1

[State 3737: DestroySelf]
type = DestroySelf
trigger1 = (Parent, Command != "holdfwd")

under state-2-3.cns I have

Spoiler (click to show)

[State -2: HitOverride]
type = HitOverride
triggerall = (StateType != A) && (Ctrl) && (Var(0) > 0)
trigger1 = (Command != "holddown") && (Command != "holdback")
attr = SA, AA, AP
slot = 0
stateno = 3731
ignorehitpause = 1

[State -2: HitOverride]
type = HitOverride
triggerall = (StateType != A) && (Ctrl) && (Var(0) > 0)
trigger1 = (Command != "holdfwd") && (Command != "holdback")
attr = C, AA, AP
slot = 0
stateno = 3732
ignorehitpause = 1

[State -2: HitOverride]
type = HitOverride
triggerall = ((StateNo = 50) || (StateNo = 3733)) && (Var(0) > 0)
trigger1 = (Command != "holddown") && (Command != "holdback")
attr = SCA, AA, AP
slot = 0
stateno = 3733
ignorehitpause = 1

[State -2: Helper]
type = Helper
trigger1 = ((StateNo = 50) || (StateNo = 3733)) && (Command = "holdfwd") && (NumHelper(3737) = 0)
helpertype = Normal
name = "Air Parry"
id = 3737
pos = 0,0
postype = p1
facing = 0
stateno = 3737
keyctrl = 0
ownpal = 1
supermovetime = 0
pausemovetime = 0
ignorehitpause = 1

[State -2: Null]
type = Null
trigger1 = (!Time) && (Var(1) = 0)
trigger1 = ((Command = "holdfwd") && (StateNo = 20)) ^^ ((Command = "holddown") && (StateNo = [10,11]))
trigger1 = (Var(0) := 8)
trigger2 = (Command != "holdfwd") && (Command != "holddown") && (Var(1) = 1)
trigger2 = (Var(1) := 0)
ignorehitpause = 1

[State -2: VarAdd]
type = VarAdd
trigger1 = (Var(0) > 0)
var(0) = -1
ignorehitpause = 1

This is like my 20th try here.

Trial and error.


Everyone else has the code in the first .cns and .cmd but I've tried that for bats and nothing.



I don't think this is an error on cybasters part because it seems his char is just so well made that I do not know where to put the code.

I can get the ground parries just fine but the air parry causes invert controls sometimes and the jump animation is completely messed up after a successful parry

PeXXeR

If all goes to shit, and you cant fix it try this Batman out
https://onedrive.live.com/?authkey=%21ALk8Dp3S21_UvxY&id=217F839EF145BBA2%21261&cid=217F839EF145BBA2
Its my fave batman tbh, it is an edit of the batman you are using.

goldeneragaming

Quote from: PeXXeR on January 03, 2016, 04:31:21 AM
If all goes to shit, and you cant fix it try this Batman out
https://onedrive.live.com/?authkey=%21ALk8Dp3S21_UvxY&id=217F839EF145BBA2%21261&cid=217F839EF145BBA2
Its my fave batman tbh, it is an edit of the batman you are using.

I'll give it a try but I really don't feel like re-doing the portraits and re-doing the code for the palettes so I think I'd rather just leave batman with no air parry.

goldeneragaming

Quote from: PeXXeR on January 03, 2016, 04:31:21 AM
If all goes to shit, and you cant fix it try this Batman out
https://onedrive.live.com/?authkey=%21ALk8Dp3S21_UvxY&id=217F839EF145BBA2%21261&cid=217F839EF145BBA2
Its my fave batman tbh, it is an edit of the batman you are using.

I tried it.

Here's a video where I show exactly why I will not be going with your favorite batman. Sorry.



I don't want the extra work of coding his A.I when there is a perfectly good batman out there with good a.i.

PeXXeR

No problem man,I play 90% of the time with my friends. So the A I is not a concern at least for now.

goldeneragaming

ok, so I decided to just leave the batman with no air parry but now he won't celebrate after his wins.

Any help?

I have no problem leaving him that way but his win poses are pretty damn epic.

Odb718

Fix both problems.
Use debug to watch what states are messing up and what animations are playing. CTRL+D will cycle debug on and off.
I'm not sure how adding in the parry code disabled victory poses.
Make sure your air parry is going from 3733 to state 52.
And learn to use DisplayToClipboard to get more readings of info from these states. Like fvar 0 and fvar 1.

----
You said you wanted to do this for a lot of characters right? If you learn how to fix this problem, the next character that has problems will be easier to figure out.
vVv Gouken718 vVv SabreTooth718 vVv


goldeneragaming

Quote from: Odb718 on January 04, 2016, 09:37:38 PM
Fix both problems.
Use debug to watch what states are messing up and what animations are playing. CTRL+D will cycle debug on and off.
I'm not sure how adding in the parry code disabled victory poses.
Make sure your air parry is going from 3733 to state 52.
And learn to use DisplayToClipboard to get more readings of info from these states. Like fvar 0 and fvar 1.

----
You said you wanted to do this for a lot of characters right? If you learn how to fix this problem, the next character that has problems will be easier to figure out.

thanks for the help and I will be doing this shortly.

I have given everyone parries and the only characters with problems are the batman and rogue, I had issues with blue mary but fixed them.

I'll be going back into the batmans code now

goldeneragaming

I fixed Rogues parries by changing her variables from being var(0) to var(34) and var(1) to var(35).

This was done because Rogue already used var(0) and var(1)

I came back into batmans file with my new found knowledge and noticed those variables were in use for Batmans win sequence and that was why he would no longer do his victory poses.

I changed the variables to something not found in any of .cns and .cmd and chose var(34) and var(37) I then put everything where it was in according to how I made Rogue and get parries sometimes but not often.

I then tried putting everything like Blue Mary and got nothing.

Please help.

Odb718

make the command for the parry one button, or two buttons together. I like two buttons together for testing. Usually B+Z or Y+C.
This way you know you're doing the move properly, and easily.
Second, displaytoscreen. Use it with the combination of all FOUR variables. 0, 1, 34, and 37. This way, when you press and activate your parry you'll be able to see if the variables arent setting properly.

Are the parries on the ground working? Just not the air? Does the air parry work just not all the time?
If youre having trouble getting moves off, try doing the two buttons test to make sure it's your fault and not the codes. Meaning you might want to adjust the ease of performing the move.
This is my Ibuki's counter
;Counters
[Command]
name = "CounterLow"
command = ~DB, D, DF, a
time = 20
You may want to adjust your time, and possibly add a buffer time to it.
vVv Gouken718 vVv SabreTooth718 vVv


goldeneragaming

Quote from: Odb718 on January 08, 2016, 05:43:32 PM
make the command for the parry one button, or two buttons together. I like two buttons together for testing. Usually B+Z or Y+C.
This way you know you're doing the move properly, and easily.
Second, displaytoscreen. Use it with the combination of all FOUR variables. 0, 1, 34, and 37. This way, when you press and activate your parry you'll be able to see if the variables arent setting properly.

Are the parries on the ground working? Just not the air? Does the air parry work just not all the time?
If youre having trouble getting moves off, try doing the two buttons test to make sure it's your fault and not the codes. Meaning you might want to adjust the ease of performing the move.
This is my Ibuki's counter
;Counters
[Command]
name = "CounterLow"
command = ~DB, D, DF, a
time = 20
You may want to adjust your time, and possibly add a buffer time to it.

what is display to screen?

Also, Seeing as how I've been using the same parry code for all my other characters, I'm fairly certain in my abilities to test for parries.

Odb718

http://mugenguild.com/forum/topics/the-mugen-docs-master-thread-168949.0.html
CTRL+F
DisplayToClip
and follow the link ;P

When I Dev/test my char(s) it's on the laptop keyboard. when I battle it's on the desktop + arcade stick. So I always use cheats for the keyboard. Mainly because of multiple key presses on the laptop wont work on this pos keyboard.

btw, look into AppendToClipboard too.
vVv Gouken718 vVv SabreTooth718 vVv


goldeneragaming

Quote from: Odb718 on January 09, 2016, 12:46:47 AM
http://mugenguild.com/forum/topics/the-mugen-docs-master-thread-168949.0.html
CTRL+F
DisplayToClip
and follow the link ;P

When I Dev/test my char(s) it's on the laptop keyboard. when I battle it's on the desktop + arcade stick. So I always use cheats for the keyboard. Mainly because of multiple key presses on the laptop wont work on this pos keyboard.

btw, look into AppendToClipboard too.

So I can do this in fighter factory 3 and never have to open mugen at all?

A little more help please? I'm completely lost here

Cyanide

This is the point where you start looking into the docs when you don't know what something does. DisplayToClipboard allows you to see the values of almost anything you like in real time, states, frames, time, the values of variables, your position on screen etc, it is a very useful tool for troubleshooting and one that you now need to start using.

Press ctrl+D and you can see a certain amount of stuff, you can also see the current stuff set up by displaytoclipboard if one is active.

One of the things about pasting code into a character is you need to be sure that NOTHING in your code is being reset, or overridden. You can't have a helper with the same ID, you can't have the same states, you can't have duplicate variables. You need to go across the entirety of the character you're editing to make sure that none of what you want to put in place is already in use.


In M.U.G.E.N there is no magic button

They say a little knowledge is a dangerous thing, but it's not one half so bad as a lot of ignorance.

goldeneragaming

Quote from: Cyanide on January 09, 2016, 01:24:11 AM
This is the point where you start looking into the docs when you don't know what something does. DisplayToClipboard allows you to see the values of almost anything you like in real time, states, frames, time, the values of variables, your position on screen etc, it is a very useful tool for troubleshooting and one that you now need to start using.

Press ctrl+D and you can see a certain amount of stuff, you can also see the current stuff set up by displaytoclipboard if one is active.

One of the things about pasting code into a character is you need to be sure that NOTHING in your code is being reset, or overridden. You can't have a helper with the same ID, you can't have the same states, you can't have duplicate variables. You need to go across the entirety of the character you're editing to make sure that none of what you want to put in place is already in use.

Thank you so very much. I know I don't have the same states or variables so I'll make a check on I.d.s

I have no idea how to use displaytoclipboard and I've read the doc a number of times.

goldeneragaming

So a bit of an update.

I searched for the Ids and it seems they are only used in the parry code.

I then changed the variables from 34 and 37 to 37 and 38.

It worked just fine so we have officially fixed the problems with the standing parry, crouching parry and the win poses.

We are back at the "jumping parry problem"

I tried changing the state number from 50 to 52 but that stopped the parry from happening.

I'm going to try displaytoclipboard so I'm off to mugen class :)