I'm working on a character that has a Mega Man X style charge that includes 3 levels of charge. How I have it is that when the player holds x, it spawns a helper which has the level 1 charge animation. After a few ticks it is destroyed and spawns a new helper which performs the same function with just a different animation. Same for level 3.
Anyway, I want to have the player go into a different state depending on which helper is present. This is what I put for the "level 2" attack in the cmd file.
;2nd charged attack ;—§‚¿Žãƒpƒ“ƒ` [State -1] type = ChangeState value = 20004 trigger1 = command = "releasex" triggerall = Numhelper(77116) >= 1 triggerall = statetype = s triggerall = ctrl
Now this is what I have in statedef -3
[State 1000, 2]; CHARGING type = Helper triggerall = power >= 148 trigger1 = command = "x" pos = -3, -27 postype = p1 stateno = 77114 bindtime = -1 id = 7714 keyctrl = 1
This spawns the helper, and here is the full code for the entire charging section
Spoiler, click to toggle visibilty
;--------------------------------------------------------------------------- ; CHARGING (Invisible) [Statedef 77114] type = S movetype= A physics = S juggle = 4 velset = 0,0 ctrl = 0 anim = 8013 poweradd = 0 sprpriority = 2
Now my problem is, if I set keybind = 1, it can properly remove the helper when the player releases x, BUT does not go into the state as defined by the cmd. file. If keybind = 0, player goes into cmd defined state but the helper does not detect releasex command. I tried spawning explods within the levels of charge helpers with which the cmd file can detect but it seemed like the same problem.
All I want is to have the player do a certain move when doing a "releasex" command, depending on which helper is present, and I want the helper to be removed once player is in that state.
I went back and now realize that my frontedge and backedge triggers were pretty useless. How I have it is that the platform has a hitbox which "attacks" the player 1 and forces it into state 0 while on the platform.
I have "trigger1 = P2BodyDist Y < -12" but time = 0 seems to do the same purpose. All that seems to matter is the hitbox itself. Using a hitdef might be the wrong way to go about this but I have tried target state as well and no success with that.
Could you perhaps take what you described and show me an example in the code? Also, do you think the fact that it is indeed a hitdef might be kinda screwing up my plan here?
Essentially it is a helper that acts as a platform for player 2 to step on. It works perfectly well aside from the fact that since the P2BodyDist trigger serves as letting you have player 2 at LEAST a certain height above player 1, when I'd prefer it to be more specific. My main problem right now is that the player ends up a few pixels before or above the platform's sprite when I want to be exactly on it.
If I could say have P2BodyDist = 9 (pixels above p1, no more no less) then THAT would be good.