YesNoOk
avatar

How do you Faultless Defense correctly? (Read 60867 times)

Started by JasonThePhoenix, November 01, 2023, 05:08:21 am
Share this topic:
How do you Faultless Defense correctly?
#1  November 01, 2023, 05:08:21 am
  • **
    • UK
Tried taking inspiration from other characters who should have Faultless Defense but the Japanese characters are garbled and the english ones aren't much clearer and ChatGPT doesn't know how to disable chip damage or increase the pushback on blocked attacks either.

State code:
[Statedef 130]
type = S
physics = S

[State 130, 1]
type = ChangeAnim
trigger1 = 1
value = 130

[State 130, -1]
type = VarSet
trigger1 = 1
var(7) = 0

[State 130, -1]
type = VarAdd
trigger1 = command = "holdback" && power > 0
trigger2 = var(7) = 0
var(7) = 1

[State 130, 2]
type = PowerAdd
trigger1 = var(7) = 1
trigger2 = power > 0
value = -10

[State 130, 3]
type = HitDef
trigger1 = var(7) = 1
attr = A

[State 130, Hi to Lo]
type = StateTypeSet
trigger1 = command = "holddown"
statetype = C
physics = C

[State 130, Stop Guarding]
type = ChangeState
trigger1 = command != "holdback" || power <= 0
value = 120

[State 120, -1]
type = VarSet
trigger1 = 1
var(7) = 0

[State -2, -1]
type = VarSet
trigger1 = roundstate = 2
var(7) = 0


Controls:
[State -1, Faultless defense]
type = ChangeState
value = ifelse(statetype=A,132,ifelse(statetype=C,131,130))
triggerall = (var(7)!=1)&&(command="holdback")&&(command="holdYZ")
trigger1 = (ctrl)&&(power>0)
Re: How do you Faultless Defense correctly?
#2  November 01, 2023, 08:23:06 am
  • ******
    • Portugal
    • network.mugenguild.com/pots/
In Ikemen you can use the (I think) NoGuardDamage AssertSpecial flag. But I assume you're using Mugen. I've never done Faultless Defense, but I figure there are two ways to do it:

Easy but less accurate: You'd enter a certain state by doing the command and that state would use a HitOverride to block hits. I think you can disable damage if the second state is not movetype H.

Hard but more accurate: You'd override the guard states and code Faultless Defense side by side with regular defense. Damage would be undone by regaining a life amount equal to GetHitVar(Damage). You'd probably need to use a NoKO AssertSpecial flag and a LifeSet to 1 to avoid chip death.

Maybe with this info you can already understand how other chars did it.
You can help with Ikemen GO's development by trying out the latest development build and reporting any bugs on GitHub.
My Mugen and Ikemen content can also be found here.
Re: How do you Faultless Defense correctly?
#3  November 02, 2023, 10:12:40 pm
  • **
    • UK
In Ikemen you can use the (I think) NoGuardDamage AssertSpecial flag. But I assume you're using Mugen. I've never done Faultless Defense, but I figure there are two ways to do it:

Easy but less accurate: You'd enter a certain state by doing the command and that state would use a HitOverride to block hits. I think you can disable damage if the second state is not movetype H.

Hard but more accurate: You'd override the guard states and code Faultless Defense side by side with regular defense. Damage would be undone by regaining a life amount equal to GetHitVar(Damage). You'd probably need to use a NoKO AssertSpecial flag and a LifeSet to 1 to avoid chip death.

Maybe with this info you can already understand how other chars did it.

Well that didn't work.

https://www.youtube.com/watch?v=Kfkyf63rIMA

states:
;Faultless Defense
[Statedef 1315]
type = A
physics = N
anim = 1315
ctrl = 0

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

[State 1315, 2]
type = PowerAdd
trigger1 = AnimTime = 0
value = -5
;ignorehitpause =
;persistent =

[State 1315, 3]
type = HitOverride
trigger1 = AnimTime = 0
attr = SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT
slot = 0
stateno = -1
time = 1
forceair = 0
;ignorehitpause =
;persistent =

commands:

[State -1, Faultless defense]
type = ChangeState
value = 1315
triggerall = (command="holdback")&&(command="holdYZ")
trigger1 = (ctrl)&&(power>0)

edit:

This doesn't work either https://www.youtube.com/watch?v=X8myNI3beKA

[Statedef 1315]
type = A
physics = N
anim = 1315
ctrl = 0

[State 1315, 1]
type = ChangeState
trigger1 = command!="holdback"&&command!="holdYZ"
value = 0
ctrl = 1

[State 1315, 2]
type = PowerAdd
trigger1 = Time >= 0
value = -5
;ignorehitpause =
;persistent =

[State 1315, 3]
type = HitOverride
trigger1 = AnimTime = 0
attr = SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT
slot = 0
stateno = -1
time = 1
forceair = 0
;ignorehitpause =
;persistent =

[State -1, Faultless defense]
type = ChangeState
value = 1315
triggerall = (command="holdback")&&(command="holdYZ")
trigger1 = (ctrl)&&(power>0)


edit: This didn't work either

;Faultless Defense
[Statedef 1315]
type = A
physics = N
anim = 1315
ctrl = 0

[State 1315, 1]
type = ChangeState
trigger1 = command!="holdback"&&command != "yz"
value = 0
ctrl = 1

[State 1315, 2]
type = PowerAdd
trigger1 = Time >= 0
value = -5
;ignorehitpause =
;persistent =

[State 1315, 3]
type = HitOverride
trigger1 = AnimTime = 0
attr = SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT
slot = 0
stateno = -1
time = 1
forceair = 0
;ignorehitpause =
;persistent =

;FD
[Command]
name = "yz"
command = y+z
time = 1

Mugen is still being a total Mugen about this.

This is supposed to work like Blazblue's Barrier Block and Guilty Gear Xrd's Faultless Defense, where a special type of blocking costs meter but negates chip damage and increases the distance you and your foe are pushed away from each other when blocking his attacks.
https://www.dustloop.com/w/GGXRD-R2/Defense#Faultless_Defense
https://www.dustloop.com/w/BBCF/Mechanics#Barrier

It even enables blocking grounded attacks in the air (normally in my game you can't block grounded attacks in the air, or grounded moves that put you in the air like the Shoruyken)

Once this is working correctly, how do I limit its use to an onscreen Barrier Meter like in Blazblue?
Last Edit: November 04, 2023, 08:22:50 am by JasonThePhoenix
Re: How do you Faultless Defense correctly?
#4  November 06, 2023, 02:20:22 am
  • **
    • UK
Are site users supposed to make one new thread for every mugen development question they have?
Re: How do you Faultless Defense correctly?
#5  November 06, 2023, 01:30:00 pm
  • ****
  • a
    • crepa.neocities.org
Would be the ideal scenario, unless the question is related or similar.
Re: How do you Faultless Defense correctly?
#6  November 07, 2023, 06:16:23 am
  • **
    • UK
Re: How do you Faultless Defense correctly?
#7  November 10, 2023, 04:22:40 am
  • *****
  • Shame on you!
    • USA
Once this is working correctly, how do I limit its use to an onscreen Barrier Meter like in Blazblue?
triggerall = power >= 3000
or
triggerall = var(718) >= 3000  ;change the var number
Put one of those in your CMD for the move(s) you want to affect. The var should be what the on screen bar uses. And you can adjust the 3000 to what ever level you want.
vVv Ryuko718 Updated 10/31/22 vVv
Re: How do you Faultless Defense correctly?
#8  November 11, 2023, 02:44:56 am
  • **
    • UK
Once this is working correctly, how do I limit its use to an onscreen Barrier Meter like in Blazblue?
triggerall = power >= 3000
or
triggerall = var(718) >= 3000  ;change the var number
Put one of those in your CMD for the move(s) you want to affect. The var should be what the on screen bar uses. And you can adjust the 3000 to what ever level you want.

Thank you, I'll be sure to use that code to tie it to the barrier meter once I'm sure this works. Right now...

[Statedef 1315]
type = S
ctrl = 0
anim = 1315
velset = 0,0
movetype = I
physics = S
sprpriority = 2

[State 1315, 1]
type = CtrlSet
trigger1 = AnimTime = 0
value = 1

[State 1315, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

[State 1315, 3]
type = ChangeState
value = 130
triggerall = ctrl = 1
trigger1 = !(command="holdback") || !(command="holdYZ")

[State -1, Barrier]
type = ChangeState
value = 1315
triggerall = statetype = S
trigger1 = (command="holdback")&&(command="holdYZ")

How do I fix the bug where the player is able to immediately exit Barrier state to punish anything he blocked without taking chip damage?

Adding "CTRL" like the example below just makes the character endlessly flicker between being in state 1315 and out of it.

[State -1, Barrier]
type = ChangeState
value = 1315
triggerall = statetype = S
triggerall = ctrl
trigger1 = (command="holdback")&&(command="holdYZ")

And what's causing the lack of chip damage in state 1315 anyway? I thought I removed the code causing that because at the time it wasn't working. CTRL+F doesn't find anything else involving State 1315 anywhere in Controls or States. Or anything using the number 1315.

There is also an error where the player is able to input Faultless Defense during the "ROUND ONE... FIGHT!" intro sequence and exit it to break out of the intro sequence.

Also, pressing Y or Z while holding back enters the Faultless Defense Barrier state which is wrong (It should only happen when holding both back and Y+Z or when holding back and Y+Z and down).
Last Edit: November 11, 2023, 02:54:05 am by JasonThePhoenix
Re: How do you Faultless Defense correctly?
#9  November 11, 2023, 07:34:12 am
  • *****
  • Shame on you!
    • USA
It seems like you have a changestate looping back into the state it's in?? Im not exactly sure how this is supposed to work.
Looking back over some of the code,
trigger1 = (ctrl)&&(power>0)   ;<<< This 0 needs to be a 5. 
I think you use this in a couple spots. The move takes away 5 power, so P1 needs to have 5 or more.

Your changestate 130 seems like it'll never fire off. If P1 gains ctrl it'll switch to state 0 first. Which might be the stuttering you're getting.

"How do I fix the bug where the player is able to immediately exit Barrier state to punish anything he blocked without taking chip damage?"
Im not sure what part of this is a bug? Isn't this what you're aiming for?

You're also checking for
(command="holdYZ")
But I see
[Command]
name = "yz"
vVv Ryuko718 Updated 10/31/22 vVv
Re: How do you Faultless Defense correctly?
#10  November 12, 2023, 12:39:16 am
  • **
    • UK
It seems like you have a changestate looping back into the state it's in?? Im not exactly sure how this is supposed to work.
Looking back over some of the code,
trigger1 = (ctrl)&&(power>0)   ;<<< This 0 needs to be a 5. 
I think you use this in a couple spots. The move takes away 5 power, so P1 needs to have 5 or more.

Your changestate 130 seems like it'll never fire off. If P1 gains ctrl it'll switch to state 0 first. Which might be the stuttering you're getting.

"How do I fix the bug where the player is able to immediately exit Barrier state to punish anything he blocked without taking chip damage?"
Im not sure what part of this is a bug? Isn't this what you're aiming for?

You're also checking for
(command="holdYZ")
But I see
[Command]
name = "yz"

I've got this
;SPECIAL BLOCK
[Command]
name = "yz"
command = y+z
time = 1

and this

[Command]
name = "holdYZ"
command = /y+z
time = 1

I have no idea which input is correct for this engine.

It's supposed to work like this https://youtu.be/pszyi3S3cxU?si=5KEphpHQeAcbHHCI&t=40 and https://www.dustloop.com/w/BBCF/Mechanics#Barrier

A "Better block" executed by holding down Y+Z+Back, consuming the Barrier Gauge while active. Normally you only block when holding back and being attacked, but Barrier lets you Barrier Block even when you aren't being attacked.

Barrier Block negates chip damage taken while blocking, and increases the distance the foe is pushed away by attacks blocked by Barrier Block. It consumes Barrier Gauge while active. Barrier Gauge also goes down when blocking attacks, but less than it would if you used Barrier Block.

Barrier in Blazblue also slightly reduces the blockstun of enemy attacks but that's stupid, so I don't want that happening with my character's Barrier.

I'm taking inspiration from Blazblue's Barrier and Guilty Gear's RISC and Faultless Defense and Street Fighter 6's Drive Gauge.

When my character's Barrier Gauge is empty Barrier Block should be unuseable as the gauge slowly refills to 100% and then becomes useable again. While the Barrier Gauge is refilling the character should take 6 extra frames of blockstun when blocking attacks, take 50% more damage when hit, and take 100% more hitstun from all sources.

I have no idea how to accomplish this. Is that possible in this engine? If it's only possible when fighting against characters designed to be compatible with this, that's fine.
Last Edit: November 13, 2023, 06:36:11 am by JasonThePhoenix
Re: How do you Faultless Defense correctly?
#11  November 16, 2023, 01:19:38 am
  • **
    • UK
If the Barrier System I want my character to have is impossible in the mugen engine, that's fine. Just let me know and I'll scrap it. It seemed to work fine-ish when costing regular meter, Xrd's Faultless Defense isn't so bad.

Of course there is still the whole "can ignore blockstun completely" thing that annihilates game balance. Even Alpha Counters weren't that strong. Does anyone here know how to fix that?
Re: How do you Faultless Defense correctly?
#12  November 19, 2023, 04:03:08 am
  • **
If the Barrier System I want my character to have is impossible in the mugen engine, that's fine. Just let me know and I'll scrap it. It seemed to work fine-ish when costing regular meter, Xrd's Faultless Defense isn't so bad.

In theory it should be doo-able but might be tedious. 

Quote
[State 1315, 3]
type = HitOverride
trigger1 = AnimTime = 0
attr = SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT
slot = 0
stateno = -1
time = 1
forceair = 0
;ignorehitpause =
;persistent =
That won't work. You have no stateno for your character to go into during the hitoverride (-1 isn't an actual state) and the timing is too strict, it is literally just one tick, and also on the same tick that changes you back to statedef 0.  It should look something like this:

[State 1315, 3]
type = HitOverride
trigger1 = 1
attr = SCA,AA,AP;   All attacks and projectiles but not throws.
slot = 0
stateno = 9999 ;----A defined stateno that will put your character in that state.
time = 1
forceair = 0
ignorehitpause =1

Re: How do you Faultless Defense correctly?
#13  November 19, 2023, 05:08:38 am
  • **
    • UK
If the Barrier System I want my character to have is impossible in the mugen engine, that's fine. Just let me know and I'll scrap it. It seemed to work fine-ish when costing regular meter, Xrd's Faultless Defense isn't so bad.

In theory it should be doo-able but might be tedious. 

Quote
[State 1315, 3]
type = HitOverride
trigger1 = AnimTime = 0
attr = SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT
slot = 0
stateno = -1
time = 1
forceair = 0
;ignorehitpause =
;persistent =
That won't work. You have no stateno for your character to go into during the hitoverride (-1 isn't an actual state) and the timing is too strict, it is literally just one tick, and also on the same tick that changes you back to statedef 0.  It should look something like this:

[State 1315, 3]
type = HitOverride
trigger1 = 1
attr = SCA,AA,AP;   All attacks and projectiles but not throws.
slot = 0
stateno = 9999 ;----A defined stateno that will put your character in that state.
time = 1
forceair = 0
ignorehitpause =1



This doesn't seem right

[Statedef 1315]
type = S
ctrl = 0
anim = 1315
velset = 0,0
movetype = I
physics = S
sprpriority = 2

[State 1315, ChangeState]
type = ChangeState
value = 130
trigger1 = !(command="holdback") || !(command="yz")
; && hitshakeover

[State 1315, HitOverride]
type = HitOverride
trigger1 = 1
attr = SCA,AA,AP;   All attacks and projectiles but not throws.
slot = 0
stateno = 1315 ;----A defined stateno that will put your character in that state.
time = 1
forceair = 0
ignorehitpause =1

Or this

[Statedef 1315]
type = S
ctrl = 0
anim = 1315
velset = 0,0
movetype = I
physics = S
sprpriority = 2

[State 1315, ChangeState]
type = ChangeState
value = 130
trigger1 = !(command="holdback")
trigger1 = !(command="yz")
; && hitshakeover

[State 1315, HitOverride]
type = HitOverride
trigger1 = 1
attr = SCA,AA,AP;   All attacks and projectiles but not throws.
slot = 0
stateno = 1315 ;----A defined stateno that will put your character in that state.
time = 1
forceair = 0
ignorehitpause =1

What's the part that keeps you from immediately exiting the state after an attack hits, negating all blockstun and letting you counterattack immediately?

Right now you can also use it during the "ROUND ONE... FIGHT!" intro. How do I prevent this?
Re: How do you Faultless Defense correctly?
#14  November 19, 2023, 08:50:55 am
  • **
You shouldn't hitoverride back into the same state. You need to create a whole new state for the character to go into so for e.g. create a statedef 9999 (or use whatever) and have your character go into that.

Your statedef 1315 should look something like this at a bare minimum:
[Statedef 1315]
type = S
ctrl = 0
anim = 1315
velset = 0,0
movetype = I
physics = S
sprpriority = 2

[State 1315, HitOverride]
type = HitOverride
trigger1 = 1
attr = SCA,AA,AP;   All attacks and projectiles but not throws.
slot = 0
stateno = 9999;----A defined stateno that will put your character in that state.
time = 1
forceair = 0
ignorehitpause =1

[State 0, ChangeState]
type = ChangeState
trigger1 = !animtime
value =0
ctrl = 1
;-------------------------
There's no reason to change into state 130. The override state (statedef 9999 in this e.g.) will negate any damage and as long as you code in push back, it will push the opponent back as well like how you want it. 
Do note that any hitsparks from the opponents hitdef will be displayed so this is really the main drawback.

Re: How do you Faultless Defense correctly?
#15  November 20, 2023, 04:32:40 am
  • **
    • UK
You shouldn't hitoverride back into the same state. You need to create a whole new state for the character to go into so for e.g. create a statedef 9999 (or use whatever) and have your character go into that.

Your statedef 1315 should look something like this at a bare minimum:
[Statedef 1315]
type = S
ctrl = 0
anim = 1315
velset = 0,0
movetype = I
physics = S
sprpriority = 2

[State 1315, HitOverride]
type = HitOverride
trigger1 = 1
attr = SCA,AA,AP;   All attacks and projectiles but not throws.
slot = 0
stateno = 9999;----A defined stateno that will put your character in that state.
time = 1
forceair = 0
ignorehitpause =1

[State 0, ChangeState]
type = ChangeState
trigger1 = !animtime
value =0
ctrl = 1
;-------------------------
There's no reason to change into state 130. The override state (statedef 9999 in this e.g.) will negate any damage and as long as you code in push back, it will push the opponent back as well like how you want it. 
Do note that any hitsparks from the opponents hitdef will be displayed so this is really the main drawback.



What code is the override state supposed to use?

;---------------------------------------------------------------------------
;BARRIER
[Statedef 1315]
type = S
ctrl = 0
anim = 1315
velset = 0,0
movetype = I
physics = S
sprpriority = 2

[State 1315, HitOverride]
type = HitOverride
trigger1 = 1
attr = SCA,AA,AP;   All attacks and projectiles but not throws.
slot = 0
stateno = 9999;----A defined stateno that will put your character in that state.
time = 1
forceair = 0
ignorehitpause =1

[State 0, ChangeState]
type = ChangeState
trigger1 = !animtime
value =0
ctrl = 1
;---------------------------------------------------------------------------

This doesn't work.

Neither does this.

;---------------------------------------------------------------------------
;BARRIER
[Statedef 1315]
type = S
ctrl = 0
anim = 1315
velset = 0,0
movetype = I
physics = S
sprpriority = 2

[State 1315, HitOverride]
type = HitOverride
trigger1 = 1
attr = SCA,AA,AP;   All attacks and projectiles but not throws.
slot = 0
stateno = 9999;----A defined stateno that will put your character in that state.
time = 1
forceair = 0
ignorehitpause =1

[State 1315, ChangeState]
type = ChangeState
trigger1 = !animtime
value =0
ctrl = 1
;---------------------------------------------------------------------------

Animation 1315 is 2 frames long, how do you make it last until you're out of blockstun and you've stopped holding Back and Y+Z?

This doesn't work either.

;---------------------------------------------------------------------------
[Statedef 1315]
type = S
ctrl = 0
anim = 1315
velset = 0,0
movetype = I
physics = S
sprpriority = 2

[State 1315, HitOverride]
type = HitOverride
trigger1 = 1
attr = SCA,AA,AP;   All attacks and projectiles but not throws.
slot = 0
stateno = 9999;----A defined stateno that will put your character in that state.
time = 1
forceair = 0
ignorehitpause =1

[State 1315, ChangeState]
type = ChangeState
triggerall = HitOver && !HitPauseTime && stateno != 110 && hitshakeover && movetype != H
trigger1 = !(command="holdback") && !(command="yz")
value =0
ctrl = 1
;---------------------------------------------------------------------------
Re: How do you Faultless Defense correctly?
#16  November 20, 2023, 10:30:25 am
  • **
What code is the override state supposed to use?
It's just a state you want your character to go into if he's hit by the opponent.  For example, if you use state 40 (jump start):
[State 1315, HitOverride]
type = HitOverride
trigger1 = 1
attr = SCA,AA,AP;   All attacks and projectiles but not throws.
slot = 0
stateno = 40;----A defined stateno that will put your character in that state.
time = 1
forceair = 0
ignorehitpause =1

Then your character will jump the moment they are hit while in state 1315.

Quote
[State 1315, ChangeState]
type = ChangeState
triggerall = HitOver && !HitPauseTime && stateno != 110 && hitshakeover && movetype != H
trigger1 = !(command="holdback") && !(command="yz")
value =0
ctrl = 1
This changestate makes no sense for what you're doing and has no purpose being in it.

Quote
Animation 1315 is 2 frames long, how do you make it last until you're out of blockstun and you've stopped holding Back and Y+Z?
I think you've misunderstood some things.  Firstly, state 1315 is your barrier state that let's you transition into another state through hitoverride, meaning that it's not a guarding state.  It's a state meant for you to get-hit by the opponent.  Blockstun does not exist. 

If you want the barrier to hold while holding y+z and finish if you release it, then it's like many character's power up/charge moves. There's plenty of those characters around for you to look into how they code in the buttons.




Re: How do you Faultless Defense correctly?
#17  November 21, 2023, 02:22:50 am
  • **
    • UK
What code is the override state supposed to use?
It's just a state you want your character to go into if he's hit by the opponent.  For example, if you use state 40 (jump start):
[State 1315, HitOverride]
type = HitOverride
trigger1 = 1
attr = SCA,AA,AP;   All attacks and projectiles but not throws.
slot = 0
stateno = 40;----A defined stateno that will put your character in that state.
time = 1
forceair = 0
ignorehitpause =1

Then your character will jump the moment they are hit while in state 1315.

Quote
[State 1315, ChangeState]
type = ChangeState
triggerall = HitOver && !HitPauseTime && stateno != 110 && hitshakeover && movetype != H
trigger1 = !(command="holdback") && !(command="yz")
value =0
ctrl = 1
This changestate makes no sense for what you're doing and has no purpose being in it.

Quote
Animation 1315 is 2 frames long, how do you make it last until you're out of blockstun and you've stopped holding Back and Y+Z?
I think you've misunderstood some things.  Firstly, state 1315 is your barrier state that let's you transition into another state through hitoverride, meaning that it's not a guarding state.  It's a state meant for you to get-hit by the opponent.  Blockstun does not exist. 

If you want the barrier to hold while holding y+z and finish if you release it, then it's like many character's power up/charge moves. There's plenty of those characters around for you to look into how they code in the buttons.






I don't understand what you're saying. The character is supposed to spend meter on a better way of blocking attacks. Normal blocking shouldn't have any "anticipation" where you block an attack near you if holding back even if that attack won't hit you, but Barrier Blocking can be done whether your foe is attacking or not.

[Statedef 1315]
type = S
ctrl = 0
anim = 1315
velset = 0,0
movetype = A
physics = S
sprpriority = 2

[State 1315, HitOverride]
type = HitOverride
trigger1 = 1
attr = SCA,AA,AP;   All attacks and projectiles but not throws.
slot = 0
stateno = 40;----A defined stateno that will put your character in that state.
time = 1
forceair = 0
ignorehitpause =1

[State 1315, ChangeState]
type = ChangeState
triggerall = HitOver && !HitPauseTime && stateno != 110 && hitshakeover
trigger1 = !(command="holdback") && !(command="yz")
value =0
ctrl = 1

[State 1315, ChangeState]
type = ChangeState
trigger1 = AnimElem = 2
value =1315
ctrl = 0

This code makes me jump if I am hit while Barrier Blocking. Barrier Block is supposed to be like regular blocking except it doesn't take chip damage, and increases the space the foe is pushed back when hitting your Barrier Block. If my code is wrong, what's the right code to accomplish this?

https://youtu.be/lTDuYTNGnaQ?si=2cMxvKABXmCRRVRT&t=140
Re: How do you Faultless Defense correctly?
#18  November 21, 2023, 01:19:56 pm
  • **
Quote
This code makes me jump if I am hit while Barrier Blocking. Barrier Block is supposed to be like regular blocking except it doesn't take chip damage, and increases the space the foe is pushed back when hitting your Barrier Block. If my code is wrong, what's the right code to accomplish this?

You shouldn't copy and paste the code I showed.  Go back and read what I wrote. It was just an example I tried to explain how hitoverride works so of course it's not going to work for you.

Also I know exactly what you're trying to do. 
To get what you actually want, forget about creating a separate state like state 1315.
It is an entire system you are trying to create that will more than likely utilise codes from the negative states [statedef -1] and [statedef-2] as well as the guard states (which you'd also have to manually override).  The more accurate you want it, the more complex the codes across all the states become.   

In other words, it can't be done in a single state.
Re: How do you Faultless Defense correctly?
#19  December 03, 2023, 01:44:29 pm
  • **
    • UK
Quote
This code makes me jump if I am hit while Barrier Blocking. Barrier Block is supposed to be like regular blocking except it doesn't take chip damage, and increases the space the foe is pushed back when hitting your Barrier Block. If my code is wrong, what's the right code to accomplish this?

You shouldn't copy and paste the code I showed.  Go back and read what I wrote. It was just an example I tried to explain how hitoverride works so of course it's not going to work for you.

Also I know exactly what you're trying to do. 
To get what you actually want, forget about creating a separate state like state 1315.
It is an entire system you are trying to create that will more than likely utilise codes from the negative states [statedef -1] and [statedef-2] as well as the guard states (which you'd also have to manually override).  The more accurate you want it, the more complex the codes across all the states become.   

In other words, it can't be done in a single state.

Alright. So the entire system my character needs, how is it made?
Re: How do you Faultless Defense correctly?
#20  December 03, 2023, 07:07:54 pm
  • *****
  • Shame on you!
    • USA
It's built up; Step by step. Right now you have a good base to expand on.
Each extra attribute you want to add has to go where it's needed.
One tiny thing I thought up about the extra push back was Width.Follow that link to learn about how it works if you're unfamiliar. But basically, you could just increase your Width to push the character back just a tiny bit extra if the Variable is active.

Basically you need to write out a check list of all the attributes this system is going to need. You already have some of it made, so you'll be able to check those off. Then you can ask specific questions about each point.
The "How's it made" question isn't 1 answer. There's almost always 3 ways to do something in Mugen/Ikemen. And once you have a system that has 4 or 5 parts that means there's 12 to 15 different answers.

As to what you and SteelHammers have been talking about, it's usually a good idea to go to a 2nd state instead of looping right back into the same state. Looping right back into the same function(s) crashes a lot of programs in general. One thing to note, if you're playing Anim 1100 in state 1101 and make it enter state 1102. If you don't change the anim, anim 1100 will continue to play without skipping a beat. So the players will never notice anything changing. The 2nd state is also useful for setting stuff up. Like you know all the triggers for the changestate fired off to get there, so setting a var can be done at time = 0. That way there's NO WAY that var can be set in State 1101.

But back to the multiple answers thing. Since I'm imagining you're going to have the barrier be an explod on screen, you could make it a helper. Then the helper can use player push instead of P1 using Width. AND that means instead of using a variable to track certain things you could use the NumHelper to track it.

Right now, I'm not exactly sure what steps you've done and what step(s) you're trying to work on. Building an "invisible" step might come before a visible step is possible. Like you'd have to make step 6 first so that 3, 4, and 5 have the foundation to make 7 work with them.

Make a bullet point style list of all the steps for this, and under each bullet describe how you did it (if you have). We can give you the ideas and direction you need to keep going
vVv Ryuko718 Updated 10/31/22 vVv