aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Commands
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-07-14 22:26:42 +0200
committerShauren <shauren.trinity@gmail.com>2025-07-14 22:26:42 +0200
commit9ffc85485a2404651d9b8a40b69fb06d4161b1ee (patch)
tree403fe89c9f2cc12c2e8f05fa6cf5a462488e0a9a /src/server/scripts/Commands
parentf40409ce68624fc907d7f1e272317411b5a2fa65 (diff)
Core/Misc: Reduce differences between branches
Diffstat (limited to 'src/server/scripts/Commands')
-rw-r--r--src/server/scripts/Commands/cs_wp.cpp49
1 files changed, 26 insertions, 23 deletions
diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp
index bd78a177d57..2945c116ab7 100644
--- a/src/server/scripts/Commands/cs_wp.cpp
+++ b/src/server/scripts/Commands/cs_wp.cpp
@@ -29,6 +29,7 @@ EndScriptData */
#include "Language.h"
#include "Map.h"
#include "MotionMaster.h"
+#include "ObjectMgr.h"
#include "Player.h"
#include "RBAC.h"
#include "WaypointDefines.h"
@@ -245,43 +246,45 @@ public:
static bool HandleWpUnLoadCommand(ChatHandler* handler, char const* /*args*/)
{
-
Creature* target = handler->getSelectedCreature();
WorldDatabasePreparedStatement* stmt = nullptr;
if (!target)
{
- handler->PSendSysMessage("%s%s|r", "|cff33ffff", "You must select target.");
+ handler->PSendSysMessage("%s%s|r", "|cff33ffff", "You must select a target.");
return true;
}
- uint32 guildLow = target->GetSpawnId();
+ ObjectGuid::LowType guidLow = target->GetSpawnId();
+ if (!guidLow)
+ {
+ handler->PSendSysMessage("%s%s|r", "|cffff33ff", "Target is not saved to DB.");
+ return true;
+ }
- if (target->GetCreatureAddon())
+ CreatureAddon const* addon = sObjectMgr->GetCreatureAddon(guidLow);
+ if (!addon || addon->path_id == 0)
{
- if (target->GetCreatureAddon()->path_id != 0)
- {
- stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CREATURE_ADDON);
- stmt->setUInt32(0, guildLow);
- WorldDatabase.Execute(stmt);
+ handler->PSendSysMessage("%s%s|r", "|cffff33ff", "Target does not have a loaded path.");
+ return true;
+ }
- target->UpdateCurrentWaypointInfo(0, 0);
+ stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_CREATURE_ADDON);
+ stmt->setUInt32(0, guidLow);
+ WorldDatabase.Execute(stmt);
- stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_MOVEMENT_TYPE);
- stmt->setUInt8(0, uint8(IDLE_MOTION_TYPE));
- stmt->setUInt32(1, guildLow);
- WorldDatabase.Execute(stmt);
+ target->UpdateCurrentWaypointInfo(0, 0);
- target->LoadPath(0);
- target->SetDefaultMovementType(IDLE_MOTION_TYPE);
- target->GetMotionMaster()->MoveTargetedHome();
- target->GetMotionMaster()->Initialize();
- target->Say("Path unloaded.", LANG_UNIVERSAL);
+ stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_MOVEMENT_TYPE);
+ stmt->setUInt8(0, uint8(IDLE_MOTION_TYPE));
+ stmt->setUInt32(1, guidLow);
+ WorldDatabase.Execute(stmt);
- return true;
- }
- handler->PSendSysMessage("%s%s|r", "|cffff33ff", "Target have no loaded path.");
- }
+ target->LoadPath(0);
+ target->SetDefaultMovementType(IDLE_MOTION_TYPE);
+ target->GetMotionMaster()->MoveTargetedHome();
+ target->GetMotionMaster()->Initialize();
+ target->Say("Path unloaded.", LANG_UNIVERSAL);
return true;
}