This port in its current state can't do clientless because I'm really busy in real life to start the handling of the 0x600D packets (lol I shouldn't be on forums either but it's not time consuming
) but it can act directly as a pure Python proxy.
You've to think in this way:
Quote:
[SRO's server] <-> [your python app with pySilkroad] <-> [SRO's Client]
|
Your Python app will connect to the official servers, handle all the security part and it will send unencrypted packets to your SRO client. If you've seen server development, once you've done all the initialization for this security you just have to send the 0x5000 packet with the 0x01 as its flag (which means no security at all).
Then it's just a matter of decrypt packets sent from the server and send them to your client and encrypt the packets sent from the client to the server. So (S=Server, P=Python's Proxy, C=Client):
- [S->P]Server sends encrypted packets
- [P->C]Decryption of packets and sending of them to the client
- [C->P]Client has non encrypted response for the proxy to send to the server
- [P->S]The proxy encrypts them and send them back to the server
The only thing you need to do is to open a listening socket for your client and redirect it to your listening socket.
Also, you've to check for special packets that MUST be encrypted (item movement on inventory and so...).
It sounds complicated but it's not, give it a try, it's by far interesting and also... you could give me a hand by submitting patches or being part of its development (which I'm going to really appreciate
).