YesNoOk
avatar

ID, ChainID, NochainID problems. Nothing works (Read 2286 times)

Started by Odb718, November 14, 2011, 08:01:41 am
Share this topic:
ID, ChainID, NochainID problems. Nothing works
#1  November 14, 2011, 08:01:41 am
  • *****
  • Shame on you!
    • USA
I'm trying to stop a simple infinite. Medium kick into jumping fierce kick, repeat.
The way I read
Quote
id = id_number (int)
    Idetifier for the hit. Used for chain moves. You can use this number to later detect if a player was last hit by this particular HitDef. This number is called the targetID. It is used in controllers such as TargetBind, or in the target(ID) redirection keyword. Valid values are all values >= 1. If omitted, defaults to 0 (no ID). TargetID is not to be confused with PlayerID.
chainID = id_number (int)
    Main use of this is for chain moves. If P2 was last hit by a move by P1 with this ID, only then can he be hit by the HitDef with this chainID. You can use this in the following parts of a chain move. Note that chain moves are still possible even without the use of the "id" and "chainid" parameters. Valid values are all values >= 1. If omitted, defaults to -1 (chain from any hit).
nochainID = nochain_1, nochain_2 (int)
    nochainID specifies up to 2 ID numbers of hits which cannot be chained into this hit. If these are -1 (the default), then chaining is not explicitly disabled for any hit ID numbers. nochain_2 can be omitted. Except for -1, the values specified must not coincide with the value for chainID. This parameter has no effect if P2 is hit by a third party between P1's previous HitDef and the current HitDef.

Is that my jumping fierce kick move [620] should have an ID number my medium kick [810] will block out. So I put ID= 620 in the [620] hitdef. Then in [810] I have NoChainID = 620 in the hitdef. This doesnt stop the move from connecting. I can keep doing it over and over.
I've tried it the 12 different ways I can think up.

 How can I stop the state 810 from hitting after state 620 hits??

---------------
In State 620's Hitdef
ID = 620
NoChainID = 810
and in State 810's Hitdef
ID = 810
nochainID= 620
Doesnt allow State 620 to connect.
If I remove the nochainID from 620 I can continue the infinite. What's the problem?? Is it resetting?
vVv N00bSaibot & Muramasa RoofTop vVv
Last Edit: November 14, 2011, 08:09:53 am by Odb718
Re: ID, ChainID, NochainID problems. Nothing works
#2  November 14, 2011, 01:57:50 pm
  • ****
    • Hungary
    • seravy.x10.mx/Wordpress
So if I understand well, you want to stop the 810 (medium kick)->620 (jumping fierce kick) chain from happening?

In that case, you need
NochainID=810 in your state 620 Hitdef.

NoChainID tells Mugen that "This attack cannot hit if the last attack hitting was X", but you probably misread it as "The next attack cannot hit if it is X" instead.

Quote
If I remove the nochainID from 620 I can continue the infinite. What's the problem?? Is it resetting?
The problem is that you are removing the correct line of code, and keep the unnecessary one, see above :)
Re: ID, ChainID, NochainID problems. Nothing works
#3  November 14, 2011, 06:33:02 pm
  • ******
  • [E]
    • Mexico
You don't reallt want to solve it that way, but by fixing chaining rules/ hit times /animation times.
Re: ID, ChainID, NochainID problems. Nothing works
#4  November 15, 2011, 03:31:58 pm
  • *****
  • Shame on you!
    • USA
* Odb718 grumbles
Seravy, No offence but how did you get that from "How can I stop the state 810 from hitting after state 620 hits??"

What happens is medium kick, fierce kick, medium kick, fierce kick, medium kick, fierce kick, medium kick, fierce kick, medium kick, fierce kick.
I want the second time the medium kick comes out, to not hit.
I want medium kick, fierce kick, 2nd medium kick misses. I've had it where the first time the fierce kick comes out it completely goes through the enemy. I then reversed what I had and it still didnt work properly.

 I gave fierce kick an ID = 620
& I gave medium kick a NoChainId = 620

Yet they still can infinite.

From what you said in your post Seravy it seems like I've done it right. As I mentioned above, I just posted one of the many failed attempts at solving the problem.

Frederika Bernkasstel, I have to solve it like this, otherwise it'll throw the timing of all of the other moves out of whack. If the character whiffs the second time around the person will learn pretty fast they cant be cheap.

Putting ID = 620 in hitdef 620, and a nochianid = 620 in hitdef 810 allows hitdef 810 to hit after hitdef 620. << this is what's happening in my character. Everything under the sun says it's not supposed to happen. Yet it is. Does anyone know how or why this would happen? Is the hit ID reseting or what's the problem????
vVv N00bSaibot & Muramasa RoofTop vVv
Re: ID, ChainID, NochainID problems. Nothing works
#5  November 15, 2011, 05:09:14 pm
  • ****
    • Hungary
    • seravy.x10.mx/Wordpress
Looks like I misread it, sorry.
Quote
Medium kick into jumping fierce kick
I just read this and thought you want to stop that part of the chain, didn't notice the "repeat" at the end, probably.

Yes, you were doing it right and it should be working.
I tested NochainID just now and it seems to be working properly.

Possible reasons what can be wrong :
-Outdated Mugen version. I heard it wasn't working properly in some old versions.
-You have something else hitting the opponent between the two attacks. Not too likely.
-Your fierce kick doesn't actually have the ID correctly set. (There are two ID lines for example, or it has more than one hitdef or does multiple hits, and the ID is not on the last one. Or the very unlikely case that you have two copies of the state and didn't notice.)
-Your medium kick doesn't have the NochainID properly set (same reasons as above)

My guess would be the fierce kick doing two hits and having the ID on the first one only.

However, even if you don't manage to make NochainID work you can solve this in two other ways.
1. You can use enemynear,Gethitvar(chainID)!=620 to trigger your hitdef, so if the last hit was the 620 it'll not activate and not hit. This might not always work in simul.
2. You can set a variable when hitting with 620 then unset it when the opponent regains control, and not activate your 820 hitdef if the variable is set. This should always work in simul. In both, the attack will be unable to hit anything, not just the player it was hitting before, though.