YesNoOk
avatar

Let's update Kung Fu Man (Read 115006 times)

Started by JustNoPoint, January 01, 2016, 04:31:05 pm
Share this topic:
Re: Let's update Kung Fu Man
#161  February 24, 2017, 10:18:48 am
  • ****
    • China
    • http://vans.trinitymugen.net/
I fully agree, Iced. It is far more productive to spend this time writing a tutorial or solving another problem instead of arguing whether Japanese one-liners would pass a professional code review or not.

I am not angry and I never insulted anybody. However, I do want to point out that a Mugen Guild administrator calling my code unreadable or littered in public before asking me a question directly is not exactly right, either. We are all role models here, a voice giving out such a strong statement and judgement regarding a piece of code can scare people away from attempting to use it or read it, this goes against the "sharing" aspect of this forum.

If you want to give me pointers on how to present my code better, then by all means, I made a topic purely dedicated to the reflector and it has exactly 0 replies in it.

I'm trying my best to produce notes in 3 languages so that it is easier for people to follow, the code itself is already easier than most code shared and produced 5 or 7 years ago. Go a little easier on me, I again plead you to see it from my point of view.

This is a wip topic for Kung Fu Man, so let's not derail it any further. :P
Last Edit: February 24, 2017, 11:52:15 am by Vans
Re: Let's update Kung Fu Man
#162  February 24, 2017, 10:24:34 am
  • ******
  • Hedgehog Whisperer
  • Red Bull addict
    • Spain
    • xgargoyle.mgbr.net
XGargoyle: Battle posing since 1979
http://xgargoyle.mgbr.net
http://www.pandorabots.com/pandora/talk?botid=e71c0d43fe35093a  <-- Please click that link
http://paypal.me/XGargoyle  <-- Donations welcome!
Re: Let's update Kung Fu Man
#163  February 24, 2017, 02:02:43 pm
  • ******
    • www.justnopoint.com/
Vans, I really wanted to drop this. I was being pedantic about your phrasing that everything was noted and easy to apply. And I never said your code was unreadable in fact I said I read the code to figure out what went where. I couldn't read the Japanese labels so instead of instantly knowing a state wasn't needed I had to be sure by following the state paths. That are spread through the reflector states.

I'd rather you stop making it an issue that I thought it was more difficult than you had implied. What I said was accurate to how I felt but I apologized. I don't expect an apology but I'd rather you not keep on painting me as someone trying to hurt your image by me stating something with facts.

You said it was all noted and easy to apply. Obviously you didn't mean that to the degree I thought you did. Likewise you're making what I said too big of a deal too. I may be admin but I'm also a learning creator trying to make things easier for others. I only wanted assistance adding more notes and to be sure I only added the essentials. I had no idea mentioning it was slightly tougher to read would be an issue.
Re: Let's update Kung Fu Man
#164  February 24, 2017, 04:23:23 pm
  • ******
  • Loyal to the Game
    • USA
    • http://jesuszilla.trinitymugen.net/
Vans isn't the one making it an issue, Iced is. That's who Vans was replying to, not you. I thought you two settled it pages ago, so I'm confused as to why you're replying like that, JNP.
Re: Let's update Kung Fu Man
#165  February 24, 2017, 04:26:56 pm
  • ******
    • www.justnopoint.com/
Try to see it from my point of view. I was just sitting trying to study for an article I have to write for college and then I see someone with a big voice calling my code unreadable. :/
However, I do want to point out that a Mugen Guild administrator calling my code unreadable or littered in public before asking me a question directly is not exactly right, either. We are all role models here, a voice giving out such a strong statement and judgement regarding a piece of code can scare people away from attempting to use it or read it, this goes against the "sharing" aspect of this forum.

I thought he was reiterating this again for some reason.
Re: Let's update Kung Fu Man
#166  February 24, 2017, 07:41:51 pm
  • ******
    • www.justnopoint.com/
Anyway, I got it all finished and notated. I think it's pretty clear now. Feel free to add to it or make corrections.

Spoiler: Kung Fu Zankou (click to see content)

Spoiler: Reflector Helper (click to see content)

Spoiler: Successful Reflection (click to see content)

Spoiler: Reflecting A Helper projectile (click to see content)

Spoiler: Special Reflection (click to see content)

Spoiler: Board Throw (click to see content)

Spoiler: Board Projectile Helper (click to see content)

Spoiler: DESTROY Board Projectile Helper (click to see content)

Spoiler: REFLECTED Board Projectile Helper (click to see content)

Spoiler: .cmd (click to see content)
All I need to do now is make the EX Projectile that hits multiple times and test it with the reflector. Then I'll be finished with this portion. @JMorphMan: Didn't you come up with a good way to have multi hitting projectiles get destroyed in the manner they should? The reflector may need to be adapted to that as well, not sure yet.

After that I only need to add charge coding, Juggle Points, and reversed command fix and I think he'll be ready for release!

DW

Re: Let's update Kung Fu Man
#167  February 24, 2017, 07:57:05 pm
  • *****
    • USA
    • www.trinitymugen.net
@Vans: What about the sealing property done by Chizuru? Do you have a tutorial for that? Also, will it be implemented into this KFM update?
Re: Let's update Kung Fu Man
#168  February 24, 2017, 08:05:20 pm
  • ******
    • www.justnopoint.com/
He hasn't yet. What does it do? Is it something that's typically in fighters like projectile reflection?
Re: Let's update Kung Fu Man
#169  February 24, 2017, 08:17:09 pm
  • ******
Seals the usage of all special and super moves. Not quite as common, but at least it's not Nicotine's control reversal. :P
Re: Let's update Kung Fu Man
#170  February 24, 2017, 08:27:04 pm
  • ******
    • www.justnopoint.com/
Is this something we feel should be a standard? There are a lot of things that need standards to work. And the more we stuff into KFM the harder he will be to learn with.
 @DW: @Niitris:
Last Edit: February 24, 2017, 11:01:55 pm by Just No Point
Re: Let's update Kung Fu Man
#171  February 24, 2017, 09:07:55 pm
  • ***
  • The Best of Both Worlds
  • SuperStar
hello everybody.
i already released a 0101 DOS Kfm with new stuff.
This new one in project is welcome.

DW

Re: Let's update Kung Fu Man
#172  February 24, 2017, 11:25:36 pm
  • *****
    • USA
    • www.trinitymugen.net
^And you posted that why...?



Is this something we feel should be a standard? There are a lot of things that need standards to work. And the more we stuff into KFM the harder he will be to learn with.
 @DW: @Niitris:

Should it be a standard? No, but I feel the same way about the reflection stuff.

As for it making KFM harder to learn from, I don't see it. There's more, yeah, but one will only take from him what they want. It just gives more options overall. Also, since you're doing a pretty good job of labeling everything, it shouldn't be difficult. One need only apply themselves.

EDIT:

Let me clarify. It being a standard, yes. As far as the var(s) used and everything, so everything matches up. It has to be that way if it's going to work. I didn't explain that well enough. I more so mean that it isn't something that HAS to be implemented, though, would be nice to include. So people who may want to implement it, have a primer in which to apply it from. The reflection and the sealing.
Last Edit: February 24, 2017, 11:33:11 pm by DW
Re: Let's update Kung Fu Man
#173  February 25, 2017, 04:39:02 am
  • ******
  • If you’re gonna reach for a star...
  • reach for the lowest one you can.
    • USA
    • network.mugenguild.com/jmorphman
All I need to do now is make the EX Projectile that hits multiple times and test it with the reflector. Then I'll be finished with this portion. @JMorphMan: Didn't you come up with a good way to have multi hitting projectiles get destroyed in the manner they should? The reflector may need to be adapted to that as well, not sure yet.
I recently updated Guile to fix his EX projectile (which hits twice), and it more or less behaves the way multi-hit special projectiles do in SFA and CvS (where they die immediately after colliding with another any other projectile, including single hit ones, even if they're supposed to hit multiple times). But I'm not sure if that behavior should be used for Kung Fu Man; perhaps a more simple projectile behavior would be best, like the one from SFIV (wherein a projectile has a certain number of hits, and when it's exhausted all of its possible hits, whether by hitting an opponent or colliding with a projectile or what have you, it dies).

The latter just seems more simple and intuitive, and it's also how multi-hit super projectiles work in SFA and CvS. there is a smallish issue, though).]And also there's a small issue that the former method has in MUGEN because MUGEN sucks.[/url]
Re: Let's update Kung Fu Man
#174  February 25, 2017, 06:38:35 am
  • *
  • The fox who doesn't know where he's going.
    • USA
I've created a "Burned" sprite for your Kung Fu Man:


Also, I realized that I never gave you the code for Dash Collision. The code was original made by Team Z2, I only edited a little to make it compatible with Kung Fu Man.

First put this in the AIR file:
Code:
; Dash Collision - HDBZ
[Begin Action 950]
950,0, 0,0, -1

; Grabbing when win
[Begin Action 951]
Clsn1: 1
  Clsn1[0] = 1, -86, 83, 0
800,0, 0,0, 1

;Dash Collision check
[Begin Action 128950]
-1,0, 0,0, -1

Then put this block of code in Statedef -2 (or Statedef 100 if you want):
Code:
;==| DASH COLLISION ACTIVATION |================================================
[State -2, Dash Coll]
type = Changestate
triggerall = enemy,stateno=100 || enemy,stateno=950
triggerall = p2bodydist X = [-30,30]
trigger1 = enemy,selfanimexist(128950)
value = 950
;===============================================================================


Finally, add Statedef 950, 951, and 952 anywhere in kfm.cns
Code:
;===========================================================================
; DASH COLLISION
;===========================================================================
[Statedef 950]
type = S
physics = N
movetype = A
anim = 950
ctrl = 0
velset = 0,0
sprpriority = 2


[State 800, ABORT]
type = Changestate
trigger1 = p2stateno != 950 && p2stateno != 951 && time >= 4 && time<50
value = 952 ;when it fails
ctrl = 1

[State 1000]
type = PosAdd
trigger1 = P2bodydist X < 10
X = -8
[State 1000]
type = PosAdd
trigger1 = P2bodydist X < 25
X = -5
[State 1000]
type = PosAdd
trigger1 = P2bodydist X < 35
X = -2
[State 1000]
type = PosAdd
trigger1 = P2bodydist X < 40
X = -1

[State 1000]
type = width
trigger1 = 1
edge = 50,40

[State 800, Grab SND]
type = PlaySnd
trigger1 = time=5
value = 0,3

[State 4500, 1];Scream
type = PlaySnd
trigger1 = time=5
value = 5,0
volume = 255

[State 1000, shake]
type = EnvShake
trigger1 = !(time%4)
time = 8
freq = 20
ampl = 1+0.1*time

[State 800, count]
type = VarSet
trigger1 = !time
var(30) = 0
[State 800, count]
type = VarAdd
trigger1 = command="x" || command="y" || command="z" || command="a" || command="b" || command="c" || command="start"
;trigger2 = command = "up" || command = "down" || command = "back" || command = "fwd"
var(30) = 1

[State 800, count]
type = Changestate
triggerall = time = 80
trigger1 = var(30) > enemy,var(30)
value = 951

[State 800, count]
type = Changestate
triggerall = time = 80
trigger1 = var(30) < enemy,var(30)
value = 0
ctrl = 0

[State 800, count]
type = Changestate
triggerall = time = 80
trigger1 = var(30) = enemy,var(30)
value = 105
ctrl = 0


;Grabbing
[Statedef 951]
type = S
movetype = A
physics = S
juggle = 15
velset = 0,0
ctrl = 0
anim = 951
sprpriority = 1
facep2 = 1
poweradd = 20

[State 800, Do_not Guard]
type = attackdist
trigger1 = 1
value = 0

[State 800, hit]
type = hitdef
trigger1 = animelem=1
attr = S,NT
hitflag = M-
priority = 1,Miss
sparkno = -1
p1facing = 1
p2facing = 1
p1stateno = 810
guard.dist = 0
fall = 1
fall.recover = 0

;Abort Dash Collision to avoid bugs
[Statedef 952]
type = S
physics = N
movetype = A
ctrl = 1
velset = 0,0
sprpriority = 2

[State 0, ChangeState]
type = ChangeState
trigger1 = 1
value = 0
ctrl = 1

There, you're done.
Re: Let's update Kung Fu Man
#175  February 25, 2017, 09:15:25 am
  • ******
  • Hedgehog Whisperer
  • Red Bull addict
    • Spain
    • xgargoyle.mgbr.net
Also, I realized that I never gave you the code for Dash Collision. The code was original made by Team Z2, I only edited a little to make it compatible with Kung Fu Man.

Bro, do you realize that JNP is a member of Team Z2?? ;)
XGargoyle: Battle posing since 1979
http://xgargoyle.mgbr.net
http://www.pandorabots.com/pandora/talk?botid=e71c0d43fe35093a  <-- Please click that link
http://paypal.me/XGargoyle  <-- Donations welcome!
Re: Let's update Kung Fu Man
#176  February 25, 2017, 09:26:37 am
  • ****
    • China
    • http://vans.trinitymugen.net/
Is this something we feel should be a standard? There are a lot of things that need standards to work. And the more we stuff into KFM the harder he will be to learn with.
 @DW: @Niitris:

I don't think it should be. I wrote a small tutorial in Chizuru on how to add the compatibility, maybe I should make a post in the forum?

Anyway, I got it all finished and notated. I think it's pretty clear now. Feel free to add to it or make corrections.

It looks very good!

As for multi-hitting projectiles, I believe there shouldn't be too much of an issue with those. When one of those collide with a reflector, then they would automatically be sent to the reflected behavior. At this point, this state can specify if the projectile should lose "health", keep full life or do something else. I tested the reflector with projectiles such as Sakura's hadouken from Street Fighter Alpha 3 and a fully charged Kaiser Wave from Rugal.

One thing that does need to be done with a little more care is a reflector that stays alive for a fixed amount of time (like Aegis Reflector). However, the only issue in this case is that the reflected projectiles could theoretically cancel each other (think of the Aegis Reflector being bombarded with a bullet hell, some of those bullets will clash with themselves).

By the way, there's something very special I wanted to mention about State 1441.

If you look at the reflector, the logic of the states is as follows (if it comes in contact with a compatible projectile):

Reflector => Succesful reflection => Special reflection.

The "Special reflection" state is very important as it fixes a MUGEN bug:

In MUGEN it is impossible to block one of your own objects, even if it has the flag of affectteam = F.

What this state does is that it takes the (now dead) reflector object and it "sticks" to the reflected projectile. What this does is that it allows P2 to detect a "hostile" object and thus allowing them to block.

This state is very important.
Last Edit: February 25, 2017, 09:30:46 am by Vans
Re: Let's update Kung Fu Man
#177  February 25, 2017, 12:20:42 pm
  • ******
    • www.justnopoint.com/
Yeah I was kinda worried about multihitters. Wasn't sure if I needed to code how they act or what yet. Nice to know it'll all depend on how I coded the reflected one.

I'm waking up and getting ready for work so I'm going off memory but state 1441 uses the projectile that was made in the reflection to do this? That's pretty neat. Another thing I should teach that JMM agreed would be better is the explod method for destroyed fireballs. Basically I'd make an invisible explod get fired with the helper. When the helper leaves its attack state the explod plays it's getting destroyed anim. This would fix the issue where killing a helper with reversaldef doesn't create the destroyed anim of the fireball. Like the only good thing about using the projectile controllers for fireballs lol

For reflection you'd simply code the explod to go invisible again in the reflected state.

I've created a "Burned" sprite for your Kung Fu Man:

Awesome thank you! And yeah, if I thought it was needed I'd easily put the code for dash collision. I'm just putting in optional anims to represent them. I'm not adding code to activate them all :)

This does remind me that I need to share the updated dash collision code. There's a bug in the old code. Me and XG fixed it.

Re: Let's update Kung Fu Man
#178  February 25, 2017, 12:30:43 pm
  • ****
    • China
    • http://vans.trinitymugen.net/
Ah, I see.

You can also use a projectile controller to play animations if need be, I sometimes use those as glorified explods so I can have afterimage effects on them.

DW

Re: Let's update Kung Fu Man
#179  February 25, 2017, 10:04:20 pm
  • *****
    • USA
    • www.trinitymugen.net
Re: Let's update Kung Fu Man
#180  March 01, 2017, 02:51:46 pm
  • avatar
  • **
    • Brazil
    • anothermkfan@gmail.com
will you release everything as a full character?