YesNoOk
avatar

The greatest hits of character feedback (Read 432252 times)

Started by PotS, May 22, 2009, 11:49:10 pm
Share this topic:
Re: Localcoord is garbage― and several other basics you need to know.
#81  February 14, 2014, 01:57:30 am
  • ******
  • Loyal to the Game
    • USA
    • http://jesuszilla.trinitymugen.net/
You really don't have to worry about that unless your code is shitty.


Also, be sure your projectiles have MoveReversed as one of their destroy/hit decrement triggers.
Re: Localcoord is garbage― and several other basics you need to know.
#82  February 14, 2014, 02:32:48 am
  • ******
  • If you’re gonna reach for a star...
  • reach for the lowest one you can.
    • USA
    • network.mugenguild.com/jmorphman
To follow up my last post: more non-specific rambling of a philosophic nature

Don't be afraid to ask for help. Don't be afraid to try new things. And seriously, test that one more time, just to be sure.

Also, be sure your projectiles have MoveReversed as one of their destroy/hit decrement triggers.
Hmm, shouldn't a multi-hit projectile be destroyed if it's MoveReversed?
Re: Localcoord is garbage― and several other basics you need to know.
#83  February 17, 2014, 04:27:08 am
  • ******
  • Loyal to the Game
    • USA
    • http://jesuszilla.trinitymugen.net/
That really depends on how you want the projectile to behave.



Also, if you have a projectile that shouldn't be reflected (I personally don't think sand should be reflected, for instance), you can use the following trick:
Code:
hitdef = , SA ; or NA for normals, HA for hypers
Re: Localcoord is garbage― and several other basics you need to know.
#84  February 17, 2014, 05:16:24 am
  • ******
  • If you’re gonna reach for a star...
  • reach for the lowest one you can.
    • USA
    • network.mugenguild.com/jmorphman
Actually scratch what I said, I think for multihit projectiles, it would be best if they lost a hit and don't die outright (because in CvS2, in Eagle's Canterbury Blue, multi-hit projectiles are absorbed one hit at a time)
Re: Localcoord is garbage― and several other basics you need to know.
#85  February 21, 2014, 10:36:58 am
  • ******
  • Legendary XIII
  • I am the eye of the storm to come!
    • New Zealand
    • network.mugenguild.com/cyanide/
I would leave it at 60, cos that doesnt' really matter
Yes, it does. You are way more open to OTG's and pursuit attacks if you leave it at the default liedown.time.


Speaking of which, you should override State 5120 anyway to get rid of the nothitbys (ESPECIALLY if you make a VSav character, because you should be hittable in that state by pursuit attacks).
I'm not talking about state 5120. I am talking about state 5100. If it is less than 10 ticks till the end of your liedown time you are INSTANTLY and irrevocably invulnerable until the state ends. This is hardcoded. You can't do shit about it short of recreating the state using a different number therefore needing to override everything else that sends you there. OR leaving the liedown time at 60 (or whatever) and simply using a hardcoded changestate out based on the correct liedown time.

Unless you want your character to be invulnerable for his whole liedown state that is, in which case don't do anything and make it 10 or less.

Quote
; Downed get-hit (hit ground from fall) (5100):
;   defense increases at time = 0, player becomes invincible if within 10
;   ticks of getting up


In M.U.G.E.N there is no magic button

They say a little knowledge is a dangerous thing, but it's not one half so bad as a lot of ignorance.
Last Edit: February 21, 2014, 10:41:06 am by Cyanide
Common char mistakes and how to solve them
#86  September 05, 2014, 04:30:42 pm
  • ******
Just an idea that popped up. Not sure if thread like this exists (even if it does, probably best to start a new one since the older would be years old or something).

Just want to discuss common mistakes that people make when converting characters to mugen and more importantly, how to avoid such oversights. It would fit better in Mugen Development but it may wind up limiting the thread activity to creators (since nobody ever goes there).

One that is (certainly for me) is liedown time. A very easily fixable problem that can be solved by changing that line (that says liedown.time) in the beginning of the cns to 9 instead of leaving it at 60 or whatever (assuming you don't use your own code for wakeup and whatnot).

Any others?
You don't have to know how to correct anything to make a mention. Just recognizing a flaw is enough to contribute to this thread.
Last Edit: September 05, 2014, 07:06:42 pm by Niitris
Re: Common char mistakes and how to solve them
#87  September 05, 2014, 05:21:59 pm
  • ****
  • Target Acquired.
    • Ukraine
    • mugencoder.com
This is a good idea. An update to the issues we all face as mugen coders. I'll contribute something:

Punishing:
While I was an offender of this as well, it's a very simple fix in the HitDef:
Code:
guard.pausetime = x,y ; having y < x. This allows P2 to recover from the pause quicker than P1 from pause.
guard.hittime = something lower than ground.hittime. ; This is again to allow P1 to recover quicker, but far more crucial than pause time.
guard.slidetime = something lower than ground.slidetime. ; Not essential, but still a factor of a hit. If P2 slides too far back, they won't be able to punish P1, depending on
the character of course.

-[Все слова это только слова.]-
Re: Common char mistakes and how to solve them
#88  September 05, 2014, 07:04:32 pm
  • ******
Another is what's commonly state 5040

In the common code, when a character enters State 5040, they regain control. This is wrong and is not supposed to happen (excluding certain games). Definitely does not happen in Street Fighter and the likes.

Code:
; Air get-hit (recovering in air, not falling)
[Statedef 5040]
type    = A
movetype= H
physics = N

[State 5040, 3]   ;Remove this state
type = CtrlSet
trigger1 = HitOver
value = 1

Re: Common char mistakes and how to solve them
#89  September 05, 2014, 07:28:50 pm
  • *****
    • Peru
Theres not a unique solution to that so I think it's better to say "Be cautious of this state" rather than "Delete that SCTRL" because what you do it's up to the game you are trying to simulate.

Take 3rd Strike as an example, where characters "reset" after some juggle hits and they don't have control to attack, but they can perform defensive actions:

After hitting you with Back+HP, Necro can reset you using some attacks, for example LP. After that, the opponent can't attack, but if Necro Performs a Magnetic Storm, they will be hit unless they parry.
Re: Common char mistakes and how to solve them
#90  September 05, 2014, 07:56:28 pm
  • *****
  • Thanks and God bless
    • USA
    • ricepigeon.neocities.org
Charge motions that look like this:

Code:
[Command]
name = "ChargeBF_X"
command = ~30$B,$F,x

Why this is wrong: On the surface, this may seem to be fine. If you've played with a charge character before, then you'll know that holding DB or UB will also count toward the B charge (same applies to DB and DF for D charges). However, if you try to shift for directional input from holding D to DB or UB, you will still retain the charge. Mugen, however, considers this as a new input and you will lose the charge if this were to occur.

Solution: Rather than using Mugen's native command buffer, you'll have to build your own. First, alter the above command to the following:

Code:
[Command]
name = "ChargeBF_X"
command = ~$B,$F,x

You'll want to build your charge input buffer using two variables: one for determining how long the direction was held, and the other that tells Mugen how long the charge should be held in the command buffer. The first part is easy. First, make sure the following is in your CMD file:

Code:
[Command]
name = "holdback";Required (do not remove)
command = /$B
time = 1

Next, in your State -2, add the following.

Code:
[State -2, Back Charge Increment]
type = VarAdd
trigger1 = command = "holdback"
var(0) = 1
ignorehitpause = 1

[State -2, Back Charge Reset]
type = VarSet
trigger1 = command != "holdback"
var(0) = 0

This will increment the variable's value for each tick that you are holding the direction to be charged, and resets it back to 0 when the direction is no longer held. For the second part:

Code:
[State -2, Back Charge Buffer Activation]
type = VarSet
trigger1 = var(0) >= 50 ;Change this value to the minimum time you want the direction to be held for.
var(1) = 35

[State -2, Back Charge Buffer Decrement]
type = VarAdd
trigger1 = var(0) < 50 && var(1) > 0 ;Change the value of 50 to whatever you set the value above to.
var(1) = -1

What this does is it tells Mugen to register the back command in the input buffer once it has been held for at least 50 ticks (roughly 5/6 of a second). Once the direction is released, you will then have 35 ticks (a little more than half a second) to complete the charge motion. Finally, in your CMD file, locate the changestate for the special requiring the charge motion and add the lines noted below:

Code:
[State -1, Sonic Boom]
type = ChangeState
value = 1100
triggerall = (statetype != A)
triggerall = var(1)>16 ;ADD THIS LINE
triggerall = ctrl
trigger1 = command = "ChargeBF_X"

The above will limit the window to complete the charge motion to 19 (35-16) ticks, all you simply have to do is complete the motion. The 16 can be changed to a smaller value if you need more time to complete the motion, such as with a B,F,B,F motion. For vertical charge motions (D,U), simply repeat the above steps using two different variables and making necessary alterations to account for holding down rather than back. For motions that require a DB charge (such as Vega/Claw's Scarlet Terror and Flying Barcelona Special), simply use the variables for both horizontal and vertical charges.

(parts of code based on code used by P.o.t.S. and Jmorphman)
Last Edit: September 05, 2014, 09:20:01 pm by Ricepigeon
Re: Common char mistakes and how to solve them
#91  September 05, 2014, 08:18:37 pm
  • ******
  • Hedgehog Whisperer
  • Red Bull addict
    • Spain
    • xgargoyle.mgbr.net
Custom states:
- Do not forget to place Clsn2 boxes on them, even if you don't need specifically for that move
- Always add a selfstate controller with some kind of "safe escape" such as time>=X or !animtime even if you have a previous changestate within it that changes it to another custom state. If anything goes wrong during a fight, with the safe escape enabled, the character will regain control instead of being stuck in a custom state and forcing you to F1 or F4 the round.

Helpers:
- Always add a destroyself to every helper state, in the same way as the safe escape from the above example. It will remove the helper in the case that something fails or breaks, instead of hogging your memory.

XGargoyle: Battle posing since 1979
http://xgargoyle.mgbr.net
http://www.pandorabots.com/pandora/talk?botid=e71c0d43fe35093a  <-- Please click that link
http://paypal.me/XGargoyle  <-- Donations welcome!
Re: Common char mistakes and how to solve them
#92  September 05, 2014, 09:02:09 pm
  • ******
  • Portrait Prodigy EX+
    • mugenguild.com/forum/topics/saikoros-high-resolution-mugen-portraits-fatal-fury-full-set-145724.0.html
I think this topic should be stickied. Being one who is starting to dabble in coding ideals, this is a great thread. ;D
All of your Mugen Portrait needs may be found HERE.

I'd like to report two robots on the MFG forums: One is EXShadow. The other is Saikoro.
There should be a Saikoro plugin for Photoshop.
Re: Common char mistakes and how to solve them
#93  September 05, 2014, 09:03:03 pm
  • ******
Theres not a unique solution to that so I think it's better to say "Be cautious of this state" rather than "Delete that SCTRL" because what you do it's up to the game you are trying to simulate.

Take 3rd Strike as an example, where characters "reset" after some juggle hits and they don't have control to attack, but they can perform defensive actions:

After hitting you with Back+HP, Necro can reset you using some attacks, for example LP. After that, the opponent can't attack, but if Necro Performs a Magnetic Storm, they will be hit unless they parry.

You can parry when that happens? I suppose it's the same for one of Akuma's SA1 setups.

I can see why the state wouldn't be removed but ctrl would still have to be set to 0, no (otherwise p2 would still be free to attack and whatnot). Then a hitoverride would be used instead to activate the parry state.
Re: Common char mistakes and how to solve them
#94  September 05, 2014, 09:10:10 pm
  • ****
  • play more SNK games
  • I FUCKING LOVE PLATINUM!
    • South Africa
    • www.trinitymugen.net/
Using a hitoverride for a parry sounds a little sketchy. Why not simply make the attacks not trigger in state 5040 in the state -1
Re: Common char mistakes and how to solve them
#95  September 05, 2014, 09:15:18 pm
  • ******
Not that familiar with parry tbh. The one time I messed around with the concept involved hitoverrides along with variables and whatnot (although yeah it was in statedef -1 of course).
Re: Common char mistakes and how to solve them
#96  September 05, 2014, 09:19:54 pm
  • ****
  • Target Acquired.
    • Ukraine
    • mugencoder.com
Adding to XGargoyle's input about getting stuck in custom states:

There's also one other thing people should be aware of and use: !gethitvar(isbound). This should be used as a trigger for the SelfState if your binding the player. It's situational of course, but any actual throw or grab move will basically the mandate the use of this.

-[Все слова это только слова.]-
Re: Common char mistakes and how to solve them
#97  September 05, 2014, 09:29:23 pm
  • *****
  • Thanks and God bless
    • USA
    • ricepigeon.neocities.org
Posting this one because, while it should be common sense not to, a ton of new authors still do it for some reason:

Supers that give back power.


Why this is wrong: Unless someone else knows otherwise, no fighting game does this. Period.

Solution: The most common source of this problem is that many new authors neglect to add the getpower parameter in their character's hitdefs, causing Mugen to use the default behavior of adding power equivalent to a fraction of the damage dealt, the exact amount being defined in the mugen.cfg file in Mugen's data folder. The solution is simple:

Code:
getpower = 0,0

By adding this to the hitdef, it will overwite Mugen's default behavior and cause the player to gain 0 power on hit and 0 power on block.
Re: Common char mistakes and how to solve them
#98  September 05, 2014, 09:29:55 pm
  • *****
    • Peru
Why this is wrong: Unless someone else knows otherwise, no fighting game does this. Period.
You are wrong! USF4 does this! :P (jk, its a glitch on some characters)

Quote
Not that familiar with parry tbh
I think we are derailing from the main topic here, which is how to handle control in that situation.

In my case when I wanted to program HitDefs that "Reset" the enemy I made a Custom HitState only triggered when the oponent was in the air in order to avoid modifying Custom.cns.

Using a hitoverride for a parry sounds a little sketchy. Why not simply make the attacks not trigger in state 5040 in the state -1
I'm curious. How do you that now in 1.0 and 1.1? HitOverrides were what cool kids used in my days.
Re: Common char mistakes and how to solve them
#99  September 05, 2014, 09:37:46 pm
  • ****
  • play more SNK games
  • I FUCKING LOVE PLATINUM!
    • South Africa
    • www.trinitymugen.net/
You can use a reversaldef :/ although things might get funky
Re: Common char mistakes and how to solve them
#100  September 05, 2014, 11:51:06 pm
  • ******
  • Loyal to the Game
    • USA
    • http://jesuszilla.trinitymugen.net/
Last Edit: January 16, 2015, 07:07:38 pm by Jesuszilla