That's exactly what I am saying, comparing the recorded damage values by the modified script with the hit points dropping gives no doubt about that. Plus the code path inside the core supports the seen behavior.So you are saying that melee uses the "finalized" damage value instead of the value before it's cut in half on the demo Batlin?
Code: Select all
FUNC_DoDamage(...) // called by the scripts only
{
...
FUNC_GoDoScriptTrigger(..., washit, DamageValue);
...
FUNC_DoDamageInternal(..., DamageValue, DamageType, ...);
}
FUNC_DoDamageInternal(...) // called by the scripts indirectly and by melee directly
{
...
FUNC_GoModifyDamage(..., DamageType, &DamageValue); // by reference
...
DamageValue = DamageValue / 2;
...
FUNC_GoDoScriptTrigger(..., washit, DamageValue);
...
}
Of course, in case of interruption it would be logical that the second check is not made. The only reason I want to investigate this further is because I do not know at what point the second check is ignored. I don't see any clear code path that would cause this behaviour.Why would there be two checks for chance of interruption unless there was one check intially made to see if there was interuption and if the interruption succeeded there was the second check made to see if it was still interrupted if the spell was resisted?