• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

OTClient Parsing opcodes

margoh

{{ user.title }}
Joined
Apr 1, 2013
Messages
806
Solutions
18
Reaction score
350
Hello,
Straight to the point. I have made empty items otb/xml, spr/dat, added few items and everything works fine, but when I have created item that has animation, it prints error.
When it's in any inventory slot:
Code:
ERROR: ProtocolGame parse message exception (66 bytes unread, last opcode is 4, prev opcode is 120): unhandled opcode 4
Dropping item on the map:
Code:
ERROR: ProtocolGame parse message exception (59 bytes unread, last opcode is 4, prev opcode is 106): unhandled opcode 4
When you push item:
Code:
ERROR: ProtocolGame parse message exception (0 bytes unread, last opcode is 106, prev opcode is 108): InputMessage eof reached

Also, because of lying item on the ground there are problems with rendering gameScreen, sometimes it lacks just a name, sometimes half of the screen is not rendered.
Can someone tell me, why is that happening? And what can I do about it?
(At the moment the only solution is to not make pickable/stackable animated items.)
Thanks.

#Edit: somethings got wrong and now any item/effect sends error.
 
Last edited:
Solution
Fixed:
TFS:
networkmessage.cpp, commented out inside NetworkMessage::addItem(uint16_t id, uint8_t count) and NetworkMessage::addItem(const Item* item):
Code:
//if (it.isAnimation) {
    //addByte(0xFE);    // random phase (0xFF for async)
//}
OTC:
protocolgameparse.cpp, commented out inside ProtocolGame::getItem(const InputMessagePtr& msg, int id)

Code:
    //msg->getU8();
    //item->setPhase();

No errors atm.
Fixed:
TFS:
networkmessage.cpp, commented out inside NetworkMessage::addItem(uint16_t id, uint8_t count) and NetworkMessage::addItem(const Item* item):
Code:
//if (it.isAnimation) {
    //addByte(0xFE);    // random phase (0xFF for async)
//}
OTC:
protocolgameparse.cpp, commented out inside ProtocolGame::getItem(const InputMessagePtr& msg, int id)

Code:
    //msg->getU8();
    //item->setPhase();

No errors atm.
 
Solution
Back
Top