Page 1 of 1

Editing packets.

Posted: Sat Mar 24, 2007 10:14 pm
by mr bubbles
Is it possible to hook a packet like 0x6C (target cursor) and edit the packet info the client sends?

I want it to always show the result of GetMapInfo() in the last part of the packet, instead of the landtile or static #.

What ive got now is a hook catching the packet and creating a new packet of the same type to what i want. But how do i make POL use the edited packet? I've tried

packet := newpacket;
return 0;

or is it sent via a different packet to the client with the info?

Posted: Sun Mar 25, 2007 8:00 am
by tekproxy
If you want to hook a packet sent by the client and modify it before it gets to the server, that's entirely possible. Make sure it is configured as a recieve hook, and try editing packet instead of setting it to equal another packet.

Posted: Sun Mar 25, 2007 12:25 pm
by mr bubbles
how do i edit "packet"? does .setintx(x, x) overwrite whats there or just make the packet bigger? and how is it different than me creating a new packet and assigning "packet" to that one?

Posted: Mon Mar 26, 2007 6:24 am
by tekproxy
If you use .SetInt16(), etc... you'll be rewriting 16-bytes of memory starting at that offset, which would overwrite the old data. I can't think of a reason that packet := newpacket wouldn't work, but using SetInt16(), etc... would just be the first thing I would check, because I know that way works.

Could you post your code? Maybe it's something else.

Posted: Mon Mar 26, 2007 9:25 am
by Barbeirosa
Does your packethook script declare the packet parameter as byref? If it does not, then nothing at all you do to the packet will stick.

Posted: Mon Mar 26, 2007 5:40 pm
by mr bubbles
ohh, editing packet worked. maybe the packet i created was the wrong size or something :P

Thanks for the help

Posted: Mon Mar 26, 2007 6:23 pm
by tekproxy
Good. :)