Page 1 of 1

uo.getz bug and z= of my char bug

Posted: 2009-03-19 22:14:55
by xinxilas
If my z = 0 str(uo.getz('self')) return 0
if my z = 5 str(uo.getz('self')) returns 0

,info on me.. shows Z=0 all the time..

EDIT: hmm if i type ,resend it refreshs the Z

Posted: 2009-03-19 22:28:04
by Grin
Server send Z coordinate very rare.
Use client side Z coodinate:
,info with !manual! target on self (you can use uo.lclick(x, y) where is your char)
and after 15 ms try
Z = uo.LastTile(3)

ex. for 800x600

Code: Select all

sub GetZ()

uo.info()
uo.lclick(400, 260)
wait(15)
return uo.LastTile(3)

endsub

Posted: 2009-03-19 22:46:11
by xinxilas
thanks, its working!

but when i commands ,resend shouldnt the Z get "refreshed" and my Z shows right at ,info
why dont uo.getz works reading the same "memory" of the Z of ,info

Posted: 2009-03-19 22:56:17
by Grin
resend asked server for resend information all around

,info catch information from client, it's own client calculation

Posted: 2009-03-20 00:17:46
by xinxilas
but when i type ,info with my Z (in server and also in client) it will shows on ,info menu Z = 0 > OK
so i go to Z=5 walking to an stair (so Z at server and client Z=5) and when i type ,info it will shows Z=0...
and i must type ,resend...

conclusion: Z=0 of ,infos gump or for injection is not reading the client Z... its like and Z memory

another test:
Im at 100,100,5
then: ,resend
then: go to 100,100,0
then: ,drop 0 0 0 0
itens goes to 100,100,5
then: ,resend
then: then: ,drop 0 0 0 0
itens goes to 100,100,0

Posted: 2009-03-20 02:27:35
by Grin
:)
i'm advice you to use uo.LastTile it mean that Z isn't of your char.
Look here:
Injection ask client to target apear then client own calculate target information and trying send it to server, but injectin catch this try.

Client send

Code: Select all

Packet: 0x6C
Sent By: Both
Size: 19 Bytes


Packet Build
BYTE[1] cmd
BYTE[1] type
0x00 = Select Object
0x01 = Select X, Y, Z
BYTE[4] cursorID
BYTE[1] Cursor Type
0 = ?
1 = ?
2 = ?
3 = Cancel current targetting
The following are always sent but are only valid if sent by client
BYTE[4] Clicked On ID
BYTE[2] click xLoc
BYTE[2] click yLoc
BYTE unknown (0x00)
BYTE click zLoc
BYTE[2] model # (if a static tile, 0 if a map/landscape tile)


but injection haven't handle BYTE click zLoc of target as player Z, but it handle it as Tile information and u have access to it thought uo.LastTile(3)

Posted: 2009-03-20 02:30:13
by xinxilas
I know its okay im using lasttile.. im just reporting this facts:
when i type ,info with my Z (in server and also in client) it will shows on ,info menu Z = 0 > OK
so i go to Z=5 walking to an stair (so Z at server and client Z=5) and when i type ,info it will shows Z=0...
and i must type ,resend...

and:
Im at 100,100,5
then: ,resend
then: go to 100,100,0
then: ,drop 0 0 0 0
itens goes to 100,100,5
then: ,resend
then: then: ,drop 0 0 0 0
itens goes to 100,100,0

Posted: 2009-03-20 02:38:33
by Grin
Server send Z coordinate very rare.

Injection don't calculate it, it just take it from packets.

Visual Z effect is client proof.

Resend take much time and trafic