Unless the p1999 folks changed something this is the piece of code from eqemu where the modifier is checked.
// this doesn't actually need to be a song to get mods, just the right skill
if (EQEmu::IsBardInstrumentSkill(spells[spell_id].skill) &&
spells[spell_id].effectid[effect_id] != SE_AttackSpeed &&
spells[spell_id].effectid[effect_id] != SE_AttackSpeed2 &&
spells[spell_id].effectid[effect_id] != SE_AttackSpeed3 &&
spells[spell_id].effectid[effect_id] != SE_Lull &&
spells[spell_id].effectid[effect_id] != SE_ChangeFrenzyRad &&
spells[spell_id].effectid[effect_id] != SE_Harmony &&
spells[spell_id].effectid[effect_id] != SE_CurrentMana &&
spells[spell_id].effectid[effect_id] != SE_ManaRegen_v2) {
int oval = effect_value;
int mod = ApplySpellEffectiveness(caster, spell_id, instrument_mod, true);
effect_value = effect_value * mod / 10;
Log.Out(Logs:
[You must be logged in to view images. Log in or Register.]etail, Logs::Spells, "Effect value %d altered with bard modifier of %d to yeild %d",
oval, mod, effect_value);
}
int32 Mob::ApplySpellEffectiveness(Mob* caster, int16 spell_id, int32 value, bool IsBard)
{
// 9-17-12: This is likely causing crashes, disabled till can resolve.
if (IsBard)
return value;
...
}
So it appears that if it's a bard the instrument_mod value is just passed back and then calculations are performed on that... effect_value * mod / 10 (21 / 10 = 2.1)
Perhaps a deeper dive than needed but I thought it was interesting.