mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 16:51:29 +00:00
Working zone and world communication yay
This commit is contained in:
parent
2447c38c82
commit
f6ca59fbc6
@ -52,7 +52,10 @@ void EQ::Net::ServertalkClient::Send(uint16_t opcode, EQ::Net::Packet &p)
|
||||
|
||||
void EQ::Net::ServertalkClient::SendPacket(ServerPacket *p)
|
||||
{
|
||||
EQ::Net::StaticPacket pout(p->pBuffer, p->size);
|
||||
EQ::Net::DynamicPacket pout;
|
||||
if (p->pBuffer) {
|
||||
pout.PutData(0, p->pBuffer, p->size);
|
||||
}
|
||||
Send(p->opcode, pout);
|
||||
}
|
||||
|
||||
@ -61,6 +64,11 @@ void EQ::Net::ServertalkClient::OnMessage(uint16_t opcode, std::function<void(ui
|
||||
m_message_callbacks.insert(std::make_pair(opcode, cb));
|
||||
}
|
||||
|
||||
void EQ::Net::ServertalkClient::OnMessage(std::function<void(uint16_t, EQ::Net::Packet&)> cb)
|
||||
{
|
||||
m_message_callback = cb;
|
||||
}
|
||||
|
||||
void EQ::Net::ServertalkClient::Connect()
|
||||
{
|
||||
if (m_addr.length() == 0 || m_port == 0 || m_connection || m_connecting) {
|
||||
@ -280,6 +288,10 @@ void EQ::Net::ServertalkClient::ProcessMessage(EQ::Net::Packet &p)
|
||||
if (cb != m_message_callbacks.end()) {
|
||||
cb->second(opcode, decrypted_packet);
|
||||
}
|
||||
|
||||
if (m_message_callback) {
|
||||
m_message_callback(opcode, decrypted_packet);
|
||||
}
|
||||
}
|
||||
else {
|
||||
size_t message_len = length;
|
||||
@ -289,6 +301,10 @@ void EQ::Net::ServertalkClient::ProcessMessage(EQ::Net::Packet &p)
|
||||
if (cb != m_message_callbacks.end()) {
|
||||
cb->second(opcode, packet);
|
||||
}
|
||||
|
||||
if (m_message_callback) {
|
||||
m_message_callback(opcode, packet);
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
@ -299,6 +315,10 @@ void EQ::Net::ServertalkClient::ProcessMessage(EQ::Net::Packet &p)
|
||||
if (cb != m_message_callbacks.end()) {
|
||||
m_message_callback_any(opcode, packet);
|
||||
}
|
||||
|
||||
if (m_message_callback) {
|
||||
m_message_callback(opcode, packet);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ namespace EQ
|
||||
void SendPacket(ServerPacket *p);
|
||||
void OnConnect(std::function<void(ServertalkClient*)> cb) { m_on_connect_cb = cb; }
|
||||
void OnMessage(uint16_t opcode, std::function<void(uint16_t, EQ::Net::Packet&)> cb);
|
||||
void OnMessage(std::function<void(uint16_t, EQ::Net::Packet&)> cb);
|
||||
bool Connected() const { return m_connecting != true; }
|
||||
|
||||
std::shared_ptr<EQ::Net::TCPConnection> Handle() { return m_connection; }
|
||||
@ -48,6 +49,7 @@ namespace EQ
|
||||
std::shared_ptr<EQ::Net::TCPConnection> m_connection;
|
||||
std::vector<char> m_buffer;
|
||||
std::unordered_map<uint16_t, std::function<void(uint16_t, EQ::Net::Packet&)>> m_message_callbacks;
|
||||
std::function<void(uint16_t, EQ::Net::Packet&)> m_message_callback;
|
||||
std::function<void(ServertalkClient*)> m_on_connect_cb;
|
||||
|
||||
#ifdef ENABLE_SECURITY
|
||||
|
||||
@ -32,7 +32,10 @@ void EQ::Net::ServertalkLegacyClient::Send(uint16_t opcode, EQ::Net::Packet &p)
|
||||
|
||||
void EQ::Net::ServertalkLegacyClient::SendPacket(ServerPacket *p)
|
||||
{
|
||||
EQ::Net::StaticPacket pout(p->pBuffer, p->size);
|
||||
EQ::Net::DynamicPacket pout;
|
||||
if (p->pBuffer) {
|
||||
pout.PutData(0, p->pBuffer, p->size);
|
||||
}
|
||||
Send(p->opcode, pout);
|
||||
}
|
||||
|
||||
@ -41,6 +44,11 @@ void EQ::Net::ServertalkLegacyClient::OnMessage(uint16_t opcode, std::function<v
|
||||
m_message_callbacks.insert(std::make_pair(opcode, cb));
|
||||
}
|
||||
|
||||
void EQ::Net::ServertalkLegacyClient::OnMessage(std::function<void(uint16_t, EQ::Net::Packet&)> cb)
|
||||
{
|
||||
m_message_callback = cb;
|
||||
}
|
||||
|
||||
void EQ::Net::ServertalkLegacyClient::Connect()
|
||||
{
|
||||
if (m_addr.length() == 0 || m_port == 0 || m_connection || m_connecting) {
|
||||
@ -116,6 +124,10 @@ void EQ::Net::ServertalkLegacyClient::ProcessReadBuffer()
|
||||
if (cb != m_message_callbacks.end()) {
|
||||
cb->second(opcode, p);
|
||||
}
|
||||
|
||||
if (m_message_callback) {
|
||||
m_message_callback(opcode, p);
|
||||
}
|
||||
}
|
||||
else {
|
||||
EQ::Net::StaticPacket p(&m_buffer[current + 4], length);
|
||||
@ -124,6 +136,10 @@ void EQ::Net::ServertalkLegacyClient::ProcessReadBuffer()
|
||||
if (cb != m_message_callbacks.end()) {
|
||||
cb->second(opcode, p);
|
||||
}
|
||||
|
||||
if (m_message_callback) {
|
||||
m_message_callback(opcode, p);
|
||||
}
|
||||
}
|
||||
|
||||
current += length + 4;
|
||||
|
||||
@ -19,6 +19,7 @@ namespace EQ
|
||||
void SendPacket(ServerPacket *p);
|
||||
void OnConnect(std::function<void(ServertalkLegacyClient*)> cb) { m_on_connect_cb = cb; }
|
||||
void OnMessage(uint16_t opcode, std::function<void(uint16_t, EQ::Net::Packet&)> cb);
|
||||
void OnMessage(std::function<void(uint16_t, EQ::Net::Packet&)> cb);
|
||||
bool Connected() const { return m_connecting != true; }
|
||||
|
||||
std::shared_ptr<EQ::Net::TCPConnection> Handle() { return m_connection; }
|
||||
@ -36,6 +37,7 @@ namespace EQ
|
||||
std::shared_ptr<EQ::Net::TCPConnection> m_connection;
|
||||
std::vector<char> m_buffer;
|
||||
std::unordered_map<uint16_t, std::function<void(uint16_t, EQ::Net::Packet&)>> m_message_callbacks;
|
||||
std::function<void(uint16_t, EQ::Net::Packet&)> m_message_callback;
|
||||
std::function<void(ServertalkLegacyClient*)> m_on_connect_cb;
|
||||
};
|
||||
}
|
||||
|
||||
@ -50,9 +50,12 @@ void EQ::Net::ServertalkServerConnection::Send(uint16_t opcode, EQ::Net::Packet
|
||||
InternalSend(ServertalkMessage, out);
|
||||
}
|
||||
|
||||
void EQ::Net::ServertalkServerConnection::SendPacket(ServerPacket * p)
|
||||
void EQ::Net::ServertalkServerConnection::SendPacket(ServerPacket *p)
|
||||
{
|
||||
EQ::Net::StaticPacket pout(p->pBuffer, p->size);
|
||||
EQ::Net::DynamicPacket pout;
|
||||
if (p->pBuffer) {
|
||||
pout.PutData(0, p->pBuffer, p->size);
|
||||
}
|
||||
Send(p->opcode, pout);
|
||||
}
|
||||
|
||||
@ -61,6 +64,11 @@ void EQ::Net::ServertalkServerConnection::OnMessage(uint16_t opcode, std::functi
|
||||
m_message_callbacks.insert(std::make_pair(opcode, cb));
|
||||
}
|
||||
|
||||
void EQ::Net::ServertalkServerConnection::OnMessage(std::function<void(uint16_t, EQ::Net::Packet&)> cb)
|
||||
{
|
||||
m_message_callback = cb;
|
||||
}
|
||||
|
||||
void EQ::Net::ServertalkServerConnection::OnRead(TCPConnection *c, const unsigned char *data, size_t sz)
|
||||
{
|
||||
m_buffer.insert(m_buffer.end(), (const char*)data, (const char*)data + sz);
|
||||
@ -300,6 +308,10 @@ void EQ::Net::ServertalkServerConnection::ProcessMessage(EQ::Net::Packet &p)
|
||||
if (cb != m_message_callbacks.end()) {
|
||||
cb->second(opcode, decrypted_packet);
|
||||
}
|
||||
|
||||
if (m_message_callback) {
|
||||
m_message_callback(opcode, decrypted_packet);
|
||||
}
|
||||
}
|
||||
else {
|
||||
size_t message_len = length;
|
||||
@ -309,6 +321,10 @@ void EQ::Net::ServertalkServerConnection::ProcessMessage(EQ::Net::Packet &p)
|
||||
if (cb != m_message_callbacks.end()) {
|
||||
cb->second(opcode, packet);
|
||||
}
|
||||
|
||||
if (m_message_callback) {
|
||||
m_message_callback(opcode, packet);
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
@ -319,6 +335,10 @@ void EQ::Net::ServertalkServerConnection::ProcessMessage(EQ::Net::Packet &p)
|
||||
if (cb != m_message_callbacks.end()) {
|
||||
cb->second(opcode, packet);
|
||||
}
|
||||
|
||||
if (m_message_callback) {
|
||||
m_message_callback(opcode, packet);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ namespace EQ
|
||||
void Send(uint16_t opcode, EQ::Net::Packet &p);
|
||||
void SendPacket(ServerPacket *p);
|
||||
void OnMessage(uint16_t opcode, std::function<void(uint16_t, EQ::Net::Packet&)> cb);
|
||||
void OnMessage(std::function<void(uint16_t, EQ::Net::Packet&)> cb);
|
||||
|
||||
std::string GetIdentifier() const { return m_identifier; }
|
||||
std::shared_ptr<EQ::Net::TCPConnection> Handle() { return m_connection; }
|
||||
@ -41,6 +42,7 @@ namespace EQ
|
||||
|
||||
std::vector<char> m_buffer;
|
||||
std::unordered_map<uint16_t, std::function<void(uint16_t, EQ::Net::Packet&)>> m_message_callbacks;
|
||||
std::function<void(uint16_t, EQ::Net::Packet&)> m_message_callback;
|
||||
std::string m_identifier;
|
||||
std::string m_uuid;
|
||||
|
||||
|
||||
@ -251,43 +251,6 @@ public:
|
||||
ret->InflatedSize = this->InflatedSize;
|
||||
return ret;
|
||||
}
|
||||
bool Deflate() {
|
||||
if (compressed)
|
||||
return false;
|
||||
if ((!this->pBuffer) || (!this->size))
|
||||
return false;
|
||||
uchar* tmp = new uchar[this->size + 128];
|
||||
uint32 tmpsize = DeflatePacket(this->pBuffer, this->size, tmp, this->size + 128);
|
||||
if (!tmpsize) {
|
||||
safe_delete_array(tmp);
|
||||
return false;
|
||||
}
|
||||
this->compressed = true;
|
||||
this->InflatedSize = this->size;
|
||||
this->size = tmpsize;
|
||||
uchar* tmpdel = this->pBuffer;
|
||||
this->pBuffer = tmp;
|
||||
safe_delete_array(tmpdel);
|
||||
return true;
|
||||
}
|
||||
bool Inflate() {
|
||||
if (!compressed)
|
||||
return false;
|
||||
if ((!this->pBuffer) || (!this->size))
|
||||
return false;
|
||||
uchar* tmp = new uchar[InflatedSize];
|
||||
uint32 tmpsize = InflatePacket(this->pBuffer, this->size, tmp, InflatedSize);
|
||||
if (!tmpsize) {
|
||||
safe_delete_array(tmp);
|
||||
return false;
|
||||
}
|
||||
compressed = false;
|
||||
this->size = tmpsize;
|
||||
uchar* tmpdel = this->pBuffer;
|
||||
this->pBuffer = tmp;
|
||||
safe_delete_array(tmpdel);
|
||||
return true;
|
||||
}
|
||||
|
||||
void WriteUInt8(uint8 value) { *(uint8 *)(pBuffer + _wpos) = value; _wpos += sizeof(uint8); }
|
||||
void WriteUInt32(uint32 value) { *(uint32 *)(pBuffer + _wpos) = value; _wpos += sizeof(uint32); }
|
||||
|
||||
@ -53,16 +53,7 @@ WorldServer::~WorldServer()
|
||||
void WorldServer::Connect()
|
||||
{
|
||||
m_connection.reset(new EQ::Net::ServertalkClient(Config->WorldIP, Config->WorldTCPPort, false, "QueryServ", Config->SharedKey));
|
||||
|
||||
m_connection->OnMessage(ServerOP_Speech, std::bind(&WorldServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
m_connection->OnMessage(ServerOP_QSPlayerLogTrades, std::bind(&WorldServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
m_connection->OnMessage(ServerOP_QSPlayerLogHandins, std::bind(&WorldServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
m_connection->OnMessage(ServerOP_QSPlayerLogNPCKills, std::bind(&WorldServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
m_connection->OnMessage(ServerOP_QSPlayerLogDeletes, std::bind(&WorldServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
m_connection->OnMessage(ServerOP_QSPlayerLogMoves, std::bind(&WorldServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
m_connection->OnMessage(ServerOP_QSPlayerLogMerchantTransactions, std::bind(&WorldServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
m_connection->OnMessage(ServerOP_QueryServGeneric, std::bind(&WorldServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
m_connection->OnMessage(ServerOP_QSSendQuery, std::bind(&WorldServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
m_connection->OnMessage(std::bind(&WorldServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
}
|
||||
|
||||
bool WorldServer::SendPacket(ServerPacket *pack)
|
||||
|
||||
@ -177,7 +177,6 @@ void Adventure::SetStatus(AdventureStatus new_status)
|
||||
ut->instance_id = instance_id;
|
||||
ut->new_duration = adventure_template->duration + 60;
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(0, instance_id, pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
@ -192,7 +191,6 @@ void Adventure::SetStatus(AdventureStatus new_status)
|
||||
ut->instance_id = instance_id;
|
||||
ut->new_duration = 1860;
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(0, instance_id, pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
@ -207,7 +205,6 @@ void Adventure::SetStatus(AdventureStatus new_status)
|
||||
ut->instance_id = instance_id;
|
||||
ut->new_duration = 1860;
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(0, instance_id, pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
@ -313,7 +310,7 @@ void Adventure::Finished(AdventureWinStatus ws)
|
||||
af->win = false;
|
||||
af->points = 0;
|
||||
}
|
||||
pack->Deflate();
|
||||
|
||||
zoneserver_list.SendPacket(current->zone(), current->instance(), pack);
|
||||
database.UpdateAdventureStatsEntry(database.GetCharacterID((*iter).c_str()), GetTemplate()->theme, (ws != AWS_Lose) ? true : false);
|
||||
delete pack;
|
||||
|
||||
@ -83,7 +83,6 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ServerAdventureRequestDeny_Struct *deny = (ServerAdventureRequestDeny_Struct*)pack->pBuffer;
|
||||
strcpy(deny->leader, sar->leader);
|
||||
strcpy(deny->reason, "There are currently no adventures set for this theme.");
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
@ -113,7 +112,6 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ss << (data + sizeof(ServerAdventureRequest_Struct) + (64 * i)) << " is already apart of an active adventure.";
|
||||
|
||||
strcpy(deny->reason, ss.str().c_str());
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
@ -245,7 +243,6 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ServerAdventureRequestDeny_Struct *deny = (ServerAdventureRequestDeny_Struct*)pack->pBuffer;
|
||||
strcpy(deny->leader, sar->leader);
|
||||
strcpy(deny->reason, "The number of found players for this adventure was zero.");
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
@ -263,7 +260,6 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ss << "The maximum level range for this adventure is " << RuleI(Adventure, MaxLevelRange);
|
||||
ss << " but the level range calculated was " << (max_level - min_level) << ".";
|
||||
strcpy(deny->reason, ss.str().c_str());
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
@ -341,7 +337,6 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
sra->id = (*ea_iter)->id;
|
||||
sra->member_count = sar->member_count;
|
||||
memcpy((pack->pBuffer + sizeof(ServerAdventureRequestAccept_Struct)), (data + sizeof(ServerAdventureRequest_Struct)), (sar->member_count * 64));
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
@ -352,7 +347,6 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ServerAdventureRequestDeny_Struct *deny = (ServerAdventureRequestDeny_Struct*)pack->pBuffer;
|
||||
strcpy(deny->leader, sar->leader);
|
||||
strcpy(deny->reason, "The number of adventures returned was zero.");
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
@ -373,7 +367,6 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
||||
{
|
||||
auto pack = new ServerPacket(ServerOP_AdventureCreateDeny, 64);
|
||||
strcpy((char*)pack->pBuffer, src->leader);
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
return;
|
||||
@ -384,7 +377,6 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
||||
{
|
||||
auto pack = new ServerPacket(ServerOP_AdventureCreateDeny, 64);
|
||||
strcpy((char*)pack->pBuffer, src->leader);
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
delete adv;
|
||||
@ -398,7 +390,6 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
||||
{
|
||||
auto pack = new ServerPacket(ServerOP_AdventureCreateDeny, 64);
|
||||
strcpy((char*)pack->pBuffer, src->leader);
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(leader->zone(), leader->instance(), pack);
|
||||
delete pack;
|
||||
delete adv;
|
||||
@ -444,7 +435,6 @@ void AdventureManager::TryAdventureCreate(const char *data)
|
||||
sfa->zone_in_object = finished_adventures[f]->GetTemplate()->zone_in_object_id;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(player->zone(), player->instance(), pack);
|
||||
safe_delete_array(finished_adventures);
|
||||
delete pack;
|
||||
@ -506,7 +496,6 @@ void AdventureManager::GetAdventureData(const char *name)
|
||||
delete pack;
|
||||
auto pack = new ServerPacket(ServerOP_AdventureDataClear, 64);
|
||||
strcpy((char*)pack->pBuffer, name);
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(player->zone(), player->instance(), pack);
|
||||
|
||||
delete pack;
|
||||
@ -525,7 +514,6 @@ void AdventureManager::GetAdventureData(const char *name)
|
||||
sfa->zone_in_object = finished_adventures[i]->GetTemplate()->zone_in_object_id;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(player->zone(), player->instance(), pack);
|
||||
safe_delete_array(finished_adventures);
|
||||
delete pack;
|
||||
@ -757,7 +745,6 @@ void AdventureManager::PlayerClickedDoor(const char *player, int zone_id, int do
|
||||
(*iter)->SetStatus(AS_WaitingForPrimaryEndTime);
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
@ -772,7 +759,6 @@ void AdventureManager::PlayerClickedDoor(const char *player, int zone_id, int do
|
||||
{
|
||||
auto pack = new ServerPacket(ServerOP_AdventureClickDoorError, 64);
|
||||
strcpy((char*)pack->pBuffer, player);
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
@ -790,7 +776,6 @@ void AdventureManager::LeaveAdventure(const char *name)
|
||||
{
|
||||
auto pack = new ServerPacket(ServerOP_AdventureLeaveDeny, 64);
|
||||
strcpy((char*)pack->pBuffer, name);
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
@ -804,7 +789,6 @@ void AdventureManager::LeaveAdventure(const char *name)
|
||||
current->RemovePlayer(name);
|
||||
auto pack = new ServerPacket(ServerOP_AdventureLeaveReply, 64);
|
||||
strcpy((char*)pack->pBuffer, name);
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
@ -813,7 +797,6 @@ void AdventureManager::LeaveAdventure(const char *name)
|
||||
{
|
||||
auto pack = new ServerPacket(ServerOP_AdventureLeaveReply, 64);
|
||||
strcpy((char*)pack->pBuffer, name);
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
safe_delete(pack);
|
||||
}
|
||||
@ -1300,7 +1283,6 @@ void AdventureManager::DoLeaderboardRequestWins(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -1367,7 +1349,6 @@ void AdventureManager::DoLeaderboardRequestPercentage(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -1434,7 +1415,6 @@ void AdventureManager::DoLeaderboardRequestWinsGuk(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -1501,7 +1481,6 @@ void AdventureManager::DoLeaderboardRequestPercentageGuk(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -1568,7 +1547,6 @@ void AdventureManager::DoLeaderboardRequestWinsMir(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -1635,7 +1613,6 @@ void AdventureManager::DoLeaderboardRequestPercentageMir(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -1702,7 +1679,6 @@ void AdventureManager::DoLeaderboardRequestWinsMmc(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -1769,7 +1745,6 @@ void AdventureManager::DoLeaderboardRequestPercentageMmc(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -1836,7 +1811,6 @@ void AdventureManager::DoLeaderboardRequestWinsRuj(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -1903,7 +1877,6 @@ void AdventureManager::DoLeaderboardRequestPercentageRuj(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -1970,7 +1943,6 @@ void AdventureManager::DoLeaderboardRequestWinsTak(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -2037,7 +2009,6 @@ void AdventureManager::DoLeaderboardRequestPercentageTak(const char* player)
|
||||
al->failure = our_failures;
|
||||
}
|
||||
|
||||
pack->Deflate();
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
delete pack;
|
||||
}
|
||||
|
||||
@ -311,7 +311,6 @@ void ClientListEntry::ProcessTellQueue()
|
||||
while (it != tell_queue.end()) {
|
||||
pack = new ServerPacket(ServerOP_ChannelMessage, sizeof(ServerChannelMessage_Struct) + strlen((*it)->message) + 1);
|
||||
memcpy(pack->pBuffer, *it, pack->size);
|
||||
pack->Deflate();
|
||||
Server()->SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
safe_delete_array(*it);
|
||||
|
||||
@ -742,7 +742,6 @@ void ClientList::SendWhoAll(uint32 fromid,const char* to, int16 admin, Who_All_S
|
||||
}
|
||||
iterator.Advance();
|
||||
}
|
||||
pack2->Deflate();
|
||||
//zoneserver_list.SendPacket(pack2); // NO NO NO WHY WOULD YOU SEND IT TO EVERY ZONE SERVER?!?
|
||||
SendPacket(to,pack2);
|
||||
safe_delete(pack2);
|
||||
@ -888,7 +887,6 @@ void ClientList::SendFriendsWho(ServerFriendsWho_Struct *FriendsWho, WorldTCPCon
|
||||
bufptr += sizeof(WhoAllPlayerPart4);
|
||||
|
||||
}
|
||||
pack2->Deflate();
|
||||
SendPacket(FriendsWho->FromName,pack2);
|
||||
safe_delete(pack2);
|
||||
}
|
||||
@ -963,7 +961,6 @@ void ClientList::SendLFGMatches(ServerLFGMatchesRequest_Struct *smrs) {
|
||||
}
|
||||
Iterator.Advance();
|
||||
}
|
||||
Pack->Deflate();
|
||||
}
|
||||
SendPacket(smrs->FromName,Pack);
|
||||
safe_delete(Pack);
|
||||
|
||||
@ -261,7 +261,6 @@ void GroupLFPList::SendLFPMatches(ServerLFPMatchesRequest_Struct* smrs) {
|
||||
Buffer++;
|
||||
}
|
||||
}
|
||||
Pack->Deflate();
|
||||
}
|
||||
|
||||
ClientListEntry* CLE = client_list.FindCharacter(smrs->FromName);
|
||||
|
||||
@ -429,7 +429,6 @@ void ZSList::SendChannelMessageRaw(const char* from, const char* to, uint8 chan_
|
||||
scm->chan_num = chan_num;
|
||||
strcpy(&scm->message[0], message);
|
||||
|
||||
pack->Deflate();
|
||||
SendPacket(pack);
|
||||
delete pack;
|
||||
}
|
||||
@ -473,7 +472,7 @@ void ZSList::SendEmoteMessageRaw(const char* to, uint32 to_guilddbid, int16 to_m
|
||||
char tempto[64]={0};
|
||||
if(to)
|
||||
strn0cpy(tempto,to,64);
|
||||
pack->Deflate();
|
||||
|
||||
if (tempto[0] == 0) {
|
||||
SendPacket(pack);
|
||||
}
|
||||
|
||||
@ -66,9 +66,9 @@ ZoneServer::ZoneServer(std::shared_ptr<EQ::Net::ServertalkServerConnection> conn
|
||||
is_static_zone = false;
|
||||
zone_player_count = 0;
|
||||
|
||||
tcpc->OnAnyMessage(std::bind(&ZoneServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
tcpc->OnMessage(std::bind(&ZoneServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
|
||||
boot_timer_obj.reset(new EQ::Timer(1000, true, [this](EQ::Timer *obj) {
|
||||
boot_timer_obj.reset(new EQ::Timer(100, true, [this](EQ::Timer *obj) {
|
||||
if (zone_boot_timer.Check()) {
|
||||
LSBootUpdate(GetZoneID(), true);
|
||||
zone_boot_timer.Disable();
|
||||
@ -1329,7 +1329,6 @@ void ZoneServer::SendEmoteMessageRaw(const char* to, uint32 to_guilddbid, int16
|
||||
sem->type = type;
|
||||
strcpy(&sem->message[0], message);
|
||||
|
||||
pack->Deflate();
|
||||
SendPacket(pack);
|
||||
delete pack;
|
||||
}
|
||||
|
||||
@ -846,7 +846,6 @@ void Client::ChannelMessageReceived(uint8 chan_num, uint8 language, uint8 lang_s
|
||||
if(GetName() != 0)
|
||||
strcpy(sem->from, GetName());
|
||||
|
||||
pack->Deflate();
|
||||
if(worldserver.Connected())
|
||||
worldserver.SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
@ -6009,7 +6008,6 @@ void Client::LeaveAdventure()
|
||||
PendingAdventureLeave();
|
||||
auto pack = new ServerPacket(ServerOP_AdventureLeave, 64);
|
||||
strcpy((char*)pack->pBuffer, GetName());
|
||||
pack->Deflate();
|
||||
worldserver.SendPacket(pack);
|
||||
delete pack;
|
||||
}
|
||||
|
||||
@ -2361,7 +2361,6 @@ void Client::Handle_OP_AdventureRequest(const EQApplicationPacket *app)
|
||||
}
|
||||
}
|
||||
|
||||
packet->Deflate();
|
||||
worldserver.SendPacket(packet);
|
||||
delete packet;
|
||||
p_timers.Start(pTimerStartAdventureTimer, 5);
|
||||
@ -8709,7 +8708,6 @@ void Client::Handle_OP_LDoNButton(const EQApplicationPacket *app)
|
||||
sac->theme = adv_requested_theme;
|
||||
sac->member_count = adv_requested_member_count;
|
||||
memcpy((pack->pBuffer + sizeof(ServerAdventureRequestCreate_Struct)), adv_requested_data, (64 * adv_requested_member_count));
|
||||
pack->Deflate();
|
||||
worldserver.SendPacket(pack);
|
||||
delete pack;
|
||||
PendingAdventureCreate();
|
||||
@ -12359,7 +12357,6 @@ void Client::Handle_OP_ShopPlayerBuy(const EQApplicationPacket *app)
|
||||
|
||||
audit_inst = nullptr;
|
||||
|
||||
qspack->Deflate();
|
||||
if (worldserver.Connected()) { worldserver.SendPacket(qspack); }
|
||||
safe_delete(qspack);
|
||||
}
|
||||
@ -12504,7 +12501,6 @@ void Client::Handle_OP_ShopPlayerSell(const EQApplicationPacket *app)
|
||||
qsaudit->items[0].aug_4 = m_inv[mp->itemslot]->GetAugmentItemID(4);
|
||||
qsaudit->items[0].aug_5 = m_inv[mp->itemslot]->GetAugmentItemID(5);
|
||||
|
||||
qspack->Deflate();
|
||||
if (worldserver.Connected()) { worldserver.SendPacket(qspack); }
|
||||
safe_delete(qspack);
|
||||
}
|
||||
@ -13355,8 +13351,6 @@ void Client::Handle_OP_TradeAcceptClick(const EQApplicationPacket *app)
|
||||
|
||||
event_details.clear();
|
||||
|
||||
qs_pack->Deflate();
|
||||
|
||||
if (worldserver.Connected())
|
||||
worldserver.SendPacket(qs_pack);
|
||||
|
||||
@ -13412,8 +13406,6 @@ void Client::Handle_OP_TradeAcceptClick(const EQApplicationPacket *app)
|
||||
|
||||
event_details.clear();
|
||||
|
||||
qs_pack->Deflate();
|
||||
|
||||
if (worldserver.Connected())
|
||||
worldserver.SendPacket(qs_pack);
|
||||
|
||||
|
||||
@ -837,7 +837,6 @@ void Client::DeleteItemInInventory(int16 slot_id, int8 quantity, bool client_upd
|
||||
}
|
||||
}
|
||||
|
||||
qspack->Deflate();
|
||||
if(worldserver.Connected()) { worldserver.SendPacket(qspack); }
|
||||
safe_delete(qspack);
|
||||
}
|
||||
@ -2068,7 +2067,6 @@ void Client::QSSwapItemAuditor(MoveItem_Struct* move_in, bool postaction_call) {
|
||||
}
|
||||
|
||||
if(move_count && worldserver.Connected()) {
|
||||
qspack->Deflate();
|
||||
worldserver.SendPacket(qspack);
|
||||
}
|
||||
|
||||
|
||||
@ -679,7 +679,7 @@ bool NPC::Process()
|
||||
if(viral_timer.Check()) {
|
||||
viral_timer_counter++;
|
||||
for(int i = 0; i < MAX_SPELL_TRIGGER*2; i+=2) {
|
||||
if(viral_spells[i]) {
|
||||
if(viral_spells[i] && spells[viral_spells[i]].viral_timer > 0) {
|
||||
if(viral_timer_counter % spells[viral_spells[i]].viral_timer == 0) {
|
||||
SpreadVirus(viral_spells[i], viral_spells[i+1]);
|
||||
}
|
||||
|
||||
@ -82,8 +82,7 @@ void WorldServer::Connect()
|
||||
OnConnected();
|
||||
});
|
||||
|
||||
//TODO FIX MKAY
|
||||
//m_connection->OnAnyMessage(std::bind(&WorldServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
m_connection->OnMessage(std::bind(&WorldServer::HandleMessage, this, std::placeholders::_1, std::placeholders::_2));
|
||||
}
|
||||
|
||||
bool WorldServer::SendPacket(ServerPacket *pack)
|
||||
@ -176,6 +175,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
||||
{
|
||||
ServerPacket tpack(opcode, p);
|
||||
ServerPacket *pack = &tpack;
|
||||
|
||||
switch(opcode) {
|
||||
case 0: {
|
||||
break;
|
||||
@ -217,7 +217,6 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
|
||||
scm->chan_num = 14;
|
||||
memset(scm->deliverto, 0, sizeof(scm->deliverto));
|
||||
strcpy(scm->deliverto, scm->from);
|
||||
pack->Deflate();
|
||||
SendPacket(pack);
|
||||
}
|
||||
}
|
||||
@ -1949,7 +1948,6 @@ bool WorldServer::SendChannelMessage(Client* from, const char* to, uint8 chan_nu
|
||||
scm->queued = 0;
|
||||
strcpy(scm->message, buffer);
|
||||
|
||||
pack->Deflate();
|
||||
bool ret = SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
return ret;
|
||||
@ -1988,7 +1986,6 @@ bool WorldServer::SendEmoteMessage(const char* to, uint32 to_guilddbid, int16 to
|
||||
sem->minstatus = to_minstatus;
|
||||
strcpy(sem->message, buffer);
|
||||
|
||||
pack->Deflate();
|
||||
bool ret = SendPacket(pack);
|
||||
safe_delete(pack);
|
||||
return ret;
|
||||
@ -2026,8 +2023,6 @@ bool WorldServer::SendVoiceMacro(Client* From, uint32 Type, char* Target, uint32
|
||||
|
||||
svm->MacroNumber = MacroNumber;
|
||||
|
||||
pack->Deflate();
|
||||
|
||||
bool Ret = SendPacket(pack);
|
||||
|
||||
safe_delete(pack);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user