Did anyone knows how to make the Soul Body from Megaman X4?http://www.youtube.com/watch?v=jbW-TiujiR0 minute 0:57i have no idea how to do it.Please help me.
Assman said, June 03, 2011, 05:01:45 pmShow us what you came up with so far.i don't have anything in coding, because i have no idea how to make something like that
Shall we start with the wall one then? Create a helper. Make it bindtoparent in front of you somewhere. Give it blue clsn boxes and a hitoverride that sends it to ANOTHER state where it plays a destruction animation and uses destroyself.I am assuming you have some coding knowledge here, if you have none it's going to be a little while before you're at the point where you could code the above.
Cyanide said, June 04, 2011, 01:15:42 amShall we start with the wall one then? Create a helper. Make it bindtoparent in front of you somewhere. Give it blue clsn boxes and a hitoverride that sends it to ANOTHER state where it plays a destruction animation and uses destroyself.I am assuming you have some coding knowledge here, if you have none it's going to be a little while before you're at the point where you could code the above.This is what i did of the code so far:[Statedef 999]type = Smovetype= Aphysics = Sjuggle = 8ctrl = 0poweradd = 25velset = 0,0anim = 1100[State -2, Holo]type = helpertrigger1 = AnimElem = 3helpertype =normalname ="test"id =1000stateno = 1000pos = 50,0postype = p1sprpriority = 5ownpal = 1[State 210, 1]type = PlaySndtrigger1 = AnimElem = 3value = 6,8[State 202, 3]type = ChangeStatetrigger1 = animtime =0value = 0ctrl =1[Statedef 1000]type = Smovetype= iphysics = Sjuggle = 8ctrl = 0velset = 0,0anim = 3420sprpriority = 4[State -2, 1000]type = BindToRoottrigger1 = Parent, Stateno != [1500,1520]time =-1ID = 1000pos = 55,0[State -2, 1000]type = BindToRoottrigger1 = Parent, Stateno = [1500,1520]time =-1ID = 1000pos = 55,0[State -2, 1000]type = turntrigger1 = P2BodyDist x<=0[State 370, Destroyed]type = changestatetrigger1=Lose=1trigger2 = Win=1trigger3 =DrawGame=1trigger4 = Parent, movetype = htrigger4 = Parent, StateNo != [120,155]trigger5 = time = 300value = 1001[Statedef 1001]type = smovetype= iphysics = sjuggle = 8velset = 0,0ctrl = 0anim = 3421sprpriority = 4[State -2, 1001]type = BindToRoottrigger1 = Parent, Stateno != [1500,1520]time =-1ID = 1000pos = 55,0[State -2, 1001]type = BindToRoottrigger1 = Parent, Stateno = [1500,1520]time =-1ID = 1000pos = 55,0[State 1073,2]type = DestroySelftrigger1 = time = 12I didn't add a HitOverride because the soul body doesn't get hit by projectiles or normal attacks.Now i want the hologram to make the same moves i do (walk, jump, crouch, wall jump, dash)
Ok, that's an excellent start then.For the changeanim. Note down which animations the parent uses for these attacks. Duplicate them on your helper and add 10000 to each one. So your version of Stand is anim 10000. Your version of walk is 10020 etc.Then include the following.type = changeanimtrigger1 = anim != root, anim + 10000value = root, anim + 10000Should work.
Cyanide said, June 04, 2011, 05:04:25 amOk, that's an excellent start then.For the changeanim. Note down which animations the parent uses for these attacks. Duplicate them on your helper and add 10000 to each one. So your version of Stand is anim 10000. Your version of walk is 10020 etc.Then include the following.type = changeanimtrigger1 = anim != root, anim + 10000value = root, anim + 10000Should work.can you make a code example?, because im a little lost with that
Err, that IS the example.Read what it's doing. Taking walk as the example. In the parent, walk is animation 20. In your special helper, walk will be 10020. So what that bit of code does is checks if the anim currently in use is the same animation as the parent + 10000.So if anim (that's 10000 at this point) is not = to the roots anim of 20+10000 then it will change to root anim + 10000, and become 10020. Really, just try it and see what it does. Things like root, anim are redirects, so it's checking what the character is doing and applying it to it's own code. Aside from needing the [state ] bit, what's there is functional.
Cyanide said, June 04, 2011, 06:35:29 amErr, that IS the example.Read what it's doing. Taking walk as the example. In the parent, walk is animation 20. In your special helper, walk will be 10020. So what that bit of code does is checks if the anim currently in use is the same animation as the parent + 10000.So if anim (that's 10000 at this point) is not = to the roots anim of 20+10000 then it will change to root anim + 10000, and become 10020. Really, just try it and see what it does. Things like root, anim are redirects, so it's checking what the character is doing and applying it to it's own code. Aside from needing the [state ] bit, what's there is functional.Oops, my mistake, sorry Anyways, i maded the +10000 anims, and it works really well, but there is one single issue.The hologram doesn't turn. For example, i am facing the opponent, i use the hologram, i walk to the other side, but when i turn to the other side, the hologram faces to me
I was testing the code a little while, and the wall jump hologram doesn't show upBTW, how can i make the hologram dissapear like in the game?In the game the hologram blinks a little bit and then it disappears
Figure out when it's meant to blink, then simply use the flag invisible, from assertspecial to apply it. If you use persistent = 2 or whatever on the controller it'll vanish every 2 ticks.As for on wall jump, you have that animation? Press ctrl+C to see if the helper is on or off screen, it may be bound on the wrong side.
this is the new code for the helper[Statedef 1000]type = Smovetype= iphysics = Sjuggle = 8ctrl = 0velset = 0,0anim = 3420sprpriority = 4[State -2, 1000]type = BindToRoottrigger1 = Parent, Stateno != [1500,1520]time =-1ID = 1000pos = 55,0[State -2, 1000]type = BindToRoottrigger1 = Parent, Stateno = [1500,1520]time =-1ID = 1000pos = 55,0[State -2, 1000]type = turntrigger1 = facing != root, facing[State 370, Destroyed]type = Destroyselftrigger1=Lose=1trigger2 = Win=1trigger3 =DrawGame=1trigger4 = Parent, movetype = htrigger4 = Parent, StateNo != [120,155]trigger5 = time = 300[State 0, AssertSpecial]type = AssertSpecialtrigger1 = time = 300flag = invisiblepersistent = 2[State 0, ChangeAnim]type = changeanimtrigger1 = anim != root, anim + 10000value = root, anim + 10000and i can't make him blink.BTW, yes, i checked the wall jump anims, but, i think the hologram it's in the oposite side of the screen, i mean, when you are doing the wall jump, the hologram goes to the wall instead of facing outsideEDIT: i fixed that by fixing the X axis in the .AIR
Missed that, you destroy it on time = 300 as well, so it'll just vanish without ever doing the assertspecial. Have the assert earlier, or the destroyself later.
Cyanide said, June 05, 2011, 12:15:19 amMissed that, you destroy it on time = 300 as well, so it'll just vanish without ever doing the assertspecial. Have the assert earlier, or the destroyself later.yeah, i figured that out a little while ago, but now i am trying the helper to go to pos = 0,0 when it's time = 290
Cyanide said, June 05, 2011, 03:29:32 amPosset takes X and Y, not pos =He needs to turn off the bindtoparent from 290 onwards.i did this in the code[State -2, 1000]type = BindToRoottrigger1 = Parent, Stateno != [1500,1520]time = 290ID = 1000pos = 0,0but that makes the helper to go into pos = 0,0 from the beginningEDIT: i tested the hitdef, but doesn't hit anything[State 35, 1]type = HitDeftrigger1 = 1attr = S, SPdamage = 15,2animtype = Mediumguardflag = MApausetime = 0,0sparkno = s75guard.sparkno = s85hitsound = s5000,0guardsound = s120,0ground.type = Highground.slidetime = 22ground.hittime = 22ground.velocity = -1air.velocity = -1,-5givepower = 2,1getpower = 3,1and i added the red boxes in all the anims
If I am understanding this correctely you're a bit off from. What Cyanide said is that you need to do is turn the bindings off after 290 ticks, not put 290 in time parameter in that BindToRoot and not make the Pos = 0,0 because you're in -2 so that will automaticaly play those like you said. Your next step is to tweak your actual values outside of -2, Then after time 290 you need to make it jump to 0,0
add THIS to your bindtoroottrigger1 = time < 290That way you can do stuff afterwards without that bindtoroot triggering. And your hitdef doesn't hit because you have no hitflags. The first solution to a hitdef that's not working is to take one from somewhere that is. If that one doesn't work you have a different problem.
This is the helper code so far[Statedef 1000]type = Smovetype= iphysics = Sjuggle = 8ctrl = 0velset = 0,0anim = 3420sprpriority = 4[State 190, 0]type = AssertSpecialtrigger1 = 1flag = noshadow[State -2, 1000]type = BindToRoottrigger1 = Parent, Stateno = [1500,1520]trigger1 = time < 290time =-1ID = 1000pos = 65,0[State -2, 1000]type = turntrigger1 = facing != root, facing[State 0, AssertSpecial]type = AssertSpecialtrigger1 = time >= 250flag = invisiblepersistent = 2[State 0, ChangeAnim]type = changeanimtrigger1 = anim != root, anim + 10000value = root, anim + 10000[State 35, 1]type = HitDeftrigger1 = 1attr = S, SPdamage = 15,2animtype = Mediumguardflag = MApausetime = 0,0sparkno = s75guard.sparkno = s85hitsound = s5000,0guardsound = s120,0ground.type = Highground.slidetime = 22ground.hittime = 22ground.velocity = -1air.velocity = -1,-5givepower = 2,1getpower = 3,1[State 370, Destroyed]type = Destroyselftrigger1=Lose=1trigger2 = Win=1trigger3 =DrawGame=1trigger4 = Parent, movetype = htrigger4 = Parent, StateNo != [120,155]trigger5 = time = 300BTW, i used another hitdef from Kung Fu Man, but nothing happens
Uhh, do all the animations have clsn1 boxes? Cos you're changing anim a heck of a lot. And still no hitflags there.
Cyanide said, June 05, 2011, 05:30:06 amUhh, do all the animations have clsn1 boxes? Cos you're changing anim a heck of a lot. And still no hitflags there.im positive they all have red boxesBTW, i added the trigger1 = time < 290 in the BindToRoot, but doesn't go to the pos= 0,0
You said you were trying to posset it there when time = 290. You have not done that. Add the posset BACK and the bindtoroot will not intefere. What you had before was it posseting, then going back to the bindtoroot position.
Cyanide said, June 05, 2011, 05:53:57 amYou said you were trying to posset it there when time = 290. You have not done that. Add the posset BACK and the bindtoroot will not intefere. What you had before was it posseting, then going back to the bindtoroot position.It doesn't work, i did that a little while ago, but nothing happens.And about the hitdefs, what should i do?EDIT: fixed, everything is working nowThank you Cyanide and LaQuak for your help