[RMVX ACE] CURIOUS ABOUT THE MORE OBSCURE PARAMETERS

Posts

Pages: 1
So I've logged a few thousand hours in Ace but it has a lot of parameters--which, incidentally, is great. And there are several I've never used and also several I've never been able to entirely figure out, even with the tooltip.

LUK: Does it, by default, do ANYTHING on its own? (Besides the fact you can use it in damage formula (I often add b.luk into the formula for healing skills/items.)
Critical Evasion: I play Dungeons & Dragons so I've always assumed this was the percent chance to turn a critical hit into a regular hit. And a character with CEV 100% would be immune to criticals (like way too many creature types in D&D). But maybe it literally EVADES the critical and turns it into an EVADE!? The funny thing is I've used it in more than one game but I'm still not sure which it is.
MRF: Reflects magical attacks, with the damage based on the original caster's stats??
CNT: Reflects physical attacks, with the damage based on the Countering character's stats??
GRD: Honestly, I have no idea. I assume it has something to do with the defend command?
REC: I think maybe it multiplies the effects of healing skills/items? So a character with REC 200% would get double heals from everything? If so, it's a bummer you can't set it to -100%, effectively causing the "Zombie" status effect from Final Fantasy. Although I'm sure there's a script for that somewhere.
PDR: Physical damage rate. What it sounds like, I assume? So magical attacks and certain hit attacks ignore this parameter? And the main difference between this and a resistance/weakness to the Physical element, in most games, is that this would not display a Resist/Weakpoint? (I always have the basic core of the Yanfly Engine installed so I've started to conflate it with Ace. Actually I think vanilla Ace doesn't even have popups like "Resist/Weakpoint".)
MDR: Magical damage rate. What it sounds like, I assume? So physical attacks and certain hit attacks ignore this parameter?
FDR: I have absolutely no idea what this does. I don't even know if it's referring to the statistical/mathematical concept of floor somehow or the damage you take from walking over tiles. This is the one I"m most curious about.
Nope, CNT never reflects physical attacks, it provides a chance to strike back right after the enemy's attack aka some common counterattack.

FDR is nothing but your old terrain or slip damage, the damage dealt by the unforgiving soil itself!
Marrend
Guardian of the Description Thread
21781
Luck is used to determine status rates. Default formula as follows.
class Game_Battler < Game_BattlerBase
  def luk_effect_rate(user)
    [1.0 + (user.luk - luk) * 0.001, 0.0].max
  end
end
I sometimes disregard this...
class Game_Battler < Game_BattlerBase
  def luk_effect_rate(user)
    1
  end
end
...and turn luck into an amount added to critical attacks...
class Game_Battler < Game_BattlerBase
  def apply_critical(damage)
    #damage * 3
    (damage + (luk / 16)) * 2
  end
end

The help file indicates that GRD is "Strength of damage reduction effect of the defense command." However, I largely suspect it's not limited to the Guard command, but, any skill that applies a state with the "Guard" special flag feature.

Both PDR and MDR probably look at a skill's hit type. This is the drop-down to the left of "Animation" under the skill tab. The available options are always "Certain Hit", "Physical Attack" (ie: apply PDR), and "Magical Attack" (ie: apply MDR).

The description of FDR says "Percentage of damage received from map terrain". So, if a tile is defined as being a "Damage Floor", it would apply this feature to the damage taken when the player steps on the tile in question. The "Poison Swamp" tiles in the default "Field" tileset are set with this attribute.

The description of CEV is "Chance of preventing a critical hit". There's already EVA, which determines whether or not a battler hits in the first place, so I'm inclined to think that yes, it turns a critical hit into a normal hit. I guess the best way to test this would be to grant 100% hit rate as a feature on allies/enemies, maybe a higher-than-normal CRI, with the only evasion being CEV?

*Edit: Zoe from my Theme Roulette game has a skill that applies an state with an MRF feature, but, I"m not 100% sure if I could tell you how it determined what damage was reflected back. Both CNT and MRF were set to 100% with that skill, though, so, if she was hit with anything (1000% TGR was also granted with that skill ), the enemy is gonna take some damage.
author=kyonides
Nope, CNT never reflects physical attacks, it provides a chance to strike back right after the enemy's attack aka some common counterattack.

I am 98% sure that it actually just reflects physical attacks. Don't get me wrong, how you're describing it is exactly how I think it should work by default, but it is not how I've observed it to work.

author=Marrend
*Edit: Zoe from my Theme Roulette game has a skill that applies an state with an MRF feature, but, I"m not 100% sure if I could tell you how it determined what damage was reflected back. Both CNT and MRF were set to 100% with that skill, though, so, if she was hit with anything (1000% TGR was also granted with that skill ), the enemy is gonna take some damage.

And she didn't, as I recall, take any damage when hit with physical attacks, she just reflected them right back. Likewise the last boss of the first episode of Road To Paradise was not taking and returning hits when his innate 50% Counterattack triggered, he was just reflecting them. But the damage was generally higher than it would have been from the attacking character (his ATK was close to twice the ATK of the most powerful physical attacker in the party) so that's why I wondered if the damage was recalculated based on the reflecting character's ATK with CNT.

Thanks for the info btw!

Random: for years I have been giving "ghostly" or "insubstantial" enemies a high EVA and if powerful enough a lower MEV too. Now I'm thinking that a resistance to the Physical element or a lowered PDR might be a better way to go as it's less "all or nothing" and less potential frustration.
There are several scripts to change CNT to just counter attack instead of evade and counter.
Counter attack uses the damage formula of the attack skill, with the attacker / defender swapped.
Magic reflect uses the original skill.

This function in Scene_Battle does the checks:
#--------------------------------------------------------------------------
  # * Invoke Skill/Item
  #--------------------------------------------------------------------------
  def invoke_item(target, item)
    if rand < target.item_cnt(@subject, item)
      invoke_counter_attack(target, item)
      # copy the apply_item_effects line in here to take damage as well as counter
    elsif rand < target.item_mrf(@subject, item)
      invoke_magic_reflection(target, item)
    else
      apply_item_effects(apply_substitute(target, item), item)
    end
    @subject.last_target_index = target.index
  end

PDR and MDR are good if your game uses elements for both physical and magical attacks.
So you can have a slime that takes half damage from physical attacks but also takes double damage from fire.
 [1.0 + (user.luk - luk) * 0.001, 0.0].max


For the math/programming impaired, would someone care to break down this default formula for luck effecting status rates? I can't make any sense of it honestly.
Marrend
Guardian of the Description Thread
21781
author=StormCrow
 [1.0 + (user.luk - luk) * 0.001, 0.0].max

For the math/programming impaired, would someone care to break down this default formula for luck effecting status rates? I can't make any sense of it honestly.

So, let's say we have an actor with, I dunno, 75 LUCK attempting to apply a state to an enemy with 50 LUCK. That formula plug-and-chugs into...

[1.0 + (75 - 50) * 0.001, 0.0].max

...something like this. After we do the math...

[1.0 + 25 * .0001, 0.0].max
[1.0 + 0.025, 0.0].max
[1.025, 0.0].max

...the ".max" function, in this instance, looks at the values passed to it, and returns the largest amount. In this case, it returns 1.025 (as it is bigger than 0.0), which, in turn, translates to a 102.5% (probably rounds down to 102%) chance of applying the state.

*Edit: I assume state resistance multiples this even more. So, if a battler has a 75% resistance rate to the state in question, using the above example, I think the actual rate that the state woulds be applied turns into 76.875% (probably 76%)?
OzzyTheOne
Future Ruler of Gam Mak
4676
Very interesting stuff going on in this thread, thanks for asking such an interesting and truly informative question StormCrow! And thanks to all of your cool people for answering as many question as you can, it's truly quite enlightening.
^_^)b
author=Marrend
author=StormCrow
 [1.0 + (user.luk - luk) * 0.001, 0.0].max

For the math/programming impaired, would someone care to break down this default formula for luck effecting status rates? I can't make any sense of it honestly.
So, let's say we have an actor with, I dunno, 75 LUCK attempting to apply a state to an enemy with 50 LUCK. That formula plug-and-chugs into...

[1.0 + (75 - 50) * 0.001, 0.0].max

...something like this. After we do the math...

[1.0 + 25 * .0001, 0.0].max
[1.0 + 0.025, 0.0].max
[1.025, 0.0].max

...the ".max" function, in this instance, looks at the values passed to it, and returns the largest amount. In this case, it returns 1.025 (as it is bigger than 0.0), which, in turn, translates to a 102.5% (probably rounds down to 102%) chance of applying the state.

*Edit: I assume state resistance multiples this even more. So, if a battler has a 75% resistance rate to the state in question, using the above example, I think the actual rate that the state woulds be applied turns into 76.875% (probably 76%)?

So, how come in the damage formulae it uses a.luk and b.luk to designate caster and target, and in the actual script it uses user.luk (obvious) for the caster and just luk (???) for the target? If there even is a reason, I mean.

In this case, it returns 1.025 (as it is bigger than 0.0)

Why is the step of comparing it to 0.0 in there/necessary? Thanks for telling me what .max is, btw, that was stumping me.

Anyway by default, a 2% increase to your chance to inflict a status effect for having 150% of the enemy's Luck stat seems like a terrible return on investment (well 98% of RM games you don't get to choose where your characters' points go but you know what I mean), but I'm happy they had Luck do SOMETHING baked into the engine at least and not LITERALLY NOTHING as I'd kind of assumed until making this thread.
Marrend
Guardian of the Description Thread
21781
So, how come in the damage formulae it uses a.luk and b.luk to designate caster and target, and in the actual script it uses user.luk (obvious) for the caster and just luk (???) for the target? If there even is a reason, I mean.


My guess is because the damage formula is, itself, an instance of an object, and the a/b references are made to reference user and target within that class. I might not have been too far from the truth...

class RPG::UsableItem::Damage
  def eval(a, b, v)
    [Kernel.eval(@formula), 0].max * sign rescue 0
  end
end


...if I read this snippet in the help-file correctly.

Why is the step of comparing it to 0.0 in there/necessary?


Probably because that formula represents a percentile chance of adding (or removing) a state, depending on how the skill is defined. Not sure what a negative value there would imply, if such was allowed. Would a negative value when attempting to add a state would mean a chance of removal instead? Would a negative value when attempting to remove a state mean it's re-applied?
I assumed a negative value would just lower the chance of inflicting the state but I am probably being a math retard because I am retarded at math.
Pages: 1