mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
* [Cleanup] Consolidate #show commands into a singular #show command # Notes - All `#show` commands like `#showbuffs` are now subcommands of `#show`. - All aliases like `#showbuffs` still function. * Push up progress. * Final push. * Cleanup. * Update ip_lookup.cpp * emotes not emote * Cleanup * Update servertalk.h * Update show.cpp * Fix * Final push. * #aggro * #who
74 lines
1.7 KiB
C++
74 lines
1.7 KiB
C++
#include "../../client.h"
|
|
|
|
void ShowProximity(Client *c, const Seperator *sep)
|
|
{
|
|
if (!c->GetTarget() || !c->GetTarget()->IsNPC()) {
|
|
c->Message(Chat::White, "You must target an NPC to use this command.");
|
|
return;
|
|
}
|
|
|
|
for (const auto& n : entity_list.GetNPCList()) {
|
|
if (
|
|
n.second &&
|
|
Strings::Contains(n.second->GetName(), "Proximity")
|
|
) {
|
|
n.second->Depop();
|
|
}
|
|
}
|
|
|
|
const auto t = c->GetTarget()->CastToNPC();
|
|
|
|
std::vector<FindPerson_Point> v;
|
|
|
|
FindPerson_Point p {};
|
|
|
|
if (t->IsProximitySet()) {
|
|
glm::vec4 position;
|
|
position.w = t->GetHeading();
|
|
position.x = t->GetProximityMinX();
|
|
position.y = t->GetProximityMinY();
|
|
position.z = t->GetZ();
|
|
|
|
position.x = t->GetProximityMinX();
|
|
position.y = t->GetProximityMinY();
|
|
NPC::SpawnNodeNPC("Proximity", "", position);
|
|
|
|
position.x = t->GetProximityMinX();
|
|
position.y = t->GetProximityMaxY();
|
|
NPC::SpawnNodeNPC("Proximity", "", position);
|
|
|
|
position.x = t->GetProximityMaxX();
|
|
position.y = t->GetProximityMinY();
|
|
NPC::SpawnNodeNPC("Proximity", "", position);
|
|
|
|
position.x = t->GetProximityMaxX();
|
|
position.y = t->GetProximityMaxY();
|
|
NPC::SpawnNodeNPC("Proximity", "", position);
|
|
|
|
p.x = t->GetProximityMinX();
|
|
p.y = t->GetProximityMinY();
|
|
p.z = t->GetZ();
|
|
v.push_back(p);
|
|
|
|
p.x = t->GetProximityMinX();
|
|
p.y = t->GetProximityMaxY();
|
|
v.push_back(p);
|
|
|
|
p.x = t->GetProximityMaxX();
|
|
p.y = t->GetProximityMaxY();
|
|
v.push_back(p);
|
|
|
|
p.x = t->GetProximityMaxX();
|
|
p.y = t->GetProximityMinY();
|
|
v.push_back(p);
|
|
|
|
p.x = t->GetProximityMinX();
|
|
p.y = t->GetProximityMinY();
|
|
v.push_back(p);
|
|
}
|
|
|
|
if (c->ClientVersion() >= EQ::versions::ClientVersion::RoF) {
|
|
c->SendPathPacket(v);
|
|
}
|
|
}
|