mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-19 11:55:43 +00:00
feat(Core/Misc): implement ObjectGuid class (port from TC) (#4885)
This commit is contained in:
@@ -285,8 +285,8 @@ void Spell::EffectInstaKill(SpellEffIndex /*effIndex*/)
|
||||
finish();
|
||||
|
||||
WorldPacket data(SMSG_SPELLINSTAKILLLOG, 8 + 8 + 4);
|
||||
data << uint64(m_caster->GetGUID());
|
||||
data << uint64(unitTarget->GetGUID());
|
||||
data << m_caster->GetGUID();
|
||||
data << unitTarget->GetGUID();
|
||||
data << uint32(m_spellInfo->Id);
|
||||
m_caster->SendMessageToSet(&data, true);
|
||||
|
||||
@@ -1141,7 +1141,7 @@ void Spell::EffectJumpDest(SpellEffIndex effIndex)
|
||||
if (m_spellInfo->Id == 49376) // feral charge
|
||||
{
|
||||
speedXY = pow(speedZ * 10, 8);
|
||||
m_caster->GetMotionMaster()->MoveJump(x, y, z, speedXY, speedZ, 0, ObjectAccessor::GetUnit(*m_caster, m_caster->GetUInt64Value(UNIT_FIELD_TARGET)));
|
||||
m_caster->GetMotionMaster()->MoveJump(x, y, z, speedXY, speedZ, 0, ObjectAccessor::GetUnit(*m_caster, m_caster->GetGuidValue(UNIT_FIELD_TARGET)));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1362,7 +1362,8 @@ void Spell::EffectUnlearnSpecialization(SpellEffIndex effIndex)
|
||||
|
||||
player->removeSpell(spellToUnlearn, SPEC_MASK_ALL, false);
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
LOG_DEBUG("spells.aura", "Spell: Player %u has unlearned spell %u from NpcGUID: %u", player->GetGUIDLow(), spellToUnlearn, m_caster->GetGUIDLow());
|
||||
LOG_DEBUG("spells.aura", "Spell: Player %s has unlearned spell %u from Npc: %s",
|
||||
player->GetGUID().ToString().c_str(), spellToUnlearn, m_caster->GetGUID().ToString().c_str());
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1552,7 +1553,7 @@ void Spell::EffectHeal(SpellEffIndex /*effIndex*/)
|
||||
|
||||
if (!targetAura)
|
||||
{
|
||||
LOG_ERROR("server", "Target(GUID:" UI64FMTD ") has aurastate AURA_STATE_SWIFTMEND but no matching aura.", unitTarget->GetGUID());
|
||||
LOG_ERROR("server", "Target(%s) has aurastate AURA_STATE_SWIFTMEND but no matching aura.", unitTarget->GetGUID().ToString().c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1773,7 +1774,7 @@ void Spell::DoCreateItem(uint8 /*effIndex*/, uint32 itemId)
|
||||
|
||||
// set the "Crafted by ..." property of the item
|
||||
if (pItem->GetTemplate()->HasSignature())
|
||||
pItem->SetUInt32Value(ITEM_FIELD_CREATOR, player->GetGUIDLow());
|
||||
pItem->SetGuidValue(ITEM_FIELD_CREATOR, player->GetGUID());
|
||||
|
||||
// send info to the client
|
||||
player->SendNewItem(pItem, addNumber, true, SelfCast);
|
||||
@@ -1859,7 +1860,7 @@ void Spell::EffectPersistentAA(SpellEffIndex effIndex)
|
||||
if (!caster->IsInWorld() || !caster->FindMap() || !ObjectAccessor::GetUnit(*caster, caster->GetGUID())) // pussywizard: temporary crash fix (FindMap and GetUnit are mine)
|
||||
return;
|
||||
DynamicObject* dynObj = new DynamicObject(false);
|
||||
if (!dynObj->CreateDynamicObject(sObjectMgr->GenerateLowGuid(HIGHGUID_DYNAMICOBJECT), caster, m_spellInfo->Id, *destTarget, radius, DYNAMIC_OBJECT_AREA_SPELL))
|
||||
if (!dynObj->CreateDynamicObject(caster->GetMap()->GenerateLowGuid<HighGuid::DynamicObject>(), caster, m_spellInfo->Id, *destTarget, radius, DYNAMIC_OBJECT_AREA_SPELL))
|
||||
{
|
||||
delete dynObj;
|
||||
return;
|
||||
@@ -2016,7 +2017,7 @@ void Spell::EffectEnergizePct(SpellEffIndex effIndex)
|
||||
m_caster->EnergizeBySpell(unitTarget, m_spellInfo->Id, gain, power);
|
||||
}
|
||||
|
||||
void Spell::SendLoot(uint64 guid, LootType loottype)
|
||||
void Spell::SendLoot(ObjectGuid guid, LootType loottype)
|
||||
{
|
||||
Player* player = m_caster->ToPlayer();
|
||||
if (!player)
|
||||
@@ -2028,7 +2029,8 @@ void Spell::SendLoot(uint64 guid, LootType loottype)
|
||||
if (!gameObjTarget->isSpawned() && !player->IsGameMaster())
|
||||
{
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
LOG_ERROR("server", "Possible hacking attempt: Player %s [guid: %u] tried to loot a gameobject [entry: %u id: %u] which is on respawn time without being in GM mode!", player->GetName().c_str(), player->GetGUIDLow(), gameObjTarget->GetEntry(), gameObjTarget->GetGUIDLow());
|
||||
LOG_ERROR("server", "Possible hacking attempt: Player %s [%s] tried to loot a gameobject [%s] which is on respawn time without being in GM mode!",
|
||||
player->GetName().c_str(), player->GetGUID().ToString().c_str(), gameObjTarget->GetGUID().ToString().c_str());
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
@@ -2099,7 +2101,7 @@ void Spell::EffectOpenLock(SpellEffIndex effIndex)
|
||||
Player* player = m_caster->ToPlayer();
|
||||
|
||||
uint32 lockId = 0;
|
||||
uint64 guid = 0;
|
||||
ObjectGuid guid;
|
||||
|
||||
// Get lockId
|
||||
if (gameObjTarget)
|
||||
@@ -2138,7 +2140,7 @@ void Spell::EffectOpenLock(SpellEffIndex effIndex)
|
||||
// TODO: Add script for spell 41920 - Filling, becouse server it freze when use this spell
|
||||
// handle outdoor pvp object opening, return true if go was registered for handling
|
||||
// these objects must have been spawned by outdoorpvp!
|
||||
else if (gameObjTarget->GetGOInfo()->type == GAMEOBJECT_TYPE_GOOBER && sOutdoorPvPMgr->HandleOpenGo(player, gameObjTarget->GetGUID()))
|
||||
else if (gameObjTarget->GetGOInfo()->type == GAMEOBJECT_TYPE_GOOBER && sOutdoorPvPMgr->HandleOpenGo(player, gameObjTarget))
|
||||
return;
|
||||
lockId = goInfo->GetLockId();
|
||||
guid = gameObjTarget->GetGUID();
|
||||
@@ -2185,9 +2187,8 @@ void Spell::EffectOpenLock(SpellEffIndex effIndex)
|
||||
if (gameObjTarget)
|
||||
{
|
||||
// Allow one skill-up until respawned
|
||||
if (!gameObjTarget->IsInSkillupList(player->GetGUIDLow()) &&
|
||||
player->UpdateGatherSkill(skillId, pureSkillValue, reqSkillValue))
|
||||
gameObjTarget->AddToSkillupList(player->GetGUIDLow());
|
||||
if (!gameObjTarget->IsInSkillupList(player->GetGUID()) && player->UpdateGatherSkill(skillId, pureSkillValue, reqSkillValue))
|
||||
gameObjTarget->AddToSkillupList(player->GetGUID());
|
||||
}
|
||||
else if (itemTarget)
|
||||
{
|
||||
@@ -2250,7 +2251,7 @@ void Spell::EffectSummonChangeItem(SpellEffIndex effIndex)
|
||||
m_targets.SetItemTarget(nullptr);
|
||||
|
||||
m_CastItem = nullptr;
|
||||
m_castItemGUID = 0;
|
||||
m_castItemGUID.Clear();
|
||||
|
||||
player->StoreItem(dest, pNewItem, true);
|
||||
player->ItemAddedQuestCheck(pNewItem->GetEntry(), 1);
|
||||
@@ -2270,7 +2271,7 @@ void Spell::EffectSummonChangeItem(SpellEffIndex effIndex)
|
||||
m_targets.SetItemTarget(nullptr);
|
||||
|
||||
m_CastItem = nullptr;
|
||||
m_castItemGUID = 0;
|
||||
m_castItemGUID.Clear();
|
||||
|
||||
player->BankItem(dest, pNewItem, true);
|
||||
return;
|
||||
@@ -2293,7 +2294,7 @@ void Spell::EffectSummonChangeItem(SpellEffIndex effIndex)
|
||||
m_targets.SetItemTarget(nullptr);
|
||||
|
||||
m_CastItem = nullptr;
|
||||
m_castItemGUID = 0;
|
||||
m_castItemGUID.Clear();
|
||||
|
||||
player->EquipItem(dest, pNewItem, true);
|
||||
player->AutoUnequipOffhandIfNeed();
|
||||
@@ -2555,11 +2556,12 @@ void Spell::EffectLearnSpell(SpellEffIndex effIndex)
|
||||
player->learnSpell(spellToLearn);
|
||||
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
LOG_DEBUG("spells.aura", "Spell: Player %u has learned spell %u from NpcGUID=%u", player->GetGUIDLow(), spellToLearn, m_caster->GetGUIDLow());
|
||||
LOG_DEBUG("spells.aura", "Spell: Player %s has learned spell %u from Npc %s",
|
||||
player->GetGUID().ToString().c_str(), spellToLearn, m_caster->GetGUID().ToString().c_str());
|
||||
#endif
|
||||
}
|
||||
|
||||
typedef std::list< std::pair<uint32, uint64> > DispelList;
|
||||
typedef std::list<std::pair<uint32, ObjectGuid>> DispelList;
|
||||
void Spell::EffectDispel(SpellEffIndex effIndex)
|
||||
{
|
||||
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
|
||||
@@ -2619,12 +2621,12 @@ void Spell::EffectDispel(SpellEffIndex effIndex)
|
||||
if (!failCount)
|
||||
{
|
||||
// Failed to dispell
|
||||
dataFail << uint64(m_caster->GetGUID()); // Caster GUID
|
||||
dataFail << uint64(unitTarget->GetGUID()); // Victim GUID
|
||||
dataFail << m_caster->GetGUID(); // Caster GUID
|
||||
dataFail << unitTarget->GetGUID(); // Victim GUID
|
||||
dataFail << uint32(m_spellInfo->Id); // dispel spell id
|
||||
}
|
||||
++failCount;
|
||||
dataFail << uint32(itr->first->GetId()); // Spell Id
|
||||
dataFail << uint32(itr->first->GetId()); // Spell Id
|
||||
}
|
||||
++count;
|
||||
}
|
||||
@@ -2642,8 +2644,8 @@ void Spell::EffectDispel(SpellEffIndex effIndex)
|
||||
|
||||
WorldPacket dataSuccess(SMSG_SPELLDISPELLOG, 8 + 8 + 4 + 1 + 4 + success_list.size() * 5);
|
||||
// Send packet header
|
||||
dataSuccess.append(unitTarget->GetPackGUID()); // Victim GUID
|
||||
dataSuccess.append(m_caster->GetPackGUID()); // Caster GUID
|
||||
dataSuccess << unitTarget->GetPackGUID(); // Victim GUID
|
||||
dataSuccess << m_caster->GetPackGUID(); // Caster GUID
|
||||
dataSuccess << uint32(m_spellInfo->Id); // dispel spell id
|
||||
dataSuccess << uint8(0); // not used
|
||||
dataSuccess << uint32(success_list.size()); // count
|
||||
@@ -2735,7 +2737,7 @@ void Spell::EffectAddFarsight(SpellEffIndex effIndex)
|
||||
return;
|
||||
|
||||
DynamicObject* dynObj = new DynamicObject(true);
|
||||
if (!dynObj->CreateDynamicObject(sObjectMgr->GenerateLowGuid(HIGHGUID_DYNAMICOBJECT), m_caster, m_spellInfo->Id, *destTarget, radius, DYNAMIC_OBJECT_FARSIGHT_FOCUS))
|
||||
if (!dynObj->CreateDynamicObject(m_caster->GetMap()->GenerateLowGuid<HighGuid::DynamicObject>(), m_caster, m_spellInfo->Id, *destTarget, radius, DYNAMIC_OBJECT_FARSIGHT_FOCUS))
|
||||
{
|
||||
delete dynObj;
|
||||
return;
|
||||
@@ -2753,7 +2755,7 @@ void Spell::EffectUntrainTalents(SpellEffIndex /*effIndex*/)
|
||||
if (!unitTarget || m_caster->GetTypeId() == TYPEID_PLAYER)
|
||||
return;
|
||||
|
||||
if (uint64 guid = m_caster->GetGUID()) // the trainer is the caster
|
||||
if (ObjectGuid guid = m_caster->GetGUID()) // the trainer is the caster
|
||||
unitTarget->ToPlayer()->SendTalentWipeConfirm(guid);
|
||||
}
|
||||
|
||||
@@ -2800,7 +2802,8 @@ void Spell::EffectAddHonor(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
unitTarget->ToPlayer()->RewardHonor(nullptr, 1, damage / 10, false);
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
LOG_DEBUG("spells.aura", "SpellEffect::AddHonor (spell_id %u) rewards %d honor points (item %u) for player: %u", m_spellInfo->Id, damage / 10, m_CastItem->GetEntry(), unitTarget->ToPlayer()->GetGUIDLow());
|
||||
LOG_DEBUG("spells.aura", "SpellEffect::AddHonor (spell_id %u) rewards %d honor points (item %u) for player: %s",
|
||||
m_spellInfo->Id, damage / 10, m_CastItem->GetEntry(), unitTarget->ToPlayer()->GetGUID().ToString().c_str());
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
@@ -2811,7 +2814,8 @@ void Spell::EffectAddHonor(SpellEffIndex /*effIndex*/)
|
||||
uint32 honor_reward = acore::Honor::hk_honor_at_level(unitTarget->getLevel(), float(damage));
|
||||
unitTarget->ToPlayer()->RewardHonor(nullptr, 1, honor_reward, false);
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
LOG_DEBUG("spells.aura", "SpellEffect::AddHonor (spell_id %u) rewards %u honor points (scale) to player: %u", m_spellInfo->Id, honor_reward, unitTarget->ToPlayer()->GetGUIDLow());
|
||||
LOG_DEBUG("spells.aura", "SpellEffect::AddHonor (spell_id %u) rewards %u honor points (scale) to player: %s",
|
||||
m_spellInfo->Id, honor_reward, unitTarget->ToPlayer()->GetGUID().ToString().c_str());
|
||||
#endif
|
||||
}
|
||||
else
|
||||
@@ -2819,7 +2823,8 @@ void Spell::EffectAddHonor(SpellEffIndex /*effIndex*/)
|
||||
//maybe we have correct honor_gain in damage already
|
||||
unitTarget->ToPlayer()->RewardHonor(nullptr, 1, damage, false);
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
LOG_DEBUG("spells.aura", "SpellEffect::AddHonor (spell_id %u) rewards %u honor points (non scale) for player: %u", m_spellInfo->Id, damage, unitTarget->ToPlayer()->GetGUIDLow());
|
||||
LOG_DEBUG("spells.aura", "SpellEffect::AddHonor (spell_id %u) rewards %u honor points (non scale) for player: %s",
|
||||
m_spellInfo->Id, damage, unitTarget->ToPlayer()->GetGUID().ToString().c_str());
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -3739,7 +3744,7 @@ void Spell::EffectSummonObjectWild(SpellEffIndex effIndex)
|
||||
|
||||
Map* map = target->GetMap();
|
||||
|
||||
if (!pGameObj->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT), gameobject_id, map, m_caster->GetPhaseMask(), x, y, z, target->GetOrientation(), G3D::Quat(), 100, GO_STATE_READY))
|
||||
if (!pGameObj->Create(map->GenerateLowGuid<HighGuid::GameObject>(), gameobject_id, map, m_caster->GetPhaseMask(), x, y, z, target->GetOrientation(), G3D::Quat(), 100, GO_STATE_READY))
|
||||
{
|
||||
delete pGameObj;
|
||||
return;
|
||||
@@ -3763,7 +3768,7 @@ void Spell::EffectSummonObjectWild(SpellEffIndex effIndex)
|
||||
if (uint32 linkedEntry = pGameObj->GetGOInfo()->GetLinkedGameObjectEntry())
|
||||
{
|
||||
GameObject* linkedGO = sObjectMgr->IsGameObjectStaticTransport(linkedEntry) ? new StaticTransport() : new GameObject();
|
||||
if (linkedGO->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT), linkedEntry, map, m_caster->GetPhaseMask(), x, y, z, target->GetOrientation(), G3D::Quat(), 100, GO_STATE_READY))
|
||||
if (linkedGO->Create(map->GenerateLowGuid<HighGuid::GameObject>(), linkedEntry, map, m_caster->GetPhaseMask(), x, y, z, target->GetOrientation(), G3D::Quat(), 100, GO_STATE_READY))
|
||||
{
|
||||
linkedGO->SetRespawnTime(duration > 0 ? duration / IN_MILLISECONDS : 0);
|
||||
linkedGO->SetSpellId(m_spellInfo->Id);
|
||||
@@ -4348,7 +4353,7 @@ void Spell::EffectDuel(SpellEffIndex effIndex)
|
||||
Player* target = unitTarget->ToPlayer();
|
||||
|
||||
// caster or target already have requested duel
|
||||
if (caster->duel || target->duel || !target->GetSocial() || target->GetSocial()->HasIgnore(caster->GetGUIDLow()))
|
||||
if (caster->duel || target->duel || !target->GetSocial() || target->GetSocial()->HasIgnore(caster->GetGUID()))
|
||||
return;
|
||||
|
||||
// Players can only fight a duel in zones with this flag
|
||||
@@ -4371,7 +4376,7 @@ void Spell::EffectDuel(SpellEffIndex effIndex)
|
||||
GameObject* pGameObj = sObjectMgr->IsGameObjectStaticTransport(gameobject_id) ? new StaticTransport() : new GameObject();
|
||||
|
||||
Map* map = m_caster->GetMap();
|
||||
if (!pGameObj->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT), gameobject_id,
|
||||
if (!pGameObj->Create(map->GenerateLowGuid<HighGuid::GameObject>(), gameobject_id,
|
||||
map, m_caster->GetPhaseMask(),
|
||||
m_caster->GetPositionX() + (unitTarget->GetPositionX() - m_caster->GetPositionX()) / 2,
|
||||
m_caster->GetPositionY() + (unitTarget->GetPositionY() - m_caster->GetPositionY()) / 2,
|
||||
@@ -4396,8 +4401,8 @@ void Spell::EffectDuel(SpellEffIndex effIndex)
|
||||
|
||||
// Send request
|
||||
WorldPacket data(SMSG_DUEL_REQUESTED, 8 + 8);
|
||||
data << uint64(pGameObj->GetGUID());
|
||||
data << uint64(caster->GetGUID());
|
||||
data << pGameObj->GetGUID();
|
||||
data << caster->GetGUID();
|
||||
caster->GetSession()->SendPacket(&data);
|
||||
target->GetSession()->SendPacket(&data);
|
||||
|
||||
@@ -4418,8 +4423,8 @@ void Spell::EffectDuel(SpellEffIndex effIndex)
|
||||
duel2->isMounted = (GetSpellInfo()->Id == 62875); // Mounted Duel
|
||||
target->duel = duel2;
|
||||
|
||||
caster->SetUInt64Value(PLAYER_DUEL_ARBITER, pGameObj->GetGUID());
|
||||
target->SetUInt64Value(PLAYER_DUEL_ARBITER, pGameObj->GetGUID());
|
||||
caster->SetGuidValue(PLAYER_DUEL_ARBITER, pGameObj->GetGUID());
|
||||
target->SetGuidValue(PLAYER_DUEL_ARBITER, pGameObj->GetGUID());
|
||||
|
||||
sScriptMgr->OnPlayerDuelRequest(target, caster);
|
||||
}
|
||||
@@ -4484,9 +4489,9 @@ void Spell::EffectSummonPlayer(SpellEffIndex /*effIndex*/)
|
||||
unitTarget->ToPlayer()->SetSummonPoint(m_caster->GetMapId(), x, y, z);
|
||||
|
||||
WorldPacket data(SMSG_SUMMON_REQUEST, 8 + 4 + 4);
|
||||
data << uint64(m_caster->GetGUID()); // summoner guid
|
||||
data << uint32(m_caster->GetZoneId()); // summoner zone
|
||||
data << uint32(MAX_PLAYER_SUMMON_DELAY * IN_MILLISECONDS); // auto decline after msecs
|
||||
data << m_caster->GetGUID(); // summoner guid
|
||||
data << uint32(m_caster->GetZoneId()); // summoner zone
|
||||
data << uint32(MAX_PLAYER_SUMMON_DELAY * IN_MILLISECONDS); // auto decline after msecs
|
||||
unitTarget->ToPlayer()->GetSession()->SendPacket(&data);
|
||||
}
|
||||
|
||||
@@ -4738,8 +4743,8 @@ void Spell::EffectSummonObject(SpellEffIndex effIndex)
|
||||
|
||||
if (m_caster)
|
||||
{
|
||||
uint64 guid = m_caster->m_ObjectSlot[slot];
|
||||
if (guid != 0)
|
||||
ObjectGuid guid = m_caster->m_ObjectSlot[slot];
|
||||
if (guid)
|
||||
{
|
||||
if (GameObject* gameObject = m_caster->GetMap()->GetGameObject(guid))
|
||||
{
|
||||
@@ -4748,7 +4753,7 @@ void Spell::EffectSummonObject(SpellEffIndex effIndex)
|
||||
gameObject->SetSpellId(0);
|
||||
m_caster->RemoveGameObject(gameObject, true);
|
||||
}
|
||||
m_caster->m_ObjectSlot[slot] = 0;
|
||||
m_caster->m_ObjectSlot[slot].Clear();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4763,7 +4768,7 @@ void Spell::EffectSummonObject(SpellEffIndex effIndex)
|
||||
m_caster->GetClosePoint(x, y, z, DEFAULT_WORLD_OBJECT_SIZE);
|
||||
|
||||
Map* map = m_caster->GetMap();
|
||||
if (!pGameObj->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT), gameobjectId, map, m_caster->GetPhaseMask(), x, y, z, m_caster->GetOrientation(), G3D::Quat(), 0, GO_STATE_READY))
|
||||
if (!pGameObj->Create(map->GenerateLowGuid<HighGuid::GameObject>(), gameobjectId, map, m_caster->GetPhaseMask(), x, y, z, m_caster->GetOrientation(), G3D::Quat(), 0, GO_STATE_READY))
|
||||
{
|
||||
delete pGameObj;
|
||||
return;
|
||||
@@ -4913,7 +4918,7 @@ void Spell::EffectForceDeselect(SpellEffIndex /*effIndex*/)
|
||||
m_caster->SendClearTarget();
|
||||
|
||||
WorldPacket data(SMSG_CLEAR_TARGET, 8);
|
||||
data << uint64(m_caster->GetGUID());
|
||||
data << m_caster->GetGUID();
|
||||
|
||||
float dist = m_caster->GetVisibilityRange() + VISIBILITY_COMPENSATION;
|
||||
acore::MessageDistDelivererToHostile notifier(m_caster, &data, dist);
|
||||
@@ -5269,7 +5274,7 @@ void Spell::EffectDispelMechanic(SpellEffIndex effIndex)
|
||||
|
||||
uint32 mechanic = m_spellInfo->Effects[effIndex].MiscValue;
|
||||
|
||||
std::queue < std::pair < uint32, uint64 > > dispel_list;
|
||||
std::queue<std::pair<uint32, ObjectGuid>> dispel_list;
|
||||
|
||||
Unit::AuraMap const& auras = unitTarget->GetOwnedAuras();
|
||||
for (Unit::AuraMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
|
||||
@@ -5312,7 +5317,7 @@ void Spell::EffectResurrectPet(SpellEffIndex /*effIndex*/)
|
||||
player->GetPosition(x, y, z);
|
||||
if (!pet)
|
||||
{
|
||||
player->SummonPet(0, x, y, z, player->GetOrientation(), SUMMON_PET, 0, 0, (uint64)damage, PET_LOAD_SUMMON_DEAD_PET);
|
||||
player->SummonPet(0, x, y, z, player->GetOrientation(), SUMMON_PET, 0, 0, ObjectGuid((uint64)damage), PET_LOAD_SUMMON_DEAD_PET);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -5482,7 +5487,7 @@ void Spell::EffectTransmitted(SpellEffIndex effIndex)
|
||||
|
||||
GameObject* pGameObj = sObjectMgr->IsGameObjectStaticTransport(name_id) ? new StaticTransport() : new GameObject();
|
||||
|
||||
if (!pGameObj->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT), name_id, cMap, m_caster->GetPhaseMask(), fx, fy, fz, m_caster->GetOrientation(), G3D::Quat(), 100, GO_STATE_READY))
|
||||
if (!pGameObj->Create(cMap->GenerateLowGuid<HighGuid::GameObject>(), name_id, cMap, m_caster->GetPhaseMask(), fx, fy, fz, m_caster->GetOrientation(), G3D::Quat(), 100, GO_STATE_READY))
|
||||
{
|
||||
delete pGameObj;
|
||||
return;
|
||||
@@ -5494,7 +5499,7 @@ void Spell::EffectTransmitted(SpellEffIndex effIndex)
|
||||
{
|
||||
case GAMEOBJECT_TYPE_FISHINGNODE:
|
||||
{
|
||||
m_caster->SetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT, pGameObj->GetGUID());
|
||||
m_caster->SetGuidValue(UNIT_FIELD_CHANNEL_OBJECT, pGameObj->GetGUID());
|
||||
m_caster->AddGameObject(pGameObj); // will removed at spell cancel
|
||||
|
||||
// end time of range when possible catch fish (FISHING_BOBBER_READY_TIME..GetDuration(m_spellInfo))
|
||||
@@ -5556,7 +5561,7 @@ void Spell::EffectTransmitted(SpellEffIndex effIndex)
|
||||
if (uint32 linkedEntry = pGameObj->GetGOInfo()->GetLinkedGameObjectEntry())
|
||||
{
|
||||
GameObject* linkedGO = sObjectMgr->IsGameObjectStaticTransport(linkedEntry) ? new StaticTransport() : new GameObject();
|
||||
if (linkedGO->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT), linkedEntry, cMap, m_caster->GetPhaseMask(), fx, fy, fz, m_caster->GetOrientation(), G3D::Quat(), 100, GO_STATE_READY))
|
||||
if (linkedGO->Create(cMap->GenerateLowGuid<HighGuid::GameObject>(), linkedEntry, cMap, m_caster->GetPhaseMask(), fx, fy, fz, m_caster->GetOrientation(), G3D::Quat(), 100, GO_STATE_READY))
|
||||
{
|
||||
linkedGO->SetRespawnTime(duration > 0 ? duration / IN_MILLISECONDS : 0);
|
||||
linkedGO->SetSpellId(m_spellInfo->Id);
|
||||
@@ -5748,12 +5753,12 @@ void Spell::EffectStealBeneficialBuff(SpellEffIndex effIndex)
|
||||
if (!failCount)
|
||||
{
|
||||
// Failed to dispell
|
||||
dataFail << uint64(m_caster->GetGUID()); // Caster GUID
|
||||
dataFail << uint64(unitTarget->GetGUID()); // Victim GUID
|
||||
dataFail << m_caster->GetGUID(); // Caster GUID
|
||||
dataFail << unitTarget->GetGUID(); // Victim GUID
|
||||
dataFail << uint32(m_spellInfo->Id); // dispel spell id
|
||||
}
|
||||
++failCount;
|
||||
dataFail << uint32(itr->first->GetId()); // Spell Id
|
||||
dataFail << uint32(itr->first->GetId()); // Spell Id
|
||||
}
|
||||
++count;
|
||||
}
|
||||
@@ -5766,8 +5771,8 @@ void Spell::EffectStealBeneficialBuff(SpellEffIndex effIndex)
|
||||
return;
|
||||
|
||||
WorldPacket dataSuccess(SMSG_SPELLSTEALLOG, 8 + 8 + 4 + 1 + 4 + damage * 5);
|
||||
dataSuccess.append(unitTarget->GetPackGUID()); // Victim GUID
|
||||
dataSuccess.append(m_caster->GetPackGUID()); // Caster GUID
|
||||
dataSuccess << unitTarget->GetPackGUID(); // Victim GUID
|
||||
dataSuccess << m_caster->GetPackGUID(); // Caster GUID
|
||||
dataSuccess << uint32(m_spellInfo->Id); // dispel spell id
|
||||
dataSuccess << uint8(0); // not used
|
||||
dataSuccess << uint32(success_list.size()); // count
|
||||
@@ -5788,7 +5793,7 @@ void Spell::EffectKillCreditPersonal(SpellEffIndex effIndex)
|
||||
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
|
||||
return;
|
||||
|
||||
unitTarget->ToPlayer()->KilledMonsterCredit(m_spellInfo->Effects[effIndex].MiscValue, 0);
|
||||
unitTarget->ToPlayer()->KilledMonsterCredit(m_spellInfo->Effects[effIndex].MiscValue);
|
||||
}
|
||||
|
||||
void Spell::EffectKillCredit(SpellEffIndex effIndex)
|
||||
@@ -6344,7 +6349,7 @@ void Spell::EffectBind(SpellEffIndex effIndex)
|
||||
#endif
|
||||
// zone update
|
||||
data.Initialize(SMSG_PLAYERBOUND, 8 + 4);
|
||||
data << uint64(m_caster->GetGUID());
|
||||
data << m_caster->GetGUID();
|
||||
data << uint32(areaId);
|
||||
player->SendDirectMessage(&data);
|
||||
}
|
||||
@@ -6361,7 +6366,7 @@ void Spell::EffectSummonRaFFriend(SpellEffIndex /*effIndex*/)
|
||||
m_caster->GetPosition(x, y, z);
|
||||
unitTarget->ToPlayer()->SetSummonPoint(m_caster->GetMapId(), x, y, z);
|
||||
WorldPacket data(SMSG_SUMMON_REQUEST, 8 + 4 + 4);
|
||||
data << uint64(m_caster->GetGUID());
|
||||
data << m_caster->GetGUID();
|
||||
data << uint32(m_caster->GetZoneId());
|
||||
data << uint32(MAX_PLAYER_SUMMON_DELAY * IN_MILLISECONDS); // auto decline after msecs
|
||||
unitTarget->ToPlayer()->GetSession()->SendPacket(&data);
|
||||
|
||||
Reference in New Issue
Block a user