mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 09:31:30 +00:00
[Quest API] Add XYZ/XYZH Overloads to Cross Zone Move Methods (#3581)
# Perl - Add `quest::crosszonemoveplayerbycharid(character_id, zone_short_name, x, y, z)`. - Add `quest::crosszonemoveplayerbycharid(character_id, zone_short_name, x, y, z, heading)`. - Add `quest::crosszonemoveplayerbygroupid(group_id, zone_short_name, x, y, z)`. - Add `quest::crosszonemoveplayerbygroupid(group_id, zone_short_name, x, y, z, heading)`. - Add `quest::crosszonemoveplayerbyraidid(raid_id, zone_short_name, x, y, z)`. - Add `quest::crosszonemoveplayerbyraidid(raid_id, zone_short_name, x, y, z, heading)`. - Add `quest::crosszonemoveplayerbyguildid(guild_id, zone_short_name, x, y, z)`. - Add `quest::crosszonemoveplayerbyguildid(guild_id, zone_short_name, x, y, z, heading)`. - Add `quest::crosszonemoveplayerbyexpeditionid(expedition_id, zone_short_name, x, y, z)`. - Add `quest::crosszonemoveplayerbyexpeditionid(expedition_id, zone_short_name, x, y, z, heading)`. - Add `quest::crosszonemoveplayerbyclientname(client_name, zone_short_name, x, y, z)`. - Add `quest::crosszonemoveplayerbyclientname(client_name, zone_short_name, x, y, z, heading)`. - Add `quest::crosszonemoveinstancebycharid(character_id, zone_short_name, x, y, z)`. - Add `quest::crosszonemoveinstancebycharid(character_id, zone_short_name, x, y, z, heading)`. - Add `quest::crosszonemoveinstancebygroupid(group_id, zone_short_name, x, y, z)`. - Add `quest::crosszonemoveinstancebygroupid(group_id, zone_short_name, x, y, z, heading)`. - Add `quest::crosszonemoveinstancebyraidid(raid_id, zone_short_name, x, y, z)`. - Add `quest::crosszonemoveinstancebyraidid(raid_id, zone_short_name, x, y, z, heading)`. - Add `quest::crosszonemoveinstancebyguildid(guild_id, zone_short_name, x, y, z)`. - Add `quest::crosszonemoveinstancebyguildid(guild_id, zone_short_name, x, y, z, heading)`. - Add `quest::crosszonemoveinstancebyexpeditionid(expedition_id, zone_short_name, x, y, z)`. - Add `quest::crosszonemoveinstancebyexpeditionid(expedition_id, zone_short_name, x, y, z, heading)`. - Add `quest::crosszonemoveinstancebyclientname(client_name, zone_short_name, x, y, z)`. - Add `quest::crosszonemoveinstancebyclientname(client_name, zone_short_name, x, y, z, heading)`. # Lua - Add `eq.cross_zone_move_player_by_char_id(character_id, zone_short_name, x, y, z)`. - Add `eq.cross_zone_move_player_by_char_id(character_id, zone_short_name, x, y, z, heading)`. - Add `eq.cross_zone_move_player_by_group_id(group_id, zone_short_name, x, y, z)`. - Add `eq.cross_zone_move_player_by_group_id(group_id, zone_short_name, x, y, z, heading)`. - Add `eq.cross_zone_move_player_by_raid_id(raid_id, zone_short_name, x, y, z)`. - Add `eq.cross_zone_move_player_by_raid_id(raid_id, zone_short_name, x, y, z, heading)`. - Add `eq.cross_zone_move_player_by_guild_id(guild_id, zone_short_name, x, y, z)`. - Add `eq.cross_zone_move_player_by_guild_id(guild_id, zone_short_name, x, y, z, heading)`. - Add `eq.cross_zone_move_player_by_expedition_id(expedition_id, zone_short_name, x, y, z)`. - Add `eq.cross_zone_move_player_by_expedition_id(expedition_id, zone_short_name, x, y, z, heading)`. - Add `eq.cross_zone_move_player_by_client_name(client_name, zone_short_name, x, y, z)`. - Add `eq.cross_zone_move_player_by_client_name(client_name, zone_short_name, x, y, z, heading)`. - Add `eq.cross_zone_move_instance_by_char_id(character_id, zone_short_name, x, y, z)`. - Add `eq.cross_zone_move_instance_by_char_id(character_id, zone_short_name, x, y, z, heading)`. - Add `eq.cross_zone_move_instance_by_group_id(group_id, zone_short_name, x, y, z)`. - Add `eq.cross_zone_move_instance_by_group_id(group_id, zone_short_name, x, y, z, heading)`. - Add `eq.cross_zone_move_instance_by_raid_id(raid_id, zone_short_name, x, y, z)`. - Add `eq.cross_zone_move_instance_by_raid_id(raid_id, zone_short_name, x, y, z, heading)`. - Add `eq.cross_zone_move_instance_by_guild_id(guild_id, zone_short_name, x, y, z)`. - Add `eq.cross_zone_move_instance_by_guild_id(guild_id, zone_short_name, x, y, z, heading)`. - Add `eq.cross_zone_move_instance_by_expedition_id(expedition_id, zone_short_name, x, y, z)`. - Add `eq.cross_zone_move_instance_by_expedition_id(expedition_id, zone_short_name, x, y, z, heading)`. - Add `eq.cross_zone_move_instance_by_client_name(client_name, zone_short_name, x, y, z)`. - Add `eq.cross_zone_move_instance_by_client_name(client_name, zone_short_name, x, y, z, heading)`. # Notes - Allows operators to send players to specific coordinates across zones instead of always sending to safe coordinates.
This commit is contained in:
parent
06337fe762
commit
f2f0228aa4
@ -10,6 +10,7 @@
|
|||||||
#include <cereal/types/chrono.hpp>
|
#include <cereal/types/chrono.hpp>
|
||||||
#include <cereal/types/string.hpp>
|
#include <cereal/types/string.hpp>
|
||||||
#include <cereal/types/vector.hpp>
|
#include <cereal/types/vector.hpp>
|
||||||
|
#include <glm/vec4.hpp>
|
||||||
|
|
||||||
#define SERVER_TIMEOUT 45000 // how often keepalive gets sent
|
#define SERVER_TIMEOUT 45000 // how often keepalive gets sent
|
||||||
#define INTERSERVER_TIMER 10000
|
#define INTERSERVER_TIMER 10000
|
||||||
@ -1521,12 +1522,13 @@ struct CZMessage_Struct {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct CZMove_Struct {
|
struct CZMove_Struct {
|
||||||
|
std::string client_name = std::string(); // Only used by Character Name Type, else empty
|
||||||
|
glm::vec4 coordinates = glm::vec4(0.f); // XYZ or XYZH, heading is optional, defaults to 0.
|
||||||
|
uint16 instance_id = 0; // Only used by Move Zone Instance, else 0
|
||||||
|
uint32 update_identifier = 0; // Character ID, Group ID, Raid ID, Guild ID, or Expedition ID based on update type, 0 for Character Name
|
||||||
uint8 update_type; // 0 - Character, 1 - Group, 2 - Raid, 3 - Guild, 4 - Expedition, 5 - Character Name
|
uint8 update_type; // 0 - Character, 1 - Group, 2 - Raid, 3 - Guild, 4 - Expedition, 5 - Character Name
|
||||||
uint8 update_subtype; // 0 - Move Zone, 1 - Move Zone Instance
|
uint8 update_subtype; // 0 - Move Zone, 1 - Move Zone Instance
|
||||||
int update_identifier; // Character ID, Group ID, Raid ID, Guild ID, or Expedition ID based on update type, 0 for Character Name
|
std::string zone_short_name = std::string(); // Only used by Move Zone, else empty
|
||||||
uint16 instance_id; // Only used by Move Zone Instance, else 0
|
|
||||||
char zone_short_name[32]; // Only by with Move Zone, else empty
|
|
||||||
char client_name[64]; // Only used by Character Name Type, else empty
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CZSetEntityVariable_Struct {
|
struct CZSetEntityVariable_Struct {
|
||||||
@ -1603,6 +1605,7 @@ struct WWMove_Struct {
|
|||||||
uint8 max_status;
|
uint8 max_status;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct WWSetEntityVariable_Struct {
|
struct WWSetEntityVariable_Struct {
|
||||||
uint8 update_type; // 0 - Character, 1 - NPC
|
uint8 update_type; // 0 - Character, 1 - NPC
|
||||||
char variable_name[256];
|
char variable_name[256];
|
||||||
|
|||||||
@ -1226,15 +1226,20 @@ void ConsoleCrossZoneMove(
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto pack = new ServerPacket(ServerOP_CZMove, sizeof(CZMove_Struct));
|
auto pack = new ServerPacket(ServerOP_CZMove, sizeof(CZMove_Struct));
|
||||||
auto* CZM = (CZMove_Struct*) pack->pBuffer;
|
auto m = (CZMove_Struct*) pack->pBuffer;
|
||||||
|
|
||||||
CZM->update_type = update_type;
|
if (!name.empty()) {
|
||||||
CZM->update_subtype = !instance_id ? CZMoveUpdateSubtype_MoveZone : CZMoveUpdateSubtype_MoveZoneInstance;
|
m->client_name = name;
|
||||||
CZM->update_identifier = update_identifier;
|
}
|
||||||
CZM->instance_id = instance_id;
|
|
||||||
|
|
||||||
strn0cpy(CZM->zone_short_name, zone_short_name.c_str(), sizeof(CZM->zone_short_name));
|
m->instance_id = instance_id;
|
||||||
strn0cpy(CZM->client_name, name.c_str(), sizeof(CZM->client_name));
|
m->update_identifier = update_identifier;
|
||||||
|
m->update_type = update_type;
|
||||||
|
m->update_subtype = !instance_id ? CZMoveUpdateSubtype_MoveZone : CZMoveUpdateSubtype_MoveZoneInstance;
|
||||||
|
|
||||||
|
if (!zone_short_name.empty()) {
|
||||||
|
m->zone_short_name = zone_short_name;
|
||||||
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
zoneserver_list.SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
|
|||||||
@ -3481,78 +3481,488 @@ void Perl__crosszonemessageplayerbyname(const char* client_name, uint32 type, co
|
|||||||
quest_manager.CrossZoneMessage(CZUpdateType_ClientName, update_identifier, type, message, client_name);
|
quest_manager.CrossZoneMessage(CZUpdateType_ClientName, update_identifier, type, message, client_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszonemoveplayerbycharid(int character_id, const char* zone_short_name)
|
void Perl__crosszonemoveplayerbycharid(uint32 character_id, std::string zone_short_name)
|
||||||
{
|
{
|
||||||
uint16 instance_id = 0;
|
quest_manager.CrossZoneMove(
|
||||||
quest_manager.CrossZoneMove(CZUpdateType_Character, CZMoveUpdateSubtype_MoveZone, character_id, zone_short_name, instance_id);
|
CZMove_Struct{
|
||||||
|
.update_identifier = character_id,
|
||||||
|
.update_type = CZUpdateType_Character,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszonemoveplayerbygroupid(int group_id, const char* zone_short_name)
|
void Perl__crosszonemoveplayerbycharid(uint32 character_id, std::string zone_short_name, float x, float y, float z)
|
||||||
{
|
{
|
||||||
uint16 instance_id = 0;
|
quest_manager.CrossZoneMove(
|
||||||
quest_manager.CrossZoneMove(CZUpdateType_Group, CZMoveUpdateSubtype_MoveZone, group_id, zone_short_name, instance_id);
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.update_identifier = character_id,
|
||||||
|
.update_type = CZUpdateType_Character,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszonemoveplayerbyraidid(int raid_id, const char* zone_short_name)
|
void Perl__crosszonemoveplayerbycharid(
|
||||||
|
uint32 character_id,
|
||||||
|
std::string zone_short_name,
|
||||||
|
float x,
|
||||||
|
float y,
|
||||||
|
float z,
|
||||||
|
float heading
|
||||||
|
)
|
||||||
{
|
{
|
||||||
uint16 instance_id = 0;
|
quest_manager.CrossZoneMove(
|
||||||
quest_manager.CrossZoneMove(CZUpdateType_Raid, CZMoveUpdateSubtype_MoveZone, raid_id, zone_short_name, instance_id);
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.update_identifier = character_id,
|
||||||
|
.update_type = CZUpdateType_Character,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszonemoveplayerbyguildid(int guild_id, const char* zone_short_name)
|
void Perl__crosszonemoveplayerbygroupid(uint32 group_id, std::string zone_short_name)
|
||||||
{
|
{
|
||||||
uint16 instance_id = 0;
|
quest_manager.CrossZoneMove(
|
||||||
quest_manager.CrossZoneMove(CZUpdateType_Guild, CZMoveUpdateSubtype_MoveZone, guild_id, zone_short_name, instance_id);
|
CZMove_Struct{
|
||||||
|
.update_identifier = group_id,
|
||||||
|
.update_type = CZUpdateType_Group,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszonemoveplayerbyexpeditionid(uint32 expedition_id, const char* zone_short_name)
|
void Perl__crosszonemoveplayerbygroupid(uint32 group_id, std::string zone_short_name, float x, float y, float z)
|
||||||
{
|
{
|
||||||
uint16 instance_id = 0;
|
quest_manager.CrossZoneMove(
|
||||||
quest_manager.CrossZoneMove(CZUpdateType_Expedition, CZMoveUpdateSubtype_MoveZone, expedition_id, zone_short_name, instance_id);
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.update_identifier = group_id,
|
||||||
|
.update_type = CZUpdateType_Group,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszonemoveplayerbyname(const char* client_name, const char* zone_short_name)
|
void Perl__crosszonemoveplayerbygroupid(
|
||||||
|
uint32 group_id,
|
||||||
|
std::string zone_short_name,
|
||||||
|
float x,
|
||||||
|
float y,
|
||||||
|
float z,
|
||||||
|
float heading
|
||||||
|
)
|
||||||
{
|
{
|
||||||
int update_identifier = 0;
|
quest_manager.CrossZoneMove(
|
||||||
uint16 instance_id = 0;
|
CZMove_Struct{
|
||||||
quest_manager.CrossZoneMove(CZUpdateType_ClientName, CZMoveUpdateSubtype_MoveZone, update_identifier, zone_short_name, instance_id, client_name);
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.update_identifier = group_id,
|
||||||
|
.update_type = CZUpdateType_Group,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszonemoveinstancebycharid(int character_id, uint16 instance_id)
|
void Perl__crosszonemoveplayerbyraidid(uint32 raid_id, std::string zone_short_name)
|
||||||
{
|
{
|
||||||
const char* zone_short_name = "";
|
quest_manager.CrossZoneMove(
|
||||||
quest_manager.CrossZoneMove(CZUpdateType_Character, CZMoveUpdateSubtype_MoveZoneInstance, character_id, zone_short_name, instance_id);
|
CZMove_Struct{
|
||||||
|
.update_identifier = raid_id,
|
||||||
|
.update_type = CZUpdateType_Raid,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszonemoveinstancebygroupid(int group_id, uint16 instance_id)
|
void Perl__crosszonemoveplayerbyraidid(uint32 raid_id, std::string zone_short_name, float x, float y, float z)
|
||||||
{
|
{
|
||||||
const char* zone_short_name = "";
|
quest_manager.CrossZoneMove(
|
||||||
quest_manager.CrossZoneMove(CZUpdateType_Group, CZMoveUpdateSubtype_MoveZoneInstance, group_id, zone_short_name, instance_id);
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.update_identifier = raid_id,
|
||||||
|
.update_type = CZUpdateType_Raid,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszonemoveinstancebyraidid(int raid_id, uint16 instance_id)
|
void Perl__crosszonemoveplayerbyraidid(uint32 raid_id, std::string zone_short_name, float x, float y, float z, float heading)
|
||||||
{
|
{
|
||||||
const char* zone_short_name = "";
|
quest_manager.CrossZoneMove(
|
||||||
quest_manager.CrossZoneMove(CZUpdateType_Raid, CZMoveUpdateSubtype_MoveZoneInstance, raid_id, zone_short_name, instance_id);
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.update_identifier = raid_id,
|
||||||
|
.update_type = CZUpdateType_Raid,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszonemoveinstancebyguildid(int guild_id, uint16 instance_id)
|
void Perl__crosszonemoveplayerbyguildid(uint32 guild_id, std::string zone_short_name)
|
||||||
{
|
{
|
||||||
const char* zone_short_name = "";
|
quest_manager.CrossZoneMove(
|
||||||
quest_manager.CrossZoneMove(CZUpdateType_Guild, CZMoveUpdateSubtype_MoveZoneInstance, guild_id, zone_short_name, instance_id);
|
CZMove_Struct{
|
||||||
|
.update_identifier = guild_id,
|
||||||
|
.update_type = CZUpdateType_Guild,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveplayerbyguildid(uint32 guild_id, std::string zone_short_name, float x, float y, float z)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.update_identifier = guild_id,
|
||||||
|
.update_type = CZUpdateType_Guild,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveplayerbyguildid(
|
||||||
|
uint32 guild_id,
|
||||||
|
std::string zone_short_name,
|
||||||
|
float x,
|
||||||
|
float y,
|
||||||
|
float z,
|
||||||
|
float heading
|
||||||
|
)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.update_identifier = guild_id,
|
||||||
|
.update_type = CZUpdateType_Guild,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveplayerbyexpeditionid(uint32 expedition_id, std::string zone_short_name)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.update_identifier = expedition_id,
|
||||||
|
.update_type = CZUpdateType_Expedition,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveplayerbyexpeditionid(uint32 expedition_id, std::string zone_short_name, float x, float y, float z)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.update_identifier = expedition_id,
|
||||||
|
.update_type = CZUpdateType_Expedition,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveplayerbyexpeditionid(
|
||||||
|
uint32 expedition_id,
|
||||||
|
std::string zone_short_name,
|
||||||
|
float x,
|
||||||
|
float y,
|
||||||
|
float z,
|
||||||
|
float heading
|
||||||
|
)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.update_identifier = expedition_id,
|
||||||
|
.update_type = CZUpdateType_Expedition,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveplayerbyname(std::string client_name, std::string zone_short_name)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.client_name = client_name,
|
||||||
|
.update_type = CZUpdateType_ClientName,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveplayerbyname(std::string client_name, std::string zone_short_name, float x, float y, float z)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.client_name = client_name,
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.update_type = CZUpdateType_ClientName,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveplayerbyname(std::string client_name, std::string zone_short_name, float x, float y, float z, float heading)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.client_name = client_name,
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.update_type = CZUpdateType_ClientName,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebycharid(uint32 character_id, uint16 instance_id)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = character_id,
|
||||||
|
.update_type = CZUpdateType_Character,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebycharid(uint32 character_id, uint16 instance_id, float x, float y, float z)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = character_id,
|
||||||
|
.update_type = CZUpdateType_Character,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebycharid(uint32 character_id, uint16 instance_id, float x, float y, float z, float heading)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = character_id,
|
||||||
|
.update_type = CZUpdateType_Character,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebygroupid(uint32 group_id, uint16 instance_id)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = group_id,
|
||||||
|
.update_type = CZUpdateType_Group,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebygroupid(uint32 group_id, uint16 instance_id, float x, float y, float z)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = group_id,
|
||||||
|
.update_type = CZUpdateType_Group,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebygroupid(uint32 group_id, uint16 instance_id, float x, float y, float z, float heading)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = group_id,
|
||||||
|
.update_type = CZUpdateType_Group,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebyraidid(uint32 raid_id, uint16 instance_id)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = raid_id,
|
||||||
|
.update_type = CZUpdateType_Raid,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebyraidid(uint32 raid_id, uint16 instance_id, float x, float y, float z)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = raid_id,
|
||||||
|
.update_type = CZUpdateType_Raid,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebyraidid(uint32 raid_id, uint16 instance_id, float x, float y, float z, float heading)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = raid_id,
|
||||||
|
.update_type = CZUpdateType_Raid,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebyguildid(uint32 guild_id, uint16 instance_id)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = guild_id,
|
||||||
|
.update_type = CZUpdateType_Guild,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebyguildid(uint32 guild_id, uint16 instance_id, float x, float y, float z)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = guild_id,
|
||||||
|
.update_type = CZUpdateType_Guild,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebyguildid(uint32 guild_id, uint16 instance_id, float x, float y, float z, float heading)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = guild_id,
|
||||||
|
.update_type = CZUpdateType_Guild,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszonemoveinstancebyexpeditionid(uint32 expedition_id, uint16 instance_id)
|
void Perl__crosszonemoveinstancebyexpeditionid(uint32 expedition_id, uint16 instance_id)
|
||||||
{
|
{
|
||||||
const char* zone_short_name = "";
|
quest_manager.CrossZoneMove(
|
||||||
quest_manager.CrossZoneMove(CZUpdateType_Expedition, CZMoveUpdateSubtype_MoveZoneInstance, expedition_id, zone_short_name, instance_id);
|
CZMove_Struct{
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = expedition_id,
|
||||||
|
.update_type = CZUpdateType_Expedition,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszonemoveinstancebyclientname(const char* client_name, uint16 instance_id)
|
void Perl__crosszonemoveinstancebyexpeditionid(uint32 expedition_id, uint16 instance_id, float x, float y, float z)
|
||||||
{
|
{
|
||||||
int update_identifier = 0;
|
quest_manager.CrossZoneMove(
|
||||||
const char* zone_short_name = "";
|
CZMove_Struct{
|
||||||
quest_manager.CrossZoneMove(CZUpdateType_ClientName, CZMoveUpdateSubtype_MoveZoneInstance, update_identifier, zone_short_name, instance_id, client_name);
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = expedition_id,
|
||||||
|
.update_type = CZUpdateType_Expedition,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebyexpeditionid(uint32 expedition_id, uint16 instance_id, float x, float y, float z, float heading)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = expedition_id,
|
||||||
|
.update_type = CZUpdateType_Expedition,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebyclientname(std::string client_name, uint16 instance_id)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.client_name = client_name,
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_type = CZUpdateType_ClientName,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebyclientname(std::string client_name, uint16 instance_id, float x, float y, float z)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.client_name = client_name,
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_type = CZUpdateType_ClientName,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Perl__crosszonemoveinstancebyclientname(std::string client_name, uint16 instance_id, float x, float y, float z, float heading)
|
||||||
|
{
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.client_name = client_name,
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_type = CZUpdateType_ClientName,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perl__crosszoneremoveldonlossbycharid(int character_id, uint32 theme_id)
|
void Perl__crosszoneremoveldonlossbycharid(int character_id, uint32 theme_id)
|
||||||
@ -5762,18 +6172,42 @@ void perl_register_quest()
|
|||||||
package.add("crosszonemessageplayerbyguildid", &Perl__crosszonemessageplayerbyguildid);
|
package.add("crosszonemessageplayerbyguildid", &Perl__crosszonemessageplayerbyguildid);
|
||||||
package.add("crosszonemessageplayerbyexpeditionid", &Perl__crosszonemessageplayerbyexpeditionid);
|
package.add("crosszonemessageplayerbyexpeditionid", &Perl__crosszonemessageplayerbyexpeditionid);
|
||||||
package.add("crosszonemessageplayerbyname", &Perl__crosszonemessageplayerbyname);
|
package.add("crosszonemessageplayerbyname", &Perl__crosszonemessageplayerbyname);
|
||||||
package.add("crosszonemoveplayerbycharid", &Perl__crosszonemoveplayerbycharid);
|
package.add("crosszonemoveplayerbycharid", (void(*)(uint32, std::string))&Perl__crosszonemoveplayerbycharid);
|
||||||
package.add("crosszonemoveplayerbygroupid", &Perl__crosszonemoveplayerbygroupid);
|
package.add("crosszonemoveplayerbycharid", (void(*)(uint32, std::string, float, float, float))&Perl__crosszonemoveplayerbycharid);
|
||||||
package.add("crosszonemoveplayerbyraidid", &Perl__crosszonemoveplayerbyraidid);
|
package.add("crosszonemoveplayerbycharid", (void(*)(uint32, std::string, float, float, float, float))&Perl__crosszonemoveplayerbycharid);
|
||||||
package.add("crosszonemoveplayerbyguildid", &Perl__crosszonemoveplayerbyguildid);
|
package.add("crosszonemoveplayerbygroupid", (void(*)(uint32, std::string))&Perl__crosszonemoveplayerbygroupid);
|
||||||
package.add("crosszonemoveplayerbyexpeditionid", &Perl__crosszonemoveplayerbyexpeditionid);
|
package.add("crosszonemoveplayerbygroupid", (void(*)(uint32, std::string, float, float, float))&Perl__crosszonemoveplayerbygroupid);
|
||||||
package.add("crosszonemoveplayerbyname", &Perl__crosszonemoveplayerbyname);
|
package.add("crosszonemoveplayerbygroupid", (void(*)(uint32, std::string, float, float, float, float))&Perl__crosszonemoveplayerbygroupid);
|
||||||
package.add("crosszonemoveinstancebycharid", &Perl__crosszonemoveinstancebycharid);
|
package.add("crosszonemoveplayerbyraidid", (void(*)(uint32, std::string))&Perl__crosszonemoveplayerbyraidid);
|
||||||
package.add("crosszonemoveinstancebygroupid", &Perl__crosszonemoveinstancebygroupid);
|
package.add("crosszonemoveplayerbyraidid", (void(*)(uint32, std::string, float, float, float))&Perl__crosszonemoveplayerbyraidid);
|
||||||
package.add("crosszonemoveinstancebyraidid", &Perl__crosszonemoveinstancebyraidid);
|
package.add("crosszonemoveplayerbyraidid", (void(*)(uint32, std::string, float, float, float, float))&Perl__crosszonemoveplayerbyraidid);
|
||||||
package.add("crosszonemoveinstancebyguildid", &Perl__crosszonemoveinstancebyguildid);
|
package.add("crosszonemoveplayerbyguildid", (void(*)(uint32, std::string))&Perl__crosszonemoveplayerbyguildid);
|
||||||
package.add("crosszonemoveinstancebyexpeditionid", &Perl__crosszonemoveinstancebyexpeditionid);
|
package.add("crosszonemoveplayerbyguildid", (void(*)(uint32, std::string, float, float, float))&Perl__crosszonemoveplayerbyguildid);
|
||||||
package.add("crosszonemoveinstancebyclientname", &Perl__crosszonemoveinstancebyclientname);
|
package.add("crosszonemoveplayerbyguildid", (void(*)(uint32, std::string, float, float, float, float))&Perl__crosszonemoveplayerbyguildid);
|
||||||
|
package.add("crosszonemoveplayerbyexpeditionid", (void(*)(uint32, std::string))&Perl__crosszonemoveplayerbyexpeditionid);
|
||||||
|
package.add("crosszonemoveplayerbyexpeditionid", (void(*)(uint32, std::string, float, float, float))&Perl__crosszonemoveplayerbyexpeditionid);
|
||||||
|
package.add("crosszonemoveplayerbyexpeditionid", (void(*)(uint32, std::string, float, float, float, float))&Perl__crosszonemoveplayerbyexpeditionid);
|
||||||
|
package.add("crosszonemoveplayerbyname", (void(*)(std::string, std::string))&Perl__crosszonemoveplayerbyname);
|
||||||
|
package.add("crosszonemoveplayerbyname", (void(*)(std::string, std::string, float, float, float))&Perl__crosszonemoveplayerbyname);
|
||||||
|
package.add("crosszonemoveplayerbyname", (void(*)(std::string, std::string, float, float, float, float))&Perl__crosszonemoveplayerbyname);
|
||||||
|
package.add("crosszonemoveinstancebycharid", (void(*)(uint32, uint16))&Perl__crosszonemoveinstancebycharid);
|
||||||
|
package.add("crosszonemoveinstancebycharid", (void(*)(uint32, uint16, float, float, float))&Perl__crosszonemoveinstancebycharid);
|
||||||
|
package.add("crosszonemoveinstancebycharid", (void(*)(uint32, uint16, float, float, float, float))&Perl__crosszonemoveinstancebycharid);
|
||||||
|
package.add("crosszonemoveinstancebygroupid", (void(*)(uint32, uint16))&Perl__crosszonemoveinstancebygroupid);
|
||||||
|
package.add("crosszonemoveinstancebygroupid", (void(*)(uint32, uint16, float, float, float))&Perl__crosszonemoveinstancebygroupid);
|
||||||
|
package.add("crosszonemoveinstancebygroupid", (void(*)(uint32, uint16, float, float, float, float))&Perl__crosszonemoveinstancebygroupid);
|
||||||
|
package.add("crosszonemoveinstancebyraidid", (void(*)(uint32, uint16))&Perl__crosszonemoveinstancebyraidid);
|
||||||
|
package.add("crosszonemoveinstancebyraidid", (void(*)(uint32, uint16, float, float, float))&Perl__crosszonemoveinstancebyraidid);
|
||||||
|
package.add("crosszonemoveinstancebyraidid", (void(*)(uint32, uint16, float, float, float, float))&Perl__crosszonemoveinstancebyraidid);
|
||||||
|
package.add("crosszonemoveinstancebyguildid", (void(*)(uint32, uint16))&Perl__crosszonemoveinstancebyguildid);
|
||||||
|
package.add("crosszonemoveinstancebyguildid", (void(*)(uint32, uint16, float, float, float))&Perl__crosszonemoveinstancebyguildid);
|
||||||
|
package.add("crosszonemoveinstancebyguildid", (void(*)(uint32, uint16, float, float, float, float))&Perl__crosszonemoveinstancebyguildid);
|
||||||
|
package.add("crosszonemoveinstancebyexpeditionid", (void(*)(uint32, uint16))&Perl__crosszonemoveinstancebyexpeditionid);
|
||||||
|
package.add("crosszonemoveinstancebyexpeditionid", (void(*)(uint32, uint16, float, float, float))&Perl__crosszonemoveinstancebyexpeditionid);
|
||||||
|
package.add("crosszonemoveinstancebyexpeditionid", (void(*)(uint32, uint16, float, float, float, float))&Perl__crosszonemoveinstancebyexpeditionid);
|
||||||
|
package.add("crosszonemoveinstancebyclientname", (void(*)(std::string, uint16))&Perl__crosszonemoveinstancebyclientname);
|
||||||
|
package.add("crosszonemoveinstancebyclientname", (void(*)(std::string, uint16, float, float, float))&Perl__crosszonemoveinstancebyclientname);
|
||||||
|
package.add("crosszonemoveinstancebyclientname", (void(*)(std::string, uint16, float, float, float, float))&Perl__crosszonemoveinstancebyclientname);
|
||||||
package.add("crosszoneremoveldonlossbycharid", &Perl__crosszoneremoveldonlossbycharid);
|
package.add("crosszoneremoveldonlossbycharid", &Perl__crosszoneremoveldonlossbycharid);
|
||||||
package.add("crosszoneremoveldonlossbygroupid", &Perl__crosszoneremoveldonlossbygroupid);
|
package.add("crosszoneremoveldonlossbygroupid", &Perl__crosszoneremoveldonlossbygroupid);
|
||||||
package.add("crosszoneremoveldonlossbyraidid", &Perl__crosszoneremoveldonlossbyraidid);
|
package.add("crosszoneremoveldonlossbyraidid", &Perl__crosszoneremoveldonlossbyraidid);
|
||||||
|
|||||||
@ -2539,90 +2539,424 @@ void lua_cross_zone_message_player_by_name(uint32 type, const char* client_name,
|
|||||||
quest_manager.CrossZoneMessage(update_type, update_identifier, type, message, client_name);
|
quest_manager.CrossZoneMessage(update_type, update_identifier, type, message, client_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_move_player_by_char_id(int character_id, const char* zone_short_name) {
|
void lua_cross_zone_move_player_by_char_id(uint32 character_id, std::string zone_short_name) {
|
||||||
uint8 update_type = CZUpdateType_Character;
|
quest_manager.CrossZoneMove(
|
||||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZone;
|
CZMove_Struct{
|
||||||
uint16 instance_id = 0;
|
.update_identifier = character_id,
|
||||||
quest_manager.CrossZoneMove(update_type, update_subtype, character_id, zone_short_name, instance_id);
|
.update_type = CZUpdateType_Character,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_move_player_by_group_id(int group_id, const char* zone_short_name) {
|
void lua_cross_zone_move_player_by_char_id(uint32 character_id, std::string zone_short_name, float x, float y, float z) {
|
||||||
uint8 update_type = CZUpdateType_Group;
|
quest_manager.CrossZoneMove(
|
||||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZone;
|
CZMove_Struct{
|
||||||
uint16 instance_id = 0;
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
quest_manager.CrossZoneMove(update_type, update_subtype, group_id, zone_short_name, instance_id);
|
.update_identifier = character_id,
|
||||||
|
.update_type = CZUpdateType_Character,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_move_player_by_raid_id(int raid_id, const char* zone_short_name) {
|
void lua_cross_zone_move_player_by_char_id(uint32 character_id, std::string zone_short_name, float x, float y, float z, float heading) {
|
||||||
uint8 update_type = CZUpdateType_Raid;
|
quest_manager.CrossZoneMove(
|
||||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZone;
|
CZMove_Struct{
|
||||||
uint16 instance_id = 0;
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
quest_manager.CrossZoneMove(update_type, update_subtype, raid_id, zone_short_name, instance_id);
|
.update_identifier = character_id,
|
||||||
|
.update_type = CZUpdateType_Character,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_move_player_by_guild_id(int guild_id, const char* zone_short_name) {
|
void lua_cross_zone_move_player_by_group_id(uint32 group_id, std::string zone_short_name) {
|
||||||
uint8 update_type = CZUpdateType_Guild;
|
quest_manager.CrossZoneMove(
|
||||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZone;
|
CZMove_Struct{
|
||||||
uint16 instance_id = 0;
|
.update_identifier = group_id,
|
||||||
quest_manager.CrossZoneMove(update_type, update_subtype, guild_id, zone_short_name, instance_id);
|
.update_type = CZUpdateType_Group,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_move_player_by_expedition_id(int expedition_id, const char* zone_short_name) {
|
void lua_cross_zone_move_player_by_group_id(uint32 group_id, std::string zone_short_name, float x, float y, float z) {
|
||||||
uint8 update_type = CZUpdateType_Expedition;
|
quest_manager.CrossZoneMove(
|
||||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZone;
|
CZMove_Struct{
|
||||||
uint16 instance_id = 0;
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
quest_manager.CrossZoneMove(update_type, update_subtype, expedition_id, zone_short_name, instance_id);
|
.update_identifier = group_id,
|
||||||
|
.update_type = CZUpdateType_Group,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_move_player_by_client_name(const char* client_name, const char* zone_short_name) {
|
void lua_cross_zone_move_player_by_group_id(uint32 group_id, std::string zone_short_name, float x, float y, float z, float heading) {
|
||||||
uint8 update_type = CZUpdateType_Character;
|
quest_manager.CrossZoneMove(
|
||||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZone;
|
CZMove_Struct{
|
||||||
int update_identifier = 0;
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
uint16 instance_id = 0;
|
.update_identifier = group_id,
|
||||||
quest_manager.CrossZoneMove(update_type, update_subtype, update_identifier, zone_short_name, instance_id, client_name);
|
.update_type = CZUpdateType_Group,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_move_instance_by_char_id(int character_id, uint16 instance_id) {
|
void lua_cross_zone_move_player_by_raid_id(uint32 raid_id, std::string zone_short_name) {
|
||||||
uint8 update_type = CZUpdateType_Character;
|
quest_manager.CrossZoneMove(
|
||||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZoneInstance;
|
CZMove_Struct{
|
||||||
const char* zone_short_name = "";
|
.update_identifier = raid_id,
|
||||||
quest_manager.CrossZoneMove(update_type, update_subtype, character_id, zone_short_name, instance_id);
|
.update_type = CZUpdateType_Raid,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_move_instance_by_group_id(int group_id, uint16 instance_id) {
|
void lua_cross_zone_move_player_by_raid_id(uint32 raid_id, std::string zone_short_name, float x, float y, float z) {
|
||||||
uint8 update_type = CZUpdateType_Group;
|
quest_manager.CrossZoneMove(
|
||||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZoneInstance;
|
CZMove_Struct{
|
||||||
const char* zone_short_name = "";
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
quest_manager.CrossZoneMove(update_type, update_subtype, group_id, zone_short_name, instance_id);
|
.update_identifier = raid_id,
|
||||||
|
.update_type = CZUpdateType_Raid,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_move_instance_by_raid_id(int raid_id, uint16 instance_id) {
|
void lua_cross_zone_move_player_by_raid_id(uint32 raid_id, std::string zone_short_name, float x, float y, float z, float heading) {
|
||||||
uint8 update_type = CZUpdateType_Raid;
|
quest_manager.CrossZoneMove(
|
||||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZoneInstance;
|
CZMove_Struct{
|
||||||
const char* zone_short_name = "";
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
quest_manager.CrossZoneMove(update_type, update_subtype, raid_id, zone_short_name, instance_id);
|
.update_identifier = raid_id,
|
||||||
|
.update_type = CZUpdateType_Raid,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_move_instance_by_guild_id(int guild_id, uint16 instance_id) {
|
void lua_cross_zone_move_player_by_guild_id(uint32 guild_id, std::string zone_short_name) {
|
||||||
uint8 update_type = CZUpdateType_Guild;
|
quest_manager.CrossZoneMove(
|
||||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZoneInstance;
|
CZMove_Struct{
|
||||||
const char* zone_short_name = "";
|
.update_identifier = guild_id,
|
||||||
quest_manager.CrossZoneMove(update_type, update_subtype, guild_id, zone_short_name, instance_id);
|
.update_type = CZUpdateType_Guild,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_player_by_guild_id(uint32 guild_id, std::string zone_short_name, float x, float y, float z) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.update_identifier = guild_id,
|
||||||
|
.update_type = CZUpdateType_Guild,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_player_by_guild_id(uint32 guild_id, std::string zone_short_name, float x, float y, float z, float heading) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.update_identifier = guild_id,
|
||||||
|
.update_type = CZUpdateType_Guild,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_player_by_expedition_id(uint32 expedition_id, std::string zone_short_name) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.update_identifier = expedition_id,
|
||||||
|
.update_type = CZUpdateType_Expedition,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_player_by_expedition_id(uint32 expedition_id, std::string zone_short_name, float x, float y, float z) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.update_identifier = expedition_id,
|
||||||
|
.update_type = CZUpdateType_Expedition,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_player_by_expedition_id(uint32 expedition_id, std::string zone_short_name, float x, float y, float z, float heading) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.update_identifier = expedition_id,
|
||||||
|
.update_type = CZUpdateType_Expedition,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_player_by_client_name(std::string client_name, std::string zone_short_name) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.client_name = client_name,
|
||||||
|
.update_type = CZUpdateType_ClientName,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_player_by_client_name(std::string client_name, std::string zone_short_name, float x, float y, float z) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.client_name = client_name,
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.update_type = CZUpdateType_ClientName,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_player_by_client_name(std::string client_name, std::string zone_short_name, float x, float y, float z, float heading) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.client_name = client_name,
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.update_type = CZUpdateType_ClientName,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZone,
|
||||||
|
.zone_short_name = zone_short_name,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_char_id(uint32 character_id, uint16 instance_id) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = character_id,
|
||||||
|
.update_type = CZUpdateType_Character,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_char_id(uint32 character_id, uint16 instance_id, float x, float y, float z) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = character_id,
|
||||||
|
.update_type = CZUpdateType_Character,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_char_id(uint32 character_id, uint16 instance_id, float x, float y, float z, float heading) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = character_id,
|
||||||
|
.update_type = CZUpdateType_Character,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_group_id(uint32 group_id, uint16 instance_id) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = group_id,
|
||||||
|
.update_type = CZUpdateType_Group,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_group_id(uint32 group_id, uint16 instance_id, float x, float y, float z) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = group_id,
|
||||||
|
.update_type = CZUpdateType_Group,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_group_id(uint32 group_id, uint16 instance_id, float x, float y, float z, float heading) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = group_id,
|
||||||
|
.update_type = CZUpdateType_Group,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_raid_id(uint32 raid_id, uint16 instance_id) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = raid_id,
|
||||||
|
.update_type = CZUpdateType_Raid,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_raid_id(uint32 raid_id, uint16 instance_id, float x, float y, float z) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = raid_id,
|
||||||
|
.update_type = CZUpdateType_Raid,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_raid_id(uint32 raid_id, uint16 instance_id, float x, float y, float z, float heading) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = raid_id,
|
||||||
|
.update_type = CZUpdateType_Raid,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_guild_id(uint32 guild_id, uint16 instance_id) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = guild_id,
|
||||||
|
.update_type = CZUpdateType_Guild,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_guild_id(uint32 guild_id, uint16 instance_id, float x, float y, float z) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = guild_id,
|
||||||
|
.update_type = CZUpdateType_Guild,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_guild_id(uint32 guild_id, uint16 instance_id, float x, float y, float z, float heading) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = guild_id,
|
||||||
|
.update_type = CZUpdateType_Guild,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_move_instance_by_expedition_id(uint32 expedition_id, uint16 instance_id) {
|
void lua_cross_zone_move_instance_by_expedition_id(uint32 expedition_id, uint16 instance_id) {
|
||||||
uint8 update_type = CZUpdateType_Expedition;
|
quest_manager.CrossZoneMove(
|
||||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZoneInstance;
|
CZMove_Struct{
|
||||||
const char* zone_short_name = "";
|
.instance_id = instance_id,
|
||||||
quest_manager.CrossZoneMove(update_type, update_subtype, expedition_id, zone_short_name, instance_id);
|
.update_identifier = expedition_id,
|
||||||
|
.update_type = CZUpdateType_Expedition,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_move_instance_by_client_name(const char* client_name, uint16 instance_id) {
|
void lua_cross_zone_move_instance_by_expedition_id(uint32 expedition_id, uint16 instance_id, float x, float y, float z) {
|
||||||
uint8 update_type = CZUpdateType_ClientName;
|
quest_manager.CrossZoneMove(
|
||||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZoneInstance;
|
CZMove_Struct{
|
||||||
int update_identifier = 0;
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
const char* zone_short_name = "";
|
.instance_id = instance_id,
|
||||||
quest_manager.CrossZoneMove(update_type, update_subtype, update_identifier, zone_short_name, instance_id, client_name);
|
.update_identifier = expedition_id,
|
||||||
|
.update_type = CZUpdateType_Expedition,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_expedition_id(uint32 expedition_id, uint16 instance_id, float x, float y, float z, float heading) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_identifier = expedition_id,
|
||||||
|
.update_type = CZUpdateType_Expedition,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_client_name(std::string client_name, uint16 instance_id) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.client_name = client_name,
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_type = CZUpdateType_ClientName,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_client_name(std::string client_name, uint16 instance_id, float x, float y, float z) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.client_name = client_name,
|
||||||
|
.coordinates = glm::vec4(x, y, z, 0.0f),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_type = CZUpdateType_ClientName,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void lua_cross_zone_move_instance_by_client_name(std::string client_name, uint16 instance_id, float x, float y, float z, float heading) {
|
||||||
|
quest_manager.CrossZoneMove(
|
||||||
|
CZMove_Struct{
|
||||||
|
.client_name = client_name,
|
||||||
|
.coordinates = glm::vec4(x, y, z, heading),
|
||||||
|
.instance_id = instance_id,
|
||||||
|
.update_type = CZUpdateType_ClientName,
|
||||||
|
.update_subtype = CZMoveUpdateSubtype_MoveZoneInstance,
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lua_cross_zone_remove_ldon_loss_by_char_id(int character_id, uint32 theme_id) {
|
void lua_cross_zone_remove_ldon_loss_by_char_id(int character_id, uint32 theme_id) {
|
||||||
@ -5890,18 +6224,42 @@ luabind::scope lua_register_general() {
|
|||||||
luabind::def("cross_zone_message_player_by_guild_id", &lua_cross_zone_message_player_by_guild_id),
|
luabind::def("cross_zone_message_player_by_guild_id", &lua_cross_zone_message_player_by_guild_id),
|
||||||
luabind::def("cross_zone_message_player_by_expedition_id", &lua_cross_zone_message_player_by_expedition_id),
|
luabind::def("cross_zone_message_player_by_expedition_id", &lua_cross_zone_message_player_by_expedition_id),
|
||||||
luabind::def("cross_zone_message_player_by_name", &lua_cross_zone_message_player_by_name),
|
luabind::def("cross_zone_message_player_by_name", &lua_cross_zone_message_player_by_name),
|
||||||
luabind::def("cross_zone_move_player_by_char_id", &lua_cross_zone_move_player_by_char_id),
|
luabind::def("cross_zone_move_player_by_char_id", (void(*)(uint32,std::string))&lua_cross_zone_move_player_by_char_id),
|
||||||
luabind::def("cross_zone_move_player_by_group_id", &lua_cross_zone_move_player_by_group_id),
|
luabind::def("cross_zone_move_player_by_char_id", (void(*)(uint32,std::string,float,float,float))&lua_cross_zone_move_player_by_char_id),
|
||||||
luabind::def("cross_zone_move_player_by_raid_id", &lua_cross_zone_move_player_by_raid_id),
|
luabind::def("cross_zone_move_player_by_char_id", (void(*)(uint32,std::string,float,float,float,float))&lua_cross_zone_move_player_by_char_id),
|
||||||
luabind::def("cross_zone_move_player_by_guild_id", &lua_cross_zone_move_player_by_guild_id),
|
luabind::def("cross_zone_move_player_by_group_id", (void(*)(uint32,std::string))&lua_cross_zone_move_player_by_group_id),
|
||||||
luabind::def("cross_zone_move_player_by_expedition_id", &lua_cross_zone_move_player_by_expedition_id),
|
luabind::def("cross_zone_move_player_by_group_id", (void(*)(uint32,std::string,float,float,float))&lua_cross_zone_move_player_by_group_id),
|
||||||
luabind::def("cross_zone_move_player_by_client_name", &lua_cross_zone_move_player_by_client_name),
|
luabind::def("cross_zone_move_player_by_group_id", (void(*)(uint32,std::string,float,float,float,float))&lua_cross_zone_move_player_by_group_id),
|
||||||
luabind::def("cross_zone_move_instance_by_char_id", &lua_cross_zone_move_instance_by_char_id),
|
luabind::def("cross_zone_move_player_by_raid_id", (void(*)(uint32,std::string))&lua_cross_zone_move_player_by_raid_id),
|
||||||
luabind::def("cross_zone_move_instance_by_group_id", &lua_cross_zone_move_instance_by_group_id),
|
luabind::def("cross_zone_move_player_by_raid_id", (void(*)(uint32,std::string,float,float,float))&lua_cross_zone_move_player_by_raid_id),
|
||||||
luabind::def("cross_zone_move_instance_by_raid_id", &lua_cross_zone_move_instance_by_raid_id),
|
luabind::def("cross_zone_move_player_by_raid_id", (void(*)(uint32,std::string,float,float,float,float))&lua_cross_zone_move_player_by_raid_id),
|
||||||
luabind::def("cross_zone_move_instance_by_guild_id", &lua_cross_zone_move_instance_by_guild_id),
|
luabind::def("cross_zone_move_player_by_guild_id", (void(*)(uint32,std::string))&lua_cross_zone_move_player_by_guild_id),
|
||||||
luabind::def("cross_zone_move_instance_by_expedition_id", &lua_cross_zone_move_instance_by_expedition_id),
|
luabind::def("cross_zone_move_player_by_guild_id", (void(*)(uint32,std::string,float,float,float))&lua_cross_zone_move_player_by_guild_id),
|
||||||
luabind::def("cross_zone_move_instance_by_client_name", &lua_cross_zone_move_instance_by_client_name),
|
luabind::def("cross_zone_move_player_by_guild_id", (void(*)(uint32,std::string,float,float,float,float))&lua_cross_zone_move_player_by_guild_id),
|
||||||
|
luabind::def("cross_zone_move_player_by_expedition_id", (void(*)(uint32,std::string))&lua_cross_zone_move_player_by_expedition_id),
|
||||||
|
luabind::def("cross_zone_move_player_by_expedition_id", (void(*)(uint32,std::string,float,float,float))&lua_cross_zone_move_player_by_expedition_id),
|
||||||
|
luabind::def("cross_zone_move_player_by_expedition_id", (void(*)(uint32,std::string,float,float,float,float))&lua_cross_zone_move_player_by_expedition_id),
|
||||||
|
luabind::def("cross_zone_move_player_by_client_name", (void(*)(std::string,std::string))&lua_cross_zone_move_player_by_client_name),
|
||||||
|
luabind::def("cross_zone_move_player_by_client_name", (void(*)(std::string,std::string,float,float,float))&lua_cross_zone_move_player_by_client_name),
|
||||||
|
luabind::def("cross_zone_move_player_by_client_name", (void(*)(std::string,std::string,float,float,float,float))&lua_cross_zone_move_player_by_client_name),
|
||||||
|
luabind::def("cross_zone_move_instance_by_char_id", (void(*)(uint32,uint16))&lua_cross_zone_move_instance_by_char_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_char_id", (void(*)(uint32,uint16,float,float,float))&lua_cross_zone_move_instance_by_char_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_char_id", (void(*)(uint32,uint16,float,float,float,float))&lua_cross_zone_move_instance_by_char_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_group_id", (void(*)(uint32,uint16))&lua_cross_zone_move_instance_by_group_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_group_id", (void(*)(uint32,uint16,float,float,float))&lua_cross_zone_move_instance_by_group_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_group_id", (void(*)(uint32,uint16,float,float,float,float))&lua_cross_zone_move_instance_by_group_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_raid_id", (void(*)(uint32,uint16))&lua_cross_zone_move_instance_by_raid_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_raid_id", (void(*)(uint32,uint16,float,float,float))&lua_cross_zone_move_instance_by_raid_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_raid_id", (void(*)(uint32,uint16,float,float,float,float))&lua_cross_zone_move_instance_by_raid_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_guild_id", (void(*)(uint32,uint16))&lua_cross_zone_move_instance_by_guild_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_guild_id", (void(*)(uint32,uint16,float,float,float))&lua_cross_zone_move_instance_by_guild_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_guild_id", (void(*)(uint32,uint16,float,float,float,float))&lua_cross_zone_move_instance_by_guild_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_expedition_id", (void(*)(uint32,uint16))&lua_cross_zone_move_instance_by_expedition_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_expedition_id", (void(*)(uint32,uint16,float,float,float))&lua_cross_zone_move_instance_by_expedition_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_expedition_id", (void(*)(uint32,uint16,float,float,float,float))&lua_cross_zone_move_instance_by_expedition_id),
|
||||||
|
luabind::def("cross_zone_move_instance_by_client_name", (void(*)(std::string,uint16))&lua_cross_zone_move_instance_by_client_name),
|
||||||
|
luabind::def("cross_zone_move_instance_by_client_name", (void(*)(std::string,uint16,float,float,float))&lua_cross_zone_move_instance_by_client_name),
|
||||||
|
luabind::def("cross_zone_move_instance_by_client_name", (void(*)(std::string,uint16,float,float,float,float))&lua_cross_zone_move_instance_by_client_name),
|
||||||
luabind::def("cross_zone_remove_ldon_loss_by_char_id", &lua_cross_zone_remove_ldon_loss_by_char_id),
|
luabind::def("cross_zone_remove_ldon_loss_by_char_id", &lua_cross_zone_remove_ldon_loss_by_char_id),
|
||||||
luabind::def("cross_zone_remove_ldon_loss_by_group_id", &lua_cross_zone_remove_ldon_loss_by_group_id),
|
luabind::def("cross_zone_remove_ldon_loss_by_group_id", &lua_cross_zone_remove_ldon_loss_by_group_id),
|
||||||
luabind::def("cross_zone_remove_ldon_loss_by_raid_id", &lua_cross_zone_remove_ldon_loss_by_raid_id),
|
luabind::def("cross_zone_remove_ldon_loss_by_raid_id", &lua_cross_zone_remove_ldon_loss_by_raid_id),
|
||||||
|
|||||||
@ -3980,15 +3980,25 @@ void QuestManager::CrossZoneMessage(uint8 update_type, int update_identifier, ui
|
|||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QuestManager::CrossZoneMove(uint8 update_type, uint8 update_subtype, int update_identifier, const char* zone_short_name, uint16 instance_id, const char* client_name) {
|
void QuestManager::CrossZoneMove(const CZMove_Struct& m)
|
||||||
|
{
|
||||||
auto pack = new ServerPacket(ServerOP_CZMove, sizeof(CZMove_Struct));
|
auto pack = new ServerPacket(ServerOP_CZMove, sizeof(CZMove_Struct));
|
||||||
CZMove_Struct* CZM = (CZMove_Struct*)pack->pBuffer;
|
auto s = (CZMove_Struct*) pack->pBuffer;
|
||||||
CZM->update_type = update_type;
|
|
||||||
CZM->update_subtype = update_subtype;
|
if (!m.client_name.empty()) {
|
||||||
CZM->update_identifier = update_identifier;
|
s->client_name = m.client_name;
|
||||||
strn0cpy(CZM->zone_short_name, zone_short_name, 32);
|
}
|
||||||
CZM->instance_id = instance_id;
|
|
||||||
strn0cpy(CZM->client_name, client_name, 64);
|
s->coordinates = m.coordinates;
|
||||||
|
s->instance_id = m.instance_id;
|
||||||
|
s->update_type = m.update_type;
|
||||||
|
s->update_subtype = m.update_subtype;
|
||||||
|
s->update_identifier = m.update_identifier;
|
||||||
|
|
||||||
|
if (!m.zone_short_name.empty()) {
|
||||||
|
s->zone_short_name = m.zone_short_name;
|
||||||
|
}
|
||||||
|
|
||||||
worldserver.SendPacket(pack);
|
worldserver.SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -312,7 +312,7 @@ public:
|
|||||||
void CrossZoneLDoNUpdate(uint8 update_type, uint8 update_subtype, int update_identifier, uint32 theme_id, int points = 1, const char* client_name = "");
|
void CrossZoneLDoNUpdate(uint8 update_type, uint8 update_subtype, int update_identifier, uint32 theme_id, int points = 1, const char* client_name = "");
|
||||||
void CrossZoneMarquee(uint8 update_type, int update_identifier, uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, const char* message, const char* client_name = "");
|
void CrossZoneMarquee(uint8 update_type, int update_identifier, uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, const char* message, const char* client_name = "");
|
||||||
void CrossZoneMessage(uint8 update_type, int update_identifier, uint32 type, const char* message, const char* client_name = "");
|
void CrossZoneMessage(uint8 update_type, int update_identifier, uint32 type, const char* message, const char* client_name = "");
|
||||||
void CrossZoneMove(uint8 update_type, uint8 update_subtype, int update_identifier, const char* zone_short_name, uint16 instance_id, const char* client_name = "");
|
void CrossZoneMove(const CZMove_Struct& m);
|
||||||
void CrossZoneSetEntityVariable(uint8 update_type, int update_identifier, const char* variable_name, const char* variable_value, const char* client_name = "");
|
void CrossZoneSetEntityVariable(uint8 update_type, int update_identifier, const char* variable_name, const char* variable_value, const char* client_name = "");
|
||||||
void CrossZoneSignal(uint8 update_type, int update_identifier, int signal_id, const char* client_name = "");
|
void CrossZoneSignal(uint8 update_type, int update_identifier, int signal_id, const char* client_name = "");
|
||||||
void CrossZoneSpell(uint8 update_type, uint8 update_subtype, int update_identifier, uint32 spell_id, const char* client_name = "");
|
void CrossZoneSpell(uint8 update_type, uint8 update_subtype, int update_identifier, uint32 spell_id, const char* client_name = "");
|
||||||
|
|||||||
@ -2509,98 +2509,105 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
|||||||
}
|
}
|
||||||
case ServerOP_CZMove:
|
case ServerOP_CZMove:
|
||||||
{
|
{
|
||||||
CZMove_Struct* CZM = (CZMove_Struct*) pack->pBuffer;
|
auto s = (CZMove_Struct*) pack->pBuffer;
|
||||||
uint8 update_type = CZM->update_type;
|
|
||||||
uint8 update_subtype = CZM->update_subtype;
|
const std::string& client_name = s->client_name;
|
||||||
int update_identifier = CZM->update_identifier;
|
const glm::vec4& coordinates = s->coordinates;
|
||||||
const char* zone_short_name = CZM->zone_short_name;
|
const uint16 instance_id = s->instance_id;
|
||||||
uint16 instance_id = CZM->instance_id;
|
const uint32 update_identifier = s->update_identifier;
|
||||||
const char* client_name = CZM->client_name;
|
const uint8 update_type = s->update_type;
|
||||||
|
const uint8 update_subtype = s->update_subtype;
|
||||||
|
const std::string& zone_short_name = s->zone_short_name;
|
||||||
|
|
||||||
|
if (Strings::IsNumber(client_name) || Strings::IsNumber(zone_short_name)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (update_type == CZUpdateType_Character) {
|
if (update_type == CZUpdateType_Character) {
|
||||||
auto client = entity_list.GetClientByCharID(update_identifier);
|
Client* c = entity_list.GetClientByCharID(update_identifier);
|
||||||
if (client) {
|
if (c) {
|
||||||
switch (update_subtype) {
|
switch (update_subtype) {
|
||||||
case CZMoveUpdateSubtype_MoveZone:
|
case CZMoveUpdateSubtype_MoveZone:
|
||||||
client->MoveZone(zone_short_name);
|
c->MoveZone(zone_short_name.c_str(), coordinates);
|
||||||
break;
|
break;
|
||||||
case CZMoveUpdateSubtype_MoveZoneInstance:
|
case CZMoveUpdateSubtype_MoveZoneInstance:
|
||||||
client->MoveZoneInstance(instance_id);
|
c->MoveZoneInstance(instance_id, coordinates);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (update_type == CZUpdateType_Group) {
|
} else if (update_type == CZUpdateType_Group) {
|
||||||
auto client_group = entity_list.GetGroupByID(update_identifier);
|
Group* g = entity_list.GetGroupByID(update_identifier);
|
||||||
if (client_group) {
|
if (g) {
|
||||||
for (int member_index = 0; member_index < MAX_GROUP_MEMBERS; member_index++) {
|
for (const auto& gm : g->members) {
|
||||||
if (client_group->members[member_index] && client_group->members[member_index]->IsClient()) {
|
if (gm->IsClient()) {
|
||||||
auto group_member = client_group->members[member_index]->CastToClient();
|
Client* c = gm->CastToClient();
|
||||||
switch (update_subtype) {
|
switch (update_subtype) {
|
||||||
case CZMoveUpdateSubtype_MoveZone:
|
case CZMoveUpdateSubtype_MoveZone:
|
||||||
group_member->MoveZone(zone_short_name);
|
c->MoveZone(zone_short_name.c_str(), coordinates);
|
||||||
break;
|
break;
|
||||||
case CZMoveUpdateSubtype_MoveZoneInstance:
|
case CZMoveUpdateSubtype_MoveZoneInstance:
|
||||||
group_member->MoveZoneInstance(instance_id);
|
c->MoveZoneInstance(instance_id, coordinates);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (update_type == CZUpdateType_Raid) {
|
} else if (update_type == CZUpdateType_Raid) {
|
||||||
auto client_raid = entity_list.GetRaidByID(update_identifier);
|
Raid* r = entity_list.GetRaidByID(update_identifier);
|
||||||
if (client_raid) {
|
if (r) {
|
||||||
for (const auto& m : client_raid->members) {
|
for (const auto& rm : r->members) {
|
||||||
if (m.is_bot) {
|
if (rm.is_bot) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m.member && m.member->IsClient()) {
|
if (rm.member && rm.member->IsClient()) {
|
||||||
auto raid_member = m.member->CastToClient();
|
Client* m = rm.member->CastToClient();
|
||||||
switch (update_subtype) {
|
switch (update_subtype) {
|
||||||
case CZMoveUpdateSubtype_MoveZone:
|
case CZMoveUpdateSubtype_MoveZone:
|
||||||
raid_member->MoveZone(zone_short_name);
|
m->MoveZone(zone_short_name.c_str(), coordinates);
|
||||||
break;
|
break;
|
||||||
case CZMoveUpdateSubtype_MoveZoneInstance:
|
case CZMoveUpdateSubtype_MoveZoneInstance:
|
||||||
raid_member->MoveZoneInstance(instance_id);
|
m->MoveZoneInstance(instance_id, coordinates);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (update_type == CZUpdateType_Guild) {
|
} else if (update_type == CZUpdateType_Guild) {
|
||||||
for (auto &client: entity_list.GetClientList()) {
|
for (auto& c : entity_list.GetClientList()) {
|
||||||
if (client.second->GuildID() > 0 && client.second->GuildID() == update_identifier) {
|
if (c.second && c.second->IsInAGuild() && c.second->IsInGuild(update_identifier)) {
|
||||||
switch (update_subtype) {
|
switch (update_subtype) {
|
||||||
case CZMoveUpdateSubtype_MoveZone:
|
case CZMoveUpdateSubtype_MoveZone:
|
||||||
client.second->MoveZone(zone_short_name);
|
c.second->MoveZone(zone_short_name.c_str(), coordinates);
|
||||||
break;
|
break;
|
||||||
case CZMoveUpdateSubtype_MoveZoneInstance:
|
case CZMoveUpdateSubtype_MoveZoneInstance:
|
||||||
client.second->MoveZoneInstance(instance_id);
|
c.second->MoveZoneInstance(instance_id, coordinates);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (update_type == CZUpdateType_Expedition) {
|
} else if (update_type == CZUpdateType_Expedition) {
|
||||||
for (auto &client: entity_list.GetClientList()) {
|
for (auto& c : entity_list.GetClientList()) {
|
||||||
if (client.second->GetExpedition() && client.second->GetExpedition()->GetID() == update_identifier) {
|
if (c.second && c.second->GetExpeditionID() == update_identifier) {
|
||||||
switch (update_subtype) {
|
switch (update_subtype) {
|
||||||
case CZMoveUpdateSubtype_MoveZone:
|
case CZMoveUpdateSubtype_MoveZone:
|
||||||
client.second->MoveZone(zone_short_name);
|
c.second->MoveZone(zone_short_name.c_str(), coordinates);
|
||||||
break;
|
break;
|
||||||
case CZMoveUpdateSubtype_MoveZoneInstance:
|
case CZMoveUpdateSubtype_MoveZoneInstance:
|
||||||
client.second->MoveZoneInstance(instance_id);
|
c.second->MoveZoneInstance(instance_id, coordinates);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (update_type == CZUpdateType_ClientName) {
|
} else if (update_type == CZUpdateType_ClientName) {
|
||||||
auto client = entity_list.GetClientByName(client_name);
|
Client* c = entity_list.GetClientByName(client_name.c_str());
|
||||||
if (client) {
|
if (c) {
|
||||||
switch (update_subtype) {
|
switch (update_subtype) {
|
||||||
case CZMoveUpdateSubtype_MoveZone:
|
case CZMoveUpdateSubtype_MoveZone:
|
||||||
client->MoveZone(zone_short_name);
|
c->MoveZone(zone_short_name.c_str(), coordinates);
|
||||||
break;
|
break;
|
||||||
case CZMoveUpdateSubtype_MoveZoneInstance:
|
case CZMoveUpdateSubtype_MoveZoneInstance:
|
||||||
client->MoveZoneInstance(instance_id);
|
c->MoveZoneInstance(instance_id, coordinates);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3106,21 +3113,29 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
|||||||
}
|
}
|
||||||
case ServerOP_WWMove:
|
case ServerOP_WWMove:
|
||||||
{
|
{
|
||||||
WWMove_Struct* WWM = (WWMove_Struct*) pack->pBuffer;
|
auto m = (WWMove_Struct*) pack->pBuffer;
|
||||||
uint8 update_type = WWM->update_type;
|
|
||||||
uint16 instance_id = WWM->instance_id;
|
uint16 instance_id = m->instance_id;
|
||||||
const char* zone_short_name = WWM->zone_short_name;
|
uint8 max_status = m->max_status;
|
||||||
uint8 min_status = WWM->min_status;
|
uint8 min_status = m->min_status;
|
||||||
uint8 max_status = WWM->max_status;
|
uint8 update_type = m->update_type;
|
||||||
|
std::string zone_short_name = m->zone_short_name;
|
||||||
|
|
||||||
for (auto &client : entity_list.GetClientList()) {
|
for (auto &client : entity_list.GetClientList()) {
|
||||||
switch (update_type) {
|
switch (update_type) {
|
||||||
case WWMoveUpdateType_MoveZone:
|
case WWMoveUpdateType_MoveZone:
|
||||||
if (client.second->Admin() >= min_status && (client.second->Admin() <= max_status || max_status == AccountStatus::Player)) {
|
if (
|
||||||
client.second->MoveZone(zone_short_name);
|
client.second->Admin() >= min_status &&
|
||||||
|
(client.second->Admin() <= max_status || max_status == AccountStatus::Player)
|
||||||
|
) {
|
||||||
|
client.second->MoveZone(zone_short_name.c_str());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WWMoveUpdateType_MoveZoneInstance:
|
case WWMoveUpdateType_MoveZoneInstance:
|
||||||
if (client.second->Admin() >= min_status && (client.second->Admin() <= max_status || max_status == AccountStatus::Player)) {
|
if (
|
||||||
|
client.second->Admin() >= min_status &&
|
||||||
|
(client.second->Admin() <= max_status || max_status == AccountStatus::Player)
|
||||||
|
) {
|
||||||
client.second->MoveZoneInstance(instance_id);
|
client.second->MoveZoneInstance(instance_id);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -575,32 +575,41 @@ void Client::MovePC(uint32 zoneID, uint32 instanceID, float x, float y, float z,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Client::MoveZone(const char *zone_short_name, const glm::vec4 &location) {
|
void Client::MoveZone(const char *zone_short_name, const glm::vec4 &location) {
|
||||||
ProcessMovePC(ZoneID(zone_short_name), 0, location.x, location.y, location.z, location.w, 3, ZoneToSafeCoords);
|
const bool use_coordinates = (
|
||||||
|
location.x != 0.0f ||
|
||||||
|
location.y != 0.0f ||
|
||||||
|
location.z != 0.0f ||
|
||||||
|
location.w != 0.0f
|
||||||
|
);
|
||||||
|
|
||||||
|
const ZoneMode zone_type = use_coordinates ? ZoneSolicited : ZoneToSafeCoords;
|
||||||
|
|
||||||
|
ProcessMovePC(ZoneID(zone_short_name), 0, location.x, location.y, location.z, location.w, 3, zone_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::MoveZoneGroup(const char *zone_short_name, const glm::vec4 &location) {
|
void Client::MoveZoneGroup(const char *zone_short_name, const glm::vec4 &location) {
|
||||||
if (!GetGroup()) {
|
Group* g = GetGroup();
|
||||||
|
if (!g) {
|
||||||
MoveZone(zone_short_name, location);
|
MoveZone(zone_short_name, location);
|
||||||
} else {
|
} else {
|
||||||
auto client_group = GetGroup();
|
for (const auto& gm : g->members) {
|
||||||
for (int member_index = 0; member_index < MAX_GROUP_MEMBERS; member_index++) {
|
if (gm && gm->IsClient()) {
|
||||||
if (client_group->members[member_index] && client_group->members[member_index]->IsClient()) {
|
Client* c = gm->CastToClient();
|
||||||
auto group_member = client_group->members[member_index]->CastToClient();
|
c->MoveZone(zone_short_name, location);
|
||||||
group_member->MoveZone(zone_short_name, location);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::MoveZoneRaid(const char *zone_short_name, const glm::vec4 &location) {
|
void Client::MoveZoneRaid(const char *zone_short_name, const glm::vec4 &location) {
|
||||||
if (!GetRaid()) {
|
Raid* r = GetRaid();
|
||||||
|
if (!r) {
|
||||||
MoveZone(zone_short_name, location);
|
MoveZone(zone_short_name, location);
|
||||||
} else {
|
} else {
|
||||||
auto client_raid = GetRaid();
|
for (const auto& rm : r->members) {
|
||||||
for (int member_index = 0; member_index < MAX_RAID_MEMBERS; member_index++) {
|
if (rm.member && rm.member->IsClient()) {
|
||||||
if (client_raid->members[member_index].member && client_raid->members[member_index].member->IsClient()) {
|
Client* c = rm.member->CastToClient();
|
||||||
auto raid_member = client_raid->members[member_index].member->CastToClient();
|
c->MoveZone(zone_short_name, location);
|
||||||
raid_member->MoveZone(zone_short_name, location);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -611,32 +620,41 @@ void Client::MoveZoneInstance(uint16 instance_id, const glm::vec4 &location) {
|
|||||||
database.AddClientToInstance(instance_id, CharacterID());
|
database.AddClientToInstance(instance_id, CharacterID());
|
||||||
}
|
}
|
||||||
|
|
||||||
ProcessMovePC(database.GetInstanceZoneID(instance_id), instance_id, location.x, location.y, location.z, location.w, 3, ZoneToSafeCoords);
|
const bool use_coordinates = (
|
||||||
|
location.x != 0.0f ||
|
||||||
|
location.y != 0.0f ||
|
||||||
|
location.z != 0.0f ||
|
||||||
|
location.w != 0.0f
|
||||||
|
);
|
||||||
|
|
||||||
|
const ZoneMode zone_type = use_coordinates ? ZoneSolicited : ZoneToSafeCoords;
|
||||||
|
|
||||||
|
ProcessMovePC(database.GetInstanceZoneID(instance_id), instance_id, location.x, location.y, location.z, location.w, 3, zone_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::MoveZoneInstanceGroup(uint16 instance_id, const glm::vec4 &location) {
|
void Client::MoveZoneInstanceGroup(uint16 instance_id, const glm::vec4 &location) {
|
||||||
if (!GetGroup()) {
|
Group* g = GetGroup();
|
||||||
|
if (!g) {
|
||||||
MoveZoneInstance(instance_id, location);
|
MoveZoneInstance(instance_id, location);
|
||||||
} else {
|
} else {
|
||||||
auto client_group = GetGroup();
|
for (const auto& gm : g->members) {
|
||||||
for (int member_index = 0; member_index < MAX_GROUP_MEMBERS; member_index++) {
|
if (gm && gm->IsClient()) {
|
||||||
if (client_group->members[member_index] && client_group->members[member_index]->IsClient()) {
|
Client* c = gm->CastToClient();
|
||||||
auto group_member = client_group->members[member_index]->CastToClient();
|
c->MoveZoneInstance(instance_id, location);
|
||||||
group_member->MoveZoneInstance(instance_id, location);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::MoveZoneInstanceRaid(uint16 instance_id, const glm::vec4 &location) {
|
void Client::MoveZoneInstanceRaid(uint16 instance_id, const glm::vec4 &location) {
|
||||||
if (!GetRaid()) {
|
Raid* r = GetRaid();
|
||||||
|
if (!r) {
|
||||||
MoveZoneInstance(instance_id, location);
|
MoveZoneInstance(instance_id, location);
|
||||||
} else {
|
} else {
|
||||||
auto client_raid = GetRaid();
|
for (const auto& rm : r->members) {
|
||||||
for (int member_index = 0; member_index < MAX_RAID_MEMBERS; member_index++) {
|
if (rm.member && rm.member->IsClient()) {
|
||||||
if (client_raid->members[member_index].member && client_raid->members[member_index].member->IsClient()) {
|
Client* c = rm.member->CastToClient();
|
||||||
auto raid_member = client_raid->members[member_index].member->CastToClient();
|
c->MoveZoneInstance(instance_id, location);
|
||||||
raid_member->MoveZoneInstance(instance_id, location);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user