Anyone know if this ever got done?
case CLIENT_CONNECTED: {
ClientPacketProc p;
p = ConnectedOpcodes[opcode];
if(p == NULL) {
//TODO: replace this 0 with the EQ opcode
LogFile->write(EQEMuLog::Error, "Unhandled incoming opcode: %s (#%d, eq=0x%04x), size: %i, Client: %s", OpcodeNames[opcode], opcode, 0, app->size, GetName());
if(app->size<1000)
DumpPacket(app->pBuffer, app->size);
else{
cout << "Dump limited to 1000 characters:\n";
DumpPacket(app->pBuffer, 1000);
}
break;
}
Notice that comment: //TODO: replace this 0 with EQ opcode... In the source I am looking at, it seems:
p = ConnectedOpcodes[opcode];
if(p == NULL)
is kicking out the error message when zone.exe starts for a char about OP_AnnoyingZoneUnknown. Thats the first error message we see in zone.exe before we start seeing all those messages about OP_ClientUpdate. Unfortunately, I can not debug this at work atm and will have to wait until I get home to place a break point here to see what this value is.
[Status] 99875 New client from ip
xxxxxxxxx port:1038
[Error] Unhandled incoming opcode: OP_AnnoyingZoneUnknown (#299
e: 8, Client: Tallerin
0: 37 02 00 00 40 00 00 00 | 7...
[Error] OP size error: OP_ClientUpdate expected:38 got:36
[Error] OP size error: OP_ClientUpdate expected:38 got:37
[Error] OP size error: OP_ClientUpdate expected:38 got:36
[Error] OP size error: OP_ClientUpdate expected:38 got:36
[Error] OP size error: OP_ClientUpdate expected:38 got:36
[Error] OP size error: OP_ClientUpdate expected:38 got:36
[Error] OP size error: OP_ClientUpdate expected:38 got:36
[Error] OP size error: OP_ClientUpdate expected:38 got:36
[Error] OP size error: OP_ClientUpdate expected:38 got:36
EDITED: I think I am on to something.. I dont know what OP_AnnoyingZone opcode is suppose to do, but I believe it is wrong in opcodes.cfg. The above log is truncated. (#299 is missing some digits) Right now in the latest opcodes.cfg, OP_AnnoyingZone equals = 0x63da which is 25562 in decimal. The missing digits from the above log, #299... This is the opcode that OP_AnnoyingZone should be, right? I think I am correct but it will have to wait until I get home to check for sure. Meanwhile, if someone wants to try this, just run your server and note that error message and get the full 5 digit number from your output. Then open a calc in windows and switch it to scientific view. Then select "decimal" and type in that 5 digit number, then select "hex" and you should get a number like 0x63da. Then replace that number in your opcodes.cfg for OP_AnnoyingZone and then rerun your server and BE SURE TO COME BACK TO THIS THREAD AND REPORT RESULT THX!!