Inventory hotkey bug?

5 replies [Last post]
Posts: 1030

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:

http://min.us/mvk9XUZ

Probably some bug in netgore?

EDIT:

A user also found a silly bug which I have submitted to the issue tracker #289

Posts: 1691

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.

Posts: 1030

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.

Posts: 1691

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.

Posts: 1030

Huh? Isn't it a packet going from the client to the server that's causing this error, so client -> server?

Posts: 1691

Whoops, that is what I meant.