Bit of info on the sequence of packets during login.
It used to be:
[Double click on server name]
Client sends 'Hello' (0x08)
Server responds with 'Hello' packet (0x2A)
Client confirms with packet (0x09)
[Now server/client wait for you to type in login info]
Client sends Lgoin packet i.e. user/pass (0x02)
Server would do the following depending on the login result:
Login OK: Respond with Character Select Packet [0x11]
Login Failed: Respond with Login Error packet [0x2B] (containing an error code)
Now, where this has changed with the introduction of the pin system is at the point where the Clients waits for a response to the Login packet. In the case of a successful user/password combo the Server will send Login Error packet except that it's error code is 0, This then prompts the Client to ask for your pin. This pin is sent as in plain text as packet 0x88. To this the server will respond with the Character Select packet (as before) if the pin is correct, or packet 0x8F if pin is wrong (this packet contains codes related to the pin system like bad pin/no pin/pin set/etc)
I dont think an old client will help you. During the Hello phase there as some params sent to the server with client data and I've been sending values from many months ago. It is still asking for the pin. But good luck to you if it works