Waiting on Data for New Telon
Moderators: Community Managers, Developers
- John Adams
- Retired
- Posts: 4582
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Re: Waiting on Data for New Telon
Dakadin, thanks for looking into this issue. Just FYI, the rev 579 "fix" was really more for the account_id problem, because the id would be invalid with a mixture of old world code and new login code. The login code is a simple fix (put connection_id back to account_id) but there's a reason for the change I was not made aware of. This is why both login and world are at 579, specifically. I think the UDP deadlock issues come around 589 or so.
Re: Waiting on Data for New Telon
Ok found one of the issues with Waiting on Data when you have multiple characters on different servers at least on the current version on the svn.
In world\net.cpp
This seem's to always be returning the first world name in your list of characters and applying it to all your characters regardless of server that is why every character on the same server as the top character is fine where as any character on another server under that get waiting for data.
Here is a packet where the character is actually on New Telon not Telon.
In world\net.cpp
Code: Select all
out->SetStringWide("FirstName", characters[i].GetFirstName().c_str());
out->SetStringWide("LastName", characters[i].GetLastName().c_str());
out->SetStringWide("WorldName", login.GetWorldName());
out->SetUInt32("Class", characters[i].GetAdventureClass());
out->SetUInt32("Level", characters[i].GetAdventureLevel());
out->SetUInt32("Unknown1", 0xFF, 0);
out->SetUInt32("Unknown1", 0xFF, 1);
out->SetUInt32("Unknown1", 0xFF, 2);
out->SetUInt32("Unknown1", 0x30, 3);
out->SetUInt32("Unknown1", 0x0D, 4);
out->SetUInt32("Race", characters[i].GetRaceID());
out->SetUInt32("Gender", characters[i].GetGender());
out->SetInt32("Coord_x", info->coord_x);
out->SetInt32("Coord_y", info->coord_y);
Code: Select all
out->SetStringWide("WorldName", login.GetWorldName());
Here is a packet where the character is actually on New Telon not Telon.
Code: Select all
-- OP_ClientCharacterSelected_ServerCharacterApperance --
8/15/2014 11:05:34
10.15.155.169 -> 10.15.155.168
0000: 02 00 19 00 00 00 F9 01 00 00 6E 00 65 00 77 00 ..........n.e.w.
0010: 74 00 65 00 6C 00 6F 00 6E 00 00 00 00 00 00 00 t.e.l.o.n.......
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0100: 00 00 00 00 00 00 00 00 00 00 54 00 65 00 6C 00 ..........T.e.l.
0110: 6F 00 6E 00 00 00 00 00 00 00 00 00 00 00 00 00 o.n.............
0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0180: 00 00 00 00 00 00 00 00 00 00 1C 00 00 00 01 00 ................
0190: 00 00 FF 00 00 00 FF 00 00 00 FF 00 00 00 30 00 ..............0.
01A0: 00 00 0D 00 00 00 10 00 00 00 00 00 00 00 EC FF ................
01B0: FF FF 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C0: 00 32 32 01 01 01 01 01 01 01 01 01 01 32 32 32 .22..........222
01D0: 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 2222222222222222
01E0: 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 2222222222222222
01F0: 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 00 222222222222222.
0200: 00 00 00 ...
Re: Waiting on Data for New Telon
Awesome job! That was what I suspected and actually was able to reproduce reliably last night. If I created a new account and logged into my server it worked fine but I would get the Waiting on Data when I connected to New Telon.
Re: Waiting on Data for New Telon
yea i messed around with it trying to get it to work pulling the right info but i'm more of a copy/paste tweak LOL we could just add another column to character and have it pull from character unless someone get's it's working right from login.
- John Adams
- Retired
- Posts: 4582
- Joined: Wed Aug 28, 2013 9:40 am
- Location: Phoenix, AZ.
- Contact:
Re: Waiting on Data for New Telon
[quote="Xinux"]we could just add another column to character and have it pull from character unless someone get's it's working right from login.[/quote]
We certainly can add a server_id column to `characters` if you think that's an easy fix. Though I agree, we probably should just get Login fixed to do it right. I can take a look today, I'm about to get into the 580-607 diffs and get our code back into sync.
Edit: Actually, in login we certainly should know the server_id of the world by it's name. We still shouldn't need a server_id world-side.
We certainly can add a server_id column to `characters` if you think that's an easy fix. Though I agree, we probably should just get Login fixed to do it right. I can take a look today, I'm about to get into the 580-607 diffs and get our code back into sync.
Edit: Actually, in login we certainly should know the server_id of the world by it's name. We still shouldn't need a server_id world-side.