Edit: just found SE_ChangeAggro, going to add that in and see if it handles it. wanted to post here before edit lockout.
Bard pacification songs are being improved by singing mods. This is a bad thing.
Problem was being discussed over on the PEQ forums.
http://www.peqtgc.com/phpBB2/viewtopic.php?t=11898
Here are the results of #showstats with no modifiers or AA
Code:
NPCID: 294000 SpawnGroupID:61376
AggroRange: 5 AssistRange: 10
Here is where i started adding modifers
Code:
Aggro | Assist
No Instrument Mods + No AA = 5 | 10
Equiped Epic 1.5 (Singing Mod 22 No AA) = 11 | 22
Started Buying AA's in this order:
Singing Mastery 1/2/3/4 = 6/7/8/9 | 12/14/16/18
Ayonae's Tutelage 1/2/3 = 10/11/12 | 20/22/24
Echo of Taelosia 1/2/3 = 13/14/15 | 26/28/30
Equiped Epic 1.5 = 21 | 42
Epic 1.5, All AA + Code change below = 5 | 42
I changed spell_effects.cpp with mixed results. Adding the SE_Lull exception did not change anything. Adding the SE_ChangeFrenzyRad keeps it from modifying the Aggro radius, but does nothing for the assist radius.
Code:
int Mob::CalcSpellEffectValue(int16 spell_id, int effect_id, int caster_level, Mob *caster, int ticsremaining)
{
int formula, base, max, effect_value;
if
(
!IsValidSpell(spell_id) ||
effect_id < 0 ||
effect_id >= EFFECT_COUNT
)
return 0;
formula = spells[spell_id].formula[effect_id];
base = spells[spell_id].base[effect_id];
max = spells[spell_id].max[effect_id];
if(IsBlankSpellEffect(spell_id, effect_id))
return 0;
effect_value = CalcSpellEffectValue_formula(formula, base, max, caster_level, spell_id, ticsremaining);
if(caster && IsBardSong(spell_id) &&
(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)) {
int oval = effect_value;
int mod = caster->GetInstrumentMod(spell_id);
effect_value = effect_value * mod / 10;
mlog(SPELLS__BARDS, "Effect value %d altered with bard modifier of %d to yeild %d", oval, mod, effect_value);
}
return(effect_value);
}