Hey there! I did some tests on NA official server (Live) and Erhteia PTS and found that mAtk and Magic Damage formulas in the L2J-Mobius is not correct. I can suggest verified mAtk fromula, and verified spiritshot/bss for magic damage; also I can say that the multiplier for magic damage isn't 77, it's something between 92 and 95.
mAtk formula, old:
// Calculate modifiers Magic Attack
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1;
baseValue *= Math.pow(BaseStat.INT.calcBonus(creature) * creature.getLevelMod() * chaBonus, 2.2072);
verified:
final double chaBonus = creature.isPlayer() ? BaseStat.CHA.calcBonus(creature) : 1.;
final double levelMod = creature.getLevelMod();
final double intMod = BaseStat.INT.calcBonus(creature);
final double multiplier = intMod * intMod * levelMod * levelMod * chaBonus * chaBonus;
baseValue *= multiplier;
calcMagicDam:
1. Spiritshots multiplier: we have only x2 damage in PVP
// Bonus Spirit shot
double shotsBonus = 1.0;
if(bss || sps)
{
if(target.isPlayer() || target.isServitor() || target.isFakePlayer())
{
shotsBonus = 2.0;
}
else
{
shotsBonus = 4.0;
}
shotsBonus += attacker.getStat().getValue(Stat.SHOTS_BONUS);
}
2. The damage formula, the Multiplier value is 92..95, not 77 (it's hard to determinate precise because The Live servers have enabled Damage Randomization by default, I don't have PTS files)
double damage = ((95 * (power + attacker.getStat().getValue(Stat.SKILL_POWER_ADD, 0)) * Math.sqrt(mAtk)) / mDef) * shotsBonus;