Table of Contents

Target Cursor Commands (0x6C)

Moongate Packet Classes

  • TargetCursorCommandsPacket (Incoming, Fixed, length 19) from src/Moongate.Network.Packets/Incoming/Targeting/TargetCursorCommandsPacket.cs

Current Moongate Behavior

Moongate currently has packet classes for this opcode.

Packet Build

Type Field
BYTE[1] 0x6C
BYTE[1] Cursor Target (see notes)
BYTE[4] Cursor ID
BYTE[1] Cursor Type (see notes)

The following are always sent but are only valid if sent by client

Type Field
BYTE[4] Clicked On ID
BYTE[2] X
BYTE[2] Y
BYTE[1] unknown (0x00)
BYTE[1] Z
BYTE[2] Graphic (if a static tile, 0 if a map/landscape tile)

Subcommand Build

N/A

Notes

Cursor Target

  • 0: Select Object

  • 1: Select X, Y, Z

Cursor Type

  • 0: Neutral

  • 1: Harmful

  • 2: Helpful

  • 3: Cancel current targetting (server sent)

The model # should never be trusted.

Once the server requests the client to target something, the server can undo this also. You can "kill" the targeting cursor faithfully and without any bugs. Send another Packet with Type set to 0 (Object), Cursor ID 00000000, and Cursor Type as 3. The client will respond to this by sending a response to the original request just as if the user had hit ESC to cancel targeting.