Przeglądaj źródła

Flymode zone in fix

Flymode wasn't enabling cross zone correctly at times, moved it to later on in the zone in process.

Made it so flymode off doesn't trigger on zone in(don't need to know if its off, only on).
Image 4 lat temu
rodzic
commit
f2727f40a3

+ 2 - 1
EQ2/source/WorldServer/WorldDatabase.cpp

@@ -1649,7 +1649,8 @@ bool WorldDatabase::loadCharacterProperties(Client* client) {
 		else if (!stricmp(prop_name, CHAR_PROPERTY_FLYMODE))
 		{
 			int8 flymode = atoi(prop_value);
-			ClientPacketFunctions::SendFlyMode(client, flymode, false);
+			if (flymode) // avoid fly mode notification unless enabled
+				ClientPacketFunctions::SendFlyMode(client, flymode, false);
 		}
 		else if (!stricmp(prop_name, CHAR_PROPERTY_INVUL))
 		{

+ 1 - 2
EQ2/source/WorldServer/client.cpp

@@ -937,8 +937,6 @@ bool Client::HandlePacket(EQApplicationPacket *app) {
 						ClientPacketFunctions::SendLoginDenied( this );
 					}
 					zone_auth.RemoveAuth(zar);
-
-					database.loadCharacterProperties(this);
 				}
 				else
 				{
@@ -953,6 +951,7 @@ bool Client::HandlePacket(EQApplicationPacket *app) {
 			LogWrite(OPCODE__DEBUG, 1, "Opcode", "Opcode 0x%X (%i): OP_SysClient", opcode, opcode);
 			LogWrite(CCLIENT__DEBUG, 0, "Client", "Client '%s' (%u) is ready for spawn updates.", GetPlayer()->GetName(), GetPlayer()->GetCharacterID());
 			ready_for_updates = true;
+			database.loadCharacterProperties(this);
 			break;
 		}
 		case OP_MapRequest:{