Фикс a.2:
Spell.cpp Функция: bool Spell::CanAutoCast(Unit* target)
и копируйте в самое начало.
Код:
if(m_spellInfo->Id == 47468 && m_caster->GetPower(POWER_ENERGY) < 60)
return false;
Фикс a.3
А также исправляет проблему с кд петов у лока.
SpellEffect.cpp Функция void Spell::EffectSummonPet(SpellEffIndex effIndex):
Код:
Pet* OldSummon = owner->GetPet();
// if pet requested type already exist
if (OldSummon)
{
// fix clear cooldown for pet
if (!OldSummon->m_CreatureSpellCooldowns.empty())
{
for (CreatureSpellCooldowns::const_iterator itr = OldSummon->m_CreatureSpellCooldowns.begin(); itr != OldSummon->m_CreatureSpellCooldowns.end(); ++itr)
owner->SendClearCooldown(itr->first, OldSummon);
OldSummon->m_CreatureSpellCooldowns.clear();
OldSummon->m_CreatureCategoryCooldowns.clear();
}
if (petentry == 0 || OldSummon->GetEntry() == petentry)
и
Код:
float x, y, z;
owner->GetClosePoint(x, y, z, owner->GetObjectSize());
Pet* pet = owner->SummonPet(petentry, x, y, z, owner->GetOrientation(), SUMMON_PET, 0);
if (!pet)
return;
if (!pet->m_CreatureSpellCooldowns.empty())
{
for (CreatureSpellCooldowns::const_iterator itr = pet->m_CreatureSpellCooldowns.begin(); itr != pet->m_CreatureSpellCooldowns.end(); ++itr)
owner->SendClearCooldown(itr->first, pet);
pet->m_CreatureSpellCooldowns.clear();
pet->m_CreatureCategoryCooldowns.clear();
}