So I was testing the chat input to see if I got rid of the assertions that were thrown. But now I found this:
ALT GR + e on an azerty keyboard normally gives you a euro (€) sign. In the input box it's a question mark instead, When submitting the text the server throws the following two exceptions:
Probably some bug in netgore?
EDIT:
A user also found a silly bug which I have submitted to the issue tracker #289
It does this every single time I try to send the character in the chatbox. If you explain how I can check the packets etc I'll be happy to help.
I'm about to head out, so it'll have to be like 12+ hours from now. But briefly on how to track the packets... you can see them in the log. You can also put a break point on the MessageProcessorManager around:
// Call the processor InvokeProcessor(socket, processor, data);
(it is here that the method handling the packet gets called)
I'd recommend watching the log first and find the individual packets being called, then put a break-point on the handlers for those packets (the ones with the [MessageHandler] attribute) and check the sanity of the values it reads. Even just the potential suspicious packets would be a very helpful start.
By the way, you'll likely be wanting to track messages going from server -> client, not client -> server. Doesn't sound like anything invalid goes to the client from this.
Huh? Isn't it a packet going from the client to the server that's causing this error, so client -> server?
Whoops, that is what I meant.
Not sure why it'd do that, but those are just assertions so it should be fine to ignore. Though since inventory slot 48 doesn't even exist, it may be a malformed packet. Try to find out what packet(s) are sent immediately before this assertion and how it can be reliably created.