Working zone and world communication yay

This commit is contained in:
KimLS 2017-01-03 22:23:03 -08:00
parent 2447c38c82
commit f6ca59fbc6
20 changed files with 74 additions and 114 deletions

View File

@ -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
}
}

View File

@ -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

View File

@ -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;

View File

@ -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;
};
}

View File

@ -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
}
}

View File

@ -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;

View File

@ -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); }

View File

@ -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)

View File

@ -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;

View File

@ -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;
}

View File

@ -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);

View File

@ -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);

View File

@ -261,7 +261,6 @@ void GroupLFPList::SendLFPMatches(ServerLFPMatchesRequest_Struct* smrs) {
Buffer++;
}
}
Pack->Deflate();
}
ClientListEntry* CLE = client_list.FindCharacter(smrs->FromName);

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);

View File

@ -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);
}

View File

@ -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]);
}

View File

@ -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);