214 SF_LOG_DEBUG(
"bg.battleground",
"Respawn Alliance flag");
443 int32 message_id = 0;
568 SF_LOG_ERROR(
"bg.battleground",
"BattlegroundWS: Removing offline player who has the FLAG!!");
579 SF_LOG_ERROR(
"bg.battleground",
"BattlegroundWS: Removing offline player who has the FLAG!!");
658 if (!
AddObject(
BG_WS_OBJECT_A_FLAG,
BG_OBJECT_A_FLAG_WS_ENTRY, 1540.423f, 1481.325f, 351.8284f, 3.089233f, 0, 0, 0.9996573f, 0.02617699f,
BG_WS_FLAG_RESPAWN_TIME / 1000)
659 || !
AddObject(
BG_WS_OBJECT_H_FLAG,
BG_OBJECT_H_FLAG_WS_ENTRY, 916.0226f, 1434.405f, 345.413f, 0.01745329f, 0, 0, 0.008726535f, 0.9999619f,
BG_WS_FLAG_RESPAWN_TIME / 1000)
661 || !
AddObject(
BG_WS_OBJECT_SPEEDBUFF_1,
BG_OBJECTID_SPEEDBUFF_ENTRY, 1449.93f, 1470.71f, 342.6346f, -1.64061f, 0, 0, 0.7313537f, -0.6819983f,
BUFF_RESPAWN_TIME)
662 || !
AddObject(
BG_WS_OBJECT_SPEEDBUFF_2,
BG_OBJECTID_SPEEDBUFF_ENTRY, 1005.171f, 1447.946f, 335.9032f, 1.64061f, 0, 0, 0.7313537f, 0.6819984f,
BUFF_RESPAWN_TIME)
663 || !
AddObject(
BG_WS_OBJECT_REGENBUFF_1,
BG_OBJECTID_REGENBUFF_ENTRY, 1317.506f, 1550.851f, 313.2344f, -0.2617996f, 0, 0, 0.1305263f, -0.9914448f,
BUFF_RESPAWN_TIME)
664 || !
AddObject(
BG_WS_OBJECT_REGENBUFF_2,
BG_OBJECTID_REGENBUFF_ENTRY, 1110.451f, 1353.656f, 316.5181f, -0.6806787f, 0, 0, 0.333807f, -0.9426414f,
BUFF_RESPAWN_TIME)
665 || !
AddObject(
BG_WS_OBJECT_BERSERKBUFF_1,
BG_OBJECTID_BERSERKERBUFF_ENTRY, 1320.09f, 1378.79f, 314.7532f, 1.186824f, 0, 0, 0.5591929f, 0.8290376f,
BUFF_RESPAWN_TIME)
666 || !
AddObject(
BG_WS_OBJECT_BERSERKBUFF_2,
BG_OBJECTID_BERSERKERBUFF_ENTRY, 1139.688f, 1560.288f, 306.8432f, -2.443461f, 0, 0, 0.9396926f, -0.3420201f,
BUFF_RESPAWN_TIME)
668 || !
AddObject(
BG_WS_OBJECT_DOOR_A_1,
BG_OBJECT_DOOR_A_1_WS_ENTRY, 1503.335f, 1493.466f, 352.1888f, 3.115414f, 0, 0, 0.9999143f, 0.01308903f,
RESPAWN_IMMEDIATELY)
669 || !
AddObject(
BG_WS_OBJECT_DOOR_A_2,
BG_OBJECT_DOOR_A_2_WS_ENTRY, 1492.478f, 1457.912f, 342.9689f, 3.115414f, 0, 0, 0.9999143f, 0.01308903f,
RESPAWN_IMMEDIATELY)
670 || !
AddObject(
BG_WS_OBJECT_DOOR_A_3,
BG_OBJECT_DOOR_A_3_WS_ENTRY, 1468.503f, 1494.357f, 351.8618f, 3.115414f, 0, 0, 0.9999143f, 0.01308903f,
RESPAWN_IMMEDIATELY)
671 || !
AddObject(
BG_WS_OBJECT_DOOR_A_4,
BG_OBJECT_DOOR_A_4_WS_ENTRY, 1471.555f, 1458.778f, 362.6332f, 3.115414f, 0, 0, 0.9999143f, 0.01308903f,
RESPAWN_IMMEDIATELY)
672 || !
AddObject(
BG_WS_OBJECT_DOOR_A_5,
BG_OBJECT_DOOR_A_5_WS_ENTRY, 1492.347f, 1458.34f, 342.3712f, -0.03490669f, 0, 0, 0.01745246f, -0.9998477f,
RESPAWN_IMMEDIATELY)
673 || !
AddObject(
BG_WS_OBJECT_DOOR_A_6,
BG_OBJECT_DOOR_A_6_WS_ENTRY, 1503.466f, 1493.367f, 351.7352f, -0.03490669f, 0, 0, 0.01745246f, -0.9998477f,
RESPAWN_IMMEDIATELY)
675 || !
AddObject(
BG_WS_OBJECT_DOOR_H_1,
BG_OBJECT_DOOR_H_1_WS_ENTRY, 949.1663f, 1423.772f, 345.6241f, -0.5756807f, -0.01673368f, -0.004956111f, -0.2839723f, 0.9586737f,
RESPAWN_IMMEDIATELY)
676 || !
AddObject(
BG_WS_OBJECT_DOOR_H_2,
BG_OBJECT_DOOR_H_2_WS_ENTRY, 953.0507f, 1459.842f, 340.6526f, -1.99662f, -0.1971825f, 0.1575096f, -0.8239487f, 0.5073641f,
RESPAWN_IMMEDIATELY)
677 || !
AddObject(
BG_WS_OBJECT_DOOR_H_3,
BG_OBJECT_DOOR_H_3_WS_ENTRY, 949.9523f, 1422.751f, 344.9273f, 0.0f, 0, 0, 0, 1,
RESPAWN_IMMEDIATELY)
678 || !
AddObject(
BG_WS_OBJECT_DOOR_H_4,
BG_OBJECT_DOOR_H_4_WS_ENTRY, 950.7952f, 1459.583f, 342.1523f, 0.05235988f, 0, 0, 0.02617695f, 0.9996573f,
RESPAWN_IMMEDIATELY)
681 SF_LOG_ERROR(
"sql.sql",
"BatteGroundWS: Failed to spawn some object Battleground not created!");
688 SF_LOG_ERROR(
"sql.sql",
"BatteGroundWS: Failed to spawn Alliance spirit guide! Battleground not created!");
695 SF_LOG_ERROR(
"sql.sql",
"BatteGroundWS: Failed to spawn Horde spirit guide! Battleground not created!");
699 SF_LOG_DEBUG(
"bg.battleground",
"BatteGroundWS: BG objects and spirit guides spawned");
@ BG_CRITERIA_CHECK_SAVE_THE_DAY
@ BG_OBJECTID_REGENBUFF_ENTRY
@ BG_OBJECTID_BERSERKERBUFF_ENTRY
@ BG_OBJECTID_SPEEDBUFF_ENTRY
@ SPELL_RECENTLY_DROPPED_FLAG
@ BG_STARTING_EVENT_THIRD
@ BG_STARTING_EVENT_SECOND
@ BG_STARTING_EVENT_FIRST
@ BG_STARTING_EVENT_FOURTH
uint32 BG_WSG_Honor[BG_HONOR_MODE_NUM][BG_WSG_REWARD_NUM]
@ BG_WS_FLAG_STATE_ON_GROUND
@ BG_WS_FLAG_STATE_ON_PLAYER
@ BG_WS_FLAG_STATE_WAIT_RESPAWN
@ BG_WS_FLAG_STATE_ON_BASE
@ BG_WS_OBJECT_BERSERKBUFF_1
@ BG_WS_OBJECT_REGENBUFF_2
@ BG_WS_OBJECT_SPEEDBUFF_1
@ BG_WS_OBJECT_REGENBUFF_1
@ BG_WS_OBJECT_SPEEDBUFF_2
@ BG_WS_OBJECT_BERSERKBUFF_2
@ BG_WS_SPELL_SILVERWING_FLAG_PICKED
@ BG_WS_SPELL_WARSONG_FLAG
@ BG_WS_SPELL_SILVERWING_FLAG_DROPPED
@ BG_WS_SPELL_WARSONG_FLAG_PICKED
@ BG_WS_SPELL_WARSONG_FLAG_DROPPED
@ BG_WS_SPELL_SILVERWING_FLAG
@ WS_SPIRIT_MAIN_ALLIANCE
@ BG_WS_SOUND_FLAG_CAPTURED_HORDE
@ BG_WS_SOUND_FLAGS_RESPAWNED
@ BG_WS_SOUND_FLAG_CAPTURED_ALLIANCE
@ BG_WS_SOUND_HORDE_FLAG_PICKED_UP
@ BG_WS_SOUND_ALLIANCE_FLAG_PICKED_UP
@ BG_WS_SOUND_FLAG_RETURNED
@ WS_OBJECTIVE_RETURN_FLAG
@ WS_OBJECTIVE_CAPTURE_FLAG
@ WS_SPELL_BRUTAL_ASSAULT
@ WS_SPELL_FOCUSED_ASSAULT
@ BG_OBJECT_H_FLAG_GROUND_WS_ENTRY
@ BG_OBJECT_DOOR_A_4_WS_ENTRY
@ BG_OBJECT_DOOR_A_1_WS_ENTRY
@ BG_OBJECT_DOOR_A_3_WS_ENTRY
@ BG_OBJECT_DOOR_A_6_WS_ENTRY
@ BG_OBJECT_DOOR_H_2_WS_ENTRY
@ BG_OBJECT_A_FLAG_GROUND_WS_ENTRY
@ BG_OBJECT_DOOR_H_4_WS_ENTRY
@ BG_OBJECT_DOOR_H_1_WS_ENTRY
@ BG_OBJECT_DOOR_A_2_WS_ENTRY
@ BG_OBJECT_DOOR_A_5_WS_ENTRY
@ BG_OBJECT_DOOR_H_3_WS_ENTRY
@ BG_OBJECT_A_FLAG_WS_ENTRY
@ BG_OBJECT_H_FLAG_WS_ENTRY
#define WS_EVENT_START_BATTLE
@ BG_WS_FLAG_RESPAWN_TIME
@ BG_WS_FLAG_UNK_ALLIANCE
@ BG_WS_FLAG_CAPTURES_MAX
@ BG_WS_FLAG_STATE_ALLIANCE
@ BG_WS_FLAG_CAPTURES_HORDE
@ BG_WS_STATE_TIMER_ACTIVE
@ BG_WS_FLAG_CAPTURES_ALLIANCE
@ WS_GRAVEYARD_FLAGROOM_ALLIANCE
@ WS_GRAVEYARD_MAIN_ALLIANCE
@ WS_GRAVEYARD_FLAGROOM_HORDE
@ WS_GRAVEYARD_MAIN_HORDE
@ ACHIEVEMENT_TIMED_TYPE_EVENT
@ ACHIEVEMENT_TIMED_TYPE_SPELL_TARGET
@ ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE
DBCStorage< WorldSafeLocsEntry > sWorldSafeLocsStore(WorldSafeLocsEntryfmt)
@ LANG_BG_WS_ALLIANCE_FLAG_RESPAWNED
@ LANG_BG_WS_START_ONE_MINUTE
@ LANG_BG_WS_START_HALF_MINUTE
@ LANG_BG_WS_HORDE_FLAG_RESPAWNED
@ LANG_BG_WS_START_TWO_MINUTES
#define SF_LOG_DEBUG(filterType__,...)
#define SF_LOG_ERROR(filterType__,...)
uint32 GUID_LOPART(uint64 x)
@ CHAT_MSG_BG_SYSTEM_ALLIANCE
@ CHAT_MSG_BG_SYSTEM_NEUTRAL
@ CHAT_MSG_BG_SYSTEM_HORDE
@ AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT
virtual void AddPlayer(Player *player)
BattlegroundTypeId GetTypeID(bool GetRandom=false) const
void EndBattleground(uint32 winner)
virtual void HandleKillPlayer(Player *player, Player *killer)
static TeamId GetTeamIndexByTeamId(uint32 Team)
void DoorOpen(uint32 type)
void SpawnBGObject(uint32 type, uint32 respawntime)
void PlaySoundToAll(uint32 SoundID)
BattlegroundMap * GetBgMap() const
void DoorClose(uint32 type)
void UpdateWorldState(uint32 Field, uint32 Value)
BattlegroundScoreMap PlayerScores
void RewardHonorToTeam(uint32 Honor, uint32 TeamID)
bool AddSpiritGuide(uint32 type, float x, float y, float z, float o, uint32 team)
BattlegroundStatus GetStatus() const
virtual bool CheckAchievementCriteriaMeet(uint32, Player const *, Unit const *=NULL, uint32=0)
virtual void HandleAreaTrigger(Player *, uint32)
uint32 GetTeamScore(uint32 TeamID) const
void StartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
uint32 GetBonusHonorFromKill(uint32 kills) const
void RewardReputationToTeam(uint32 faction_id, uint32 Reputation, uint32 TeamID)
virtual void UpdatePlayerScore(Player *player, uint32 type, uint32 value, bool doAddHonor=true)
uint32 GetElapsedTime() const
void SendMessageToAll(int32 entry, ChatMsg type, Player const *source=NULL)
int32 m_TeamScores[BG_TEAMS_COUNT]
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)
virtual uint32 GetPrematureWinner()
uint32 StartMessageIds[BG_STARTING_EVENT_COUNT]
void FillInitialWorldStates(WorldStateBuilder &builder) OVERRIDE
WorldSafeLocsEntry const * GetClosestGraveYard(Player *player) OVERRIDE
void HandleAreaTrigger(Player *player, uint32 trigger) OVERRIDE
void AddPoint(uint32 TeamID, uint32 Points=1)
bool IsHordeFlagPickedup() const
void UpdateTeamScore(uint32 team)
uint32 GetPrematureWinner() OVERRIDE
void AddPlayer(Player *player) OVERRIDE
uint64 m_DroppedFlagGUID[2]
int32 _flagSpellForceTimer
bool IsAllianceFlagPickedup() const
uint32 m_ReputationCapture
void UpdatePlayerScore(Player *player, uint32 type, uint32 value, bool doAddHonor=true) OVERRIDE
void StartingEventCloseDoors() OVERRIDE
void SetLastFlagCapture(uint32 team)
void StartingEventOpenDoors() OVERRIDE
void SetDroppedFlagGUID(uint64 guid, int32 team=-1) OVERRIDE
void UpdateFlagState(uint32 team, uint32 value)
bool CheckAchievementCriteriaMeet(uint32 criteriaId, Player const *source, Unit const *target=NULL, uint32 miscvalue1=0) OVERRIDE
uint64 GetDroppedFlagGUID(uint32 TeamID) const
void EventPlayerClickedOnFlag(Player *player, GameObject *target_obj) OVERRIDE
void RespawnFlag(uint32 Team, bool captured)
bool SetupBattleground() OVERRIDE
void EventPlayerDroppedFlag(Player *player) OVERRIDE
void SetAllianceFlagPicker(uint64 guid)
void SetHordeFlagPicker(uint64 guid)
void PostUpdateImpl(uint32 diff) OVERRIDE
Post-update hook.
uint32 _lastFlagCaptureTeam
void EventPlayerCapturedFlag(Player *player)
void EndBattleground(uint32 winner)
void HandleKillPlayer(Player *player, Player *killer) OVERRIDE
void RemovePlayer(Player *player, uint64 guid, uint32 team) OVERRIDE
uint8 GetFlagState(uint32 team) const
void RespawnFlagAfterDrop(uint32 Team)
uint64 GetFlagPickerGUID(int32 team) const OVERRIDE
GameObjectTemplate const * GetGOInfo() const
static Player * FindPlayer(uint64)
void StartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry, uint32 timeLost=0)
void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1=0, uint64 miscValue2=0, uint64 miscValue3=0, Unit *unit=NULL)
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
void RemoveAurasWithInterruptFlags(uint32 flag, uint32 except=0)
void RemoveAurasDueToSpell(uint32 spellId, uint64 casterGUID=0, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true) const
void AppendState(uint32 worldstate, uint32 value)