mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 04:37:00 +00:00
[8553] removed spiritguide from code
they basicaly should *autocast 22011 *give player after gossiphello buff 2584 *port players away to another spiritguides, when they die so this can be done by a script and maybe eventai
This commit is contained in:
parent
2da82a8c68
commit
1f9b4ca4c3
12 changed files with 25 additions and 153 deletions
|
|
@ -130,7 +130,6 @@ BattleGround::BattleGround()
|
||||||
m_Status = STATUS_NONE;
|
m_Status = STATUS_NONE;
|
||||||
m_ClientInstanceID = 0;
|
m_ClientInstanceID = 0;
|
||||||
m_EndTime = 0;
|
m_EndTime = 0;
|
||||||
m_LastResurrectTime = 0;
|
|
||||||
m_QueueId = QUEUE_ID_MAX_LEVEL_19;
|
m_QueueId = QUEUE_ID_MAX_LEVEL_19;
|
||||||
m_InvitedAlliance = 0;
|
m_InvitedAlliance = 0;
|
||||||
m_InvitedHorde = 0;
|
m_InvitedHorde = 0;
|
||||||
|
|
@ -260,62 +259,6 @@ void BattleGround::Update(uint32 diff)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*********************************************************/
|
|
||||||
/*** BATTLEGROUND RESSURECTION SYSTEM ***/
|
|
||||||
/*********************************************************/
|
|
||||||
|
|
||||||
//this should be handled by spell system
|
|
||||||
m_LastResurrectTime += diff;
|
|
||||||
if (m_LastResurrectTime >= RESURRECTION_INTERVAL)
|
|
||||||
{
|
|
||||||
if (GetReviveQueueSize())
|
|
||||||
{
|
|
||||||
for(std::map<uint64, std::vector<uint64> >::iterator itr = m_ReviveQueue.begin(); itr != m_ReviveQueue.end(); ++itr)
|
|
||||||
{
|
|
||||||
Creature *sh = NULL;
|
|
||||||
for(std::vector<uint64>::const_iterator itr2 = (itr->second).begin(); itr2 != (itr->second).end(); ++itr2)
|
|
||||||
{
|
|
||||||
Player *plr = objmgr.GetPlayer(*itr2);
|
|
||||||
if (!plr)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!sh && plr->IsInWorld())
|
|
||||||
{
|
|
||||||
sh = plr->GetMap()->GetCreature(itr->first);
|
|
||||||
// only for visual effect
|
|
||||||
if (sh)
|
|
||||||
// Spirit Heal, effect 117
|
|
||||||
sh->CastSpell(sh, SPELL_SPIRIT_HEAL, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resurrection visual
|
|
||||||
plr->CastSpell(plr, SPELL_RESURRECTION_VISUAL, true);
|
|
||||||
m_ResurrectQueue.push_back(*itr2);
|
|
||||||
}
|
|
||||||
(itr->second).clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_ReviveQueue.clear();
|
|
||||||
m_LastResurrectTime = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
// queue is clear and time passed, just update last resurrection time
|
|
||||||
m_LastResurrectTime = 0;
|
|
||||||
}
|
|
||||||
else if (m_LastResurrectTime > 500) // Resurrect players only half a second later, to see spirit heal effect on NPC
|
|
||||||
{
|
|
||||||
for(std::vector<uint64>::const_iterator itr = m_ResurrectQueue.begin(); itr != m_ResurrectQueue.end(); ++itr)
|
|
||||||
{
|
|
||||||
Player *plr = objmgr.GetPlayer(*itr);
|
|
||||||
if (!plr)
|
|
||||||
continue;
|
|
||||||
plr->ResurrectPlayer(1.0f);
|
|
||||||
plr->CastSpell(plr, SPELL_SPIRIT_HEAL_MANA, true);
|
|
||||||
ObjectAccessor::Instance().ConvertCorpseForPlayer(*itr);
|
|
||||||
}
|
|
||||||
m_ResurrectQueue.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*********************************************************/
|
/*********************************************************/
|
||||||
/*** BATTLEGROUND BALLANCE SYSTEM ***/
|
/*** BATTLEGROUND BALLANCE SYSTEM ***/
|
||||||
/*********************************************************/
|
/*********************************************************/
|
||||||
|
|
@ -972,8 +915,6 @@ void BattleGround::RemovePlayerAtLeave(uint64 guid, bool Transport, bool SendPac
|
||||||
m_PlayerScores.erase(itr2);
|
m_PlayerScores.erase(itr2);
|
||||||
}
|
}
|
||||||
|
|
||||||
RemovePlayerFromResurrectQueue(guid);
|
|
||||||
|
|
||||||
Player *plr = objmgr.GetPlayer(guid);
|
Player *plr = objmgr.GetPlayer(guid);
|
||||||
|
|
||||||
// should remove spirit of redemption
|
// should remove spirit of redemption
|
||||||
|
|
@ -1088,7 +1029,6 @@ void BattleGround::Reset()
|
||||||
SetStatus(STATUS_WAIT_QUEUE);
|
SetStatus(STATUS_WAIT_QUEUE);
|
||||||
SetStartTime(0);
|
SetStartTime(0);
|
||||||
SetEndTime(0);
|
SetEndTime(0);
|
||||||
SetLastResurrectTime(0);
|
|
||||||
SetArenaType(0);
|
SetArenaType(0);
|
||||||
SetRated(false);
|
SetRated(false);
|
||||||
|
|
||||||
|
|
@ -1119,7 +1059,6 @@ void BattleGround::Reset()
|
||||||
void BattleGround::StartBattleGround()
|
void BattleGround::StartBattleGround()
|
||||||
{
|
{
|
||||||
SetStartTime(0);
|
SetStartTime(0);
|
||||||
SetLastResurrectTime(0);
|
|
||||||
|
|
||||||
// add BG to free slot queue
|
// add BG to free slot queue
|
||||||
AddToBGFreeSlotQueue();
|
AddToBGFreeSlotQueue();
|
||||||
|
|
@ -1351,39 +1290,6 @@ void BattleGround::UpdatePlayerScore(Player *Source, uint32 type, uint32 value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGround::AddPlayerToResurrectQueue(uint64 npc_guid, uint64 player_guid)
|
|
||||||
{
|
|
||||||
m_ReviveQueue[npc_guid].push_back(player_guid);
|
|
||||||
|
|
||||||
Player *plr = objmgr.GetPlayer(player_guid);
|
|
||||||
if (!plr)
|
|
||||||
return;
|
|
||||||
|
|
||||||
plr->CastSpell(plr, SPELL_WAITING_FOR_RESURRECT, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
void BattleGround::RemovePlayerFromResurrectQueue(uint64 player_guid)
|
|
||||||
{
|
|
||||||
for(std::map<uint64, std::vector<uint64> >::iterator itr = m_ReviveQueue.begin(); itr != m_ReviveQueue.end(); ++itr)
|
|
||||||
{
|
|
||||||
for(std::vector<uint64>::iterator itr2 =(itr->second).begin(); itr2 != (itr->second).end(); ++itr2)
|
|
||||||
{
|
|
||||||
if (*itr2 == player_guid)
|
|
||||||
{
|
|
||||||
(itr->second).erase(itr2);
|
|
||||||
|
|
||||||
Player *plr = objmgr.GetPlayer(player_guid);
|
|
||||||
if (!plr)
|
|
||||||
return;
|
|
||||||
|
|
||||||
plr->RemoveAurasDueToSpell(SPELL_WAITING_FOR_RESURRECT);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool BattleGround::AddObject(uint32 type, uint32 entry, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime)
|
bool BattleGround::AddObject(uint32 type, uint32 entry, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime)
|
||||||
{
|
{
|
||||||
Map * map = MapManager::Instance().FindMap(GetMapId(),GetInstanceID());
|
Map * map = MapManager::Instance().FindMap(GetMapId(),GetInstanceID());
|
||||||
|
|
|
||||||
|
|
@ -83,16 +83,12 @@ enum BattleGroundMarksCount
|
||||||
enum BattleGroundSpells
|
enum BattleGroundSpells
|
||||||
{
|
{
|
||||||
SPELL_WAITING_FOR_RESURRECT = 2584, // Waiting to Resurrect
|
SPELL_WAITING_FOR_RESURRECT = 2584, // Waiting to Resurrect
|
||||||
SPELL_SPIRIT_HEAL_CHANNEL = 22011, // Spirit Heal Channel
|
|
||||||
SPELL_SPIRIT_HEAL = 22012, // Spirit Heal
|
|
||||||
SPELL_RESURRECTION_VISUAL = 24171, // Resurrection Impact Visual
|
|
||||||
SPELL_ARENA_PREPARATION = 32727, // use this one, 32728 not correct
|
SPELL_ARENA_PREPARATION = 32727, // use this one, 32728 not correct
|
||||||
SPELL_ALLIANCE_GOLD_FLAG = 32724,
|
SPELL_ALLIANCE_GOLD_FLAG = 32724,
|
||||||
SPELL_ALLIANCE_GREEN_FLAG = 32725,
|
SPELL_ALLIANCE_GREEN_FLAG = 32725,
|
||||||
SPELL_HORDE_GOLD_FLAG = 35774,
|
SPELL_HORDE_GOLD_FLAG = 35774,
|
||||||
SPELL_HORDE_GREEN_FLAG = 35775,
|
SPELL_HORDE_GREEN_FLAG = 35775,
|
||||||
SPELL_PREPARATION = 44521, // Preparation
|
SPELL_PREPARATION = 44521, // Preparation
|
||||||
SPELL_SPIRIT_HEAL_MANA = 44535, // Spirit Heal
|
|
||||||
SPELL_RECENTLY_DROPPED_FLAG = 42792, // Recently Dropped Flag
|
SPELL_RECENTLY_DROPPED_FLAG = 42792, // Recently Dropped Flag
|
||||||
SPELL_AURA_PLAYER_INACTIVE = 43681 // Inactive
|
SPELL_AURA_PLAYER_INACTIVE = 43681 // Inactive
|
||||||
};
|
};
|
||||||
|
|
@ -321,7 +317,6 @@ class BattleGround
|
||||||
uint32 GetClientInstanceID() const { return m_ClientInstanceID; }
|
uint32 GetClientInstanceID() const { return m_ClientInstanceID; }
|
||||||
uint32 GetStartTime() const { return m_StartTime; }
|
uint32 GetStartTime() const { return m_StartTime; }
|
||||||
uint32 GetEndTime() const { return m_EndTime; }
|
uint32 GetEndTime() const { return m_EndTime; }
|
||||||
uint32 GetLastResurrectTime() const { return m_LastResurrectTime; }
|
|
||||||
uint32 GetMaxPlayers() const { return m_MaxPlayers; }
|
uint32 GetMaxPlayers() const { return m_MaxPlayers; }
|
||||||
uint32 GetMinPlayers() const { return m_MinPlayers; }
|
uint32 GetMinPlayers() const { return m_MinPlayers; }
|
||||||
|
|
||||||
|
|
@ -352,7 +347,6 @@ class BattleGround
|
||||||
void SetClientInstanceID(uint32 InstanceID) { m_ClientInstanceID = InstanceID; }
|
void SetClientInstanceID(uint32 InstanceID) { m_ClientInstanceID = InstanceID; }
|
||||||
void SetStartTime(uint32 Time) { m_StartTime = Time; }
|
void SetStartTime(uint32 Time) { m_StartTime = Time; }
|
||||||
void SetEndTime(uint32 Time) { m_EndTime = Time; }
|
void SetEndTime(uint32 Time) { m_EndTime = Time; }
|
||||||
void SetLastResurrectTime(uint32 Time) { m_LastResurrectTime = Time; }
|
|
||||||
void SetMaxPlayers(uint32 MaxPlayers) { m_MaxPlayers = MaxPlayers; }
|
void SetMaxPlayers(uint32 MaxPlayers) { m_MaxPlayers = MaxPlayers; }
|
||||||
void SetMinPlayers(uint32 MinPlayers) { m_MinPlayers = MinPlayers; }
|
void SetMinPlayers(uint32 MinPlayers) { m_MinPlayers = MinPlayers; }
|
||||||
void SetLevelRange(uint32 min, uint32 max) { m_LevelMin = min; m_LevelMax = max; }
|
void SetLevelRange(uint32 min, uint32 max) { m_LevelMin = min; m_LevelMax = max; }
|
||||||
|
|
@ -395,11 +389,6 @@ class BattleGround
|
||||||
BattleGroundScoreMap::const_iterator GetPlayerScoresEnd() const { return m_PlayerScores.end(); }
|
BattleGroundScoreMap::const_iterator GetPlayerScoresEnd() const { return m_PlayerScores.end(); }
|
||||||
uint32 GetPlayerScoresSize() const { return m_PlayerScores.size(); }
|
uint32 GetPlayerScoresSize() const { return m_PlayerScores.size(); }
|
||||||
|
|
||||||
uint32 GetReviveQueueSize() const { return m_ReviveQueue.size(); }
|
|
||||||
|
|
||||||
void AddPlayerToResurrectQueue(uint64 npc_guid, uint64 player_guid);
|
|
||||||
void RemovePlayerFromResurrectQueue(uint64 player_guid);
|
|
||||||
|
|
||||||
void StartBattleGround();
|
void StartBattleGround();
|
||||||
|
|
||||||
/* Location */
|
/* Location */
|
||||||
|
|
@ -567,8 +556,6 @@ class BattleGround
|
||||||
|
|
||||||
/* Player lists, those need to be accessible by inherited classes */
|
/* Player lists, those need to be accessible by inherited classes */
|
||||||
BattleGroundPlayerMap m_Players;
|
BattleGroundPlayerMap m_Players;
|
||||||
// Spirit Guide guid + Player list GUIDS
|
|
||||||
std::map<uint64, std::vector<uint64> > m_ReviveQueue;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
these are important variables used for starting messages
|
these are important variables used for starting messages
|
||||||
|
|
@ -589,7 +576,6 @@ class BattleGround
|
||||||
uint32 m_StartTime;
|
uint32 m_StartTime;
|
||||||
bool m_ArenaBuffSpawned; // to cache if arenabuff event is started (cause bool is faster than checking IsActiveEvent)
|
bool m_ArenaBuffSpawned; // to cache if arenabuff event is started (cause bool is faster than checking IsActiveEvent)
|
||||||
int32 m_EndTime; // it is set to 120000 when bg is ending and it decreases itself
|
int32 m_EndTime; // it is set to 120000 when bg is ending and it decreases itself
|
||||||
uint32 m_LastResurrectTime;
|
|
||||||
BGQueueIdBasedOnLevel m_QueueId;
|
BGQueueIdBasedOnLevel m_QueueId;
|
||||||
uint8 m_ArenaType; // 2=2v2, 3=3v3, 5=5v5
|
uint8 m_ArenaType; // 2=2v2, 3=3v3, 5=5v5
|
||||||
bool m_InBGFreeSlotQueue; // used to make sure that BG is only once inserted into the BattleGroundMgr.BGFreeSlotQueue[bgTypeId] deque
|
bool m_InBGFreeSlotQueue; // used to make sure that BG is only once inserted into the BattleGroundMgr.BGFreeSlotQueue[bgTypeId] deque
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@
|
||||||
#include "BattleGround.h"
|
#include "BattleGround.h"
|
||||||
#include "ArenaTeam.h"
|
#include "ArenaTeam.h"
|
||||||
#include "Language.h"
|
#include "Language.h"
|
||||||
|
#include "ScriptCalls.h"
|
||||||
|
|
||||||
void WorldSession::HandleBattlemasterHelloOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleBattlemasterHelloOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
|
|
@ -583,7 +584,7 @@ void WorldSession::HandleAreaSpiritHealerQueryOpcode( WorldPacket & recv_data )
|
||||||
if(!unit->isSpiritService()) // it's not spirit service
|
if(!unit->isSpiritService()) // it's not spirit service
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sBattleGroundMgr.SendAreaSpiritHealerQueryOpcode(_player, bg, guid);
|
unit->SendAreaSpiritHealerQueryOpcode(GetPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleAreaSpiritHealerQueueOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleAreaSpiritHealerQueueOpcode( WorldPacket & recv_data )
|
||||||
|
|
@ -604,7 +605,7 @@ void WorldSession::HandleAreaSpiritHealerQueueOpcode( WorldPacket & recv_data )
|
||||||
if(!unit->isSpiritService()) // it's not spirit service
|
if(!unit->isSpiritService()) // it's not spirit service
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bg->AddPlayerToResurrectQueue(guid, _player->GetGUID());
|
Script->GossipHello(GetPlayer(), unit);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleBattlemasterJoinArena( WorldPacket & recv_data )
|
void WorldSession::HandleBattlemasterJoinArena( WorldPacket & recv_data )
|
||||||
|
|
|
||||||
|
|
@ -1890,16 +1890,6 @@ void BattleGroundMgr::SendToBattleGround(Player *pl, uint32 instanceId, BattleGr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundMgr::SendAreaSpiritHealerQueryOpcode(Player *pl, BattleGround *bg, const uint64& guid)
|
|
||||||
{
|
|
||||||
WorldPacket data(SMSG_AREA_SPIRIT_HEALER_TIME, 12);
|
|
||||||
uint32 time_ = 30000 - bg->GetLastResurrectTime(); // resurrect every 30 seconds
|
|
||||||
if (time_ == uint32(-1))
|
|
||||||
time_ = 0;
|
|
||||||
data << guid << time_;
|
|
||||||
pl->GetSession()->SendPacket(&data);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool BattleGroundMgr::IsArenaType(BattleGroundTypeId bgTypeId)
|
bool BattleGroundMgr::IsArenaType(BattleGroundTypeId bgTypeId)
|
||||||
{
|
{
|
||||||
return ( bgTypeId == BATTLEGROUND_AA ||
|
return ( bgTypeId == BATTLEGROUND_AA ||
|
||||||
|
|
|
||||||
|
|
@ -193,7 +193,6 @@ class BattleGroundMgr
|
||||||
void BuildPvpLogDataPacket(WorldPacket *data, BattleGround *bg);
|
void BuildPvpLogDataPacket(WorldPacket *data, BattleGround *bg);
|
||||||
void BuildBattleGroundStatusPacket(WorldPacket *data, BattleGround *bg, uint8 QueueSlot, uint8 StatusID, uint32 Time1, uint32 Time2, uint8 arenatype);
|
void BuildBattleGroundStatusPacket(WorldPacket *data, BattleGround *bg, uint8 QueueSlot, uint8 StatusID, uint32 Time1, uint32 Time2, uint8 arenatype);
|
||||||
void BuildPlaySoundPacket(WorldPacket *data, uint32 soundid);
|
void BuildPlaySoundPacket(WorldPacket *data, uint32 soundid);
|
||||||
void SendAreaSpiritHealerQueryOpcode(Player *pl, BattleGround *bg, const uint64& guid);
|
|
||||||
|
|
||||||
/* Battlegrounds */
|
/* Battlegrounds */
|
||||||
BattleGround* GetBattleGroundThroughClientInstance(uint32 instanceId, BattleGroundTypeId bgTypeId);
|
BattleGround* GetBattleGroundThroughClientInstance(uint32 instanceId, BattleGroundTypeId bgTypeId);
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@
|
||||||
#include "WaypointMovementGenerator.h"
|
#include "WaypointMovementGenerator.h"
|
||||||
#include "InstanceData.h"
|
#include "InstanceData.h"
|
||||||
#include "BattleGroundMgr.h"
|
#include "BattleGroundMgr.h"
|
||||||
|
#include "Spell.h"
|
||||||
#include "Util.h"
|
#include "Util.h"
|
||||||
#include "GridNotifiers.h"
|
#include "GridNotifiers.h"
|
||||||
#include "GridNotifiersImpl.h"
|
#include "GridNotifiersImpl.h"
|
||||||
|
|
@ -2325,3 +2326,13 @@ void Creature::SendMonsterMoveWithSpeed(float x, float y, float z, uint32 transi
|
||||||
//float orientation = (float)atan2((double)dy, (double)dx);
|
//float orientation = (float)atan2((double)dy, (double)dx);
|
||||||
SendMonsterMove(x, y, z, 0, GetMonsterMoveFlags(), transitTime, player);
|
SendMonsterMove(x, y, z, 0, GetMonsterMoveFlags(), transitTime, player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Creature::SendAreaSpiritHealerQueryOpcode(Player *pl)
|
||||||
|
{
|
||||||
|
uint32 next_resurrect = 0;
|
||||||
|
if (Spell* pcurSpell = GetCurrentSpell(CURRENT_CHANNELED_SPELL))
|
||||||
|
next_resurrect = pcurSpell->GetCastedTime();
|
||||||
|
WorldPacket data(SMSG_AREA_SPIRIT_HEALER_TIME, 8 + 4);
|
||||||
|
data << GetGUID() << next_resurrect;
|
||||||
|
pl->SendDirectMessage(&data);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -684,6 +684,8 @@ class MANGOS_DLL_SPEC Creature : public Unit
|
||||||
bool isActiveObject() const { return m_isActiveObject || HasAuraType(SPELL_AURA_BIND_SIGHT) || HasAuraType(SPELL_AURA_FAR_SIGHT); }
|
bool isActiveObject() const { return m_isActiveObject || HasAuraType(SPELL_AURA_BIND_SIGHT) || HasAuraType(SPELL_AURA_FAR_SIGHT); }
|
||||||
void SetActiveObjectState(bool on);
|
void SetActiveObjectState(bool on);
|
||||||
|
|
||||||
|
void SendAreaSpiritHealerQueryOpcode(Player *pl);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool CreateFromProto(uint32 guidlow,uint32 Entry,uint32 team, const CreatureData *data = NULL);
|
bool CreateFromProto(uint32 guidlow,uint32 Entry,uint32 team, const CreatureData *data = NULL);
|
||||||
bool InitEntry(uint32 entry, uint32 team=ALLIANCE, const CreatureData* data=NULL);
|
bool InitEntry(uint32 entry, uint32 team=ALLIANCE, const CreatureData* data=NULL);
|
||||||
|
|
|
||||||
|
|
@ -32,8 +32,6 @@
|
||||||
#include "ObjectAccessor.h"
|
#include "ObjectAccessor.h"
|
||||||
#include "Creature.h"
|
#include "Creature.h"
|
||||||
#include "Pet.h"
|
#include "Pet.h"
|
||||||
#include "BattleGroundMgr.h"
|
|
||||||
#include "BattleGround.h"
|
|
||||||
#include "Guild.h"
|
#include "Guild.h"
|
||||||
|
|
||||||
void WorldSession::HandleTabardVendorActivateOpcode( WorldPacket & recv_data )
|
void WorldSession::HandleTabardVendorActivateOpcode( WorldPacket & recv_data )
|
||||||
|
|
@ -274,17 +272,8 @@ void WorldSession::HandleGossipHelloOpcode( WorldPacket & recv_data )
|
||||||
unit->StopMoving();
|
unit->StopMoving();
|
||||||
}
|
}
|
||||||
|
|
||||||
// If spiritguide, no need for gossip menu, just put player into resurrect queue
|
|
||||||
if (unit->isSpiritGuide())
|
if (unit->isSpiritGuide())
|
||||||
{
|
unit->SendAreaSpiritHealerQueryOpcode(_player);
|
||||||
BattleGround *bg = _player->GetBattleGround();
|
|
||||||
if(bg)
|
|
||||||
{
|
|
||||||
bg->AddPlayerToResurrectQueue(unit->GetGUID(), _player->GetGUID());
|
|
||||||
sBattleGroundMgr.SendAreaSpiritHealerQueryOpcode(_player, bg, unit->GetGUID());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!Script->GossipHello( _player, unit ))
|
if(!Script->GossipHello( _player, unit ))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -408,6 +408,7 @@ class Spell
|
||||||
SpellCastTargets m_targets;
|
SpellCastTargets m_targets;
|
||||||
|
|
||||||
int32 GetCastTime() const { return m_casttime; }
|
int32 GetCastTime() const { return m_casttime; }
|
||||||
|
uint32 GetCastedTime() { return m_timer; }
|
||||||
bool IsAutoRepeat() const { return m_autoRepeat; }
|
bool IsAutoRepeat() const { return m_autoRepeat; }
|
||||||
void SetAutoRepeat(bool rep) { m_autoRepeat = rep; }
|
void SetAutoRepeat(bool rep) { m_autoRepeat = rep; }
|
||||||
void ReSetTimer() { m_timer = m_casttime > 0 ? m_casttime : 0; }
|
void ReSetTimer() { m_timer = m_casttime > 0 ? m_casttime : 0; }
|
||||||
|
|
|
||||||
|
|
@ -2269,14 +2269,6 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
|
||||||
|
|
||||||
switch(GetId())
|
switch(GetId())
|
||||||
{
|
{
|
||||||
case 2584: // Waiting to Resurrect
|
|
||||||
{
|
|
||||||
// Waiting to resurrect spell cancel, we must remove player from resurrect queue
|
|
||||||
if(m_target->GetTypeId() == TYPEID_PLAYER)
|
|
||||||
if(BattleGround *bg = ((Player*)m_target)->GetBattleGround())
|
|
||||||
bg->RemovePlayerFromResurrectQueue(m_target->GetGUID());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
case 36730: // Flame Strike
|
case 36730: // Flame Strike
|
||||||
{
|
{
|
||||||
m_target->CastSpell(m_target, 36731, true, NULL, this);
|
m_target->CastSpell(m_target, 36731, true, NULL, this);
|
||||||
|
|
|
||||||
|
|
@ -6761,25 +6761,20 @@ void Spell::EffectSummonDemon(uint32 i)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* There is currently no need for this effect. We handle it in BattleGround.cpp
|
|
||||||
If we would handle the resurrection here, the spiritguide would instantly disappear as the
|
|
||||||
player revives, and so we wouldn't see the spirit heal visual effect on the npc.
|
|
||||||
This is why we use a half sec delay between the visual effect and the resurrection itself */
|
|
||||||
void Spell::EffectSpiritHeal(uint32 /*i*/)
|
void Spell::EffectSpiritHeal(uint32 /*i*/)
|
||||||
{
|
{
|
||||||
/*
|
// TODO player can't see the heal-animation - he should respawn some ticks later
|
||||||
if(!unitTarget || unitTarget->isAlive())
|
if (!unitTarget || unitTarget->isAlive())
|
||||||
return;
|
return;
|
||||||
if(unitTarget->GetTypeId() != TYPEID_PLAYER)
|
if (unitTarget->GetTypeId() != TYPEID_PLAYER)
|
||||||
return;
|
return;
|
||||||
if(!unitTarget->IsInWorld())
|
if (!unitTarget->IsInWorld())
|
||||||
|
return;
|
||||||
|
if (m_spellInfo->Id == 22012 && !unitTarget->HasAura(2584))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//m_spellInfo->EffectBasePoints[i]; == 99 (percent?)
|
|
||||||
//((Player*)unitTarget)->setResurrect(m_caster->GetGUID(), unitTarget->GetPositionX(), unitTarget->GetPositionY(), unitTarget->GetPositionZ(), unitTarget->GetMaxHealth(), unitTarget->GetMaxPower(POWER_MANA));
|
|
||||||
((Player*)unitTarget)->ResurrectPlayer(1.0f);
|
((Player*)unitTarget)->ResurrectPlayer(1.0f);
|
||||||
((Player*)unitTarget)->SpawnCorpseBones();
|
((Player*)unitTarget)->SpawnCorpseBones();
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove insignia spell effect
|
// remove insignia spell effect
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "8552"
|
#define REVISION_NR "8553"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue