Packet reference

Report core bugs regarding the Ultima Online Emulator Core release (version 097). You can attach your Core Dump. One bug per post.
Locked
Keryan
New User
Posts: 11
Joined: Fri Aug 10, 2007 3:30 pm

Packet reference

Post by Keryan »

Hello,

I have problem with editing packets in packet hook, i am trying to change some packets for clients > 6.0.1.6, so i created few packet hooks, this is one of it:

Code: Select all

exported function DropRequest( who, byref packet )

    if(!GetObjProperty( who, NEW_CLIENT ) )
       return 0;   
    endif

    var oldstyle := CreatePacket( 0x08, 14 );
    oldstyle.SetInt32( 1, packet.GetInt32(1) );
    oldstyle.SetInt16( 5, packet.GetInt16(5) );
    oldstyle.SetInt16( 7, packet.GetInt16(7) );
    oldstyle.SetInt8 ( 9, packet.GetInt8 (9) );
    // packet.GetInt8( 10 ) - Grid location
    oldstyle.SetInt32( 10, packet.GetInt32( 11 ) );
    packet := oldstyle;
    return 0;

endfunction
but if i want to use this syntax "packet := oldstyle;" packet would not change at all and core seems to be working with original packet sent by client.
If i do almost the same this way:

Code: Select all

exported function DropRequest( who, byref packet )

    if(!GetObjProperty( who, NEW_CLIENT ) )
       return 0;   
    endif

    var containerID := packet.GetInt32( 11 );
    packet.SetInt32( 10, cointainerID );
    return 0;

endfunction
then its working a little ( I can only drop items on ground, not in containers becouse of the last byte ). I want to create new packet becouse i need to set different size ( new clients are sending 15 bytes, and core needs 14 bytes packet ) and packet.SetSize() is not working on fixed length packets.

So i am curious why assigning new packet object to packet variable isnt working even if packet variable is sent with byref? Or at least is there some another way to pass new packet from script to polcore?
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm

Post by MuadDib »

So the packet change in KR?

Please provide me the info for this changed packet.

Also, do you have it set as variable length in your packet hook?

If core expects 14, that's all it will read btw, if you mod the packet. Even it if it is 15 with newer clients. Can you provide me more info for this?
Turley
POL Developer
Posts: 670
Joined: Sun Feb 05, 2006 4:45 am

Post by Turley »

MuadDib wrote:So the packet change in KR?

Please provide me the info for this changed packet.
Take a look at this file:

http://rapidshare.com/files/51156091/UO ... e.rar.html

found at www.uodev.de
There is a complete uo-protocol file for the clients > 6.x and UOKR.
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm

Post by MuadDib »

Will have to get with him on the packet list. Some things are inconsistent compared to the old guides. I doubt EA removed the Password bytes from the Create Character packet for example.

At any rate, will use it to help update the official packet site, and the html included with core once done also. Thanks for the link mate.
Pierce
Forum Regular
Posts: 420
Joined: Thu Feb 02, 2006 8:33 am

Post by Pierce »

http://rapidshare.com/files/51151320/cheese191.rar.html

FYI MuadDib. To scan the new packets :)
Most changed packets refer to backpacks changed since UOKR. They have a grid now, nevertheless they shown in old style except 1 byte. The most important packets changed are 0x08, 0x25 and 0x3c. There is a lot more to change. I think these are the most important first. Simply to show the backpacks/containers in a right way.
Locked