ZaneDubya / UltimaXNA

Ultima Online client in C#/XNA
GNU General Public License v3.0
142 stars 73 forks source link

Targeting does not respond with sphereserver emulator #8

Closed robertdeclaux closed 9 years ago

robertdeclaux commented 9 years ago

After using command ".add c_horse_gray" If i target on ground nothing happens, if i target on my character on first click nothing happens after second click it shows "Targeting cancelled.".

ZaneDubya commented 9 years ago

@robertdeclaux:

This works on RunUO. I noticed from your other opened issue that you use sphereserver. I don't intend to target any other servers until the client is feature complete (if that ever occurs). If you would like to debug this:

When initially writing the client, I would often be running RunUO in one visual studio window, and UltimaXNA in another. That way, I could debug exactly how the client and server were interacting. I recommend doing this with your server.

When the user targets something - either land or an entity - the client eventually calls WorldInput.onTargetingButton(AMapObject worldObject). It then sends the correct kind of packet (either TargetObjectPacket or TargetXYZPacket) to the server. I would check what is happening on the server when it receives these packets.

robertdeclaux commented 9 years ago

Target request then target ground behavior comparison UltimaXNA and Default client Original Client Server -> Client 6C 01 00 00 01 E9 00 00 00 00 00 00 00 00 00 00 00 00 00

Client -> Server 6C 01 00 00 01 E9 00 00 00 00 00 15 3D 04 98 00 00 00 00

UltimaXNA Server -> Client 6C 01 00 00 01 E9 00 00 00 00 00 00 00 00 00 00 00 00 00

Client -> Server // no 01 E9 6C 01 00 00 00 00 00 00 00 00 00 15 3D 04 98 00 00 00 00

Client -> Server // target cancel packet? 6C 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00

ZaneDubya commented 9 years ago

@robertdeclaux Take a look at 19efbd24d21f373a37c0b5715b331e54d4a80866 (pushed to master). Is it fixed?

robertdeclaux commented 9 years ago

default client 6C 01 00 00 01 E9 00 00 00 00 00 15 3D 04 98 00

ultima xna 6C 01 00 00 00 00 00 00 00 00 00 15 3D 04 98 00 if we can send 01 E9 too it will be completely fixed

ZaneDubya commented 9 years ago

Looking at various UO protocol guides, there seems to be some disagreement as to what that value is.

It could be the Serial of the targeting mobile (the player's serial). [1] Is your serial 0x000001E9? Or is could be the ID of the Cursor. [2]

References: [1] http://necrotoolz.sourceforge.net/kairpacketguide/packet6c.htm [2] http://docs.polserver.com/packets/index.php?Packet=0x6C

ZaneDubya commented 9 years ago

For reference, my default client sends this message when targeting:

11:44:48.6312: Client -> Server 0x6C (Length: 19) 0000 6C 01 00 00 00 1B 00 00 00 00 00 09 49 04 A6 00 l...........I... 0010 05 00 00 ...

robertdeclaux commented 9 years ago

I think its cursor id, on mobile now i will check when got home. 24 Mar 2015 18:43 tarihinde "Zane Wagner" notifications@github.com yazdı:

Referencing various UO protocol guides, there seems to be some disagreement as to what that value is.

It could be the Serial of the targeting mobile (the player's serial). Is your serial 0x000001E9? Or is could be the ID of the Cursor. [2]

References: [1] http://necrotoolz.sourceforge.net/kairpacketguide/packet6c.htm [2] http://docs.polserver.com/packets/index.php?Packet=0x6C

— Reply to this email directly or view it on GitHub https://github.com/ZaneDubya/UltimaXNA/issues/8#issuecomment-85593090.

ZaneDubya commented 9 years ago

As it turns out, it's a cursor ID that is unique to the target packet. I've implemented this and pushed it to Master. Should be fixed!

robertdeclaux commented 9 years ago

Wow. So quick :+1: , to remind we can rollback to old target cancel function