Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Deathlike2

3121
Would a code tag help with that organization at all?

Laziness ftw?  :tongue:

3122
Final Fantasy IV Research & Development / Hit Rate
« on: February 23, 2008, 01:48:37 AM »
Even after you do the attack multiplier and attack base.. the hit rate modifer affects your damage output. You simply multiply the hit rate modifier after calculating the base damage from the attack multiplier and attack base. The hit rate modifier has a range, which is factored in after the hit rate bonus (which is based on level/4) to your weapon. There is a range, but it's close to like -16 to 16 (this is not definate just yet).

3123
Final Fantasy IV Research & Development / The Back Row
« on: February 23, 2008, 12:55:15 AM »
The back row provides two things defensively.

Defense is increased by 2x.
Evade is increased by 2x.

The effects of the back row incompatibility on attack power will be done shortly.

3124
Non-Damage Magic Algo (for most, if not all other spells, generally applicable to status changing magic)

Target Count:
Single = 1
All Targets = number of targets

Level based spell reference: http://slickproductions.org/forum/index.php?topic=358.0
Spells (ones that apply status effects) affected by spell multiplier manipulation: http://slickproductions.org/forum/index.php?topic=370.0

SNES version:

Success =

Code: [Select]
while (Target Count > 0)
{
  reset Spell Type Multiplier();
  Succesful Hit = false;
  while (Spell Type Multiplier > 0)
  {
   if ((rand(0, 99) <= Spell Hit Rate) || ((Level Check == true) && (rand(0, Target's Level) <= rand(0, Caster's Level)))
   {
     Successful Hit = true;
     break;
   }
   Spell Type Multiplier--;
  }
  if(Successful Hit == false)
  {
   return false;
  }
  Target Count--;
}
return true;

If Success = true, then apply status afflication to target(s) unless immune/resistant to status.

GBA Version:

Code: [Select]
while (Target Count > 0)
{
  if((attack type == status effect)&&(!target.isresistant(status effect))
  {
   reset Spell Type Multiplier();
   while (Spell Type Multiplier > 0)
   {
    if ((rand(0, 99) <= Spell Hit Rate) || ((Level Check == true) && (rand(0, Target's Level) <= rand(0, Caster's Level)))
    {
     apply status effect(); // if immune/resistant, silently fail? probably won't matter
     break; // success
    }
    Spell Type Multiplier--;
   }
  }
  Target Count--;
}

3125
Pandora's Box / Re: I'm really anxious to show off some new material...
« on: February 22, 2008, 05:03:50 AM »
It needs some dialog on which dog hits who... and it needs to be shorter overall (the battle).

Edit: My attention span is as short as the CT race at the fair.

3126
Most of that looks spot-on.  I have but one question: From where are you getting the rand(100, 150)/100 part?  It's in the logical place in the formula, and it seems reasonable.  But does the 1-1.5 number come from somewhere in the code, or from testing, or what exactly?

It's the randomness factor. It is the same factor when you deal physical damage.

Test Cure1 while at 99 Spirit/Will in battle. The range of the healing is 400-600. You will then see why it is randomized.

I'm still tweaking the formula, so stay tuned.

3127
Final Fantasy IV Research & Development / The Holy Grail - Magic Algorithm
« on: February 22, 2008, 03:56:38 AM »
For those that care, I believe I've figured out the basic magic damage algorithm. Remember to truncate where applicable.

For reference:

Split Damage Modifier:
Spell Targets Only All Enemies or All Allies = 1
Every Other Spell = 1/number of targets
List of spells that ignore split damage can be found here: http://slickproductions.org/forum/index.php?topic=359.0

Undead Modifier:
Drain Elemental (Osmose/Psych and Drain) vs Undead = -1
Unapplicable = 1

Note: Sylph works against Undead w/o this penalty for its "special" Drain attack.

Absorb Modifier:
Target Absorbs vs Element = -1
Unapplicable = 1

Note: If the target reacts to any of the elemental attacks, continue using the multiplier during an uninterrupted attack such as one given by Zeromus EG from FF4A. Stop using the multiplier when the uninterrupted attack ends. Elemental multipliers do not stack.

Appendix: Refer to this for how the game deals with elemental magic attacks - http://slickproductions.org/forum/index.php?topic=426.0

Healing Modifier:
Target is Ally = -1
Target is Undead = 1
Unapplicable = 1

Magic Defense:

Base Magic Defense (character) = sum of all armor magic defense values
Note: Unequipped sections have a magic defense of 0.
Base Magic Defense (monster) = Whatever is listed by the game

Magic Defense Modifier:
Healing Spell Targeted On Ally = 0
Unapplicable = 1

Note: If Magic Defense > 255 in your equipment, Magic Defense = 255. This is here just so you know.

Magic Defense = Base Magic Defense * Magic Defense Modifier

Magic Evade:

Base Magic Evade (character) =  (Wisdom (Intelligence) + Will (Spirit))/8 + all the armor magic evade values
Base Magic Evade (monster) = 0

Magic Evade Modifier:
Target is Monster and its Magic Defense is 255 sets Base Magic Evade = 99
Target is Blind = 1/2
Unapplicable = 1
Note: The Monster has 99 Magic Evade, regardless of Blind status...

If Base Magic Evade > 99, Base Magic Evade = 99.

Magic Evade = Base Magic Evade * Magic Evade Modifier

Note: When Monster Magic Defense is naturally at 255 (with no help from Shell), they are intentionally "invincible" to magic.

Magic Defense Multiplier:

Base Magic Defense Multiplier (character) = Agility/32 + (Wisdom (Intelligence) + Will (Spirit))/32
Base Magic Defense Multiplier (monster) = irrelevent

Note: Since monster magic evade = 0, it doesn't matter what the magic evade value is, except when monster magic defense = 255.

Magic Defense Multiplier Modifer:
Target is Monster and its Magic Defense is 255 sets Magic Defense Multiplier = 99
Target has Toad status sets Magic Defense Multiplier = 0
Unapplicable = Magic Defense Multiplier = Base Magic Defense
Note: When Monster Magic Defense is naturally at 255 (with no help from Shell), they are intentionally "invincible" to magic.

Spell Hit Rate:

Base Spell Hit Rate = Whatever is stored internally
If Base Spell Hit Rate > 128, Base Spell Hit Rate -= 128.
List of spells affected by the 128 point difference can be found here: http://slickproductions.org/forum/index.php?topic=360.0

Spell Hit Rate Modifier:
Weapon Used As Item Magic sets Spell Hit Rate = 100
Caster is Blind = 1/2
**Caster is in Slot 1 (the Middle position) = 5/4
Unapplicable = 1

Note: Spells cast by a weapon used as an item have a 100% hit rate, regardless of blind status or the original spell's hit rate.

Spell Hit Rate = (Base Spell Hit Rate + (Wisdom (Intelligence) or Will (Spirit) or Monster''s Magic Stat)/2) * Spell Hit Rate Modifier

Spell Power:

Base Spell Power (for most spells) = Whatever is listed internally for that spell * 4
Base Spell Power (Summon spells) = Whatever is listed internally for that spell * 8

Elemental Power Multiplier:
Weak vs Element and Weak+ = 4
Weak vs Element = 2
Resist vs Element = 1/2
Immune vs Element = 0
Unapplicable = 1

Note: If the target reacts to any of the elemental attacks, continue using the multiplier during an uninterrupted attack such as one given by Zeromus EG from FF4A. Stop using the multiplier when the uninterrupted attack ends. Elemental multipliers do not stack.

Appendix: Refer to this for how the game deals with elemental magic attacks - http://slickproductions.org/forum/index.php?topic=426.0

Spell Power = Base Spell Power * Elemental Power Multiplier * (rand (100, 150)/100) - Target's Magic Defense
If Spell Power < 0, Spell Power = 0

Or... you could also say:

Spell Power = Base Spell Power * Elemental Power Multiplier * (rand (100, 150)/100)
If Spell Power < Target's Magic Defense, then Spell Power = 0.
Else Spell Power -= Target's Magic Defense.

Note: You only need to randomize once for the algo to work properly.

Spell Power Multiplier:

Spell Power Multiplier (White) = Will (Spirit) /4 + 1
Spell Power Multiplier (Black) = Wisdom (Intelligence) /4 + 1
Spell Power Multiplier (Ninja) = Wisdom (Intelligence) /4 + 1
Spell Power Multiplier (Summon) = Wisdom (Intelligence) /4 + 1
Spell Power Multiplier (Monster) = Whatever their magic stat says /4 + 1
Spell Power Multiplier (Weapon Magic) = Whatever that value is listed
**Spell Power Multiplier (Status Effects) = 1

Note: Blind status does not hurt the weapon magic's spell multiplier.

**Refer to this thread for status effect spells that manipulate this value: http://slickproductions.org/forum/index.php?topic=370.0

Code: [Select]
//Multiplier Madness! - These checks redo the spell power multiplier based on spell hit rate and target's magic evasion.

New Spell Power Multiplier = Caster's Spell Power Multiplier; // initial

while (Caster's Spell Power Multiplier > 0)
{
 if (rand (0, 99) <= Spell's Hit Rate) // check if individual spell hit is successful due to spell hit rate
 {
  while (Target's Magic Defense Multiplier > 0)
  // consider the Magic Defense Multiplier the number of chances to evade magic hits
  // we try again on failure and stop when there is no more
  {
   Target's Magic Defense Multiplier--;
   if (rand (0,99) < Target's Magic Evade) // see if the target evades the magic hit
   {
    New Spell Power Multiplier--;
    break; // exit this loop since target has evaded successfully
   }
 }
 else // executed when individual spell hit fails to hit target and ignores magic evade - think of Tellah's suckage
 {
  New Spell Power Multiplier--;
 }
 Caster's Spell Power Mulitplier--;
}

Here we go!

Damage = New Spell Power Multiplier * Spell Power * Split Damage Modifier * Undead Modifer * Absorb Modifier * Healing Modifier;

If Damage = 0, then Damage = 1;

It is worth pointing out that monster magic evade = 0. Attack magic generally has a hit rate of 100%, although Venom/Poison is "the exception",
since it does both inflict a status and "deal damage".

HP based damage algo can be found here - http://slickproductions.org/forum/index.php?topic=448.0

Feel free to comment, question or mock my algo. If you mock it,  :banonsmash:

3128
Just to be clear (and so I don't forget this)...

Exposing enemy type (race) modifiers implies enemy defense = 0 and a 4x damage multiplier.
Exposing enemy elemental weakness via physical attacks implies attack power boost of 2x or 4x multiplier if Weak+ attribute is in use.
Exposing enemy elemental resistance/absorb via physical attacks implies attack power reduction of 2x is in play.
Exposing enemy elemental immunity (Darkness only though and only physical attacks) implies attack power = 0 (except in the case of the SNES version, it is probably 1 since more than 1 damage can be dealt on occasion).
Exposing enemy elemental weakness via magical attacks implies enemy magic defense = 0 and a 2x or 4x multiplier if Weak+ attribute is in use.
Exposing enemy elemental absorb via magical attacks (only) implies inverted damage and technically it is applied against the enemy's magic defense.

It is unknown what elemental immunity does against magical attacks though (it needs testing).

3129
Gaming Discussion / Re: Newer Sony Final Fantasies on the NES/Famicom?
« on: February 21, 2008, 09:49:13 PM »
One can only imagine that effort they put into it. However, it seems like they are trying way too hard...

Still impressive though.

3130
General Discussion / Re: Got an MRI today on my shoulder
« on: February 21, 2008, 09:43:48 PM »
Get well soon. It could be worse.

3131
Final Fantasy IV Research & Development / Re: "Sing" Command
« on: February 21, 2008, 04:48:11 PM »
Those look like really round numbers, now I'm wondering what the formula is. :hmm:

The numbers are "round" because of a simple formula (documented by BSiron)..

Quote from: BSiron's Archaic Algo FAQ
BLACK:
the effectiveness of black magic is dependent on the WIS stat of the caster.
some spells have a base damage, which is then multiplied by the black magic
multiplier, B, which is determined as B = [ WIS / 4 ] + 1.

WHITE:
likewise for white magic, the power of the spell is dependent only on WILL.
there is a similar white magic multiplier, W = [ WILL / 4 ] + 1.

3132
Final Fantasy IV Research & Development / Re: "Sing" Command
« on: February 21, 2008, 04:34:53 PM »
The spells are powered by Wisdom/Intellgence+Will/Spirit.

It requires something like 48-64 Will to make sure Charm/Mute always work.
It requires something like 64-80 Wisdom to make sure Sleep/Frog always work.

The irony here is that Charm the White Magic spell always worked for me (well, minus those monsters that were resistant).

3133
Final Fantasy IV Research & Development / Re: "Heal/Medicine" Command
« on: February 21, 2008, 03:34:16 PM »
Small Update: This command is not reflectable.

3134
There are a number of commands (mainly from FF4A) that seem to have bugs (at least cosmetically).

Rosa's Miracle command for instance does a heal+Cure3. When reflected, the Cure is not reflected visually, even though the enemy does get the healing.

Edward's Chant command does a dual Protect+Shell. When reflected, the Shell does not appear to be cast onto the characters, but only the enemy seems to get the benefit of Shell.

3135
Final Fantasy IV Research & Development / Re: "Sing" Command
« on: February 21, 2008, 05:07:24 AM »
At some point, I will test the success rate of Song (other than failure to sing anything which is part of the randomness ofthe command). I believe Wisdom/Intelligence powers Frog and Sleep and Will/Spirit powers Charm and Silence.