Packet Handling (Python 3.4)
PyOT is receiving differents packet type for the same action, so it never know what handle to use.
For example, if you try to walk, sometime handleUseWith will be called, sometimes handleLogout.
Tried finding the root of the problem, and I went as far as gameserver.py@GameProtocol.onPacket
To debug I disabled handle call and only printed packet.data trying to figure out a pattern.
Packet type (base.py@BaseProtocol.handle) is seemingly random as well as packetData()
Comments (6)
-
reporter -
reporter It seems onFirstPacket is always the same 0xA
-
reporter When you try to say something in-game, packet.uint8() returns the first bit of what you tried to say.
-
reporter service/gamserver.py@onPacket
if you set packet.pos = 0, when you try to say something the first 2 bytes is the size of the text, always. Going back even further I didn't find anything interesting enough.
-
Issue is related to non-CFFI crypto methods in otcrypto.py. This can be reproduced by disabling CFFI. (python3-cffi package on ubuntu).
The bug has been addressed by r2271, 1a880864dfc3
-
- changed status to resolved
- Log in to comment
Later today I'm going to look into otcrypto.decryptXTEA(packet.getData(), self.xtea) and onFirstPacket(self, packet)