|
@@ -1872,7 +1872,7 @@ void ZoneServer::SendSpawnChangesByDBID(int32 db_id, Client* client, bool overri
|
|
|
}
|
|
|
|
|
|
void ZoneServer::SendSpawnChanges(Spawn* spawn, Client* client, bool override_changes, bool override_vis_changes){
|
|
|
- if(client && client->IsReadyForUpdates() && client->GetPlayer()->WasSentSpawn(spawn->GetID()) && (spawn->IsTransportSpawn() || client->GetPlayer()->GetDistance(spawn) < SEND_SPAWN_DISTANCE)){
|
|
|
+ if(client && client->IsConnected() && client->IsReadyForUpdates() && client->GetPlayer()->WasSentSpawn(spawn->GetID()) && (spawn->IsTransportSpawn() || client->GetPlayer()->GetDistance(spawn) < SEND_SPAWN_DISTANCE)){
|
|
|
EQ2Packet* outapp = spawn->spawn_update_packet(client->GetPlayer(), client->GetVersion(), override_changes, override_vis_changes);
|
|
|
if(outapp)
|
|
|
client->QueuePacket(outapp);
|
|
@@ -3423,8 +3423,8 @@ void ZoneServer::ClientProcess()
|
|
|
|
|
|
}
|
|
|
|
|
|
- client->Disconnect();
|
|
|
RemoveClient(client);
|
|
|
+ client->Disconnect();
|
|
|
}
|
|
|
#ifndef NO_CATCH
|
|
|
}
|
|
@@ -3442,8 +3442,8 @@ void ZoneServer::ClientProcess()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- client->Disconnect();
|
|
|
RemoveClient(client);
|
|
|
+ client->Disconnect();
|
|
|
}
|
|
|
catch(...){
|
|
|
LogWrite(ZONE__ERROR, 0, "Zone", "Exception caught when in ZoneServer::ClientProcess(), second try\n%s, %i", __FUNCTION__, __LINE__);
|