The Mugen Fighters Guild

M.U.G.E.N Central => Projects => Topic started by: JustNoPoint on January 01, 2016, 04:31:05 pm

Title: Let's update Kung Fu Man
Post by: JustNoPoint on January 01, 2016, 04:31:05 pm
For the longest time KFM has been a pretty faulty starting point that's been packed with MUGEN forever now.
I'm ready to tackle changing this!

For now this thread is to organize and figure out the scope and direction of this project.

To start, how will we circulate this to quasi replace KFM? Obviously here on Guild we will want to replace the KFM that's in our hosted MUGENs including the Starter Pack. I'd like to extend out to other places that host the program to do the same.
It probably helps that most people coming here probably get the program from here. Since Elecbyte is still down.
And of course there will be a separate release.

What all do we wish to update?

I suppose we should start by going through each portion of CNS, CMD, etc and updating/adding more notes.

Example:
You would quote the original block(s) you are updating
Code:
;---------------------------------------------------------------------------
; Taunt
; CNS difficulty: easy
[Statedef 195]
type = S
ctrl = 0
anim = 195
velset = 0,0
movetype = I
physics = S
sprpriority = 2

[State 195, 1]
type = CtrlSet
trigger1 = Time = 40
value = 1

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

Then you'd post your modified version.
Spoiler: I figure the modified version should be in spoiler to save scrolling space? (click to see content)

While some are helping on the coding side I figure I can bring back the Graphic Arts contests so we can add optional new animations to KFM. Along with some new basics so he can have all 6 buttons mapped.

After the update to the current coding is completed we should update other aspects (note any of these I list do NOT have to wait till after the current coding is updated if a person wishes to skip ahead. Just note that old coding may be modified so be sure it wouldn't conflict)

Help me list what all should be added to KFM I'm sure I will not remember everything
2-3 variant projectile attacks
Corner Push
Juggle system
Charge moves
a 360 and/or 720
Damage Dampener?

Another thought is to have 2 versions of KFM. A starter KFM and an advanced KFM
The reason I suggest this is because many things we may add can create more coding within the character's standard code which could intimidate and confuse starting creators. An advanced KFM could be set up in a way where each palette could be a different play style. Like having popular play mechanics.

Since the graphics contest typically had prizes for the winners I am offering choices from my gift Steam library. If anyone else wishes to pool some potential prizes let me know as well.
Spoiler: What I have (click to see content)

Any questions, feedback, concerns, or suggestions?
Title: Re: Let's update Kung Fu Man
Post by: FeLo_Llop on January 01, 2016, 04:52:24 pm
I like it!!! It can even work for clumsy people(as I am) and learning about what each line says and understand it :D
Title: Re: Let's update Kung Fu Man
Post by: Slayer. on January 01, 2016, 04:58:17 pm
About animations, I have some optionals for him:
Shock, Midnight Bliss, frozen and Z2 Dash Collision.
Title: Re: Let's update Kung Fu Man
Post by: hatter on January 01, 2016, 04:58:57 pm
I'm down for makimg new anims for KFM, it shouldn't be that hard to do. And I like this idea, since KFM is a base that is used by coders to create chars, an update will help me a lot when I start to learn how to code chars for my full game project in the future. :3 :3 :3

As for optional anims, CvS2 chip K.O., Sangue=Passare, and KoF blowback (IDk the name, the animation in which the opponent is sent flying?), and hard knockdown.
Title: Re: Let's update Kung Fu Man
Post by: Staubhold on January 01, 2016, 05:12:11 pm
I really like that idea!

How about things like:

Power Charge
Super Jump
Parry
Projectile reflect
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 01, 2016, 05:23:28 pm
That'd be done in the advanced version. Or there could be game specific versions. Like KOF98 KFM or something along that line. Using the most simplest of characters KFM as a base to give game specific code. But let's not turn this thread into a wishlist of features.

For now let's stick to the base idea. Version 1. Which should be much more basic. Focusing on updating his current build mostly. Maybe adding a new move or 2 to teach the popular ways to do them.

Combo Dampener may be too niche and it may overcomplicate the current coding too. That may need to be in a more advanced or game specific KFM.
Title: Re: Let's update Kung Fu Man
Post by: Thedge on January 01, 2016, 05:34:43 pm
I'm in for new animations, I always found that his strong basics doesn't seem like strong attacks, let's leave them as the medium buttons and sprite the fierce moves.
If we are not setting any deadline and anyone is not already into it I would like to sprite a roundhouse kick.
And I don't want any payment, is a debt I think I have to the Mugen engine.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 01, 2016, 05:39:24 pm
Feel free to do so :) And I agree his strong attacks feel more like medium attacks.

And if you wanted to submit it to the Graphics contest when/if I post it up you still can. Right now I'm in brainstorm phase. I won't make the contest or begin really starting this till I feel I've left this up long enough to get feedback on the things I've mentioned. So probably in a week I'll get this actually moving by updating code myself and making the contest.

@AerosMugen: Would it harm your artistic vision to place a frame that can use the play through animation code? (http://mugenguild.com/forum/topics/having-animations-play-hitpause-capcom-converters-please-read-157580.0.html)
Title: Re: Let's update Kung Fu Man
Post by: Graphicus on January 01, 2016, 08:21:50 pm
Another idea is to update KFM for basic coding and make Suave Dude for advanced coding. He could have projectile attacks and attack concepts that KFM doesn't have.

If you guys think this will help me learn code, I'll be happy to contribute as well, if you'll have me. :)
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 01, 2016, 08:52:46 pm
The only thing bad about the Suave Dude idea is that we'd have to make every sprite for him. Where with KFM we only have to add.

And of course you can help! I hope this project can teach you too!
Title: Re: Let's update Kung Fu Man
Post by: Jesuszilla on January 01, 2016, 09:11:03 pm
Title: Re: Let's update Kung Fu Man
Post by: AlexSin on January 01, 2016, 09:27:19 pm
There's also this: http://www.vans.trinitymugen.net/home/mugenbug.html
Title: Re: Let's update Kung Fu Man
Post by: Jesuszilla on January 01, 2016, 09:33:09 pm
Yes, that definitely needs to be addressed. I believe it also applies to jump attacks that use gravity or veladd with a trigger that's active at Time = 0 (such as trigger1 = 1). I came to this realization while updating VC Felicia with her dash attacks and wondering why I was never getting a consistent distance.
Title: Re: Let's update Kung Fu Man
Post by: Zzyzzyxx on January 02, 2016, 12:44:27 am
The normal KFM has a problem with Smash Kung Fu Upper that must be considered.

Give him 100 life (10x less) and 1000 defence (10x more)

Hit him with Smash Kung Fu Upper.

The Smash Kung will deal 86% damage due to the line fall.damage = 70 in the code.

You guys don't want this in your fixed version.



This is the most blatant bug I can remember in his codes at the moment, but I'll make sure to keep you guys aware of more issues I can find.
Title: Re: Let's update Kung Fu Man
Post by: Jmorphman on January 02, 2016, 01:04:34 am
I like the idea of having Suave Dude (or just an Advanced KFM, since a whole sprite set for Suave Dude is a tall order) serve as a niche, covering more advanced topics like projectiles and charge moves and what not. The standard KFM could just get a fairly simple upgrade, like, I dunno, maybe constrained to things already exist in KFM, but are broken. So stuff like juggle system being broken, or corner push, stuff like that. Both the bugs unique to KFM and also the general MUGEN stuff that requires workarounds to achieve the correct behavior.

For the standard KFM, either Jmorphman palette system (var-based)
I wouldn't recommend anyone using my system because it's really bad, dumb, and confusing to users. And it only exists because I personally have a huge dislike of having to select grooves or palettes or TOP bars or whatever right before the match.
Title: Re: Let's update Kung Fu Man
Post by: Jango on January 02, 2016, 01:32:23 am
Yeah selecting palettes before a fight starts pulls me out of the immersion of being a character fighting something. Leave groove selects and shit for something else. Kung Fu Man is really just a basic-level tutorial character, so the only updates should focus on fixing his bugs and demonstrating stuff in the docs that he doesn't cover normally, with maybe a Kung Fu Man 2.0 demonstrating more advanced code. Like how there's tutorials based on "beginner, intermediate, advanced," but with different iterations of the same character.
Title: Re: Let's update Kung Fu Man
Post by: Jmorphman on January 02, 2016, 01:52:01 am
I think there might be a case to be made for maybe giving KFM a projectile, both because that's a very basic, universal fighting game feature, and because the Projectile stcrl is broken and the docs aren't that helpful in teaching a new user how to code a projectile using helpers.

Yeah selecting palettes before a fight starts pulls me out of the immersion of being a character fighting something. Leave groove selects and shit for something else
There's nowhere else to put a groove select, though!
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 02, 2016, 02:09:17 am
Another thing to update is his throws and custom states so that they use TargetState. I was using him as an example to code a wall bounce and he was using P2StateNo in the hitdef. I think I may had used that for Ryu's throws a year back too. I remembered that MUGEN class said to use TargetState in the event both players hit each other.

As for palette selection and stuff, I think it is pretty popular and would work good as an option for a specific palette. Example hold start and press "a" to pick KFM with pal selection.

I was thinking advanced KFM might have more popular features like parries and such spread across the 12 palettes. It'd help teach how to do that kind of thing I think.
Title: Re: Let's update Kung Fu Man
Post by: Cyanide on January 02, 2016, 02:24:10 am
No selection systems please. Not in either of them. I would in fact say nothing that replicates ANYTHING in an existing game directly. Not combo system. Not any sort of commercial method. You want people to learn from the character, not sprite swap it.

Examples of attacks. KFM needs an attack that takes him into the air and back down again to show how landing works outside of jump. A projectile is a must. Probably just a simple shuriken. Perhaps something that positions him behind P2 as this is a common thing people want to do.

Yes to a re-do of the clsns. His are OK but sometimes they're badly stupid. Moving to capcom or SNK styling for them would be a much better option.

There are also a few fixes required in the common1.cns file

I would not say he should actually have the sprites for the optional animations in many cases. But the animations themselves should be in the character and left as placeholders in some way. I would say leave them commented out, but very few people know how to read an Air file these days and would never see them. All the blood type and nationality stuff is neat and should be in. But you need to make sure people can see it.
Title: Re: Let's update Kung Fu Man
Post by: Zzyzzyxx on January 02, 2016, 02:40:06 am
KFM needs an attack that takes him into the air and back down again to show how landing works outside of jump.
You mean, like the Kung Fu Knee?
Title: Re: Let's update Kung Fu Man
Post by: DarkWolf13 on January 02, 2016, 02:56:06 am
KFM needs a reversal move where he readies himself and if his opponent hits him, he can grab and get behind them then strike! I think such reversal needs a PlayerPush value of 0.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 02, 2016, 04:07:26 am
No selection systems please. Not in either of them. I would in fact say nothing that replicates ANYTHING in an existing game directly. Not combo system. Not any sort of commercial method. You want people to learn from the character, not sprite swap it.

I don't think there'd be anything non game specific needed for the advanced version really. That is kind of the point of the advanced version. To show off more common things people like to do. Everything non game specific should fit nicely into vanilla KFM. Like you said, he just needs a few moves that explain common things like projectiles, rising attacks, special throws, charge moves, etc Fix some specific issues like corner push and the current faults in the CNS, common1, and the CMD

Priority would be to vanilla anyway. We'd see what we wanted in advanced KFM later if we didn't run out of steam.

As for the CLSN stuff, I'll stick to capcom since I'm more familiar with it. Get hits should retain the standing, crouching, air defaults.

I hope to get new animations for optional standards but anything missing will get a placeholder anim. Adding Messatsu's templates into the air is a good idea too.

May need to make 1 more version of default KFM. Only difference with him would be he'd have ai programmed. KFM-ai

Wouldn't want a bunch of ai triggers complicating the attacks. But it's still an important concept to teach.

So maybe if it doesn't tank the endgame could be
KFM-beginner -> KFM-beginner-ai -> KFM-intermediate - > KFM-advanced

beginner = just basic KFM improved. No new moves but air standard and current coding revamped
beginner-ai = add ai to beginner KFM
intermediate = add new special moves
advanced = add frequently used systems
Title: Re: Let's update Kung Fu Man
Post by: Jmorphman on January 02, 2016, 05:01:10 am
Like you said, he just needs a few moves that explain common things like projectiles, rising attacks, special throws, charge moves, etc Fix some specific issues like corner push and the current faults in the CNS, common1, and the CMD
As mentioned by Zzyzzyxx, KFM has a rising move already, and doesn't really need another. The projectile could be a charge move to kill two birds with one stone; the special throw, however, I think might be unnecessary. KFM's normal throw already will teaches users the basics of custom state coding and targetbinds. The specifics of a special throw vs a normal throw are different, but I think those can be left to Advanced Kung Fu Man.
Title: Re: Let's update Kung Fu Man
Post by: Cyanide on January 02, 2016, 11:06:21 am
I thought that one dropped him back into jump states for some reason.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 02, 2016, 11:40:54 am
About the 360/720 this is the only reason I wanted to add it in. (http://mugenguild.com/forum/topics/method-simplifyingcondensing-implementation-360-720-commands-170293.0.html)
Title: Re: Let's update Kung Fu Man
Post by: XGargoyle on January 02, 2016, 01:04:43 pm
use the wood plank from the intro for the projectile. No need for custom sprites or whatsoever
Title: Re: Let's update Kung Fu Man
Post by: FeLo_Llop on January 05, 2016, 07:22:47 pm
Are we going to use Elecbyte's KFM or the CSed KFM one?

In any case, it would be helpful to spriters to have an image of both them.

Yes, I know they're pretty easy to find, but including it in this topic will help to organize things.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 05, 2016, 07:24:50 pm
I'm working on Elecbyte's KFM right now. I don't see any particular reason we need the CS version. Not to mention it'd make the new sprites we have to add a tad more complicated. I sure don't wish that!

EDIT: Should I split the cns up? Or leave it all in 1 file?

IE normals, specials, supers, -2-3, helpers, etc?
Title: Re: Let's update Kung Fu Man
Post by: Jmorphman on January 05, 2016, 09:10:51 pm
I don't think either should be necessary in the basic KFM.
Title: Re: Let's update Kung Fu Man
Post by: Karasai on January 06, 2016, 03:40:23 am
Are you planning on having revamped sprites, or just new animations? Rolento has a couple on his Deviantart
(http://orig00.deviantart.net/26d5/f/2012/290/6/5/revised_kfm_stance_by_callmemra-d5i4ess.gif)(http://orig10.deviantart.net/2d04/f/2013/061/e/e/kung_fu_shiro__by_callmemra-d5ws5qf.gif)(http://orig11.deviantart.net/2381/f/2012/287/3/d/kung_fu_kicker_by_callmemra-d5htxfh.gif)(http://orig00.deviantart.net/ae03/f/2014/272/f/5/kfm___j_mp_sample_by_callmemra-d80yv39.gif)(http://orig09.deviantart.net/72ce/f/2014/272/8/8/kfm___crouch_mk_sample_by_callmemra-d80yusg.gif)(http://orig06.deviantart.net/5427/f/2012/290/9/a/revised_kung_fu_palm_by_callmemra-d5i51dz.gif)

Could be a rekka and a/or super
(http://orig10.deviantart.net/87c7/f/2012/291/4/7/kfm___alternating_palm_strikes_by_callmemra-d5i877e.gif)

And Judas made a reshaded KFM that could be used as a base if he's getting revamped
(http://img.photobucket.com/albums/v471/ruinsofeden/kfm.gif)
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 06, 2016, 03:47:38 am
Just new animations. Mostly things that will help teach users. Some new strong basics, and optional animation standards.
Title: Re: Let's update Kung Fu Man
Post by: XGargoyle on January 06, 2016, 02:01:09 pm
if someone wants to revamp the sprites, at least have the courtesy to draw the kimono gi skirts on top of the pants, no credible fighter will ever put his gi inside their pants, as if it was a pajama...
Title: Re: Let's update Kung Fu Man
Post by: Kamekaze on January 06, 2016, 02:10:45 pm
Going back to what jz mentioned, his hitboxes need to all be redone from scratch as not only do they teach bad habits, but they are extremely unfeasible for most situations, his kung fu upper will miss on most characters as well as the super variant because the boxes are so tiny. I'm not saying put me in charge of that but I'm definitely throwing my hat in the ring lol. I also think the way he does pos adds could be retooled and its a great way to tell people when to use posadds and when to use vels.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 06, 2016, 02:54:50 pm
I'm almost finished with his air file. Tomorrow I go to work for 3 12 hour days so finished or not I'll upload what I have so you can take a look and adjust.
I'll go back and add notes in the air later. Even though most ppl won't get to read them unless they use text mode in FF3 :p
Title: Re: Let's update Kung Fu Man
Post by: Kamekaze on January 06, 2016, 04:06:49 pm
Well what I mean in particular can be found in pretty much any char I made last year where I have the body clsn never moving at any point and instead use pos adds to hide that, what that does is keeps the throw range effectively the same the entire time and preventing kfm from over extending his body ala kung fu blow/palm for example. But sure I'll check it out.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 06, 2016, 09:53:07 pm
http://network.mugenguild.com/justnopoint/stuff/kfm.rar

Here's the air file as of now. I've made it to Strong Kung Fu Upper 1110. I have not finished it.

Also Kamekaze, I took a look at Frank's CLSNs to get a feel and I think that's too advanced and over complicates something that should be used to teach people that are new strong foundation. I'd never even seen that method till now.
Title: Re: Let's update Kung Fu Man
Post by: AlexSin on January 07, 2016, 11:57:25 am
I'm adding some sprites in the .sff now, I'll upload it later.
Title: Re: Let's update Kung Fu Man
Post by: AlexSin on January 07, 2016, 05:22:58 pm
kfm.sff: http://www.mediafire.com/download/nj9nd92vqh41v8x/kfm.sff

Sprites added:
- group 189, 195, 1230, 1600 (from Laughing KFM by Pullo);
- group 220, 420 (by Rolento/CallMeMrA, edited by me);
- group 250, 435, 605, 1005 (by Rolento/CallMeMrA);
- group 650 (from KFM-Arc by ShowBuySpirit);
- group 1220, 1450, 1500, 1550, 1551, 1552 (from kfmc by ChottoKomaru);
- group 5050 (from pkfm, Power KFM, by "noname")
- group 5052 (from King Fancy Man by "BK", edited by me)
- group 5946 (from kfm '09 by Warner)
- portrait 9000,100 by Rolento/CallMeMrA.
Title: Re: Let's update Kung Fu Man
Post by: The Sudden Rarity on January 08, 2016, 06:13:50 am
For an advanced KFM, maybe implement a configure file and a tutorial on how to code and use one?  One that can change hitsparks, hitsounds and whatnot.  I've been seeing config files a lot lately and would like to know how they're done myself.
Title: Re: Let's update Kung Fu Man
Post by: Fob1aZ on January 09, 2016, 03:47:45 pm
Hi all! It's a curious topic...Some years ago I created a custom Kung Fu Man (Kung Fu Saint) to use it ad developement base for Saint Seiya Legend characters and help newbies with coding. My version includes:

- 3 fireballs (normal projectile, freezing projectile and helper projectile)
- 3 counterattacks (one absorbing energy, one releasing a wave blast and another one who counters phisically or, in case of fireball, thows back enemy's fireball)
- 3 jumps followed by diving kick (up, back and forward, like balrog)
- directionable teleport
- rolling towards / backwards
- cosmo (power) charger (by holding)
- seventh dense (2x attack & unlimited power for some seconds)
- barrier (consumes power by holding)
- directionable throw (hold forward to throw forward and viceversa)
- serial throw
- 6 new hyper moves (big fireball, damaing field, ground combo by aerial attack, aerial combo by ground attack, multiple fireballs when his life is <200 and one that causes enemy's death after 10 seconds when enemy's life is <200, can be customed as poison state too)
- hyper counterattack (if hitted by an H move, counters with the first hyper, Kung Fu Palm, but with 2x attack)

Last, but not last, the sff haas been filled with big collection of sparks, and all of these share the same palette (so if you want to change their color, just save the first spark frame, recolor tit and change it on sff to color the others too).

Sound file has been filled too, in particolar with energy and weapon effects.

I provided also .txt files with guides to change spark colors and sounds.

I could share it if you want to try him! :)

Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 09, 2016, 04:37:55 pm
Yes please share anything you have! Also thanks sin! I do need to stress that I won't guarantee everything given will be used.

For example, there will be no new animations at all added to Beginner KFM besides the optional anims. Intermediate will add new basics and specials. Advanced will have a lot more stuff like config files etc

But in all 3 versions only useful new materials will be used. Things that can help teach something unique. The goal isn't to make a better KungFuMan himself. The goal will be to make him the best tool we can to teach and help ppl learn with.

Note I have yet to look into everything shared to this project. So sin, if I don't think something should be used from what you added I'll discuss it with you. Hopefully you'll agree or I'll change my mind :p

I feel I should note I came down with pneumonia so if I don't get to do much with this this week that's why.
Title: Re: Let's update Kung Fu Man
Post by: Fob1aZ on January 11, 2016, 12:38:48 pm
You can download it from here: http://www.mediafire.com/download/85dqomxdyykv2r8/Kfs.zip (http://www.mediafire.com/download/85dqomxdyykv2r8/Kfs.zip)
Title: Re: Let's update Kung Fu Man
Post by: AlexSin on January 11, 2016, 12:55:51 pm
Why don't you share the link of the character here? For sure I don't want to register only to download a character.
Title: Re: Let's update Kung Fu Man
Post by: Fob1aZ on January 11, 2016, 01:23:35 pm
Why don't you share the link of the character here? For sure I don't want to register only to download a character.

Ok, i modified the link.
Title: Re: Let's update Kung Fu Man
Post by: felineki on January 12, 2016, 08:58:12 am
(http://orig00.deviantart.net/ae03/f/2014/272/f/5/kfm___j_mp_sample_by_callmemra-d80yv39.gif)
This looks like it would make a good neutral jumping normal. Showing how to differentiate between neutral and diagonal jump normals would be a good thing, since that's a very common thing in fighting games.
Title: Re: Let's update Kung Fu Man
Post by: Formerly Hoshi on January 12, 2016, 09:32:42 am
Would it be a good idea to have an alternate mode selectable via holding start? Not necessarily an evil mode or anything, just a slightly different mode just to illustrate the concept.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 12, 2016, 01:16:51 pm
Thanks felineki I'll use it for intermediate KFM!

Hoshi: something like that will probably be in advanced. I haven't thought too deeply about advanced since I haven't even finished beginner, which will be pretty much carbon copy KFM with optional anims and updated code.
Title: Re: Let's update Kung Fu Man
Post by: walt on January 12, 2016, 03:57:39 pm
Looks like I'm a bit late to this party, but I like what I see.

I commissioned some Suave Dude sprites in the past with Mr. A. Maybe to have something to start with, a simple KFM edit could be made, separating Shirt from Pants, and automatically there'd be a blue pants/black jacket version of KFM, which could at a later date become the Suave Dude.

I'm not saying put me in charge of that but I'm definitely throwing my hat in the ring lol.
YES. YES. YES. Please Kame, you are a bad enough dude to save the KFMs

Title: Re: Let's update Kung Fu Man
Post by: Kamekaze on January 12, 2016, 04:05:21 pm
well JNP had a point(hah), unless we make an advanced kfm my pos-locked clsns would be a bit over the top for a beginner as it starts by needing to define what clsn base would be appropriate for the character and then sticking to it for all clsns where it applies. I'll still try something I suppose when I get home later.
Title: Re: Let's update Kung Fu Man
Post by: altoiddealer on January 12, 2016, 05:34:56 pm
Here's an Optional Animation standard I made for my character, where I used KFM as an example and made a few sprites for him. (http://mugenguild.com/forum/msg.2173548)

If you have any interest in including it as an example, I'll give you those sprites/anims.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 12, 2016, 05:56:42 pm
Yes I can add it :)
Title: Re: Let's update Kung Fu Man
Post by: altoiddealer on January 12, 2016, 06:32:04 pm
Cool :)

Well, here is a link for the sprites and axis positions (https://mega.nz/#!4ZEHkaaK!B3IjRYpl8QDOlC_57GlwgrjOTEJFf0HPhHIz1NbUzaM) in a .ZIP file.

Here is the anim data:
Spoiler, click to toggle visibilty
Title: Re: Let's update Kung Fu Man
Post by: AlexSin on January 12, 2016, 10:00:48 pm
Thanks felineki I'll use it for intermediate KFM!

I've added that (under group number 605)* and a lot of other things in the .sff I've shared before. Wait, you didn't download it, did you?

* You're free to change the number of the groups of sprites I added, of course.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 12, 2016, 10:16:05 pm
I downloaded it and even looked at all the files. But I didn't remember each one :p
Title: Re: Let's update Kung Fu Man
Post by: Jesuszilla on January 13, 2016, 05:58:48 pm
Haven't checked yet (I'm at work and I'm working 10 hour days this week so I wouldn't have much time this week to look at it until the weekend), but the state numbering absolutely needs to be standardized:

Light: 00
Light (close): 05
Medium: 10
Medium (close): 15
Heavy: 20
Heavy (close): 25

For jump attack ANIMATIONS
Neutral: [0,1,2]0
Diagonal: [0,1,2]5

Diagonal jump attack animations should be handled in the same state i.e. 600 and 605 should both go in state 600. Trust me, it's easier this way.



Also, what about command buffering system in AKFM? I know there's been a complaint or two that the command buffering system @Vans: came up with doesn't have enough examples and I believe this would be the perfect opportunity to show how to do things with it and what's possible!
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 13, 2016, 06:11:17 pm
I haven't looked into that code so I don't know how complicated it is to implement to a character. But depending on that I intended to put it intermediate or advanced yes.

I've been having 2nd thoughts about needing to standardize 05 basics. I was doing it at 1st with Ryu but when I went back and made SF1 Ryu several of those animations would have to be changed in later iterations to be 05 frames. Kinda made me feel all attacks that are not 00 are to just be considered extra animations and not need a standard.

I know that has nothing to do with what this is accomplishing but how helpful is it to teach the 05 standard?
Title: Re: Let's update Kung Fu Man
Post by: Jesuszilla on January 13, 2016, 07:42:48 pm
When I was coding Felicia's Head Ride, I had to have several different cases for different authors who used different numbers for basics. It was a nightmare, especially with OKOF97 and old PotS. It would be a lot nicer if some single standard was established so that anyone who wants to do something similar doesn't have to code more cases, and will ensure that existing implementations won't break later on.


The addition of the buffering system, however, makes this task trivial AND allows specials and supers to cancel out of the Head Ride state, so long as the helper number is the same as the one we use (10371).


While this is one very specific case I mentioned as an example, the fact remains that there are several other things you could do with state numbering information, such as a more precise reactable AI.
Title: Re: Let's update Kung Fu Man
Post by: Jango on January 13, 2016, 09:36:54 pm
As I keep telling you guys, write up something about this thing that explains what the buffering system does and how it works instead of just telling people to look at your characters' code. Based on my limited understanding, it's not just something you copy-paste into a character and call a day.

Here's my recommendation since apparently telling you or Vans to do a write-up on what it does has no effect: If you're REALLY that dead-set on showing how this thing works, youshould port a vanilla KFM over to the system with as much documentation as possible as to why you're assigning which variables where. And when I talk about writing something up, I don't mean like this:

Quote
;==============================================================================;
;Introduction:
;This is a buffering system aimed at recreating the control feel of the NeoGeo
;KOF series of games.
;
;The helper is capable of providing buffering as well as PERFECT reversed
;commands.
;
;Any and all editions should be done in the BUFFER DEFINITION section.
;
;Unless you plan to modify the whole system, do not touch the numbers in the
;varsets, ever.
;
;Try to keep a list of the variables used as well as the respective commands,
;just to keep some sort of order.
;
;In addition, try to follow this list as much as possible to avoid problems:
;FUNDAMENTAL MOVEMENT        = System variables  (RESERVED.)
;Basic and system commands:  = var(0)  - var(19) (RESERVED.)
;Special move type commands: = var(20) - var(39)
;Super move type commands    = var(40) - var(49)
;MISC. commands              = var(50) - var(59)
;Ultimate Button Check       = fvar(1)
;Scramble mode switch        = fvar(2)
That's in Hotaru_LB. The last character I downloaded in this system was Rugal so I dunno if you've made the explanation more clear since then, but even I'm looking at this right now and thinking "Well what am I supposed to do now?"
Title: Re: Let's update Kung Fu Man
Post by: Jmorphman on January 14, 2016, 12:11:36 am
For example, there will be no new animations at all added to Beginner KFM besides the optional anims. Intermediate will add new basics and specials. Advanced will have a lot more stuff like config files etc

But in all 3 versions only useful new materials will be used. Things that can help teach something unique. The goal isn't to make a better KungFuMan himself. The goal will be to make him the best tool we can to teach and help ppl learn with.
I think three versions is a bit excessive; I also think advanced KFM shouldn't be too elaborate, the idea behind KFM is to teach one how to code MUGEN characters. Adding in features from specific games kinda defeats the purpose. The initial versions of these Kung Fu Men should strive to be as universal as possible.

I do think it might be interesting for individual people to come up with their own specialized versions of KFM, that emulate specific features from various series/games.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 14, 2016, 01:02:25 am
I honestly don't have a big plan for advanced. Beginner and intermediate are definitely what you describe.

Advanced has so many things that a person could add that you're right. It should probably be used more as user submitted x style KFM. Once the 1st 2 versions are finished. And let's be honest they also have the highest chance of being finished... The interest from everyone may be gone or advanced may get too many cooks.

That doesn't mean if I'm still interested I can't make an advanced but maybe he shouldn't be on the same level as the other 2 versions.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 18, 2016, 09:00:26 pm
http://network.mugenguild.com/justnopoint/stuff/kfm.rar

All right. I have the sff and air updated.

What new does he have in the air?
All CLSN finished.
Added 5052 Diag Up Twist anim thanks to Alex's sff
Added 5946 HDBZ back breaker thanks to Alex's sff
Added the PacMan sprites/info thanks to Altoiddealer
Messatsu's identifier anims

The liedown face 1st and get up anim is in the sff for sprite groups 5050 as it was in Alex's sff. But I don't know where this actually needs to go, what the air group should be, or the timings and CLSN data for it. I'm not a KOF expert. Can I get more info on this one?

Okay, I believe this concludes the air and sff for this version with what I have to work with. Now I can start working on updating the cmd and cns.

In the meantime we need to figure out what new optional anims we wish to add. After we establish them I'll make a new Graphic Art contest.

Here's a list of the ones I think we need.
Spoiler: Collapse/Cheese Kill/Crumple - 5950, 5955, 5130, 5131 (click to see content)

Spoiler: Super Slash Collapsing/Face-down collapse - 5330 (click to see content)

Spoiler: KOF hard knockdown - 5420, 5421, 5422, 5423, 5424, 5430 (click to see content)

Spoiler: Vertical spinning - 5250, 5251 (click to see content)

Spoiler: Standing Guard Crush - 5910, 5911, 5912, 5915 (click to see content)

Spoiler: Crouching Guard Crush - 5920, 5921, 5922 (click to see content)

Spoiler: Jumping Guard Crush - 5930 (click to see content)

Spoiler: Throw Escape/Tech Hit - 5940 (click to see content)

Spoiler: Throw has been escaped out of - 5945 (click to see content)

Spoiler: Demon Transformation/Red Arremer Transformation - 5960 (click to see content)

Spoiler: Animal Transformation/Goddess Athena Transformation - 5965 (click to see content)

Spoiler: Hit by Anakaris' Pit to the Underworld/Spinning Horizontally - 7008 (click to see content)

Spoiler: Seppuku - 7694 (click to see content)

Spoiler: Massive Bee Stings - 7695 (click to see content)

Spoiler: Electrocution - 7696 (click to see content)

Spoiler: Burned - 7697 (click to see content)

Spoiler: Bloated Up - 7780 (click to see content)

Spoiler: unsorted, incomplete descriptions (click to see content)
Title: Re: Let's update Kung Fu Man
Post by: Knuckles8864 on January 18, 2016, 11:25:44 pm
Kung Fu Man by warner had a pretty good Midnight Bliss if you want to take a look at that.

Also, I think you missed Dcat's "MY TOE!" animation.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 18, 2016, 11:28:58 pm
I think I even missed some from DS. Feel free to mention anything I missed. I'll check out Warner's KFM. Thanks
Title: Re: Let's update Kung Fu Man
Post by: AlexSin on January 19, 2016, 12:05:09 am
I didn't add it on purpose, I didn't know what you were going to do with KFM so I left it out.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 19, 2016, 01:09:41 am
Pardon my ignorance but what didn't you add? AIR data?
Title: Re: Let's update Kung Fu Man
Post by: O Ilusionista on January 19, 2016, 01:42:04 am
I made a custom animation for split in half in my Bullseye and some chars are compatible with it.
There are some info about it in the readme.
Title: Re: Let's update Kung Fu Man
Post by: F. James Fernandez on January 19, 2016, 01:48:44 am
man this would had been good to work on... If i am not mistaken I think solblaze did some stuff for him as well. Ill ask him
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 19, 2016, 01:56:24 am
I made a custom animation for split in half in my Bullseye and some chars are compatible with it.
There are some info about it in the readme.
Is it a standard that is used for a commercial game too or just for your own character? If it's just for your own character I'll have to ask that you make the appropriate KFM sprites. Like altoiddealer did for his. There are a lot of custom animation standards to implement already. I won't feel comfortable asking others to make new ones for a single character. I hope you understand.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 19, 2016, 07:30:28 pm
http://network.mugenguild.com/justnopoint/stuff/kfm.rar

Added
Electrocuted
7696, 9010, 9999

Midnight Bliss
9020, 12000, 1200166660, 66661, 66662, 9021, 9022

Thanks to Warner's KFM

He has a lot of MK specific animations too for fatalities? Is this something we should add since it's there? I mean there is no way we can make all the new ones but this is a lot as is.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 19, 2016, 09:15:45 pm
Spoiler, click to toggle visibilty

Code:
[Data]
;Amount of life to start with
life = 1000
;attack power (more is stronger)
attack = 100
;defensive power (more is stronger)
defence = 100
;Percentage to increase defense everytime player is knocked down
fall.defence_up = 0
;Time which player lies down for, before getting up
liedown.time = 8
;Number of points for juggling
airjuggle = 15
;Default hit spark number for HitDefs
sparkno = 2
;Default guard spark number
guard.sparkno = 40
;1 to enable echo on KO
KO.echo = 0
;volumescale offset (negative for softer)
volumescale = 0
;Variables with this index and above will not have their values
;reset to 0 between rounds or matches. There are 60 int variables,
;indexed from 0 to 59, and 40 float variables, indexed from 0 to 39.
;If omitted, then it defaults to 60 and 40 for integer and float
;variables repectively, meaning that none are persistent, i.e. all
;are reset. If you want your variables to persist between matches,
;you need to override state 5900 from common1.cns.
IntPersistIndex = 60
FloatPersistIndex = 40
 
[Size]
xscale = 1           ;Horizontal scaling factor.
yscale = 1           ;Vertical scaling factor.
ground.back = 15     ;Player width (back, ground)
ground.front = 16    ;Player width (front, ground)
air.back = 12        ;Player width (back, air)
air.front = 12       ;Player width (front, air)
height = 60          ;Height of player (for opponent to jump over)
attack.dist = 160    ;Default attack distance
proj.attack.dist = 90 ;Default attack distance for projectiles
proj.doscale = 0     ;Set to 1 to scale projectiles too
head.pos = -5, -90   ;Approximate position of head
mid.pos = -5, -60    ;Approximate position of midsection
shadowoffset = 0     ;Number of pixels to vertically offset the shadow
draw.offset = 0,0    ;Player drawing offset in pixels (x, y). Recommended 0,0
 
[Velocity]
walk.fwd  = 2.4      ;Walk forward
walk.back = -2.2     ;Walk backward
run.fwd  = 4.6, 0    ;Run forward (x, y)
run.back = -4.5,-3.8 ;Hop backward (x, y)
jump.neu = 0,-10.4    ;Neutral jumping velocity (x, y)
jump.back = -2.55    ;Jump back Speed (x, y)
jump.fwd = 2.5       ;Jump forward Speed (x, y)
runjump.back = -2.55,-8.1 ;Running jump speeds (opt)
runjump.fwd = 4,-8.1      ;.
airjump.neu = 0,-8.1      ;.
airjump.back = -2.55      ;Air jump speeds (opt)
airjump.fwd = 2.5         ;.
air.gethit.groundrecover = -.15,-3.5  ;Velocity for ground recovery state (x, y) **MUGEN 1.0**
air.gethit.airrecover.mul = .5,.2     ;Multiplier for air recovery velocity (x, y) **MUGEN 1.0**
air.gethit.airrecover.add = 0,-4.5    ;Velocity offset for air recovery (x, y) **MUGEN 1.0**
air.gethit.airrecover.back = -1       ;Extra x-velocity for holding back during air recovery **MUGEN 1.0**
air.gethit.airrecover.fwd = 0         ;Extra x-velocity for holding forward during air recovery **MUGEN 1.0**
air.gethit.airrecover.up = -2         ;Extra y-velocity for holding up during air recovery **MUGEN 1.0**
air.gethit.airrecover.down = 1.5      ;Extra y-velocity for holding down during air recovery **MUGEN 1.0**
 
[Movement]
airjump.num = 1       ;Number of air jumps allowed (opt)
airjump.height = 35   ;Minimum distance from ground before you can air jump (opt)
yaccel = .5
        ;Vertical acceleration
stand.friction = .828125  ;Friction coefficient when standing. Use .85 for Phantom of the Server (POTS) style
crouch.friction = .828125 ;Friction coefficient when crouching. Use .85 for Phantom of the Server (POTS) style
stand.friction.threshold = 2          ;If player's speed drops below this threshold while standing, stop his movement **MUGEN 1.0**
crouch.friction.threshold = 2       ;If player's speed drops below this threshold while crouching, stop his movement **MUGEN 1.0**
air.gethit.groundlevel = 25           ;Y-position at which a falling player is considered to hit the ground **MUGEN 1.0**
air.gethit.groundrecover.ground.threshold = -20 ;Y-position below which falling player can use the recovery command **MUGEN 1.0**
air.gethit.groundrecover.groundlevel = 10   ;Y-position at which player in the ground recovery state touches the ground **MUGEN 1.0**
air.gethit.airrecover.threshold = -1  ;Y-velocity above which player may use the air recovery command **MUGEN 1.0**
air.gethit.airrecover.yaccel = .35    ;Vertical acceleration for player in the air recovery state **MUGEN 1.0**
air.gethit.trip.groundlevel = 15      ;Y-position at which player in the tripped state touches the ground **MUGEN 1.0**
down.bounce.offset = 0, 20            ;Offset for player bouncing off the ground (x, y) **MUGEN 1.0**
down.bounce.yaccel = .4               ;Vertical acceleration for player bouncing off the ground **MUGEN 1.0**
down.bounce.groundlevel = 12          ;Y-position at which player bouncing off the ground touches the ground again **MUGEN 1.0**
down.friction.threshold = .05         ;If the player's speed drops below this threshold while lying down,

Here's my 1st changes.

Liedown time
stand and crouch friction
crouch friction threshold
falldefenceup
y accel
jump.neu

Anything else need to be updated? Anything that could be documented better for better clarity?

Also @FeLo_Llop: @Zaitsu Hatter: @Graphicus:
Since you guys seemed interested in letting this help you learn I wanted to ask if you guys understand this block and what each part does? If not I can try and clarify some things in it for you guys :) Don't be afraid to say if you don't understand what something is/does.

EDIT:
I don't feel the following need altering.
Spoiler: winquotes, lose, win, intro, taunt (click to see content)
Title: Re: Let's update Kung Fu Man
Post by: Ricepigeon on January 19, 2016, 09:46:45 pm
Definately want to change fall.defenceup to 0, since I can't think of any game that gives you a 50% defense increase (or any defense increase for that matter) when you're knocked down unless someone can prove me wrong.

Also yaccel of 0.44 is too floaty by most game standards. I think I recall someone saying that 0.5 and above were much better values (though this obviously involves tweaking the jump velocities)
Title: Re: Let's update Kung Fu Man
Post by: jaede_ on January 19, 2016, 10:01:10 pm
Also .44 is a floaty yaccel value, I think .5 is more fit for it.
Title: Re: Let's update Kung Fu Man
Post by: Fob1aZ on January 19, 2016, 10:11:26 pm
I think MK-based could offer something more than death anmations, f.e. a running meter.

The cns is good I suppose. Will you separate those constante from regular state into a .st file right?

About winposes, you could create a Winposes that triggers only with full life (Perfect Win).

About che taunt, you could use a range var to trigger casually two taunts (just to let know che player it can be  done).
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 19, 2016, 10:53:08 pm
Mugen has a hard coded bit of behaviour if liedown time remaining is less than 10, you become completely invulnerable. I would leave it at 60, cos that doesnt' really matter, and override that state to make you get up quicker. Otherwise you make your character unhittable while down which is very very rarely intended behaviour.

You can't bypass that short of making your own lie down state, and since there is one there already, overriding it to behave differently is a better idea.
Well shucks. Editing liedowntime was worthless. Good grief all the stuff in this quoted thread makes my head spin. It's kind of hard to figure out where I should even start!

Anyway, moving on:
Definately want to change fall.defenceup to 0, since I can't think of any game that gives you a 50% defense increase (or any defense increase for that matter) when you're knocked down unless someone can prove me wrong.

Also yaccel of 0.44 is too floaty by most game standards. I think I recall someone saying that 0.5 and above were much better values (though this obviously involves tweaking the jump velocities)

Also .44 is a floaty yaccel value, I think .5 is more fit for it.
Sounds good.

I think MK-based could offer something more than death anmations, f.e. a running meter.
Game specific meters do not fit KFM. I do hope after I complete beginner and intermediate that some users will jump in and make some game specific KFM. Till then, baby steps.

Quote
The cns is good I suppose. Will you separate those constante from regular state into a .st file right?
Nah, it shouldn't be needed for KFM. I had considered it.

Quote
About winposes, you could create a Winposes that triggers only with full life (Perfect Win).
Might be good for intermediate KFM. He gets new stuff besides just optional anim standards.

Quote
About che taunt, you could use a range var to trigger casually two taunts (just to let know che player it can be  done).
Not sure if it's needed but if so I'll add it to intermediate.


Maybe I should start in the common1 1st instead?
Title: Re: Let's update Kung Fu Man
Post by: hatter on January 20, 2016, 12:38:48 am
Hey JNP,

I understood everything from 6 to 25, and the Size and Velocity, I understood everything. Just need a bit of re-reading to make sure of anything and I've got it. :)

My inquiries lie within lines 26 to 34, that part completely went through me. What do those lines signify? I know they are comments (save 33/34) but what are they commenting on? And what function do the variables presented in lines 33 and 34 do?

In addition, I didn't understand what velocity offset is. Does it function like draw offset, but for character gravity and velocity? Or is it something totally different?

I currently have no inquiries regarding the Movement block, but that's because I'm currently a bit fatigued (cold + night + a near whole day at university = :sick:), so I'll read through it again later and have my questions for that block by then
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 20, 2016, 03:33:45 am
;Variables with this index and above will not have their values
;reset to 0 between rounds or matches. There are 60 int variables,
;indexed from 0 to 59, and 40 float variables, indexed from 0 to 39.
;If omitted, then it defaults to 60 and 40 for integer and float
;variables repectively, meaning that none are persistent, i.e. all
;are reset. If you want your variables to persist between matches,
;you need to override state 5900 from common1.cns.
IntPersistIndex = 60
FloatPersistIndex = 40

I may be reading this incorrectly but from what I am gathering:

If you had IntPersistIndex = 58 then Var(58) and Var(59) would not reset between rounds. = 59 would just mean Var(59) wouldn't reset. Since it is set to 60 all Int variables (0-59) will reset between rounds.

Same for floats (except you only have 0 - 39 on them)

And if you wish to alter this more you should override state 5900 in common1

Someone please correct me if I am wrong.

Velocity offset?
Quote
air.gethit.airrecover.add = 0,-4.5    ;Velocity offset for air recovery (x, y) **MUGEN 1.0**

This?
Title: Re: Let's update Kung Fu Man
Post by: hatter on January 20, 2016, 04:18:33 am
Velocity offset?
Quote
air.gethit.airrecover.add = 0,-4.5    ;Velocity offset for air recovery (x, y) **MUGEN 1.0**

This?

Yep the air.gethit.airrecover thing. Sorry for the bad wording.


;Variables with this index and above will not have their values
;reset to 0 between rounds or matches. There are 60 int variables,
;indexed from 0 to 59, and 40 float variables, indexed from 0 to 39.
;If omitted, then it defaults to 60 and 40 for integer and float
;variables repectively, meaning that none are persistent, i.e. all
;are reset. If you want your variables to persist between matches,
;you need to override state 5900 from common1.cns.
IntPersistIndex = 60
FloatPersistIndex = 40

I may be reading this incorrectly but from what I am gathering:

If you had IntPersistIndex = 58 then Var(58) and Var(59) would not reset between rounds. = 59 would just mean Var(59) wouldn't reset. Since it is set to 60 all Int variables (0-59) will reset between rounds.

Same for floats (except you only have 0 - 39 on them)

And if you wish to alter this more you should override state 5900 in common1

Someone please correct me if I am wrong.

OK, that explains how these variables work, but I still don't get what they are there for. Do they play a crucial role in the character, what do they do to the character that makes there (IntPeristIndex and FloatPersistIndex) presence important in the .CNS?
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 20, 2016, 04:33:03 am
air.gethit.airrecover,add adds velocity to the actual recovery.  Here it's 0,-4.5
This means that there is no additional velocity given x wise when you air recover. But on the Y axis -4.5 is added. A negative number makes the character go UP. So when they air recover they bounce up a bit.

Make sense?

Quote
OK, that explains how these variables work, but I still don't get what they are there for. Do they play a crucial role in the character, what do they do to the character that makes there (IntPeristIndex and FloatPersistIndex) presence important in the .CNS?
Well with the current KFM there are only 2 variables even used.

;---------------------------------------------------------------------------
; Variable usage:
; This is a record of the variables that KFM uses. Keeping a record of your
; variable usage helps you avoid careless mistakes later.
; var(1)  - Used in kfm.cmd for combo condition (updated every tick)
; var(2)  - Used in Kung Fu Throw (state 800) to remember if fwd was being
;           held (remembered from state 800 through state 810).

The variable is only as important as the coder needs them to be. If for some reason you didn't want vars 50-59 to reset between rounds you could easily set that here instead of having to overwrite the common1

An example off the top pf my head would be if KFM entered a rage mode. You used var(50) = 1 to trigger it. But you want him to stay in rage mode even after the round ends going into the next round. You would want to set IntPersistIndex = 50

This would make sure that var(50) doesn't reset. It'd also make sure every var higher than 50 wouldn't reset. So all the vars you don't wish to reset would go in this group of vars.

Does this explain better? Once you understand I'll try and add the clarity to KFM himself. I want to prevent confusion the best I can.

And if anyone needs to correct me or explain it better please feel free :)
Title: Re: Let's update Kung Fu Man
Post by: altoiddealer on January 20, 2016, 04:36:51 am
Creators sometimes need to use a Var that the value will not reset between rounds.

Some need more of these persistent Vars than others.

So Elecbyte decided to make it adjustable.

I'm talking outta my a$$ but there can really be no other explanation
Title: Re: Let's update Kung Fu Man
Post by: hatter on January 20, 2016, 04:46:01 am
air.gethit.airrecover,add adds velocity to the actual recovery.  Here it's 0,-4.5
This means that there is no additional velocity given x wise when you air recover. But on the Y axis -4.5 is added. A negative number makes the character go UP. So when they air recover they bounce up a bit.

Make sense?
OK then, now I get that one.


Quote
OK, that explains how these variables work, but I still don't get what they are there for. Do they play a crucial role in the character, what do they do to the character that makes there (IntPeristIndex and FloatPersistIndex) presence important in the .CNS?
Well with the current KFM there are only 2 variables even used.

;---------------------------------------------------------------------------
; Variable usage:
; This is a record of the variables that KFM uses. Keeping a record of your
; variable usage helps you avoid careless mistakes later.
; var(1)  - Used in kfm.cmd for combo condition (updated every tick)
; var(2)  - Used in Kung Fu Throw (state 800) to remember if fwd was being
;           held (remembered from state 800 through state 810).

The variable is only as important as the coder needs them to be. If for some reason you didn't want vars 50-59 to reset between rounds you could easily set that here instead of having to overwrite the common1

An example off the top pf my head would be if KFM entered a rage mode. You used var(50) = 1 to trigger it. But you want him to stay in rage mode even after the round ends going into the next round. You would want to set IntPersistIndex = 50

This would make sure that var(50) doesn't reset. It'd also make sure every var higher than 50 wouldn't reset. So all the vars you don't wish to reset would go in this group of vars.

Does this explain better? Once you understand I'll try and add the clarity to KFM himself. I want to prevent confusion the best I can.

And if anyone needs to correct me or explain it better please feel free :)

The rage mode example persisting after a round ends made it clearer.

Thanks. :)
Title: Re: Let's update Kung Fu Man
Post by: Ricepigeon on January 20, 2016, 07:15:06 am
the y-velocities for jumping need to be adjusted to higher values in order to compensate for the increased yaccel value, otherwise KFM ends up having a lower jump peak and wont be able to jump over taller characters that he should be able to otherwise. For yaccel of 0.5, I find that increasing the jump y-velocity to -10.4 works for getting approximately the same peak of your jump that you would with the default value of -8.4 with the 0.44 yaccel.
Title: Re: Let's update Kung Fu Man
Post by: -Whiplash- on January 20, 2016, 07:44:17 am
here's some values to consider:

Ryu's Jump vel in CVS2: -7.125
y accel: .3125

Ryu's Jump vel in MVC2: -9.5
y accel: .421875

Both are lower then what you guys have suggested... Maybe a floatier jump is actually what you want?
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 20, 2016, 03:56:36 pm
Jump vel of -10.4 and yaccel of .5 seems better.

The values you have for CVS2 Ryu are the values it spits out for normal speed jumping which is quite floaty. Because normal speed is like molasses :P

If you are on the default turbo speed (2 IIRC) Ryu's vels should look more like this
jump.neu = 0, -9.25
yaccel = .49

I got this by using the same controller to play MUGEN and CVS2 at the same time. I was able to sync CVS2 Ryu and MUGEN Ryu so that their peak and landings were at the exact same spots/timings.

This looks closer to what is being implemented in KFM. In normal speed capcom games are some of the slowest. People rarely play in those speeds.
Title: Re: Let's update Kung Fu Man
Post by: -Whiplash- on January 20, 2016, 04:13:21 pm
Oh right. I forgot no one plays cvs2 at normal speed.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 20, 2016, 05:36:53 pm
I didn't see anything that was questionable in this. To be clear I am using Vans's fixed common1 found here  (http://www.vans.trinitymugen.net/home/mugenbug.html)

Spoiler: Common1 Stand through Jump Land 0-52 (click to see content)

Run Forward has been changed so that you cannot crouch or attack while running. And you may jump while running

Spoiler: old code (click to see content)


Code:
;---------------------------------------------------------------------------
; Run forward
[Statedef 100]
type    = S
physics = S
anim = 100
sprpriority = 1
ctrl = 0

[State 100, 1]
type = VelSet
trigger1 = 1
x = const(velocity.run.fwd.x)

[State 100, 2] ;Prevent run from canceling into walk
type = AssertSpecial
trigger1 = 1
flag = NoWalk

[State 100, 3] ;Prevent from turning
type = AssertSpecial
trigger1 = 1
flag = NoAutoTurn

[State 100, Jump] ;allows you to jump while running
type= changestate
trigger1= command="holdfwd" && command="holdup"
value= 40

[State 100, 4]
type = ChangeState
trigger1 = command != "holdfwd"
value = 0
ctrl = 1

Spoiler: Hop Backwards seems fine (click to see content)

Spoiler: Hop backwards (land) uses makedust which is deprecated (click to see content)

Code:
;---------------------------------------------------------------------------
; Hop backwards (land)
[Statedef 106]
type    = S
physics = S
ctrl = 0
anim = 47

[State 106, 1]
type = VelSet
trigger1 = Time = 0
y = 0

[State 106, 2]
type = PosSet
trigger1 = Time = 0
y = 0

[State 106, 3]
type = Explod
trigger1 = Time = 2
anim = F120
pos = 0, 0
removetime = -2

[State 106, 4]
type = VelSet
trigger1 = abs(vel x) < Const(movement.stand.friction.threshold)
x = 0

[State 106, 5]
type = ChangeState
trigger1 = Time = 7
value = 0
ctrl = 1

Does the Guard states work correctly? I noticed that HDBZ and POTS chars override this. It looks like it is done to make sure the blocking frames transition from Stand to crouch correctly, etc.
Should I alter the guard states any?

That's it for now. Comments? Questions?

EDIT: I was wrong about the land state (52)
Now we have this bullshit code implemented in Mugen common1.cns:

[State 52, 3]
type = CtrlSet
trigger1 = Time = 3
value = 1

KFM lands on state 52, but he didn't recover control yet. He still has 3 frames where he is a sitting duck, due to the code above. The code didn't consider that he landed from a gethit state and will negate control for more 3 frames.

Any attack I perform on him in this 3-frame window WILL register as a combo and WILL be a valid combo.

Because when KFM landed after the juggle he STILL didn't have his chance to recover. That's why when you give complete freedom for juggles it's better to make every attack knock an airborne opponent down.

Would adding this fix this issue? @Zzyzzyxx:
[State 52, 3]
type = CtrlSet
triggerall = Time = 0
trigger1 = PrevStateNo = 5020 || PrevStateNo = 5030 || PrevStateNo = 5035
trigger2 = PrevStateNo = 5040 || PrevStateNo = 5050 || PrevStateNo = 5070
trigger3 = PrevStateNo = 5071 || PrevStateNo = 5200 || PrevStateNo = 5201
trigger4 = PrevStateNo = 5210
value = 1


EDIT2: Or as POTS says (http://mugenguild.com/forum/msg.895205)
;---------------------------------------------------------------------------
; Jump Land
[Statedef 52]
type    = S
physics = S
ctrl = 1
anim = 47

[State 52, 1]
type = VelSet
trigger1 = Time = 0
y = 0

[State 52, 2]
type = PosSet
trigger1 = Time = 0
y = 0

[State 52, 4]
type = VelSet
trigger1 = abs(vel x) < Const(movement.stand.friction.threshold)
x = 0

[State 52, Guard]
type= changestate
trigger1= inguarddist
trigger1= ctrl && command="holdback"
value= 120

[State 52, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 20, 2016, 07:38:37 pm
http://network.mugenguild.com/justnopoint/stuff/kfm.rar

I think I'm finished with common1
Current KFM in link let me know if I missed anything.

Went ahead and replaced the Guard states with POTS guard states. Left the ai he implemented for them and updated his hitvelset SCTRLs by replacing them.
Spoiler: cause it's super long (click to see content)
Title: Re: Let's update Kung Fu Man
Post by: Zzyzzyxx on January 20, 2016, 11:22:04 pm
First of all:

He can't attack at all while running. The triggers in his cmd for his non-aerial attacks should be ctrl || stateno = 100.



Would adding this fix this issue? @Zzyzzyxx:
[State 52, 3]
type = CtrlSet
triggerall = Time = 0
trigger1 = PrevStateNo = 5020 || PrevStateNo = 5030 || PrevStateNo = 5035
trigger2 = PrevStateNo = 5040 || PrevStateNo = 5050 || PrevStateNo = 5070
trigger3 = PrevStateNo = 5071 || PrevStateNo = 5200 || PrevStateNo = 5201
trigger4 = PrevStateNo = 5210
value = 1


EDIT2: Or as POTS says (http://mugenguild.com/forum/msg.895205)
;---------------------------------------------------------------------------
; Jump Land
[Statedef 52]
type    = S
physics = S
ctrl = 1
anim = 47

[State 52, 1]
type = VelSet
trigger1 = Time = 0
y = 0

[State 52, 2]
type = PosSet
trigger1 = Time = 0
y = 0

[State 52, 4]
type = VelSet
trigger1 = abs(vel x) < Const(movement.stand.friction.threshold)
x = 0

[State 52, Guard]
type= changestate
trigger1= inguarddist
trigger1= ctrl && command="holdback"
value= 120

[State 52, 5]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
I don't think giving control at the first fame KFM lands is a good idea. I prefer the idea followed in Capcom's games, which involves the Trip Guard concept.

http://wiki.shoryuken.com/Ultra_Street_Fighter_IV/Game_Systems#Land_Frames_.2F_Trip_Guard

During landing state, most Capcom games negate control for 1 frame if the player attacks with an aerial basic during the jump.

However if he doesn't perform any action, he regains control immediately, being able to block at the first frame the player lands.

KOF series doesn't use the concept of trip guard. Your control when landing is negated for the first 2 frames, regardless of using a jump attack or not.

The code below fullfills the need of having control when landing from a gethit state, And it does much more. It also reproduces the concept of Trip Guard successfully.

[state 52, Control]
type = ctrlset
trigger1 = !time
trigger1 = !(prevstateno = [600, 699])
trigger2 = time = 2 ; 2 for SNK-style, 1 for Capcom-style. Both are good options.
value = 1

[State 52, Guard]
type = changestate
trigger1 = ctrl && command = "holdback"
trigger1 = inguarddist && (prevstateno != [600, 699])
value = 120



In addition, in my opinion, stateno 40 should be invulnerable to throws. This is how commercial games tend to do.

[state 40, Vulnerability]
type = hitby
trigger1 = 1
value = SCA, NA, SA, HA, NP, SP, HP



In addition again, make sure to fix a few syntax issues found in his code.

(http://i.imgur.com/hc5yqYy.jpg)

I don't even think that the trigger statetime actually exists. I never tested it, though.

KFM will be marked with a red cross even after you fix all codes, though. It seems to be a bug in Fighter Factory 3, which interprets the folder of char not having any .act files (KFM's case) as an actual issue. I saved KFM's (not your version, Elecbyte's one) six palettes inside his folder and Fighter Factory issue warnings disappeared, showing a green "V" signal instead.



I have serious objection about how his chain combos are handled. You know, the impossibility of cancelling crouching basics into standing basics and vice-versa, like every other fighting game with chain combos (via replacing the triggers statetype = S and statetype = C in his cmd with statetype != A. All advanced coders will agree with me.).

Some people may argue that this is an issue that should be addressed in Advanced KFM or Expert KFM. For me, this is a fundamental issue and should be addressed in the basic version. Objections?
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 21, 2016, 12:40:57 am
Thanks, I won't have time to work on it more today but I'll make all of those changes.

Should KFM be able to attack while running? I thought that wasn't common.

And I agree on the StateType != A changes.

Also to remind myself. I didn't edit the state responsible for this.
Mugen has a hard coded bit of behaviour if liedown time remaining is less than 10, you become completely invulnerable. I would leave it at 60, cos that doesnt' really matter, and override that state to make you get up quicker. Otherwise you make your character unhittable while down which is very very rarely intended behaviour.

You can't bypass that short of making your own lie down state, and since there is one there already, overriding it to behave differently is a better idea.
Title: Re: Let's update Kung Fu Man
Post by: jaede_ on January 21, 2016, 12:46:47 am
I don't even think that the trigger statetime actually exists.

It was found by Kung_Fu_Man as an undocumented trigger, it's literally the same as time from what I can see.
Title: Re: Let's update Kung Fu Man
Post by: AlexSin on January 24, 2016, 02:15:49 pm
Why did you add a CLSN1 on the fifth frame of the normal KF Palms and on the fourth of the Fast KF Palm (the frame with the blur)? It worked right before, also the blur shows the palm still hasn't reached the enemy so it shouldn't hurt; moreover, the "swing" sound plays the frame after it if it hits the enemy.
The playsnd is right, the CLSN1 you added isn't.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 24, 2016, 03:04:43 pm
I was considering using the move to show how to have certain frames play through hit pause.
Title: Re: Let's update Kung Fu Man
Post by: Vans on January 25, 2016, 03:28:29 am
As I keep telling you guys, write up something about this thing that explains what the buffering system does and how it works instead of just telling people to look at your characters' code. Based on my limited understanding, it's not just something you copy-paste into a character and call a day.

Here's my recommendation since apparently telling you or Vans to do a write-up on what it does has no effect: If you're REALLY that dead-set on showing how this thing works, youshould port a vanilla KFM over to the system with as much documentation as possible as to why you're assigning which variables where. And when I talk about writing something up, I don't mean like this:

Quote
;==============================================================================;
;Introduction:
;This is a buffering system aimed at recreating the control feel of the NeoGeo
;KOF series of games.
;
;The helper is capable of providing buffering as well as PERFECT reversed
;commands.
;
;Any and all editions should be done in the BUFFER DEFINITION section.
;
;Unless you plan to modify the whole system, do not touch the numbers in the
;varsets, ever.
;
;Try to keep a list of the variables used as well as the respective commands,
;just to keep some sort of order.
;
;In addition, try to follow this list as much as possible to avoid problems:
;FUNDAMENTAL MOVEMENT        = System variables  (RESERVED.)
;Basic and system commands:  = var(0)  - var(19) (RESERVED.)
;Special move type commands: = var(20) - var(39)
;Super move type commands    = var(40) - var(49)
;MISC. commands              = var(50) - var(59)
;Ultimate Button Check       = fvar(1)
;Scramble mode switch        = fvar(2)
That's in Hotaru_LB. The last character I downloaded in this system was Rugal so I dunno if you've made the explanation more clear since then, but even I'm looking at this right now and thinking "Well what am I supposed to do now?"

Hello Jango, sorry for the late reply.

Actually, I don't recall you formally contacting me to make a tutorial on how to use the system. I did, however, offer all my help so you could implement it without any problems. Do bear in mind that I spend a very small amount of time reading forums and keeping up, I often receive too many messages to keep track of everything, I am sorry for that.

I *personally* have only recommended this system to very particular coders that I consider highly proficient in CNS coding. In my experience, coders who have enough interest in using this system have had no problems following the pointers and implementation of this code, and like I have always done, I offer personal help to the people interested in doing it.

As of late I have decided against writing tutorials for certain things as they're often not included into tutorial repositories (http://mugenguild.com/forum/index.php?msg=2151956), so I prefer to have direct contact with people who are interested in learning / implementing some of the methods and systems that I code.

For this particular system, why don't you help us out with the nooks and crannies of explaining it? I already coded the system and it's completely open source and labeled for everyone to read. Right now I'm in a stage where I can either spend time doing documentation or further fixing/creating systems, so I prefer to develop more helpful things instead.

I have discussed the possibility of creating a version of Kung Fu Man with a basic implementation of the buffering (like Jesuszilla mentioned) with KoopaKoot . I think it would much more positive if we flesh out the documentation portion as a community effort instead (if there's interest).
Title: Re: Let's update Kung Fu Man
Post by: -Whiplash- on January 25, 2016, 03:53:34 am
Should KFM be able to attack while running? I thought that wasn't common.

Well, in KOF, Garou, MVC, Darkstalkers and CVS you can attack while running.

In fact the only games I find you can't cancel your dash with an attack are the SF series with dashes (3 and 4)

Title: Re: Let's update Kung Fu Man
Post by: Jango on January 25, 2016, 05:28:39 am
@Vans: I never "formally" contacted you because I generally posted responses to your posts or JZ's posts. I figured that would be enough, especially since I know at least JZ is a regular poster here and could probably answer as well. Plus I was never really motivated to put the system into any of my characters just because it's not something that one can just copy-paste (I'm a pretty simple coder lol)

HOWEVER if you want my help writing documentation, I wouldn't mind being the guinea pig here and trying to get this thing to work. Since you mentioned you're still in the process of fixing things, I'll wait until you've got it to an ireration you're happy with, and then I'll try to make something simple yet capable of showing how to make things work in multiple scenarios (ie: something Shoto-esque). I've got a few things I'm juggling atm but once I get more stablized there, I wouldn't mind taking a crack at it.

So yeah hit up a bruva, foo
:afro:
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 25, 2016, 02:51:10 pm
If it's not overly complicated I'd love for us to add to, document, and implement the custom buffering system to KFM. I've implemented the corner push already in some of my chars I'm making. It'll need a bit more documentation for KFM as well.

I hope to get to work on him more today but I have a pretty busy day with errands. I'll try to finish the common1 this week at the very least.
Note, if any of this stuff like corner push, juggle, and/or buffering would be better in common1 let me know that as well.

Last but not least I'd forgotten you can cancel a run with a basic in most SNK games so I'll be sure to make it so when I work on the cmd file. Which I should rename the extension of as well.
Title: Re: Let's update Kung Fu Man
Post by: Jango on January 25, 2016, 06:58:39 pm
If it's not overly complicated I'd love for us to add to, document, and implement the custom buffering system to KFM.
Quote
I *personally* have only recommended this system to very particular coders that I consider highly proficient in CNS coding.
Also both the .cmd and .cns are affected since, based on my understanding, it changes how commands are performed, or rather how commands are detected. Maybe I'm explaining it wrong, but instead of purely using the .cmd to trigger moves based on directional inputs, you're using variables that track button inputs defined in the .cmd that in turn trigger your moves.

Basically, default is triggered by command, custom is triggered by variables triggered by commands.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on January 25, 2016, 07:39:08 pm
I haven't looked at it at all yet. But like, if it's something that's tough to implement but after you implement it you need to simply add x piece of code/vars to certain parts of cns and cmd then that doesn't sound too bad and fairly simple to document. If the user has to figure out and code complicated things for each new move then it shouldn't be added. Don't want to confuse the masses.

Either way it'd be a good idea to flesh it out and document it. Whether it's for KFM or simply a code archive thing.

EDIT:
Quote
Basically, default is triggered by command, custom is triggered by variables triggered by commands.
That might just be in the middle. Like maybe both examples could be given for the move. The var version commented out by default sort of explaining the alternate method if you understand it and choose to use it.
Title: Re: Let's update Kung Fu Man
Post by: verz36 on February 01, 2016, 05:33:24 pm
 this is a great idea, ill be following this closely. thank you all involved..
Title: Re: Let's update Kung Fu Man
Post by: hatter on February 01, 2016, 06:46:43 pm
http://mugenguild.com/forum/topics/kung-fu-man-remix-video-added-171806.msg2212041.html#msg2212041 (http://mugenguild.com/forum/topics/kung-fu-man-remix-video-added-171806.msg2212041.html#msg2212041)

IDK if you know about this, but maybe it's worth a look, if you want.

Also, at the risk of sounding like a broken record, but is it close to the time to announce the Graphics thread contest (IDK if it was a contest or a collab thread) for this project, or do you still need a bit more time before announcing it?
Title: Re: Let's update Kung Fu Man
Post by: AlexSin on February 01, 2016, 06:55:11 pm
It doesn't have any new sprite, it's just a KFM with a gameplay similar to that of the old Infinite styled characters.
Title: Re: Let's update Kung Fu Man
Post by: GDPenguin on February 01, 2016, 07:03:14 pm
It doesn't have any new sprite, it's just a KFM with a gameplay similar to that of the old Infinite styled characters.

I know, it's just the base idea. But at the same time, my first edit ever. so I wonder how this will end up. :)
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 01, 2016, 07:09:18 pm
Also, at the risk of sounding like a broken record, but is it close to the time to announce the Graphics thread contest (IDK if it was a contest or a collab thread) for this project, or do you still need a bit more time before announcing it?
I will announce the contest once I get a bit more done. I got sidetracked last week working on Rikuo. Right now I'm working on *exciting secret project*. I don't think it'll consume my entire week like Rikuo did last week though :P

So the goal again for this week is to finish the common1
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 03, 2016, 09:48:06 pm
http://network.mugenguild.com/justnopoint/stuff/kfm.rar
New Update
First of all:

He can't attack at all while running. The triggers in his cmd for his non-aerial attacks should be ctrl || stateno = 100.
Added as a new trigger line for all standing and crouching basics.
Code:
trigger3 = stateno = 100 ; can be done while dashing

Quote
The code below fullfills the need of having control when landing from a gethit state, And it does much more. It also reproduces the concept of Trip Guard successfully.

[state 52, Control]
type = ctrlset
trigger1 = !time
trigger1 = !(prevstateno = [600, 699])
trigger2 = time = 2 ; 2 for SNK-style, 1 for Capcom-style. Both are good options.
value = 1

[State 52, Guard]
type = changestate
trigger1 = ctrl && command = "holdback"
trigger1 = inguarddist && (prevstateno != [600, 699])
value = 120
Added. Should I put a note to remove the Guard changestate if making a KOF character?

Quote
In addition, in my opinion, stateno 40 should be invulnerable to throws. This is how commercial games tend to do.

[state 40, Vulnerability]
type = hitby
trigger1 = 1
value = SCA, NA, SA, HA, NP, SP, HP
Added

Quote
In addition again, make sure to fix a few syntax issues found in his code.
Fixed all but the .act one. I added 6 pals from KFM but it didn't fix the issue. Do they need to be a certain name too?

Question 2
;volumescale offset (negative for softer)
volume = 0
was changed to
;volumescale offset (negative for softer)
volumescale = 0

This works well here to replace volume correct? As a constant I mean. I figure yes but wanted to be sure since volume is deprecated and hey, it even says volumescale in the note!

Quote
I have serious objection about how his chain combos are handled. You know, the impossibility of cancelling crouching basics into standing basics and vice-versa, like every other fighting game with chain combos (via replacing the triggers statetype = S and statetype = C in his cmd with statetype != A. All advanced coders will agree with me.).
Fixed in all standing and crouching basics.

Mugen has a hard coded bit of behaviour if liedown time remaining is less than 10, you become completely invulnerable. I would leave it at 60, cos that doesnt' really matter, and override that state to make you get up quicker. Otherwise you make your character unhittable while down which is very very rarely intended behaviour.

You can't bypass that short of making your own lie down state, and since there is one there already, overriding it to behave differently is a better idea.

So about this quote. I noticed I didn't actually see the lie down animation in the common1 and Cyanide says it's hard coded.
So to clarify this means I need to build a totally new lie down state, yes?

Also should anything be reworded or clarified for the notes at the top of the CMD file?
Spoiler, click to toggle visibilty
Title: Re: Let's update Kung Fu Man
Post by: GhostFox12 on February 07, 2016, 11:46:46 pm
If you are still looking for some optional animations for Kung Fu Man I got some.
Here's Bee Stung:
(http://i.imgur.com/NhXCVVI.png)

Here's Dash Collision:
(http://i.imgur.com/wIIVWkw.png)

And here's the Dash Collision Logo:
(http://i.imgur.com/XgIFXlr.png)

Sorry if Dash Collision looks a little wonky. I'm not much of a spriter.
Title: Re: Let's update Kung Fu Man
Post by: felineki on February 08, 2016, 12:38:58 am
Why did you add a CLSN1 on the fifth frame of the normal KF Palms and on the fourth of the Fast KF Palm (the frame with the blur)? It worked right before, also the blur shows the palm still hasn't reached the enemy so it shouldn't hurt; moreover, the "swing" sound plays the frame after it if it hits the enemy.
The playsnd is right, the CLSN1 you added isn't.
I was considering using the move to show how to have certain frames play through hit pause.
For Darkstalkers at least, the blur frames usually can hit. They just do have that "play through hitpause" property JNP mentioned, meaning that even when they connect, the blur frame will only be on screen for its designated X frames before proceeding to the next frame for the rest of the hitpause. Then after the hitpause ends the animation continues from there. This means that this property does have an effect on frame data, any move that features it will have a greater advantage on hit/block than the raw animation implies.
Title: Re: Let's update Kung Fu Man
Post by: AlexSin on February 08, 2016, 10:48:56 am
No, I wasn't discussing that, because I agree with you, but just in this particular case:
(http://i1066.photobucket.com/albums/u402/GodofDeath94/Blur.png)since the palm didn't travel for enough space I wouldn't put the CLSN1 there.
In these other cases, I'm fine having the red CLSN:
(http://i1066.photobucket.com/albums/u402/GodofDeath94/Blur%202.png)(http://i1066.photobucket.com/albums/u402/GodofDeath94/Blur%203.png)
Title: Re: Let's update Kung Fu Man
Post by: felineki on February 08, 2016, 07:29:48 pm
Ah, I see. I didn't remember exactly what the blur frame on Kung Fu Palm was like.
Title: Re: Let's update Kung Fu Man
Post by: -Whiplash- on February 08, 2016, 07:44:43 pm
Mugen has a hard coded bit of behaviour if liedown time remaining is less than 10, you become completely invulnerable. I would leave it at 60, cos that doesnt' really matter, and override that state to make you get up quicker. Otherwise you make your character unhittable while down which is very very rarely intended behaviour.

You can't bypass that short of making your own lie down state, and since there is one there already, overriding it to behave differently is a better idea.

So about this quote. I noticed I didn't actually see the lie down animation in the common1 and Cyanide says it's hard coded.
So to clarify this means I need to build a totally new lie down state, yes?

Yeah, It also makes it so that there is no hard knockdown in MUGEN ( or was it soft knockdown? I can't remember which one it doesn't have, but I had to do this for my game.)

what you want to do is find state 5110, which is the lie down state, add a change state at the very top to another state. (Like state 5111 or something) with the except same text, since it's not an issue with the text, it's that MUGEN does something hard coded when in state 5110, so to dodge the glitches MUGEN has there make it go to another state that's identical.

So: 

make copy of state 5110 in the common right under state 5110, named 5111.

add
[State 5080, 1] ;Set default anim
type = changestate
trigger1 = !time
value = 5111

to the very top of state 5110.

Problem solved.

make sure that there are no references/checks for state 5110 anywhere else and if there are replace them/ add a check to 5110 as well.

at least I think that's what you should do? smarter/more experienced people can probably tell you if this is the correct solution or if there is a better way but it's worked for me so far.
Title: Re: Let's update Kung Fu Man
Post by: Girku on February 08, 2016, 11:13:17 pm
Basic:

Recovery Rolls like in Tekken, and essentially every damn fighting game nowadays. Power charge(I'm sure thats been mentioned already)  Long jump,wall jump. 

Intermediate:
XCostume., Flying,changing of voice sets via variables and the snd . Max and Custom Combo Modes,

Advanced
 Transformations( was briefly mentioned)

To my knowledge most of these things havent been suggested.  Probably should have read over everything more.. ( I skipped pages 3 and 4)

Following this for sure!
Title: Re: Let's update Kung Fu Man
Post by: Zzyzzyxx on February 10, 2016, 11:33:41 pm
Quote
In addition again, make sure to fix a few syntax issues found in his code.
Fixed all but the .act one. I added 6 pals from KFM but it didn't fix the issue. Do they need to be a certain name too?
I'm really sorry for not knowing the answer. There's someting screwed in Elecbyte KFM's sff.

I tested Morrigan by Daniel9999999, removing all the deprecated codes. She, like KFM, doesn't have separate .act files in her folder.

And Fighter Factory stopped showing issues in her. This doesn't work with Elecbyte's KFM and I really think the problem is in his sff. Or in his.def, but more in his sff. I thought that the problem was in Fighter Factory, but it doesn't seem to be the case.

I don't have any other suggestion, except recommending you to create an empty sff (or using Fighter Factory's sff that is built up when you use one of its templates) and build a vanilla sff for him.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 10, 2016, 11:37:18 pm
When you click on the red error "x" in FF3 it takes you to the .def file. Doubt that helps. Ugh I hope I won't need to recompile the whole sff to fix this.
Title: Re: Let's update Kung Fu Man
Post by: Lazy Blazer on February 15, 2016, 12:14:47 pm
An animation i did for BC... don't seems like hes going to complete his kfm though.
(http://puu.sh/n8HpT/f35c171f18.GIF)
reference from Ryo from fatal fury.
(http://puu.sh/n8Hqk/584f403239.GIF)
arms by itself for some shadow effects if you rike.
Title: Re: Let's update Kung Fu Man
Post by: AlexSin on February 15, 2016, 01:01:47 pm
:msurprised:
Title: Re: Let's update Kung Fu Man
Post by: F. James Fernandez on February 15, 2016, 11:05:55 pm
You're welcome. told you i was gonna ask solblaze LMAO
Title: Re: Let's update Kung Fu Man
Post by: felineki on February 15, 2016, 11:41:31 pm
Wow, that's a very nice animation.
Title: Re: Let's update Kung Fu Man
Post by: Wackafoo on February 16, 2016, 02:12:01 am
A athena that I have had a very good system showing what everything was. I learned a lot from it. Every attack and move is set up like this

;------------------------------------------------------------------------------;
; 立弱P (近距離)
;------------------------------------------------------------------------------;
[Statedef 200]
type        = S
movetype    = A
physics     = S
juggle      = 1
anim        = 200
ctrl        = 0
velset      = 0, 0
sprpriority = 1
poweradd    = 25

;-------[ Sounds ]-------;

[State 200:         Attack SE]
type     = PlaySnd
trigger1 = AnimElem = 3
value    = 4, 0

;-------[ Hit Defs ]-------;

[State 200:         Hit Def, 1]
type             = HitDef
trigger1         = AnimElem = 3
id               = 200
attr             = S, NA
hitflag          = MAF
guardflag        = MA
priority         = 3, Hit
damage           = 27, 0
animtype         = Light
pausetime        = 3, 4
hitsound         = S5, 0
guardsound       = S6, 1
sparkxy          = -10, Floor(-73 * const(size.yscale))
sparkno          = 0 ;S6000 + Random % 8
guard.sparkno    = 41 ;S6060
ground.type      = High
ground.slidetime = 11
ground.hittime   = 10
ground.velocity  = -3.5, 0
guard.ctrltime   = 9
air.velocity     = -2.5, -1.1
air.hittime      = 10
fall             = 0
air.fall         = 1
fall.recover     = 1
fall.recovertime = 10

;-------[ States ]-------;

[State 200:         Standing]
type     = ChangeState
trigger1 = AnimTime = 0
value    = 0
ctrl     = 1

;------------------------------------------------------------------------------;

I would like KFM easy to learn from his CNS and not from a doc that explains stuff all weird.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 16, 2016, 04:04:31 am
http://network.mugenguild.com/justnopoint/stuff/kfm.rar

make copy of state 5110 in the common right under state 5110, named 5111.

add
[State 5080, 1] ;Set default anim
type = changestate
trigger1 = !time
value = 5111

to the very top of state 5110.

Problem solved.
Spoiler: Like thise? (click to see content)
Quote
make sure that there are no references/checks for state 5110 anywhere else and if there are replace them/ add a check to 5110 as well.

at least I think that's what you should do? smarter/more experienced people can probably tell you if this is the correct solution or if there is a better way but it's worked for me so far.
Did you mean I should change the below values to 5111 instead too?
[State 5101, 7] ;Hit ground
trigger1 = Vel Y > 0
trigger1 = Pos Y >= Const(movement.down.bounce.groundlevel)
type = ChangeState
value = 5110
If you are still looking for some optional animations for Kung Fu Man I got some.
Here's Bee Stung:
(http://i.imgur.com/NhXCVVI.png)

Here's Dash Collision:
(http://i.imgur.com/wIIVWkw.png)
They look great! Added (not the text that's not part of the standard)

No, I wasn't discussing that, because I agree with you, but just in this particular case:
http://i1066.photobucket.com/albums/u402/GodofDeath94/Blur.png since the palm didn't travel for enough space I wouldn't put the CLSN1 there.
In these other cases, I'm fine having the red CLSN:
]http://i1066.photobucket.com/albums/u402/GodofDeath94/Blur%202.png
http://i1066.photobucket.com/albums/u402/GodofDeath94/Blur%203.png
Went ahead and removed that CLSN1. I'll use the blur code elsewhere.

An animation i did for BC... don't seems like hes going to complete his kfm though.
Yeah I'll find a use for this in the intermediate build for sure! This shouldn't go to waste!

A athena that I have had a very good system showing what everything was. I learned a lot from it. Every attack and move is set up like this

;-------[ Sounds ]-------;

[State 200:         Attack SE]
type     = PlaySnd

;-------[ Hit Defs ]-------;

[State 200:         Hit Def, 1]
type             = HitDef

I would like KFM easy to learn from his CNS and not from a doc that explains stuff all weird.
Thank you VERY much for the suggestion! Let me get this straight however. You'd like the parts to be labeled above each SCTRL? Like in my quoted examples?

Does that really teach better? I mean PlaySnd seems kinda obvious and so does HitDef. It kind of seems a bit redundant to label them again like this. And you still have to look at the docs to see what all the parameters you can tweak underneath are.




Title: Re: Let's update Kung Fu Man
Post by: Demitri on February 17, 2016, 08:16:29 am
I think with different labeling it could work to keep things neatly organized, but not much purpose otherwise,
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 17, 2016, 05:05:56 pm
http://network.mugenguild.com/justnopoint/stuff/kfm.rar

Okay it's time to log what has and hasn't been done yet.
As a universal fix applied everywhere I updated all deprecated triggers in all files

air is updated but not complete
completed:

incomplete:

Anything else need to be done in the AIR file?

common1.cns is completed?
What's been changed?

CMD completed?

completed

incomplete
Anything else?


I think with different labeling it could work to keep things neatly organized, but not much purpose otherwise,
The only real thing I could think that may help is to put ugly links to MUGEN Class people would have to copy paste to even use. I don't think that labeling them will help organization much. The order the SCTRLs are in helps that.


Edit: noticed this so adding it here

If for any reason at all you leave ATTR out from the attack mugen will not throw an error message or crash. It simply continues working. Except the hitdef doesn't work. This can be quite hard to diagnose as there is no error condition.

Animtype = Up where fall = 0 is also broken. The character will automatically recover as soon as their animation is complete. No keypress required. Fall = 1 resolves this to some extent, except you must press the recovery command to get out. There is no intrinsic way to have the UP animtype allow recovery after X ticks, it is either when the animation completes, or never. You need to use state -2 and targetstate to get around this, or a custom state.

Alternatively we need to get into the common1.cns and fix up some of mugens stupid stuff and release it as a community thing.
Title: Re: Let's update Kung Fu Man
Post by: Staubhold on February 17, 2016, 07:43:22 pm
How about some proper working charge moves (hold d/hold b)?

 :mlol: I would love to see KFM do the Blanka roll.
Title: Re: Let's update Kung Fu Man
Post by: The Sudden Rarity on February 20, 2016, 01:43:19 am
If I haven't said this or someone hasn't said this before: there should also be a tutorial on how to program hyper ports (KoF based and PotS based) and super sparks (PotS based super sparks for advanced version of KFM).
Title: Re: Let's update Kung Fu Man
Post by: Fob1aZ on February 20, 2016, 01:13:07 pm
I suggest the possibility to directionate the throws (Lasso) with arrow keys (check Kfs I shared).
Title: Re: Let's update Kung Fu Man
Post by: AlexSin on February 25, 2016, 01:30:32 pm
You could move the KF Upper changestates (in the command file) above the KF Palm ones, to make the input easier.
Like this:
Code:
;---------------------------------------------------------------------------
;Fast Kung Fu Upper (1/3 super bar)
[State -1, Fast Kung Fu Upper]
type = ChangeState
value = 1120
triggerall = command = "upper_xy"
triggerall = power >= 330
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Light Kung Fu Upper
[State -1, Light Kung Fu Upper]
type = ChangeState
value = 1100
triggerall = command = "upper_x"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Strong Kung Fu Upper
[State -1, Strong Kung Fu Upper]
type = ChangeState
value = 1110
triggerall = command = "upper_y"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Fast Kung Fu Palm (1/3 super bar)
[State -1, Fast Kung Fu Palm]
type = ChangeState
value = 1020
triggerall = command = "QCF_xy"
triggerall = power >= 330
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Light Kung Fu Palm
[State -1, Light Kung Fu Palm]
type = ChangeState
value = 1000
triggerall = command = "QCF_x"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Strong Kung Fu Palm
[State -1, Strong Kung Fu Palm]
type = ChangeState
value = 1010
triggerall = command = "QCF_y"
trigger1 = var(1) ;Use combo condition (above)

instead of this:
Code:
;---------------------------------------------------------------------------
;Fast Kung Fu Palm (1/3 super bar)
[State -1, Fast Kung Fu Palm]
type = ChangeState
value = 1020
triggerall = command = "QCF_xy"
triggerall = power >= 330
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Light Kung Fu Palm
[State -1, Light Kung Fu Palm]
type = ChangeState
value = 1000
triggerall = command = "QCF_x"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Strong Kung Fu Palm
[State -1, Strong Kung Fu Palm]
type = ChangeState
value = 1010
triggerall = command = "QCF_y"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Fast Kung Fu Upper (1/3 super bar)
[State -1, Fast Kung Fu Upper]
type = ChangeState
value = 1120
triggerall = command = "upper_xy"
triggerall = power >= 330
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Light Kung Fu Upper
[State -1, Light Kung Fu Upper]
type = ChangeState
value = 1100
triggerall = command = "upper_x"
trigger1 = var(1) ;Use combo condition (above)

;---------------------------------------------------------------------------
;Strong Kung Fu Upper
[State -1, Strong Kung Fu Upper]
type = ChangeState
value = 1110
triggerall = command = "upper_y"
trigger1 = var(1) ;Use combo condition (above)
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 18, 2017, 01:17:48 pm
RESURRECTION

I need to hurry and release this soon

What else should be added? I'll get back to adding optional animation standards but it won't be on the 1st release. I'll add them in updates

I want to discuss the Juggle System. Which would be a better replacement to the default but keep the concept of the default?

Should I completely mimic the default by having a var that counts down from 15? And if you don't have enough points you miss?

Or should I count UP to allow more variety and control?

Counting up would look like this
Quote
This is in my attacks
[State 0, VarAdd]
type = VarAdd
trigger1 = MoveHit = 1
trigger1 = P2StateType = A
var(18) = 7; adjust to determine how many juggle points it should have

Hitdef
type = HitDef
triggerall = Var(18) <= 15; adjust for how many points it'll allow

place the below in your -2 so the var resets when P2 is no longer in hit state
[State -2, VarSet]
type = VarSet
trigger1 = P2MoveType != H
var(18) = 0

to apply to helpers remember to do this


This is in my attacks
[State 0, ParentVarAdd]
type = ParentVarAdd
trigger1 = MoveHit = 1
trigger1 = P2StateType = A
var(18) = 7; adjust to determine how many juggle points it should have

Hitdef
type = HitDef
triggerall = root,Var(18) <= 15; adjust for how many points it'll allow

More things I need to alter:

-Remove all instances of p1stateno and p2stateno from hitdef replacing with changestate and targetstate for better compatibility with hitoverride

-Add a projectile

-Add Vans's reflection standard @Vans: finish your tutorial so I can place it inside KFM!!!

-Add a charge move

Should I add the simple reverse command fix?  (http://mugenguild.com/forum/topics/correcting-reversed-commands-characters-176614.0.html)
Title: Re: Let's update Kung Fu Man
Post by: altoiddealer on February 18, 2017, 01:59:55 pm
More things I need to alter:

-Remove all instances of p1stateno and p2stateno from hitdef replacing with changestate and targetstate for better compatibility with hitoverride
I might be wrong, but I think I remember reading it said by one or more experienced coders that p2stateno is better used for certain scenarios, and targetstate for others.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 18, 2017, 02:12:00 pm
From my experience the only time you should use p2stateno is if you already have them locked into a throw state
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 18, 2017, 10:25:56 pm

Animation 5170 glitch (tested on Mugen 1.0)

Sometimes Mugen doesn't want to play the animation 5170.
How to recreate the glitch:
- try to guard an aerial attack (either basic, or special or super) while you're in air; you don't have to guard the attack (the move doesn't have to connect), but just go into one of those states;
- now get hit by an attack that makes you fall on the ground. You don't have to jump for this to happen.
(no, it's not because the c.HK has a Trip function, it happens with many other attacks that make the enemy fall)

Et voilà! There's a bug!
Here's a video showing it.
(if you can't follow what I'm doing, the video's description might help you)

You have to code every custom state in all the attacks in order to not have this problem (eg Felineki's Akuma).
[youtube]https://www.youtube.com/watch?v=RI6p0-ZHv_k[/youtube]

as long as you're not using Sysvar(0) for anything else, but you also need to account for the fact that also these states are statetype = L, so I'd say to err on safety

 [State -2, System Variable Set]
type = VarSet
trigger1 = StateType = S || Statetype = C
sysvar(0) = 0
ignorehitpause = 1
persistent = 0
Title: Re: Let's update Kung Fu Man
Post by: Memo on February 19, 2017, 12:21:19 am
If your updating kfm will you include the fixes to the common1 vans discovered?
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 19, 2017, 12:32:51 am
Already applied
Title: Re: Let's update Kung Fu Man
Post by: The Sudden Rarity on February 19, 2017, 01:14:29 am
Huh, I forgot all about this project.  Here's hoping to see a fixed and updated KFM.  I don't know too much about coding myself, but I look forward to this ^..^
Title: Re: Let's update Kung Fu Man
Post by: Vans on February 22, 2017, 02:49:01 pm
I am not really in a hurry to finish writing. All the code is already commented and available.

It takes a giant toll on me to ask me to write tutorials when I already take great care in commenting my code.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 22, 2017, 02:57:31 pm
Okay, I'll just add the code as is then. Just figured since you were already making the tutorial I could use that instead since it goes a bit more in depth teaching. Which is what KFM is for.

If/when you update the tutorial I'll simply update KFM with the new info then.
Title: Re: Let's update Kung Fu Man
Post by: Zazamyon2 on February 22, 2017, 03:19:18 pm
Just a suggestion: adding localcoord separated .defs would be a good idea too.
The big 3 would be: 320, 240 for 320x240/640x480
                              427,240 for 427x240/854x480
                              426.66,320.25 for 1280x720/1920x1080

Depending on how thorough you guys want to be, the separate localcoord .defs could even point to separate .airs that use ,,scale.x,scale.y sprite scaling parameters or .cns with relevant scaling values for correcting effect scaling errors in widescreen localcoord scenarios - this would be a huge help for alot of creators wanting to start making widesceen/zoom compatible chars
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 22, 2017, 03:29:27 pm
I would need assistance there as I know nothing about using localcord and zoom stuff yet. Also it'd need to be done in a non confusing way. Don't want to over bloat the learning char.
Title: Re: Let's update Kung Fu Man
Post by: Mastertkof on February 22, 2017, 04:29:35 pm
nice idea, i will like to try it when u release
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 22, 2017, 08:22:44 pm
Here's the projectile code.

Any suggestions or corrections? If not I'll add the reflection code.

Code:
;---------------------------------------------------------------------------
; Board Throw
; CNS difficulty: easy
[Statedef 1500]
type    = S
movetype= A
physics = S
poweradd= 60
velset = 0,0
anim = 1500
ctrl = 0
sprpriority = 2

[State 1030, Button Detect]
type = VarSet
trigger1 = !Time && !AILevel
var(2) = cond((command = "Board Throwx"), 0, 1);this sets the var depending on button pressed when using the move

[State 0, Helper]
type = Helper
trigger1 = AnimElem = 3
name = "Board"
ID = 1510
stateno = 1510
pos = 20,-60
postype = p1    ;p2,front,back,left,right
facing = 1
ownpal = 1

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

;---------------------------------------------------------------------------
; Board Projectile Helper
; CNS difficulty: hard
[Statedef 1510]
type    = A
movetype= A
physics = N
;juggle  = 6 Note that if you actually use juggle points for the helper they will only add to the helper's juggle points. Not the root's (KFM's)
anim = 1510
ctrl = 0
sprpriority = 5
hitcountpersist = 1
movehitpersist = 1

;IF this was a fireball you would use this. As a piece of wood we will allow it to cast a shadow
;[State 1061, NoShadow]
;type = AssertSpecial
;trigger1 = 1
;flag = noshadow
;ignorehitpause = 1

[State 1050, Button Detect]
type = VarSet
trigger1= !Time && !PrevStateNo
var(2) = Root, var(2) ;sets the helper var to be the same as the root's var

[State 1033, VelSet]
type = VelSet
trigger1 = Time >= 0
x = Cond(var(2) = 1, 6,3) ;If Var(2) is 1 then this moves faster, if not 1 it moves slower
y = 0

[State 1061, Velocity]
type = VelSet
trigger1 = Movecontact ;stop moving when the board connects
x = 0
y = 0

[State 1061, NotHitBy]
type = NotHitBy
trigger1 = Time >= 0
time = 1
value = SCA, NA, SA, HA, NT, ST, HT ; The helper can't be hit by anything except Projectiles
ignorehitpause = 1

[State 1061, HitBy]
type = HitBy
trigger1 = Time >= 0
value = SCA, NP, SP, HP ; Only Projectiles will hit. This allows other projectiles to destroy this one
time = 1
ignorehitpause = 1

[State 1061, HitOverride]
type = HitOverride
trigger1 = Time >= 0
slot = 1
time = 1
stateno = 1511   ; when hit the Projectile will go to this state. It's destroyed state
attr = SCA, AA, AP, AT
ignorehitpause = 1

[State 1061, Hitdef]
type = HitDef
trigger1 = AnimElem = 1
attr = A, SP ; VERY IMPORTANT always remember to set your attr to NP, SP, or HP (Normal, Special, Hyper Projectile)
animtype  = hard
damage    = ceil(ifElse(root,fvar(11) * 20 < 7, 7, root,fvar(11) * 20)), 0
priority  = 4,Hit
guardflag = MA
hitflag = MAF
pausetime = 0,10
sparkxy = 0,0
hitsound   = 5,2
guardsound = 6,0
ground.type = high
air.type = low
ground.slidetime = 16 ;20
ground.hittime  = 16 ;20
ground.velocity = -7.8,0
guard.velocity = -7.5
air.velocity = -5.8,-3
airguard.velocity = -5, -4
envshake.time = 5
envshake.ampl = 4
envshake.freq = 176
fall.envshake.time = 10
fall.envshake.ampl = 4
fall.envshake.freq = 176
yaccel = 0.5
air.fall = 0
fall.recover = 1
ground.cornerpush.veloff = 0
air.cornerpush.veloff = 0
down.cornerpush.veloff = 0
airguard.cornerpush.veloff = 0
guard.cornerpush.veloff = 0
getpower = cond(p2movetype=H,40,140), 10 ; if P2 already in a hit state you get less power from hitting them
givepower = 35,35

[State 3001, Guardshake]
type = envshake
trigger1 = moveguarded
time = 4
ampl = 6
freq = 176
ignorehitpause = 1

[State 1061, Fade]
type = changestate
trigger1 = movecontact ;destroyed state
value = 1511
ignorehitpause=1

;---------------------------------------------------------------------------
; DESTROY Board Projectile Helper
; CNS difficulty: hard
[Statedef 1511]
type    = A
movetype= A
physics = N
anim = 1511
ctrl = 0
sprpriority = 5

;[State 1002, NoShadow]
;type = AssertSpecial
;trigger1 = 1
;flag = noshadow

[State 191, Snd 1]
type = PlaySnd
trigger1 = !Time
value = F5,2
volumescale = -40

[State 0, DestroySelf]
type = DestroySelf
trigger1 = p2movetype != H
trigger1 = time >= 27         ;This destroys the projectile when time = 27 which is the end of the board break animation. But ONLY when P2 is NOT in a hit state. While in a hit state this will stay on the final frame so any hits that follow will add to the combo counter

Also this will be a charge command to show the best way to code charge commands.

Is this the best way to code them?
http://mugenguild.com/forum/topics/charge-characters-and-vars-the-struggle-178606.msg2330964.html;topicseen#msg2330964
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 23, 2017, 04:55:24 pm
Hey I got it!

It wasn't as easy to follow as you suggested @Vans: The tutorial REALLY helped me understand the projectile part. But I had to reverse engineer a lot of the reflector helper. You should label the states in Japanese and english to avoid confusion. Also there is a ton of Athena specific code littered in the reflector code and not all is labeled what is actually needed and what is Athena specific.

I still have to comb through this and remove some Athena specific stuff and maybe add some KFM specific things. I also still need to clarify what some of this is, why it is here, and what it does exactly. In it's current form many people won't understand how to use this.

Any assistance would be welcomed.

I'll tag @JMorphMan: @JesusZilla: and @Kamekaze: because I think all of you have used this method and may be able to help as well.

Here's the code:
Spoiler, click to toggle visibilty
Title: Re: Let's update Kung Fu Man
Post by: Kamekaze on February 23, 2017, 05:09:22 pm
I didn't need to remake anything he had lol. I copy pasted it and changed one state no because my shredder has a built in stun system. Otherwise I could have left it as it was and thus far it's worked fine. Not sure what happened with your implementation to cause you to re-write a few things. I'm at work atm so I'll investigate what you wrote later on.
Title: Re: Let's update Kung Fu Man
Post by: Vans on February 23, 2017, 05:14:23 pm
My states are labeled, man. Every single piece that belongs to the reflector and the projectiles are labeled and are designed to be copied and pasted.

If you see an afterimage, then yeah, it probably does not belong to the reflector.

My code is far less "littered" than ANYTHING Phantom.of.the.Server ever coded and people have no issues copying the code there. Don't be so dramatic.
Title: Re: Let's update Kung Fu Man
Post by: Jesuszilla on February 23, 2017, 05:16:49 pm
Vans' reflector, when removing comments, is like 3 SCTRLs and one line in a HitDef. What is so hard to understand?
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 23, 2017, 05:30:11 pm
Note that I also changed some stuff since this uses a physical attack to reflect and not a projectile/energy shield. I may should note the removed states since this method will be used far less than a shield type.

Mostly it was vars. The juggle limiter stuff was pretty obvious. I'm trying to keep vars to as much of minimum as I can for teaching purposes.

I also need to note what to do to make the fireball not reflect at all.

Ninja edit:
No it's not all labeled
Quote
;---------------------------
;消えろ
[Statedef 1208]
That did not tell me WHAT the state is. I had to look at the code and anim info. Not a big deal but it does take more time than simply saying it's the kill reflector anim.

I'm not being dramatic, I haven't done this stuff as long as you so it takes longer. There are 13 states in the reflector alone. It looks like this in FF3
(http://justnopoint.com/mugen/guild/whu.png)

I'm legit trying to help this be implemented so more people can use it. I apologize that I am not as talented but if I'm having trouble then so would many others. I figured you guys would be able to add more notes to this for clarity. But you don't have to. I was just trying to work together so we have correct and well worded notes. It'll get done either way. I just trusted you guys more with it than me is all.
Title: Re: Let's update Kung Fu Man
Post by: Kamekaze on February 23, 2017, 05:54:43 pm
I don't know how you got 13. when I implemented it in my shredder there was 4. If you want to download it and see its 1004,10041,1002 and 1006. mine is stripped of anything athena used, which was only the afterimage tbh.

1004 - state with reversal
10041- state of reflected projectile that is redirected to own selfstate handling reflectiong
1002- state helper goes to after reversal (1004)
1006 - override incase of not helper based projectile.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 23, 2017, 06:20:34 pm
I didn't implement all of them. And I counted the actual state that makes the helper. 1200-1240 (or was it just through 1211 and I'm getting it mixed up with fireball states, looking again that may be it) are all reflector states in Athena. I got it down to 5
;---------------------------
;飛び道具
[Statedef 1209]

The above is the only japanese only state I still have. Looking into it I didn't need it either. It was for Athena's fireball. Okay so now I know the only states needed had the English and Japanese names. I'll remove that state from my KFM as it's useless and it'll make it a lot clearer.

That was my main source of confusion. All those states being mixed in together and I couldn't read the labels. Thank you that helped it a ton on it's own!
Title: Re: Let's update Kung Fu Man
Post by: Vans on February 23, 2017, 06:26:20 pm
State 1205 is the reflector itself, the object that clashes with projectiles.
State 1206 is the state the reflector goes to when it comes into contact with a projectile.
 This state uses a dummy animation, so the actual "fade out" effect is spawned as an extra helper.
State 1207 is a custom state that checks if the reflected projectile is compatible, and if it is, it sends them to the appropriate behavior.
State 1208 is a fade out animation used for the reflector.
State 1209 is a fake projectile in the reflector when it is reflecting a non-compatible projectile. This is the old reflector implementation.
State 1210 is the fade out animation for projectile 1209.
State 1211 is a special required state for the reflector that prevents guarding bugs.

I am still preparing a more detailed writeup, because a tutorial for writing a reflector requires a tutorial on how to write an old reflector first and nobody really wrote a tutorial for that. I'm not entirely sure if you have attempted to write one, but I'm guessing it is not the case.

Note that I also changed some stuff since this uses a physical attack to reflect and not a projectile/energy shield. I may should note the removed states since this method will be used far less than a shield type.

Correct, you're trying to do something different without having studied the code beforehand. This in itself adds a layer of difficulty.

Ninja edit:
No it's not all labeled
Quote
;---------------------------
;消えろ
[Statedef 1208]
That did not tell me WHAT the state is. I had to look at the code and anim info. Not a big deal but it does take more time than simply saying it's the kill reflector anim.


That's what we all do when we're coding something? Also, that state has a label x3

I'm legit trying to help this be implemented so more people can use it. I apologize that I am not as talented but if I'm having trouble then so would many others. I figured you guys would be able to add more notes to this for clarity. But you don't have to. I was just trying to work together so we have correct and well worded notes. It'll get done either way. I just trusted you guys more with it than me is all.

It took you a couple of hours to look at the logic and understand it, while it took me exactly 3 full weeks (over months) to solve the reflector problem. I would say that my code was a big success in this case!

Cut me a little slack here, if you go around publicly saying my code is cluttered people will think it really is horrible when it's the exact opposite, I design it so you can copy and paste it. I don't have a ton of free time as I did before to be active as I would wish to writing notes and info and help in addition to the time I spend solving the problems and giving it to other people.

It takes a long time man, and it takes long time to bring it down to essentials.

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. :/
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 23, 2017, 06:41:18 pm
I do apologize for that. From my POV I thought you guys were making fun of me for having difficulties. I promise you I am VERY happy with all the work you put in. It took a bit but I got it working  and it works fantastically! You really brought something great to the table with this.

And I totally understand NOT having time to make tutorials. How often do I keep saying I'm going to add to MUGEN Class and it's MUCH simpler to add to.

So I was in the wrong with how I came off. The issue that got us clashing here I suppose was mostly the wording when you said that it's all coded and noted well. Which, yes it is. It really is. I just don't know japanese so I didn't know those states were not needed since they were all mixed in. I totally missed that one of the states I kept wasn't even accessed in my code. It had by far the bulk of Athena specific stuff I thought I'd have to clean up :P

Thank you for your time. If you like I can do the typical reflector code tutorial for you. Had to code one in Piccolo, Gotenks and now in KFM so I know how they work in the old and new way.
Title: Re: Let's update Kung Fu Man
Post by: Iced on February 23, 2017, 11:05:21 pm
(http://justnopoint.com/mugen/guild/whu.png)


Thats really uneeded, why putting only japanese names on stuff? Whats the reasoning behind making code less readable by everyone? at most it could have both english and japanese.
This wouldnt pass on Unit testing anywhere.

Wasnt the point of this to be a simple tutorial character? I dont see how anyone would assume only the english ones were important when the whole thing is filled with japanese.
Alternatively to have changing languages an easier method would be to just mark the tutorial pieces with a comment stating " Tutorial for reflector 1/3" then 2/3 then 3/3 etc, that way anyone that first opens it, even if they see a bunch of japanese will be able to tell that the reflector is all contained within a certain area.
Title: Re: Let's update Kung Fu Man
Post by: Keaton on February 24, 2017, 02:04:26 am
Will you update his stage too? :P
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 24, 2017, 02:07:15 am
Does it have errors? I've never seen anyone complain or talk about bugs in it.
Title: Re: Let's update Kung Fu Man
Post by: Jesuszilla on February 24, 2017, 02:07:51 am
This wouldnt pass on Unit testing anywhere

Unit tests don't cover comments, dumbass.
Title: Re: Let's update Kung Fu Man
Post by: Iced on February 24, 2017, 02:12:12 am
This wouldnt pass on Unit testing anywhere

Unit tests don't cover comments, dumbass.

If your development team is not setting up for pickup of other developers? Sure.  If they are worth anything they are supposed to be going over their naming procedures to make sure that the code is easily picked up by any other team members, part of the reason unit tests are supposed to be covered by developers that are not the ones that first wrote them, it certainly isnt going to be covered in system , acceptance or Integration.

Nice mature display there, crybaby.
Title: Re: Let's update Kung Fu Man
Post by: Jesuszilla on February 24, 2017, 02:13:10 am
That's not what unit testing is. Scrub.
Title: Re: Let's update Kung Fu Man
Post by: Kamekaze on February 24, 2017, 02:15:54 am
Considering that I literally spent all day today writing unit tests comments are completely irrelevant. Unit tests covers functionality within given preset data. In this case to go with that analogy the unit test would cover all 3 stages of the reflection. 1. can it be reflected. 2. does the item have a reflected state defined. 3. does the helper use affectteam = f aka will it hit the root back. More importantly, unit tests are designed to help refactor code and keep code simplified which this reflect does

The reason its in english and japanese is because it covers both english and japanese communities of mugen. If you would like other languages by all means we can add them so that anyone can read it in their native tongue. It was an honest mistake that he forgot the english on one of those states and everyone else has accepted that lol.

part of the reason unit tests are supposed to be covered by developers that are not the ones that first wrote them, it certainly isnt going to be covered in system , acceptance or Integration.


Except devs are expected to write their own tests in every team I've been in (most recent being part of IHS Markit aka fortune 500 tech comapny) so That's also not entirely the case.

Title: Re: Let's update Kung Fu Man
Post by: Jmorphman on February 24, 2017, 02:17:23 am
Unit tests don't cover comments, dumbass.
Might wanna simmer down, there.
Title: Re: Let's update Kung Fu Man
Post by: Keaton on February 24, 2017, 02:19:38 am
Does it have errors? I've never seen anyone complain or talk about bugs in it.

Not really, just curious/joking. That background always looked weird but it has a certain charm. 
Title: Re: Let's update Kung Fu Man
Post by: Iced on February 24, 2017, 02:23:47 am
Considering that I literally spent all day today writing unit tests comments are completely irrelevant. Unit tests covers functionality within given preset data. In this case to go with that analogy the unit test would cover all 3 stages of the reflection. 1. can it be reflected. 2. does the item have a reflected state defined. 3. does the helper use affectteam = f aka will it hit the root back.

The reason its in english and japanese is because it covers both english and japanese communities of mugen. If you would like other languages by all means we can add them so that anyone can read it in their native tongue. It was an honest mistake that he forgot the english on one of those states and everyone else has accepted that lol.
Thats completely understandable but I was just suggesting another naming procedure that would have eased it up.

Kame, unit testing purpose is to guarantee coverage of the base procedures, but they can cover naming procedures( and should) as well as any stray comments if they are non understandable for the dev that is reviewing them. If they're just covering actions while ignoring everything else they are not being very effective since no other dev will be able to pickup on it easily and get several doubts along the way.

if you get a new dev doing your unit testing and they dont understand what you are doing because you have named everything in japanese, they have every reason to raise a flag. JNP did.

If jz wants to just keep soiling himself with insults instead of talking he's welcome to it, but he only fouls his own image with it. I offered only constructive criticism.
The whole agressivity thing over this is a bit ridiculous.
Title: Re: Let's update Kung Fu Man
Post by: aokmaniac13 on February 24, 2017, 02:27:48 am
..
You have described a Code Review not a Unit Test.

And yes this would not pass muster during a code review.
Title: Re: Let's update Kung Fu Man
Post by: Kamekaze on February 24, 2017, 02:28:39 am
coverage of base procedures don't include comments either. The naming convention of a unit test is supposed to inform anyone testing what the goal and parameters are eg "CanReflect_HelperIsNotReflectable_ReflectFalse()". Comments if anything are peer reviewed which is what I guess you did but are inconsequential to a successful test being ran. But that's just semantics at this point I guess.
Title: Re: Let's update Kung Fu Man
Post by: Iced on February 24, 2017, 02:30:57 am
..
You have described a Code Review not a Unit Test.

And yes this would not pass muster during a code review.
Thanks for clarifying that Aok, we usually ran them in tandem so I mightve boggled the names together.
Title: Re: Let's update Kung Fu Man
Post by: Vans on February 24, 2017, 07:34:44 am
If your development team is not setting up for pickup of other developers? Sure.  If they are worth anything they are supposed to be going over their naming procedures to make sure that the code is easily picked up by any other team members, part of the reason unit tests are supposed to be covered by developers that are not the ones that first wrote them, it certainly isnt going to be covered in system , acceptance or Integration.

Nice mature display there, crybaby.

Hello Iced, thank you for the feedback. If you pay me, I'll gladly translate all of my one-liner Statedef labels to English, Spanish and Japanese as I am fully fluent in these three languages.

I suppose I made a mistake in deciding which way I wanted to comment my code, in my personal characters.

I should also mention that over 60% of the MUGEN community does not speak English as the vast majority understands either Spanish or Japanese, not English. And the asian speaking community is not a community that will ask other people for help, only look at the code. Would anybody try to defend the Spanish or the Eastern communities if my code was labeled in English or are we just stretching an issue far beyond what it should be?

The English mugen community is the MINORITY here, people.

One label in Japanese will not make the entire code unreadable, if anyone so desires they can just ask me what they mean or pass through to Google translator as they're merely one-liners, not explanations of the way the logic works.

Let's be reasonable here, I am not getting paid to follow anybody's standards.
Title: Re: Let's update Kung Fu Man
Post by: Iced on February 24, 2017, 10:02:53 am
You displayed code to the english community you got feedback based on its understandability. Its up to you how you take feedback or not at all.

No one forces you to do anything up to any standards, thats why we have people like Chuchoryu, we dont force him either, but we can give you feedback and you do whatever you want with it.
 
I mean, we could just blindly praise it, that could be a thing, but Ive known you for years and  I think you rather have open feedback rather than people going "Well Im not paying him so I better not reply pointing out that this is confusing for beginners".

Thanks for all the development Vans but Im not sure that getting so angry at feedback that insults start being thrown around seems productive.

Toodles.
Title: Re: Let's update Kung Fu Man
Post by: Vans on February 24, 2017, 10:18:48 am
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.  (http://mugenguild.com/forum/topics/tutorial-%E9%A3%9B%E3%81%B3%E9%81%93%E5%85%B7%E3%82%92%E8%B7%B3%E3%81%AD%E8%BF%94%E3%81%97%E6%96%B9%E6%B3%95-projectile-reflection-178433.0.html)

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
Title: Re: Let's update Kung Fu Man
Post by: XGargoyle on February 24, 2017, 10:24:34 am
(http://alwayswith.nl/wp-content/uploads/2016/04/popcorntime-image1.jpg)
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 24, 2017, 02:02:43 pm
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.
Title: Re: Let's update Kung Fu Man
Post by: Jesuszilla on February 24, 2017, 04:23:23 pm
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.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 24, 2017, 04:26:56 pm
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.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 24, 2017, 07:41:51 pm
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!
Title: Re: Let's update Kung Fu Man
Post by: DW on February 24, 2017, 07:57:05 pm
@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?
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 24, 2017, 08:05:20 pm
He hasn't yet. What does it do? Is it something that's typically in fighters like projectile reflection?
Title: Re: Let's update Kung Fu Man
Post by: Niitris on 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
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 24, 2017, 08:27:04 pm
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:
Title: Re: Let's update Kung Fu Man
Post by: Hannah Montana on February 24, 2017, 09:07:55 pm
hello everybody.
i already released a 0101 DOS Kfm with new stuff.
This new one in project is welcome.
Title: Re: Let's update Kung Fu Man
Post by: DW on February 24, 2017, 11:25:36 pm
^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.
Title: Re: Let's update Kung Fu Man
Post by: Jmorphman on February 25, 2017, 04:39:02 am
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 (http://mugenguild.com/forum/msg.2302031)).]And also there's a small issue that the former method has in MUGEN because MUGEN sucks.[/url]
Title: Re: Let's update Kung Fu Man
Post by: GhostFox12 on February 25, 2017, 06:38:35 am
I've created a "Burned" sprite for your Kung Fu Man:
(http://i.imgur.com/QlazqHH.png)

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.
Title: Re: Let's update Kung Fu Man
Post by: XGargoyle on February 25, 2017, 09:15:25 am
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?? ;)
Title: Re: Let's update Kung Fu Man
Post by: Vans on February 25, 2017, 09:26:37 am
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.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on February 25, 2017, 12:20:42 pm
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:
(http://i.imgur.com/QlazqHH.png)
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.

Title: Re: Let's update Kung Fu Man
Post by: Vans on February 25, 2017, 12:30:43 pm
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.
Title: Re: Let's update Kung Fu Man
Post by: DW on February 25, 2017, 10:04:20 pm
I wrote a small tutorial in Chizuru on how to add the compatibility, maybe I should make a post in the forum?

Please do.
Title: Re: Let's update Kung Fu Man
Post by: Lucas Fernandes (lows90) on March 01, 2017, 02:51:46 pm
will you release everything as a full character?
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on March 01, 2017, 03:01:59 pm
Yes I'll release this as a full character and replace the KFM in the MUGEN programs we host including the starter pack. I'll also add the character Training to default MUGEN and supply links to resources like fighter factory and useful areas of mfg. The only thing I'm unsure of is what to do with the hires KFM. I'll probably have to update him too but I worry how much I'll need to tweak for him. And I worry that I'll miss something that I tweaked in this one. The year downtime won't help me remember it all well :p
Title: Re: Let's update Kung Fu Man
Post by: Lucas Fernandes (lows90) on March 01, 2017, 03:23:03 pm
Yes! i'll get home and try to help you by doing some edits for compatibility, i love doing this.
Title: Re: Let's update Kung Fu Man
Post by: IkuTronHD on March 05, 2017, 09:12:45 am
One question: Are these characters updated every time a code comes out?
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on March 05, 2017, 12:08:43 pm
I don't fully understand the question.
Title: Re: Let's update Kung Fu Man
Post by: IkuTronHD on March 05, 2017, 01:00:15 pm
I don't fully understand the question.

What I'm saying is that if you update it little by little the character.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on March 05, 2017, 01:03:55 pm
Oh, yes when I release it I'll update as needed.
Title: Re: Let's update Kung Fu Man
Post by: IkuTronHD on March 05, 2017, 01:20:05 pm
Oh, yes when I release it I'll update as needed.

Ah, thanks for answering jiji.
Title: Re: Let's update Kung Fu Man
Post by: LightScarecrow on March 08, 2017, 07:06:13 am
Woah, just found this under Projects. Seems awesome updating KFM. I don't have anything substantial to add but the project is amazing. JNP, you're doing a incredible work.
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on August 03, 2017, 09:24:19 pm
[State 52, Assert: NoWalk]
type = AssertSpecial
trigger1 = Anim != 5
flag = NoWalk
ignoreHitPause = 1

[State 52, ChangeAnim to Turning]
type = ChangeAnim
trigger1 = ctrl && P2Dist x < 0
trigger1 = Anim != 5
value = 5

[State 52, Turn]
type = Turn
trigger1 = Anim = 5 && AnimElem = 1

Added this to jump landing state to fix an issue with landing
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on August 04, 2017, 04:53:58 pm
The normal KFM has a problem with Smash Kung Fu Upper that must be considered.

Give him 100 life (10x less) and 1000 defence (10x more)

Hit him with Smash Kung Fu Upper.

The Smash Kung will deal 86% damage due to the line fall.damage = 70 in the code.

You guys don't want this in your fixed version.



This is the most blatant bug I can remember in his codes at the moment, but I'll make sure to keep you guys aware of more issues I can find.

@Zzyzzyxx: So I was going through this thread trying to make a changelog (would have been much better had I done this as I was updating) and saw this. I looked and had never dealt with this issue. Either I forgot or I had no idea how to fix it (probably that one since I jumped on this project too soon when I was learning)

Anyway, my solution was to give the move an ID if it connects and add this to the -2
Code:
;===============continued from Smash Kung Fu Upper connecting================
;This creates an explod when P2 hits the ground if they have ID 3051
[State -2, Explod]
type = Explod
trigger1 = NumExplod(3051)<2   ;This limits the number of times the explod is created. It will only create the explod if less than 2 are alive
trigger1 = NumTarget(3051)     ;This tells it which ID the opponent should have
trigger1 = target,Pos Y >= 0
trigger1 = target,Vel Y > 0
anim = 1
ID = 3051
removetime = -1                   ;this means the explod will stay forever
ignorehitpause = 1

;this removes the above explods
[State -2, RemoveExplod]
type = RemoveExplod
trigger1 = P2MoveType != H      ;remove the explod if the opponent is no longer in a hitstate
id = 3051
ignorehitpause = 1

;This removes life from the opponent when the land after being hit by Smash Kung Fu Upper
;you will use this method instead of fall.damage because this method will scale in accordance with the opponent's defence properly
[State -2, TargetLifeAdd]
type = TargetLifeAdd
trigger1 = NumExplod(3051)=1  ;This uses the explod as the limiter. If there is 1 explod it is true
trigger1 = NumTarget(3051)
trigger1 = target,Pos Y >= 0
trigger1 = target,Vel Y > 0
value = -70                      ;this is how much life you remove from the opponent
ID = -1
kill = 1                        ;This means it can kill the opponent

I couldn't think of a way to make the lifeadd trigger only occur once while in -2. It would trigger constantly as the opponent hit the ground and bounced. So I used an explod as a limiter instead of needing to make a custom state.
Title: Re: Let's update Kung Fu Man
Post by: altoiddealer on August 04, 2017, 06:12:11 pm
I'm not fully following the issue, but P2's current life could also be stored as a Var to be used as the trigger.
Explod technique wouldn't work for that, though, because you wouldn't be able to remove the explod (Unless you don't mind Explods persisting heh)

Kung Fu Upper
Type = VarSet
trigger1 = numtarget(3051)
var(10) = target(3051),Life

State -2
Type = TargetLifeAdd
trigger1 = NumTarget(3051)
trigger1 = target(3051),Pos Y >= 0
trigger1 = target(3015),Vel Y > 0
trigger1 = var(10) = target(3051),Life
value = -70
ID = -1
kill = 1
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on August 04, 2017, 06:25:12 pm
I did remove the explod though. It's in the code. Removeexplod triggers when p2 is no longer in a hit state. I prefer to save variables for other things and use explods in simple scenarios like this.

EDIT: Unless you're asking what the issue is with fall.damage in which case if the opponent sets his defense to 1000 for example and sets their life to 100 the fall.damage does not scale the damage at all. It still takes off 70 life points. TargetLifeAdd does still scale in accordance to the opponent's defence
Title: Re: Let's update Kung Fu Man
Post by: altoiddealer on August 04, 2017, 07:25:36 pm
I did remove the explod though. It's in the code. Removeexplod triggers when p2 is no longer in a hit state. I prefer to save variables for other things and use explods in simple scenarios like this.

EDIT: Unless you're asking what the issue is with fall.damage in which case if the opponent sets his defense to 1000 for example and sets their life to 100 the fall.damage does not scale the damage at all. It still takes off 70 life points. TargetLifeAdd does still scale in accordance to the opponent's defence
Sorry I'm really just wasting time with my comment heh

I was just proposing another way to do the same thing.  And about the Explod comment, what I meant was with my suggestion :)

Logging P2's life value at the time of impact, to check later, would not work with an Explod... well, I guess it could if it were like

type = RemoveExplod
trigger1 = numtarget(3051)
trigger1 = P2MoveType != H
id = target(3051),Life + 70 ;the sticky part with what I was suggesting
ignorehitpause = 1
Title: Re: Let's update Kung Fu Man
Post by: JustNoPoint on August 04, 2017, 07:35:29 pm
Ah yeah that's a good alternative. Like I said I just prefer explods for these things. We have a limited amount of vars so I'd rather teach an alternate method to store data. I feel it's better to be stingy with vars because you never know when you might need more later.