mirror of
https://github.com/mangosfour/server.git
synced 2025-12-16 04:37:00 +00:00
spawnbgobject now accepts guids instead of bg_objects-index
this makes those functions independent from the bg_objects vector also dooropen and doorclose will now accept only guid additional i removed the comments around spawnbgcreatures-function also i updated this function, so that it'll work
This commit is contained in:
parent
bd87209498
commit
3cf92b8507
8 changed files with 118 additions and 124 deletions
|
|
@ -1413,9 +1413,9 @@ bool BattleGround::AddObject(uint32 type, uint32 entry, float x, float y, float
|
||||||
|
|
||||||
//some doors aren't despawned so we cannot handle their closing in gameobject::update()
|
//some doors aren't despawned so we cannot handle their closing in gameobject::update()
|
||||||
//it would be nice to correctly implement GO_ACTIVATED state and open/close doors in gameobject code
|
//it would be nice to correctly implement GO_ACTIVATED state and open/close doors in gameobject code
|
||||||
void BattleGround::DoorClose(uint32 type)
|
void BattleGround::DoorClose(uint64 const& guid)
|
||||||
{
|
{
|
||||||
GameObject *obj = HashMapHolder<GameObject>::Find(m_BgObjects[type]);
|
GameObject *obj = HashMapHolder<GameObject>::Find(guid);
|
||||||
if (obj)
|
if (obj)
|
||||||
{
|
{
|
||||||
//if doors are open, close it
|
//if doors are open, close it
|
||||||
|
|
@ -1432,9 +1432,9 @@ void BattleGround::DoorClose(uint32 type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGround::DoorOpen(uint32 type)
|
void BattleGround::DoorOpen(uint64 const& guid)
|
||||||
{
|
{
|
||||||
GameObject *obj = HashMapHolder<GameObject>::Find(m_BgObjects[type]);
|
GameObject *obj = HashMapHolder<GameObject>::Find(guid);
|
||||||
if (obj)
|
if (obj)
|
||||||
{
|
{
|
||||||
//change state to be sure they will be opened
|
//change state to be sure they will be opened
|
||||||
|
|
@ -1447,15 +1447,16 @@ void BattleGround::DoorOpen(uint32 type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGround::SpawnBGObject(uint32 type, uint32 respawntime)
|
|
||||||
|
void BattleGround::SpawnBGObject(uint64 const& guid, uint32 respawntime)
|
||||||
{
|
{
|
||||||
|
GameObject *obj = HashMapHolder<GameObject>::Find(guid);
|
||||||
|
if(!obj)
|
||||||
|
return;
|
||||||
Map * map = MapManager::Instance().FindMap(GetMapId(),GetInstanceID());
|
Map * map = MapManager::Instance().FindMap(GetMapId(),GetInstanceID());
|
||||||
if (!map)
|
if (!map)
|
||||||
return;
|
return;
|
||||||
if (respawntime == 0)
|
if (respawntime == 0)
|
||||||
{
|
|
||||||
GameObject *obj = HashMapHolder<GameObject>::Find(m_BgObjects[type]);
|
|
||||||
if (obj)
|
|
||||||
{
|
{
|
||||||
//we need to change state from GO_JUST_DEACTIVATED to GO_READY in case battleground is starting again
|
//we need to change state from GO_JUST_DEACTIVATED to GO_READY in case battleground is starting again
|
||||||
if (obj->getLootState() == GO_JUST_DEACTIVATED)
|
if (obj->getLootState() == GO_JUST_DEACTIVATED)
|
||||||
|
|
@ -1463,18 +1464,13 @@ void BattleGround::SpawnBGObject(uint32 type, uint32 respawntime)
|
||||||
obj->SetRespawnTime(0);
|
obj->SetRespawnTime(0);
|
||||||
map->Add(obj);
|
map->Add(obj);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
GameObject *obj = HashMapHolder<GameObject>::Find(m_BgObjects[type]);
|
|
||||||
if (obj)
|
|
||||||
{
|
{
|
||||||
map->Add(obj);
|
map->Add(obj);
|
||||||
obj->SetRespawnTime(respawntime);
|
obj->SetRespawnTime(respawntime);
|
||||||
obj->SetLootState(GO_JUST_DEACTIVATED);
|
obj->SetLootState(GO_JUST_DEACTIVATED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Creature* BattleGround::AddCreature(uint32 entry, uint32 type, uint32 teamval, float x, float y, float z, float o, uint32 respawntime)
|
Creature* BattleGround::AddCreature(uint32 entry, uint32 type, uint32 teamval, float x, float y, float z, float o, uint32 respawntime)
|
||||||
{
|
{
|
||||||
|
|
@ -1508,36 +1504,32 @@ Creature* BattleGround::AddCreature(uint32 entry, uint32 type, uint32 teamval, f
|
||||||
|
|
||||||
return pCreature;
|
return pCreature;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
void BattleGround::SpawnBGCreature(uint32 type, uint32 respawntime)
|
|
||||||
{
|
|
||||||
Map * map = MapManager::Instance().FindMap(GetMapId(),GetInstanceId());
|
|
||||||
if (!map)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
|
void BattleGround::SpawnBGCreature(uint64 const& guid, uint32 respawntime)
|
||||||
|
{
|
||||||
|
Creature* obj = HashMapHolder<Creature>::Find(guid);
|
||||||
|
if (!obj)
|
||||||
|
return;
|
||||||
|
Map * map = MapManager::Instance().FindMap(GetMapId(),GetInstanceID());
|
||||||
|
if (!map)
|
||||||
|
return;
|
||||||
if (respawntime == 0)
|
if (respawntime == 0)
|
||||||
{
|
{
|
||||||
Creature *obj = HashMapHolder<Creature>::Find(m_BgCreatures[type]);
|
//obj->SetVisibility(VISIBILITY_ON);
|
||||||
if (obj)
|
obj->Respawn();
|
||||||
{
|
//obj->SetRespawnTime(0);
|
||||||
//obj->Respawn(); // bugged
|
//objmgr.SaveCreatureRespawnTime(obj->GetGUIDLow(), GetInstanceID(), 0);
|
||||||
obj->SetRespawnTime(0);
|
|
||||||
objmgr.SaveCreatureRespawnTime(obj->GetGUIDLow(), GetInstanceID(), 0);
|
|
||||||
map->Add(obj);
|
map->Add(obj);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Creature *obj = HashMapHolder<Creature>::Find(m_BgCreatures[type]);
|
|
||||||
if (obj)
|
|
||||||
{
|
|
||||||
obj->setDeathState(DEAD);
|
|
||||||
obj->SetRespawnTime(respawntime);
|
|
||||||
map->Add(obj);
|
map->Add(obj);
|
||||||
|
obj->setDeathState(JUST_DIED);
|
||||||
|
obj->SetRespawnDelay(respawntime);
|
||||||
|
obj->RemoveCorpse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
*/
|
|
||||||
bool BattleGround::DelCreature(uint32 type)
|
bool BattleGround::DelCreature(uint32 type)
|
||||||
{
|
{
|
||||||
if (!m_BgCreatures[type])
|
if (!m_BgCreatures[type])
|
||||||
|
|
@ -1666,17 +1658,19 @@ void BattleGround::HandleTriggerBuff(uint64 const& go_guid)
|
||||||
if (m_BuffChange && entry != Buff_Entries[buff])
|
if (m_BuffChange && entry != Buff_Entries[buff])
|
||||||
{
|
{
|
||||||
//despawn current buff
|
//despawn current buff
|
||||||
SpawnBGObject(index, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[index], RESPAWN_ONE_DAY);
|
||||||
//set index for new one
|
//set index for new one
|
||||||
for (uint8 currBuffTypeIndex = 0; currBuffTypeIndex < 3; ++currBuffTypeIndex)
|
for (uint8 currBuffTypeIndex = 0; currBuffTypeIndex < 3; ++currBuffTypeIndex)
|
||||||
|
{
|
||||||
if (entry == Buff_Entries[currBuffTypeIndex])
|
if (entry == Buff_Entries[currBuffTypeIndex])
|
||||||
{
|
{
|
||||||
index -= currBuffTypeIndex;
|
index -= currBuffTypeIndex;
|
||||||
index += buff;
|
index += buff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SpawnBGObject(index, BUFF_RESPAWN_TIME);
|
SpawnBGObject(m_BgObjects[index], BUFF_RESPAWN_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGround::HandleKillPlayer( Player *player, Player *killer )
|
void BattleGround::HandleKillPlayer( Player *player, Player *killer )
|
||||||
|
|
|
||||||
|
|
@ -487,16 +487,16 @@ class BattleGround
|
||||||
typedef std::vector<uint64> BGCreatures;
|
typedef std::vector<uint64> BGCreatures;
|
||||||
BGObjects m_BgObjects;
|
BGObjects m_BgObjects;
|
||||||
BGCreatures m_BgCreatures;
|
BGCreatures m_BgCreatures;
|
||||||
void SpawnBGObject(uint32 type, uint32 respawntime);
|
void SpawnBGObject(uint64 const& guid, uint32 respawntime);
|
||||||
bool AddObject(uint32 type, uint32 entry, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime = 0);
|
bool AddObject(uint32 type, uint32 entry, float x, float y, float z, float o, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime = 0);
|
||||||
// void SpawnBGCreature(uint32 type, uint32 respawntime);
|
void SpawnBGCreature(uint64 const& guid, uint32 respawntime);
|
||||||
Creature* AddCreature(uint32 entry, uint32 type, uint32 teamval, float x, float y, float z, float o, uint32 respawntime = 0);
|
Creature* AddCreature(uint32 entry, uint32 type, uint32 teamval, float x, float y, float z, float o, uint32 respawntime = 0);
|
||||||
bool DelCreature(uint32 type);
|
bool DelCreature(uint32 type);
|
||||||
bool DelObject(uint32 type);
|
bool DelObject(uint32 type);
|
||||||
bool AddSpiritGuide(uint32 type, float x, float y, float z, float o, uint32 team);
|
bool AddSpiritGuide(uint32 type, float x, float y, float z, float o, uint32 team);
|
||||||
|
|
||||||
void DoorOpen(uint32 type);
|
void DoorOpen(uint64 const& guid);
|
||||||
void DoorClose(uint32 type);
|
void DoorClose(uint64 const& guid);
|
||||||
|
|
||||||
virtual bool HandlePlayerUnderMap(Player * /*plr*/) { return false; }
|
virtual bool HandlePlayerUnderMap(Player * /*plr*/) { return false; }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -166,15 +166,15 @@ void BattleGroundAB::StartingEventCloseDoors()
|
||||||
{
|
{
|
||||||
// despawn banners, auras and buffs
|
// despawn banners, auras and buffs
|
||||||
for (int obj = BG_AB_OBJECT_BANNER_NEUTRAL; obj < BG_AB_DYNAMIC_NODES_COUNT * 8; ++obj)
|
for (int obj = BG_AB_OBJECT_BANNER_NEUTRAL; obj < BG_AB_DYNAMIC_NODES_COUNT * 8; ++obj)
|
||||||
SpawnBGObject(obj, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[obj], RESPAWN_ONE_DAY);
|
||||||
for (int i = 0; i < BG_AB_DYNAMIC_NODES_COUNT * 3; ++i)
|
for (int i = 0; i < BG_AB_DYNAMIC_NODES_COUNT * 3; ++i)
|
||||||
SpawnBGObject(BG_AB_OBJECT_SPEEDBUFF_STABLES + i, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[BG_AB_OBJECT_SPEEDBUFF_STABLES + i], RESPAWN_ONE_DAY);
|
||||||
|
|
||||||
// Starting doors
|
// Starting doors
|
||||||
DoorClose(BG_AB_OBJECT_GATE_A);
|
DoorClose(m_BgObjects[BG_AB_OBJECT_GATE_A]);
|
||||||
DoorClose(BG_AB_OBJECT_GATE_H);
|
DoorClose(m_BgObjects[BG_AB_OBJECT_GATE_H]);
|
||||||
SpawnBGObject(BG_AB_OBJECT_GATE_A, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_AB_OBJECT_GATE_A], RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(BG_AB_OBJECT_GATE_H, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_AB_OBJECT_GATE_H], RESPAWN_IMMEDIATELY);
|
||||||
|
|
||||||
// Starting base spirit guides
|
// Starting base spirit guides
|
||||||
_NodeOccupied(BG_AB_SPIRIT_ALIANCE,ALLIANCE);
|
_NodeOccupied(BG_AB_SPIRIT_ALIANCE,ALLIANCE);
|
||||||
|
|
@ -185,15 +185,15 @@ void BattleGroundAB::StartingEventOpenDoors()
|
||||||
{
|
{
|
||||||
// spawn neutral banners
|
// spawn neutral banners
|
||||||
for (int banner = BG_AB_OBJECT_BANNER_NEUTRAL, i = 0; i < 5; banner += 8, ++i)
|
for (int banner = BG_AB_OBJECT_BANNER_NEUTRAL, i = 0; i < 5; banner += 8, ++i)
|
||||||
SpawnBGObject(banner, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[banner], RESPAWN_IMMEDIATELY);
|
||||||
for (int i = 0; i < BG_AB_DYNAMIC_NODES_COUNT; ++i)
|
for (int i = 0; i < BG_AB_DYNAMIC_NODES_COUNT; ++i)
|
||||||
{
|
{
|
||||||
//randomly select buff to spawn
|
//randomly select buff to spawn
|
||||||
uint8 buff = urand(0, 2);
|
uint8 buff = urand(0, 2);
|
||||||
SpawnBGObject(BG_AB_OBJECT_SPEEDBUFF_STABLES + buff + i * 3, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_AB_OBJECT_SPEEDBUFF_STABLES + buff + i * 3], RESPAWN_IMMEDIATELY);
|
||||||
}
|
}
|
||||||
DoorOpen(BG_AB_OBJECT_GATE_A);
|
DoorOpen(m_BgObjects[BG_AB_OBJECT_GATE_A]);
|
||||||
DoorOpen(BG_AB_OBJECT_GATE_H);
|
DoorOpen(m_BgObjects[BG_AB_OBJECT_GATE_H]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundAB::AddPlayer(Player *plr)
|
void BattleGroundAB::AddPlayer(Player *plr)
|
||||||
|
|
@ -259,25 +259,25 @@ void BattleGroundAB::_CreateBanner(uint8 node, uint8 type, uint8 teamIndex, bool
|
||||||
|
|
||||||
uint8 obj = node*8 + type + teamIndex;
|
uint8 obj = node*8 + type + teamIndex;
|
||||||
|
|
||||||
SpawnBGObject(obj, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[obj], RESPAWN_IMMEDIATELY);
|
||||||
|
|
||||||
// handle aura with banner
|
// handle aura with banner
|
||||||
if (!type)
|
if (!type)
|
||||||
return;
|
return;
|
||||||
obj = node * 8 + ((type == BG_AB_NODE_TYPE_OCCUPIED) ? (5 + teamIndex) : 7);
|
obj = node * 8 + ((type == BG_AB_NODE_TYPE_OCCUPIED) ? (5 + teamIndex) : 7);
|
||||||
SpawnBGObject(obj, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[obj], RESPAWN_IMMEDIATELY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundAB::_DelBanner(uint8 node, uint8 type, uint8 teamIndex)
|
void BattleGroundAB::_DelBanner(uint8 node, uint8 type, uint8 teamIndex)
|
||||||
{
|
{
|
||||||
uint8 obj = node*8 + type + teamIndex;
|
uint8 obj = node*8 + type + teamIndex;
|
||||||
SpawnBGObject(obj, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[obj], RESPAWN_ONE_DAY);
|
||||||
|
|
||||||
// handle aura with banner
|
// handle aura with banner
|
||||||
if (!type)
|
if (!type)
|
||||||
return;
|
return;
|
||||||
obj = node * 8 + ((type == BG_AB_NODE_TYPE_OCCUPIED) ? (5 + teamIndex) : 7);
|
obj = node * 8 + ((type == BG_AB_NODE_TYPE_OCCUPIED) ? (5 + teamIndex) : 7);
|
||||||
SpawnBGObject(obj, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[obj], RESPAWN_ONE_DAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 BattleGroundAB::_GetNodeNameId(uint8 node)
|
int32 BattleGroundAB::_GetNodeNameId(uint8 node)
|
||||||
|
|
|
||||||
|
|
@ -57,19 +57,19 @@ void BattleGroundBE::Update(uint32 diff)
|
||||||
void BattleGroundBE::StartingEventCloseDoors()
|
void BattleGroundBE::StartingEventCloseDoors()
|
||||||
{
|
{
|
||||||
for(uint32 i = BG_BE_OBJECT_DOOR_1; i <= BG_BE_OBJECT_DOOR_4; ++i)
|
for(uint32 i = BG_BE_OBJECT_DOOR_1; i <= BG_BE_OBJECT_DOOR_4; ++i)
|
||||||
SpawnBGObject(i, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[i], RESPAWN_IMMEDIATELY);
|
||||||
|
|
||||||
for(uint32 i = BG_BE_OBJECT_BUFF_1; i <= BG_BE_OBJECT_BUFF_2; ++i)
|
for(uint32 i = BG_BE_OBJECT_BUFF_1; i <= BG_BE_OBJECT_BUFF_2; ++i)
|
||||||
SpawnBGObject(i, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[i], RESPAWN_ONE_DAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundBE::StartingEventOpenDoors()
|
void BattleGroundBE::StartingEventOpenDoors()
|
||||||
{
|
{
|
||||||
for(uint32 i = BG_BE_OBJECT_DOOR_1; i <= BG_BE_OBJECT_DOOR_2; ++i)
|
for(uint32 i = BG_BE_OBJECT_DOOR_1; i <= BG_BE_OBJECT_DOOR_2; ++i)
|
||||||
DoorOpen(i);
|
DoorOpen(m_BgObjects[i]);
|
||||||
|
|
||||||
for(uint32 i = BG_BE_OBJECT_BUFF_1; i <= BG_BE_OBJECT_BUFF_2; ++i)
|
for(uint32 i = BG_BE_OBJECT_BUFF_1; i <= BG_BE_OBJECT_BUFF_2; ++i)
|
||||||
SpawnBGObject(i, 60);
|
SpawnBGObject(m_BgObjects[i], 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundBE::AddPlayer(Player *plr)
|
void BattleGroundBE::AddPlayer(Player *plr)
|
||||||
|
|
|
||||||
|
|
@ -95,25 +95,25 @@ void BattleGroundEY::Update(uint32 diff)
|
||||||
|
|
||||||
void BattleGroundEY::StartingEventCloseDoors()
|
void BattleGroundEY::StartingEventCloseDoors()
|
||||||
{
|
{
|
||||||
SpawnBGObject(BG_EY_OBJECT_DOOR_A, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_EY_OBJECT_DOOR_A], RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(BG_EY_OBJECT_DOOR_H, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_EY_OBJECT_DOOR_H], RESPAWN_IMMEDIATELY);
|
||||||
|
|
||||||
for(uint32 i = BG_EY_OBJECT_A_BANNER_FEL_REALVER_CENTER; i < BG_EY_OBJECT_MAX; ++i)
|
for(uint32 i = BG_EY_OBJECT_A_BANNER_FEL_REALVER_CENTER; i < BG_EY_OBJECT_MAX; ++i)
|
||||||
SpawnBGObject(i, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[i], RESPAWN_ONE_DAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundEY::StartingEventOpenDoors()
|
void BattleGroundEY::StartingEventOpenDoors()
|
||||||
{
|
{
|
||||||
SpawnBGObject(BG_EY_OBJECT_DOOR_A, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[BG_EY_OBJECT_DOOR_A], RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(BG_EY_OBJECT_DOOR_H, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[BG_EY_OBJECT_DOOR_H], RESPAWN_ONE_DAY);
|
||||||
|
|
||||||
for(uint32 i = BG_EY_OBJECT_N_BANNER_FEL_REALVER_CENTER; i <= BG_EY_OBJECT_FLAG_NETHERSTORM; ++i)
|
for(uint32 i = BG_EY_OBJECT_N_BANNER_FEL_REALVER_CENTER; i <= BG_EY_OBJECT_FLAG_NETHERSTORM; ++i)
|
||||||
SpawnBGObject(i, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[i], RESPAWN_IMMEDIATELY);
|
||||||
for(uint32 i = 0; i < EY_POINTS_MAX; ++i)
|
for(uint32 i = 0; i < EY_POINTS_MAX; ++i)
|
||||||
{
|
{
|
||||||
//randomly spawn buff
|
//randomly spawn buff
|
||||||
uint8 buff = urand(0, 2);
|
uint8 buff = urand(0, 2);
|
||||||
SpawnBGObject(BG_EY_OBJECT_SPEEDBUFF_FEL_REALVER + buff + i * 3, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_EY_OBJECT_SPEEDBUFF_FEL_REALVER + buff + i * 3], RESPAWN_IMMEDIATELY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -538,11 +538,11 @@ void BattleGroundEY::Reset()
|
||||||
void BattleGroundEY::RespawnFlag(bool send_message)
|
void BattleGroundEY::RespawnFlag(bool send_message)
|
||||||
{
|
{
|
||||||
if (m_FlagCapturedBgObjectType > 0)
|
if (m_FlagCapturedBgObjectType > 0)
|
||||||
SpawnBGObject(m_FlagCapturedBgObjectType, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[m_FlagCapturedBgObjectType], RESPAWN_ONE_DAY);
|
||||||
|
|
||||||
m_FlagCapturedBgObjectType = 0;
|
m_FlagCapturedBgObjectType = 0;
|
||||||
m_FlagState = BG_EY_FLAG_STATE_ON_BASE;
|
m_FlagState = BG_EY_FLAG_STATE_ON_BASE;
|
||||||
SpawnBGObject(BG_EY_OBJECT_FLAG_NETHERSTORM, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_EY_OBJECT_FLAG_NETHERSTORM], RESPAWN_IMMEDIATELY);
|
||||||
|
|
||||||
if (send_message)
|
if (send_message)
|
||||||
{
|
{
|
||||||
|
|
@ -631,7 +631,7 @@ void BattleGroundEY::EventPlayerClickedOnFlag(Player *Source, GameObject* target
|
||||||
UpdateWorldState(NETHERSTORM_FLAG, 0);
|
UpdateWorldState(NETHERSTORM_FLAG, 0);
|
||||||
m_FlagState = BG_EY_FLAG_STATE_ON_PLAYER;
|
m_FlagState = BG_EY_FLAG_STATE_ON_PLAYER;
|
||||||
|
|
||||||
SpawnBGObject(BG_EY_OBJECT_FLAG_NETHERSTORM, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[BG_EY_OBJECT_FLAG_NETHERSTORM], RESPAWN_ONE_DAY);
|
||||||
SetFlagPicker(Source->GetGUID());
|
SetFlagPicker(Source->GetGUID());
|
||||||
//get flag aura on player
|
//get flag aura on player
|
||||||
Source->CastSpell(Source, BG_EY_NETHERSTORM_FLAG_SPELL, true);
|
Source->CastSpell(Source, BG_EY_NETHERSTORM_FLAG_SPELL, true);
|
||||||
|
|
@ -657,21 +657,21 @@ void BattleGroundEY::EventTeamLostPoint(Player *Source, uint32 Point)
|
||||||
if (Team == ALLIANCE)
|
if (Team == ALLIANCE)
|
||||||
{
|
{
|
||||||
m_TeamPointsCount[BG_TEAM_ALLIANCE]--;
|
m_TeamPointsCount[BG_TEAM_ALLIANCE]--;
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeAlliance, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].DespawnObjectTypeAlliance], RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeAlliance + 1, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].DespawnObjectTypeAlliance + 1], RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeAlliance + 2, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].DespawnObjectTypeAlliance + 2], RESPAWN_ONE_DAY);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_TeamPointsCount[BG_TEAM_HORDE]--;
|
m_TeamPointsCount[BG_TEAM_HORDE]--;
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeHorde, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].DespawnObjectTypeHorde], RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeHorde + 1, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].DespawnObjectTypeHorde + 1], RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeHorde + 2, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].DespawnObjectTypeHorde + 2], RESPAWN_ONE_DAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].SpawnNeutralObjectType, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].SpawnNeutralObjectType], RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].SpawnNeutralObjectType + 1, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].SpawnNeutralObjectType + 1], RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].SpawnNeutralObjectType + 2, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[m_LoosingPointTypes[Point].SpawnNeutralObjectType + 2], RESPAWN_IMMEDIATELY);
|
||||||
|
|
||||||
//buff isn't despawned
|
//buff isn't despawned
|
||||||
|
|
||||||
|
|
@ -694,23 +694,23 @@ void BattleGroundEY::EventTeamCapturedPoint(Player *Source, uint32 Point)
|
||||||
|
|
||||||
uint32 Team = Source->GetTeam();
|
uint32 Team = Source->GetTeam();
|
||||||
|
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].DespawnNeutralObjectType], RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType + 1, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].DespawnNeutralObjectType + 1], RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType + 2, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].DespawnNeutralObjectType + 2], RESPAWN_ONE_DAY);
|
||||||
|
|
||||||
if (Team == ALLIANCE)
|
if (Team == ALLIANCE)
|
||||||
{
|
{
|
||||||
m_TeamPointsCount[BG_TEAM_ALLIANCE]++;
|
m_TeamPointsCount[BG_TEAM_ALLIANCE]++;
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].SpawnObjectTypeAlliance], RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 1, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 1], RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 2, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 2], RESPAWN_IMMEDIATELY);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_TeamPointsCount[BG_TEAM_HORDE]++;
|
m_TeamPointsCount[BG_TEAM_HORDE]++;
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].SpawnObjectTypeHorde], RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 1, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 1], RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 2, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 2], RESPAWN_IMMEDIATELY);
|
||||||
}
|
}
|
||||||
|
|
||||||
//buff isn't respawned
|
//buff isn't respawned
|
||||||
|
|
@ -754,7 +754,7 @@ void BattleGroundEY::EventPlayerCapturedFlag(Player *Source, uint32 BgObjectType
|
||||||
else
|
else
|
||||||
PlaySoundToAll(BG_EY_SOUND_FLAG_CAPTURED_HORDE);
|
PlaySoundToAll(BG_EY_SOUND_FLAG_CAPTURED_HORDE);
|
||||||
|
|
||||||
SpawnBGObject(BgObjectType, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BgObjectType], RESPAWN_IMMEDIATELY);
|
||||||
|
|
||||||
m_FlagsTimer = BG_EY_FLAG_RESPAWN_TIME;
|
m_FlagsTimer = BG_EY_FLAG_RESPAWN_TIME;
|
||||||
m_FlagCapturedBgObjectType = BgObjectType;
|
m_FlagCapturedBgObjectType = BgObjectType;
|
||||||
|
|
|
||||||
|
|
@ -57,16 +57,16 @@ void BattleGroundNA::Update(uint32 diff)
|
||||||
void BattleGroundNA::StartingEventCloseDoors()
|
void BattleGroundNA::StartingEventCloseDoors()
|
||||||
{
|
{
|
||||||
for(uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_4; ++i)
|
for(uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_4; ++i)
|
||||||
SpawnBGObject(i, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[i], RESPAWN_IMMEDIATELY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundNA::StartingEventOpenDoors()
|
void BattleGroundNA::StartingEventOpenDoors()
|
||||||
{
|
{
|
||||||
for(uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_2; ++i)
|
for(uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_2; ++i)
|
||||||
DoorOpen(i);
|
DoorOpen(m_BgObjects[i]);
|
||||||
|
|
||||||
for(uint32 i = BG_NA_OBJECT_BUFF_1; i <= BG_NA_OBJECT_BUFF_2; ++i)
|
for(uint32 i = BG_NA_OBJECT_BUFF_1; i <= BG_NA_OBJECT_BUFF_2; ++i)
|
||||||
SpawnBGObject(i, 60);
|
SpawnBGObject(m_BgObjects[i], 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundNA::AddPlayer(Player *plr)
|
void BattleGroundNA::AddPlayer(Player *plr)
|
||||||
|
|
|
||||||
|
|
@ -57,16 +57,16 @@ void BattleGroundRL::Update(uint32 diff)
|
||||||
void BattleGroundRL::StartingEventCloseDoors()
|
void BattleGroundRL::StartingEventCloseDoors()
|
||||||
{
|
{
|
||||||
for(uint32 i = BG_RL_OBJECT_DOOR_1; i <= BG_RL_OBJECT_DOOR_2; ++i)
|
for(uint32 i = BG_RL_OBJECT_DOOR_1; i <= BG_RL_OBJECT_DOOR_2; ++i)
|
||||||
SpawnBGObject(i, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[i], RESPAWN_IMMEDIATELY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundRL::StartingEventOpenDoors()
|
void BattleGroundRL::StartingEventOpenDoors()
|
||||||
{
|
{
|
||||||
for(uint32 i = BG_RL_OBJECT_DOOR_1; i <= BG_RL_OBJECT_DOOR_2; ++i)
|
for(uint32 i = BG_RL_OBJECT_DOOR_1; i <= BG_RL_OBJECT_DOOR_2; ++i)
|
||||||
DoorOpen(i);
|
DoorOpen(m_BgObjects[i]);
|
||||||
|
|
||||||
for(uint32 i = BG_RL_OBJECT_BUFF_1; i <= BG_RL_OBJECT_BUFF_2; ++i)
|
for(uint32 i = BG_RL_OBJECT_BUFF_1; i <= BG_RL_OBJECT_BUFF_2; ++i)
|
||||||
SpawnBGObject(i, 60);
|
SpawnBGObject(m_BgObjects[i], 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundRL::AddPlayer(Player *plr)
|
void BattleGroundRL::AddPlayer(Player *plr)
|
||||||
|
|
|
||||||
|
|
@ -95,27 +95,27 @@ void BattleGroundWS::StartingEventCloseDoors()
|
||||||
{
|
{
|
||||||
for(uint32 i = BG_WS_OBJECT_DOOR_A_1; i <= BG_WS_OBJECT_DOOR_H_4; ++i)
|
for(uint32 i = BG_WS_OBJECT_DOOR_A_1; i <= BG_WS_OBJECT_DOOR_H_4; ++i)
|
||||||
{
|
{
|
||||||
DoorClose(i);
|
DoorClose(m_BgObjects[i]);
|
||||||
SpawnBGObject(i, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[i], RESPAWN_IMMEDIATELY);
|
||||||
}
|
}
|
||||||
for(uint32 i = BG_WS_OBJECT_A_FLAG; i <= BG_WS_OBJECT_BERSERKBUFF_2; ++i)
|
for(uint32 i = BG_WS_OBJECT_A_FLAG; i <= BG_WS_OBJECT_BERSERKBUFF_2; ++i)
|
||||||
SpawnBGObject(i, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[i], RESPAWN_ONE_DAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundWS::StartingEventOpenDoors()
|
void BattleGroundWS::StartingEventOpenDoors()
|
||||||
{
|
{
|
||||||
for(uint32 i = BG_WS_OBJECT_DOOR_A_1; i <= BG_WS_OBJECT_DOOR_A_4; ++i)
|
for(uint32 i = BG_WS_OBJECT_DOOR_A_1; i <= BG_WS_OBJECT_DOOR_A_4; ++i)
|
||||||
DoorOpen(i);
|
DoorOpen(m_BgObjects[i]);
|
||||||
for(uint32 i = BG_WS_OBJECT_DOOR_H_1; i <= BG_WS_OBJECT_DOOR_H_2; ++i)
|
for(uint32 i = BG_WS_OBJECT_DOOR_H_1; i <= BG_WS_OBJECT_DOOR_H_2; ++i)
|
||||||
DoorOpen(i);
|
DoorOpen(m_BgObjects[i]);
|
||||||
|
|
||||||
SpawnBGObject(BG_WS_OBJECT_DOOR_A_5, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_DOOR_A_5], RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(BG_WS_OBJECT_DOOR_A_6, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_DOOR_A_6], RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(BG_WS_OBJECT_DOOR_H_3, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_DOOR_H_3], RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(BG_WS_OBJECT_DOOR_H_4, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_DOOR_H_4], RESPAWN_ONE_DAY);
|
||||||
|
|
||||||
for(uint32 i = BG_WS_OBJECT_A_FLAG; i <= BG_WS_OBJECT_BERSERKBUFF_2; ++i)
|
for(uint32 i = BG_WS_OBJECT_A_FLAG; i <= BG_WS_OBJECT_BERSERKBUFF_2; ++i)
|
||||||
SpawnBGObject(i, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[i], RESPAWN_IMMEDIATELY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundWS::AddPlayer(Player *plr)
|
void BattleGroundWS::AddPlayer(Player *plr)
|
||||||
|
|
@ -143,8 +143,8 @@ void BattleGroundWS::RespawnFlag(uint32 Team, bool captured)
|
||||||
if (captured)
|
if (captured)
|
||||||
{
|
{
|
||||||
//when map_update will be allowed for battlegrounds this code will be useless
|
//when map_update will be allowed for battlegrounds this code will be useless
|
||||||
SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_H_FLAG], RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_A_FLAG], RESPAWN_IMMEDIATELY);
|
||||||
SendMessageToAll(LANG_BG_WS_F_PLACED, CHAT_MSG_BG_SYSTEM_NEUTRAL);
|
SendMessageToAll(LANG_BG_WS_F_PLACED, CHAT_MSG_BG_SYSTEM_NEUTRAL);
|
||||||
PlaySoundToAll(BG_WS_SOUND_FLAGS_RESPAWNED); // flag respawned sound...
|
PlaySoundToAll(BG_WS_SOUND_FLAGS_RESPAWNED); // flag respawned sound...
|
||||||
}
|
}
|
||||||
|
|
@ -158,12 +158,12 @@ void BattleGroundWS::RespawnFlagAfterDrop(uint32 team)
|
||||||
RespawnFlag(team,false);
|
RespawnFlag(team,false);
|
||||||
if (team == ALLIANCE)
|
if (team == ALLIANCE)
|
||||||
{
|
{
|
||||||
SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_A_FLAG], RESPAWN_IMMEDIATELY);
|
||||||
SendMessageToAll(LANG_BG_WS_ALLIANCE_FLAG_RESPAWNED, CHAT_MSG_BG_SYSTEM_NEUTRAL);
|
SendMessageToAll(LANG_BG_WS_ALLIANCE_FLAG_RESPAWNED, CHAT_MSG_BG_SYSTEM_NEUTRAL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_H_FLAG], RESPAWN_IMMEDIATELY);
|
||||||
SendMessageToAll(LANG_BG_WS_HORDE_FLAG_RESPAWNED, CHAT_MSG_BG_SYSTEM_NEUTRAL);
|
SendMessageToAll(LANG_BG_WS_HORDE_FLAG_RESPAWNED, CHAT_MSG_BG_SYSTEM_NEUTRAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -217,8 +217,8 @@ void BattleGroundWS::EventPlayerCapturedFlag(Player *Source)
|
||||||
//for flag capture is reward 2 honorable kills
|
//for flag capture is reward 2 honorable kills
|
||||||
RewardHonorToTeam(GetBonusHonorFromKill(2), Source->GetTeam());
|
RewardHonorToTeam(GetBonusHonorFromKill(2), Source->GetTeam());
|
||||||
|
|
||||||
SpawnBGObject(BG_WS_OBJECT_H_FLAG, BG_WS_FLAG_RESPAWN_TIME);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_H_FLAG], BG_WS_FLAG_RESPAWN_TIME);
|
||||||
SpawnBGObject(BG_WS_OBJECT_A_FLAG, BG_WS_FLAG_RESPAWN_TIME);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_A_FLAG], BG_WS_FLAG_RESPAWN_TIME);
|
||||||
|
|
||||||
if (Source->GetTeam() == ALLIANCE)
|
if (Source->GetTeam() == ALLIANCE)
|
||||||
SendMessageToAll(LANG_BG_WS_CAPTURED_HF, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);
|
SendMessageToAll(LANG_BG_WS_CAPTURED_HF, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);
|
||||||
|
|
@ -344,7 +344,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player *Source, GameObject* target
|
||||||
message_id = LANG_BG_WS_PICKEDUP_AF;
|
message_id = LANG_BG_WS_PICKEDUP_AF;
|
||||||
type = CHAT_MSG_BG_SYSTEM_HORDE;
|
type = CHAT_MSG_BG_SYSTEM_HORDE;
|
||||||
PlaySoundToAll(BG_WS_SOUND_ALLIANCE_FLAG_PICKED_UP);
|
PlaySoundToAll(BG_WS_SOUND_ALLIANCE_FLAG_PICKED_UP);
|
||||||
SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_A_FLAG], RESPAWN_ONE_DAY);
|
||||||
SetAllianceFlagPicker(Source->GetGUID());
|
SetAllianceFlagPicker(Source->GetGUID());
|
||||||
m_FlagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_PLAYER;
|
m_FlagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_PLAYER;
|
||||||
//update world state to show correct flag carrier
|
//update world state to show correct flag carrier
|
||||||
|
|
@ -360,7 +360,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player *Source, GameObject* target
|
||||||
message_id = LANG_BG_WS_PICKEDUP_HF;
|
message_id = LANG_BG_WS_PICKEDUP_HF;
|
||||||
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
|
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
|
||||||
PlaySoundToAll(BG_WS_SOUND_HORDE_FLAG_PICKED_UP);
|
PlaySoundToAll(BG_WS_SOUND_HORDE_FLAG_PICKED_UP);
|
||||||
SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_H_FLAG], RESPAWN_ONE_DAY);
|
||||||
SetHordeFlagPicker(Source->GetGUID());
|
SetHordeFlagPicker(Source->GetGUID());
|
||||||
m_FlagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_ON_PLAYER;
|
m_FlagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_ON_PLAYER;
|
||||||
//update world state to show correct flag carrier
|
//update world state to show correct flag carrier
|
||||||
|
|
@ -378,7 +378,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player *Source, GameObject* target
|
||||||
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
|
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
|
||||||
UpdateFlagState(HORDE, BG_WS_FLAG_STATE_WAIT_RESPAWN);
|
UpdateFlagState(HORDE, BG_WS_FLAG_STATE_WAIT_RESPAWN);
|
||||||
RespawnFlag(ALLIANCE, false);
|
RespawnFlag(ALLIANCE, false);
|
||||||
SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_A_FLAG], RESPAWN_IMMEDIATELY);
|
||||||
PlaySoundToAll(BG_WS_SOUND_FLAG_RETURNED);
|
PlaySoundToAll(BG_WS_SOUND_FLAG_RETURNED);
|
||||||
UpdatePlayerScore(Source, SCORE_FLAG_RETURNS, 1);
|
UpdatePlayerScore(Source, SCORE_FLAG_RETURNS, 1);
|
||||||
}
|
}
|
||||||
|
|
@ -387,7 +387,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player *Source, GameObject* target
|
||||||
message_id = LANG_BG_WS_PICKEDUP_AF;
|
message_id = LANG_BG_WS_PICKEDUP_AF;
|
||||||
type = CHAT_MSG_BG_SYSTEM_HORDE;
|
type = CHAT_MSG_BG_SYSTEM_HORDE;
|
||||||
PlaySoundToAll(BG_WS_SOUND_ALLIANCE_FLAG_PICKED_UP);
|
PlaySoundToAll(BG_WS_SOUND_ALLIANCE_FLAG_PICKED_UP);
|
||||||
SpawnBGObject(BG_WS_OBJECT_A_FLAG, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_A_FLAG], RESPAWN_ONE_DAY);
|
||||||
SetAllianceFlagPicker(Source->GetGUID());
|
SetAllianceFlagPicker(Source->GetGUID());
|
||||||
Source->CastSpell(Source, BG_WS_SPELL_SILVERWING_FLAG, true);
|
Source->CastSpell(Source, BG_WS_SPELL_SILVERWING_FLAG, true);
|
||||||
m_FlagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_PLAYER;
|
m_FlagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_PLAYER;
|
||||||
|
|
@ -407,7 +407,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player *Source, GameObject* target
|
||||||
type = CHAT_MSG_BG_SYSTEM_HORDE;
|
type = CHAT_MSG_BG_SYSTEM_HORDE;
|
||||||
UpdateFlagState(ALLIANCE, BG_WS_FLAG_STATE_WAIT_RESPAWN);
|
UpdateFlagState(ALLIANCE, BG_WS_FLAG_STATE_WAIT_RESPAWN);
|
||||||
RespawnFlag(HORDE, false);
|
RespawnFlag(HORDE, false);
|
||||||
SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_H_FLAG], RESPAWN_IMMEDIATELY);
|
||||||
PlaySoundToAll(BG_WS_SOUND_FLAG_RETURNED);
|
PlaySoundToAll(BG_WS_SOUND_FLAG_RETURNED);
|
||||||
UpdatePlayerScore(Source, SCORE_FLAG_RETURNS, 1);
|
UpdatePlayerScore(Source, SCORE_FLAG_RETURNS, 1);
|
||||||
}
|
}
|
||||||
|
|
@ -416,7 +416,7 @@ void BattleGroundWS::EventPlayerClickedOnFlag(Player *Source, GameObject* target
|
||||||
message_id = LANG_BG_WS_PICKEDUP_HF;
|
message_id = LANG_BG_WS_PICKEDUP_HF;
|
||||||
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
|
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
|
||||||
PlaySoundToAll(BG_WS_SOUND_HORDE_FLAG_PICKED_UP);
|
PlaySoundToAll(BG_WS_SOUND_HORDE_FLAG_PICKED_UP);
|
||||||
SpawnBGObject(BG_WS_OBJECT_H_FLAG, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_BgObjects[BG_WS_OBJECT_H_FLAG], RESPAWN_ONE_DAY);
|
||||||
SetHordeFlagPicker(Source->GetGUID());
|
SetHordeFlagPicker(Source->GetGUID());
|
||||||
Source->CastSpell(Source, BG_WS_SPELL_WARSONG_FLAG, true);
|
Source->CastSpell(Source, BG_WS_SPELL_WARSONG_FLAG, true);
|
||||||
m_FlagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_ON_PLAYER;
|
m_FlagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_ON_PLAYER;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue