YesNoOk
avatar

how to do that Not everyone is invincible with super armor, like in mk9 (Read 17459 times)

Started by DosKillerFighterTrue, May 09, 2024, 10:19:31 am
Share this topic:
how to do that Not everyone is invincible with super armor, like in mk9
#1  May 09, 2024, 10:19:31 am
  • avatar
  • **
    • Argentina
Hello, I didn't really want to make this post but I gave up.
After the publication of "make shao kahn have protection his body only performs a special move like MK9" I learned how to use super armor.

I have also thought about how I would make sure that not everyone is invincible, for example combo breaker or x-ray that can affect super armor (like in mk9).

I tried to put trigger1 = stateno != 333 (it is the state of combo breaker) but it didn't work,
I tried searching on the internet, I didn't find anything, I tried to do it myself without help, sometimes it no longer detects any hits, it is no longer invincible with normal hits to super armor, or two double scorpion comes out after receiving the blow.
I tried everything possible but it wasn't that easy.

Code:
;============================================== ==
; Spear EX (Enhanced)---------------------------------------
;=================================================
[Statedef 10001]
type    = S
movetype= A
physics = S
juggle  = 10
poweradd= -1000
velset = 0,0
anim = 1000
ctrl = 0

[State 0, PalFX]
type = PalFX
trigger1 = numhelper(1006)
trigger1 = helper(1006), movetype = H
time = 3
add = 100,100,0
mul = 256,256,200
sinadd = 0,0,0,10
invertall = 1
color = 256

[State -1, Super Armor]
type = Helper
trigger1 = roundstate = 2
trigger1 = numhelper(1006) = 0 && movetype = A
helpertype = normal
name = "Super Armor"
ID = 1006
stateno = 1006
pos = 0,0
postype = p1
facing = 1
keyctrl = 0
ownpal = 1
supermovetime = 9999999
pausemovetime = 9999999
ignorehitpause = 0

[State 0, LifeAdd]
type = LifeAdd
trigger1 = numhelper(1006)
trigger1 = fvar(10) > 0
value = -floor(fvar(10))
ignorehitpause = 1

[State 0, VarAdd]
type = VarAdd
trigger1 = 1
fv = 10
value = -floor(fvar(10))
ignorehitpause=  1


[State 0, NotHitBy]
type = NotHitBy
trigger1 = numhelper(1006)
value = SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT
the super armor helper
Code:
;Super Armor Meat and Potatoes

[Statedef 1006]
type = U
movetype = I
physics = N
commented.
ctrl=0

;The helper will be invisible so you're not seeing double (Though you still will if you're drunk enough).
[State 0, AssertSpecial]
type = AssertSpecial
trigger1 = 1
flag = invisible

;This handler copies the root animation. This is best used if you maintain this super armor while going through various states.
;Delete this if you uncommented previously.
[State 0, ChangeAnim]
type = ChangeAnim
trigger1 = selfanimexist(root,anim)
elem = root,animelemno(0)
value = root,anim

;This makes sure the super armor stays on you if your character goes off screen.
[State 0, ScreenBound]
type = ScreenBound
trigger1 = 1
value = 0
movecamera = 0.0

;If this helper is hit (which it should be, since its root will be "invincible" as long as this helper exists, as you will see below)
[State 0, HitOverride]
type = HitOverride
trigger1 = 1
attr = SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT
stateno = 1007
time = 1
forceair = 0
ignorehitpause = 1


;This makes the helper follow the root to the ends of the earth.
[State 0, BindToRoot]
type = BindToRoot
trigger1 = 1
time = 1
pos = 0.0
ignorehitpause = 1

;IF YOU'RE DEAD, AND I'M YOU IN THE FUTURE, THEN I'M... Oh no.
[State 1]
type = DestroySelf
triggerall = root,stateno != [10001,10020]
triggerall = parent, stateno = 333
trigger2 = roundstate = 2
trigger1 = !root,alive
ignorehitpause = 0


;------------------------------------------------- ---------------------------
;Super Armor's Big Oof
;------------------------------------------------- ---------------------------
;Super Armor's Big Oof
[Statedef 1007]
type = U
movetype = H
physics = N
;anim = 10060 Same deal as above.
ctrl=0



;This protects the super armor while it is calculating damage. See final Changestate for more details.
[State 0, NotHitBy]
type = NotHitBy
trigger1 = 1
value = SCA,NA,SA,HA,NP,SP,HP,NT,ST,HT
time = 2



[State 0, ScreenBound]
type = ScreenBound
trigger1 = 1
value = 0
movecamera = 0.0

[State 0, BindToRoot]
type = BindToRoot
trigger1 = 1
time = 1
facing = 1
pos = 0.0
ignorehitpause = 1

;This tells the player how much damage they should take.
[State 0, ParentVarAdd]
type = ParentVarAdd
trigger1 = time = 0
fv = 10

value = gethitvar(damage)

;Optional - This Playsnd triggers when you get hit, so you can make a clunking or, my favorite, grunting sound on hit.
;[State 0, PlaySnd]
;type = PlaySnd
;trigger1 = time = 0
;trigger1 = gethitvar(damage)
;value = S170.0



[State 1]
type = DestroySelf
triggerall = root,stateno != [10001,10020]
trigger2 = roundstate = 2
trigger1 = !root,alive
ignorehitpause = 0

;Afer a period of time, go back to the previous state.
[State 0, ChangeState]
type = ChangeState
trigger1 = time >= 1 ;The time here is the period between when you can be hit again, as you are fully invincible in this state thanks to the first controller.
value = 1006
ctrl=0
Here is an example of how the result should be



If anyone helps me I will appreciate it

(I apologize for my English, I use Google Translator).
Last Edit: May 10, 2024, 05:28:24 am by DosKillerFighterTrue
Re: how to do that Not everyone is invincible with super armor, like in mk9
#2  May 11, 2024, 06:14:31 pm
  • *****
  • Shame on you!
    • USA
;IF YOU'RE DEAD, AND I'M YOU IN THE FUTURE, THEN I'M... Oh no.
[State 1]
type = DestroySelf
triggerall = root,stateno != [10001,10020]   
triggerall = parent, stateno = 333                 
trigger2 = roundstate = 2
trigger1 = !root,alive
ignorehitpause = 0

trigger 1 should be above trigger 2. I'm surprised it's not throwing errors. you have another spot where you do this.
Are parent and root different?  I thought P1 spawns the helper. So root and parent would be the same.
If they are the same, if parent is in state 333 it will always not be in states 10001 through 10020. I assume 10001 through 10020 are the special moves that will have the super armor.

This problem is tricky. I'm not sure if there is a standard way of breaking super armor. It seems like the characters you use will be the ones that have moves to hit P1. You can use that to your advantage to make the system you want.

If I was trying to make this system, I'd have a hitoverride that could be hit by ONE thing. Then the moves in P2 that get that attribute would be the combo breaker or x-ray moves.
I would think to make the combo breaker or x-ray moves pretend to be hyper throws. Which would help your character work against random characters like Zangief. I would make sense that he should be able to grab you and slam you with an Ultra move.

The X-ray move already works like a throw. P2 has to stop and do what P1 wants. P2 has to do P1's animations. The combo breaker can be labeled as a Ultra Throw move and still be 1 hit and have P2 react like it does now.

You should take away HT on your hitoverride and nothitby I think. Then make P2 have moves that are HT in their hitdef and see if you get better results.
I am not too familiar with super armor. I don't think I've made a character with it yet.
vVv Gouken718 vVv
Re: how to do that Not everyone is invincible with super armor, like in mk9
#3  May 11, 2024, 06:51:47 pm
  • avatar
  • **
    • Argentina
Thanks, but I get another problem, as I mentioned before, now I get a double scorpion after receiving the hit

Re: how to do that Not everyone is invincible with super armor, like in mk9
#4  May 12, 2024, 04:11:15 pm
  • avatar
  • **
    • Argentina
;IF YOU'RE DEAD, AND I'M YOU IN THE FUTURE, THEN I'M... Oh no.
[State 1]
type = DestroySelf
triggerall = root,stateno != [10001,10020]   
triggerall = parent, stateno = 333                 
trigger2 = roundstate = 2
trigger1 = !root,alive
ignorehitpause = 0

trigger 1 should be above trigger 2. I'm surprised it's not throwing errors. you have another spot where you do this.
Are parent and root different?  I thought P1 spawns the helper. So root and parent would be the same.
If they are the same, if parent is in state 333 it will always not be in states 10001 through 10020. I assume 10001 through 10020 are the special moves that will have the super armor.

This problem is tricky. I'm not sure if there is a standard way of breaking super armor. It seems like the characters you use will be the ones that have moves to hit P1. You can use that to your advantage to make the system you want.

If I was trying to make this system, I'd have a hitoverride that could be hit by ONE thing. Then the moves in P2 that get that attribute would be the combo breaker or x-ray moves.
I would think to make the combo breaker or x-ray moves pretend to be hyper throws. Which would help your character work against random characters like Zangief. I would make sense that he should be able to grab you and slam you with an Ultra move.

The X-ray move already works like a throw. P2 has to stop and do what P1 wants. P2 has to do P1's animations. The combo breaker can be labeled as a Ultra Throw move and still be 1 hit and have P2 react like it does now.

You should take away HT on your hitoverride and nothitby I think. Then make P2 have moves that are HT in their hitdef and see if you get better results.
I am not too familiar with super armor. I don't think I've made a character with it yet.

I don't know if the same thing happened when you tried to create a helper or you needed to destroy the helper and you got a double of the character. I don't even have any idea how to solve it.  And I forgot to tell you after modifying that you gave me the solution, now it is no longer immune from attacks or blows normal (even though it is not in HT, and as I said before too) so the solution you gave me doesn't work either.
Last Edit: May 12, 2024, 07:10:34 pm by DosKillerFighterTrue
Re: how to do that Not everyone is invincible with super armor, like in mk9
#5  May 13, 2024, 02:50:53 pm
  • *****
  • Shame on you!
    • USA
Throw this in Statedef -2

[State -2, DestroySelf]
type = DestroySelf
triggerAll = IsHelper(1030)
trigger1 = root,stateno != [1030,1060]
trigger2 = stateno != [1031,1061]
ignorehitpause = 1
 
But change the infos to your helper.
vVv Gouken718 vVv
Re: how to do that Not everyone is invincible with super armor, like in mk9
#6  May 13, 2024, 11:21:33 pm
  • avatar
  • **
    • Argentina
It didn't work, it's still the same, after the super armor helper information changed. double scorpion still comes out =(. (Unsolved problem!)
Re: how to do that Not everyone is invincible with super armor, like in mk9
#7  May 14, 2024, 05:45:57 am
  • *****
  • Shame on you!
    • USA
Does the 2nd Scorpion disappear at all?
vVv Gouken718 vVv
Re: how to do that Not everyone is invincible with super armor, like in mk9
#8  May 14, 2024, 06:47:24 pm
  • avatar
  • **
    • Argentina
Never, will continue forever.
Re: how to do that Not everyone is invincible with super armor, like in mk9
#9  May 16, 2024, 11:14:44 pm
  • avatar
  • **
    • Argentina
Re: how to do that Not everyone is invincible with super armor, like in mk9
#10  May 19, 2024, 08:42:14 am
  • *****
  • Shame on you!
    • USA
Did you change the values in my example to the ones that match your character?
vVv Gouken718 vVv
Re: how to do that Not everyone is invincible with super armor, like in mk9
#11  May 19, 2024, 09:54:37 am
  • avatar
  • **
    • Argentina
Yes, I did it, I set it to Statedef -2 and changed the values, and nothing happens.

Code:
;------------------------------------------------------------------------------------------------------------
[Statedef -2]

[State -2, DestroySelf]
type = DestroySelf
triggerAll = IsHelper(1006)
triggerall = root,stateno != [10001,10020]   
triggerall = parent, stateno = 333                 
trigger2 = roundstate = 2
trigger1 = !root,alive
ignorehitpause = 0

I hope I understood what you told me, whatever I did, I'm worried I didn't understand it or I was wrong.
Last Edit: May 19, 2024, 10:07:36 am by DosKillerFighterTrue
Re: how to do that Not everyone is invincible with super armor, like in mk9
#12  May 24, 2024, 04:47:11 am
  • avatar
  • **
    • Argentina

You should take away HT on your hitoverride and nothitby I think. Then make P2 have moves that are HT in their hitdef and see if you get better results.
I am not too familiar with super armor. I don't think I've made a character with it yet.

I already resolved it! You have to put "HitBy" for it to affect it
Code:
[State 0, NotHitBy]
type = NotHitBy
trigger1 = numhelper(1006)
value = SCA,NA,HA,NP,SP,SA,HP,NT,ST

[State 0, HitBy]
type = HitBy
trigger1 = 1
value = S, HT
time = 1
I investigated NotHitBy and HitBy a little more, after seeing another post on M.U.G.E.N Development Help that asks the following question
Quote
I'm trying to make a character that is ONLY hittable by projectiles and possibly helpers. I don't want normal attacks to do any damage, let alone phase him. Is there a way I can do that

thanks to Manson Rees from the user question. I understood. and thanks for trying to help me. and I show you the solution because, you asked
Quote
I'm not sure if there is a standard way of breaking super armor.
well there is, and it is also so that she learns something new that if there are solutions that she didn't know about. but is it possible that there will be more problems with super armor in the future? Maybe but for now let's leave it at that, if I need help with the super armor after giving up I will continue posting here.