mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 13:41:31 +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/string.hpp>
|
||||
#include <cereal/types/vector.hpp>
|
||||
#include <glm/vec4.hpp>
|
||||
|
||||
#define SERVER_TIMEOUT 45000 // how often keepalive gets sent
|
||||
#define INTERSERVER_TIMER 10000
|
||||
@ -1486,95 +1487,96 @@ struct CZClientMessageString_Struct {
|
||||
|
||||
struct CZDialogueWindow_Struct {
|
||||
uint8 update_type; // 0 - Character, 1 - Group, 2 - Raid, 3 - Guild, 4 - Expedition, 5 - Character Name
|
||||
int update_identifier; // Character ID, Group ID, Raid ID, Guild ID, or Expedition ID based on update type, 0 for Character Name
|
||||
char message[4096];
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
int update_identifier; // Character ID, Group ID, Raid ID, Guild ID, or Expedition ID based on update type, 0 for Character Name
|
||||
char message[4096];
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
};
|
||||
|
||||
struct CZLDoNUpdate_Struct {
|
||||
uint8 update_type; // 0 - Character, 1 - Group, 2 - Raid, 3 - Guild, 4 - Expedition, 5 - Character Name
|
||||
uint8 update_subtype; // 0 - Loss, 1 - Points, 2 - Win
|
||||
int update_identifier; // 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_subtype; // 0 - Loss, 1 - Points, 2 - Win
|
||||
int update_identifier; // Character ID, Group ID, Raid ID, Guild ID, or Expedition ID based on update type, 0 for Character Name
|
||||
uint32 theme_id;
|
||||
int points; // Only used in Points Subtype, else 1
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
int points; // Only used in Points Subtype, else 1
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
};
|
||||
|
||||
struct CZMarquee_Struct {
|
||||
uint8 update_type; // 0 - Character, 1 - Group, 2 - Raid, 3 - Guild, 4 - Expedition, 5 - Character Name
|
||||
int update_identifier; // 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
|
||||
int update_identifier; // Character ID, Group ID, Raid ID, Guild ID, or Expedition ID based on update type, 0 for Character Name
|
||||
uint32 type;
|
||||
uint32 priority;
|
||||
uint32 fade_in;
|
||||
uint32 fade_out;
|
||||
uint32 duration;
|
||||
char message[512];
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
char message[512];
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
};
|
||||
|
||||
struct CZMessage_Struct {
|
||||
uint8 update_type; // 0 - Character, 1 - Group, 2 - Raid, 3 - Guild, 4 - Expedition, 5 - Character Name
|
||||
int update_identifier; // 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
|
||||
int update_identifier; // Group ID, Raid ID, Guild ID, or Expedition ID based on update type, 0 for Character Name
|
||||
uint32 type;
|
||||
char message[512];
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
char message[512];
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
};
|
||||
|
||||
struct CZMove_Struct {
|
||||
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
|
||||
int update_identifier; // Character ID, Group ID, Raid ID, Guild ID, or Expedition ID based on update type, 0 for Character Name
|
||||
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
|
||||
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_subtype; // 0 - Move Zone, 1 - Move Zone Instance
|
||||
std::string zone_short_name = std::string(); // Only used by Move Zone, else empty
|
||||
};
|
||||
|
||||
struct CZSetEntityVariable_Struct {
|
||||
uint8 update_type; // 0 - Character, 1 - Group, 2 - Raid, 3 - Guild, 4 - Expedition, 5 - Character Name, 6 - NPC
|
||||
int update_identifier; // Group ID, Raid ID, Guild ID, Expedition ID, or NPC ID based on update type, 0 for Character Name
|
||||
char variable_name[256];
|
||||
char variable_value[256];
|
||||
char client_name[64]; // Only used by Character Type, else empty
|
||||
int update_identifier; // Group ID, Raid ID, Guild ID, Expedition ID, or NPC ID based on update type, 0 for Character Name
|
||||
char variable_name[256];
|
||||
char variable_value[256];
|
||||
char client_name[64]; // Only used by Character Type, else empty
|
||||
};
|
||||
|
||||
struct CZSignal_Struct {
|
||||
uint8 update_type; // 0 - Character, 1 - Group, 2 - Raid, 3 - Guild, 4 - Expedition, 5 - Character Name, 6 - NPC
|
||||
int update_identifier; // Character ID, Group ID, Raid ID, Guild ID, Expedition ID, or NPC ID based on update type, 0 for Character Name
|
||||
int signal_id;
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
int update_identifier; // Character ID, Group ID, Raid ID, Guild ID, Expedition ID, or NPC ID based on update type, 0 for Character Name
|
||||
int signal_id;
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
};
|
||||
|
||||
struct CZSpell_Struct {
|
||||
uint8 update_type; // 0 - Character, 1 - Group, 2 - Raid, 3 - Guild, 4 - Expedition, 5 - Character Name
|
||||
uint8 update_subtype; // 0 - Cast Spell, 1 - Remove Spell
|
||||
int update_identifier; // 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_subtype; // 0 - Cast Spell, 1 - Remove Spell
|
||||
int update_identifier; // Character ID, Group ID, Raid ID, Guild ID, or Expedition ID based on update type, 0 for Character Name
|
||||
uint32 spell_id;
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
};
|
||||
|
||||
struct CZTaskUpdate_Struct {
|
||||
uint8 update_type; // 0 - Character, 1 - Group, 2 - Raid, 3 - Guild, 4 - Expedition, 5 - Character Name
|
||||
uint8 update_subtype; // 0 - Activity Reset, 1 - Activity Update, 2 - Assign Task, 3 - Disable Task, 4 - Enable Task, 5 - Fail Task, 6 - Remove Task
|
||||
int update_identifier; // 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_subtype; // 0 - Activity Reset, 1 - Activity Update, 2 - Assign Task, 3 - Disable Task, 4 - Enable Task, 5 - Fail Task, 6 - Remove Task
|
||||
int update_identifier; // Character ID, Group ID, Raid ID, Guild ID, or Expedition ID based on update type, 0 for Character Name
|
||||
uint32 task_identifier;
|
||||
int task_subidentifier; // Activity ID for Activity Reset and Activity Update, NPC Entity ID for Assign Task, else -1
|
||||
int update_count; // Only used by Activity Update, else 1
|
||||
bool enforce_level_requirement; // Only used by Assign Task
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
int task_subidentifier; // Activity ID for Activity Reset and Activity Update, NPC Entity ID for Assign Task, else -1
|
||||
int update_count; // Only used by Activity Update, else 1
|
||||
bool enforce_level_requirement; // Only used by Assign Task
|
||||
char client_name[64]; // Only used by Character Name Type, else empty
|
||||
};
|
||||
|
||||
struct WWDialogueWindow_Struct {
|
||||
char message[4096];
|
||||
char message[4096];
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
};
|
||||
|
||||
struct WWLDoNUpdate_Struct {
|
||||
uint8 update_type; // 0 - Loss, 1 - Points, 2 - Win
|
||||
uint8 update_type; // 0 - Loss, 1 - Points, 2 - Win
|
||||
uint32 theme_id;
|
||||
int points; // Only used in Points Subtype, else 1
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
int points; // Only used in Points Subtype, else 1
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
};
|
||||
|
||||
struct WWMarquee_Struct {
|
||||
@ -1583,56 +1585,57 @@ struct WWMarquee_Struct {
|
||||
uint32 fade_in;
|
||||
uint32 fade_out;
|
||||
uint32 duration;
|
||||
char message[512];
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
char message[512];
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
};
|
||||
|
||||
struct WWMessage_Struct {
|
||||
uint32 type;
|
||||
char message[512];
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
char message[512];
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
};
|
||||
|
||||
struct WWMove_Struct {
|
||||
uint8 update_type; // 0 - Move Zone, 1 - Move Zone Instance
|
||||
char zone_short_name[32]; // Used with Move Zone
|
||||
uint8 update_type; // 0 - Move Zone, 1 - Move Zone Instance
|
||||
char zone_short_name[32]; // Used with Move Zone
|
||||
uint16 instance_id; // Used with Move Zone Instance
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
};
|
||||
|
||||
|
||||
struct WWSetEntityVariable_Struct {
|
||||
uint8 update_type; // 0 - Character, 1 - NPC
|
||||
char variable_name[256];
|
||||
char variable_value[256];
|
||||
char variable_name[256];
|
||||
char variable_value[256];
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
};
|
||||
|
||||
struct WWSignal_Struct {
|
||||
uint8 update_type; // 0 - Character, 1 - NPC
|
||||
int signal_id;
|
||||
int signal_id;
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
};
|
||||
|
||||
struct WWSpell_Struct {
|
||||
uint8 update_type; // 0 - Cast Spell, 1 - Remove Spell
|
||||
uint8 update_type; // 0 - Cast Spell, 1 - Remove Spell
|
||||
uint32 spell_id;
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
};
|
||||
|
||||
struct WWTaskUpdate_Struct {
|
||||
uint8 update_type; // 0 - Activity Reset, 1 - Activity Update, 2 - Assign Task, 3 - Disable Task, 4 - Enable Task, 5 - Fail Task, 6 - Remove Task
|
||||
uint8 update_type; // 0 - Activity Reset, 1 - Activity Update, 2 - Assign Task, 3 - Disable Task, 4 - Enable Task, 5 - Fail Task, 6 - Remove Task
|
||||
uint32 task_identifier;
|
||||
int task_subidentifier; // Activity ID for Activity Reset and Activity Update, NPC Entity ID for Assign Task, else -1
|
||||
int update_count; // Update Count for Activity Update, else 1
|
||||
bool enforce_level_requirement; // Only used by Assign Task, else false
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
int task_subidentifier; // Activity ID for Activity Reset and Activity Update, NPC Entity ID for Assign Task, else -1
|
||||
int update_count; // Update Count for Activity Update, else 1
|
||||
bool enforce_level_requirement; // Only used by Assign Task, else false
|
||||
uint8 min_status;
|
||||
uint8 max_status;
|
||||
};
|
||||
|
||||
struct ReloadWorld_Struct {
|
||||
|
||||
@ -1226,15 +1226,20 @@ void ConsoleCrossZoneMove(
|
||||
}
|
||||
|
||||
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;
|
||||
CZM->update_subtype = !instance_id ? CZMoveUpdateSubtype_MoveZone : CZMoveUpdateSubtype_MoveZoneInstance;
|
||||
CZM->update_identifier = update_identifier;
|
||||
CZM->instance_id = instance_id;
|
||||
if (!name.empty()) {
|
||||
m->client_name = name;
|
||||
}
|
||||
|
||||
strn0cpy(CZM->zone_short_name, zone_short_name.c_str(), sizeof(CZM->zone_short_name));
|
||||
strn0cpy(CZM->client_name, name.c_str(), sizeof(CZM->client_name));
|
||||
m->instance_id = instance_id;
|
||||
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);
|
||||
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);
|
||||
}
|
||||
|
||||
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(CZUpdateType_Character, CZMoveUpdateSubtype_MoveZone, character_id, zone_short_name, instance_id);
|
||||
quest_manager.CrossZoneMove(
|
||||
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(CZUpdateType_Group, CZMoveUpdateSubtype_MoveZone, group_id, zone_short_name, instance_id);
|
||||
quest_manager.CrossZoneMove(
|
||||
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(CZUpdateType_Raid, CZMoveUpdateSubtype_MoveZone, raid_id, zone_short_name, instance_id);
|
||||
quest_manager.CrossZoneMove(
|
||||
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(CZUpdateType_Guild, CZMoveUpdateSubtype_MoveZone, guild_id, zone_short_name, instance_id);
|
||||
quest_manager.CrossZoneMove(
|
||||
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(CZUpdateType_Expedition, CZMoveUpdateSubtype_MoveZone, expedition_id, zone_short_name, instance_id);
|
||||
quest_manager.CrossZoneMove(
|
||||
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;
|
||||
uint16 instance_id = 0;
|
||||
quest_manager.CrossZoneMove(CZUpdateType_ClientName, CZMoveUpdateSubtype_MoveZone, update_identifier, zone_short_name, instance_id, client_name);
|
||||
quest_manager.CrossZoneMove(
|
||||
CZMove_Struct{
|
||||
.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(CZUpdateType_Character, CZMoveUpdateSubtype_MoveZoneInstance, character_id, zone_short_name, instance_id);
|
||||
quest_manager.CrossZoneMove(
|
||||
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(CZUpdateType_Group, CZMoveUpdateSubtype_MoveZoneInstance, group_id, zone_short_name, instance_id);
|
||||
quest_manager.CrossZoneMove(
|
||||
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(CZUpdateType_Raid, CZMoveUpdateSubtype_MoveZoneInstance, raid_id, zone_short_name, instance_id);
|
||||
quest_manager.CrossZoneMove(
|
||||
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(CZUpdateType_Guild, CZMoveUpdateSubtype_MoveZoneInstance, guild_id, zone_short_name, instance_id);
|
||||
quest_manager.CrossZoneMove(
|
||||
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)
|
||||
{
|
||||
const char* zone_short_name = "";
|
||||
quest_manager.CrossZoneMove(CZUpdateType_Expedition, CZMoveUpdateSubtype_MoveZoneInstance, expedition_id, zone_short_name, instance_id);
|
||||
quest_manager.CrossZoneMove(
|
||||
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;
|
||||
const char* zone_short_name = "";
|
||||
quest_manager.CrossZoneMove(CZUpdateType_ClientName, CZMoveUpdateSubtype_MoveZoneInstance, update_identifier, zone_short_name, instance_id, client_name);
|
||||
quest_manager.CrossZoneMove(
|
||||
CZMove_Struct{
|
||||
.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)
|
||||
@ -5762,18 +6172,42 @@ void perl_register_quest()
|
||||
package.add("crosszonemessageplayerbyguildid", &Perl__crosszonemessageplayerbyguildid);
|
||||
package.add("crosszonemessageplayerbyexpeditionid", &Perl__crosszonemessageplayerbyexpeditionid);
|
||||
package.add("crosszonemessageplayerbyname", &Perl__crosszonemessageplayerbyname);
|
||||
package.add("crosszonemoveplayerbycharid", &Perl__crosszonemoveplayerbycharid);
|
||||
package.add("crosszonemoveplayerbygroupid", &Perl__crosszonemoveplayerbygroupid);
|
||||
package.add("crosszonemoveplayerbyraidid", &Perl__crosszonemoveplayerbyraidid);
|
||||
package.add("crosszonemoveplayerbyguildid", &Perl__crosszonemoveplayerbyguildid);
|
||||
package.add("crosszonemoveplayerbyexpeditionid", &Perl__crosszonemoveplayerbyexpeditionid);
|
||||
package.add("crosszonemoveplayerbyname", &Perl__crosszonemoveplayerbyname);
|
||||
package.add("crosszonemoveinstancebycharid", &Perl__crosszonemoveinstancebycharid);
|
||||
package.add("crosszonemoveinstancebygroupid", &Perl__crosszonemoveinstancebygroupid);
|
||||
package.add("crosszonemoveinstancebyraidid", &Perl__crosszonemoveinstancebyraidid);
|
||||
package.add("crosszonemoveinstancebyguildid", &Perl__crosszonemoveinstancebyguildid);
|
||||
package.add("crosszonemoveinstancebyexpeditionid", &Perl__crosszonemoveinstancebyexpeditionid);
|
||||
package.add("crosszonemoveinstancebyclientname", &Perl__crosszonemoveinstancebyclientname);
|
||||
package.add("crosszonemoveplayerbycharid", (void(*)(uint32, std::string))&Perl__crosszonemoveplayerbycharid);
|
||||
package.add("crosszonemoveplayerbycharid", (void(*)(uint32, std::string, float, float, float))&Perl__crosszonemoveplayerbycharid);
|
||||
package.add("crosszonemoveplayerbycharid", (void(*)(uint32, std::string, float, float, float, float))&Perl__crosszonemoveplayerbycharid);
|
||||
package.add("crosszonemoveplayerbygroupid", (void(*)(uint32, std::string))&Perl__crosszonemoveplayerbygroupid);
|
||||
package.add("crosszonemoveplayerbygroupid", (void(*)(uint32, std::string, float, float, float))&Perl__crosszonemoveplayerbygroupid);
|
||||
package.add("crosszonemoveplayerbygroupid", (void(*)(uint32, std::string, float, float, float, float))&Perl__crosszonemoveplayerbygroupid);
|
||||
package.add("crosszonemoveplayerbyraidid", (void(*)(uint32, std::string))&Perl__crosszonemoveplayerbyraidid);
|
||||
package.add("crosszonemoveplayerbyraidid", (void(*)(uint32, std::string, float, float, float))&Perl__crosszonemoveplayerbyraidid);
|
||||
package.add("crosszonemoveplayerbyraidid", (void(*)(uint32, std::string, float, float, float, float))&Perl__crosszonemoveplayerbyraidid);
|
||||
package.add("crosszonemoveplayerbyguildid", (void(*)(uint32, std::string))&Perl__crosszonemoveplayerbyguildid);
|
||||
package.add("crosszonemoveplayerbyguildid", (void(*)(uint32, std::string, float, float, float))&Perl__crosszonemoveplayerbyguildid);
|
||||
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("crosszoneremoveldonlossbygroupid", &Perl__crosszoneremoveldonlossbygroupid);
|
||||
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);
|
||||
}
|
||||
|
||||
void lua_cross_zone_move_player_by_char_id(int character_id, const char* zone_short_name) {
|
||||
uint8 update_type = CZUpdateType_Character;
|
||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZone;
|
||||
uint16 instance_id = 0;
|
||||
quest_manager.CrossZoneMove(update_type, update_subtype, character_id, zone_short_name, instance_id);
|
||||
void lua_cross_zone_move_player_by_char_id(uint32 character_id, std::string zone_short_name) {
|
||||
quest_manager.CrossZoneMove(
|
||||
CZMove_Struct{
|
||||
.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_group_id(int group_id, const char* zone_short_name) {
|
||||
uint8 update_type = CZUpdateType_Group;
|
||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZone;
|
||||
uint16 instance_id = 0;
|
||||
quest_manager.CrossZoneMove(update_type, update_subtype, group_id, zone_short_name, instance_id);
|
||||
void lua_cross_zone_move_player_by_char_id(uint32 character_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 = 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) {
|
||||
uint8 update_type = CZUpdateType_Raid;
|
||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZone;
|
||||
uint16 instance_id = 0;
|
||||
quest_manager.CrossZoneMove(update_type, update_subtype, raid_id, zone_short_name, instance_id);
|
||||
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) {
|
||||
quest_manager.CrossZoneMove(
|
||||
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 lua_cross_zone_move_player_by_guild_id(int guild_id, const char* zone_short_name) {
|
||||
uint8 update_type = CZUpdateType_Guild;
|
||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZone;
|
||||
uint16 instance_id = 0;
|
||||
quest_manager.CrossZoneMove(update_type, update_subtype, guild_id, zone_short_name, instance_id);
|
||||
void lua_cross_zone_move_player_by_group_id(uint32 group_id, std::string zone_short_name) {
|
||||
quest_manager.CrossZoneMove(
|
||||
CZMove_Struct{
|
||||
.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_expedition_id(int expedition_id, const char* zone_short_name) {
|
||||
uint8 update_type = CZUpdateType_Expedition;
|
||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZone;
|
||||
uint16 instance_id = 0;
|
||||
quest_manager.CrossZoneMove(update_type, update_subtype, expedition_id, zone_short_name, instance_id);
|
||||
void lua_cross_zone_move_player_by_group_id(uint32 group_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 = 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) {
|
||||
uint8 update_type = CZUpdateType_Character;
|
||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZone;
|
||||
int update_identifier = 0;
|
||||
uint16 instance_id = 0;
|
||||
quest_manager.CrossZoneMove(update_type, update_subtype, update_identifier, zone_short_name, instance_id, client_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) {
|
||||
quest_manager.CrossZoneMove(
|
||||
CZMove_Struct{
|
||||
.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 lua_cross_zone_move_instance_by_char_id(int character_id, uint16 instance_id) {
|
||||
uint8 update_type = CZUpdateType_Character;
|
||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZoneInstance;
|
||||
const char* zone_short_name = "";
|
||||
quest_manager.CrossZoneMove(update_type, update_subtype, character_id, zone_short_name, instance_id);
|
||||
void lua_cross_zone_move_player_by_raid_id(uint32 raid_id, std::string zone_short_name) {
|
||||
quest_manager.CrossZoneMove(
|
||||
CZMove_Struct{
|
||||
.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_group_id(int group_id, uint16 instance_id) {
|
||||
uint8 update_type = CZUpdateType_Group;
|
||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZoneInstance;
|
||||
const char* zone_short_name = "";
|
||||
quest_manager.CrossZoneMove(update_type, update_subtype, group_id, zone_short_name, 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) {
|
||||
quest_manager.CrossZoneMove(
|
||||
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 lua_cross_zone_move_instance_by_raid_id(int raid_id, uint16 instance_id) {
|
||||
uint8 update_type = CZUpdateType_Raid;
|
||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZoneInstance;
|
||||
const char* zone_short_name = "";
|
||||
quest_manager.CrossZoneMove(update_type, update_subtype, raid_id, zone_short_name, 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) {
|
||||
quest_manager.CrossZoneMove(
|
||||
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 lua_cross_zone_move_instance_by_guild_id(int guild_id, uint16 instance_id) {
|
||||
uint8 update_type = CZUpdateType_Guild;
|
||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZoneInstance;
|
||||
const char* zone_short_name = "";
|
||||
quest_manager.CrossZoneMove(update_type, update_subtype, guild_id, zone_short_name, instance_id);
|
||||
void lua_cross_zone_move_player_by_guild_id(uint32 guild_id, std::string zone_short_name) {
|
||||
quest_manager.CrossZoneMove(
|
||||
CZMove_Struct{
|
||||
.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) {
|
||||
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) {
|
||||
uint8 update_type = CZUpdateType_Expedition;
|
||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZoneInstance;
|
||||
const char* zone_short_name = "";
|
||||
quest_manager.CrossZoneMove(update_type, update_subtype, expedition_id, zone_short_name, instance_id);
|
||||
quest_manager.CrossZoneMove(
|
||||
CZMove_Struct{
|
||||
.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(const char* client_name, uint16 instance_id) {
|
||||
uint8 update_type = CZUpdateType_ClientName;
|
||||
uint8 update_subtype = CZMoveUpdateSubtype_MoveZoneInstance;
|
||||
int update_identifier = 0;
|
||||
const char* zone_short_name = "";
|
||||
quest_manager.CrossZoneMove(update_type, update_subtype, update_identifier, zone_short_name, instance_id, client_name);
|
||||
void lua_cross_zone_move_instance_by_expedition_id(uint32 expedition_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 = 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) {
|
||||
@ -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_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_move_player_by_char_id", &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_raid_id", &lua_cross_zone_move_player_by_raid_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_expedition_id", &lua_cross_zone_move_player_by_expedition_id),
|
||||
luabind::def("cross_zone_move_player_by_client_name", &lua_cross_zone_move_player_by_client_name),
|
||||
luabind::def("cross_zone_move_instance_by_char_id", &lua_cross_zone_move_instance_by_char_id),
|
||||
luabind::def("cross_zone_move_instance_by_group_id", &lua_cross_zone_move_instance_by_group_id),
|
||||
luabind::def("cross_zone_move_instance_by_raid_id", &lua_cross_zone_move_instance_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_instance_by_expedition_id", &lua_cross_zone_move_instance_by_expedition_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_char_id", (void(*)(uint32,std::string))&lua_cross_zone_move_player_by_char_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_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_group_id", (void(*)(uint32,std::string))&lua_cross_zone_move_player_by_group_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_group_id", (void(*)(uint32,std::string,float,float,float,float))&lua_cross_zone_move_player_by_group_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_player_by_raid_id", (void(*)(uint32,std::string,float,float,float))&lua_cross_zone_move_player_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_player_by_guild_id", (void(*)(uint32,std::string))&lua_cross_zone_move_player_by_guild_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_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_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),
|
||||
|
||||
@ -3980,15 +3980,25 @@ void QuestManager::CrossZoneMessage(uint8 update_type, int update_identifier, ui
|
||||
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));
|
||||
CZMove_Struct* CZM = (CZMove_Struct*)pack->pBuffer;
|
||||
CZM->update_type = update_type;
|
||||
CZM->update_subtype = update_subtype;
|
||||
CZM->update_identifier = update_identifier;
|
||||
strn0cpy(CZM->zone_short_name, zone_short_name, 32);
|
||||
CZM->instance_id = instance_id;
|
||||
strn0cpy(CZM->client_name, client_name, 64);
|
||||
auto s = (CZMove_Struct*) pack->pBuffer;
|
||||
|
||||
if (!m.client_name.empty()) {
|
||||
s->client_name = m.client_name;
|
||||
}
|
||||
|
||||
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);
|
||||
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 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 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 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 = "");
|
||||
|
||||
@ -2509,98 +2509,105 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
||||
}
|
||||
case ServerOP_CZMove:
|
||||
{
|
||||
CZMove_Struct* CZM = (CZMove_Struct*) pack->pBuffer;
|
||||
uint8 update_type = CZM->update_type;
|
||||
uint8 update_subtype = CZM->update_subtype;
|
||||
int update_identifier = CZM->update_identifier;
|
||||
const char* zone_short_name = CZM->zone_short_name;
|
||||
uint16 instance_id = CZM->instance_id;
|
||||
const char* client_name = CZM->client_name;
|
||||
auto s = (CZMove_Struct*) pack->pBuffer;
|
||||
|
||||
const std::string& client_name = s->client_name;
|
||||
const glm::vec4& coordinates = s->coordinates;
|
||||
const uint16 instance_id = s->instance_id;
|
||||
const uint32 update_identifier = s->update_identifier;
|
||||
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) {
|
||||
auto client = entity_list.GetClientByCharID(update_identifier);
|
||||
if (client) {
|
||||
Client* c = entity_list.GetClientByCharID(update_identifier);
|
||||
if (c) {
|
||||
switch (update_subtype) {
|
||||
case CZMoveUpdateSubtype_MoveZone:
|
||||
client->MoveZone(zone_short_name);
|
||||
c->MoveZone(zone_short_name.c_str(), coordinates);
|
||||
break;
|
||||
case CZMoveUpdateSubtype_MoveZoneInstance:
|
||||
client->MoveZoneInstance(instance_id);
|
||||
c->MoveZoneInstance(instance_id, coordinates);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (update_type == CZUpdateType_Group) {
|
||||
auto client_group = entity_list.GetGroupByID(update_identifier);
|
||||
if (client_group) {
|
||||
for (int member_index = 0; member_index < MAX_GROUP_MEMBERS; member_index++) {
|
||||
if (client_group->members[member_index] && client_group->members[member_index]->IsClient()) {
|
||||
auto group_member = client_group->members[member_index]->CastToClient();
|
||||
Group* g = entity_list.GetGroupByID(update_identifier);
|
||||
if (g) {
|
||||
for (const auto& gm : g->members) {
|
||||
if (gm->IsClient()) {
|
||||
Client* c = gm->CastToClient();
|
||||
switch (update_subtype) {
|
||||
case CZMoveUpdateSubtype_MoveZone:
|
||||
group_member->MoveZone(zone_short_name);
|
||||
c->MoveZone(zone_short_name.c_str(), coordinates);
|
||||
break;
|
||||
case CZMoveUpdateSubtype_MoveZoneInstance:
|
||||
group_member->MoveZoneInstance(instance_id);
|
||||
c->MoveZoneInstance(instance_id, coordinates);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (update_type == CZUpdateType_Raid) {
|
||||
auto client_raid = entity_list.GetRaidByID(update_identifier);
|
||||
if (client_raid) {
|
||||
for (const auto& m : client_raid->members) {
|
||||
if (m.is_bot) {
|
||||
Raid* r = entity_list.GetRaidByID(update_identifier);
|
||||
if (r) {
|
||||
for (const auto& rm : r->members) {
|
||||
if (rm.is_bot) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (m.member && m.member->IsClient()) {
|
||||
auto raid_member = m.member->CastToClient();
|
||||
if (rm.member && rm.member->IsClient()) {
|
||||
Client* m = rm.member->CastToClient();
|
||||
switch (update_subtype) {
|
||||
case CZMoveUpdateSubtype_MoveZone:
|
||||
raid_member->MoveZone(zone_short_name);
|
||||
m->MoveZone(zone_short_name.c_str(), coordinates);
|
||||
break;
|
||||
case CZMoveUpdateSubtype_MoveZoneInstance:
|
||||
raid_member->MoveZoneInstance(instance_id);
|
||||
m->MoveZoneInstance(instance_id, coordinates);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (update_type == CZUpdateType_Guild) {
|
||||
for (auto &client: entity_list.GetClientList()) {
|
||||
if (client.second->GuildID() > 0 && client.second->GuildID() == update_identifier) {
|
||||
for (auto& c : entity_list.GetClientList()) {
|
||||
if (c.second && c.second->IsInAGuild() && c.second->IsInGuild(update_identifier)) {
|
||||
switch (update_subtype) {
|
||||
case CZMoveUpdateSubtype_MoveZone:
|
||||
client.second->MoveZone(zone_short_name);
|
||||
c.second->MoveZone(zone_short_name.c_str(), coordinates);
|
||||
break;
|
||||
case CZMoveUpdateSubtype_MoveZoneInstance:
|
||||
client.second->MoveZoneInstance(instance_id);
|
||||
c.second->MoveZoneInstance(instance_id, coordinates);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (update_type == CZUpdateType_Expedition) {
|
||||
for (auto &client: entity_list.GetClientList()) {
|
||||
if (client.second->GetExpedition() && client.second->GetExpedition()->GetID() == update_identifier) {
|
||||
for (auto& c : entity_list.GetClientList()) {
|
||||
if (c.second && c.second->GetExpeditionID() == update_identifier) {
|
||||
switch (update_subtype) {
|
||||
case CZMoveUpdateSubtype_MoveZone:
|
||||
client.second->MoveZone(zone_short_name);
|
||||
c.second->MoveZone(zone_short_name.c_str(), coordinates);
|
||||
break;
|
||||
case CZMoveUpdateSubtype_MoveZoneInstance:
|
||||
client.second->MoveZoneInstance(instance_id);
|
||||
c.second->MoveZoneInstance(instance_id, coordinates);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (update_type == CZUpdateType_ClientName) {
|
||||
auto client = entity_list.GetClientByName(client_name);
|
||||
if (client) {
|
||||
Client* c = entity_list.GetClientByName(client_name.c_str());
|
||||
if (c) {
|
||||
switch (update_subtype) {
|
||||
case CZMoveUpdateSubtype_MoveZone:
|
||||
client->MoveZone(zone_short_name);
|
||||
c->MoveZone(zone_short_name.c_str(), coordinates);
|
||||
break;
|
||||
case CZMoveUpdateSubtype_MoveZoneInstance:
|
||||
client->MoveZoneInstance(instance_id);
|
||||
c->MoveZoneInstance(instance_id, coordinates);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -3106,21 +3113,29 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
||||
}
|
||||
case ServerOP_WWMove:
|
||||
{
|
||||
WWMove_Struct* WWM = (WWMove_Struct*) pack->pBuffer;
|
||||
uint8 update_type = WWM->update_type;
|
||||
uint16 instance_id = WWM->instance_id;
|
||||
const char* zone_short_name = WWM->zone_short_name;
|
||||
uint8 min_status = WWM->min_status;
|
||||
uint8 max_status = WWM->max_status;
|
||||
auto m = (WWMove_Struct*) pack->pBuffer;
|
||||
|
||||
uint16 instance_id = m->instance_id;
|
||||
uint8 max_status = m->max_status;
|
||||
uint8 min_status = m->min_status;
|
||||
uint8 update_type = m->update_type;
|
||||
std::string zone_short_name = m->zone_short_name;
|
||||
|
||||
for (auto &client : entity_list.GetClientList()) {
|
||||
switch (update_type) {
|
||||
case WWMoveUpdateType_MoveZone:
|
||||
if (client.second->Admin() >= min_status && (client.second->Admin() <= max_status || max_status == AccountStatus::Player)) {
|
||||
client.second->MoveZone(zone_short_name);
|
||||
if (
|
||||
client.second->Admin() >= min_status &&
|
||||
(client.second->Admin() <= max_status || max_status == AccountStatus::Player)
|
||||
) {
|
||||
client.second->MoveZone(zone_short_name.c_str());
|
||||
}
|
||||
break;
|
||||
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);
|
||||
}
|
||||
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) {
|
||||
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) {
|
||||
if (!GetGroup()) {
|
||||
Group* g = GetGroup();
|
||||
if (!g) {
|
||||
MoveZone(zone_short_name, location);
|
||||
} else {
|
||||
auto client_group = GetGroup();
|
||||
for (int member_index = 0; member_index < MAX_GROUP_MEMBERS; member_index++) {
|
||||
if (client_group->members[member_index] && client_group->members[member_index]->IsClient()) {
|
||||
auto group_member = client_group->members[member_index]->CastToClient();
|
||||
group_member->MoveZone(zone_short_name, location);
|
||||
for (const auto& gm : g->members) {
|
||||
if (gm && gm->IsClient()) {
|
||||
Client* c = gm->CastToClient();
|
||||
c->MoveZone(zone_short_name, 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);
|
||||
} else {
|
||||
auto client_raid = GetRaid();
|
||||
for (int member_index = 0; member_index < MAX_RAID_MEMBERS; member_index++) {
|
||||
if (client_raid->members[member_index].member && client_raid->members[member_index].member->IsClient()) {
|
||||
auto raid_member = client_raid->members[member_index].member->CastToClient();
|
||||
raid_member->MoveZone(zone_short_name, location);
|
||||
for (const auto& rm : r->members) {
|
||||
if (rm.member && rm.member->IsClient()) {
|
||||
Client* c = rm.member->CastToClient();
|
||||
c->MoveZone(zone_short_name, location);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -611,32 +620,41 @@ void Client::MoveZoneInstance(uint16 instance_id, const glm::vec4 &location) {
|
||||
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) {
|
||||
if (!GetGroup()) {
|
||||
Group* g = GetGroup();
|
||||
if (!g) {
|
||||
MoveZoneInstance(instance_id, location);
|
||||
} else {
|
||||
auto client_group = GetGroup();
|
||||
for (int member_index = 0; member_index < MAX_GROUP_MEMBERS; member_index++) {
|
||||
if (client_group->members[member_index] && client_group->members[member_index]->IsClient()) {
|
||||
auto group_member = client_group->members[member_index]->CastToClient();
|
||||
group_member->MoveZoneInstance(instance_id, location);
|
||||
for (const auto& gm : g->members) {
|
||||
if (gm && gm->IsClient()) {
|
||||
Client* c = gm->CastToClient();
|
||||
c->MoveZoneInstance(instance_id, location);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Client::MoveZoneInstanceRaid(uint16 instance_id, const glm::vec4 &location) {
|
||||
if (!GetRaid()) {
|
||||
Raid* r = GetRaid();
|
||||
if (!r) {
|
||||
MoveZoneInstance(instance_id, location);
|
||||
} else {
|
||||
auto client_raid = GetRaid();
|
||||
for (int member_index = 0; member_index < MAX_RAID_MEMBERS; member_index++) {
|
||||
if (client_raid->members[member_index].member && client_raid->members[member_index].member->IsClient()) {
|
||||
auto raid_member = client_raid->members[member_index].member->CastToClient();
|
||||
raid_member->MoveZoneInstance(instance_id, location);
|
||||
for (const auto& rm : r->members) {
|
||||
if (rm.member && rm.member->IsClient()) {
|
||||
Client* c = rm.member->CastToClient();
|
||||
c->MoveZoneInstance(instance_id, location);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user