mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-05 20:13:48 +00:00
converted all tabs to 4 spaces
This commit is contained in:
@@ -45,8 +45,8 @@ bool BattlefieldWG::SetupBattlefield()
|
||||
m_ZoneId = BATTLEFIELD_WG_ZONEID;
|
||||
m_MapId = BATTLEFIELD_WG_MAPID;
|
||||
|
||||
// init stalker AFTER setting map id... we spawn it at map=random memory value?...
|
||||
InitStalker(BATTLEFIELD_WG_NPC_STALKER, WintergraspStalkerPos[0], WintergraspStalkerPos[1], WintergraspStalkerPos[2], WintergraspStalkerPos[3]);
|
||||
// init stalker AFTER setting map id... we spawn it at map=random memory value?...
|
||||
InitStalker(BATTLEFIELD_WG_NPC_STALKER, WintergraspStalkerPos[0], WintergraspStalkerPos[1], WintergraspStalkerPos[2], WintergraspStalkerPos[3]);
|
||||
|
||||
m_MaxPlayer = sWorld->getIntConfig(CONFIG_WINTERGRASP_PLR_MAX);
|
||||
m_IsEnabled = sWorld->getBoolConfig(CONFIG_WINTERGRASP_ENABLE);
|
||||
@@ -61,7 +61,7 @@ bool BattlefieldWG::SetupBattlefield()
|
||||
m_StartGrouping = false;
|
||||
|
||||
m_tenacityStack = 0;
|
||||
m_titansRelic = 0;
|
||||
m_titansRelic = 0;
|
||||
|
||||
KickPosition.Relocate(5728.117f, 2714.346f, 697.733f, 0);
|
||||
KickPosition.m_mapId = m_MapId;
|
||||
@@ -201,19 +201,19 @@ bool BattlefieldWG::Update(uint32 diff)
|
||||
else
|
||||
m_saveTimer -= diff;
|
||||
|
||||
// Update Tenacity
|
||||
if (IsWarTime())
|
||||
{
|
||||
if (m_tenacityUpdateTimer <= diff)
|
||||
{
|
||||
m_tenacityUpdateTimer = 10000;
|
||||
if (!m_updateTenacityList.empty())
|
||||
UpdateTenacity();
|
||||
m_updateTenacityList.clear();
|
||||
}
|
||||
else
|
||||
m_tenacityUpdateTimer -= diff;
|
||||
}
|
||||
// Update Tenacity
|
||||
if (IsWarTime())
|
||||
{
|
||||
if (m_tenacityUpdateTimer <= diff)
|
||||
{
|
||||
m_tenacityUpdateTimer = 10000;
|
||||
if (!m_updateTenacityList.empty())
|
||||
UpdateTenacity();
|
||||
m_updateTenacityList.clear();
|
||||
}
|
||||
else
|
||||
m_tenacityUpdateTimer -= diff;
|
||||
}
|
||||
|
||||
return m_return;
|
||||
}
|
||||
@@ -229,8 +229,8 @@ void BattlefieldWG::OnBattleStart()
|
||||
// Set in use (not allow to click on before last door is broken)
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
// save guid
|
||||
m_titansRelic = go->GetGUID();
|
||||
// save guid
|
||||
m_titansRelic = go->GetGUID();
|
||||
}
|
||||
else
|
||||
sLog->outError("WG: Failed to spawn titan relic.");
|
||||
@@ -259,7 +259,7 @@ void BattlefieldWG::OnBattleStart()
|
||||
}
|
||||
}
|
||||
|
||||
SetData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT, WG_MAX_ATTACKTOWERS);
|
||||
SetData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT, WG_MAX_ATTACKTOWERS);
|
||||
SetData(BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT, 0);
|
||||
SetData(BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT, 0);
|
||||
|
||||
@@ -286,9 +286,9 @@ void BattlefieldWG::OnBattleStart()
|
||||
// Send start warning to all players
|
||||
SendWarningToAllInZone(BATTLEFIELD_WG_TEXT_START);
|
||||
|
||||
// Xinef: reset tenacity counter
|
||||
m_tenacityStack = 0;
|
||||
m_tenacityUpdateTimer = 20000;
|
||||
// Xinef: reset tenacity counter
|
||||
m_tenacityStack = 0;
|
||||
m_tenacityUpdateTimer = 20000;
|
||||
|
||||
if (sWorld->getBoolConfig(CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE))
|
||||
sWorld->SendWorldText(BATTLEFIELD_WG_WORLD_START_MESSAGE);
|
||||
@@ -324,29 +324,29 @@ void BattlefieldWG::UpdateVehicleCountWG()
|
||||
for (uint8 i = 0; i < BG_TEAMS_COUNT; ++i)
|
||||
for (GuidSet::iterator itr = m_players[i].begin(); itr != m_players[i].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
{
|
||||
{
|
||||
player->SendUpdateWorldState(BATTLEFIELD_WG_WORLD_STATE_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_VEHICLE_H));
|
||||
player->SendUpdateWorldState(BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_H));
|
||||
player->SendUpdateWorldState(BATTLEFIELD_WG_WORLD_STATE_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_VEHICLE_A));
|
||||
player->SendUpdateWorldState(BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BattlefieldWG::CapturePointTaken(uint32 areaId)
|
||||
{
|
||||
for (uint8 i = 0; i < BG_TEAMS_COUNT; ++i)
|
||||
for (uint8 i = 0; i < BG_TEAMS_COUNT; ++i)
|
||||
for (GuidSet::iterator itr = m_players[i].begin(); itr != m_players[i].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
if (player->GetAreaId() == areaId)
|
||||
player->UpdateAreaDependentAuras(areaId);
|
||||
if (player->GetAreaId() == areaId)
|
||||
player->UpdateAreaDependentAuras(areaId);
|
||||
}
|
||||
|
||||
void BattlefieldWG::OnBattleEnd(bool endByTimer)
|
||||
{
|
||||
// Remove relic
|
||||
if (GameObject* go = GetRelic())
|
||||
go->RemoveFromWorld();
|
||||
m_titansRelic = 0;
|
||||
// Remove relic
|
||||
if (GameObject* go = GetRelic())
|
||||
go->RemoveFromWorld();
|
||||
m_titansRelic = 0;
|
||||
|
||||
// Remove turret
|
||||
for (GuidSet::const_iterator itr = CanonList.begin(); itr != CanonList.end(); ++itr)
|
||||
@@ -401,11 +401,11 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer)
|
||||
|
||||
// Saving data
|
||||
for (GameObjectBuilding::const_iterator itr = BuildingsInZone.begin(); itr != BuildingsInZone.end(); ++itr)
|
||||
{
|
||||
(*itr)->Rebuild();
|
||||
{
|
||||
(*itr)->Rebuild();
|
||||
(*itr)->Save();
|
||||
(*itr)->UpdateTurretAttack(true);
|
||||
}
|
||||
(*itr)->UpdateTurretAttack(true);
|
||||
}
|
||||
|
||||
for (Workshop::const_iterator itr = WorkshopsList.begin(); itr != WorkshopsList.end(); ++itr)
|
||||
(*itr)->Save();
|
||||
@@ -415,59 +415,59 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer)
|
||||
for (GuidSet::const_iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr)
|
||||
if (Unit* unit = ObjectAccessor::FindUnit(*itr))
|
||||
if (Creature* creature = unit->ToCreature())
|
||||
creature->DespawnOrUnsummon(1);
|
||||
creature->DespawnOrUnsummon(1);
|
||||
|
||||
m_vehicles[team].clear();
|
||||
}
|
||||
|
||||
uint8 damagedTowersDef = GetData(BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT);
|
||||
uint8 brokenTowersDef = GetData(BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT);
|
||||
uint8 damagedTowersAtt = GetData(BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT);
|
||||
uint8 brokenTowersAtt = GetData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT);
|
||||
uint32 spellDamagedDef = SPELL_DAMAGED_TOWER;
|
||||
uint32 spellFullDef = SPELL_DESTROYED_TOWER;
|
||||
uint32 spellDamagedAtt = SPELL_DAMAGED_BUILDING;
|
||||
uint32 spellFullAtt = SPELL_INTACT_BUILDING;
|
||||
uint8 damagedTowersDef = GetData(BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT);
|
||||
uint8 brokenTowersDef = GetData(BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT);
|
||||
uint8 damagedTowersAtt = GetData(BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT);
|
||||
uint8 brokenTowersAtt = GetData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT);
|
||||
uint32 spellDamagedDef = SPELL_DAMAGED_TOWER;
|
||||
uint32 spellFullDef = SPELL_DESTROYED_TOWER;
|
||||
uint32 spellDamagedAtt = SPELL_DAMAGED_BUILDING;
|
||||
uint32 spellFullAtt = SPELL_INTACT_BUILDING;
|
||||
|
||||
if (!endByTimer)
|
||||
{
|
||||
brokenTowersDef = GetData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT);
|
||||
brokenTowersAtt = GetData(BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT);
|
||||
spellDamagedDef = SPELL_DAMAGED_BUILDING;
|
||||
spellFullDef = SPELL_INTACT_BUILDING;
|
||||
spellDamagedAtt = SPELL_DAMAGED_TOWER;
|
||||
spellFullAtt = SPELL_DESTROYED_TOWER;
|
||||
}
|
||||
if (!endByTimer)
|
||||
{
|
||||
brokenTowersDef = GetData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT);
|
||||
brokenTowersAtt = GetData(BATTLEFIELD_WG_DATA_BROKEN_TOWER_ATT);
|
||||
spellDamagedDef = SPELL_DAMAGED_BUILDING;
|
||||
spellFullDef = SPELL_INTACT_BUILDING;
|
||||
spellDamagedAtt = SPELL_DAMAGED_TOWER;
|
||||
spellFullAtt = SPELL_DESTROYED_TOWER;
|
||||
}
|
||||
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[GetDefenderTeam()].begin(); itr != m_PlayersInWar[GetDefenderTeam()].end(); ++itr)
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[GetDefenderTeam()].begin(); itr != m_PlayersInWar[GetDefenderTeam()].end(); ++itr)
|
||||
{
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
{
|
||||
// Victory in Wintergrasp
|
||||
player->AreaExploredOrEventHappens(GetDefenderTeam() ? 13183 : 13181); // HORDE / ALLY win wg quest id
|
||||
// Victory in Wintergrasp
|
||||
player->AreaExploredOrEventHappens(GetDefenderTeam() ? 13183 : 13181); // HORDE / ALLY win wg quest id
|
||||
|
||||
player->CastSpell(player, SPELL_ESSENCE_OF_WINTERGRASP, true);
|
||||
player->CastSpell(player, SPELL_ESSENCE_OF_WINTERGRASP, true);
|
||||
player->CastSpell(player, SPELL_VICTORY_REWARD, true);
|
||||
RemoveAurasFromPlayer(player);
|
||||
RemoveAurasFromPlayer(player);
|
||||
|
||||
for (uint8 i = 0; i < damagedTowersDef; ++i)
|
||||
player->CastSpell(player, spellDamagedDef, true);
|
||||
for (uint8 i = 0; i < brokenTowersDef; ++i)
|
||||
player->CastSpell(player, spellFullDef, true);
|
||||
for (uint8 i = 0; i < damagedTowersDef; ++i)
|
||||
player->CastSpell(player, spellDamagedDef, true);
|
||||
for (uint8 i = 0; i < brokenTowersDef; ++i)
|
||||
player->CastSpell(player, spellFullDef, true);
|
||||
}
|
||||
}
|
||||
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[GetAttackerTeam()].begin(); itr != m_PlayersInWar[GetAttackerTeam()].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
{
|
||||
{
|
||||
player->CastSpell(player, SPELL_DEFEAT_REWARD, true);
|
||||
RemoveAurasFromPlayer(player);
|
||||
RemoveAurasFromPlayer(player);
|
||||
|
||||
for (uint8 i = 0; i < damagedTowersAtt; ++i)
|
||||
player->CastSpell(player, spellDamagedAtt, true);
|
||||
for (uint8 i = 0; i < brokenTowersAtt; ++i)
|
||||
player->CastSpell(player, spellFullAtt, true);
|
||||
}
|
||||
for (uint8 i = 0; i < damagedTowersAtt; ++i)
|
||||
player->CastSpell(player, spellDamagedAtt, true);
|
||||
for (uint8 i = 0; i < brokenTowersAtt; ++i)
|
||||
player->CastSpell(player, spellFullAtt, true);
|
||||
}
|
||||
|
||||
if (!endByTimer)
|
||||
{
|
||||
@@ -484,9 +484,9 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer)
|
||||
}
|
||||
}
|
||||
|
||||
// Clear players in war list at the end.
|
||||
m_PlayersInWar[TEAM_ALLIANCE].clear();
|
||||
m_PlayersInWar[TEAM_HORDE].clear();
|
||||
// Clear players in war list at the end.
|
||||
m_PlayersInWar[TEAM_ALLIANCE].clear();
|
||||
m_PlayersInWar[TEAM_HORDE].clear();
|
||||
|
||||
if (!endByTimer) // win alli/horde
|
||||
SendWarningToAllInZone((GetDefenderTeam() == TEAM_ALLIANCE) ? BATTLEFIELD_WG_TEXT_WIN_KEEP : (BATTLEFIELD_WG_TEXT_WIN_KEEP + 2));
|
||||
@@ -500,8 +500,8 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer)
|
||||
|
||||
void BattlefieldWG::OnStartGrouping()
|
||||
{
|
||||
if (!IsWarTime())
|
||||
SendWarningToAllInZone(BATTLEFIELD_WG_TEXT_WILL_START);
|
||||
if (!IsWarTime())
|
||||
SendWarningToAllInZone(BATTLEFIELD_WG_TEXT_WILL_START);
|
||||
}
|
||||
|
||||
uint8 BattlefieldWG::GetSpiritGraveyardId(uint32 areaId) const
|
||||
@@ -532,16 +532,16 @@ uint8 BattlefieldWG::GetSpiritGraveyardId(uint32 areaId) const
|
||||
|
||||
uint32 BattlefieldWG::GetAreaByGraveyardId(uint8 gId) const
|
||||
{
|
||||
switch (gId)
|
||||
switch (gId)
|
||||
{
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_NE:
|
||||
return AREA_THE_SUNKEN_RING;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_NW:
|
||||
return AREA_THE_BROKEN_TEMPLE;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_SW:
|
||||
return AREA_WESTPARK_WORKSHOP;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_SE:
|
||||
return AREA_EASTPARK_WORKSHOP;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_NE:
|
||||
return AREA_THE_SUNKEN_RING;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_NW:
|
||||
return AREA_THE_BROKEN_TEMPLE;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_SW:
|
||||
return AREA_WESTPARK_WORKSHOP;
|
||||
case BATTLEFIELD_WG_GY_WORKSHOP_SE:
|
||||
return AREA_EASTPARK_WORKSHOP;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -557,9 +557,9 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature)
|
||||
{
|
||||
TeamId teamId = (creature->GetEntry() == NPC_DWARVEN_SPIRIT_GUIDE ? TEAM_ALLIANCE : TEAM_HORDE);
|
||||
uint8 graveyardId = GetSpiritGraveyardId(creature->GetAreaId(true));
|
||||
// xinef: little workaround, there are 2 spirit guides in same area
|
||||
if (creature->IsWithinDist2d(5103.0f, 3461.5f, 5.0f))
|
||||
graveyardId = BATTLEFIELD_WG_GY_WORKSHOP_NW;
|
||||
// xinef: little workaround, there are 2 spirit guides in same area
|
||||
if (creature->IsWithinDist2d(5103.0f, 3461.5f, 5.0f))
|
||||
graveyardId = BATTLEFIELD_WG_GY_WORKSHOP_NW;
|
||||
|
||||
if (m_GraveyardList[graveyardId])
|
||||
m_GraveyardList[graveyardId]->SetSpirit(creature, teamId);
|
||||
@@ -577,12 +577,12 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature)
|
||||
case NPC_WINTERGRASP_CATAPULT:
|
||||
case NPC_WINTERGRASP_DEMOLISHER:
|
||||
{
|
||||
if (!creature->IsSummon() || !creature->ToTempSummon()->GetSummonerGUID())
|
||||
if (!creature->IsSummon() || !creature->ToTempSummon()->GetSummonerGUID())
|
||||
return;
|
||||
|
||||
Player* creator = ObjectAccessor::FindPlayer(creature->ToTempSummon()->GetSummonerGUID());
|
||||
if (!creator)
|
||||
return;
|
||||
Player* creator = ObjectAccessor::FindPlayer(creature->ToTempSummon()->GetSummonerGUID());
|
||||
if (!creator)
|
||||
return;
|
||||
TeamId team = creator->GetTeamId();
|
||||
|
||||
if (team == TEAM_HORDE)
|
||||
@@ -617,16 +617,16 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NPC_WINTERGRASP_SIEGE_ENGINE_TURRET_HORDE:
|
||||
case NPC_WINTERGRASP_SIEGE_ENGINE_TURRET_ALLIANCE:
|
||||
{
|
||||
if (!creature->IsSummon() || !creature->ToTempSummon()->GetSummonerGUID())
|
||||
case NPC_WINTERGRASP_SIEGE_ENGINE_TURRET_HORDE:
|
||||
case NPC_WINTERGRASP_SIEGE_ENGINE_TURRET_ALLIANCE:
|
||||
{
|
||||
if (!creature->IsSummon() || !creature->ToTempSummon()->GetSummonerGUID())
|
||||
return;
|
||||
|
||||
if (Unit* owner = creature->ToTempSummon()->GetSummoner())
|
||||
creature->setFaction(owner->getFaction());
|
||||
break;
|
||||
}
|
||||
if (Unit* owner = creature->ToTempSummon()->GetSummoner())
|
||||
creature->setFaction(owner->getFaction());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -712,26 +712,26 @@ void BattlefieldWG::HandleKill(Player* killer, Unit* victim)
|
||||
bool again = false;
|
||||
TeamId killerTeam = killer->GetTeamId();
|
||||
|
||||
// xinef: tower cannons also grant rank
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER || IsKeepNpc(victim->GetEntry()) || victim->GetEntry() == NPC_WINTERGRASP_TOWER_CANNON)
|
||||
// xinef: tower cannons also grant rank
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER || IsKeepNpc(victim->GetEntry()) || victim->GetEntry() == NPC_WINTERGRASP_TOWER_CANNON)
|
||||
{
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[killerTeam].begin(); itr != m_PlayersInWar[killerTeam].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
if (player->GetDistance2d(killer) < 40)
|
||||
PromotePlayer(player);
|
||||
|
||||
// Xinef: Allow to Skin non-released corpse
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER)
|
||||
victim->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
|
||||
// Xinef: Allow to Skin non-released corpse
|
||||
if (victim->GetTypeId() == TYPEID_PLAYER)
|
||||
victim->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
|
||||
}
|
||||
else if (victim->IsVehicle() && !killer->IsFriendlyTo(victim))
|
||||
{
|
||||
// Quest - Wintergrasp - PvP Kill - Vehicle
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[killerTeam].begin(); itr != m_PlayersInWar[killerTeam].end(); ++itr)
|
||||
else if (victim->IsVehicle() && !killer->IsFriendlyTo(victim))
|
||||
{
|
||||
// Quest - Wintergrasp - PvP Kill - Vehicle
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[killerTeam].begin(); itr != m_PlayersInWar[killerTeam].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
if (player->GetDistance2d(killer) < 40)
|
||||
player->KilledMonsterCredit(NPC_QUEST_PVP_KILL_VEHICLE, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool BattlefieldWG::FindAndRemoveVehicleFromList(Unit* vehicle)
|
||||
@@ -806,7 +806,7 @@ void BattlefieldWG::OnPlayerJoinWar(Player* player)
|
||||
RemoveAurasFromPlayer(player);
|
||||
|
||||
player->CastSpell(player, SPELL_RECRUIT, true);
|
||||
AddUpdateTenacity(player);
|
||||
AddUpdateTenacity(player);
|
||||
|
||||
if (player->GetTeamId() == GetDefenderTeam())
|
||||
player->TeleportTo(571, 5345, 2842, 410, 3.14f);
|
||||
@@ -841,7 +841,7 @@ void BattlefieldWG::OnPlayerLeaveWar(Player* player)
|
||||
RemoveAurasFromPlayer(player);
|
||||
}
|
||||
|
||||
RemoveUpdateTenacity(player);
|
||||
RemoveUpdateTenacity(player);
|
||||
}
|
||||
|
||||
void BattlefieldWG::OnPlayerLeaveZone(Player* player)
|
||||
@@ -864,18 +864,18 @@ void BattlefieldWG::OnPlayerEnterZone(Player* player)
|
||||
// Send worldstate to player
|
||||
SendInitWorldStatesTo(player);
|
||||
|
||||
// xinef: Attacker, if hidden in relic room kick him out
|
||||
if (player->GetTeamId() == GetAttackerTeam())
|
||||
if (player->GetPositionX() > 5400.0f && player->GetPositionX() < 5490.0f && player->GetPositionY() > 2803.0f && player->GetPositionY() < 2878.0f)
|
||||
KickPlayerFromBattlefield(player->GetGUID());
|
||||
// xinef: Attacker, if hidden in relic room kick him out
|
||||
if (player->GetTeamId() == GetAttackerTeam())
|
||||
if (player->GetPositionX() > 5400.0f && player->GetPositionX() < 5490.0f && player->GetPositionY() > 2803.0f && player->GetPositionY() < 2878.0f)
|
||||
KickPlayerFromBattlefield(player->GetGUID());
|
||||
}
|
||||
|
||||
uint32 BattlefieldWG::GetData(uint32 data) const
|
||||
{
|
||||
// xinef: little hack, same area for default horde graveyard
|
||||
// this graveyard is the one of broken temple!
|
||||
if (data == AREA_THE_CHILLED_QUAGMIRE)
|
||||
data = AREA_THE_BROKEN_TEMPLE;
|
||||
// xinef: little hack, same area for default horde graveyard
|
||||
// this graveyard is the one of broken temple!
|
||||
if (data == AREA_THE_CHILLED_QUAGMIRE)
|
||||
data = AREA_THE_BROKEN_TEMPLE;
|
||||
|
||||
switch (data)
|
||||
{
|
||||
@@ -919,15 +919,15 @@ void BattlefieldWG::FillInitialWorldStates(WorldPacket& data)
|
||||
void BattlefieldWG::SendInitWorldStatesTo(Player* player)
|
||||
{
|
||||
WorldPacket data(SMSG_INIT_WORLD_STATES, (4 + 4 + 4 + 2 + (BuildingsInZone.size() * 8) + (WorkshopsList.size() * 8)));
|
||||
|
||||
|
||||
data << uint32(m_MapId);
|
||||
data << uint32(m_ZoneId);
|
||||
data << uint32(0);
|
||||
data << uint32(0);
|
||||
data << uint16(10 + BuildingsInZone.size() + WorkshopsList.size()); // Number of fields
|
||||
|
||||
|
||||
FillInitialWorldStates(data);
|
||||
|
||||
player->GetSession()->SendPacket(&data);
|
||||
|
||||
player->GetSession()->SendPacket(&data);
|
||||
}
|
||||
|
||||
void BattlefieldWG::SendInitWorldStatesToAll()
|
||||
@@ -970,9 +970,9 @@ void BattlefieldWG::UpdatedDestroyedTowerCount(TeamId team, GameObject* go)
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[GetDefenderTeam()].begin(); itr != m_PlayersInWar[GetDefenderTeam()].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
{
|
||||
// Quest - Wintergrasp - Southern Tower Kill
|
||||
if (go && player->GetDistance2d(go) < 200.0f)
|
||||
player->KilledMonsterCredit(NPC_QUEST_SOUTHERN_TOWER_KILL, 0);
|
||||
// Quest - Wintergrasp - Southern Tower Kill
|
||||
if (go && player->GetDistance2d(go) < 200.0f)
|
||||
player->KilledMonsterCredit(NPC_QUEST_SOUTHERN_TOWER_KILL, 0);
|
||||
|
||||
player->CastSpell(player, SPELL_TOWER_CONTROL, true);
|
||||
player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, SPELL_LEANING_TOWER_ACHIEVEMENT, 0, 0);
|
||||
@@ -988,18 +988,18 @@ void BattlefieldWG::UpdatedDestroyedTowerCount(TeamId team, GameObject* go)
|
||||
SendInitWorldStatesToAll();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Xinef: rest of structures, quest credit
|
||||
else
|
||||
{
|
||||
// Xinef: rest of structures, quest credit
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[GetAttackerTeam()].begin(); itr != m_PlayersInWar[GetAttackerTeam()].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
{
|
||||
// Quest - Wintergrasp - Vehicle Protected
|
||||
if (go && player->GetDistance2d(go) < 100.0f)
|
||||
player->KilledMonsterCredit(NPC_QUEST_VEHICLE_PROTECTED, 0);
|
||||
}
|
||||
// Quest - Wintergrasp - Vehicle Protected
|
||||
if (go && player->GetDistance2d(go) < 100.0f)
|
||||
player->KilledMonsterCredit(NPC_QUEST_VEHICLE_PROTECTED, 0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BattlefieldWG::ProcessEvent(WorldObject *obj, uint32 eventId)
|
||||
@@ -1024,19 +1024,19 @@ void BattlefieldWG::ProcessEvent(WorldObject *obj, uint32 eventId)
|
||||
// if destroy or damage event, search the wall/tower and update worldstate/send warning message
|
||||
for (GameObjectBuilding::const_iterator itr = BuildingsInZone.begin(); itr != BuildingsInZone.end(); ++itr)
|
||||
{
|
||||
if (GameObject* build = ObjectAccessor::GetGameObject(*obj, (*itr)->m_Build))
|
||||
{
|
||||
if (go->GetEntry() == build->GetEntry())
|
||||
{
|
||||
if (build->GetGOInfo()->building.damagedEvent == eventId)
|
||||
(*itr)->Damaged();
|
||||
if (GameObject* build = ObjectAccessor::GetGameObject(*obj, (*itr)->m_Build))
|
||||
{
|
||||
if (go->GetEntry() == build->GetEntry())
|
||||
{
|
||||
if (build->GetGOInfo()->building.damagedEvent == eventId)
|
||||
(*itr)->Damaged();
|
||||
|
||||
if (build->GetGOInfo()->building.destroyedEvent == eventId)
|
||||
(*itr)->Destroyed();
|
||||
if (build->GetGOInfo()->building.destroyedEvent == eventId)
|
||||
(*itr)->Destroyed();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1044,32 +1044,32 @@ void BattlefieldWG::ProcessEvent(WorldObject *obj, uint32 eventId)
|
||||
void BattlefieldWG::UpdateDamagedTowerCount(TeamId team)
|
||||
{
|
||||
if (team == GetAttackerTeam())
|
||||
{
|
||||
{
|
||||
UpdateData(BATTLEFIELD_WG_DATA_DAMAGED_TOWER_ATT, 1);
|
||||
UpdateData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT, -1);
|
||||
}
|
||||
UpdateData(BATTLEFIELD_WG_DATA_INTACT_TOWER_ATT, -1);
|
||||
}
|
||||
}
|
||||
|
||||
uint32 BattlefieldWG::GetHonorBuff(int32 stack) const
|
||||
{
|
||||
if (stack < 5)
|
||||
return 0;
|
||||
if (stack < 10)
|
||||
return SPELL_GREAT_HONOR;
|
||||
if (stack < 15)
|
||||
return SPELL_GREATER_HONOR;
|
||||
return SPELL_GREATEST_HONOR;
|
||||
if (stack < 5)
|
||||
return 0;
|
||||
if (stack < 10)
|
||||
return SPELL_GREAT_HONOR;
|
||||
if (stack < 15)
|
||||
return SPELL_GREATER_HONOR;
|
||||
return SPELL_GREATEST_HONOR;
|
||||
}
|
||||
|
||||
void BattlefieldWG::AddUpdateTenacity(Player* player)
|
||||
{
|
||||
m_updateTenacityList.insert(player->GetGUID());
|
||||
m_updateTenacityList.insert(player->GetGUID());
|
||||
}
|
||||
|
||||
void BattlefieldWG::RemoveUpdateTenacity(Player* player)
|
||||
{
|
||||
m_updateTenacityList.erase(player->GetGUID());
|
||||
m_updateTenacityList.insert(0);
|
||||
m_updateTenacityList.erase(player->GetGUID());
|
||||
m_updateTenacityList.insert(0);
|
||||
}
|
||||
|
||||
void BattlefieldWG::UpdateTenacity()
|
||||
@@ -1087,31 +1087,31 @@ void BattlefieldWG::UpdateTenacity()
|
||||
newStack = int32((1.0f - ((float)alliancePlayers / hordePlayers)) * 4.0f); // negative, should cast on horde
|
||||
}
|
||||
|
||||
// Return if no change in stack and apply tenacity to new player
|
||||
// Return if no change in stack and apply tenacity to new player
|
||||
if (newStack == m_tenacityStack)
|
||||
{
|
||||
for (GuidSet::const_iterator itr = m_updateTenacityList.begin(); itr != m_updateTenacityList.end(); ++itr)
|
||||
if (Player* newPlayer = ObjectAccessor::FindPlayer(*itr))
|
||||
if ((newPlayer->GetTeamId() == TEAM_ALLIANCE && m_tenacityStack > 0) || (newPlayer->GetTeamId() == TEAM_HORDE && m_tenacityStack < 0))
|
||||
{
|
||||
newStack = std::min(abs(newStack), 20);
|
||||
uint32 buff_honor = GetHonorBuff(newStack);
|
||||
newPlayer->SetAuraStack(SPELL_TENACITY, newPlayer, newStack);
|
||||
if (buff_honor)
|
||||
newPlayer->CastSpell(newPlayer, buff_honor, true);
|
||||
}
|
||||
{
|
||||
for (GuidSet::const_iterator itr = m_updateTenacityList.begin(); itr != m_updateTenacityList.end(); ++itr)
|
||||
if (Player* newPlayer = ObjectAccessor::FindPlayer(*itr))
|
||||
if ((newPlayer->GetTeamId() == TEAM_ALLIANCE && m_tenacityStack > 0) || (newPlayer->GetTeamId() == TEAM_HORDE && m_tenacityStack < 0))
|
||||
{
|
||||
newStack = std::min(abs(newStack), 20);
|
||||
uint32 buff_honor = GetHonorBuff(newStack);
|
||||
newPlayer->SetAuraStack(SPELL_TENACITY, newPlayer, newStack);
|
||||
if (buff_honor)
|
||||
newPlayer->CastSpell(newPlayer, buff_honor, true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_tenacityStack != 0)
|
||||
{
|
||||
if (m_tenacityStack > 0 && newStack <= 0) // old buff was on alliance
|
||||
team = TEAM_ALLIANCE;
|
||||
else if (m_tenacityStack < 0 && newStack >= 0) // old buff was on horde
|
||||
team = TEAM_HORDE;
|
||||
}
|
||||
{
|
||||
if (m_tenacityStack > 0 && newStack <= 0) // old buff was on alliance
|
||||
team = TEAM_ALLIANCE;
|
||||
else if (m_tenacityStack < 0 && newStack >= 0) // old buff was on horde
|
||||
team = TEAM_HORDE;
|
||||
}
|
||||
|
||||
m_tenacityStack = newStack;
|
||||
m_tenacityStack = newStack;
|
||||
// Remove old buff
|
||||
if (team != TEAM_NEUTRAL)
|
||||
{
|
||||
@@ -1128,24 +1128,24 @@ void BattlefieldWG::UpdateTenacity()
|
||||
if (newStack)
|
||||
{
|
||||
team = newStack > 0 ? TEAM_ALLIANCE : TEAM_HORDE;
|
||||
newStack = std::min(abs(newStack), 20);
|
||||
newStack = std::min(abs(newStack), 20);
|
||||
uint32 buff_honor = GetHonorBuff(newStack);
|
||||
|
||||
for (GuidSet::const_iterator itr = m_PlayersInWar[team].begin(); itr != m_PlayersInWar[team].end(); ++itr)
|
||||
if (Player* player = ObjectAccessor::FindPlayer(*itr))
|
||||
{
|
||||
{
|
||||
player->SetAuraStack(SPELL_TENACITY, player, newStack);
|
||||
if (buff_honor)
|
||||
player->CastSpell(player, buff_honor, true);
|
||||
}
|
||||
if (buff_honor)
|
||||
player->CastSpell(player, buff_honor, true);
|
||||
}
|
||||
|
||||
for (GuidSet::const_iterator itr = m_vehicles[team].begin(); itr != m_vehicles[team].end(); ++itr)
|
||||
if (Unit* unit = ObjectAccessor::FindUnit(*itr))
|
||||
{
|
||||
{
|
||||
unit->SetAuraStack(SPELL_TENACITY_VEHICLE, unit, newStack);
|
||||
if (buff_honor)
|
||||
unit->CastSpell(unit, buff_honor, true);
|
||||
}
|
||||
if (buff_honor)
|
||||
unit->CastSpell(unit, buff_honor, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user