mirror of
https://github.com/EQEmu/Server.git
synced 2026-01-04 11:33:52 +00:00
Fixed Merc depop bug, added merc rest regen, fixed merc group spell casting bug where mercs would continue to try to cast group buffs on pets of caster who didn't have Pet Affinity AA.
This commit is contained in:
parent
da4cddf1ef
commit
7c34a89ec5
@ -1,5 +1,11 @@
|
||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
-------------------------------------------------------
|
||||
== 03/2/2013 ==
|
||||
Bad_Captain: Fixed Merc depop bug.
|
||||
Bad_Captain: Added merc rest regen.
|
||||
Bad_Captain: Fixed merc group spell casting bug where mercs would continue to try to cast group buffs on pets of caster who didn't have Pet Affinity AA.
|
||||
|
||||
|
||||
== 03/1/2013 ==
|
||||
Bad_Captain: Fixed Merc duplicate save bug.
|
||||
Bad_Captain: Focus items, spell_scale and heal_scale now work implemented and new merc equipment (with focus items).
|
||||
|
||||
@ -1441,7 +1441,6 @@ bool Merc::Process()
|
||||
{
|
||||
SetMercCharacterID(0);
|
||||
SetOwnerID(0);
|
||||
SetID(0);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1479,13 +1478,13 @@ bool Merc::Process()
|
||||
CalcRestState();
|
||||
|
||||
if(GetHP() < GetMaxHP())
|
||||
SetHP(GetHP() + CalcHPRegen());
|
||||
SetHP(GetHP() + CalcHPRegen() + RestRegenHP);
|
||||
|
||||
if(GetMana() < GetMaxMana())
|
||||
SetMana(GetMana() + CalcManaRegen());
|
||||
SetMana(GetMana() + CalcManaRegen() + RestRegenMana);
|
||||
|
||||
if(GetEndurance() < GetMaxEndurance())
|
||||
SetEndurance(GetEndurance() + CalcEnduranceRegen());
|
||||
SetEndurance(GetEndurance() + CalcEnduranceRegen() + RestRegenEndurance);
|
||||
}
|
||||
|
||||
if(confidence_timer.Check()) {
|
||||
@ -2350,21 +2349,36 @@ bool Merc::AICastSpell(int8 iChance, int32 iSpellTypes) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int32 TempDontBuffMeBeforeTime = tar->DontBuffMeBefore();
|
||||
uint32 TempDontBuffMeBeforeTime = tar->DontBuffMeBefore();
|
||||
|
||||
if(AIDoSpellCast(selectedMercSpell.spellid, tar, -1, &TempDontBuffMeBeforeTime)) {
|
||||
if(TempDontBuffMeBeforeTime != tar->DontBuffMeBefore())
|
||||
tar->SetDontBuffMeBefore(TempDontBuffMeBeforeTime);
|
||||
|
||||
if(AIDoSpellCast(selectedMercSpell.spellid, tar, -1))
|
||||
castedSpell = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!castedSpell && tar->GetPet()) {
|
||||
|
||||
//don't cast group spells on pets
|
||||
if(IsGroupSpell(selectedMercSpell.spellid)
|
||||
|| spells[selectedMercSpell.spellid].targettype == ST_Group
|
||||
|| spells[selectedMercSpell.spellid].targettype == ST_GroupTeleport ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!tar->GetPet()->IsImmuneToSpell(selectedMercSpell.spellid, this)
|
||||
&& (tar->GetPet()->CanBuffStack(selectedMercSpell.spellid, mercLevel, true) >= 0)) {
|
||||
|
||||
int32 TempDontBuffMeBeforeTime = tar->DontBuffMeBefore();
|
||||
uint32 TempDontBuffMeBeforeTime = tar->DontBuffMeBefore();
|
||||
|
||||
if(AIDoSpellCast(selectedMercSpell.spellid, tar->GetPet(), -1, &TempDontBuffMeBeforeTime)) {
|
||||
if(TempDontBuffMeBeforeTime != tar->DontBuffMeBefore())
|
||||
tar->SetDontBuffMeBefore(TempDontBuffMeBeforeTime);
|
||||
|
||||
if(AIDoSpellCast(selectedMercSpell.spellid, tar->GetPet(), -1))
|
||||
castedSpell = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4644,10 +4658,12 @@ Merc* Merc::LoadMerc(Client *c, MercTemplate* merc_template, uint32 merchant_id,
|
||||
merc->drakkin_heritage = c->GetMercInfo().drakkinHeritage;
|
||||
merc->drakkin_tattoo = c->GetMercInfo().drakkinTattoo;
|
||||
merc->drakkin_details = c->GetMercInfo().drakkinDetails;
|
||||
|
||||
database.LoadMercBuffs(merc);
|
||||
}
|
||||
|
||||
if(merc->GetMercID()) {
|
||||
database.LoadMercBuffs(merc);
|
||||
}
|
||||
|
||||
merc->LoadMercSpells();
|
||||
|
||||
return merc;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user