mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2024-11-24 22:11:04 +00:00
Compare commits
No commits in common. "d8b63a043eca27ded476e1a099c38c0d3f6b9d33" and "f2447cd94089b3cb194278f0fa73f5f7878df4ed" have entirely different histories.
d8b63a043e
...
f2447cd940
@ -359,19 +359,23 @@ static void npcRotateCommand(std::string full, std::vector<std::string>& args, C
|
|||||||
int angle = (plr->angle + 180) % 360;
|
int angle = (plr->angle + 180) % 360;
|
||||||
NPCManager::updateNPCPosition(npc->id, npc->x, npc->y, npc->z, npc->instanceID, angle);
|
NPCManager::updateNPCPosition(npc->id, npc->x, npc->y, npc->z, npc->instanceID, angle);
|
||||||
|
|
||||||
bool isGruntworkNpc = true;
|
// if it's a gruntwork NPC, rotate in-place
|
||||||
|
if (TableData::RunningMobs.find(npc->id) != TableData::RunningMobs.end()) {
|
||||||
|
NPCManager::updateNPCPosition(npc->id, npc->x, npc->y, npc->z, npc->instanceID, angle);
|
||||||
|
|
||||||
// add a rotation entry to the gruntwork file, unless it's already a gruntwork NPC
|
Chat::sendServerMessage(sock, "[NPCR] Successfully set angle to " + std::to_string(angle) + " for gruntwork NPC "
|
||||||
if (TableData::RunningMobs.find(npc->id) == TableData::RunningMobs.end()) {
|
+ std::to_string(npc->id));
|
||||||
|
} else {
|
||||||
TableData::RunningNPCRotations[npc->id] = angle;
|
TableData::RunningNPCRotations[npc->id] = angle;
|
||||||
isGruntworkNpc = false;
|
|
||||||
|
Chat::sendServerMessage(sock, "[NPCR] Successfully set angle to " + std::to_string(angle) + " for NPC "
|
||||||
|
+ std::to_string(npc->id));
|
||||||
}
|
}
|
||||||
|
|
||||||
Chat::sendServerMessage(sock, "[NPCR] Successfully set angle to " + std::to_string(angle) +
|
// update rotation clientside
|
||||||
" for " + (isGruntworkNpc ? "gruntwork " : "") + "NPC " + std::to_string(npc->id));
|
INITSTRUCT(sP_FE2CL_NPC_ENTER, pkt);
|
||||||
|
pkt.NPCAppearanceData = npc->getAppearanceData();
|
||||||
// update rotation clientside by refreshing the player's chunks (same as the /refresh command)
|
sock->sendPacket(pkt, P_FE2CL_NPC_ENTER);
|
||||||
PlayerManager::updatePlayerPositionForWarp(sock, plr->x, plr->y, plr->z, plr->instanceID);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void refreshCommand(std::string full, std::vector<std::string>& args, CNSocket* sock) {
|
static void refreshCommand(std::string full, std::vector<std::string>& args, CNSocket* sock) {
|
||||||
|
Loading…
Reference in New Issue
Block a user