mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 12:41:30 +00:00
[Code] ZSList Global to Singleton Cleanup (#4940)
* [Code] ZSList Global to Singleton Cleanup * Final * Post merge fixes --------- Co-authored-by: Chris Miles <akkadius1@gmail.com>
This commit is contained in:
parent
643ee56433
commit
dc261bb203
@ -28,7 +28,6 @@ Database database;
|
|||||||
std::string WorldShortName;
|
std::string WorldShortName;
|
||||||
const queryservconfig *Config;
|
const queryservconfig *Config;
|
||||||
WorldServer *worldserver = 0;
|
WorldServer *worldserver = 0;
|
||||||
ZSList zs_list;
|
|
||||||
uint32 numzones = 0;
|
uint32 numzones = 0;
|
||||||
|
|
||||||
void CatchSignal(int sig_num)
|
void CatchSignal(int sig_num)
|
||||||
@ -122,7 +121,7 @@ int main()
|
|||||||
server_connection->OnConnectionIdentified(
|
server_connection->OnConnectionIdentified(
|
||||||
"Zone", [&console](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
"Zone", [&console](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
||||||
numzones++;
|
numzones++;
|
||||||
zs_list.Add(new ZoneServer(connection, console.get()));
|
ZSList::Instance()->Add(new ZoneServer(connection, console.get()));
|
||||||
|
|
||||||
LogInfo(
|
LogInfo(
|
||||||
"New Zone Server connection from [{}] at [{}:{}] zone_count [{}]",
|
"New Zone Server connection from [{}] at [{}:{}] zone_count [{}]",
|
||||||
@ -137,7 +136,7 @@ int main()
|
|||||||
server_connection->OnConnectionRemoved(
|
server_connection->OnConnectionRemoved(
|
||||||
"Zone", [](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
"Zone", [](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
||||||
numzones--;
|
numzones--;
|
||||||
zs_list.Remove(connection->GetUUID());
|
ZSList::Instance()->Remove(connection->GetUUID());
|
||||||
|
|
||||||
LogInfo(
|
LogInfo(
|
||||||
"Removed Zone Server connection from [{}] total zone_count [{}]",
|
"Removed Zone Server connection from [{}] total zone_count [{}]",
|
||||||
|
|||||||
@ -26,7 +26,6 @@
|
|||||||
extern WorldServer worldserver;
|
extern WorldServer worldserver;
|
||||||
extern const queryservconfig *Config;
|
extern const queryservconfig *Config;
|
||||||
extern QSDatabase qs_database;
|
extern QSDatabase qs_database;
|
||||||
extern ZSList zs_list;
|
|
||||||
|
|
||||||
WorldServer::WorldServer()
|
WorldServer::WorldServer()
|
||||||
{
|
{
|
||||||
@ -80,7 +79,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
|||||||
if (o->type == ServerReload::Type::Logs) {
|
if (o->type == ServerReload::Type::Logs) {
|
||||||
EQEmuLogSys::Instance()->LoadLogDatabaseSettings();
|
EQEmuLogSys::Instance()->LoadLogDatabaseSettings();
|
||||||
PlayerEventLogs::Instance()->ReloadSettings();
|
PlayerEventLogs::Instance()->ReloadSettings();
|
||||||
zs_list.SendPlayerEventLogSettings();
|
ZSList::Instance()->SendPlayerEventLogSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
#include "zoneserver.h"
|
||||||
|
|
||||||
class WorldTCPConnection;
|
class WorldTCPConnection;
|
||||||
class ZoneServer;
|
|
||||||
|
|
||||||
class ZSList {
|
class ZSList {
|
||||||
public:
|
public:
|
||||||
@ -17,6 +17,12 @@ public:
|
|||||||
void Remove(const std::string& uuid);
|
void Remove(const std::string& uuid);
|
||||||
void SendPlayerEventLogSettings();
|
void SendPlayerEventLogSettings();
|
||||||
|
|
||||||
|
static ZSList* Instance()
|
||||||
|
{
|
||||||
|
static ZSList instance;
|
||||||
|
return &instance;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::list<std::unique_ptr<ZoneServer>> zone_server_list;
|
std::list<std::unique_ptr<ZoneServer>> zone_server_list;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -15,7 +15,6 @@
|
|||||||
#include "../common/zone_store.h"
|
#include "../common/zone_store.h"
|
||||||
#include "../common/repositories/character_corpses_repository.h"
|
#include "../common/repositories/character_corpses_repository.h"
|
||||||
|
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern EQ::Random emu_random;
|
extern EQ::Random emu_random;
|
||||||
|
|
||||||
@ -176,7 +175,7 @@ void Adventure::SetStatus(AdventureStatus new_status)
|
|||||||
ut->instance_id = instance_id;
|
ut->instance_id = instance_id;
|
||||||
ut->new_duration = adventure_template->duration + 60;
|
ut->new_duration = adventure_template->duration + 60;
|
||||||
|
|
||||||
zoneserver_list.SendPacket(0, instance_id, pack);
|
ZSList::Instance()->SendPacket(0, instance_id, pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
else if(new_status == AS_WaitingForSecondaryEndTime)
|
else if(new_status == AS_WaitingForSecondaryEndTime)
|
||||||
@ -190,7 +189,7 @@ void Adventure::SetStatus(AdventureStatus new_status)
|
|||||||
ut->instance_id = instance_id;
|
ut->instance_id = instance_id;
|
||||||
ut->new_duration = 1860;
|
ut->new_duration = 1860;
|
||||||
|
|
||||||
zoneserver_list.SendPacket(0, instance_id, pack);
|
ZSList::Instance()->SendPacket(0, instance_id, pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
else if(new_status == AS_Finished)
|
else if(new_status == AS_Finished)
|
||||||
@ -204,7 +203,7 @@ void Adventure::SetStatus(AdventureStatus new_status)
|
|||||||
ut->instance_id = instance_id;
|
ut->instance_id = instance_id;
|
||||||
ut->new_duration = 1860;
|
ut->new_duration = 1860;
|
||||||
|
|
||||||
zoneserver_list.SendPacket(0, instance_id, pack);
|
ZSList::Instance()->SendPacket(0, instance_id, pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -233,7 +232,7 @@ void Adventure::SendAdventureMessage(uint32 type, const char *msg)
|
|||||||
if(current)
|
if(current)
|
||||||
{
|
{
|
||||||
strcpy(sms->to, (*iter).c_str());
|
strcpy(sms->to, (*iter).c_str());
|
||||||
zoneserver_list.SendPacket(current->zone(), current->instance(), pack);
|
ZSList::Instance()->SendPacket(current->zone(), current->instance(), pack);
|
||||||
}
|
}
|
||||||
++iter;
|
++iter;
|
||||||
}
|
}
|
||||||
@ -309,7 +308,7 @@ void Adventure::Finished(AdventureWinStatus ws)
|
|||||||
af->win = false;
|
af->win = false;
|
||||||
af->points = 0;
|
af->points = 0;
|
||||||
}
|
}
|
||||||
zoneserver_list.SendPacket(current->zone(), current->instance(), pack);
|
ZSList::Instance()->SendPacket(current->zone(), current->instance(), pack);
|
||||||
database.UpdateAdventureStatsEntry(character_id, GetTemplate()->theme, (ws != AWS_Lose) ? true : false);
|
database.UpdateAdventureStatsEntry(character_id, GetTemplate()->theme, (ws != AWS_Lose) ? true : false);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
@ -395,7 +394,7 @@ void Adventure::MoveCorpsesToGraveyard()
|
|||||||
d->InstanceID = 0;
|
d->InstanceID = 0;
|
||||||
d->ZoneID = GetTemplate()->graveyard_zone_id;
|
d->ZoneID = GetTemplate()->graveyard_zone_id;
|
||||||
|
|
||||||
zoneserver_list.SendPacket(0, GetInstanceID(), pack);
|
ZSList::Instance()->SendPacket(0, GetInstanceID(), pack);
|
||||||
|
|
||||||
delete pack;
|
delete pack;
|
||||||
|
|
||||||
@ -406,7 +405,7 @@ void Adventure::MoveCorpsesToGraveyard()
|
|||||||
spc->player_corpse_id = e.id;
|
spc->player_corpse_id = e.id;
|
||||||
spc->zone_id = GetTemplate()->graveyard_zone_id;
|
spc->zone_id = GetTemplate()->graveyard_zone_id;
|
||||||
|
|
||||||
zoneserver_list.SendPacket(spc->zone_id, 0, pack);
|
ZSList::Instance()->SendPacket(spc->zone_id, 0, pack);
|
||||||
|
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,6 @@
|
|||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
|
|
||||||
AdventureManager::AdventureManager()
|
AdventureManager::AdventureManager()
|
||||||
@ -83,7 +82,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
|||||||
ServerAdventureRequestDeny_Struct *deny = (ServerAdventureRequestDeny_Struct*)pack->pBuffer;
|
ServerAdventureRequestDeny_Struct *deny = (ServerAdventureRequestDeny_Struct*)pack->pBuffer;
|
||||||
strcpy(deny->leader, sar->leader);
|
strcpy(deny->leader, sar->leader);
|
||||||
strcpy(deny->reason, "There are currently no adventures set for this theme.");
|
strcpy(deny->reason, "There are currently no adventures set for this theme.");
|
||||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -112,7 +111,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
|||||||
ss << (data + sizeof(ServerAdventureRequest_Struct) + (64 * i)) << " is already apart of an active adventure.";
|
ss << (data + sizeof(ServerAdventureRequest_Struct) + (64 * i)) << " is already apart of an active adventure.";
|
||||||
|
|
||||||
strcpy(deny->reason, ss.str().c_str());
|
strcpy(deny->reason, ss.str().c_str());
|
||||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -243,7 +242,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
|||||||
ServerAdventureRequestDeny_Struct *deny = (ServerAdventureRequestDeny_Struct*)pack->pBuffer;
|
ServerAdventureRequestDeny_Struct *deny = (ServerAdventureRequestDeny_Struct*)pack->pBuffer;
|
||||||
strcpy(deny->leader, sar->leader);
|
strcpy(deny->leader, sar->leader);
|
||||||
strcpy(deny->reason, "The number of found players for this adventure was zero.");
|
strcpy(deny->reason, "The number of found players for this adventure was zero.");
|
||||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -260,7 +259,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
|||||||
ss << "The maximum level range for this adventure is " << RuleI(Adventure, MaxLevelRange);
|
ss << "The maximum level range for this adventure is " << RuleI(Adventure, MaxLevelRange);
|
||||||
ss << " but the level range calculated was " << (max_level - min_level) << ".";
|
ss << " but the level range calculated was " << (max_level - min_level) << ".";
|
||||||
strcpy(deny->reason, ss.str().c_str());
|
strcpy(deny->reason, ss.str().c_str());
|
||||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -337,7 +336,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
|||||||
sra->id = (*ea_iter)->id;
|
sra->id = (*ea_iter)->id;
|
||||||
sra->member_count = sar->member_count;
|
sra->member_count = sar->member_count;
|
||||||
memcpy((pack->pBuffer + sizeof(ServerAdventureRequestAccept_Struct)), (data + sizeof(ServerAdventureRequest_Struct)), (sar->member_count * 64));
|
memcpy((pack->pBuffer + sizeof(ServerAdventureRequestAccept_Struct)), (data + sizeof(ServerAdventureRequest_Struct)), (sar->member_count * 64));
|
||||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -347,7 +346,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
|||||||
ServerAdventureRequestDeny_Struct *deny = (ServerAdventureRequestDeny_Struct*)pack->pBuffer;
|
ServerAdventureRequestDeny_Struct *deny = (ServerAdventureRequestDeny_Struct*)pack->pBuffer;
|
||||||
strcpy(deny->leader, sar->leader);
|
strcpy(deny->leader, sar->leader);
|
||||||
strcpy(deny->reason, "The number of adventures returned was zero.");
|
strcpy(deny->reason, "The number of adventures returned was zero.");
|
||||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -367,7 +366,7 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
|||||||
{
|
{
|
||||||
auto pack = new ServerPacket(ServerOP_AdventureCreateDeny, 64);
|
auto pack = new ServerPacket(ServerOP_AdventureCreateDeny, 64);
|
||||||
strcpy((char*)pack->pBuffer, src->leader);
|
strcpy((char*)pack->pBuffer, src->leader);
|
||||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -377,7 +376,7 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
|||||||
{
|
{
|
||||||
auto pack = new ServerPacket(ServerOP_AdventureCreateDeny, 64);
|
auto pack = new ServerPacket(ServerOP_AdventureCreateDeny, 64);
|
||||||
strcpy((char*)pack->pBuffer, src->leader);
|
strcpy((char*)pack->pBuffer, src->leader);
|
||||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
delete adv;
|
delete adv;
|
||||||
return;
|
return;
|
||||||
@ -390,7 +389,7 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
|||||||
{
|
{
|
||||||
auto pack = new ServerPacket(ServerOP_AdventureCreateDeny, 64);
|
auto pack = new ServerPacket(ServerOP_AdventureCreateDeny, 64);
|
||||||
strcpy((char*)pack->pBuffer, src->leader);
|
strcpy((char*)pack->pBuffer, src->leader);
|
||||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
ZSList::Instance()->SendPacket(leader->zone(), leader->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
delete adv;
|
delete adv;
|
||||||
return;
|
return;
|
||||||
@ -435,7 +434,7 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
|||||||
sfa->zone_in_object = finished_adventures[f]->GetTemplate()->zone_in_object_id;
|
sfa->zone_in_object = finished_adventures[f]->GetTemplate()->zone_in_object_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(player->zone(), player->instance(), pack);
|
ZSList::Instance()->SendPacket(player->zone(), player->instance(), pack);
|
||||||
safe_delete_array(finished_adventures);
|
safe_delete_array(finished_adventures);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
@ -496,7 +495,7 @@ void AdventureManager::GetAdventureData(const char *name)
|
|||||||
delete pack;
|
delete pack;
|
||||||
auto pack = new ServerPacket(ServerOP_AdventureDataClear, 64);
|
auto pack = new ServerPacket(ServerOP_AdventureDataClear, 64);
|
||||||
strcpy((char*)pack->pBuffer, name);
|
strcpy((char*)pack->pBuffer, name);
|
||||||
zoneserver_list.SendPacket(player->zone(), player->instance(), pack);
|
ZSList::Instance()->SendPacket(player->zone(), player->instance(), pack);
|
||||||
|
|
||||||
delete pack;
|
delete pack;
|
||||||
delete[] finished_adventures;
|
delete[] finished_adventures;
|
||||||
@ -514,7 +513,7 @@ void AdventureManager::GetAdventureData(const char *name)
|
|||||||
sfa->zone_in_object = finished_adventures[i]->GetTemplate()->zone_in_object_id;
|
sfa->zone_in_object = finished_adventures[i]->GetTemplate()->zone_in_object_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(player->zone(), player->instance(), pack);
|
ZSList::Instance()->SendPacket(player->zone(), player->instance(), pack);
|
||||||
safe_delete_array(finished_adventures);
|
safe_delete_array(finished_adventures);
|
||||||
delete pack;
|
delete pack;
|
||||||
delete[] finished_adventures;
|
delete[] finished_adventures;
|
||||||
@ -782,7 +781,7 @@ void AdventureManager::PlayerClickedDoor(const char *player, int zone_id, int do
|
|||||||
(*iter)->SetStatus(AS_WaitingForPrimaryEndTime);
|
(*iter)->SetStatus(AS_WaitingForPrimaryEndTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -796,7 +795,7 @@ void AdventureManager::PlayerClickedDoor(const char *player, int zone_id, int do
|
|||||||
{
|
{
|
||||||
auto pack = new ServerPacket(ServerOP_AdventureClickDoorError, 64);
|
auto pack = new ServerPacket(ServerOP_AdventureClickDoorError, 64);
|
||||||
strcpy((char*)pack->pBuffer, player);
|
strcpy((char*)pack->pBuffer, player);
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -813,7 +812,7 @@ void AdventureManager::LeaveAdventure(const char *name)
|
|||||||
{
|
{
|
||||||
auto pack = new ServerPacket(ServerOP_AdventureLeaveDeny, 64);
|
auto pack = new ServerPacket(ServerOP_AdventureLeaveDeny, 64);
|
||||||
strcpy((char*)pack->pBuffer, name);
|
strcpy((char*)pack->pBuffer, name);
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -826,7 +825,7 @@ void AdventureManager::LeaveAdventure(const char *name)
|
|||||||
current->RemovePlayer(name);
|
current->RemovePlayer(name);
|
||||||
auto pack = new ServerPacket(ServerOP_AdventureLeaveReply, 64);
|
auto pack = new ServerPacket(ServerOP_AdventureLeaveReply, 64);
|
||||||
strcpy((char*)pack->pBuffer, name);
|
strcpy((char*)pack->pBuffer, name);
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -834,7 +833,7 @@ void AdventureManager::LeaveAdventure(const char *name)
|
|||||||
{
|
{
|
||||||
auto pack = new ServerPacket(ServerOP_AdventureLeaveReply, 64);
|
auto pack = new ServerPacket(ServerOP_AdventureLeaveReply, 64);
|
||||||
strcpy((char*)pack->pBuffer, name);
|
strcpy((char*)pack->pBuffer, name);
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -871,7 +870,7 @@ void AdventureManager::IncrementCount(uint16 instance_id)
|
|||||||
{
|
{
|
||||||
memset(ac->player, 0, 64);
|
memset(ac->player, 0, 64);
|
||||||
strcpy(ac->player, (*siter).c_str());
|
strcpy(ac->player, (*siter).c_str());
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
}
|
}
|
||||||
++siter;
|
++siter;
|
||||||
}
|
}
|
||||||
@ -935,7 +934,7 @@ void AdventureManager::GetZoneData(uint16 instance_id)
|
|||||||
zd->dest_y = temp->dest_y;
|
zd->dest_y = temp->dest_y;
|
||||||
zd->dest_z = temp->dest_z;
|
zd->dest_z = temp->dest_z;
|
||||||
zd->dest_h = temp->dest_h;
|
zd->dest_h = temp->dest_h;
|
||||||
zoneserver_list.SendPacket(0, instance_id, pack);
|
ZSList::Instance()->SendPacket(0, instance_id, pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1320,7 +1319,7 @@ void AdventureManager::DoLeaderboardRequestWins(const char* player)
|
|||||||
al->failure = our_failures;
|
al->failure = our_failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1386,7 +1385,7 @@ void AdventureManager::DoLeaderboardRequestPercentage(const char* player)
|
|||||||
al->failure = our_failures;
|
al->failure = our_failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1452,7 +1451,7 @@ void AdventureManager::DoLeaderboardRequestWinsGuk(const char* player)
|
|||||||
al->failure = our_failures;
|
al->failure = our_failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1518,7 +1517,7 @@ void AdventureManager::DoLeaderboardRequestPercentageGuk(const char* player)
|
|||||||
al->failure = our_failures;
|
al->failure = our_failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1584,7 +1583,7 @@ void AdventureManager::DoLeaderboardRequestWinsMir(const char* player)
|
|||||||
al->failure = our_failures;
|
al->failure = our_failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1650,7 +1649,7 @@ void AdventureManager::DoLeaderboardRequestPercentageMir(const char* player)
|
|||||||
al->failure = our_failures;
|
al->failure = our_failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1716,7 +1715,7 @@ void AdventureManager::DoLeaderboardRequestWinsMmc(const char* player)
|
|||||||
al->failure = our_failures;
|
al->failure = our_failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1782,7 +1781,7 @@ void AdventureManager::DoLeaderboardRequestPercentageMmc(const char* player)
|
|||||||
al->failure = our_failures;
|
al->failure = our_failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1848,7 +1847,7 @@ void AdventureManager::DoLeaderboardRequestWinsRuj(const char* player)
|
|||||||
al->failure = our_failures;
|
al->failure = our_failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1914,7 +1913,7 @@ void AdventureManager::DoLeaderboardRequestPercentageRuj(const char* player)
|
|||||||
al->failure = our_failures;
|
al->failure = our_failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1980,7 +1979,7 @@ void AdventureManager::DoLeaderboardRequestWinsTak(const char* player)
|
|||||||
al->failure = our_failures;
|
al->failure = our_failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2046,7 +2045,7 @@ void AdventureManager::DoLeaderboardRequestPercentageTak(const char* player)
|
|||||||
al->failure = our_failures;
|
al->failure = our_failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2083,7 +2082,7 @@ void AdventureManager::SendAdventureFinish(AdventureFinishEvent fe)
|
|||||||
af->win = fe.win;
|
af->win = fe.win;
|
||||||
af->points = fe.points;
|
af->points = fe.points;
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
ZSList::Instance()->SendPacket(pc->zone(), pc->instance(), pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -89,7 +89,6 @@
|
|||||||
std::vector<RaceClassAllocation> character_create_allocations;
|
std::vector<RaceClassAllocation> character_create_allocations;
|
||||||
std::vector<RaceClassCombos> character_create_race_class_combos;
|
std::vector<RaceClassCombos> character_create_race_class_combos;
|
||||||
|
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern uint32 numclients;
|
extern uint32 numclients;
|
||||||
extern volatile bool RunLoops;
|
extern volatile bool RunLoops;
|
||||||
@ -1415,18 +1414,18 @@ void Client::EnterWorld(bool TryBootup) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
zone_server = zoneserver_list.FindByInstanceID(instance_id);
|
zone_server = ZSList::Instance()->FindByInstanceID(instance_id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
zone_server = zoneserver_list.FindByZoneID(zone_id);
|
zone_server = ZSList::Instance()->FindByZoneID(zone_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *zone_name = ZoneName(zone_id, true);
|
const char *zone_name = ZoneName(zone_id, true);
|
||||||
if (zone_server) {
|
if (zone_server) {
|
||||||
if (false == enter_world_triggered) {
|
if (false == enter_world_triggered) {
|
||||||
//Drop any clients we own in other zones.
|
//Drop any clients we own in other zones.
|
||||||
zoneserver_list.DropClient(GetLSID(), zone_server);
|
ZSList::Instance()->DropClient(GetLSID(), zone_server);
|
||||||
|
|
||||||
// warn the zone we're coming
|
// warn the zone we're coming
|
||||||
zone_server->IncomingClient(this);
|
zone_server->IncomingClient(this);
|
||||||
@ -1439,7 +1438,7 @@ void Client::EnterWorld(bool TryBootup) {
|
|||||||
if (TryBootup) {
|
if (TryBootup) {
|
||||||
LogInfo("Attempting autobootup of [{}] [{}] [{}]", zone_name, zone_id, instance_id);
|
LogInfo("Attempting autobootup of [{}] [{}] [{}]", zone_name, zone_id, instance_id);
|
||||||
autobootup_timeout.Start();
|
autobootup_timeout.Start();
|
||||||
zone_waiting_for_bootup = zoneserver_list.TriggerBootup(zone_id, instance_id);
|
zone_waiting_for_bootup = ZSList::Instance()->TriggerBootup(zone_id, instance_id);
|
||||||
if (zone_waiting_for_bootup == 0) {
|
if (zone_waiting_for_bootup == 0) {
|
||||||
LogInfo("No zoneserver available to boot up");
|
LogInfo("No zoneserver available to boot up");
|
||||||
TellClientZoneUnavailable();
|
TellClientZoneUnavailable();
|
||||||
@ -1455,7 +1454,7 @@ void Client::EnterWorld(bool TryBootup) {
|
|||||||
|
|
||||||
zone_waiting_for_bootup = 0;
|
zone_waiting_for_bootup = 0;
|
||||||
|
|
||||||
if (GetAdmin() < 80 && zoneserver_list.IsZoneLocked(zone_id)) {
|
if (GetAdmin() < 80 && ZSList::Instance()->IsZoneLocked(zone_id)) {
|
||||||
LogInfo("Enter world failed. Zone is locked");
|
LogInfo("Enter world failed. Zone is locked");
|
||||||
TellClientZoneUnavailable();
|
TellClientZoneUnavailable();
|
||||||
return;
|
return;
|
||||||
@ -1501,11 +1500,11 @@ void Client::Clearance(int8 response)
|
|||||||
ZoneServer* zs = nullptr;
|
ZoneServer* zs = nullptr;
|
||||||
if(instance_id > 0)
|
if(instance_id > 0)
|
||||||
{
|
{
|
||||||
zs = zoneserver_list.FindByInstanceID(instance_id);
|
zs = ZSList::Instance()->FindByInstanceID(instance_id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
zs = zoneserver_list.FindByZoneID(zone_id);
|
zs = ZSList::Instance()->FindByZoneID(zone_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(zs == 0 || response == -1 || response == 0)
|
if(zs == 0 || response == -1 || response == 0)
|
||||||
|
|||||||
@ -36,7 +36,6 @@
|
|||||||
#include "../common/zone_store.h"
|
#include "../common/zone_store.h"
|
||||||
#include <set>
|
#include <set>
|
||||||
|
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
uint32 numplayers = 0; //this really wants to be a member variable of ClientList...
|
uint32 numplayers = 0; //this really wants to be a member variable of ClientList...
|
||||||
|
|
||||||
ClientList::ClientList()
|
ClientList::ClientList()
|
||||||
@ -232,7 +231,7 @@ void ClientList::DisconnectByIP(uint32 in_ip) {
|
|||||||
strn0cpy(skp->adminname, "SessionLimit", sizeof(skp->adminname));
|
strn0cpy(skp->adminname, "SessionLimit", sizeof(skp->adminname));
|
||||||
strn0cpy(skp->name, cle->name(), sizeof(skp->name));
|
strn0cpy(skp->name, cle->name(), sizeof(skp->name));
|
||||||
skp->adminrank = 255;
|
skp->adminrank = 255;
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
cle->SetOnline(CLE_Status::Offline);
|
cle->SetOnline(CLE_Status::Offline);
|
||||||
@ -551,7 +550,7 @@ void ClientList::SendOnlineGuildMembers(uint32 FromID, uint32 GuildID)
|
|||||||
|
|
||||||
Iterator.Advance();
|
Iterator.Advance();
|
||||||
}
|
}
|
||||||
zoneserver_list.SendPacket(from->zone(), from->instance(), pack);
|
ZSList::Instance()->SendPacket(from->zone(), from->instance(), pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1316,7 +1315,7 @@ void ClientList::RemoveCLEReferances(ClientListEntry* cle) {
|
|||||||
|
|
||||||
bool ClientList::SendPacket(const char* to, ServerPacket* pack) {
|
bool ClientList::SendPacket(const char* to, ServerPacket* pack) {
|
||||||
if (to == 0 || to[0] == 0) {
|
if (to == 0 || to[0] == 0) {
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (to[0] == '*') {
|
else if (to[0] == '*') {
|
||||||
@ -1332,7 +1331,7 @@ bool ClientList::SendPacket(const char* to, ServerPacket* pack) {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
ZoneServer* zs = zoneserver_list.FindByName(to);
|
ZoneServer* zs = ZSList::Instance()->FindByName(to);
|
||||||
if (zs != nullptr) {
|
if (zs != nullptr) {
|
||||||
zs->SendPacket(pack);
|
zs->SendPacket(pack);
|
||||||
return true;
|
return true;
|
||||||
@ -1437,7 +1436,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (client_count[EQ::versions::ClientVersion::Titanium]) {
|
if (client_count[EQ::versions::ClientVersion::Titanium]) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
Name,
|
Name,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -1450,7 +1449,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (client_count[EQ::versions::ClientVersion::SoF]) {
|
if (client_count[EQ::versions::ClientVersion::SoF]) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
Name,
|
Name,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -1463,7 +1462,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (client_count[EQ::versions::ClientVersion::SoD]) {
|
if (client_count[EQ::versions::ClientVersion::SoD]) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
Name,
|
Name,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -1476,7 +1475,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (client_count[EQ::versions::ClientVersion::UF]) {
|
if (client_count[EQ::versions::ClientVersion::UF]) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
Name,
|
Name,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -1489,7 +1488,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (client_count[EQ::versions::ClientVersion::RoF]) {
|
if (client_count[EQ::versions::ClientVersion::RoF]) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
Name,
|
Name,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -1502,7 +1501,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (client_count[EQ::versions::ClientVersion::RoF2]) {
|
if (client_count[EQ::versions::ClientVersion::RoF2]) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
Name,
|
Name,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -1515,7 +1514,7 @@ void ClientList::SendClientVersionSummary(const char *Name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
Name,
|
Name,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
|
|||||||
@ -34,7 +34,6 @@
|
|||||||
#include <fmt/format.h>
|
#include <fmt/format.h>
|
||||||
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param username
|
* @param username
|
||||||
@ -148,7 +147,7 @@ void ConsoleZoneStatus(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
WorldConsoleTCPConnection console_connection(connection);
|
WorldConsoleTCPConnection console_connection(connection);
|
||||||
zoneserver_list.SendZoneStatus(0, connection->Admin(), &console_connection);
|
ZSList::Instance()->SendZoneStatus(0, connection->Admin(), &console_connection);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -215,7 +214,7 @@ void ConsoleUptime(
|
|||||||
ServerUptime_Struct *sus = (ServerUptime_Struct *) pack->pBuffer;
|
ServerUptime_Struct *sus = (ServerUptime_Struct *) pack->pBuffer;
|
||||||
snprintf(sus->adminname, sizeof(sus->adminname), "*%s", connection->UserName().c_str());
|
snprintf(sus->adminname, sizeof(sus->adminname), "*%s", connection->UserName().c_str());
|
||||||
sus->zoneserverid = Strings::ToInt(args[0]);
|
sus->zoneserverid = Strings::ToInt(args[0]);
|
||||||
ZoneServer *zs = zoneserver_list.FindByID(sus->zoneserverid);
|
ZoneServer *zs = ZSList::Instance()->FindByID(sus->zoneserverid);
|
||||||
if (zs) {
|
if (zs) {
|
||||||
zs->SendPacket(pack);
|
zs->SendPacket(pack);
|
||||||
}
|
}
|
||||||
@ -290,7 +289,7 @@ void ConsoleEmote(
|
|||||||
join_args.erase(join_args.begin(), join_args.begin() + 2);
|
join_args.erase(join_args.begin(), join_args.begin() + 2);
|
||||||
|
|
||||||
if (strcasecmp(args[0].c_str(), "world") == 0) {
|
if (strcasecmp(args[0].c_str(), "world") == 0) {
|
||||||
zoneserver_list.SendEmoteMessageRaw(
|
ZSList::Instance()->SendEmoteMessageRaw(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -299,7 +298,7 @@ void ConsoleEmote(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ZoneServer *zs = zoneserver_list.FindByName(args[0].c_str());
|
ZoneServer *zs = ZSList::Instance()->FindByName(args[0].c_str());
|
||||||
if (zs != 0) {
|
if (zs != 0) {
|
||||||
zs->SendEmoteMessageRaw(
|
zs->SendEmoteMessageRaw(
|
||||||
0,
|
0,
|
||||||
@ -310,7 +309,7 @@ void ConsoleEmote(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
zoneserver_list.SendEmoteMessageRaw(
|
ZSList::Instance()->SendEmoteMessageRaw(
|
||||||
args[0].c_str(),
|
args[0].c_str(),
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -371,7 +370,7 @@ void ConsoleTell(
|
|||||||
auto join_args = args;
|
auto join_args = args;
|
||||||
join_args.erase(join_args.begin(), join_args.begin() + 1);
|
join_args.erase(join_args.begin(), join_args.begin() + 1);
|
||||||
|
|
||||||
zoneserver_list.SendChannelMessage(tmpname, to.c_str(), ChatChannel_Tell, 0, Strings::Join(join_args, " ").c_str());
|
ZSList::Instance()->SendChannelMessage(tmpname, to.c_str(), ChatChannel_Tell, 0, Strings::Join(join_args, " ").c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -392,7 +391,7 @@ void ConsoleBroadcast(
|
|||||||
char tmpname[64];
|
char tmpname[64];
|
||||||
tmpname[0] = '*';
|
tmpname[0] = '*';
|
||||||
strcpy(&tmpname[1], connection->UserName().c_str());
|
strcpy(&tmpname[1], connection->UserName().c_str());
|
||||||
zoneserver_list.SendChannelMessage(tmpname, 0, ChatChannel_Broadcast, 0, Strings::Join(args, " ").c_str());
|
ZSList::Instance()->SendChannelMessage(tmpname, 0, ChatChannel_Broadcast, 0, Strings::Join(args, " ").c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -413,7 +412,7 @@ void ConsoleGMSay(
|
|||||||
char tmpname[64];
|
char tmpname[64];
|
||||||
tmpname[0] = '*';
|
tmpname[0] = '*';
|
||||||
strcpy(&tmpname[1], connection->UserName().c_str());
|
strcpy(&tmpname[1], connection->UserName().c_str());
|
||||||
zoneserver_list.SendChannelMessage(tmpname, 0, ChatChannel_GMSAY, 0, Strings::Join(args, " ").c_str());
|
ZSList::Instance()->SendChannelMessage(tmpname, 0, ChatChannel_GMSAY, 0, Strings::Join(args, " ").c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -446,7 +445,7 @@ void ConsoleGuildSay(
|
|||||||
Strings::Join(join_args, " ")
|
Strings::Join(join_args, " ")
|
||||||
);
|
);
|
||||||
|
|
||||||
zoneserver_list.SendEmoteMessage(0, guild_id, AccountStatus::Player, Chat::Guild, message.c_str());
|
ZSList::Instance()->SendEmoteMessage(0, guild_id, AccountStatus::Player, Chat::Guild, message.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -467,7 +466,7 @@ void ConsoleOOC(
|
|||||||
char tmpname[64];
|
char tmpname[64];
|
||||||
tmpname[0] = '*';
|
tmpname[0] = '*';
|
||||||
strcpy(&tmpname[1], connection->UserName().c_str());
|
strcpy(&tmpname[1], connection->UserName().c_str());
|
||||||
zoneserver_list.SendChannelMessage(tmpname, 0, ChatChannel_OOC, 0, Strings::Join(args, " ").c_str());
|
ZSList::Instance()->SendChannelMessage(tmpname, 0, ChatChannel_OOC, 0, Strings::Join(args, " ").c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -488,7 +487,7 @@ void ConsoleAuction(
|
|||||||
char tmpname[64];
|
char tmpname[64];
|
||||||
tmpname[0] = '*';
|
tmpname[0] = '*';
|
||||||
strcpy(&tmpname[1], connection->UserName().c_str());
|
strcpy(&tmpname[1], connection->UserName().c_str());
|
||||||
zoneserver_list.SendChannelMessage(tmpname, 0, ChatChannel_Auction, 0, Strings::Join(args, " ").c_str());
|
ZSList::Instance()->SendChannelMessage(tmpname, 0, ChatChannel_Auction, 0, Strings::Join(args, " ").c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -517,7 +516,7 @@ void ConsoleKick(
|
|||||||
strcpy(skp->adminname, tmpname);
|
strcpy(skp->adminname, tmpname);
|
||||||
strcpy(skp->name, args[0].c_str());
|
strcpy(skp->name, args[0].c_str());
|
||||||
skp->adminrank = connection->Admin();
|
skp->adminrank = connection->Admin();
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -603,10 +602,10 @@ void ConsoleZoneShutdown(
|
|||||||
|
|
||||||
ZoneServer *zs = 0;
|
ZoneServer *zs = 0;
|
||||||
if (s->zone_server_id != 0) {
|
if (s->zone_server_id != 0) {
|
||||||
zs = zoneserver_list.FindByID(s->zone_server_id);
|
zs = ZSList::Instance()->FindByID(s->zone_server_id);
|
||||||
}
|
}
|
||||||
else if (s->zone_id != 0) {
|
else if (s->zone_id != 0) {
|
||||||
zs = zoneserver_list.FindByName(ZoneName(s->zone_id));
|
zs = ZSList::Instance()->FindByName(ZoneName(s->zone_id));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
connection->SendLine("Error: ZoneShutdown: neither ID nor name specified");
|
connection->SendLine("Error: ZoneShutdown: neither ID nor name specified");
|
||||||
@ -647,14 +646,14 @@ void ConsoleZoneBootup(
|
|||||||
strcpy(&tmpname[1], connection->UserName().c_str());
|
strcpy(&tmpname[1], connection->UserName().c_str());
|
||||||
|
|
||||||
if (args.size() > 2) {
|
if (args.size() > 2) {
|
||||||
zoneserver_list.SOPZoneBootup(
|
ZSList::Instance()->SOPZoneBootup(
|
||||||
tmpname,
|
tmpname,
|
||||||
Strings::ToInt(args[0]),
|
Strings::ToInt(args[0]),
|
||||||
args[1].c_str(),
|
args[1].c_str(),
|
||||||
(bool) (strcasecmp(args[1].c_str(), "static") == 0));
|
(bool) (strcasecmp(args[1].c_str(), "static") == 0));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
zoneserver_list.SOPZoneBootup(tmpname, Strings::ToInt(args[0]), args[1].c_str(), false);
|
ZSList::Instance()->SOPZoneBootup(tmpname, Strings::ToInt(args[0]), args[1].c_str(), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -676,7 +675,7 @@ void ConsoleZoneLock(
|
|||||||
|
|
||||||
if (strcasecmp(args[0].c_str(), "list") == 0) {
|
if (strcasecmp(args[0].c_str(), "list") == 0) {
|
||||||
WorldConsoleTCPConnection console_connection(connection);
|
WorldConsoleTCPConnection console_connection(connection);
|
||||||
zoneserver_list.ListLockedZones(0, &console_connection);
|
ZSList::Instance()->ListLockedZones(0, &console_connection);
|
||||||
}
|
}
|
||||||
else if (strcasecmp(args[0].c_str(), "lock") == 0 && connection->Admin() >= 101) {
|
else if (strcasecmp(args[0].c_str(), "lock") == 0 && connection->Admin() >= 101) {
|
||||||
if (args.size() < 2) {
|
if (args.size() < 2) {
|
||||||
@ -685,8 +684,8 @@ void ConsoleZoneLock(
|
|||||||
|
|
||||||
uint16 tmp = ZoneID(args[1].c_str());
|
uint16 tmp = ZoneID(args[1].c_str());
|
||||||
if (tmp) {
|
if (tmp) {
|
||||||
if (zoneserver_list.SetLockedZone(tmp, true)) {
|
if (ZSList::Instance()->SetLockedZone(tmp, true)) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
AccountStatus::QuestTroupe,
|
AccountStatus::QuestTroupe,
|
||||||
@ -712,8 +711,8 @@ void ConsoleZoneLock(
|
|||||||
|
|
||||||
uint16 tmp = ZoneID(args[1].c_str());
|
uint16 tmp = ZoneID(args[1].c_str());
|
||||||
if (tmp) {
|
if (tmp) {
|
||||||
if (zoneserver_list.SetLockedZone(tmp, false)) {
|
if (ZSList::Instance()->SetLockedZone(tmp, false)) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
AccountStatus::QuestTroupe,
|
AccountStatus::QuestTroupe,
|
||||||
@ -833,7 +832,7 @@ void ConsoleWorldShutdown(
|
|||||||
int32 time, interval;
|
int32 time, interval;
|
||||||
if (Strings::IsNumber(args[0]) && Strings::IsNumber(args[1]) && ((time = Strings::ToInt(args[0])) > 0) &&
|
if (Strings::IsNumber(args[0]) && Strings::IsNumber(args[1]) && ((time = Strings::ToInt(args[0])) > 0) &&
|
||||||
((interval = Strings::ToInt(args[1])) > 0)) {
|
((interval = Strings::ToInt(args[1])) > 0)) {
|
||||||
zoneserver_list.WorldShutDown(time, interval);
|
ZSList::Instance()->WorldShutDown(time, interval);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
connection->SendLine("Usage: worldshutdown [now] [disable] ([time] [interval])");
|
connection->SendLine("Usage: worldshutdown [now] [disable] ([time] [interval])");
|
||||||
@ -841,19 +840,19 @@ void ConsoleWorldShutdown(
|
|||||||
}
|
}
|
||||||
else if (args.size() == 1) {
|
else if (args.size() == 1) {
|
||||||
if (strcasecmp(args[0].c_str(), "now") == 0) {
|
if (strcasecmp(args[0].c_str(), "now") == 0) {
|
||||||
zoneserver_list.WorldShutDown(0, 0);
|
ZSList::Instance()->WorldShutDown(0, 0);
|
||||||
}
|
}
|
||||||
else if (strcasecmp(args[0].c_str(), "disable") == 0) {
|
else if (strcasecmp(args[0].c_str(), "disable") == 0) {
|
||||||
connection->SendLine("[SYSTEM] World shutdown has been aborted.");
|
connection->SendLine("[SYSTEM] World shutdown has been aborted.");
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
Chat::Yellow,
|
Chat::Yellow,
|
||||||
"[SYSTEM] World shutdown has been aborted."
|
"[SYSTEM] World shutdown has been aborted."
|
||||||
);
|
);
|
||||||
zoneserver_list.shutdowntimer->Disable();
|
ZSList::Instance()->shutdowntimer->Disable();
|
||||||
zoneserver_list.reminder->Disable();
|
ZSList::Instance()->reminder->Disable();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
connection->SendLine("Usage: worldshutdown [now] [disable] ([time] [interval])");
|
connection->SendLine("Usage: worldshutdown [now] [disable] ([time] [interval])");
|
||||||
@ -906,7 +905,7 @@ void ConsoleSignalCharByName(
|
|||||||
CZS->update_identifier = update_identifier;
|
CZS->update_identifier = update_identifier;
|
||||||
CZS->signal_id = Strings::ToInt(args[1]);
|
CZS->signal_id = Strings::ToInt(args[1]);
|
||||||
strn0cpy(CZS->client_name, (char *) args[0].c_str(), 64);
|
strn0cpy(CZS->client_name, (char *) args[0].c_str(), 64);
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -922,7 +921,7 @@ void ConsoleReloadWorld(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
connection->SendLine("Reloading World...");
|
connection->SendLine("Reloading World...");
|
||||||
zoneserver_list.SendServerReload(ServerReload::Type::WorldRepop, nullptr);
|
ZSList::Instance()->SendServerReload(ServerReload::Type::WorldRepop, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto debounce_reload = std::chrono::system_clock::now();
|
auto debounce_reload = std::chrono::system_clock::now();
|
||||||
@ -959,7 +958,7 @@ void ConsoleReloadZoneQuests(
|
|||||||
auto *hot_reload_quests = (HotReloadQuestsStruct *) pack->pBuffer;
|
auto *hot_reload_quests = (HotReloadQuestsStruct *) pack->pBuffer;
|
||||||
strn0cpy(hot_reload_quests->zone_short_name, (char *) zone_short_name.c_str(), 200);
|
strn0cpy(hot_reload_quests->zone_short_name, (char *) zone_short_name.c_str(), 200);
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1075,7 +1074,7 @@ void ConsoleCrossZoneCastSpell(
|
|||||||
|
|
||||||
strn0cpy(CZS->client_name, name.c_str(), sizeof(CZS->client_name));
|
strn0cpy(CZS->client_name, name.c_str(), sizeof(CZS->client_name));
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
|
|
||||||
connection->SendLine(
|
connection->SendLine(
|
||||||
@ -1126,7 +1125,7 @@ void ConsoleWorldWideCastSpell(
|
|||||||
WWS->min_status = min_status;
|
WWS->min_status = min_status;
|
||||||
WWS->max_status = max_status;
|
WWS->max_status = max_status;
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
|
|
||||||
connection->SendLine(
|
connection->SendLine(
|
||||||
@ -1257,7 +1256,7 @@ void ConsoleCrossZoneMove(
|
|||||||
m->zone_short_name = zone_short_name;
|
m->zone_short_name = zone_short_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
|
|
||||||
connection->SendLine(
|
connection->SendLine(
|
||||||
@ -1316,7 +1315,7 @@ void ConsoleWorldWideMove(
|
|||||||
|
|
||||||
strn0cpy(WWM->zone_short_name, zone_short_name.c_str(), sizeof(WWM->zone_short_name));
|
strn0cpy(WWM->zone_short_name, zone_short_name.c_str(), sizeof(WWM->zone_short_name));
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
|
|
||||||
connection->SendLine(
|
connection->SendLine(
|
||||||
@ -1360,7 +1359,7 @@ void ConsoleWWMarquee(
|
|||||||
|
|
||||||
strn0cpy(wwm->message, message.c_str(), sizeof(wwm->message));
|
strn0cpy(wwm->message, message.c_str(), sizeof(wwm->message));
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
|
|
||||||
connection->SendLine(fmt::format("Sent world marquee type {}: {}", type, message));
|
connection->SendLine(fmt::format("Sent world marquee type {}: {}", type, message));
|
||||||
|
|||||||
@ -9,7 +9,6 @@
|
|||||||
#include "../common/repositories/instance_list_repository.h"
|
#include "../common/repositories/instance_list_repository.h"
|
||||||
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
|
|
||||||
Database& DynamicZone::GetDatabase()
|
Database& DynamicZone::GetDatabase()
|
||||||
{
|
{
|
||||||
@ -18,7 +17,7 @@ Database& DynamicZone::GetDatabase()
|
|||||||
|
|
||||||
bool DynamicZone::SendServerPacket(ServerPacket* packet)
|
bool DynamicZone::SendServerPacket(ServerPacket* packet)
|
||||||
{
|
{
|
||||||
return zoneserver_list.SendPacket(packet);
|
return ZSList::Instance()->SendPacket(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
DynamicZone* DynamicZone::FindDynamicZoneByID(uint32_t dz_id)
|
DynamicZone* DynamicZone::FindDynamicZoneByID(uint32_t dz_id)
|
||||||
@ -91,7 +90,7 @@ DynamicZoneStatus DynamicZone::Process()
|
|||||||
{
|
{
|
||||||
status = DynamicZoneStatus::Expired;
|
status = DynamicZoneStatus::Expired;
|
||||||
|
|
||||||
auto dz_zoneserver = zoneserver_list.FindByInstanceID(GetInstanceID());
|
auto dz_zoneserver = ZSList::Instance()->FindByInstanceID(GetInstanceID());
|
||||||
if (!dz_zoneserver || dz_zoneserver->NumPlayers() == 0) // no clients inside dz
|
if (!dz_zoneserver || dz_zoneserver->NumPlayers() == 0) // no clients inside dz
|
||||||
{
|
{
|
||||||
status = DynamicZoneStatus::ExpiredEmpty;
|
status = DynamicZoneStatus::ExpiredEmpty;
|
||||||
@ -119,7 +118,7 @@ void DynamicZone::SendZonesDynamicZoneDeleted()
|
|||||||
auto pack = std::make_unique<ServerPacket>(ServerOP_DzDeleted, pack_size);
|
auto pack = std::make_unique<ServerPacket>(ServerOP_DzDeleted, pack_size);
|
||||||
auto buf = reinterpret_cast<ServerDzID_Struct*>(pack->pBuffer);
|
auto buf = reinterpret_cast<ServerDzID_Struct*>(pack->pBuffer);
|
||||||
buf->dz_id = GetID();
|
buf->dz_id = GetID();
|
||||||
zoneserver_list.SendPacket(pack.get());
|
ZSList::Instance()->SendPacket(pack.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void DynamicZone::SetSecondsRemaining(uint32_t seconds_remaining)
|
void DynamicZone::SetSecondsRemaining(uint32_t seconds_remaining)
|
||||||
@ -154,7 +153,7 @@ void DynamicZone::SendZonesDurationUpdate()
|
|||||||
auto packbuf = reinterpret_cast<ServerDzSetDuration_Struct*>(pack->pBuffer);
|
auto packbuf = reinterpret_cast<ServerDzSetDuration_Struct*>(pack->pBuffer);
|
||||||
packbuf->dz_id = GetID();
|
packbuf->dz_id = GetID();
|
||||||
packbuf->seconds = static_cast<uint32_t>(m_duration.count());
|
packbuf->seconds = static_cast<uint32_t>(m_duration.count());
|
||||||
zoneserver_list.SendPacket(pack.get());
|
ZSList::Instance()->SendPacket(pack.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void DynamicZone::SendZonesLeaderChanged()
|
void DynamicZone::SendZonesLeaderChanged()
|
||||||
@ -164,7 +163,7 @@ void DynamicZone::SendZonesLeaderChanged()
|
|||||||
auto buf = reinterpret_cast<ServerDzLeaderID_Struct*>(pack->pBuffer);
|
auto buf = reinterpret_cast<ServerDzLeaderID_Struct*>(pack->pBuffer);
|
||||||
buf->dz_id = GetID();
|
buf->dz_id = GetID();
|
||||||
buf->leader_id = GetLeaderID();
|
buf->leader_id = GetLeaderID();
|
||||||
zoneserver_list.SendPacket(pack.get());
|
ZSList::Instance()->SendPacket(pack.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void DynamicZone::ProcessMemberAddRemove(const DynamicZoneMember& member, bool removed)
|
void DynamicZone::ProcessMemberAddRemove(const DynamicZoneMember& member, bool removed)
|
||||||
@ -198,7 +197,7 @@ void DynamicZone::SendZonesExpireWarning(uint32_t minutes_remaining)
|
|||||||
auto buf = reinterpret_cast<ServerDzExpireWarning_Struct*>(pack->pBuffer);
|
auto buf = reinterpret_cast<ServerDzExpireWarning_Struct*>(pack->pBuffer);
|
||||||
buf->dz_id = GetID();
|
buf->dz_id = GetID();
|
||||||
buf->minutes_remaining = minutes_remaining;
|
buf->minutes_remaining = minutes_remaining;
|
||||||
zoneserver_list.SendPacket(pack.get());
|
ZSList::Instance()->SendPacket(pack.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void DynamicZone::SendZoneMemberStatuses(uint16_t zone_id, uint16_t instance_id)
|
void DynamicZone::SendZoneMemberStatuses(uint16_t zone_id, uint16_t instance_id)
|
||||||
@ -217,7 +216,7 @@ void DynamicZone::SendZoneMemberStatuses(uint16_t zone_id, uint16_t instance_id)
|
|||||||
buf->entries[i].online_status = static_cast<uint8_t>(m_members[i].status);
|
buf->entries[i].online_status = static_cast<uint8_t>(m_members[i].status);
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(zone_id, instance_id, pack.get());
|
ZSList::Instance()->SendPacket(zone_id, instance_id, pack.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void DynamicZone::CacheMemberStatuses()
|
void DynamicZone::CacheMemberStatuses()
|
||||||
|
|||||||
@ -10,7 +10,6 @@
|
|||||||
#include <cereal/types/utility.hpp>
|
#include <cereal/types/utility.hpp>
|
||||||
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
|
|
||||||
DynamicZoneManager dynamic_zone_manager;
|
DynamicZoneManager dynamic_zone_manager;
|
||||||
|
|
||||||
@ -56,7 +55,7 @@ DynamicZone* DynamicZoneManager::TryCreate(DynamicZone& dz_request, const std::v
|
|||||||
LogDynamicZones("Created new dz [{}] for zone [{}]", dz_id, dz_request.GetZoneID());
|
LogDynamicZones("Created new dz [{}] for zone [{}]", dz_id, dz_request.GetZoneID());
|
||||||
|
|
||||||
auto pack = dz->CreateServerPacket(0, 0);
|
auto pack = dz->CreateServerPacket(0, 0);
|
||||||
zoneserver_list.SendPacket(pack.get());
|
ZSList::Instance()->SendPacket(pack.get());
|
||||||
|
|
||||||
auto inserted = dynamic_zone_cache.emplace(dz_id, std::move(dz));
|
auto inserted = dynamic_zone_cache.emplace(dz_id, std::move(dz));
|
||||||
return inserted.first->second.get();
|
return inserted.first->second.get();
|
||||||
@ -76,7 +75,7 @@ void DynamicZoneManager::CacheNewDynamicZone(ServerPacket* pack)
|
|||||||
dynamic_zone_cache.emplace(buf->dz_id, std::move(new_dz));
|
dynamic_zone_cache.emplace(buf->dz_id, std::move(new_dz));
|
||||||
LogDynamicZones("Cached new dynamic zone [{}]", buf->dz_id);
|
LogDynamicZones("Cached new dynamic zone [{}]", buf->dz_id);
|
||||||
|
|
||||||
zoneserver_list.SendPacket(repack.get());
|
ZSList::Instance()->SendPacket(repack.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void DynamicZoneManager::CacheAllFromDatabase()
|
void DynamicZoneManager::CacheAllFromDatabase()
|
||||||
@ -194,7 +193,7 @@ void DynamicZoneManager::SendBulkMemberStatuses(uint32_t zone_id, uint16_t inst_
|
|||||||
buf->cereal_size = static_cast<uint32_t>(sv.size());
|
buf->cereal_size = static_cast<uint32_t>(sv.size());
|
||||||
memcpy(buf->cereal_data, sv.data(), sv.size());
|
memcpy(buf->cereal_data, sv.data(), sv.size());
|
||||||
|
|
||||||
zoneserver_list.SendPacket(zone_id, inst_id, &pack);
|
ZSList::Instance()->SendPacket(zone_id, inst_id, &pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
||||||
@ -301,7 +300,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
|||||||
dz->SetZoneInLocation(buf->x, buf->y, buf->z, buf->heading, false);
|
dz->SetZoneInLocation(buf->x, buf->y, buf->z, buf->heading, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_DzSetSwitchID:
|
case ServerOP_DzSetSwitchID:
|
||||||
@ -311,7 +310,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
|||||||
{
|
{
|
||||||
dz->ProcessSetSwitchID(buf->dz_switch_id);
|
dz->ProcessSetSwitchID(buf->dz_switch_id);
|
||||||
}
|
}
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_DzAddRemoveMember:
|
case ServerOP_DzAddRemoveMember:
|
||||||
@ -322,7 +321,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
|||||||
auto status = static_cast<DynamicZoneMemberStatus>(buf->character_status);
|
auto status = static_cast<DynamicZoneMemberStatus>(buf->character_status);
|
||||||
dz->ProcessMemberAddRemove({ buf->character_id, buf->character_name, status }, buf->removed);
|
dz->ProcessMemberAddRemove({ buf->character_id, buf->character_name, status }, buf->removed);
|
||||||
}
|
}
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_DzSwapMembers:
|
case ServerOP_DzSwapMembers:
|
||||||
@ -335,7 +334,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
|||||||
dz->ProcessMemberAddRemove({ buf->add_character_id, buf->add_character_name, status }, false);
|
dz->ProcessMemberAddRemove({ buf->add_character_id, buf->add_character_name, status }, false);
|
||||||
dz->ProcessMemberAddRemove({ buf->remove_character_id, buf->remove_character_name }, true);
|
dz->ProcessMemberAddRemove({ buf->remove_character_id, buf->remove_character_name }, true);
|
||||||
}
|
}
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_DzRemoveAllMembers:
|
case ServerOP_DzRemoveAllMembers:
|
||||||
@ -345,7 +344,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
|||||||
{
|
{
|
||||||
dz->ProcessRemoveAllMembers();
|
dz->ProcessRemoveAllMembers();
|
||||||
}
|
}
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_DzSetSecondsRemaining:
|
case ServerOP_DzSetSecondsRemaining:
|
||||||
@ -383,7 +382,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
|||||||
auto status = static_cast<DynamicZoneMemberStatus>(buf->status);
|
auto status = static_cast<DynamicZoneMemberStatus>(buf->status);
|
||||||
dz->ProcessMemberStatusChange(buf->character_id, status);
|
dz->ProcessMemberStatusChange(buf->character_id, status);
|
||||||
}
|
}
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_DzMovePC:
|
case ServerOP_DzMovePC:
|
||||||
@ -392,7 +391,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
|||||||
auto dz = DynamicZone::FindDynamicZoneByID(buf->dz_id);
|
auto dz = DynamicZone::FindDynamicZoneByID(buf->dz_id);
|
||||||
if (dz && dz->HasMember(buf->character_id))
|
if (dz && dz->HasMember(buf->character_id))
|
||||||
{
|
{
|
||||||
zoneserver_list.SendPacket(buf->sender_zone_id, buf->sender_instance_id, pack);
|
ZSList::Instance()->SendPacket(buf->sender_zone_id, buf->sender_instance_id, pack);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -403,7 +402,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
|||||||
{
|
{
|
||||||
dz->SetLocked(buf->lock);
|
dz->SetLocked(buf->lock);
|
||||||
}
|
}
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_DzReplayOnJoin:
|
case ServerOP_DzReplayOnJoin:
|
||||||
@ -413,7 +412,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
|||||||
{
|
{
|
||||||
dz->SetReplayOnJoin(buf->enabled);
|
dz->SetReplayOnJoin(buf->enabled);
|
||||||
}
|
}
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_DzLockout:
|
case ServerOP_DzLockout:
|
||||||
@ -424,7 +423,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
|||||||
DzLockout lockout{ dz->GetUUID(), dz->GetName(), buf->event_name, buf->expire_time, buf->duration };
|
DzLockout lockout{ dz->GetUUID(), dz->GetName(), buf->event_name, buf->expire_time, buf->duration };
|
||||||
dz->HandleLockoutUpdate(lockout, buf->remove, buf->members_only);
|
dz->HandleLockoutUpdate(lockout, buf->remove, buf->members_only);
|
||||||
}
|
}
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_DzLockoutDuration:
|
case ServerOP_DzLockoutDuration:
|
||||||
@ -435,7 +434,7 @@ void DynamicZoneManager::HandleZoneMessage(ServerPacket* pack)
|
|||||||
DzLockout lockout{ dz->GetUUID(), dz->GetName(), buf->event_name, buf->expire_time, buf->duration };
|
DzLockout lockout{ dz->GetUUID(), dz->GetName(), buf->event_name, buf->expire_time, buf->duration };
|
||||||
dz->HandleLockoutDuration(lockout, buf->seconds, buf->members_only, false);
|
dz->HandleLockoutDuration(lockout, buf->seconds, buf->members_only, false);
|
||||||
}
|
}
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_DzCharacterLockout:
|
case ServerOP_DzCharacterLockout:
|
||||||
|
|||||||
@ -13,13 +13,12 @@
|
|||||||
#include "ucs.h"
|
#include "ucs.h"
|
||||||
#include "queryserv.h"
|
#include "queryserv.h"
|
||||||
|
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern WorldGuildManager guild_mgr;
|
extern WorldGuildManager guild_mgr;
|
||||||
|
|
||||||
void callGetZoneList(Json::Value &response)
|
void callGetZoneList(Json::Value &response)
|
||||||
{
|
{
|
||||||
for (auto &zone: zoneserver_list.getZoneServerList()) {
|
for (auto &zone: ZSList::Instance()->getZoneServerList()) {
|
||||||
Json::Value row;
|
Json::Value row;
|
||||||
|
|
||||||
if (!zone) {
|
if (!zone) {
|
||||||
@ -139,7 +138,7 @@ void getReloadTypes(Json::Value &response)
|
|||||||
|
|
||||||
void getServerCounts(Json::Value &response, const std::vector<std::string> &args)
|
void getServerCounts(Json::Value &response, const std::vector<std::string> &args)
|
||||||
{
|
{
|
||||||
response["zone_count"] = zoneserver_list.GetServerListCount();
|
response["zone_count"] = ZSList::Instance()->GetServerListCount();
|
||||||
response["client_count"] = ClientList::Instance()->GetClientCount();
|
response["client_count"] = ClientList::Instance()->GetClientCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,7 +164,7 @@ void EQEmuApiWorldDataService::reload(Json::Value &r, const std::vector<std::str
|
|||||||
if (std::to_string(t) == command || Strings::ToLower(ServerReload::GetName(t)) == command) {
|
if (std::to_string(t) == command || Strings::ToLower(ServerReload::GetName(t)) == command) {
|
||||||
message(r, fmt::format("Reloading [{}] globally", ServerReload::GetName(t)));
|
message(r, fmt::format("Reloading [{}] globally", ServerReload::GetName(t)));
|
||||||
LogInfo("Queueing reload of type [{}] to zones", ServerReload::GetName(t));
|
LogInfo("Queueing reload of type [{}] to zones", ServerReload::GetName(t));
|
||||||
zoneserver_list.QueueServerReload(t);
|
ZSList::Instance()->QueueServerReload(t);
|
||||||
}
|
}
|
||||||
found_command = true;
|
found_command = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,7 +45,6 @@
|
|||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern uint32 numzones;
|
extern uint32 numzones;
|
||||||
extern LauncherList launcher_list;
|
extern LauncherList launcher_list;
|
||||||
@ -107,7 +106,7 @@ bool EQW::LSConnected() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int EQW::CountZones() {
|
int EQW::CountZones() {
|
||||||
return(zoneserver_list.GetZoneCount());
|
return(ZSList::Instance()->GetZoneCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
//returns an array of zone_refs (opaque)
|
//returns an array of zone_refs (opaque)
|
||||||
@ -115,7 +114,7 @@ std::vector<std::string> EQW::ListBootedZones() {
|
|||||||
std::vector<std::string> res;
|
std::vector<std::string> res;
|
||||||
|
|
||||||
std::vector<uint32> zones;
|
std::vector<uint32> zones;
|
||||||
zoneserver_list.GetZoneIDList(zones);
|
ZSList::Instance()->GetZoneIDList(zones);
|
||||||
|
|
||||||
std::vector<uint32>::iterator cur, end;
|
std::vector<uint32>::iterator cur, end;
|
||||||
cur = zones.begin();
|
cur = zones.begin();
|
||||||
@ -130,7 +129,7 @@ std::vector<std::string> EQW::ListBootedZones() {
|
|||||||
std::map<std::string,std::string> EQW::GetZoneDetails(Const_char *zone_ref) {
|
std::map<std::string,std::string> EQW::GetZoneDetails(Const_char *zone_ref) {
|
||||||
std::map<std::string,std::string> res;
|
std::map<std::string,std::string> res;
|
||||||
|
|
||||||
ZoneServer *zs = zoneserver_list.FindByID(Strings::ToInt(zone_ref));
|
ZoneServer *zs = ZSList::Instance()->FindByID(Strings::ToInt(zone_ref));
|
||||||
if(zs == nullptr) {
|
if(zs == nullptr) {
|
||||||
res["error"] = "Invalid zone.";
|
res["error"] = "Invalid zone.";
|
||||||
return(res);
|
return(res);
|
||||||
@ -360,7 +359,7 @@ void EQW::ResolveBug(const char *id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EQW::SendMessage(uint32 type, const char *msg) {
|
void EQW::SendMessage(uint32 type, const char *msg) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -370,7 +369,7 @@ void EQW::SendMessage(uint32 type, const char *msg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EQW::WorldShutDown(uint32 time, uint32 interval) {
|
void EQW::WorldShutDown(uint32 time, uint32 interval) {
|
||||||
zoneserver_list.WorldShutDown(time, interval);
|
ZSList::Instance()->WorldShutDown(time, interval);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif //EMBPERL
|
#endif //EMBPERL
|
||||||
|
|||||||
@ -26,7 +26,6 @@
|
|||||||
#include "../common/classes.h"
|
#include "../common/classes.h"
|
||||||
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
|
|
||||||
GroupLFP::GroupLFP(uint32 inLeaderID) {
|
GroupLFP::GroupLFP(uint32 inLeaderID) {
|
||||||
|
|
||||||
@ -270,7 +269,7 @@ void GroupLFPList::SendLFPMatches(ServerLFPMatchesRequest_Struct* smrs) {
|
|||||||
CLE->Server()->SendPacket(Pack);
|
CLE->Server()->SendPacket(Pack);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ZoneServer* zs = zoneserver_list.FindByName(smrs->FromName);
|
ZoneServer* zs = ZSList::Instance()->FindByName(smrs->FromName);
|
||||||
if (zs != nullptr)
|
if (zs != nullptr)
|
||||||
zs->SendPacket(Pack);
|
zs->SendPacket(Pack);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,6 @@
|
|||||||
#include "cliententry.h"
|
#include "cliententry.h"
|
||||||
#include "world_config.h"
|
#include "world_config.h"
|
||||||
|
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern uint32 numzones;
|
extern uint32 numzones;
|
||||||
extern uint32 numplayers;
|
extern uint32 numplayers;
|
||||||
@ -312,7 +311,7 @@ void LoginServer::ProcessSystemwideMessage(uint16_t opcode, EQ::Net::Packet &p)
|
|||||||
LogNetcode("Received ServerPacket from LS OpCode {:#04x}", opcode);
|
LogNetcode("Received ServerPacket from LS OpCode {:#04x}", opcode);
|
||||||
|
|
||||||
ServerSystemwideMessage *swm = (ServerSystemwideMessage *) p.Data();
|
ServerSystemwideMessage *swm = (ServerSystemwideMessage *) p.Data();
|
||||||
zoneserver_list.SendEmoteMessageRaw(
|
ZSList::Instance()->SendEmoteMessageRaw(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -376,7 +375,7 @@ bool LoginServer::Connect()
|
|||||||
|
|
||||||
SendInfo();
|
SendInfo();
|
||||||
SendStatus();
|
SendStatus();
|
||||||
zoneserver_list.SendLSZones();
|
ZSList::Instance()->SendLSZones();
|
||||||
|
|
||||||
m_statusupdate_timer = std::make_unique<EQ::Timer>(
|
m_statusupdate_timer = std::make_unique<EQ::Timer>(
|
||||||
LoginServer_StatusUpdateInterval, true, [this](EQ::Timer *t) {
|
LoginServer_StatusUpdateInterval, true, [this](EQ::Timer *t) {
|
||||||
@ -485,7 +484,7 @@ bool LoginServer::Connect()
|
|||||||
);
|
);
|
||||||
SendInfo();
|
SendInfo();
|
||||||
SendStatus();
|
SendStatus();
|
||||||
zoneserver_list.SendLSZones();
|
ZSList::Instance()->SendLSZones();
|
||||||
|
|
||||||
m_statusupdate_timer = std::make_unique<EQ::Timer>(
|
m_statusupdate_timer = std::make_unique<EQ::Timer>(
|
||||||
LoginServer_StatusUpdateInterval, true, [this](EQ::Timer *t) {
|
LoginServer_StatusUpdateInterval, true, [this](EQ::Timer *t) {
|
||||||
|
|||||||
@ -36,7 +36,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|||||||
#include "clientlist.h"
|
#include "clientlist.h"
|
||||||
#include "world_config.h"
|
#include "world_config.h"
|
||||||
|
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern uint32 numzones;
|
extern uint32 numzones;
|
||||||
extern uint32 numplayers;
|
extern uint32 numplayers;
|
||||||
|
|||||||
@ -93,7 +93,6 @@
|
|||||||
|
|
||||||
ClientList client_list;
|
ClientList client_list;
|
||||||
GroupLFPList LFPGroupList;
|
GroupLFPList LFPGroupList;
|
||||||
ZSList zoneserver_list;
|
|
||||||
LauncherList launcher_list;
|
LauncherList launcher_list;
|
||||||
volatile bool RunLoops = true;
|
volatile bool RunLoops = true;
|
||||||
uint32 numclients = 0;
|
uint32 numclients = 0;
|
||||||
@ -173,7 +172,7 @@ int main(int argc, char **argv)
|
|||||||
// global loads
|
// global loads
|
||||||
LogInfo("Loading launcher list");
|
LogInfo("Loading launcher list");
|
||||||
launcher_list.LoadList();
|
launcher_list.LoadList();
|
||||||
zoneserver_list.Init();
|
ZSList::Instance()->Init();
|
||||||
|
|
||||||
if (IpUtil::IsPortInUse(Config->WorldIP, Config->WorldTCPPort)) {
|
if (IpUtil::IsPortInUse(Config->WorldIP, Config->WorldTCPPort)) {
|
||||||
LogError("World port [{}] already in use", Config->WorldTCPPort);
|
LogError("World port [{}] already in use", Config->WorldTCPPort);
|
||||||
@ -207,7 +206,7 @@ int main(int argc, char **argv)
|
|||||||
server_connection->OnConnectionIdentified(
|
server_connection->OnConnectionIdentified(
|
||||||
"Zone", [&console](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
"Zone", [&console](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
||||||
numzones++;
|
numzones++;
|
||||||
zoneserver_list.Add(new ZoneServer(connection, console.get()));
|
ZSList::Instance()->Add(new ZoneServer(connection, console.get()));
|
||||||
|
|
||||||
LogInfo(
|
LogInfo(
|
||||||
"New Zone Server connection from [{}] at [{}:{}] zone_count [{}]",
|
"New Zone Server connection from [{}] at [{}:{}] zone_count [{}]",
|
||||||
@ -222,7 +221,7 @@ int main(int argc, char **argv)
|
|||||||
server_connection->OnConnectionRemoved(
|
server_connection->OnConnectionRemoved(
|
||||||
"Zone", [](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
"Zone", [](std::shared_ptr<EQ::Net::ServertalkServerConnection> connection) {
|
||||||
numzones--;
|
numzones--;
|
||||||
zoneserver_list.Remove(connection->GetUUID());
|
ZSList::Instance()->Remove(connection->GetUUID());
|
||||||
|
|
||||||
LogInfo(
|
LogInfo(
|
||||||
"Removed Zone Server connection from [{}] total zone_count [{}]",
|
"Removed Zone Server connection from [{}] total zone_count [{}]",
|
||||||
@ -290,7 +289,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
UCSConnection::Instance()->SetConnection(connection);
|
UCSConnection::Instance()->SetConnection(connection);
|
||||||
|
|
||||||
zoneserver_list.UpdateUCSServerAvailable();
|
ZSList::Instance()->UpdateUCSServerAvailable();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -303,7 +302,7 @@ int main(int argc, char **argv)
|
|||||||
if (ucs_connection->GetUUID() == connection->GetUUID()) {
|
if (ucs_connection->GetUUID() == connection->GetUUID()) {
|
||||||
LogInfo("Removing currently active UCS connection");
|
LogInfo("Removing currently active UCS connection");
|
||||||
UCSConnection::Instance()->SetConnection(nullptr);
|
UCSConnection::Instance()->SetConnection(nullptr);
|
||||||
zoneserver_list.UpdateUCSServerAvailable(false);
|
ZSList::Instance()->UpdateUCSServerAvailable(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -346,10 +345,10 @@ int main(int argc, char **argv)
|
|||||||
//register all the patches we have avaliable with the stream identifier.
|
//register all the patches we have avaliable with the stream identifier.
|
||||||
EQStreamIdentifier stream_identifier;
|
EQStreamIdentifier stream_identifier;
|
||||||
RegisterAllPatches(stream_identifier);
|
RegisterAllPatches(stream_identifier);
|
||||||
zoneserver_list.shutdowntimer = new Timer(60000);
|
ZSList::Instance()->shutdowntimer = new Timer(60000);
|
||||||
zoneserver_list.shutdowntimer->Disable();
|
ZSList::Instance()->shutdowntimer->Disable();
|
||||||
zoneserver_list.reminder = new Timer(20000);
|
ZSList::Instance()->reminder = new Timer(20000);
|
||||||
zoneserver_list.reminder->Disable();
|
ZSList::Instance()->reminder->Disable();
|
||||||
Timer InterserverTimer(INTERSERVER_TIMER); // does MySQL pings and auto-reconnect
|
Timer InterserverTimer(INTERSERVER_TIMER); // does MySQL pings and auto-reconnect
|
||||||
InterserverTimer.Trigger();
|
InterserverTimer.Trigger();
|
||||||
uint8 ReconnectCounter = 100;
|
uint8 ReconnectCounter = 100;
|
||||||
@ -414,7 +413,7 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WorldEventScheduler::Instance()->Process(&zoneserver_list);
|
WorldEventScheduler::Instance()->Process(ZSList::Instance());
|
||||||
|
|
||||||
client_list.Process();
|
client_list.Process();
|
||||||
guild_mgr.Process();
|
guild_mgr.Process();
|
||||||
@ -427,7 +426,7 @@ int main(int argc, char **argv)
|
|||||||
);
|
);
|
||||||
|
|
||||||
auto out = std::make_unique<ServerPacket>(ServerOP_ParcelPrune);
|
auto out = std::make_unique<ServerPacket>(ServerOP_ParcelPrune);
|
||||||
zoneserver_list.SendPacketToBootedZones(out.get());
|
ZSList::Instance()->SendPacketToBootedZones(out.get());
|
||||||
|
|
||||||
database.PurgeCharacterParcels();
|
database.PurgeCharacterParcels();
|
||||||
}
|
}
|
||||||
@ -442,7 +441,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
if (EQTimeTimer.Check()) {
|
if (EQTimeTimer.Check()) {
|
||||||
TimeOfDay_Struct tod{};
|
TimeOfDay_Struct tod{};
|
||||||
zoneserver_list.worldclock.GetCurrentEQTimeOfDay(time(nullptr), &tod);
|
ZSList::Instance()->worldclock.GetCurrentEQTimeOfDay(time(nullptr), &tod);
|
||||||
if (!database.SaveTime(tod.minute, tod.hour, tod.day, tod.month, tod.year)) {
|
if (!database.SaveTime(tod.minute, tod.hour, tod.day, tod.month, tod.year)) {
|
||||||
LogEqTime("Failed to save eqtime");
|
LogEqTime("Failed to save eqtime");
|
||||||
}
|
}
|
||||||
@ -457,7 +456,7 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.Process();
|
ZSList::Instance()->Process();
|
||||||
launcher_list.Process();
|
launcher_list.Process();
|
||||||
LFPGroupList.Process();
|
LFPGroupList.Process();
|
||||||
AdventureManager::Instance()->Process();
|
AdventureManager::Instance()->Process();
|
||||||
@ -491,7 +490,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
LogInfo("World main loop completed");
|
LogInfo("World main loop completed");
|
||||||
LogInfo("Shutting down zone connections (if any)");
|
LogInfo("Shutting down zone connections (if any)");
|
||||||
zoneserver_list.KillAll();
|
ZSList::Instance()->KillAll();
|
||||||
LogInfo("Zone (TCP) listener stopped");
|
LogInfo("Zone (TCP) listener stopped");
|
||||||
LogInfo("Signaling HTTP service to stop");
|
LogInfo("Signaling HTTP service to stop");
|
||||||
EQEmuLogSys::Instance()->CloseFileLogs();
|
EQEmuLogSys::Instance()->CloseFileLogs();
|
||||||
|
|||||||
@ -10,7 +10,6 @@
|
|||||||
#include "../common/packet_dump.h"
|
#include "../common/packet_dump.h"
|
||||||
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
|
|
||||||
QueryServConnection::QueryServConnection()
|
QueryServConnection::QueryServConnection()
|
||||||
{
|
{
|
||||||
@ -36,12 +35,12 @@ void QueryServConnection::HandleGenericMessage(uint16_t opcode, EQ::Net::Packet
|
|||||||
uint32 ZoneID = p.GetUInt32(0);
|
uint32 ZoneID = p.GetUInt32(0);
|
||||||
uint16 InstanceID = p.GetUInt32(4);
|
uint16 InstanceID = p.GetUInt32(4);
|
||||||
ServerPacket pack(opcode, p);
|
ServerPacket pack(opcode, p);
|
||||||
zoneserver_list.SendPacket(ZoneID, InstanceID, &pack);
|
ZSList::Instance()->SendPacket(ZoneID, InstanceID, &pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QueryServConnection::HandleLFGuildUpdateMessage(uint16_t opcode, EQ::Net::Packet &p) {
|
void QueryServConnection::HandleLFGuildUpdateMessage(uint16_t opcode, EQ::Net::Packet &p) {
|
||||||
ServerPacket pack(opcode, p);
|
ServerPacket pack(opcode, p);
|
||||||
zoneserver_list.SendPacket(&pack);
|
ZSList::Instance()->SendPacket(&pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QueryServConnection::SendPacket(ServerPacket* pack)
|
bool QueryServConnection::SendPacket(ServerPacket* pack)
|
||||||
|
|||||||
@ -18,7 +18,6 @@
|
|||||||
#include <ctime>
|
#include <ctime>
|
||||||
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
|
|
||||||
SharedTaskManager::SharedTaskManager()
|
SharedTaskManager::SharedTaskManager()
|
||||||
: m_process_timer{ static_cast<uint32_t>(RuleI(TaskSystem, SharedTasksWorldProcessRate)) }
|
: m_process_timer{ static_cast<uint32_t>(RuleI(TaskSystem, SharedTasksWorldProcessRate)) }
|
||||||
|
|||||||
@ -15,7 +15,6 @@
|
|||||||
#include "dynamic_zone.h"
|
#include "dynamic_zone.h"
|
||||||
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
|
|
||||||
void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack)
|
void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack)
|
||||||
{
|
{
|
||||||
@ -297,7 +296,7 @@ void SharedTaskWorldMessaging::HandleZoneMessage(ServerPacket *pack)
|
|||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
||||||
zoneserver_list.SendPacket(p.get());
|
ZSList::Instance()->SendPacket(p.get());
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,6 @@
|
|||||||
#include "launcher_list.h"
|
#include "launcher_list.h"
|
||||||
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
extern LauncherList launcher_list;
|
extern LauncherList launcher_list;
|
||||||
|
|
||||||
void EQW__GetConfig(WebInterface *i, const std::string& method, const std::string& id, const Json::Value& params) {
|
void EQW__GetConfig(WebInterface *i, const std::string& method, const std::string& id, const Json::Value& params) {
|
||||||
@ -58,7 +57,7 @@ void EQW__GetPlayerCount(WebInterface *i, const std::string& method, const std::
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EQW__GetZoneCount(WebInterface *i, const std::string& method, const std::string& id, const Json::Value& params) {
|
void EQW__GetZoneCount(WebInterface *i, const std::string& method, const std::string& id, const Json::Value& params) {
|
||||||
Json::Value ret = zoneserver_list.GetZoneCount();
|
Json::Value ret = ZSList::Instance()->GetZoneCount();
|
||||||
i->SendResponse(id, ret);
|
i->SendResponse(id, ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,6 @@
|
|||||||
|
|
||||||
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
std::map<uint32, TributeData> tribute_list;
|
std::map<uint32, TributeData> tribute_list;
|
||||||
|
|
||||||
WorldGuildManager guild_mgr;
|
WorldGuildManager guild_mgr;
|
||||||
@ -50,7 +49,7 @@ void WorldGuildManager::SendGuildRefresh(uint32 guild_id, bool name, bool motd,
|
|||||||
s->motd_change = motd;
|
s->motd_change = motd;
|
||||||
s->rank_change = rank;
|
s->rank_change = rank;
|
||||||
s->relation_change = relation;
|
s->relation_change = relation;
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(guild_id, pack);
|
ZSList::Instance()->SendPacketToZonesWithGuild(guild_id, pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,7 +60,7 @@ void WorldGuildManager::SendCharRefresh(uint32 old_guild_id, uint32 guild_id, ui
|
|||||||
s->guild_id = guild_id;
|
s->guild_id = guild_id;
|
||||||
s->old_guild_id = old_guild_id;
|
s->old_guild_id = old_guild_id;
|
||||||
s->char_id = charid;
|
s->char_id = charid;
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(guild_id, pack);
|
ZSList::Instance()->SendPacketToZonesWithGuild(guild_id, pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,7 +69,7 @@ void WorldGuildManager::SendGuildDelete(uint32 guild_id) {
|
|||||||
auto pack = new ServerPacket(ServerOP_DeleteGuild, sizeof(ServerGuildID_Struct));
|
auto pack = new ServerPacket(ServerOP_DeleteGuild, sizeof(ServerGuildID_Struct));
|
||||||
ServerGuildID_Struct *s = (ServerGuildID_Struct *) pack->pBuffer;
|
ServerGuildID_Struct *s = (ServerGuildID_Struct *) pack->pBuffer;
|
||||||
s->guild_id = guild_id;
|
s->guild_id = guild_id;
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(guild_id, pack);
|
ZSList::Instance()->SendPacketToZonesWithGuild(guild_id, pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,7 +90,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//broadcast this packet to all zones.
|
//broadcast this packet to all zones.
|
||||||
zoneserver_list.SendPacketToBootedZones(pack);
|
ZSList::Instance()->SendPacketToBootedZones(pack);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -107,7 +106,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
|||||||
|
|
||||||
//broadcast this update to any zone with a member in this guild.
|
//broadcast this update to any zone with a member in this guild.
|
||||||
//because im sick of this not working, sending it to all zones, just spends a bit more bandwidth.
|
//because im sick of this not working, sending it to all zones, just spends a bit more bandwidth.
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(s->guild_id, pack);
|
ZSList::Instance()->SendPacketToZonesWithGuild(s->guild_id, pack);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -130,7 +129,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
|||||||
LogGuilds("Received and broadcasting guild delete for guild [{}]", s->guild_id);
|
LogGuilds("Received and broadcasting guild delete for guild [{}]", s->guild_id);
|
||||||
|
|
||||||
//broadcast this packet to all zones.
|
//broadcast this packet to all zones.
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -146,7 +145,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
|||||||
auto s = (ServerGuildID_Struct *)pack->pBuffer;
|
auto s = (ServerGuildID_Struct *)pack->pBuffer;
|
||||||
RefreshGuild(s->guild_id);
|
RefreshGuild(s->guild_id);
|
||||||
|
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(s->guild_id, pack);
|
ZSList::Instance()->SendPacketToZonesWithGuild(s->guild_id, pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_GuildPermissionUpdate:
|
case ServerOP_GuildPermissionUpdate:
|
||||||
@ -178,7 +177,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
|||||||
sg->function_value
|
sg->function_value
|
||||||
);
|
);
|
||||||
|
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(sg->guild_id, pack);
|
ZSList::Instance()->SendPacketToZonesWithGuild(sg->guild_id, pack);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
LogError("World Received ServerOP_GuildPermissionUpdate for guild [{}] function id {} with value of {} but guild could not be found.",
|
LogError("World Received ServerOP_GuildPermissionUpdate for guild [{}] function id {} with value of {} but guild could not be found.",
|
||||||
@ -212,7 +211,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
|||||||
rnc->rank,
|
rnc->rank,
|
||||||
rnc->rank_name
|
rnc->rank_name
|
||||||
);
|
);
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(rnc->guild_id, pack);
|
ZSList::Instance()->SendPacketToZonesWithGuild(rnc->guild_id, pack);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
LogError("World Received ServerOP_GuildRankNameChange from zone for guild [{}] rank id {} with new name of {} but could not find guild.",
|
LogError("World Received ServerOP_GuildRankNameChange from zone for guild [{}] rank id {} with new name of {} but could not find guild.",
|
||||||
@ -232,7 +231,7 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
|||||||
case ServerOP_GuildMembersList:
|
case ServerOP_GuildMembersList:
|
||||||
{
|
{
|
||||||
auto in = (ServerOP_GuildMessage_Struct *) pack->pBuffer;
|
auto in = (ServerOP_GuildMessage_Struct *) pack->pBuffer;
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(in->guild_id, pack);
|
ZSList::Instance()->SendPacketToZonesWithGuild(in->guild_id, pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_GuildMemberAdd:
|
case ServerOP_GuildMemberAdd:
|
||||||
@ -243,12 +242,12 @@ void WorldGuildManager::ProcessZonePacket(ServerPacket *pack) {
|
|||||||
BaseGuildManager::RefreshGuild(in->guild_id);
|
BaseGuildManager::RefreshGuild(in->guild_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(in->guild_id, pack);
|
ZSList::Instance()->SendPacketToZonesWithGuild(in->guild_id, pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_GuildSendGuildList: {
|
case ServerOP_GuildSendGuildList: {
|
||||||
auto in = (ServerOP_GuildMessage_Struct *) pack->pBuffer;
|
auto in = (ServerOP_GuildMessage_Struct *) pack->pBuffer;
|
||||||
zoneserver_list.SendPacketToBootedZones(pack);
|
ZSList::Instance()->SendPacketToBootedZones(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,6 +455,6 @@ void WorldGuildManager::SendGuildTributeFavorAndTimer(uint32 guild_id, uint32 fa
|
|||||||
data->tribute_timer = time;
|
data->tribute_timer = time;
|
||||||
data->trophy_timer = 0;
|
data->trophy_timer = 0;
|
||||||
|
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(guild_id, sp);
|
ZSList::Instance()->SendPacketToZonesWithGuild(guild_id, sp);
|
||||||
safe_delete(sp)
|
safe_delete(sp)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,7 +29,6 @@
|
|||||||
#include "../common/database/database_update.h"
|
#include "../common/database/database_update.h"
|
||||||
#include "../common/repositories/zone_state_spawns_repository.h"
|
#include "../common/repositories/zone_state_spawns_repository.h"
|
||||||
|
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
extern WorldConfig Config;
|
extern WorldConfig Config;
|
||||||
|
|
||||||
auto mutex = new Mutex;
|
auto mutex = new Mutex;
|
||||||
@ -53,7 +52,7 @@ void WorldBoot::GMSayHookCallBackProcessWorld(uint16 log_category, const char *f
|
|||||||
auto message_split = Strings::Split(message, '\n');
|
auto message_split = Strings::Split(message, '\n');
|
||||||
|
|
||||||
for (size_t iter = 0; iter < message_split.size(); ++iter) {
|
for (size_t iter = 0; iter < message_split.size(); ++iter) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
AccountStatus::QuestTroupe,
|
AccountStatus::QuestTroupe,
|
||||||
@ -69,7 +68,7 @@ void WorldBoot::GMSayHookCallBackProcessWorld(uint16 log_category, const char *f
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
AccountStatus::QuestTroupe,
|
AccountStatus::QuestTroupe,
|
||||||
@ -351,7 +350,7 @@ bool WorldBoot::DatabaseLoadRoutines(int argc, char **argv)
|
|||||||
TimeOfDay_Struct eqTime{};
|
TimeOfDay_Struct eqTime{};
|
||||||
time_t realtime;
|
time_t realtime;
|
||||||
eqTime = database.LoadTime(realtime);
|
eqTime = database.LoadTime(realtime);
|
||||||
zoneserver_list.worldclock.SetCurrentEQTimeOfDay(eqTime, realtime);
|
ZSList::Instance()->worldclock.SetCurrentEQTimeOfDay(eqTime, realtime);
|
||||||
|
|
||||||
LogInfo("Deleted [{}] stale player corpses from database", database.DeleteStalePlayerCorpses());
|
LogInfo("Deleted [{}] stale player corpses from database", database.DeleteStalePlayerCorpses());
|
||||||
|
|
||||||
|
|||||||
@ -79,6 +79,13 @@ public:
|
|||||||
std::vector<ServerReload::Type> m_queued_reloads = {};
|
std::vector<ServerReload::Type> m_queued_reloads = {};
|
||||||
|
|
||||||
void QueueServerReload(ServerReload::Type &type);
|
void QueueServerReload(ServerReload::Type &type);
|
||||||
|
|
||||||
|
static ZSList* Instance()
|
||||||
|
{
|
||||||
|
static ZSList instance;
|
||||||
|
return &instance;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void OnTick(EQ::Timer *t);
|
void OnTick(EQ::Timer *t);
|
||||||
uint32 NextID;
|
uint32 NextID;
|
||||||
|
|||||||
@ -54,7 +54,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|||||||
|
|
||||||
extern ClientList client_list;
|
extern ClientList client_list;
|
||||||
extern GroupLFPList LFPGroupList;
|
extern GroupLFPList LFPGroupList;
|
||||||
extern ZSList zoneserver_list;
|
|
||||||
extern volatile bool RunLoops;
|
extern volatile bool RunLoops;
|
||||||
extern volatile bool UCSServerAvailable_;
|
extern volatile bool UCSServerAvailable_;
|
||||||
|
|
||||||
@ -69,7 +68,7 @@ ZoneServer::ZoneServer(std::shared_ptr<EQ::Net::ServertalkServerConnection> in_c
|
|||||||
memset(client_address, 0, sizeof(client_address));
|
memset(client_address, 0, sizeof(client_address));
|
||||||
memset(client_local_address, 0, sizeof(client_local_address));
|
memset(client_local_address, 0, sizeof(client_local_address));
|
||||||
|
|
||||||
zone_server_id = zoneserver_list.GetNextID();
|
zone_server_id = ZSList::Instance()->GetNextID();
|
||||||
zone_server_zone_id = 0;
|
zone_server_zone_id = 0;
|
||||||
instance_id = 0;
|
instance_id = 0;
|
||||||
zone_os_process_id = 0;
|
zone_os_process_id = 0;
|
||||||
@ -242,7 +241,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_GroupJoin: {
|
case ServerOP_GroupJoin: {
|
||||||
@ -250,7 +249,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_ForceGroupUpdate: {
|
case ServerOP_ForceGroupUpdate: {
|
||||||
@ -258,7 +257,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_DisbandGroup: {
|
case ServerOP_DisbandGroup: {
|
||||||
@ -266,7 +265,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RaidAdd: {
|
case ServerOP_RaidAdd: {
|
||||||
@ -274,7 +273,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RaidRemove: {
|
case ServerOP_RaidRemove: {
|
||||||
@ -282,7 +281,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RaidDisband: {
|
case ServerOP_RaidDisband: {
|
||||||
@ -290,7 +289,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RaidLockFlag: {
|
case ServerOP_RaidLockFlag: {
|
||||||
@ -298,7 +297,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RaidChangeGroup: {
|
case ServerOP_RaidChangeGroup: {
|
||||||
@ -306,7 +305,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_UpdateGroup: {
|
case ServerOP_UpdateGroup: {
|
||||||
@ -314,7 +313,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RaidGroupDisband: {
|
case ServerOP_RaidGroupDisband: {
|
||||||
@ -322,7 +321,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RaidGroupAdd: {
|
case ServerOP_RaidGroupAdd: {
|
||||||
@ -330,7 +329,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RaidGroupRemove: {
|
case ServerOP_RaidGroupRemove: {
|
||||||
@ -338,7 +337,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RaidGroupLeader: {
|
case ServerOP_RaidGroupLeader: {
|
||||||
@ -346,7 +345,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RaidLeader: {
|
case ServerOP_RaidLeader: {
|
||||||
@ -354,7 +353,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_PlayerEvent: {
|
case ServerOP_PlayerEvent: {
|
||||||
@ -386,7 +385,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RaidMOTD: {
|
case ServerOP_RaidMOTD: {
|
||||||
@ -394,7 +393,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RaidNote: {
|
case ServerOP_RaidNote: {
|
||||||
@ -402,7 +401,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_SpawnCondition: {
|
case ServerOP_SpawnCondition: {
|
||||||
@ -411,7 +410,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto ssc = (ServerSpawnCondition_Struct*) pack->pBuffer;
|
auto ssc = (ServerSpawnCondition_Struct*) pack->pBuffer;
|
||||||
zoneserver_list.SendPacket(ssc->zoneID, ssc->instanceID, pack);
|
ZSList::Instance()->SendPacket(ssc->zoneID, ssc->instanceID, pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_SpawnEvent: {
|
case ServerOP_SpawnEvent: {
|
||||||
@ -420,7 +419,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto sse = (ServerSpawnEvent_Struct*) pack->pBuffer;
|
auto sse = (ServerSpawnEvent_Struct*) pack->pBuffer;
|
||||||
zoneserver_list.SendPacket(sse->zoneID, 0, pack);
|
ZSList::Instance()->SendPacket(sse->zoneID, 0, pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_ChannelMessage: {
|
case ServerOP_ChannelMessage: {
|
||||||
@ -456,7 +455,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
) &&
|
) &&
|
||||||
!scm->noreply
|
!scm->noreply
|
||||||
) {
|
) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
scm->from,
|
scm->from,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -530,7 +529,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
}
|
}
|
||||||
} else if (!cle->Server()) {
|
} else if (!cle->Server()) {
|
||||||
if (!scm->noreply)
|
if (!scm->noreply)
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
scm->from,
|
scm->from,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -568,11 +567,11 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (scm->guilddbid > 0) {
|
if (scm->guilddbid > 0) {
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(scm->guilddbid, pack);
|
ZSList::Instance()->SendPacketToZonesWithGuild(scm->guilddbid, pack);
|
||||||
} else if (scm->chan_num == ChatChannel_GMSAY) {
|
} else if (scm->chan_num == ChatChannel_GMSAY) {
|
||||||
zoneserver_list.SendPacketToZonesWithGMs(pack);
|
ZSList::Instance()->SendPacketToZonesWithGMs(pack);
|
||||||
} else {
|
} else {
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -580,7 +579,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
}
|
}
|
||||||
case ServerOP_EmoteMessage: {
|
case ServerOP_EmoteMessage: {
|
||||||
auto sem = (ServerEmoteMessage_Struct*) pack->pBuffer;
|
auto sem = (ServerEmoteMessage_Struct*) pack->pBuffer;
|
||||||
zoneserver_list.SendEmoteMessageRaw(
|
ZSList::Instance()->SendEmoteMessageRaw(
|
||||||
sem->to,
|
sem->to,
|
||||||
sem->guilddbid,
|
sem->guilddbid,
|
||||||
sem->minstatus,
|
sem->minstatus,
|
||||||
@ -598,7 +597,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
cle->Online() < CLE_Status::Zoning ||
|
cle->Online() < CLE_Status::Zoning ||
|
||||||
!cle->Server()
|
!cle->Server()
|
||||||
) {
|
) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
svm->From,
|
svm->From,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -612,14 +611,14 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
}
|
}
|
||||||
cle->Server()->SendPacket(pack);
|
cle->Server()->SendPacket(pack);
|
||||||
} else {
|
} else {
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RezzPlayer: {
|
case ServerOP_RezzPlayer: {
|
||||||
auto rps = (RezzPlayer_Struct*) pack->pBuffer;
|
auto rps = (RezzPlayer_Struct*) pack->pBuffer;
|
||||||
if (zoneserver_list.SendPacket(pack)) {
|
if (ZSList::Instance()->SendPacket(pack)) {
|
||||||
LogInfo("Sent Rez packet for [{}]", rps->rez.your_name);
|
LogInfo("Sent Rez packet for [{}]", rps->rez.your_name);
|
||||||
} else {
|
} else {
|
||||||
LogInfo("Could not send Rez packet for [{}]", rps->rez.your_name);
|
LogInfo("Could not send Rez packet for [{}]", rps->rez.your_name);
|
||||||
@ -663,7 +662,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
auto sci = (ServerConnectInfo*) pack->pBuffer;
|
auto sci = (ServerConnectInfo*) pack->pBuffer;
|
||||||
|
|
||||||
if (!sci->port) {
|
if (!sci->port) {
|
||||||
client_port = zoneserver_list.GetAvailableZonePort();
|
client_port = ZSList::Instance()->GetAvailableZonePort();
|
||||||
|
|
||||||
ServerPacket p(ServerOP_SetConnectInfo, sizeof(ServerConnectInfo));
|
ServerPacket p(ServerOP_SetConnectInfo, sizeof(ServerConnectInfo));
|
||||||
memset(p.pBuffer, 0, sizeof(ServerConnectInfo));
|
memset(p.pBuffer, 0, sizeof(ServerConnectInfo));
|
||||||
@ -705,20 +704,20 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
}
|
}
|
||||||
case ServerOP_ShutdownAll: {
|
case ServerOP_ShutdownAll: {
|
||||||
if (!pack->size) {
|
if (!pack->size) {
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
zoneserver_list.Process();
|
ZSList::Instance()->Process();
|
||||||
CatchSignal(2);
|
CatchSignal(2);
|
||||||
} else {
|
} else {
|
||||||
auto wsd = (WorldShutDown_Struct*) pack->pBuffer;
|
auto wsd = (WorldShutDown_Struct*) pack->pBuffer;
|
||||||
if (!wsd->time && !wsd->interval && zoneserver_list.shutdowntimer->Enabled()) {
|
if (!wsd->time && !wsd->interval && ZSList::Instance()->shutdowntimer->Enabled()) {
|
||||||
zoneserver_list.shutdowntimer->Disable();
|
ZSList::Instance()->shutdowntimer->Disable();
|
||||||
zoneserver_list.reminder->Disable();
|
ZSList::Instance()->reminder->Disable();
|
||||||
} else {
|
} else {
|
||||||
zoneserver_list.shutdowntimer->SetTimer(wsd->time);
|
ZSList::Instance()->shutdowntimer->SetTimer(wsd->time);
|
||||||
zoneserver_list.reminder->SetTimer(wsd->interval - 1000);
|
ZSList::Instance()->reminder->SetTimer(wsd->interval - 1000);
|
||||||
zoneserver_list.reminder->SetAtTrigger(wsd->interval);
|
ZSList::Instance()->reminder->SetAtTrigger(wsd->interval);
|
||||||
zoneserver_list.shutdowntimer->Start();
|
ZSList::Instance()->shutdowntimer->Start();
|
||||||
zoneserver_list.reminder->Start();
|
ZSList::Instance()->reminder->Start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -728,13 +727,13 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
auto *s = (ServerZoneStateChange_Struct*) pack->pBuffer;
|
auto *s = (ServerZoneStateChange_Struct*) pack->pBuffer;
|
||||||
ZoneServer* zs = 0;
|
ZoneServer* zs = 0;
|
||||||
if (s->zone_server_id) {
|
if (s->zone_server_id) {
|
||||||
zs = zoneserver_list.FindByID(s->zone_server_id);
|
zs = ZSList::Instance()->FindByID(s->zone_server_id);
|
||||||
} else if (s->zone_id) {
|
} else if (s->zone_id) {
|
||||||
zs = zoneserver_list.FindByName(ZoneName(s->zone_id));
|
zs = ZSList::Instance()->FindByName(ZoneName(s->zone_id));
|
||||||
} else if (s->instance_id) {
|
} else if (s->instance_id) {
|
||||||
zs = zoneserver_list.FindByInstanceID(s->instance_id);
|
zs = ZSList::Instance()->FindByInstanceID(s->instance_id);
|
||||||
} else {
|
} else {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
s->admin_name,
|
s->admin_name,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -744,7 +743,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!zs) {
|
if (!zs) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
s->admin_name,
|
s->admin_name,
|
||||||
0,
|
0,
|
||||||
AccountStatus::Player,
|
AccountStatus::Player,
|
||||||
@ -759,13 +758,13 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
}
|
}
|
||||||
case ServerOP_ZoneBootup: {
|
case ServerOP_ZoneBootup: {
|
||||||
auto *s = (ServerZoneStateChange_Struct*) pack->pBuffer;
|
auto *s = (ServerZoneStateChange_Struct*) pack->pBuffer;
|
||||||
zoneserver_list.SOPZoneBootup(s->admin_name, s->zone_server_id, ZoneName(s->zone_id), s->is_static);
|
ZSList::Instance()->SOPZoneBootup(s->admin_name, s->zone_server_id, ZoneName(s->zone_id), s->is_static);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_ZoneStatus: {
|
case ServerOP_ZoneStatus: {
|
||||||
if (pack->size >= 1) {
|
if (pack->size >= 1) {
|
||||||
auto z = (ServerZoneStatus_Struct*) pack->pBuffer;
|
auto z = (ServerZoneStatus_Struct*) pack->pBuffer;
|
||||||
zoneserver_list.SendZoneStatus(z->name, z->admin, this);
|
ZSList::Instance()->SendZoneStatus(z->name, z->admin, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -829,7 +828,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
if (
|
if (
|
||||||
ztz->admin < AccountStatus::QuestTroupe &&
|
ztz->admin < AccountStatus::QuestTroupe &&
|
||||||
ztz->ignorerestrictions < 2 &&
|
ztz->ignorerestrictions < 2 &&
|
||||||
zoneserver_list.IsZoneLocked(ztz->requested_zone_id)
|
ZSList::Instance()->IsZoneLocked(ztz->requested_zone_id)
|
||||||
) {
|
) {
|
||||||
ztz->response = 0;
|
ztz->response = 0;
|
||||||
|
|
||||||
@ -846,8 +845,8 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
|
|
||||||
auto ingress_server = (
|
auto ingress_server = (
|
||||||
ztz->requested_instance_id ?
|
ztz->requested_instance_id ?
|
||||||
zoneserver_list.FindByInstanceID(ztz->requested_instance_id) :
|
ZSList::Instance()->FindByInstanceID(ztz->requested_instance_id) :
|
||||||
zoneserver_list.FindByZoneID(ztz->requested_zone_id)
|
ZSList::Instance()->FindByZoneID(ztz->requested_zone_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (ingress_server) {
|
if (ingress_server) {
|
||||||
@ -861,7 +860,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
ztz->response = 1;
|
ztz->response = 1;
|
||||||
} else {
|
} else {
|
||||||
int server_id;
|
int server_id;
|
||||||
if ((server_id = zoneserver_list.TriggerBootup(ztz->requested_zone_id, ztz->requested_instance_id))) {
|
if ((server_id = ZSList::Instance()->TriggerBootup(ztz->requested_zone_id, ztz->requested_instance_id))) {
|
||||||
LogZoning(
|
LogZoning(
|
||||||
"ZoneToZone successfully booted a zone for character [{}] zone [{}] ({}) instance [{}] ({})",
|
"ZoneToZone successfully booted a zone for character [{}] zone [{}] ({}) instance [{}] ({})",
|
||||||
ztz->name,
|
ztz->name,
|
||||||
@ -871,7 +870,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
server_id
|
server_id
|
||||||
);
|
);
|
||||||
ztz->response = 1;
|
ztz->response = 1;
|
||||||
ingress_server = zoneserver_list.FindByID(server_id);
|
ingress_server = ZSList::Instance()->FindByID(server_id);
|
||||||
} else {
|
} else {
|
||||||
LogError("failed to boot a zone for [{}]", ztz->name);
|
LogError("failed to boot a zone for [{}]", ztz->name);
|
||||||
ztz->response = 0;
|
ztz->response = 0;
|
||||||
@ -895,8 +894,8 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
);
|
);
|
||||||
auto egress_server = (
|
auto egress_server = (
|
||||||
ztz->current_instance_id ?
|
ztz->current_instance_id ?
|
||||||
zoneserver_list.FindByInstanceID(ztz->current_instance_id) :
|
ZSList::Instance()->FindByInstanceID(ztz->current_instance_id) :
|
||||||
zoneserver_list.FindByZoneID(ztz->current_zone_id)
|
ZSList::Instance()->FindByZoneID(ztz->current_zone_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (egress_server) {
|
if (egress_server) {
|
||||||
@ -1006,7 +1005,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
cle->SetAdmin(*((int16*)&pack->pBuffer[4]));
|
cle->SetAdmin(*((int16*)&pack->pBuffer[4]));
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_GMGoto: {
|
case ServerOP_GMGoto: {
|
||||||
@ -1106,7 +1105,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
|
|
||||||
auto smotd = (ServerMotd_Struct*) pack->pBuffer;
|
auto smotd = (ServerMotd_Struct*) pack->pBuffer;
|
||||||
RuleManager::Instance()->SetRule("MOTD", smotd->motd, &database, true, true);
|
RuleManager::Instance()->SetRule("MOTD", smotd->motd, &database, true, true);
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_Uptime: {
|
case ServerOP_Uptime: {
|
||||||
@ -1119,7 +1118,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
if (!sus->zoneserverid) {
|
if (!sus->zoneserverid) {
|
||||||
ZSList::ShowUpTime(this, sus->adminname);
|
ZSList::ShowUpTime(this, sus->adminname);
|
||||||
} else {
|
} else {
|
||||||
auto zs = zoneserver_list.FindByID(sus->zoneserverid);
|
auto zs = ZSList::Instance()->FindByID(sus->zoneserverid);
|
||||||
if (zs) {
|
if (zs) {
|
||||||
zs->SendPacket(pack);
|
zs->SendPacket(pack);
|
||||||
}
|
}
|
||||||
@ -1136,8 +1135,8 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
pack->pBuffer = new uchar[pack->size];
|
pack->pBuffer = new uchar[pack->size];
|
||||||
memset(pack->pBuffer, 0, pack->size);
|
memset(pack->pBuffer, 0, pack->size);
|
||||||
auto tod = (eqTimeOfDay*) pack->pBuffer;
|
auto tod = (eqTimeOfDay*) pack->pBuffer;
|
||||||
tod->start_eqtime = zoneserver_list.worldclock.getStartEQTime();
|
tod->start_eqtime = ZSList::Instance()->worldclock.getStartEQTime();
|
||||||
tod->start_realtime = zoneserver_list.worldclock.getStartRealTime();
|
tod->start_realtime = ZSList::Instance()->worldclock.getStartRealTime();
|
||||||
SendPacket(pack);
|
SendPacket(pack);
|
||||||
safe_delete(pack);
|
safe_delete(pack);
|
||||||
break;
|
break;
|
||||||
@ -1145,10 +1144,10 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
case ServerOP_SetWorldTime: {
|
case ServerOP_SetWorldTime: {
|
||||||
LogNetcode("Received SetWorldTime");
|
LogNetcode("Received SetWorldTime");
|
||||||
auto newtime = (eqTimeOfDay*) pack->pBuffer;
|
auto newtime = (eqTimeOfDay*) pack->pBuffer;
|
||||||
zoneserver_list.worldclock.SetCurrentEQTimeOfDay(newtime->start_eqtime, newtime->start_realtime);
|
ZSList::Instance()->worldclock.SetCurrentEQTimeOfDay(newtime->start_eqtime, newtime->start_realtime);
|
||||||
LogInfo("New time = [{}]-[{}]-[{}] [{}]:[{}] ([{}])\n", newtime->start_eqtime.year, newtime->start_eqtime.month, (int)newtime->start_eqtime.day, (int)newtime->start_eqtime.hour, (int)newtime->start_eqtime.minute, (int)newtime->start_realtime);
|
LogInfo("New time = [{}]-[{}]-[{}] [{}]:[{}] ([{}])\n", newtime->start_eqtime.year, newtime->start_eqtime.month, (int)newtime->start_eqtime.day, (int)newtime->start_eqtime.hour, (int)newtime->start_eqtime.minute, (int)newtime->start_realtime);
|
||||||
database.SaveTime((int)newtime->start_eqtime.minute, (int)newtime->start_eqtime.hour, (int)newtime->start_eqtime.day, newtime->start_eqtime.month, newtime->start_eqtime.year);
|
database.SaveTime((int)newtime->start_eqtime.minute, (int)newtime->start_eqtime.hour, (int)newtime->start_eqtime.day, newtime->start_eqtime.month, newtime->start_eqtime.year);
|
||||||
zoneserver_list.SendTimeSync();
|
ZSList::Instance()->SendTimeSync();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_IPLookup: {
|
case ServerOP_IPLookup: {
|
||||||
@ -1174,14 +1173,14 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
|
|
||||||
auto lock_zone = (ServerLockZone_Struct*) pack->pBuffer;
|
auto lock_zone = (ServerLockZone_Struct*) pack->pBuffer;
|
||||||
if (lock_zone->op == ServerLockType::List) {
|
if (lock_zone->op == ServerLockType::List) {
|
||||||
zoneserver_list.ListLockedZones(lock_zone->adminname, this);
|
ZSList::Instance()->ListLockedZones(lock_zone->adminname, this);
|
||||||
break;
|
break;
|
||||||
} else if (
|
} else if (
|
||||||
lock_zone->op == ServerLockType::Lock ||
|
lock_zone->op == ServerLockType::Lock ||
|
||||||
lock_zone->op == ServerLockType::Unlock
|
lock_zone->op == ServerLockType::Unlock
|
||||||
) {
|
) {
|
||||||
if (zoneserver_list.SetLockedZone(lock_zone->zoneID, lock_zone->op == ServerLockType::Lock)) {
|
if (ZSList::Instance()->SetLockedZone(lock_zone->zoneID, lock_zone->op == ServerLockType::Lock)) {
|
||||||
zoneserver_list.SendEmoteMessage(
|
ZSList::Instance()->SendEmoteMessage(
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
AccountStatus::QuestTroupe,
|
AccountStatus::QuestTroupe,
|
||||||
@ -1225,7 +1224,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
}
|
}
|
||||||
case ServerOP_SpawnPlayerCorpse: {
|
case ServerOP_SpawnPlayerCorpse: {
|
||||||
auto s = (SpawnPlayerCorpse_Struct*) pack->pBuffer;
|
auto s = (SpawnPlayerCorpse_Struct*) pack->pBuffer;
|
||||||
auto zs = zoneserver_list.FindByZoneID(s->zone_id);
|
auto zs = ZSList::Instance()->FindByZoneID(s->zone_id);
|
||||||
if (zs) {
|
if (zs) {
|
||||||
zs->SendPacket(pack);
|
zs->SendPacket(pack);
|
||||||
}
|
}
|
||||||
@ -1237,8 +1236,8 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
|
|
||||||
auto owner_zs = (
|
auto owner_zs = (
|
||||||
s->instance_id ?
|
s->instance_id ?
|
||||||
zoneserver_list.FindByInstanceID(s->instance_id) :
|
ZSList::Instance()->FindByInstanceID(s->instance_id) :
|
||||||
zoneserver_list.FindByZoneID(s->zone_id)
|
ZSList::Instance()->FindByZoneID(s->zone_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (owner_zs) {
|
if (owner_zs) {
|
||||||
@ -1252,8 +1251,8 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
if (cle) {
|
if (cle) {
|
||||||
auto granted_zs = (
|
auto granted_zs = (
|
||||||
cle->instance() ?
|
cle->instance() ?
|
||||||
zoneserver_list.FindByInstanceID(cle->instance()) :
|
ZSList::Instance()->FindByInstanceID(cle->instance()) :
|
||||||
zoneserver_list.FindByZoneID(cle->zone())
|
ZSList::Instance()->FindByZoneID(cle->zone())
|
||||||
);
|
);
|
||||||
|
|
||||||
if (granted_zs && granted_zs != owner_zs) {
|
if (granted_zs && granted_zs != owner_zs) {
|
||||||
@ -1266,7 +1265,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
}
|
}
|
||||||
case ServerOP_InstanceUpdateTime: {
|
case ServerOP_InstanceUpdateTime: {
|
||||||
auto iut = (ServerInstanceUpdateTime_Struct*) pack->pBuffer;
|
auto iut = (ServerInstanceUpdateTime_Struct*) pack->pBuffer;
|
||||||
auto zm = zoneserver_list.FindByInstanceID(iut->instance_id);
|
auto zm = ZSList::Instance()->FindByInstanceID(iut->instance_id);
|
||||||
if (zm) {
|
if (zm) {
|
||||||
zm->SendPacket(pack);
|
zm->SendPacket(pack);
|
||||||
}
|
}
|
||||||
@ -1278,7 +1277,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_QGlobalDelete: {
|
case ServerOP_QGlobalDelete: {
|
||||||
@ -1286,7 +1285,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_AdventureRequest: {
|
case ServerOP_AdventureRequest: {
|
||||||
@ -1344,7 +1343,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
}
|
}
|
||||||
case ServerOP_UCSServerStatusRequest: {
|
case ServerOP_UCSServerStatusRequest: {
|
||||||
auto ucsss = (UCSServerStatus_Struct*) pack->pBuffer;
|
auto ucsss = (UCSServerStatus_Struct*) pack->pBuffer;
|
||||||
auto zs = zoneserver_list.FindByPort(ucsss->port);
|
auto zs = ZSList::Instance()->FindByPort(ucsss->port);
|
||||||
if (!zs) {
|
if (!zs) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1398,12 +1397,12 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
case ServerOP_WWSpell:
|
case ServerOP_WWSpell:
|
||||||
case ServerOP_WWTaskUpdate:
|
case ServerOP_WWTaskUpdate:
|
||||||
case ServerOP_ZonePlayer: {
|
case ServerOP_ZonePlayer: {
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_ServerReloadRequest: {
|
case ServerOP_ServerReloadRequest: {
|
||||||
auto o = (ServerReload::Request*) pack->pBuffer;
|
auto o = (ServerReload::Request*) pack->pBuffer;
|
||||||
zoneserver_list.SendServerReload((ServerReload::Type) o->type, pack->pBuffer);
|
ZSList::Instance()->SendServerReload((ServerReload::Type) o->type, pack->pBuffer);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_IsOwnerOnline: {
|
case ServerOP_IsOwnerOnline: {
|
||||||
@ -1425,7 +1424,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto zs = zoneserver_list.FindByZoneID(o->zone_id);
|
auto zs = ZSList::Instance()->FindByZoneID(o->zone_id);
|
||||||
if (zs) {
|
if (zs) {
|
||||||
zs->SendPacket(pack);
|
zs->SendPacket(pack);
|
||||||
}
|
}
|
||||||
@ -1439,7 +1438,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
LogInfo("Error: Could not load item data. But ignoring");
|
LogInfo("Error: Could not load item data. But ignoring");
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_RequestTellQueue: {
|
case ServerOP_RequestTellQueue: {
|
||||||
@ -1514,7 +1513,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
|
|
||||||
guild->tribute.timer.Disable();
|
guild->tribute.timer.Disable();
|
||||||
|
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(data->guild_id, pack);
|
ZSList::Instance()->SendPacketToZonesWithGuild(data->guild_id, pack);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1557,7 +1556,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
guild_mgr.UpdateDbGuildFavor(data->guild_id, data->favor);
|
guild_mgr.UpdateDbGuildFavor(data->guild_id, data->favor);
|
||||||
guild_mgr.UpdateDbTributeTimeRemaining(data->guild_id, data->time_remaining);
|
guild_mgr.UpdateDbTributeTimeRemaining(data->guild_id, data->time_remaining);
|
||||||
|
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(data->guild_id, pack);
|
ZSList::Instance()->SendPacketToZonesWithGuild(data->guild_id, pack);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1591,7 +1590,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
data->time_remaining = in->time_remaining;
|
data->time_remaining = in->time_remaining;
|
||||||
strn0cpy(data->player_name, in->player_name, sizeof(data->player_name));
|
strn0cpy(data->player_name, in->player_name, sizeof(data->player_name));
|
||||||
|
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(in->guild_id, out);
|
ZSList::Instance()->SendPacketToZonesWithGuild(in->guild_id, out);
|
||||||
safe_delete(out);
|
safe_delete(out);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1614,7 +1613,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
out->tribute_id_2_tier = guild->tribute.id_2_tier;
|
out->tribute_id_2_tier = guild->tribute.id_2_tier;
|
||||||
out->time_remaining = guild_mgr.GetGuildTributeTimeRemaining(in->guild_id);
|
out->time_remaining = guild_mgr.GetGuildTributeTimeRemaining(in->guild_id);
|
||||||
|
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(in->guild_id, sp);
|
ZSList::Instance()->SendPacketToZonesWithGuild(in->guild_id, sp);
|
||||||
safe_delete(sp);
|
safe_delete(sp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1634,7 +1633,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
out->tribute_timer = guild_mgr.GetGuildTributeTimeRemaining(in->guild_id);
|
out->tribute_timer = guild_mgr.GetGuildTributeTimeRemaining(in->guild_id);
|
||||||
out->trophy_timer = 0;
|
out->trophy_timer = 0;
|
||||||
|
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(in->guild_id, sp);
|
ZSList::Instance()->SendPacketToZonesWithGuild(in->guild_id, sp);
|
||||||
safe_delete(sp);
|
safe_delete(sp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1658,7 +1657,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
out->member_time = in->member_time;
|
out->member_time = in->member_time;
|
||||||
strn0cpy(out->player_name, in->player_name, sizeof(out->player_name));
|
strn0cpy(out->player_name, in->player_name, sizeof(out->player_name));
|
||||||
|
|
||||||
zoneserver_list.SendPacketToZonesWithGuild(out->guild_id, sp);
|
ZSList::Instance()->SendPacketToZonesWithGuild(out->guild_id, sp);
|
||||||
safe_delete(sp)
|
safe_delete(sp)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1672,7 +1671,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacketToBootedZones(pack);
|
ZSList::Instance()->SendPacketToBootedZones(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ServerOP_BazaarPurchase: {
|
case ServerOP_BazaarPurchase: {
|
||||||
@ -1688,7 +1687,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
|
|
||||||
auto trader = client_list.FindCLEByCharacterID(in->trader_buy_struct.trader_id);
|
auto trader = client_list.FindCLEByCharacterID(in->trader_buy_struct.trader_id);
|
||||||
if (trader) {
|
if (trader) {
|
||||||
zoneserver_list.SendPacket(trader->zone(), trader->instance(), pack);
|
ZSList::Instance()->SendPacket(trader->zone(), trader->instance(), pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -1706,13 +1705,13 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
zoneserver_list.SendPacketToBootedZones(pack);
|
ZSList::Instance()->SendPacketToBootedZones(pack);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Barter_SellItem: {
|
case Barter_SellItem: {
|
||||||
auto buyer = client_list.FindCharacter(in->buyer_name);
|
auto buyer = client_list.FindCharacter(in->buyer_name);
|
||||||
if (buyer) {
|
if (buyer) {
|
||||||
zoneserver_list.SendPacket(buyer->zone(), buyer->instance(), pack);
|
ZSList::Instance()->SendPacket(buyer->zone(), buyer->instance(), pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -1721,7 +1720,7 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
|
|||||||
case Barter_BuyerTransactionComplete: {
|
case Barter_BuyerTransactionComplete: {
|
||||||
auto seller = client_list.FindCharacter(in->seller_name);
|
auto seller = client_list.FindCharacter(in->seller_name);
|
||||||
if (seller) {
|
if (seller) {
|
||||||
zoneserver_list.SendPacket(seller->zone(), seller->instance(), pack);
|
ZSList::Instance()->SendPacket(seller->zone(), seller->instance(), pack);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -1789,7 +1788,7 @@ void ZoneServer::SendEmoteMessageRaw(const char* to, uint32 to_guilddbid, int16
|
|||||||
void ZoneServer::SendGroupIDs() {
|
void ZoneServer::SendGroupIDs() {
|
||||||
auto pack = new ServerPacket(ServerOP_GroupIDReply, sizeof(ServerGroupIDReply_Struct));
|
auto pack = new ServerPacket(ServerOP_GroupIDReply, sizeof(ServerGroupIDReply_Struct));
|
||||||
auto sgi = (ServerGroupIDReply_Struct*) pack->pBuffer;
|
auto sgi = (ServerGroupIDReply_Struct*) pack->pBuffer;
|
||||||
zoneserver_list.NextGroupIDs(sgi->start, sgi->end);
|
ZSList::Instance()->NextGroupIDs(sgi->start, sgi->end);
|
||||||
SendPacket(pack);
|
SendPacket(pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
@ -1806,7 +1805,7 @@ void ZoneServer::ChangeWID(uint32 iCharID, uint32 iWID) {
|
|||||||
auto scw = (ServerChangeWID_Struct*) pack->pBuffer;
|
auto scw = (ServerChangeWID_Struct*) pack->pBuffer;
|
||||||
scw->charid = iCharID;
|
scw->charid = iCharID;
|
||||||
scw->newwid = iWID;
|
scw->newwid = iWID;
|
||||||
zoneserver_list.SendPacket(pack);
|
ZSList::Instance()->SendPacket(pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user