Page 1 of 1

cliloc and 0xbf 0x10 subcmd

Posted: Fri Aug 23, 2013 3:58 am
by Voicer
I am fighting with the auto update of cliloc (megacliloc package) other than changing names of the items or using increvision (which is almost perfect solution).

I wonder how to do it with packets only and I managed to build a packet that updates the cliloc when used by command:

Code: Select all

// refresh cliloc info through packets.
var newpacket := CreatePacket (0xBF, MSGLEN_VARIABLE );
newpacket.SetSize(12+8);
newpacket.SetInt16(03, 0x10);
newpacket.SetInt32(05, xObject.serial);
newpacket.SetInt32(09, I_HAVE_NO_IDEA);
newpacket.SendPacket(who);
I_HAVE_NO_IDEA: using xobject.serial or even who.serial still works.

The problem is that I do not fully understand the packet and when it should be sent. Anyone has any experience? For me it seems that something is missing server-side, if for example POLCLASS_ITEM object have any properties changed, it should send a packet to client so the client could request cliloc update.

I hope you have any findings, anything would help!

If no I will go with the SpyUO + RunUO path to see how it works there, so far SpyUO hangs when I try to attach it to my 5.0.9.1 client :/

Btw - polcore I use - latest SVN.

Re: cliloc and 0xbf 0x10 subcmd

Posted: Fri Aug 23, 2013 10:35 am
by Tomi
That packet is the old object cache packet and the "I HAVE NO IDEA" is the revision hash
That packet was replaced with packet 0xDC during clientversion change 4 -> 5
Here you have some explanation of how they are sent written by Turley in core changes
Added: support for new ObjectCacheInfos introduced in 5.0.0
old behavior: Server sends 0xBF Sub 0x10 per object ->Client response also with 0xBF Sub 0x10 per item
new behavior: Server sends 0xDC per object -> Client response with 0xD6 (there can be more then one serial up to ~16)
intern check is
if ((ssopt.ForceNewObjCachePackets) || (isUOKR) || (clientversion.major>=5))
since the client sends his clientversion not instantly the first few ObjCacheInfos are sent
the old way (thats why the new ssopt is added)
Note: since client 6.0.5.0 the clientversion is instantly known (new seed packet)
And as a note IncRevision is first increasing the revision value and then sending these packets to all clients in range, so it should work aswell as your packet build.

So about sending packets you should use 0xDC with the later clients, but why not just use the IncRevision function or is it not working ?

Re: cliloc and 0xbf 0x10 subcmd

Posted: Sat Aug 24, 2013 12:10 am
by Voicer
thanks for help, I will give it a try. I was just curious about this packet.

Re: cliloc and 0xbf 0x10 subcmd

Posted: Fri Apr 04, 2014 4:52 am
by Harley
Hey guys! I'm very need your help! I have thoose problem, that after some SetObjProperty( item ...) information didn't display.
In packets I don't understanding :(
Please, help me with some working script!

With best regards!

Re: cliloc and 0xbf 0x10 subcmd

Posted: Fri Apr 04, 2014 6:47 am
by qrak
Harley wrote:Hey guys! I'm very need your help! I have thoose problem, that after some SetObjProperty( item ...) information didn't display.
In packets I don't understanding :(
Please, help me with some working script!

With best regards!
Add after setobjproperty IncRevision(item). Works for me.

Re: cliloc and 0xbf 0x10 subcmd

Posted: Fri Apr 04, 2014 11:26 pm
by Harley
qrak wrote: Add after setobjproperty IncRevision(item). Works for me.
Qrak, thank u! Helped!

Re: cliloc and 0xbf 0x10 subcmd

Posted: Sat Apr 05, 2014 5:42 am
by qrak
Harley wrote:
qrak wrote: Add after setobjproperty IncRevision(item). Works for me.
Qrak, thank u! Helped!
No problem, please give me link to your shard www

Re: cliloc and 0xbf 0x10 subcmd

Posted: Sat Apr 05, 2014 7:33 am
by Harley
qrak wrote:
Harley wrote:
qrak wrote: Add after setobjproperty IncRevision(item). Works for me.
Qrak, thank u! Helped!
No problem, please give me link to your shard www
http://uozhk.com/

We will change this site & domain in week.