diff options
author | kandera <kanderacutie@hotmail.com> | 2012-03-01 10:25:19 -0800 |
---|---|---|
committer | kandera <kanderacutie@hotmail.com> | 2012-03-01 10:25:19 -0800 |
commit | e59fc28aa662097d1665bfbeb1b3acb94a8a7838 (patch) | |
tree | da3d44c3054d445809a4cd756ffcfe6384938130 /src | |
parent | 6bb689b494f88b1dc6e435ca91e607837612f87c (diff) | |
parent | 4fad1f5b8ffb4eeaf2333c1be3a04b13b85cae49 (diff) |
Merge pull request #5498 from kandera/fix_wsg
Core/Battlegrounds: cleanup and fix flag issue in previous commit correc...
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp index f5ee788b68a..034de38fd9c 100755 --- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp @@ -435,10 +435,10 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target int32 message_id = 0; ChatMsg type = CHAT_MSG_BG_SYSTEM_NEUTRAL; - bool flagHandled = false; + //alliance flag picked up from base - if (Source->GetTeam() == HORDE && this->GetFlagState(ALLIANCE) == BG_WS_FLAG_STATE_ON_BASE - && this->BgObjects[BG_WS_OBJECT_A_FLAG] == target_obj->GetGUID()) + if (Source->GetTeam() == HORDE && GetFlagState(ALLIANCE) == BG_WS_FLAG_STATE_ON_BASE + && BgObjects[BG_WS_OBJECT_A_FLAG] == target_obj->GetGUID()) { message_id = LANG_BG_WS_PICKEDUP_AF; type = CHAT_MSG_BG_SYSTEM_HORDE; @@ -453,12 +453,11 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target Source->GetAchievementMgr().StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_SPELL_TARGET, BG_WS_SPELL_SILVERWING_FLAG_PICKED); if (_flagState[1] == BG_WS_FLAG_STATE_ON_PLAYER) _bothFlagsKept = true; - flagHandled = true; } //horde flag picked up from base - if (Source->GetTeam() == ALLIANCE && this->GetFlagState(HORDE) == BG_WS_FLAG_STATE_ON_BASE - && this->BgObjects[BG_WS_OBJECT_H_FLAG] == target_obj->GetGUID() && !flagHandled) + if (Source->GetTeam() == ALLIANCE && GetFlagState(HORDE) == BG_WS_FLAG_STATE_ON_BASE + && BgObjects[BG_WS_OBJECT_H_FLAG] == target_obj->GetGUID()) { message_id = LANG_BG_WS_PICKEDUP_HF; type = CHAT_MSG_BG_SYSTEM_ALLIANCE; @@ -473,11 +472,10 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target Source->GetAchievementMgr().StartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_SPELL_TARGET, BG_WS_SPELL_WARSONG_FLAG_PICKED); if (_flagState[0] == BG_WS_FLAG_STATE_ON_PLAYER) _bothFlagsKept = true; - flagHandled = true; } //Alliance flag on ground(not in base) (returned or picked up again from ground!) - if (GetFlagState(ALLIANCE) == BG_WS_FLAG_STATE_ON_GROUND && Source->IsWithinDistInMap(target_obj, 10) && !flagHandled) + if (GetFlagState(ALLIANCE) == BG_WS_FLAG_STATE_ON_GROUND && Source->IsWithinDistInMap(target_obj, 10) && BgObjects[BG_WS_OBJECT_A_FLAG] == target_obj->GetGUID()) { if (Source->GetTeam() == ALLIANCE) { @@ -489,7 +487,6 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target PlaySoundToAll(BG_WS_SOUND_FLAG_RETURNED); UpdatePlayerScore(Source, SCORE_FLAG_RETURNS, 1); _bothFlagsKept = false; - flagHandled = true; } else { @@ -506,14 +503,13 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target if (_flagDebuffState == 2) Source->CastSpell(Source, WS_SPELL_BRUTAL_ASSAULT, true); UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, 1); - flagHandled = true; } //called in HandleGameObjectUseOpcode: //target_obj->Delete(); } //Horde flag on ground(not in base) (returned or picked up again) - if (GetFlagState(HORDE) == BG_WS_FLAG_STATE_ON_GROUND && Source->IsWithinDistInMap(target_obj, 10) && !flagHandled) + if (GetFlagState(HORDE) == BG_WS_FLAG_STATE_ON_GROUND && Source->IsWithinDistInMap(target_obj, 10) && BgObjects[BG_WS_OBJECT_H_FLAG] == target_obj->GetGUID()) { if (Source->GetTeam() == HORDE) { @@ -525,7 +521,6 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target PlaySoundToAll(BG_WS_SOUND_FLAG_RETURNED); UpdatePlayerScore(Source, SCORE_FLAG_RETURNS, 1); _bothFlagsKept = false; - flagHandled = true; } else { @@ -542,7 +537,6 @@ void BattlegroundWS::EventPlayerClickedOnFlag(Player* Source, GameObject* target if (_flagDebuffState == 2) Source->CastSpell(Source, WS_SPELL_BRUTAL_ASSAULT, true); UpdateWorldState(BG_WS_FLAG_UNK_HORDE, 1); - flagHandled = true; } //called in HandleGameObjectUseOpcode: //target_obj->Delete(); |