These are chat archives for ZaneDubya/UltimaXNA

25th
Nov 2015
Jeff Boulanger
@jeffboulanger
Nov 25 2015 02:38
B9 is feature enabling, if I remember correctly the server doesn't expect a response http://docs.polserver.com/packets/index.php?Packet=0xB9
08 would be the bit flag for LBR
I think the server is waiting on something else, if I had to guess the older client might send a packet to the server that the newer client isn't sending. You should try logging in on a newer client to a newer server and look at the packet order and see
Alternatively you can register a handler for b9 and not to anything and see what happens
I fact maybe that's the problem, since b9 isn't handled it doesn't know where the next packet begins, which makes sense why it's not continueing
Jeff Boulanger
@jeffboulanger
Nov 25 2015 02:46
Ok what is happening is either the packet isn't registered or it's the wrong big length. The older client packet size is 2 bytes, newer is 4. If you look at the packet in the log, at index 3 A9 is sent, which is the start location packet for entering the game world. So you either need to find the b9 registration and fix the length or add it cause it's missing
https://github.com/ZaneDubya/UltimaXNA/blob/master/dev/Ultima/Login/LoginClient.cs it looks like both r registered so the next question is why they aren't getting hit. I wonder if the login client is in registering the handler to soon for legacy server versions. IE, the packet ordering is different.
Taras Polishchuk
@wake-up-neo
Nov 25 2015 11:02
Yes, they are both registered, with 3-bytes length for one kind of servers, and 5-bytes length for the newer. That is why I have no clue on why it is not recognized. According to http://necrotoolz.sourceforge.net/kairpacketguide/packeta9.htm it is OK that B9 was sent prior to this packet.
Taras Polishchuk
@wake-up-neo
Nov 25 2015 11:27
The only idea I have now is to make do-while loop inside DecompressOnePacket with reading the first byte and trying to slice the packets which have fixed length. But still believe that we are missing somethings obvious for this case. Maybe some encryption or whatever @ZaneDubya
Jeff Boulanger
@jeffboulanger
Nov 25 2015 16:02
I think u need to step through the code and find out what's really failingn
Out break points to see if the packet handle is being jnregistered
Unregistered*
Jeff Boulanger
@jeffboulanger
Nov 25 2015 16:28
Put a breakpoint in LoginClient.cs Dispose function and see if it is getting called before you receive the B9 packet
    public void Dispose()
    {
        StopKeepAlivePackets();

        for (int i = 0; i < m_RegisteredHandlers.Count; i++)
            m_Network.Unregister(m_RegisteredHandlers[i].Item1, m_RegisteredHandlers[i].Item2);
        m_RegisteredHandlers.Clear();
        m_RegisteredHandlers = null;
    }
Taras Polishchuk
@wake-up-neo
Nov 25 2015 23:38
Thanks @jeffboulanger will try soon