Page 4 of 5

Re: Bug 48: (Xinux) Missing UI Elements upon Login

Posted: Fri Aug 07, 2015 5:12 pm
by John Adams
I have just reverted New Telon back to rev 1441 for testing; anyone having this UI issue consistently, if you can log in and test I would appreciate it. It might take a couple times as I roll the code further back in time, but we need to figure out why "all of a sudden" your characters are having issues.

Re: Bug 48: (Xinux) Missing UI Elements upon Login

Posted: Fri Aug 07, 2015 5:23 pm
by Xinux
roll back further


1400 same issue going back further

building 1300 now **** note in abilities change script_id back to script_id_fk and unknown13 back to recovery*****

building 1254
1300 bad
1275 bad
1260 bad
1255 bad
1254 bad
1253 good
1252 struct only
1251 good
1250 good

Re: Bug 48: (Xinux) Missing UI Elements upon Login

Posted: Fri Aug 07, 2015 5:29 pm
by Xinux
Shargash quick question how long have you had the 180 abilities.

Re: Bug 48: (Xinux) Missing UI Elements upon Login

Posted: Fri Aug 07, 2015 6:10 pm
by John Adams
Certainly not in 1250, since June 20th was when we did the data wipe.

Edit: Sure are a ton of Unknown's being sent between 1250 and 1255.
Edit2: 1254 attached below. I'll go over the code changes now.
Edit3: I can't look at this right now. I'm beyond annoyed that the same name keeps showing up on everything we're troubleshooting instead of progressing.

Re: Bug 48: (Xinux) Missing UI Elements upon Login

Posted: Fri Aug 07, 2015 6:32 pm
by Xinux
Looks like 1254 is the issue

Re: Bug 48: (Xinux) Missing UI Elements upon Login

Posted: Fri Aug 07, 2015 6:59 pm
by Blackstorm
i am looking also on my side, but i don't find anything on rev1254

Re: Bug 48: (Xinux) Missing UI Elements upon Login

Posted: Fri Aug 07, 2015 7:05 pm
by John Adams
Can't find "anything"? You completely changed the entire HandleClientAuthConfirm function, and I have no idea why. There is no documentation about what these changes are for.

Code: Select all

Index: D:/dev/vg/VGO/trunk/src/world/ChunkServer.cpp
===================================================================
--- D:/dev/vg/VGO/trunk/src/world/ChunkServer.cpp	(revision 1253)
+++ D:/dev/vg/VGO/trunk/src/world/ChunkServer.cpp	(revision 1254)
@@ -795,7 +795,7 @@
 					case OP_ClientBrotherhoodPromote:
 						HandleClientBrotherhoodPromote(client, packet_struct);
 						break;
-					case OP_ClientBrotherhoodMotd:
+					case OP_ClientBrotherhoodMOTD:
 						HandleClientBrotherhoodMotd(client, packet_struct);
 						break;
 					case OP_ClientBrotherhoodNote:
@@ -1237,38 +1237,47 @@
 			client->SetCharacter(character);
 			character_list.SetCharacter(str_name, character);
 		}
+
 		character->SetZoning(true);
 		character->SetProcessingAuthConfirmPacket(true);
 		chunk_character_list.SetCharacter(str_name, character);
 		character->SetCurrentChunk(shared_from_this());
+
+		if (!character->GetOneTimeSent()){
+			auto controller = character->GetController();
+			controller->SetPlayer(character);
+		}
+
+		SendPlayerControllerInitPackets(client);
+		SendPlayerInitPackets(client);
+		SendAssignControllerToPlayerPacket(client);
+
+		// Send ordered packets 
+		CheckPlayerChangedContinents(client, character); // Send & Check ChatChannels
+
+		if (!character->GetOneTimeSent())
+			guilds_list.SendGuildPCInfo(client, character); // Send guild updates
+
 		SendUnknown_1430(client);
+
+		if (!character->GetOneTimeSent())
+			SendMOTD(client); // Send MOTD
+
 		SendUnknown_602(client);
 
-		auto wclient = net.GetClient(character->GetAccountID());
-		CheckPlayerChangedContinents(wclient, character);
-		if (!character->GetOneTimeSent()){
-			net.SendFriendInfo(client);
-			net.SendIgnoreInfo(client);
-			//character->SendChatChannels();
-			//auto global_chat = character->GetAvailableChatChannelByName("NewTelon");
-			//if (global_chat){
-			//	character->JoinChatChannel(global_chat, wclient, true);
-			//}
-			if (rule_manager.GetGlobalRule(R_World, HeraldLogins)->GetBool())
-				SendPlayerOnlineMessage(client);
+		if (!character->GetOneTimeSent()) {
 			SendServerPcEntityID(client);
-			SendServerPcUniqueID2(client);
 			SendServerPcUniqueID(client);
 			SendUnknown_1582(client);
-			//SendUnknown_1156(client);
-			SendServerClassShowsDamageHealing(client); //280
+			SendServerPcUniqueID2(client);
+
+			SendUnknown_1156(client);
+			SendServerClassShowsDamageHealing(client); // 280
+			SendServerPlayerIconLevel(client); // 281
+			SendServerUse250System(client); // 282
 			SendUnknown_539(client);
 			SendUnknown_541(client);
-			character->SendMoneyBalance();
-			// Guild info -- Not sure if this should be here.
-			SendGuildAndRank(client, character);
 
-
 #ifdef VG_DEBUG
 			if (rule_manager.GetGlobalRule(R_Dev, ProcessAbilities)->GetInt32()==0) {
 			} else 
@@ -1280,34 +1289,41 @@
 					LogError(LOG_DATABASE, 0, "ClientAuthConfirm: Failed to send forms to client for character.");
 			}
 
-			character->PushDungeonsToClient();
-			character->SendEquipGearBonusFlag();
 			SendUnknown_542(client);
+			character->SendMoneyBalance();
+			SendUnknown_960(client);
+			SendGuildAndRank(client, character); // Guild info
+			SendUnknown_722(client);
+
 			SendCharacterInfo(client, character);
+
 			character->SendAdventurePoints();
 			character->SendCraftingPoints();
+
+			SendUnknown_673(client);
+			SendUnknown_918(client);
+		}
+
+		SendUnknown_1032(client);
+		SendUnknown_1033(client);
+		character->PushDungeonsToClient();		
+		SendUnknown_1157(client);
+
+		if (!character->GetOneTimeSent()){
+			character->SendEquipGearBonusFlag();
+			net.SendFriendInfo(client);
+			net.SendIgnoreInfo(client);
+			if (rule_manager.GetGlobalRule(R_World, HeraldLogins)->GetBool())
+				SendPlayerOnlineMessage(client);
+
 			character->SetOneTimeSent(true);
 
-			auto controller = character->GetController();
-			controller->SetPlayer(character);
-
-			// Send MOTD
-			SendMOTD(client);
-			// Send guild_motd
-			guilds_list.SendGuildMotd(client, character);
+			guilds_list.SendGuildMotd(client, character); // Send guild_motd
 		}
-		//if (CheckPlayerChangedContinents(wclient, character)); //Something wrong with this channel is getting unchecked
-			//character->SendChatChannels(); //Sending channels twice  more research need's to be done when chunking
 	}
-	SendPlayerControllerInitPackets(client);
-	SendPlayerInitPackets(client);
-	SendAssignControllerToPlayerPacket(client);
-	SendUnknown_1032(client);
-	SendUnknown_1033(client);
-	SendUnknown_1157(client);
+
 	SendAll3ds(client);
 	net.TellAllFriends(client);
-
 	HandleClientFlying(client);
 	//SendAllMovers(client); // This was previously used to send all movers in a chunk to a connecting player. We now send movers based on proximity.
 	client->SetPlayerGhostsSent(true);
@@ -1325,10 +1341,10 @@
 		// Show equipped items on character
 		character->CharShowEquippedItems();
 
-		// Send guild updates
-		guilds_list.SendGuildPCInfo(client, character);
+		//guilds_list.SendGuildMotd(client, character); // Send guild_motd
 	}
 
+	return;
 }
The mystery is why it has worked okay until the last few days, since these changes were made months ago.

Blackstorm:
Document every change you made between 1253 and 1254, so we can find the added Unknowns corrupting player logins. If we cannot find it, we're putting HandleClientAuthConfirm back to the way it was.

Re: Bug 48: (Xinux) Missing UI Elements upon Login

Posted: Fri Aug 07, 2015 7:09 pm
by Blackstorm
viewtopic.php?f=7&t=1555

I just put the code sequence like the live server.

Re: Bug 48: (Xinux) Missing UI Elements upon Login

Posted: Fri Aug 07, 2015 7:18 pm
by John Adams
Edit:
[quote="Blackstorm"]viewtopic.php?f=7&t=1555

I just put the code sequence like the live server.[/quote]
Did you ask any of us if we wanted you to do that, or just decide on your own it's what needed to be done?

Xinux just fixed it. I'm going to let him handle explaining to you what you caused, because I think I'm done finding your issues in this code.

Re: Bug 48: (Xinux) Missing UI Elements upon Login

Posted: Sat Aug 08, 2015 8:16 am
by shargash
[quote="Xinux"]Shargash quick question how long have you had the 180 abilities.[/quote]

I think I did that shortly after creating the character. I think the pre-wipe Shargash had that many, and I set up the new Shargash similarly to the old one pretty directly.