mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
[7409] Support localization for messsages in specialized battagorund code BattleGround*.cpp
Note: BattleGroundAB still have problems with team/node localization in result wrong way LANG_ strings used.
This commit is contained in:
parent
cdf99bc169
commit
57e715857b
5 changed files with 93 additions and 98 deletions
|
|
@ -37,8 +37,8 @@ namespace MaNGOS
|
||||||
class BattleGroundChatBuilder
|
class BattleGroundChatBuilder
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BattleGroundChatBuilder(ChatMsg msgtype, int32 textId, va_list* args = NULL)
|
BattleGroundChatBuilder(ChatMsg msgtype, int32 textId, Player const* source, va_list* args = NULL)
|
||||||
: i_msgtype(msgtype), i_textId(textId), i_args(args) {}
|
: i_msgtype(msgtype), i_textId(textId), i_source(source), i_args(args) {}
|
||||||
void operator()(WorldPacket& data, int32 loc_idx)
|
void operator()(WorldPacket& data, int32 loc_idx)
|
||||||
{
|
{
|
||||||
char const* text = objmgr.GetMangosString(i_textId,loc_idx);
|
char const* text = objmgr.GetMangosString(i_textId,loc_idx);
|
||||||
|
|
@ -61,18 +61,21 @@ namespace MaNGOS
|
||||||
private:
|
private:
|
||||||
void do_helper(WorldPacket& data, char const* text)
|
void do_helper(WorldPacket& data, char const* text)
|
||||||
{
|
{
|
||||||
|
uint64 target_guid = i_source ? i_source ->GetGUID() : 0;
|
||||||
|
|
||||||
data << uint8(i_msgtype);
|
data << uint8(i_msgtype);
|
||||||
data << uint32(LANG_UNIVERSAL);
|
data << uint32(LANG_UNIVERSAL);
|
||||||
data << uint64(0); // there 0 for BG messages
|
data << uint64(target_guid); // there 0 for BG messages
|
||||||
data << uint32(0); // can be chat msg group or something
|
data << uint32(0); // can be chat msg group or something
|
||||||
data << uint64(0);
|
data << uint64(target_guid);
|
||||||
data << uint32(strlen(text)+1);
|
data << uint32(strlen(text)+1);
|
||||||
data << text;
|
data << text;
|
||||||
data << uint8(0);
|
data << uint8(i_source ? i_source->chatTag() : uint8(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
ChatMsg i_msgtype;
|
ChatMsg i_msgtype;
|
||||||
int32 i_textId;
|
int32 i_textId;
|
||||||
|
Player const* i_source;
|
||||||
va_list* i_args;
|
va_list* i_args;
|
||||||
};
|
};
|
||||||
} // namespace MaNGOS
|
} // namespace MaNGOS
|
||||||
|
|
@ -303,13 +306,13 @@ void BattleGround::Update(uint32 diff)
|
||||||
if( newtime > (MINUTE * IN_MILISECONDS) )
|
if( newtime > (MINUTE * IN_MILISECONDS) )
|
||||||
{
|
{
|
||||||
if( newtime / (MINUTE * IN_MILISECONDS) != m_PrematureCountDownTimer / (MINUTE * IN_MILISECONDS) )
|
if( newtime / (MINUTE * IN_MILISECONDS) != m_PrematureCountDownTimer / (MINUTE * IN_MILISECONDS) )
|
||||||
PSendMessageToAll(LANG_BATTLEGROUND_PREMATURE_FINISH_WARNING, CHAT_MSG_SYSTEM, (uint32)(m_PrematureCountDownTimer / (MINUTE * IN_MILISECONDS)));
|
PSendMessageToAll(LANG_BATTLEGROUND_PREMATURE_FINISH_WARNING, CHAT_MSG_SYSTEM, NULL, (uint32)(m_PrematureCountDownTimer / (MINUTE * IN_MILISECONDS)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//announce every 15 seconds
|
//announce every 15 seconds
|
||||||
if( newtime / (15 * IN_MILISECONDS) != m_PrematureCountDownTimer / (15 * IN_MILISECONDS) )
|
if( newtime / (15 * IN_MILISECONDS) != m_PrematureCountDownTimer / (15 * IN_MILISECONDS) )
|
||||||
PSendMessageToAll(LANG_BATTLEGROUND_PREMATURE_FINISH_WARNING_SECS, CHAT_MSG_SYSTEM, (uint32)(m_PrematureCountDownTimer / IN_MILISECONDS));
|
PSendMessageToAll(LANG_BATTLEGROUND_PREMATURE_FINISH_WARNING_SECS, CHAT_MSG_SYSTEM, NULL, (uint32)(m_PrematureCountDownTimer / IN_MILISECONDS));
|
||||||
}
|
}
|
||||||
m_PrematureCountDownTimer = newtime;
|
m_PrematureCountDownTimer = newtime;
|
||||||
}
|
}
|
||||||
|
|
@ -1507,19 +1510,19 @@ bool BattleGround::AddSpiritGuide(uint32 type, float x, float y, float z, float
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGround::SendMessageToAll(int32 entry, ChatMsg type)
|
void BattleGround::SendMessageToAll(int32 entry, ChatMsg type, Player const* source)
|
||||||
{
|
{
|
||||||
MaNGOS::BattleGroundChatBuilder bg_builder(type, entry);
|
MaNGOS::BattleGroundChatBuilder bg_builder(type, entry, source);
|
||||||
MaNGOS::LocalizedPacketDo<MaNGOS::BattleGroundChatBuilder> bg_do(bg_builder);
|
MaNGOS::LocalizedPacketDo<MaNGOS::BattleGroundChatBuilder> bg_do(bg_builder);
|
||||||
BroadcastWorker(bg_do);
|
BroadcastWorker(bg_do);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGround::PSendMessageToAll(int32 entry, ChatMsg type, ...)
|
void BattleGround::PSendMessageToAll(int32 entry, ChatMsg type, Player const* source, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, type);
|
va_start(ap, type);
|
||||||
|
|
||||||
MaNGOS::BattleGroundChatBuilder bg_builder(type, entry, &ap);
|
MaNGOS::BattleGroundChatBuilder bg_builder(type, entry, source, &ap);
|
||||||
MaNGOS::LocalizedPacketDo<MaNGOS::BattleGroundChatBuilder> bg_do(bg_builder);
|
MaNGOS::LocalizedPacketDo<MaNGOS::BattleGroundChatBuilder> bg_do(bg_builder);
|
||||||
BroadcastWorker(bg_do);
|
BroadcastWorker(bg_do);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -421,8 +421,8 @@ class BattleGround
|
||||||
void EndBattleGround(uint32 winner);
|
void EndBattleGround(uint32 winner);
|
||||||
void BlockMovement(Player *plr);
|
void BlockMovement(Player *plr);
|
||||||
|
|
||||||
void SendMessageToAll(int32 entry, ChatMsg type);
|
void SendMessageToAll(int32 entry, ChatMsg type, Player const* source = NULL);
|
||||||
void PSendMessageToAll(int32 entry, ChatMsg type, ... );
|
void PSendMessageToAll(int32 entry, ChatMsg type, Player const* source, ... );
|
||||||
|
|
||||||
/* Raid Group */
|
/* Raid Group */
|
||||||
Group *GetBgRaid(uint32 TeamID) const { return TeamID == ALLIANCE ? m_BgRaids[BG_TEAM_ALLIANCE] : m_BgRaids[BG_TEAM_HORDE]; }
|
Group *GetBgRaid(uint32 TeamID) const { return TeamID == ALLIANCE ? m_BgRaids[BG_TEAM_ALLIANCE] : m_BgRaids[BG_TEAM_HORDE]; }
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@
|
||||||
#include "BattleGround.h"
|
#include "BattleGround.h"
|
||||||
#include "BattleGroundAB.h"
|
#include "BattleGroundAB.h"
|
||||||
#include "Creature.h"
|
#include "Creature.h"
|
||||||
#include "Chat.h"
|
|
||||||
#include "ObjectMgr.h"
|
#include "ObjectMgr.h"
|
||||||
#include "Language.h"
|
#include "Language.h"
|
||||||
#include "Util.h"
|
#include "Util.h"
|
||||||
|
|
@ -84,13 +83,21 @@ void BattleGroundAB::Update(uint32 diff)
|
||||||
_SendNodeUpdate(node);
|
_SendNodeUpdate(node);
|
||||||
_NodeOccupied(node,(teamIndex == 0) ? ALLIANCE:HORDE);
|
_NodeOccupied(node,(teamIndex == 0) ? ALLIANCE:HORDE);
|
||||||
// Message to chatlog
|
// Message to chatlog
|
||||||
char buf[256];
|
|
||||||
uint8 type = (teamIndex == 0) ? CHAT_MSG_BG_SYSTEM_ALLIANCE : CHAT_MSG_BG_SYSTEM_HORDE;
|
if(teamIndex == 0)
|
||||||
sprintf(buf, GetMangosString(LANG_BG_AB_NODE_TAKEN), (teamIndex == 0) ? GetMangosString(LANG_BG_AB_ALLY) : GetMangosString(LANG_BG_AB_HORDE), _GetNodeName(node));
|
{
|
||||||
WorldPacket data;
|
// FIXME: team and node names not localized
|
||||||
ChatHandler::FillMessageData(&data, NULL, type, LANG_UNIVERSAL, NULL, 0, buf, NULL);
|
PSendMessageToAll(LANG_BG_AB_NODE_TAKEN,CHAT_MSG_BG_SYSTEM_ALLIANCE,NULL,
|
||||||
SendPacketToAll(&data);
|
GetMangosString(LANG_BG_AB_ALLY), _GetNodeName(node));
|
||||||
PlaySoundToAll((teamIndex == 0) ? SOUND_NODE_CAPTURED_ALLIANCE : SOUND_NODE_CAPTURED_HORDE);
|
PlaySoundToAll(SOUND_NODE_CAPTURED_ALLIANCE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// FIXME: team and node names not localized
|
||||||
|
PSendMessageToAll(LANG_BG_AB_NODE_TAKEN,CHAT_MSG_BG_SYSTEM_HORDE,NULL,
|
||||||
|
GetMangosString(LANG_BG_AB_HORDE),_GetNodeName(node));
|
||||||
|
PlaySoundToAll(SOUND_NODE_CAPTURED_HORDE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -415,10 +422,6 @@ void BattleGroundAB::EventPlayerClickedOnFlag(Player *source, GameObject* /*targ
|
||||||
|
|
||||||
uint8 teamIndex = GetTeamIndexByTeamId(source->GetTeam());
|
uint8 teamIndex = GetTeamIndexByTeamId(source->GetTeam());
|
||||||
|
|
||||||
// Message to chatlog
|
|
||||||
char buf[256];
|
|
||||||
uint8 type = (teamIndex == 0) ? CHAT_MSG_BG_SYSTEM_ALLIANCE : CHAT_MSG_BG_SYSTEM_HORDE;
|
|
||||||
|
|
||||||
// Check if player really could use this banner, not cheated
|
// Check if player really could use this banner, not cheated
|
||||||
if( !(m_Nodes[node] == 0 || teamIndex == m_Nodes[node]%2) )
|
if( !(m_Nodes[node] == 0 || teamIndex == m_Nodes[node]%2) )
|
||||||
return;
|
return;
|
||||||
|
|
@ -437,7 +440,13 @@ void BattleGroundAB::EventPlayerClickedOnFlag(Player *source, GameObject* /*targ
|
||||||
_CreateBanner(node, BG_AB_NODE_TYPE_CONTESTED, teamIndex, true);
|
_CreateBanner(node, BG_AB_NODE_TYPE_CONTESTED, teamIndex, true);
|
||||||
_SendNodeUpdate(node);
|
_SendNodeUpdate(node);
|
||||||
m_NodeTimers[node] = BG_AB_FLAG_CAPTURING_TIME;
|
m_NodeTimers[node] = BG_AB_FLAG_CAPTURING_TIME;
|
||||||
sprintf(buf, GetMangosString(LANG_BG_AB_NODE_CLAIMED), _GetNodeName(node), (teamIndex == 0) ? GetMangosString(LANG_BG_AB_ALLY) : GetMangosString(LANG_BG_AB_HORDE));
|
|
||||||
|
// FIXME: team and node names not localized
|
||||||
|
if(teamIndex == 0)
|
||||||
|
PSendMessageToAll(LANG_BG_AB_NODE_CLAIMED,CHAT_MSG_BG_SYSTEM_ALLIANCE, source, _GetNodeName(node), GetMangosString(LANG_BG_AB_ALLY));
|
||||||
|
else
|
||||||
|
PSendMessageToAll(LANG_BG_AB_NODE_CLAIMED,CHAT_MSG_BG_SYSTEM_HORDE, source, _GetNodeName(node), GetMangosString(LANG_BG_AB_HORDE));
|
||||||
|
|
||||||
sound = SOUND_NODE_CLAIMED;
|
sound = SOUND_NODE_CLAIMED;
|
||||||
}
|
}
|
||||||
// If node is contested
|
// If node is contested
|
||||||
|
|
@ -455,7 +464,12 @@ void BattleGroundAB::EventPlayerClickedOnFlag(Player *source, GameObject* /*targ
|
||||||
_CreateBanner(node, BG_AB_NODE_TYPE_CONTESTED, teamIndex, true);
|
_CreateBanner(node, BG_AB_NODE_TYPE_CONTESTED, teamIndex, true);
|
||||||
_SendNodeUpdate(node);
|
_SendNodeUpdate(node);
|
||||||
m_NodeTimers[node] = BG_AB_FLAG_CAPTURING_TIME;
|
m_NodeTimers[node] = BG_AB_FLAG_CAPTURING_TIME;
|
||||||
sprintf(buf, GetMangosString(LANG_BG_AB_NODE_ASSAULTED), _GetNodeName(node));
|
|
||||||
|
// FIXME: node names not localized
|
||||||
|
if(teamIndex == 0)
|
||||||
|
PSendMessageToAll(LANG_BG_AB_NODE_ASSAULTED,CHAT_MSG_BG_SYSTEM_ALLIANCE, source, _GetNodeName(node));
|
||||||
|
else
|
||||||
|
PSendMessageToAll(LANG_BG_AB_NODE_ASSAULTED,CHAT_MSG_BG_SYSTEM_HORDE, source, _GetNodeName(node));
|
||||||
}
|
}
|
||||||
// If contested, change back to occupied
|
// If contested, change back to occupied
|
||||||
else
|
else
|
||||||
|
|
@ -470,7 +484,12 @@ void BattleGroundAB::EventPlayerClickedOnFlag(Player *source, GameObject* /*targ
|
||||||
_SendNodeUpdate(node);
|
_SendNodeUpdate(node);
|
||||||
m_NodeTimers[node] = 0;
|
m_NodeTimers[node] = 0;
|
||||||
_NodeOccupied(node,(teamIndex == 0) ? ALLIANCE:HORDE);
|
_NodeOccupied(node,(teamIndex == 0) ? ALLIANCE:HORDE);
|
||||||
sprintf(buf, GetMangosString(LANG_BG_AB_NODE_DEFENDED), _GetNodeName(node));
|
|
||||||
|
// FIXME: node names not localized
|
||||||
|
if(teamIndex == 0)
|
||||||
|
PSendMessageToAll(LANG_BG_AB_NODE_DEFENDED,CHAT_MSG_BG_SYSTEM_ALLIANCE, source, _GetNodeName(node));
|
||||||
|
else
|
||||||
|
PSendMessageToAll(LANG_BG_AB_NODE_DEFENDED,CHAT_MSG_BG_SYSTEM_HORDE, source, _GetNodeName(node));
|
||||||
}
|
}
|
||||||
sound = (teamIndex == 0) ? SOUND_NODE_ASSAULTED_ALLIANCE : SOUND_NODE_ASSAULTED_HORDE;
|
sound = (teamIndex == 0) ? SOUND_NODE_ASSAULTED_ALLIANCE : SOUND_NODE_ASSAULTED_HORDE;
|
||||||
}
|
}
|
||||||
|
|
@ -487,18 +506,24 @@ void BattleGroundAB::EventPlayerClickedOnFlag(Player *source, GameObject* /*targ
|
||||||
_SendNodeUpdate(node);
|
_SendNodeUpdate(node);
|
||||||
_NodeDeOccupied(node);
|
_NodeDeOccupied(node);
|
||||||
m_NodeTimers[node] = BG_AB_FLAG_CAPTURING_TIME;
|
m_NodeTimers[node] = BG_AB_FLAG_CAPTURING_TIME;
|
||||||
sprintf(buf, GetMangosString(LANG_BG_AB_NODE_ASSAULTED), _GetNodeName(node));
|
|
||||||
|
// FIXME: node names not localized
|
||||||
|
if(teamIndex == 0)
|
||||||
|
PSendMessageToAll(LANG_BG_AB_NODE_ASSAULTED,CHAT_MSG_BG_SYSTEM_ALLIANCE, source, _GetNodeName(node));
|
||||||
|
else
|
||||||
|
PSendMessageToAll(LANG_BG_AB_NODE_ASSAULTED,CHAT_MSG_BG_SYSTEM_HORDE, source, _GetNodeName(node));
|
||||||
|
|
||||||
sound = (teamIndex == 0) ? SOUND_NODE_ASSAULTED_ALLIANCE : SOUND_NODE_ASSAULTED_HORDE;
|
sound = (teamIndex == 0) ? SOUND_NODE_ASSAULTED_ALLIANCE : SOUND_NODE_ASSAULTED_HORDE;
|
||||||
}
|
}
|
||||||
WorldPacket data;
|
|
||||||
ChatHandler::FillMessageData(&data, source->GetSession(), type, LANG_UNIVERSAL, NULL, source->GetGUID(), buf, NULL);
|
|
||||||
SendPacketToAll(&data);
|
|
||||||
// If node is occupied again, send "X has taken the Y" msg.
|
// If node is occupied again, send "X has taken the Y" msg.
|
||||||
if( m_Nodes[node] >= BG_AB_NODE_TYPE_OCCUPIED )
|
if( m_Nodes[node] >= BG_AB_NODE_TYPE_OCCUPIED )
|
||||||
{
|
{
|
||||||
sprintf(buf, GetMangosString(LANG_BG_AB_NODE_TAKEN), (teamIndex == 0) ? GetMangosString(LANG_BG_AB_ALLY) : GetMangosString(LANG_BG_AB_HORDE), _GetNodeName(node));
|
// FIXME: team and node names not localized
|
||||||
ChatHandler::FillMessageData(&data, NULL, type, LANG_UNIVERSAL, NULL, 0, buf, NULL);
|
if(teamIndex == 0)
|
||||||
SendPacketToAll(&data);
|
PSendMessageToAll(LANG_BG_AB_NODE_TAKEN,CHAT_MSG_BG_SYSTEM_ALLIANCE, NULL, GetMangosString(LANG_BG_AB_ALLY), _GetNodeName(node));
|
||||||
|
else
|
||||||
|
PSendMessageToAll(LANG_BG_AB_NODE_TAKEN,CHAT_MSG_BG_SYSTEM_HORDE, NULL, GetMangosString(LANG_BG_AB_HORDE), _GetNodeName(node));
|
||||||
}
|
}
|
||||||
PlaySoundToAll(sound);
|
PlaySoundToAll(sound);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@
|
||||||
#include "BattleGround.h"
|
#include "BattleGround.h"
|
||||||
#include "BattleGroundEY.h"
|
#include "BattleGroundEY.h"
|
||||||
#include "Creature.h"
|
#include "Creature.h"
|
||||||
#include "Chat.h"
|
|
||||||
#include "ObjectMgr.h"
|
#include "ObjectMgr.h"
|
||||||
#include "Language.h"
|
#include "Language.h"
|
||||||
#include "WorldPacket.h"
|
#include "WorldPacket.h"
|
||||||
|
|
@ -568,32 +567,20 @@ void BattleGroundEY::EventPlayerDroppedFlag(Player *Source)
|
||||||
if(GetFlagPickerGUID() != Source->GetGUID())
|
if(GetFlagPickerGUID() != Source->GetGUID())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const char *message = "";
|
|
||||||
uint8 type = 0;
|
|
||||||
|
|
||||||
SetFlagPicker(0);
|
SetFlagPicker(0);
|
||||||
Source->RemoveAurasDueToSpell(BG_EY_NETHERSTORM_FLAG_SPELL);
|
Source->RemoveAurasDueToSpell(BG_EY_NETHERSTORM_FLAG_SPELL);
|
||||||
m_FlagState = BG_EY_FLAG_STATE_ON_GROUND;
|
m_FlagState = BG_EY_FLAG_STATE_ON_GROUND;
|
||||||
m_FlagsTimer = BG_EY_FLAG_RESPAWN_TIME;
|
m_FlagsTimer = BG_EY_FLAG_RESPAWN_TIME;
|
||||||
Source->CastSpell(Source, SPELL_RECENTLY_DROPPED_FLAG, true);
|
Source->CastSpell(Source, SPELL_RECENTLY_DROPPED_FLAG, true);
|
||||||
Source->CastSpell(Source, BG_EY_PLAYER_DROPPED_FLAG_SPELL, true);
|
Source->CastSpell(Source, BG_EY_PLAYER_DROPPED_FLAG_SPELL, true);
|
||||||
if(Source->GetTeam() == ALLIANCE)
|
|
||||||
{
|
|
||||||
message = GetMangosString(LANG_BG_EY_DROPPED_FLAG);
|
|
||||||
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
message = GetMangosString(LANG_BG_EY_DROPPED_FLAG);
|
|
||||||
type = CHAT_MSG_BG_SYSTEM_HORDE;
|
|
||||||
}
|
|
||||||
//this does not work correctly :( (it should remove flag carrier name)
|
//this does not work correctly :( (it should remove flag carrier name)
|
||||||
UpdateWorldState(NETHERSTORM_FLAG_STATE_HORDE, BG_EY_FLAG_STATE_WAIT_RESPAWN);
|
UpdateWorldState(NETHERSTORM_FLAG_STATE_HORDE, BG_EY_FLAG_STATE_WAIT_RESPAWN);
|
||||||
UpdateWorldState(NETHERSTORM_FLAG_STATE_ALLIANCE, BG_EY_FLAG_STATE_WAIT_RESPAWN);
|
UpdateWorldState(NETHERSTORM_FLAG_STATE_ALLIANCE, BG_EY_FLAG_STATE_WAIT_RESPAWN);
|
||||||
|
|
||||||
WorldPacket data;
|
if(Source->GetTeam() == ALLIANCE)
|
||||||
ChatHandler::FillMessageData(&data, Source->GetSession(), type, LANG_UNIVERSAL, NULL, Source->GetGUID(), message, NULL);
|
SendMessageToAll(LANG_BG_EY_DROPPED_FLAG,CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);
|
||||||
SendPacketToAll(&data);
|
else
|
||||||
|
SendMessageToAll(LANG_BG_EY_DROPPED_FLAG,CHAT_MSG_BG_SYSTEM_HORDE, Source);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundEY::EventPlayerClickedOnFlag(Player *Source, GameObject* target_obj)
|
void BattleGroundEY::EventPlayerClickedOnFlag(Player *Source, GameObject* target_obj)
|
||||||
|
|
@ -601,20 +588,14 @@ void BattleGroundEY::EventPlayerClickedOnFlag(Player *Source, GameObject* target
|
||||||
if(GetStatus() != STATUS_IN_PROGRESS || IsFlagPickedup() || !Source->IsWithinDistInMap(target_obj, 10))
|
if(GetStatus() != STATUS_IN_PROGRESS || IsFlagPickedup() || !Source->IsWithinDistInMap(target_obj, 10))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const char *message;
|
|
||||||
uint8 type = 0;
|
|
||||||
message = GetMangosString(LANG_BG_EY_HAS_TAKEN_FLAG);
|
|
||||||
|
|
||||||
if(Source->GetTeam() == ALLIANCE)
|
if(Source->GetTeam() == ALLIANCE)
|
||||||
{
|
{
|
||||||
UpdateWorldState(NETHERSTORM_FLAG_STATE_ALLIANCE, BG_EY_FLAG_STATE_ON_PLAYER);
|
UpdateWorldState(NETHERSTORM_FLAG_STATE_ALLIANCE, BG_EY_FLAG_STATE_ON_PLAYER);
|
||||||
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
|
|
||||||
PlaySoundToAll(BG_EY_SOUND_FLAG_PICKED_UP_ALLIANCE);
|
PlaySoundToAll(BG_EY_SOUND_FLAG_PICKED_UP_ALLIANCE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UpdateWorldState(NETHERSTORM_FLAG_STATE_HORDE, BG_EY_FLAG_STATE_ON_PLAYER);
|
UpdateWorldState(NETHERSTORM_FLAG_STATE_HORDE, BG_EY_FLAG_STATE_ON_PLAYER);
|
||||||
type = CHAT_MSG_BG_SYSTEM_HORDE;
|
|
||||||
PlaySoundToAll(BG_EY_SOUND_FLAG_PICKED_UP_HORDE);
|
PlaySoundToAll(BG_EY_SOUND_FLAG_PICKED_UP_HORDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -628,9 +609,10 @@ void BattleGroundEY::EventPlayerClickedOnFlag(Player *Source, GameObject* target
|
||||||
Source->CastSpell(Source, BG_EY_NETHERSTORM_FLAG_SPELL, true);
|
Source->CastSpell(Source, BG_EY_NETHERSTORM_FLAG_SPELL, true);
|
||||||
Source->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
|
Source->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
|
||||||
|
|
||||||
WorldPacket data;
|
if(Source->GetTeam() == ALLIANCE)
|
||||||
ChatHandler::FillMessageData(&data, Source->GetSession(), type, LANG_UNIVERSAL, NULL, Source->GetGUID(), message, NULL);
|
SendMessageToAll(LANG_BG_EY_HAS_TAKEN_FLAG,CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);
|
||||||
SendPacketToAll(&data);
|
else
|
||||||
|
SendMessageToAll(LANG_BG_EY_HAS_TAKEN_FLAG,CHAT_MSG_BG_SYSTEM_HORDE, Source);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BattleGroundEY::EventTeamLostPoint(Player *Source, uint32 Point)
|
void BattleGroundEY::EventTeamLostPoint(Player *Source, uint32 Point)
|
||||||
|
|
@ -639,8 +621,6 @@ void BattleGroundEY::EventTeamLostPoint(Player *Source, uint32 Point)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//Natural point
|
//Natural point
|
||||||
uint8 message_type = 0;
|
|
||||||
const char *message = "";
|
|
||||||
uint32 Team = m_PointOwnedByTeam[Point];
|
uint32 Team = m_PointOwnedByTeam[Point];
|
||||||
|
|
||||||
if(!Team)
|
if(!Team)
|
||||||
|
|
@ -649,8 +629,6 @@ void BattleGroundEY::EventTeamLostPoint(Player *Source, uint32 Point)
|
||||||
if (Team == ALLIANCE)
|
if (Team == ALLIANCE)
|
||||||
{
|
{
|
||||||
m_TeamPointsCount[BG_TEAM_ALLIANCE]--;
|
m_TeamPointsCount[BG_TEAM_ALLIANCE]--;
|
||||||
message_type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
|
|
||||||
message = GetMangosString(m_LoosingPointTypes[Point].MessageIdAlliance);
|
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeAlliance, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeAlliance, RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeAlliance + 1, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeAlliance + 1, RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeAlliance + 2, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeAlliance + 2, RESPAWN_ONE_DAY);
|
||||||
|
|
@ -658,8 +636,6 @@ void BattleGroundEY::EventTeamLostPoint(Player *Source, uint32 Point)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_TeamPointsCount[BG_TEAM_HORDE]--;
|
m_TeamPointsCount[BG_TEAM_HORDE]--;
|
||||||
message_type = CHAT_MSG_BG_SYSTEM_HORDE;
|
|
||||||
message = GetMangosString(m_LoosingPointTypes[Point].MessageIdHorde);
|
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeHorde, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeHorde, RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeHorde + 1, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeHorde + 1, RESPAWN_ONE_DAY);
|
||||||
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeHorde + 2, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_LoosingPointTypes[Point].DespawnObjectTypeHorde + 2, RESPAWN_ONE_DAY);
|
||||||
|
|
@ -674,9 +650,10 @@ void BattleGroundEY::EventTeamLostPoint(Player *Source, uint32 Point)
|
||||||
m_PointOwnedByTeam[Point] = EY_POINT_NO_OWNER;
|
m_PointOwnedByTeam[Point] = EY_POINT_NO_OWNER;
|
||||||
m_PointState[Point] = EY_POINT_NO_OWNER;
|
m_PointState[Point] = EY_POINT_NO_OWNER;
|
||||||
|
|
||||||
WorldPacket data;
|
if (Team == ALLIANCE)
|
||||||
ChatHandler::FillMessageData(&data, Source->GetSession(), message_type, LANG_UNIVERSAL, NULL, Source->GetGUID(), message, NULL);
|
SendMessageToAll(m_LoosingPointTypes[Point].MessageIdAlliance,CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);
|
||||||
SendPacketToAll(&data);
|
else
|
||||||
|
SendMessageToAll(m_LoosingPointTypes[Point].MessageIdHorde,CHAT_MSG_BG_SYSTEM_HORDE, Source);
|
||||||
|
|
||||||
UpdatePointsIcons(Team, Point);
|
UpdatePointsIcons(Team, Point);
|
||||||
UpdatePointsCount(Team);
|
UpdatePointsCount(Team);
|
||||||
|
|
@ -687,8 +664,6 @@ void BattleGroundEY::EventTeamCapturedPoint(Player *Source, uint32 Point)
|
||||||
if(GetStatus() != STATUS_IN_PROGRESS)
|
if(GetStatus() != STATUS_IN_PROGRESS)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
uint8 type = 0;
|
|
||||||
const char *message = "";
|
|
||||||
uint32 Team = Source->GetTeam();
|
uint32 Team = Source->GetTeam();
|
||||||
|
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType, RESPAWN_ONE_DAY);
|
SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType, RESPAWN_ONE_DAY);
|
||||||
|
|
@ -698,8 +673,6 @@ void BattleGroundEY::EventTeamCapturedPoint(Player *Source, uint32 Point)
|
||||||
if (Team == ALLIANCE)
|
if (Team == ALLIANCE)
|
||||||
{
|
{
|
||||||
m_TeamPointsCount[BG_TEAM_ALLIANCE]++;
|
m_TeamPointsCount[BG_TEAM_ALLIANCE]++;
|
||||||
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
|
|
||||||
message = GetMangosString(m_CapturingPointTypes[Point].MessageIdAlliance);
|
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance, RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 1, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 1, RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 2, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 2, RESPAWN_IMMEDIATELY);
|
||||||
|
|
@ -707,8 +680,6 @@ void BattleGroundEY::EventTeamCapturedPoint(Player *Source, uint32 Point)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_TeamPointsCount[BG_TEAM_HORDE]++;
|
m_TeamPointsCount[BG_TEAM_HORDE]++;
|
||||||
type = CHAT_MSG_BG_SYSTEM_HORDE;
|
|
||||||
message = GetMangosString(m_CapturingPointTypes[Point].MessageIdHorde);
|
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde, RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 1, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 1, RESPAWN_IMMEDIATELY);
|
||||||
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 2, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 2, RESPAWN_IMMEDIATELY);
|
||||||
|
|
@ -719,9 +690,10 @@ void BattleGroundEY::EventTeamCapturedPoint(Player *Source, uint32 Point)
|
||||||
m_PointOwnedByTeam[Point] = Team;
|
m_PointOwnedByTeam[Point] = Team;
|
||||||
m_PointState[Point] = EY_POINT_UNDER_CONTROL;
|
m_PointState[Point] = EY_POINT_UNDER_CONTROL;
|
||||||
|
|
||||||
WorldPacket data;
|
if (Team == ALLIANCE)
|
||||||
ChatHandler::FillMessageData(&data, Source->GetSession(), type, LANG_UNIVERSAL, NULL, Source->GetGUID(), message, NULL);
|
SendMessageToAll(m_CapturingPointTypes[Point].MessageIdAlliance,CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);
|
||||||
SendPacketToAll(&data);
|
else
|
||||||
|
SendMessageToAll(m_CapturingPointTypes[Point].MessageIdHorde,CHAT_MSG_BG_SYSTEM_HORDE, Source);
|
||||||
|
|
||||||
if(m_BgCreatures[Point])
|
if(m_BgCreatures[Point])
|
||||||
DelCreature(Point);
|
DelCreature(Point);
|
||||||
|
|
@ -743,38 +715,33 @@ void BattleGroundEY::EventPlayerCapturedFlag(Player *Source, uint32 BgObjectType
|
||||||
if(GetStatus() != STATUS_IN_PROGRESS || GetFlagPickerGUID() != Source->GetGUID())
|
if(GetStatus() != STATUS_IN_PROGRESS || GetFlagPickerGUID() != Source->GetGUID())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
uint8 type = 0;
|
|
||||||
uint8 team_id = 0;
|
|
||||||
const char *message = "";
|
|
||||||
|
|
||||||
SetFlagPicker(0);
|
SetFlagPicker(0);
|
||||||
m_FlagState = BG_EY_FLAG_STATE_WAIT_RESPAWN;
|
m_FlagState = BG_EY_FLAG_STATE_WAIT_RESPAWN;
|
||||||
Source->RemoveAurasDueToSpell(BG_EY_NETHERSTORM_FLAG_SPELL);
|
Source->RemoveAurasDueToSpell(BG_EY_NETHERSTORM_FLAG_SPELL);
|
||||||
|
|
||||||
Source->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
|
Source->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);
|
||||||
|
|
||||||
if(Source->GetTeam() == ALLIANCE)
|
if(Source->GetTeam() == ALLIANCE)
|
||||||
{
|
|
||||||
PlaySoundToAll(BG_EY_SOUND_FLAG_CAPTURED_ALLIANCE);
|
PlaySoundToAll(BG_EY_SOUND_FLAG_CAPTURED_ALLIANCE);
|
||||||
team_id = BG_TEAM_ALLIANCE;
|
|
||||||
message = GetMangosString(LANG_BG_EY_CAPTURED_FLAG_A);
|
|
||||||
type = CHAT_MSG_BG_SYSTEM_ALLIANCE;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
PlaySoundToAll(BG_EY_SOUND_FLAG_CAPTURED_HORDE);
|
PlaySoundToAll(BG_EY_SOUND_FLAG_CAPTURED_HORDE);
|
||||||
team_id = BG_TEAM_HORDE;
|
|
||||||
message = GetMangosString(LANG_BG_EY_CAPTURED_FLAG_H);
|
|
||||||
type = CHAT_MSG_BG_SYSTEM_HORDE;
|
|
||||||
}
|
|
||||||
|
|
||||||
SpawnBGObject(BgObjectType, RESPAWN_IMMEDIATELY);
|
SpawnBGObject(BgObjectType, RESPAWN_IMMEDIATELY);
|
||||||
|
|
||||||
m_FlagsTimer = BG_EY_FLAG_RESPAWN_TIME;
|
m_FlagsTimer = BG_EY_FLAG_RESPAWN_TIME;
|
||||||
m_FlagCapturedBgObjectType = BgObjectType;
|
m_FlagCapturedBgObjectType = BgObjectType;
|
||||||
|
|
||||||
WorldPacket data;
|
uint8 team_id = 0;
|
||||||
ChatHandler::FillMessageData(&data, Source->GetSession(), type, LANG_UNIVERSAL, NULL, Source->GetGUID(), message, NULL);
|
if(Source->GetTeam() == ALLIANCE)
|
||||||
SendPacketToAll(&data);
|
{
|
||||||
|
team_id = BG_TEAM_ALLIANCE;
|
||||||
|
SendMessageToAll(LANG_BG_EY_CAPTURED_FLAG_A, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
team_id = BG_TEAM_HORDE;
|
||||||
|
SendMessageToAll(LANG_BG_EY_CAPTURED_FLAG_H, CHAT_MSG_BG_SYSTEM_HORDE, Source);
|
||||||
|
}
|
||||||
|
|
||||||
if(m_TeamPointsCount[team_id] > 0)
|
if(m_TeamPointsCount[team_id] > 0)
|
||||||
AddPoints(Source->GetTeam(), BG_EY_FlagPoints[m_TeamPointsCount[team_id] - 1]);
|
AddPoints(Source->GetTeam(), BG_EY_FlagPoints[m_TeamPointsCount[team_id] - 1]);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7408"
|
#define REVISION_NR "7409"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue