Anonymous

Changes

From Final Fantasy Inside

FF7/Battle/Damage Calculation

2,629 bytes removed, 00:15, 1 April 2010
no edit summary
In Attacks, Items, and Weapons there exists a single byte that tells the Battle Engine how to calculate damage. This is a list of known values with their effects based on Base Damage. They are classified into Physical, Magical, an attack's set Power and Exactthe characters stats. Physical and Magical will rely on the caster's Strength "Attack" and "Magic Attack" stat respectively to calculate base damage. This byte is divided into two nybbles (four bits). Upper Nybble determines what considerations are made in calculating damage such as physical/magical, allowing criticals, how to calculate accuracy, etc. There are also three sets of known formulae that are paired with the Upper nybble values. These are selected in the Lower Nybble and determine how to calculate pre-defense damage. After modification it is multiplied by a random variance ([224..255]/256 or something similar)and reduced by a certain amount based on a target's "Defense" or "Magic Defense" stats, depending on the type of damage. These will also trigger Physical and Magical Counter Attacks respectively. Exact is just what it sounds like. They do not have a base damage calculation. The entire damage comes from exactly the formula shown and is applied to the target without defense calculation (though element is still taken into account). These will not trigger Physical or Magical Counter Attacks, but will trigger General Counter Attacks such as Adamantoise's Light Shell.
For more details, these can be considered Base Damage Modifiers as described in Terence Fergusson's [http://www.gamefaqs.com/console/psx/file/197341/22395 Battle Mechanics FAQ].<br/>
''Akari has begun a more detailed [[FF7/DamageFormula|damage formula page]].''
{| border="01" cellpadding="53" cellspacing="1" stylealign="background: rgb(0,0,0)center" align style="centerborder: 1px solid black; border-collapse: collapse;"! style="background:rgb(204,204,204); width=50px;" align="center" | Upper Value! style="background:rgb(204,204,204)" | TypeConsiderations! style="background:rgb(204,204,204)" | Lower Value
! style="background:rgb(204,204,204)" | Formula [Damage = ]
|-
|style="background:rgb(255,255,255)" align="center" | 0x000X|style="background:rgb(255Physical,255100% hit rate,255)" | Noneno Critial|stylealign="background:rgb(255,255,255)center" | X0| No Damage Calculationcalculation
|-
|stylealign="background:rgb(255center" | 1X| Physical,255Use Accuracy,255)" Allow Critical| align="center" | 0x08X1|style="background:rgb(255,255,255Power / 16)" | Exact |style="background:rgb* (Stat + [(255,255,255Level + Stat)" | Target's HP & MP / 32] * [(Strength Level * Stat) / 32])%
|-
|style="background:rgb(255,255,255)" align="center" | 0x112X|styleMagical, Use Accuracy| align="background:rgb(255,255,255)center" | PhysicalX2|style="background:rgb(255,255,255Power / 16)" | Base * (Strength / 16(Lvl + Stat) * 6)
|-
|style="background:rgb(255,255,255)" align="center" | 0x223X|style="background:rgb(255Physical,255100% hit rate,255)" | Magicalignore Barrier|stylealign="background:rgb(255,255,255)center" | Base X3| HP * (Strength Power / 1632)
|-
|style="background:rgb(255,255,255)" align="center" | 0x234X|style="background:rgb(255Physical,255100% hit rate,255)" | Exactignore Barrier|stylealign="background:rgb(255,255,255)center" | Target's HP X4| MHP * (Strength Power / 32)
|-
|style="background:rgb(255,255,255)" align="center" | 0x245X|style="background:rgb(255Physical,255100% hit rate,255)" | Exactignore Barrier|stylealign="background:rgb(255,255,255)center" | Target's MHP X5| (Power * 22) + ((Strength / 32Level + Stat) * 6)
|-
|style="background:rgb(255,255,255)" align="center" | 0x259X|style="background:rgb(255Physical,255use Manipulate Accuracy,255)" | Magical Allow Critial|stylealign="background:rgb(255,255,255)center" | Base + X6| (Strength Power * 2220)
|-
|style="background:rgb(255,255,255)" align="center" | 0x26BX|style="background:rgb(255Physical,255use Accuracy,255)" | Exactno Critial|stylealign="background:rgb(255,255,255)center" | Strength X7| (Power * 2016)
|-
|style="background:rgb(255204,255204,255)" align="center" | 0x37|stylecolspan="2" rowspan="background:rgb(255,255,255)3" | Physical&nbsp;|stylealign="background:rgb(255,255,255)center" | Strength * 16; Ignores Barrier; No BaseX8| Recovery
|-
|style="background:rgb(255,255,255)" align="center" | 0x47X9|style="background:rgb(255,255,255)" | Magical|style="background:rgb(255,255,255)" | Strength * 16; Ignores MBarrier; No BaseThrow
|-
|style="background:rgb(255,255,255)" align="center" | 0x50XA|style="background:rgb(255,255,255)" | None|style="background:rgb(255,255,255)" | No Damage, but can modify status effectsCoin
|-
|stylecolspan="background:rgb(255,255,255)" align="center" | 0x60|style="background:rgb(255,255,255)" | Exact|style="background:rgb(255,255,255)4" | User's HP&nbsp;
|-
|style="background:rgb(255,255,255)" align="center" | 0x616X|style="background:rgb(255Physical, Use Accuracy, Allow Critical,255Skip Defense,255)" | ExactSpecial Formulae|stylealign="background:rgb(255,255,255)center" | X0| 100% User's MHP - HP
|-
|style="background:rgb(255,255,255)" align="center" | 0x687X|style="background:rgb(255Magical, Use Accuracy,255Skip Defense,255)" | ExactSpecial Formulae|stylealign="background:rgb(255,255,255)center" | Random x 100 (Dice)X1| User's MHP - HP
|-
|style="background:rgb(255,255,255)" align="center" | 0x699X|style="background:rgb(255Physical, use Manipulate Accuracy,255Skip Defense,255)" | ExactAllow Critial|stylealign="background:rgb(255,255,255)center" | Number of EscapesX6| User's HP/2
|-
|style="background:rgb(255204,255204,255)" align="center" | 0x6A|stylecolspan="2" rowspan="background:rgb(255,255,255)6" | Exact&nbsp;|stylealign="background:rgb(255,255,255)center" | Reduces Target's HP to 1X8| Random x 100
|-
|style="background:rgb(255,255,255)" align="center" | 0x6B|style="background:rgb(255,255,255)" | ExactX9|style="background:rgb(255,255,255)" | Number of hours on game clock * 100 + number of minutes in game clockEscapes
|-
|style="background:rgb(255,255,255)" align="center" | 0x6CXA|style="background:rgb(255,255,255)" | Exact|style="background:rgb(255,255,255)" | 10 x Target's KillsHP - 1
|-
|style="background:rgb(255,255,255)" align="center" | 0x6DXB|style="background:rgb(255,255,255)" | Exact|style="background:rgb(255,255,255)" | 1111 x Target's MateriaNumber of hours on game clock * 100 + number of minutes in game clock
|-
|style="background:rgb(255,255,255)" align="center" | 0x83|style="background:rgb(255,255,255)" | Exact XC|style="background:rgb(255,255,255)" | 10 x Target's HP * (Strength / 32) if level MOD Attack% = 0Kills
|-
|style="background:rgb(255,255,255)" align="center" | 0x96XD|style="background:rgb(255,255,255)" | Exact|style="background:rgb(255,255,255)" | User1111 x Target's HP/2Materia
|-
|stylecolspan="background:rgb(255,255,255)" align="center" | 0xA0|style="background:rgb(255,255,255)" | Physical|style="background:rgb(255,255,255)4" | Base * (Strength / 16) * [User's Status Effects <sup>See NOTE</sup>]&nbsp;
|-
|style="background:rgb(255,255,255)" align="center" | 0xA1AX|style="background:rgb(255,255Same as 11h,255)" | Physicalbut allow multipliers|stylealign="background:rgb(255,255,255)center" | Base X0| Damage * (Strength [User's Status Effects <sup>See NOTE</ 16) * (3 if user is Near-Death, 1 otherwise)sup>]
|-
|style="background:rgb(255204,255204,255)" align="center" | 0xA2|stylecolspan="2" rowspan="background:rgb(255,255,255)8" | Physical&nbsp;|stylealign="background:rgb(255,255,255)center" | Base * (Strength / 16) X1| Damage * (3 if user is Near-Death, 1 + Dead Alliesotherwise)
|-
|style="background:rgb(255,255,255)" align="center" | 0xA3|style="background:rgb(255,255,255)" | Physical X2|style="background:rgb(255,255,255)" | Base * (Strength / 16) Damage * (Target's Level / 161 + Dead Allies)
|-
|style="background:rgb(255,255,255)" align="center" | 0xA4|style="background:rgb(255,255,255)" | PhysicalX3|style="background:rgb(255,255,255)" | Base Damage * (Strength Target's Level / 16) * (1 + [48 * HP/MHP]) / 16
|-
|style="background:rgb(255,255,255)" align="center" | 0xA5X4|style="background:rgb(255,255,255)" | Physical|style="background:rgb(255,255,255)" | Base * (Strength / 16) Damage * (1 + [48 * MPHP/MMPMHP]) / 16
|-
|style="background:rgb(255,255,255)" align="center" | 0xA6|style="background:rgb(255,255,255)" | PhysicalX5|style="background:rgb(255,255,255)" | Base * (Strength / 16) Damage * (1 + [AP on Weapon 48 * MP/ 10000MMP]) / 16
|-
|style="background:rgb(255,255,255)" align="center" | 0xA7X6|style="background:rgb(255,255,255)" | Physical|style="background:rgb(255,255,255)" | Base * (Strength / 16) Damage * (10 1 + [Character's Kills AP on Weapon / 12810000]) / 16
|-
|style="background:rgb(255,255,255)" align="center" | 0xA8|style="background:rgb(255,255,255)" | PhysicalX7|style="background:rgb(255,255,255)" | Base Damage * (Strength / 16) * (1 10 + [Limit Level * Limit Units Character's Kills / 16128]) / 16
|-
|style="background:rgb(255,255,255)" align="center" | 0xB1X8|style="background:rgbDamage * (255,255,2551 + [Limit Level * Limit Units / 16])" | Physical|style="background:rgb(255,255,255)" | Base * Strength / 16; No random criticals
|}
 
<br/>
NOTE: For A0h base strengthX0 damage multiplier, the multiplier is increased by one for the following effects on the user:
*Near-death
*Poison
*D.Sentence
*Slow-numb
<br/>As Any damage formula on an exception to the above rulesattack can still set status, 37h and 47h are used as but standard damage calculations for itemsformula X0 will not apply any visual changes due to effects. Damage <br/><br/>Ex.Midgar Zolom's "Change" attack is damage type 00h, but gets set to target poison him when he uses it. He will not glow green until he is targeted by another command that is calculated normally while ignoring M/Barriernot damage type 00h.
Anonymous user