Bards get a bonus tic at some point

Not sure what level but it's between 53 and 85 ...
(although I remember reading something about around 60)

I also didn't notice any of the odd effects the comments speak of ...
I suspect they were fighting each other?
This commit is contained in:
Michael Cook (mackal) 2015-05-25 02:01:51 -04:00
parent 85bdcf413b
commit 249d67a1c3
2 changed files with 4 additions and 21 deletions

View File

@ -421,14 +421,10 @@ int32 Mob::GetActSpellDuration(uint16 spell_id, int32 duration)
int tic_inc = 0;
tic_inc = GetFocusEffect(focusSpellDurByTic, spell_id);
// Only need this for clients, since the change was for bard songs, I assume we should keep non bard songs getting +1
// However if its bard or not and is mez, charm or fear, we need to add 1 so that client is in sync
if (IsClient() && !(IsShortDurationBuff(spell_id) && IsBardSong(spell_id)) ||
IsFearSpell(spell_id) ||
IsCharmSpell(spell_id) ||
IsMezSpell(spell_id) ||
IsBlindSpell(spell_id))
tic_inc += 1;
// unsure on the exact details, but bard songs that don't cost mana at some point get an extra tick, 60 for now
// a level 53 bard reported getting 2 tics
if (IsShortDurationBuff(spell_id) && IsBardSong(spell_id) && spells[spell_id].mana == 0 && GetClass() == BARD && GetLevel() > 60)
tic_inc++;
return (((duration * increase) / 100) + tic_inc);
}

View File

@ -3375,19 +3375,6 @@ void Mob::BuffProcess()
--buffs[buffs_i].ticsremaining;
if (buffs[buffs_i].ticsremaining == 0) {
// Why do we need to let these go negative? Client uses negatives for perma buffs
if (!IsShortDurationBuff(buffs[buffs_i].spellid) ||
IsFearSpell(buffs[buffs_i].spellid) ||
IsCharmSpell(buffs[buffs_i].spellid) ||
IsMezSpell(buffs[buffs_i].spellid) ||
IsBlindSpell(buffs[buffs_i].spellid))
{
Log.Out(Logs::Detail, Logs::Spells, "Buff %d in slot %d has expired. Fading.", buffs[buffs_i].spellid, buffs_i);
BuffFadeBySlot(buffs_i);
}
}
else if (buffs[buffs_i].ticsremaining < 0)
{
Log.Out(Logs::Detail, Logs::Spells, "Buff %d in slot %d has expired. Fading.", buffs[buffs_i].spellid, buffs_i);
BuffFadeBySlot(buffs_i);
}