aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/Chat.cpp1
-rw-r--r--src/game/Chat.h1
-rw-r--r--src/game/Debugcmds.cpp10
-rw-r--r--src/game/SpellAuras.cpp2
-rw-r--r--src/game/WorldSession.cpp7
-rw-r--r--src/game/WorldSession.h1
6 files changed, 22 insertions, 0 deletions
diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp
index f64dd86545a..bc2ed1d27dc 100644
--- a/src/game/Chat.cpp
+++ b/src/game/Chat.cpp
@@ -217,6 +217,7 @@ ChatCommand * ChatHandler::getCommandTable()
{ "ps", SEC_ADMINISTRATOR, false, &ChatHandler::HandlePlaySound2Command, "", NULL },
{ "scn", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSendChannelNotifyCommand, "", NULL },
{ "scm", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSendChatMsgCommand, "", NULL },
+ { "sps", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSendSetPhaseShiftCommand, "", NULL },
{ "getitemstate", SEC_ADMINISTRATOR, false, &ChatHandler::HandleGetItemState, "", NULL },
{ "playsound", SEC_MODERATOR, false, &ChatHandler::HandlePlaySoundCommand, "", NULL },
{ "update", SEC_ADMINISTRATOR, false, &ChatHandler::HandleUpdate, "", NULL },
diff --git a/src/game/Chat.h b/src/game/Chat.h
index a24de275f78..a47397212d8 100644
--- a/src/game/Chat.h
+++ b/src/game/Chat.h
@@ -499,6 +499,7 @@ class ChatHandler
bool HandleDebugBattlegroundCommand(const char * args);
bool HandleSpawnVehicle(const char * args);
bool HandleSendLargePacketCommand(const char * args);
+ bool HandleSendSetPhaseShiftCommand(const char * args);
Player* getSelectedPlayer();
Creature* getSelectedCreature();
diff --git a/src/game/Debugcmds.cpp b/src/game/Debugcmds.cpp
index 60f1536963f..68e934abc7c 100644
--- a/src/game/Debugcmds.cpp
+++ b/src/game/Debugcmds.cpp
@@ -649,3 +649,13 @@ bool ChatHandler::HandleSendLargePacketCommand(const char* args)
SendSysMessage(ss.str().c_str());
return true;
}
+
+bool ChatHandler::HandleSendSetPhaseShiftCommand(const char* args)
+{
+ if(!args)
+ return false;
+
+ uint32 PhaseShift = atoi(args);
+ m_session->SendSetPhaseShift(PhaseShift);
+ return true;
+}
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 8aa9bc5b1ef..45be199d32f 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -6538,6 +6538,8 @@ void Aura::HandlePhase(bool apply, bool Real)
// GM-mode have mask 0xFFFFFFFF
if(!((Player*)m_target)->isGameMaster())
m_target->SetPhaseMask(apply ? GetMiscValue() : PHASEMASK_NORMAL,false);
+
+ ((Player*)m_target)->GetSession()->SendSetPhaseShift(apply ? GetMiscValue() : PHASEMASK_NORMAL);
}
else
m_target->SetPhaseMask(apply ? GetMiscValue() : PHASEMASK_NORMAL,false);
diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp
index b7da09af1b2..77a62646818 100644
--- a/src/game/WorldSession.cpp
+++ b/src/game/WorldSession.cpp
@@ -477,6 +477,13 @@ void WorldSession::SendNotification(int32 string_id,...)
}
}
+void WorldSession::SendSetPhaseShift(uint32 PhaseShift)
+{
+ WorldPacket data(SMSG_SET_PHASE_SHIFT, 4);
+ data << uint32(PhaseShift);
+ SendPacket(&data);
+}
+
const char * WorldSession::GetTrinityString( int32 entry ) const
{
return objmgr.GetTrinityString(entry,GetSessionDbLocaleIndex());
diff --git a/src/game/WorldSession.h b/src/game/WorldSession.h
index d17acf29284..05cf4cec8b3 100644
--- a/src/game/WorldSession.h
+++ b/src/game/WorldSession.h
@@ -101,6 +101,7 @@ class TRINITY_DLL_SPEC WorldSession
void SendLfgResult(uint32 type, uint32 entry, uint8 lfg_type);
void SendPartyResult(PartyOperation operation, const std::string& member, PartyResult res);
void SendAreaTriggerMessage(const char* Text, ...) ATTR_PRINTF(2,3);
+ void SendSetPhaseShift(uint32 phaseShift);
uint32 GetSecurity() const { return _security; }
uint32 GetAccountId() const { return _accountId; }