mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[7365] Implement potion in combat delay proper work.
Original patch provided by miranda.conrado.
This commit is contained in:
parent
2b10d8fd71
commit
de51363151
5 changed files with 45 additions and 1 deletions
|
|
@ -420,6 +420,8 @@ Player::Player (WorldSession *session): Unit(), m_achievementMgr(this)
|
|||
m_InstanceValid = true;
|
||||
m_dungeonDifficulty = DIFFICULTY_NORMAL;
|
||||
|
||||
m_lastPotionId = 0;
|
||||
|
||||
for (int i = 0; i < BASEMOD_END; i++)
|
||||
{
|
||||
m_auraBaseMod[i][FLAT_MOD] = 0.0f;
|
||||
|
|
@ -17750,6 +17752,30 @@ void Player::SendCooldownEvent(SpellEntry const *spellInfo, uint32 itemId, Spell
|
|||
data << GetGUID();
|
||||
SendDirectMessage(&data);
|
||||
}
|
||||
|
||||
void Player::UpdatePotionCooldown(Spell* spell)
|
||||
{
|
||||
// no potion used i combat or still in combat
|
||||
if(!m_lastPotionId || isInCombat())
|
||||
return;
|
||||
|
||||
// Call not from spell cast, send cooldown event for item spells if no in combat
|
||||
if(!spell)
|
||||
{
|
||||
// spell/item pair let set proper cooldown (except not existed charged spell cooldown spellmods for potions)
|
||||
if(ItemPrototype const* proto = ObjectMgr::GetItemPrototype(m_lastPotionId))
|
||||
for(int idx = 0; idx < 5; ++idx)
|
||||
if(proto->Spells[idx].SpellId && proto->Spells[idx].SpellTrigger == ITEM_SPELLTRIGGER_ON_USE)
|
||||
if(SpellEntry const* spellInfo = sSpellStore.LookupEntry(proto->Spells[idx].SpellId))
|
||||
SendCooldownEvent(spellInfo,m_lastPotionId);
|
||||
}
|
||||
// from spell cases (m_lastPotionId set in Spell::SendSpellCooldown)
|
||||
else
|
||||
SendCooldownEvent(spell->m_spellInfo,m_lastPotionId,spell);
|
||||
|
||||
m_lastPotionId = 0;
|
||||
}
|
||||
|
||||
//slot to be excluded while counting
|
||||
bool Player::EnchantmentFitsRequirements(uint32 enchantmentcondition, int8 slot)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue