YesNoOk
avatar

HitOverrides and unblockables (Read 1877 times)

Started by JustNoPoint, December 20, 2016, 03:30:52 am
Share this topic:
HitOverrides and unblockables
#1  December 20, 2016, 03:30:52 am
  • ******
    • www.justnopoint.com/
Just found a small issue I'm not sure how to fix with my clones. I use a HitOverride to make clones instantly die if hit by a Hyper. But some can block too. I wanted them to be able to block the super moves as well. However the HitOverride triggers even when they block.

So I come up with this

Code:
[State 0, HitOverride]
type = HitOverride
triggerall = IsHelper(3501) || IsHelper(3502)
trigger1 = 1
attr = SCA,HA,HP,HT       ;SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT
slot = 0
stateno = Cond((StateNo = [120,155]),120,3520)
time = -1
forceair = 0
ignorehitpause = 1
persistent = 1

With this they will block the supers. They don't get pushed back and such but I was okay with that issue. BUT they also block unblockable moves too. I can't figure out a way to either make them not enter state 3520 when hit while blocking. Or to NOT go into the 120 block state when hit with an unguardable move.

Any ideas?
Re: HitOverrides and unblockables
#2  December 20, 2016, 03:38:47 am
  • *****
  • Shame on you!
    • USA
I thought there was a check to see the attributes of the enemy's attack?
Are you using a common.cns? You might be able to edit state 120 for it to work a bit better.
Pretty sure you'll only have 1 tic in most instances for the unguardable move(s). I think having it in state 120, if it isn't will get rid of that problem. Because it'll be in 120 right?

Or you could edit the triggers to not activate when in state 120?
vVv Gouken718 vVv
Re: HitOverrides and unblockables
#3  December 20, 2016, 03:45:08 am
  • ******
    • www.justnopoint.com/
I can't find anything that can see if the opponents attack is unguardable. I could be missing it though.

The 1st thing I tried was

trigger1 = StateNo != [120,155]

The HitOverride still occurred.
Re: HitOverrides and unblockables
#4  December 20, 2016, 05:48:25 am
  • ****
  • Robotics Engineer
    • USA
    • altoiddealer@gmail.com
Does InGuardDist trigger when the opponent's move is unguardable?

Ok scratch that - just tested it and this would not work.


If you can buy a tick, then you could redirect a moveguarded trigger to the opponent (enemy,moveguarded)

Can you just use a ChangeState to 3520 from somewhere else, instead of HitOverride?  You could redirect a HitDefAttr trigger to detect Hyper attacks.

Last Edit: December 20, 2016, 03:36:23 pm by altoiddealer
Re: HitOverrides and unblockables
#5  December 22, 2016, 02:14:10 am
  • ******
    • www.justnopoint.com/
I tried turning it off directly in the common override states. No good.

Can you just use a ChangeState to 3520 from somewhere else, instead of HitOverride?  You could redirect a HitDefAttr trigger to detect Hyper attacks.
This won't work either. For physical attacks coming from the opponent it'd be more work as the attacker's HitDefAttr is never active as it hits the opponent. Which is why for the clones leaving code I had to make an invisible explod temporarily appear while they are in an attack state and I'm in a hit state. But the problem again goes back to helpers. As I cannot get their hitdefattr it'd make this pretty worthless.

They may just have to universally block unblockable stuff. I could make them not do so within the full game environment if I wanted to. Probably not before the upcoming X-mas release though :P
Re: HitOverrides and unblockables
#6  December 22, 2016, 09:42:47 am
  • ******
  • Legendary XIII
  • I am the eye of the storm to come!
    • New Zealand
    • network.mugenguild.com/cyanide/
I would simply change the hitoverride so it doesn't work if you're in state 120? That will allow them to block, and mugen's normal damage handling should then mean an unblockable breaks the guard state (you're forcing them back into it)

You can then use the hitstate itself, like 5000 or whatever to detect ishelper and have it go to 3250 straight away.

I assume your hitoverride is in state -1 and you have keyctrl = 1 set on the helpers? Your problems occur if p2 is using a custom state on his unblockable, and will need handling for that. Very importantly p2 ought to have an out if he loses binding, and your helpers should have an out if they are in a custom state. as in, in a hitstate that is not one of yours. State -1 ought to give you this level of handling, i know i've used state -1 to break out of things with movetype = H dickish as that is.


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.
Re: HitOverrides and unblockables
#7  December 22, 2016, 11:47:25 am
  • ******
    • www.justnopoint.com/
I would simply change the hitoverride so it doesn't work if you're in state 120?
How? Trigger1 = StateNo != 120 won't work. I also tried to disable it in the system.cns where I override it. You're right I use key to = 1 and -1.
Re: HitOverrides and unblockables
#8  December 22, 2016, 07:06:45 pm
  • ****
  • Robotics Engineer
    • USA
    • altoiddealer@gmail.com
I'm screwing around with the Piccolo you sent me about 2 months back.

It looks like most of the code you are talking about is there.... but there is no code to make the clone guard.  You must have added something in to do that since that version.


You used custom state #s for all the helper's movement, etc.  Is that still the case?

If so, wouldn't you use custom state #s for the guarding?

I did it very rough so it kinda just bugged and locked the clone in the guarding state (35240).

What I did is copied the default guarding states into helpers.cns and changed the numbers up.

In State -1 I added a changestate:
[State 0, Force Guard]
type = ChangeState
triggerall = IsHelper(3501) || IsHelper(3502)
trigger1 = InGuardDist
value = 35220


While he is guarding, this does not trigger:

[State 0, HitOverride]
type = HitOverride
triggerall = IsHelper(3501) || IsHelper(3502)
trigger1 = StateNo != [35220,35255]
attr = SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT
slot = 0
stateno = Cond((StateNo = [35220,35255]),35220,3520)
time = -1
forceair = 0
ignorehitpause = 1
persistent = 1

Re: HitOverrides and unblockables
#9  December 22, 2016, 07:35:08 pm
  • ******
    • www.justnopoint.com/
I thought guarding is hardcoded. Does it still count as guarding? Like guard sparks, etc???

Also that version is still up to date. The guard triggers are in the helpers.cns. Stand and walk. The actual guard code is in system.cns
Re: HitOverrides and unblockables
#10  December 22, 2016, 07:46:57 pm
  • ****
  • Robotics Engineer
    • USA
    • altoiddealer@gmail.com
After removing the HitOverRide, I'm not seeing the clones guard, ever.

I was trying to test and see for myself about the StateNo != 120, but I'm not able to get the clones to even go into State 120.

Are you watching their statenos in Debug, and seeing them go into State 120... and the HitOverRide is still triggering?


So giving custom guard statenos is probably a bad idea :P  Didn't think of guardsparks, etc.

However, I'm sure you need to at least override/modify the Guard states, to send the clones back to their custom states instead of Piccolo's states (IsHelper(3501) || IsHelper(3502))

Last Edit: December 22, 2016, 07:52:15 pm by altoiddealer
Re: HitOverrides and unblockables
#11  December 22, 2016, 08:06:28 pm
  • ******
    • www.justnopoint.com/
Use the down + Start testing clone to test guarding. The easiest way is to start charging Special Beam Canon in front of the clone.

QCB, F+P hold punch. If you charge it to max it's unblockable. He will start flashing. Only the testing clone and the LK clone can guard. So you may not be using the correct clone.
Re: HitOverrides and unblockables
#12  December 22, 2016, 08:17:35 pm
  • ****
  • Robotics Engineer
    • USA
    • altoiddealer@gmail.com
How do you make the testing clone guard?  I removed the HitOverRide and he doesn't seem to guard anything.

Re: HitOverrides and unblockables
#13  December 22, 2016, 09:05:07 pm
  • ******
    • www.justnopoint.com/
I sent you the link just in case. I'm sure it's the same though.

The easiest way for me to get it to block is just stand in front of it charging the SBC. They block randomly but I've never seen it NOT try to block that one. Don't fire it till it blocks.
Re: HitOverrides and unblockables
#14  December 22, 2016, 10:05:29 pm
  • ****
  • Robotics Engineer
    • USA
    • altoiddealer@gmail.com
Yeah, this controller is acting very odd with the StateNo trigger.

I'm not sure if this gives you an idea for tinkering... this is against that Super, whether fully charged or not.

Spoiler: ALWAYS Triggers (click to see content)

Spoiler: NEVER triggers (click to see content)

What I find very odd is that this triggers when the helper is guarding:
Spoiler, click to toggle visibilty
Watching the helper's StateNo in debug, this doesn't make sense.


*Edit* Side note: Piccolos walk looks weird to me.  The timing of his feet makes it look like he shouldn't be moving forward in one fluid motion, but more like he takes a fast step then a slow one.

Last Edit: December 22, 2016, 10:16:01 pm by altoiddealer
Re: HitOverrides and unblockables
#15  December 23, 2016, 12:37:18 am
  • ******
    • www.justnopoint.com/
Something that I may have to try is to set a variable in the clone while it is in a block state. In my testing it looks like the stateno triggers work for any state besides blocking states.

So maybe I could disable the hitoverride using that.
Re: HitOverrides and unblockables
#16  December 23, 2016, 05:57:49 am
  • ******
    • www.justnopoint.com/
LOL

Altoid, I'm flat out ignorant.

[State 0, HitOverride]
type = HitOverride
triggerall = IsHelper(3501) || IsHelper(3502)
trigger1 = StateNo != [120,155]
attr = SCA,HA,HP,HT       ;SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT
slot = 0
stateno = 3520
time = 1
forceair = 0
ignorehitpause = 1
persistent = 1
Re: HitOverrides and unblockables
#17  December 23, 2016, 03:20:19 pm
  • ****
  • Robotics Engineer
    • USA
    • altoiddealer@gmail.com
lol nice