Changes to cle enums, characters will now auto kick on login instead of making you wait at world unless you specifically turn that feature on in the rules.

This commit is contained in:
KimLS
2019-07-24 19:20:09 -07:00
parent ffb5b2393f
commit f3255c17da
13 changed files with 86 additions and 90 deletions
+1 -1
View File
@@ -446,7 +446,7 @@ Client::~Client() {
numclients--;
UpdateWindowTitle();
if(zone)
zone->RemoveAuth(GetName());
zone->RemoveAuth(GetName(), lskey);
//let the stream factory know were done with this stream
eqs->Close();
+1
View File
@@ -534,6 +534,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
ServerZoneIncomingClient_Struct* szic = (ServerZoneIncomingClient_Struct*)pack->pBuffer;
if (is_zone_loaded) {
SetZoneData(zone->GetZoneID(), zone->GetInstanceID());
if (szic->zoneid == zone->GetZoneID()) {
zone->AddAuth(szic);
// This packet also doubles as "incoming client" notification, lets not shut down before they get here
+4 -5
View File
@@ -1114,16 +1114,16 @@ void Zone::AddAuth(ServerZoneIncomingClient_Struct* szic) {
client_auth_list.Insert(zca);
}
void Zone::RemoveAuth(const char* iCharName)
void Zone::RemoveAuth(const char* iCharName, const char* iLSKey)
{
LinkedListIterator<ZoneClientAuth_Struct*> iterator(client_auth_list);
iterator.Reset();
while (iterator.MoreElements()) {
ZoneClientAuth_Struct* zca = iterator.GetData();
if (strcasecmp(zca->charname, iCharName) == 0) {
iterator.RemoveCurrent();
return;
if (strcasecmp(zca->charname, iCharName) == 0 && strcasecmp(zca->lskey, iLSKey) == 0) {
iterator.RemoveCurrent();
return;
}
iterator.Advance();
}
@@ -1138,7 +1138,6 @@ void Zone::RemoveAuth(uint32 lsid)
ZoneClientAuth_Struct* zca = iterator.GetData();
if (zca->lsid == lsid) {
iterator.RemoveCurrent();
return;
}
iterator.Advance();
}
+1 -1
View File
@@ -244,7 +244,7 @@ public:
void LoadZoneDoors(const char *zone, int16 version);
void ReloadStaticData();
void ReloadWorld(uint32 Option);
void RemoveAuth(const char *iCharName);
void RemoveAuth(const char *iCharName, const char *iLSKey);
void RemoveAuth(uint32 lsid);
void Repop(uint32 delay = 0);
void RepopClose(const glm::vec4 &client_position, uint32 repop_distance);