[Core] Add "go" and "to_me" option to ".mmap path" command. (c2611)

- Select a creature and type ".mmap path go" to move to that creature using generated path.
- Select a creature and type ".mmap path to_me" to see path from creature to your player char.
- You must be a GM to see these points.
This commit is contained in:
cyberium 2015-03-25 12:00:32 +00:00 committed by Antz
parent 8f326bbe32
commit fa27dff227
2 changed files with 47 additions and 5 deletions

View File

@ -1 +1 @@
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

View File

@ -58,6 +58,7 @@
#include "TargetedMovementGenerator.h" // for HandleNpcUnFollowCommand
#include "MoveMap.h" // for mmap manager
#include "PathFinder.h" // for mmap commands
#include "movement/MoveSplineInit.h"
static uint32 ReputationRankStrIndex[MAX_REPUTATION_RANK] =
{
@ -5024,15 +5025,48 @@ bool ChatHandler::HandleMmapPathCommand(char* args)
char* para = strtok(args, " ");
bool useStraightPath = false;
if (para && strcmp(para, "true") == 0)
{ useStraightPath = true; }
bool followPath = false;
bool unitToPlayer = false;
if (para)
{
if (strcmp(para, "go") == 0)
{
followPath = true;
para = strtok(NULL, " ");
if (para && strcmp(para, "straight") == 0)
useStraightPath = true;
}
else if (strcmp(para, "straight") == 0)
useStraightPath = true;
else if (strcmp(para, "to_me") == 0)
unitToPlayer = true;
else
{
PSendSysMessage("Use '.mmap path go' to move on target.");
PSendSysMessage("Use '.mmap path straight' to generate straight path.");
PSendSysMessage("Use '.mmap path to_me' to generate path from the target to you.");
}
}
Unit* destinationUnit;
Unit* originUnit;
if (unitToPlayer)
{
destinationUnit = player;
originUnit = target;
}
else
{
destinationUnit = target;
originUnit = player;
}
// unit locations
float x, y, z;
player->GetPosition(x, y, z);
destinationUnit->GetPosition(x, y, z);
// path
PathFinder path(target);
PathFinder path(originUnit);
path.setUseStrightPath(useStraightPath);
path.calculate(x, y, z);
@ -5057,6 +5091,14 @@ bool ChatHandler::HandleMmapPathCommand(char* args)
player->SummonCreature(VISUAL_WAYPOINT, pointPath[i].x, pointPath[i].y, pointPath[i].z, 0, TEMPSUMMON_TIMED_DESPAWN, 9000);
}
if (followPath)
{
Movement::MoveSplineInit init(*player);
init.MovebyPath(pointPath);
init.SetWalk(false);
init.Launch();
}
return true;
}