aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Commands/cs_mmaps.cpp108
1 files changed, 53 insertions, 55 deletions
diff --git a/src/server/scripts/Commands/cs_mmaps.cpp b/src/server/scripts/Commands/cs_mmaps.cpp
index c1fc4d1a5e9..e4a0ebf7f24 100644
--- a/src/server/scripts/Commands/cs_mmaps.cpp
+++ b/src/server/scripts/Commands/cs_mmaps.cpp
@@ -60,60 +60,58 @@ public:
static bool HandleMmapPathCommand(ChatHandler* handler, char const* args)
{
- if (!MMAP::MMapFactory::createOrGetMMapManager()->GetNavMesh(handler->GetSession()->GetPlayer()->GetMapId()))
- {
- handler->PSendSysMessage("NavMesh not loaded for current map.");
- return true;
- }
-
- handler->PSendSysMessage("mmap path:");
-
- // units
- Player* player = handler->GetSession()->GetPlayer();
- Unit* target = handler->getSelectedUnit();
- if (!player || !target)
- {
- handler->PSendSysMessage("Invalid target/source selection.");
- return true;
- }
-
- char* para = strtok((char*)args, " ");
-
- bool useStraightPath = false;
- if (para && strcmp(para, "true") == 0)
- useStraightPath = true;
-
- // unit locations
- float x, y, z;
- player->GetPosition(x, y, z);
-
- // path
- PathGenerator path(target);
- path.SetUseStraightPath(useStraightPath);
- path.CalculatePath(x, y, z);
-
- PointsArray pointPath = path.GetPath();
- handler->PSendSysMessage("%s's path to %s:", target->GetName(), player->GetName());
- handler->PSendSysMessage("Building %s", useStraightPath ? "StraightPath" : "SmoothPath");
- handler->PSendSysMessage("length %i type %u", pointPath.size(), path.GetPathType());
-
- Vector3 start = path.GetStartPosition();
- Vector3 end = path.GetEndPosition();
- Vector3 actualEnd = path.GetActualEndPosition();
-
- handler->PSendSysMessage("start (%.3f, %.3f, %.3f)", start.x, start.y, start.z);
- handler->PSendSysMessage("end (%.3f, %.3f, %.3f)", end.x, end.y, end.z);
- handler->PSendSysMessage("actual end (%.3f, %.3f, %.3f)", actualEnd.x, actualEnd.y, actualEnd.z);
-
- if (!player->isGameMaster())
- handler->PSendSysMessage("Enable GM mode to see the path points.");
-
- // this entry visible only to GM's with "gm on"
- static const uint32 WAYPOINT_NPC_ENTRY = 1;
- for (uint32 i = 0; i < pointPath.size(); ++i)
- player->SummonCreature(WAYPOINT_NPC_ENTRY, pointPath[i].x, pointPath[i].y, pointPath[i].z, 0, TEMPSUMMON_TIMED_DESPAWN, 9000);
-
- return true;
+ if (!MMAP::MMapFactory::createOrGetMMapManager()->GetNavMesh(handler->GetSession()->GetPlayer()->GetMapId()))
+ {
+ handler->PSendSysMessage("NavMesh not loaded for current map.");
+ return true;
+ }
+
+ handler->PSendSysMessage("mmap path:");
+
+ // units
+ Player* player = handler->GetSession()->GetPlayer();
+ Unit* target = handler->getSelectedUnit();
+ if (!player || !target)
+ {
+ handler->PSendSysMessage("Invalid target/source selection.");
+ return true;
+ }
+
+ char* para = strtok((char*)args, " ");
+
+ bool useStraightPath = false;
+ if (para && strcmp(para, "true") == 0)
+ useStraightPath = true;
+
+ // unit locations
+ float x, y, z;
+ player->GetPosition(x, y, z);
+
+ // path
+ PathGenerator path(target);
+ path.SetUseStraightPath(useStraightPath);
+ bool result = path.CalculatePath(x, y, z);
+
+ PointsArray pointPath = path.GetPath();
+ handler->PSendSysMessage("%s's path to %s:", target->GetName(), player->GetName());
+ handler->PSendSysMessage("Building: %s", useStraightPath ? "StraightPath" : "SmoothPath");
+ handler->PSendSysMessage("Result: %s - Length: %i - Type: %u", (result ? "true" : "false"), pointPath.size(), path.GetPathType());
+
+ Vector3 start = path.GetStartPosition();
+ Vector3 end = path.GetEndPosition();
+ Vector3 actualEnd = path.GetActualEndPosition();
+
+ handler->PSendSysMessage("StartPosition (%.3f, %.3f, %.3f)", start.x, start.y, start.z);
+ handler->PSendSysMessage("EndPosition (%.3f, %.3f, %.3f)", end.x, end.y, end.z);
+ handler->PSendSysMessage("ActualEndPosition (%.3f, %.3f, %.3f)", actualEnd.x, actualEnd.y, actualEnd.z);
+
+ if (!player->isGameMaster())
+ handler->PSendSysMessage("Enable GM mode to see the path points.");
+
+ for (uint32 i = 0; i < pointPath.size(); ++i)
+ player->SummonCreature(VISUAL_WAYPOINT, pointPath[i].x, pointPath[i].y, pointPath[i].z, 0, TEMPSUMMON_TIMED_DESPAWN, 9000);
+
+ return true;
}
static bool HandleMmapLocCommand(ChatHandler* handler, const char* args)
@@ -290,4 +288,4 @@ public:
void AddSC_mmaps_commandscript()
{
new mmaps_commandscript();
-} \ No newline at end of file
+}