From da4cddf1efa3cd93f19cb3f9c511a3e625aeac45 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 1 Mar 2013 16:45:10 -0800 Subject: [PATCH 1/2] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 7e273453a..0870ab9f6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ EQEmu - Custom Game Implementation for EverQuest +TODO: A less useless readme file. + +Dependencies can be obtained at http://eqemu.github.com/ From 7c34a89ec5f0505dde770061850b2ce691b7fbe8 Mon Sep 17 00:00:00 2001 From: badcaptain Date: Sat, 2 Mar 2013 01:07:18 -0500 Subject: [PATCH 2/2] 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. --- changelog.txt | 6 ++++++ zone/merc.cpp | 36 ++++++++++++++++++++++++++---------- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/changelog.txt b/changelog.txt index 46e242443..c7e920a9f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -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). diff --git a/zone/merc.cpp b/zone/merc.cpp index dec3c1bcc..3dd9f8e3e 100644 --- a/zone/merc.cpp +++ b/zone/merc.cpp @@ -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;