Core/GameObjects: only add GameObject uses when the triggered cast is successful
This commit is contained in:
1 parent
5bb76804db
commit
490ed994bc
1 file changed
+9
-5
@@ -1860,6 +1860,7 @@ void GameObject::Use(Unit* user)
|
|||||||
Unit* spellCaster = user;
|
Unit* spellCaster = user;
|
||||||
uint32 spellId = 0;
|
uint32 spellId = 0;
|
||||||
bool triggered = false;
|
bool triggered = false;
|
||||||
|
bool addUse = false;
|
||||||
|
|
||||||
if (Player* playerUser = user->ToPlayer())
|
if (Player* playerUser = user->ToPlayer())
|
||||||
{
|
{
|
||||||
@@ -2296,9 +2297,8 @@ void GameObject::Use(Unit* user)
|
|||||||
if (m_goInfo->spellcaster.playerCast != 0 && user->IsPlayer())
|
if (m_goInfo->spellcaster.playerCast != 0 && user->IsPlayer())
|
||||||
caster = user;
|
caster = user;
|
||||||
|
|
||||||
if (caster->CastSpell(user, spellId) == SPELL_CAST_OK)
|
addUse = true;
|
||||||
AddUse();
|
break;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
case GAMEOBJECT_TYPE_MEETINGSTONE: //23
|
case GAMEOBJECT_TYPE_MEETINGSTONE: //23
|
||||||
{
|
{
|
||||||
@@ -2467,10 +2467,14 @@ void GameObject::Use(Unit* user)
|
|||||||
if (Player* player = user->ToPlayer())
|
if (Player* player = user->ToPlayer())
|
||||||
sOutdoorPvPMgr->HandleCustomSpell(player, spellId, this);
|
sOutdoorPvPMgr->HandleCustomSpell(player, spellId, this);
|
||||||
|
|
||||||
|
SpellCastResult castResult;
|
||||||
if (spellCaster)
|
if (spellCaster)
|
||||||
spellCaster->CastSpell(user, spellId, triggered);
|
castResult = spellCaster->CastSpell(user, spellId, triggered);
|
||||||
else
|
else
|
||||||
CastSpell(user, spellId);
|
castResult = CastSpell(user, spellId);
|
||||||
|
|
||||||
|
if (addUse && castResult == SPELL_CAST_OK)
|
||||||
|
AddUse();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameObject::SendCustomAnim(uint32 anim)
|
void GameObject::SendCustomAnim(uint32 anim)
|
||||||
|
|||||||
Reference in new issue
Block a user