iRO 21.12.2012 server merge

International

Moderator: Moderators

pl4y8oy
Human
Human
Posts: 48
Joined: 21 Dec 2012, 07:48
Noob?: Yes

Re: iRO 21.12.2012 server merge

#11 Post by pl4y8oy »

Code: Select all

Connecting to Character Server...
Connecting (128.241.92.98:4500)... connected
================================================
>> Sent packet: 0065  [Character Server Login] [17 bytes]   Dec 21 20:16:00 2012
  0>  65 00 88 DE 43 00 15 5B    A6 02 00 00 00 00 00 00    e...C..[........
 16>  01                                                    .
Sent sendGameLogin
================================================
<< Received packet:      082D [29 bytes]   Dec 21 20:16:01 2012
  0>  2D 08 1D 00 03 06 00 03    03 00 00 00 00 00 00 00    -...............
 16>  00 00 00 00 00 00 00 00    00 00 00 00 00             .............
Received packet: 082D Handler: received_characters
Received characters from Character Server
There are no characters on this account.
------------ Character selection ------------
#   Choice
0   Create a new character
------------------------
Please choose a character or an action.
---------------------------------------------
Enter your answer:
Seems some problem in receiving the char info. it only contains 29 bytes... should be bigger ...
Will try wireshark the official client
pl4y8oy
Human
Human
Posts: 48
Joined: 21 Dec 2012, 07:48
Noob?: Yes

Re: iRO 21.12.2012 server merge

#12 Post by pl4y8oy »

After checking the wireshark data, they change they way to retrieve chars...

openkore need to send another packet after " << Received packet: 082D "

This is the data received from RO characters servers:

Code: Select all

2d:08:1d:00:03:06:00:03:03:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:a0:09:0a:00:00:00
Then RO official Client sent this:

Code: Select all

a1:09
Then we got the chars info (148 byte - include data headers for one chars)
<--hide because it has my char info :))

This definitely need developer advice...
pl4y8oy
Human
Human
Posts: 48
Joined: 21 Dec 2012, 07:48
Noob?: Yes

Re: iRO 21.12.2012 server merge

#13 Post by pl4y8oy »

yver wrote:so what should we do with the data?
i suspected the received character in iro.pm has something to do with the error but i dunno what to do with it
yes, something should be added in iro.pm or ServerType0.pm

openkore should send
a1:09
after receveing packet "082D". Currently openkore expect the chars info in "082D", which is not the case in this new chaos server. I compared with Classic Loki, where the chars info is still in "082D"...

Unfortunately I do not know about perl, tried to read that two .pm files, and got dizzy :roll:
EternalHarvest
Developers
Developers
Posts: 1798
Joined: 05 Dec 2008, 05:42
Noob?: Yes

Re: iRO 21.12.2012 server merge

#14 Post by EternalHarvest »

Everything already figured out by our contributors, except of how exactly to differentiate between cases with only one 099D packet and with multiple 099D packets finished by empty 099D packet. If there would be no better way, short timeout to wait for all packets will be used.
tearbleu
Noob
Noob
Posts: 3
Joined: 21 Dec 2012, 00:28
Noob?: Yes

Re: iRO 21.12.2012 server merge

#15 Post by tearbleu »

I would like to point out that kafra storage has also been changed! thanks!
yver
Noob
Noob
Posts: 11
Joined: 20 Dec 2012, 23:13
Noob?: Yes

Re: iRO 21.12.2012 server merge

#16 Post by yver »

i saw several person with healing bot, so are they have some way to log in with openkore or they use different program?
grande
Noob
Noob
Posts: 10
Joined: 21 Dec 2012, 09:06
Noob?: Yes

Re: iRO 21.12.2012 server merge

#17 Post by grande »

yver wrote:i saw several person with healing bot, so are they have some way to log in with openkore or they use different program?
yeah i saw it too.. i was like how the hell they can boting.. i wan to ask them how but since they are bot it was useless.
i really hope these guys can find solution to this problem.
support
Noob
Noob
Posts: 11
Joined: 21 Dec 2012, 05:07
Noob?: No

Re: iRO 21.12.2012 server merge

#18 Post by support »

I managed to get the login working, but I can assure you...what you're gonna see ingame isn't pretty. Storage isn't working, inventory shows up as blank, and there are a ton of unexpected packets popping up. There's a ton of work to be done.

I'll try to clean up what I did and put it here in a little. I'm not a perl developer (this was literally my first time even looking at it), but I managed to get it at least logging in.

Regarding the login packets...I think EternalHarvest was wondering about the different in packets. Here's what I did, essentially:

082D - it's no longer the receive chars packet (at least according to me...I have no idea what it is)

When I get that, I have it call a sub in Send.pm that does this:

my $msg = pack("C*", 0xA1, 0x09);
$self->sendToServer($msg);

in a loop, 10 total times. I don't know what this is for, but it's needed to get the server to send the character packets (now 099D) - saw this happening in Wireshark every time following 082D.

After that, you'll get 099D of length 436. The scanning process that the client seems to be taking is save the entire first 099D packet. Then, you'll get a second packet. It sends ones of length 436, 436, and then > 436. After you get the first, you just keep appending until you get a 099D that's of length 4 or of length > 436. If it's > 436, you append it and you're done. If it's 4, you send what you already had concatenated. (Note: when I say append, I don't mean the entire packet - the first one is the entire, but the rest need to have the header (which I consider non-char blocks) trimmed).

Then you let it pass the whole concatenated message off to the handler.

Char block size is 144.

Sorry if my perl lingo is off. Again, I'm not a perl dev. Just figuring things. =)

EDIT: I'll put the fix up in a little - you people had better help with the rest...or else kore is done. Contribute!
User avatar
ChrstphrR
Testers Team
Testers Team
Posts: 42
Joined: 09 May 2010, 17:30
Noob?: No
Location: Northern Alberta, Canada

Re: iRO 21.12.2012 server merge

#19 Post by ChrstphrR »

support wrote:I managed to get the login working, but I can assure you...what you're gonna see ingame isn't pretty. Storage isn't working, inventory shows up as blank, and there are a ton of unexpected packets popping up. There's a ton of work to be done.

I'll try to clean up what I did and put it here in a little. I'm not a perl developer (this was literally my first time even looking at it), but I managed to get it at least logging in.

Regarding the login packets...I think EternalHarvest was wondering about the different in packets.
Yes, I managed to test some of the patches harvest has tossed about on IRC to try to solve this out, and there's still clunkiness with the 099d packet handling.
I have a car to fix, which will get me where I'm going for Christmas, so... my work on testing will be interrupted, alas.

*IF* you only have 0 to 3 characters on an account post merge, it works! ... and you get to the zone, and find the issues you found:

- Inventory's empty
- Carts are empty, but show item counts and weight properly
- Storage (all three) are empty, but show the bins in use/total bins in storage properly.

Without having looked at the packets further, 0900, 0901, 0902 are associated with map loading when you drop into the world, and need to be handled. They probably cover inventory, cart, and ... something else?

For storage, there are unhandled 0975 and 0976 packets that probably will clear up the issues with storage items being visible.
In addition to that, people will want to modify their auto storage settings, because now there's 3 storage lockers available:
Main - Formerly Ymir
Storage 1 (Yggdrasil)
Storage 2 (Valkyrie)

The good change with that - though, the 2 & 3 storage lockers WILL eventually be frozen so they're remove-only, right now you have room for 600 bins in each storage.
I know on my primary account I will have a LOT of fussing about, consolidating my inventory.
EternalHarvest
Developers
Developers
Posts: 1798
Joined: 05 Dec 2008, 05:42
Noob?: Yes

Re: iRO 21.12.2012 server merge

#20 Post by EternalHarvest »

Connection to the game should work with r8342.
support wrote: If it's 4, you send what you already had concatenated.
The only trouble was that if your account has only 1 or 2 charactes, that "final" 4-byte-length packet is not present at all.