Mugen DEV Forum

  Reply to this topicStart new topicStart Poll

> SFA3 accurate AttackMulSets (not combo dampening)
Posted: May 11 2003, 11:35 AM
Report PostQuote Post

Junior Member

Group: Admin
Posts: 176
Member No.: 30
Joined: 14-September 02

As long as I'm unable to run MUGEN, I could as well share an useful little thing I discovered in SFA3. I think it hasn't been known or mentioned anywhere else yet.

I guess this is only interesting for you if you're working with that wonderful Artmoney program (or something similar) mentioned here and are trying to get the damages right.

I'll use Akuma as an example.

Hiting another Akuma with a standing Jab causes 5 points of damage, as displayed in Artmoney.

In order to convert this to a damage value in MUGEN, we'd use:

MUGEN damage = MUGEN life x SFA3 damage / SFA3 life

MUGEN life = 999; SFA3 damage = 5; SFA3 life = 145 (144 lifebar points, but you're not dead yet with zero points, one more to go. wink.gif )

MUGEN damage = 999 x 5 / 145 = 35 (rounded up)

Now, if you think a Jab causing 35 points of damage sounds too much, you aren't mistaken.

Comparing the, uh, numbers of Jab hits you need to kill Akuma in SFA3 and in MUGEN, you'll find that you'll kill much faster in MUGEN than in SFA3 (I forgot the exact numbers, it's been a while).

But we've got the exact damage caused by a Jab, haven't we? Yes.

I'll spare you the details how I came to this conclusion in the end, but I eventually figured it out. SFA3 chars cause fewer damage when the opponent has lower life, and even less damage when the opponent is near dead. Code-wise, it looks like this:

You'll need an integer and a float variable.

;   Opponent Life Check; used to keep track of the opponent's exact life, including a possible higher defense value

[State -2: Opponent Life Check]
Type = VarSet
Trigger1 = 1
var(0) = P2Life * EnemyNear, Const(Data.Defence) / 100
IgnoreHitPause = 1
;   Capcom's Insane Damage Reducing Methods

[State -2: Opponent Normal Life]; If so, 100% attack strenght
Type = VarSet
Trigger1 = Var(0) > EnemyNear, Const(Data.Life) / 3
fvar(0) = 1
IgnoreHitPause = 1

[State -2: Opponent Less Life]; if so, 80% attack strength
Type = VarSet
Trigger1 = Var(0) = (EnemyNear, Const(Data.Life) * .08, EnemyNear, Const(Data.Life) / 3]
fvar(0) = .8
IgnoreHitPause = 1

[State -2: Opponent Very Low Life]; if so, 60% attack strength
Type = VarSet
Trigger1 = Var(0) <= EnemyNear, Const(Data.Life) * .08
fvar(0) = .6
IgnoreHitPause = 1

[State -2: Set Attack Strength]; using the float variable set above
Type = AttackMulSet
Trigger1 = 1
Value = FVar(0)
IgnoreHitPause = 1

Now, everybody knows that SFA3 also uses some kind of combo dampening, where you're attacks do less damage when you're, well, comboing.

In case you're already using such a code, I guess it should be "melted" with the one above.

In the Akuma example, Jabs now kill with an identical number of hits in MUGEN and SFA3. I'm pretty sure this code is accurate, since I also compared strong and fierce hit numbers and they matched perfectly. And I think all SFA3 characters are using this same thing, since it would be quite an effort to give every char a different such thing.

In cause you're using this with another char, tell me whether the numbers of hits to kill are working out. smile.gif

If you must label the absolute, use its proper name: Temporary.

- The Stolen Journals
Mini ProfilePMICQ

Topic Options Reply to this topicStart new topicStart Poll


- M.U.G.E.N Development Forum - Contact an admin - ELECBYTE - Shin Mugen -