diff options
| author | Rat <gmstreetrat@gmail.com> | 2015-04-08 20:37:30 +0200 |
|---|---|---|
| committer | Rat <gmstreetrat@gmail.com> | 2015-04-08 20:37:30 +0200 |
| commit | e53f89d8364e98843cb24c45784bf8930c054548 (patch) | |
| tree | f99f4a432230f715ca73d18574a9f2681542b5d3 /src/server/scripts/Commands | |
| parent | 01d91fa3cdfd0ce57c863210a3ca0c650bac81ac (diff) | |
Core/Scenes: added .debug send playscene command for testing purposes
Diffstat (limited to 'src/server/scripts/Commands')
| -rw-r--r-- | src/server/scripts/Commands/cs_debug.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index 84e3cf4c23c..d9fada1d76c 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -34,6 +34,7 @@ EndScriptData */ #include "Transport.h" #include "Language.h" #include "MovementPackets.h" +#include "ScenePackets.h" #include <fstream> @@ -64,6 +65,7 @@ public: { "sellerror", rbac::RBAC_PERM_COMMAND_DEBUG_SEND_SELLERROR, false, &HandleDebugSendSellErrorCommand, "", NULL }, { "setphaseshift", rbac::RBAC_PERM_COMMAND_DEBUG_SEND_SETPHASESHIFT, false, &HandleDebugSendSetPhaseShiftCommand, "", NULL }, { "spellfail", rbac::RBAC_PERM_COMMAND_DEBUG_SEND_SPELLFAIL, false, &HandleDebugSendSpellFailCommand, "", NULL }, + { "playscene", rbac::RBAC_PERM_COMMAND_DEBUG_SEND_PLAYSCENE, false, &HandleDebugSendPlaySceneCommand, "", NULL }, { NULL, 0, false, NULL, "", NULL } }; static ChatCommand debugCommandTable[] = @@ -1429,6 +1431,49 @@ public: handler->SendSysMessage("Target is not phased"); return true; } + + static bool HandleDebugSendPlaySceneCommand(ChatHandler* handler, char const* args) + { + if (!*args) + return false; + + int32 SceneID = 0; + int32 PlaybackFlags = 0; + int32 SceneInstanceID = 0; + int32 SceneScriptPackageID = 0; + + char* a = strtok((char*)args, " "); + char* b = strtok(NULL, " "); + char* c = strtok(NULL, " "); + char* d = strtok(NULL, " "); + + if (!a || !b || !c || !d) + return false; + + if (a) + SceneID = atoi(a); + if (b) + PlaybackFlags = atoi(b); + if (c) + SceneInstanceID = atoi(c); + if (d) + SceneScriptPackageID = atoi(d); + + Player* me = handler->GetSession()->GetPlayer(); + + WorldPackets::Scenes::PlayScene packet; + packet.SceneID = SceneID; + packet.PlaybackFlags = PlaybackFlags; + packet.SceneInstanceID = SceneInstanceID; + packet.SceneScriptPackageID = SceneScriptPackageID; + packet.TransportGUID = me->GetTransGUID(); + packet.Location = me->GetPosition(); + handler->GetSession()->SendPacket(packet.Write()); + + TC_LOG_DEBUG("network", "Sent SMSG_PLAY_SCENE to %s, SceneID: %d, PlaybackFlags: %d, SceneInstanceID: %d, SceneScriptPackageID: %d", me->GetName().c_str(), SceneID, PlaybackFlags, SceneInstanceID, SceneScriptPackageID); + + return true; + } }; void AddSC_debug_commandscript() |
