Merge pull request #2 from dozmus/master

Fix 317 pages
This commit is contained in:
Deniz Ozmus 2018-10-13 14:52:38 +01:00 committed by GitHub
commit 821175a26a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
109 changed files with 2148 additions and 1932 deletions

View File

@ -1,11 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Add
friend\|description=Sent when a player adds a friend to their friends
list.\|opcode=188\|type=Fixed\|length=8\|revision=317}} == Add Friend ==
=== Description ===
# Add Friend
This packet is sent when a player adds a friend to their friends list.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Long\]\] \| The other players ID.
\|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Add friend |
| Description | Sent when a player adds a friend to their friends list. |
| Opcode | 188 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Long](/Data-Types.html#common-data-types) | The other players ID. |

View File

@ -1,13 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Add
ignore\|description=Sent when a player adds another player to their
ignore list.\|opcode=133\|type=Fixed\|length=8\|revision=317}} == Add
Ignore ==
# Add Ignore
This packet is sent when a player adds another player to their ignore list.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Add ignore |
| Description | Sent when a player adds another player to their ignore list. |
| Opcode | 133 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
This packet is sent when a player adds another player to their ignore
list.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Long\]\] \| The other players ID.
\|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Long](/Data-Types.html#common-data-types) | The other players ID. |

View File

@ -1,20 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Alternate Item Option 2\|description=Sent when the player
clicks the alternate second option of an
item.\|opcode=16\|type=Fixed\|length=6\|revision=317}} == Alternate Item
Option 2 ==
# Alternate Item Option 2
This packet is sent when a player clicks the alternate second option of an item.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Alternate Item Option 2 |
| Description | Sent when the player clicks the alternate second option of an item. |
| Opcode | 16 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
This packet is sent when a player clicks the alternate second option of
an item.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
Standard Data Types\|Special A\]\] \| The ID of the item. \|- \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The slot the item is in. \|- \|- \| \[\[Data
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\]
\| The frame ID. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The ID of the item. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot the item is in. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The frame ID. |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Animation reset\|description=Resets all animations in the
immediate area. \|opcode=1\|type=Fixed\|length=0\|revision=317}} ==
Animation Reset ==
=== Description ===
# Animation Reset
Resets all animations for players and npcs in the surrounding area.
## Packet Details
| Key | Value |
|--|--|
| Name | Animation reset |
| Description | Resets all animations in the immediate area. |
| Opcode | 1 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,11 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Attack (NPC)\|description=Sent when a player attacks an
NPC\|opcode=72\|type=Fixed\|length=2\|revision=317}} == Attack (NPC) ==
=== Description ===
# Description
This packet is sent when a player attacks an NPC.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data
Types\#Non Standard Data Types\|Special A\]\] \| The NPC ID. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Attack (NPC) |
| Description | Sent when a player attacks an NPC |
| Opcode | 72 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The NPC ID. |

View File

@ -1,13 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Audio\|description=Sets what audio/sound is to play at a
certain moment.\|opcode=147\|type=Fixed\|length=N/A\|revision=317}} ==
Audio ==
=== Description ===
# Audio
Sets what audio/sound is to play at a certain moment.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Word\|Word\]\] \| The sound id. \|- \| \[\[Data
Types\#Byte\|Byte\]\] \| The volume. \|- \| \[\[Data
Types\#Word\|Word\]\] \| The delay. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Audio |
| Description | Sets what audio/sound is to play at a certain moment. |
| Opcode | 147 |
| Type | Fixed |
| Length | N/A |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The sound id. |
| [Byte](/Data-Types.html#common-data-types) | The volume. |
| [Short](/Data-Types.html#common-data-types) | The delay. |

View File

@ -1,18 +1,21 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Bank
10 items\|description=Sent when a player banks 10 of a certain
item.\|opcode=43\|type=Fixed\|length=6\|revision=317}} == Bank 10 Items
==
# Bank 10 Items
This packet is sent when the player attempts to bank 10 of a certain item.
=== Description ===
Note: This packet is also used for selling/buying 5 of an item from a shop.
This packet is sent when the player attempts to bank 10 of a certain
item.<br> '''Note:''' This packet is also used for selling/buying 5 of
an item from a shop.
## Packet Details
| Key | Value |
|--|--|
| Name | Bank 10 items |
| Description | Sent when a player banks 10 of a certain item. |
| Opcode | 43 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The frame ID. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The item ID. \|- \| \[\[Data Types\#Standard
data types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special
A\]\] \| The slot ID. \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The frame ID. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot ID. |

View File

@ -1,19 +1,21 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Bank
5 items\|description=Sent when a player attempts to bank 5 of a certain
item.\|opcode=117\|type=Fixed\|length=6\|revision=317}} == Bank 5 Items
==
# Bank 5 Items
This packet is sent when a player attempts to bank 5 of a certain item.
=== Description ===
Note: This packet is also used for buying/selling 1 of an item from a shop.
This packet is sent when a player attempts to bank 5 of a certain
item.<br> '''Note:''' This packet is also used for buying/selling 1 of
an item from a shop.
## Packet Details
| Key | Value |
|--|--|
| Name | Bank 5 items |
| Description | Sent when a player attempts to bank 5 of a certain item. |
| Opcode | 117 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data Types\#Little
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The item ID.
\|- \| \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The slot ID. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The frame ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The slot ID. |

View File

@ -1,16 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Bank
x items part-1\|description=Sent when a player requests to bank an X
amount of items.\|opcode=135\|type=Fixed\|length=6\|revision=317}} ==
Bank X Items Part-1 ==
=== Description ===
# Bank X Items Part-1
This packet is sent when a player requests to bank an X amount of items.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The items slot. \|- \| Unsigned
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
Standard Data Types\|Special A\]\] \| The interface ID. \|- \| \[\[Data
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data
types\|Short\]\] \| The item ID. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Bank x items part-1 |
| Description | Sent when a player requests to bank an X amount of items. |
| Opcode | 135 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The items slot. |
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The item ID. |

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=bank
x items part-2\|description=Sent when a player enters an X amount of
items they want to
bank.\|opcode=208\|type=Fixed\|length=4\|revision=317}} == Bank X Items
Part-2 ==
# Bank X Items Part-2
This packet is sent when a player enters an X amount of items they want to bank.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | bank x items part-2 |
| Description | Sent when a player enters an X amount of items they want to bank. |
| Opcode | 208 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
This packet is sent when a player enters an X amount of items they want
to bank.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Integer\]\] \| The amount of the
item you want to bank. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Int](/Data-Types.html#common-data-types) | The amount of the item you want to bank. |

View File

@ -1,19 +1,21 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Bank
all items\|description=Sent when a player banks all of a certain item
they have in their
inventory.\|opcode=129\|type=Fixed\|length=6\|revision=317}} == Bank 10
Items ==
# Bank 10 Items
This packet is sent when a player banks all of a certain item they have in their inventory.
=== Description ===
Note: This packet is also used for selling/buying 10 items at a shop.
This packet is sent when a player banks all of a certain item they have
in their inventory. <br> '''Note:''' This packet is also used for
selling/buying 10 items at a shop.
## Packet Details
| Key | Value |
|--|--|
| Name | Bank all items |
| Description | Sent when a player banks all of a certain item they have in their inventory. |
| Opcode | 129 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data
Types\#Non Standard Data Types\|Special A\]\] \| The items slot ID. \|-
\| Unsigned \[\[Data Types\#Standard data types\|Short\]\] \| The
interface ID. \|- \| Unsigned \[\[Data Types\#Standard data
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\]
\| The item ID. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The items slot ID. |
| Unsigned [Short](/Data-Types.html#common-data-types) | The interface ID. |
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |

View File

@ -1,6 +1,2 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Player Updating
==
=== Description ===
# Player Updating
This packet begins the player updating.

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Button click\|description=Sent when a player clicks an
in-game button.\|opcode=185\|type=Fixed\|length=2\|revision=317}} ==
Button click ==
# Button click
This is sent when a player clicks a button in-game, with the id of the button being clicked.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Button click |
| Description | Sent when a player clicks an in-game button. |
| Opcode | 185 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
This is sent when a player clicks a button in-game, with the id of the
button being clicked.
=== Packet Structure ===
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data types\|Short\]\] \| The button id. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The button id. |

View File

@ -1,14 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Camera movement\|description=Sent when the player moves
the camera.\|opcode=86\|type=Fixed\|length=4\|revision=317}} == Camera
Movement ==
=== Description ===
# Camera Movement
This packet is sent when a player moves their game camera.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \| The Y coordinate of
the camera. \|- \| \[\[Data Types\#Standard data types\|Short\]\]
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The X
coordinate of the camera. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Camera movement |
| Description | Sent when the player moves the camera. |
| Opcode | 86 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The Y coordinate of the camera. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The X coordinate of the camera. |

View File

@ -1,56 +1,70 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Camera oscillate\|description=Begin camera
oscillation\|opcode=35\|type=Fixed\|length=4\|revision=317}} == Camera
oscillate ==
# Camera oscillate
Begins camera oscillation, which is implemented using a configurable sinusoidal oscillator to offset a specific degree of freedom.
=== Description === Begins camera oscillation, which is implemented
using a configurable sinusoidal oscillator to offset a specific degree
of freedom.
## Packet Details
| Key | Value |
|--|--|
| Name | Camera oscillate |
| Description | Begin camera oscillation. |
| Opcode | 35 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
=== Packet Structure ===
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | Parameter (camera X, Z, Y, yaw, pitch) |
| [Byte](/Data-Types.html#common-data-types) | Jitter (for randomization) |
| [Byte](/Data-Types.html#common-data-types) | Amplitude |
| [Byte](/Data-Types.html#common-data-types) | Frequency (scaled by 100) |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data types\|Byte\]\] \| Parameter (camera X, Z, Y, yaw, pitch) \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| Jitter - for
randomization \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \|
Amplitude \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \|
Frequency (scaled by 100) \|- \|}
## Other Information
The oscillate event enables the client to oscillate one of 5 of it's position parameters.
i.e. corresponding to the camera's degrees of freedom; parameters 0, 1, and 2 refer to the location of the camera, while 3 and 4 deal with the camera's orientation.
Together, these enable complex effects involving manipulation of the camera position to give rise to simulated earth-quakes and camera shock.
=== Other Information === The oscillate event enables the client to
oscillate one of 5 of it's position parameters, i.e. corresponding to
the camera's degrees of freedom; parameters 0, 1, and 2 refer to the
location of the camera, while 3 and 4 deal with the camera's
orientation. Together, these enable complex effects involving
manipulation of the camera position to give rise to simulated
earth-quakes and camera shock. {\| border=2 ! Parameter ! Description
\|- \| 0 \| Camera location along world X axis (a horizontal axis,
aligned with map grid X) \|- \| 1 \| Camera location along world Z axis
(vertical axis) \|- \| 2 \| Camera location along world Y axis (a
horizontal axis, aligned with map grid Y) \|- \| 3 \| Camera orientation
in world X plane w.r.t. world Z axis, i.e. yaw \|- \| 4 \| Camera
orientation in world Z plane w.r.t. world X axis, i.e. pitch \|- \|}
Note there is no built-in way to manipulate camera roll, as this is not
one of the camera's degrees of freedom.
| Parameter | Description |
|--|--|
| 0 | Camera location along world X axis (a horizontal axis, aligned with map grid X) |
| 1 | Camera location along world Z axis (vertical axis) |
| 2 | Camera location along world Y axis (a horizontal axis, aligned with map grid Y) |
| 3 | Camera orientation in world X plane w.r.t. world Z axis, i.e. yaw |
| 4 | Camera orientation in world Z plane w.r.t. world X axis, i.e. pitch |
=== What it's doing === Every time the world is rendered, each camera
parameter that is enabled for oscillation is offset by a value computed
as follows: {\| border=2 ! Calculation ! Formula \|- \| Delta \| (int)
((Math.random() \* (double) (jitter \* 2 + 1) - (double) jitter) +
Math.sin((double) phase \* ((double) frequency / 100D)) \* (double)
amplitude); \|- \|} Each parameter's phase accumulator (phase) is
incremented by 1 each logic update.
Note there is no built-in way to manipulate camera roll, as this is not one of the camera's degrees of freedom.
=== Parameter === The offset itself is detailed as follows for each
parameter: {\| border=2 ! Parameter ! Action \|- \| 0 \| camera\_x +=
delta \|- \| 1 \| camera\_z += delta \|- \| 2 \| camera\_y += delta \|-
\| 3 \| camera\_yaw = camera\_yaw + delta & 0x7ff; \|- \| 4 \|
camera\_pitch += delta \|- \|} Note that the camera's yaw is corrected
modulo 0x7ff, or 2048, which is equivalent to 2{{{pi}}} radians in
Jagex's binary angle system. This is not done to the camera pitch, which
is instead clamped (see below).
## What it's doing
Every time the world is rendered, each camera parameter that is enabled for oscillation is offset by a value computed as follows:
=== Note === For oscillating the camera pitch, clamping is done to
ensure the angle not out of bounds: {\| border=2 \|- \|if (camera\_pitch
\< 128) then camera\_pitch = 128 \|- \|if (camera\_pitch \> 383) then
camera\_pitch = 383 \|- \|} This is do to Jagex restricting the possible
range of orientations the camera may take.
| Calculation | Formula |
|--|--|
| Delta | `(int) ((Math.random() * (double) (jitter * 2 + 1) - (double) jitter) + Math.sin((double) phase * ((double) frequency / 100D)) * (double) amplitude);` |
Each parameter's phase accumulator (phase) is incremented by 1 each logic update.
## Parameter
The offset itself is detailed as follows for each parameter:
| Parameter | Action |
|--|--|
| 0 | `camera_x += delta` |
| 1 | `camera_z += delta` |
| 2 | `camera_y += delta` |
| 3 | `camera_yaw = camera_yaw + delta & 0x7ff;` |
| 4 | `camera_pitch += delta` |
Note that the camera's yaw is corrected modulo 0x7ff, or 2048, which is equivalent to 2 \pi radians in Jagex's binary angle system.
This is not done to the camera pitch, which is instead clamped (see below).
## Note
For oscillating the camera pitch, clamping is done to ensure the angle not out of bounds:
```java
if (camera_pitch < 128)
camera_pitch = 128
if (camera_pitch > 383)
camera_pitch = 383
```
This is due to Jagex restricting the possible range of orientations the camera may take.

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Chat
interface click\|description=Received when a button is pressed, in a
chat interface.\|opcode=40\|type=Fixed\|length=2\|revision=317}} == Chat
interface click ==
# Chat interface click
Received by the server when a button is pressed in a [Chat interface](Chat-interface.html).
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Chat interface click |
| Description | Received when a button is pressed, in a chat interface. |
| Opcode | 40 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
Received by the server when a button is pressed in a chat interface
\[http://rswiki.moparisthebest.com/index.php?title=317:Chat\_interface\].
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \| Frame ID. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | Frame ID. |

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Chat
interface\|description=Shows an interface in the chat
box.\|opcode=164\|type=Fixed\|length=2\|revision=317}} == Chat Interface
==
=== Description ===
# Chat Interface
This packet attaches an interface to the chat box.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The interface ID. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Chat interface |
| Description | Shows an interface in the chat box. |
| Opcode | 164 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The interface ID. |

View File

@ -1,14 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Chat
settings\|description=Sends the chat privacy
settings\|opcode=206\|type=Fixed\|length=3\|revision=317}} == Chat
Settings ==
=== Description ===
# Chat Settings
This packet sends the chat privacy settings.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| Public chat setting.
\|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| Private chat
setting. \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| Trade
setting. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Chat settings |
| Description | Sends the chat privacy settings |
| Opcode | 206 |
| Type | Fixed |
| Length | 3 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | Public chat setting. |
| [Byte](/Data-Types.html#common-data-types) | Private chat setting. |
| [Byte](/Data-Types.html#common-data-types) | Trade setting. |

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Clear
Inventory\|description=Used to set all of the items and item stacks in
an inventory to
nothing.\|opcode=72\|type=Fixed\|length=2\|revision=317}} == Clear
inventory ==
# Clear inventory
Clears a given inventory, by setting all of its item ids to negative one and its item stacks to zero.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Clear Inventory |
| Description | Used to set all of the items and item stacks in an inventory to nothing. |
| Opcode | 72 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
This packet creates a loop through a given inventory interface id and
sets the item ids to negative one and the item stacks to zero.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The interface ID. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The interface ID. |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Clear
screen\|description=Clears the screen of all open
interfaces.\|opcode=219\|type=Fixed\|length=0\|revision=317}} == Clear
Screen ==
=== Description ===
# Clear Screen
Removes all open interfaces from the players screen.
## Packet Details
| Key | Value |
|--|--|
| Name | Clear screen |
| Description | Clears the screen of all open interfaces. |
| Opcode | 219 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,10 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Close
window\|description=Sent when a player presses the close, exit or cancel
button on an
interface.\|opcode=130\|type=Fixed\|length=0\|revision=317}} == Close
Window ==
# Close Window
This packet is sent when a player presses the close, exit or cancel button on an interface.
=== Description ===
This packet is sent when a player presses the close, exit or cancel
button on an interface.
## Packet Details
| Key | Value |
|--|--|
| Name | Close window |
| Description | Sent when a player presses the close, exit or cancel button on an interface. |
| Opcode | 130 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,37 +1,39 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Construct map region\|description=Constructs a new map
region from a palette of 8x8 tiles.\|opcode=241\|type=Variable
Short\|length=N/A\|revision=317}} == Construct Map Region ==
# Construct Map Region
The construct map region packet sends a dynamic map region that is constructed by using groups of 8x8 tiles.
It is generally used for instanced areas, such as fight caves, and in later revisions, player owned houses.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Construct map region |
| Description | Constructs a new map region from a palette of 8x8 tiles. |
| Opcode | 241 |
| Type | Variable Short |
| Length | N/A |
| Revision | 317 |
The construct map region packet sends a dynamic map region that is
constructed by using groups of 8\*8 tiles. It is generally used for
instanced areas, such as fight caves, and in later revisions, player
owned houses.
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The region Y coordinate (absolute Y coordinate / 8), plus 6. |
| Bit block | See below. |
| [Short](/Data-Types.html#common-data-types) | The region X coordinate (absolute X coordinate / 8), plus 6. |
=== Packet Structure ===
## Bit block
The bit block contains the 'palette' of map regions to make up the new region.
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special
A\]\] \| The region Y coordinate (absolute Y coordinate / 8), plus 6.
\|- \| \[\[\#Bit block\|Bit block\]\] \| See below. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \| The region X coordinate
(absolute X coordinate / 8), plus 6. \|}
A loop is used to construct it, as follows:
==== Bit block ====
The bit block actually contains the 'palette' of map regions to make up
the new region.
There is a loop, like this, used to construct it:
for(int z = 0; z \< 4; z++) { for(int x = 0; x \< 13; x++) { for(int y =
0; y \< 13; y++) { // data for this region } } }
```java
for (int z = 0; z < 4; z++) {
for(int x = 0; x < 13; x++) {
for(int y = 0; y < 13; y++) {
// data for this region
}
}
}
```
The individual format in each iteration of the loop is:
- '''1 bit''' - set to 0 to indicate to display nothing, 1 to display
a region
- '''26 bits''' - if the flag above is set to 1 - region x \<\< 14 \|
region y \<\< 3
* 1 bit - set to 0 to indicate to display nothing, 1 to display a region
* 26 bits - if the flag above is set to 1: `region_x << 14 | region_y << 3`

View File

@ -1,22 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Create Projectile
==
=== Description ===
# Create Projectile
Creates a projectile.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| Position offset \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| Second X offset \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| Second Y offset \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \| Target \|- \| \[\[Data
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data
types\|Short\]\] \| Graphic ID \|- \| \[\[Data Types\#Standard data
types\|Byte\]\] \| Starting height \|- \| \[\[Data Types\#Standard data
types\|Byte\]\] \| Ending height \|- \| \[\[Data Types\#Little
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\| Starting time \|- \| \[\[Data Types\#Little Endian\|Little Endian\]\]
\[\[Data Types\#Standard data types\|Short\]\] \| Speed \|- \| \[\[Data
Types\#Standard data types\|Byte\]\] \| Initial slope \|- \| \[\[Data
Types\#Standard data types\|Byte\]\] \| Initial distance from source \|-
\|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | Position offset |
| [Byte](/Data-Types.html#common-data-types) | Second X offset |
| [Byte](/Data-Types.html#common-data-types) | Second Y offset |
| [Short](/Data-Types.html#common-data-types) | Target |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | Graphic ID |
| [Byte](/Data-Types.html#common-data-types) | Starting height |
| [Byte](/Data-Types.html#common-data-types) | Ending height |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | Starting time |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | Speed |
| [Byte](/Data-Types.html#common-data-types) | Initial slope |
| [Byte](/Data-Types.html#common-data-types) | Initial distance from source |

View File

@ -1,28 +1,29 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Design screen\|description=Sent when a player is choosing
their character design
options.\|opcode=101\|type=Fixed\|length=13\|revision=317}} == Design
Screen ==
# Design Screen
This packet is sent when a player is choosing their character design options.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Design screen |
| Description | Sent when a player is choosing their character design options. |
| Opcode | 101 |
| Type | Fixed |
| Length | 13 |
| Revision | 317 |
This packet is sent when a player is choosing their character design
options.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| The players gender. \|-
\| \[\[Data Types\#Standard data types\|Byte\]\] \| The players head
model. \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The
players beard model. \|- \| \[\[Data Types\#Standard data
types\|Byte\]\] \| The players torso model. \|- \| \[\[Data
Types\#Standard data types\|Byte\]\] \| The players arm model. \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| The players hand model.
\|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The players leg
model \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The
players foot model. \|- \| \[\[Data Types\#Standard data types\|Byte\]\]
\| The players hair color. \|- \| \[\[Data Types\#Standard data
types\|Byte\]\] \| The players torso color. \|- \| \[\[Data
Types\#Standard data types\|Byte\]\] \| The players leg color. \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| The players foot color.
\|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The players skin
color. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | The players gender. |
| [Byte](/Data-Types.html#common-data-types) | The players head model. |
| [Byte](/Data-Types.html#common-data-types) | The players beard model. |
| [Byte](/Data-Types.html#common-data-types) | The players torso model. |
| [Byte](/Data-Types.html#common-data-types) | The players arm model. |
| [Byte](/Data-Types.html#common-data-types) | The players hand model. |
| [Byte](/Data-Types.html#common-data-types) | The players leg model |
| [Byte](/Data-Types.html#common-data-types) | The players foot model. |
| [Byte](/Data-Types.html#common-data-types) | The players hair color. |
| [Byte](/Data-Types.html#common-data-types) | The players torso color. |
| [Byte](/Data-Types.html#common-data-types) | The players leg color. |
| [Byte](/Data-Types.html#common-data-types) | The players foot color. |
| [Byte](/Data-Types.html#common-data-types) | The players skin color. |

View File

@ -1,31 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Display hint icon\|description=Display a hint icon to the
player.\|opcode=254\|type=Variable Byte\|length=N/A\|revision=317}}
== Display Hint Icon ==
=== Description ===
# Display Hint Icon
Displays a hint icon.
=== Packet Structure ===
## Packet Details
| Key | Value |
|--|--|
| Name | Display hint icon |
| Description | Display a hint icon to the player. |
| Opcode | 254 |
| Type | Variable Byte |
| Length | N/A |
| Revision | 317 |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data types\|Byte\]\] \| The Icon type \|- \|}
=== if type == 1 ===
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data type\|Short\]\] \| Icon NPC target \|- \|}
=== if type \>= 2 && type \<= 6 ===
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data type\|Short\]\] \| Icon X \|- \| \[\[Data Types\#Standard data
type\|Short\]\] \| Icon Y \|- \| \[\[Data Types\#Standard data
types\|Byte\]\] \| Icon draw height \|- \|}
=== if type == 10 ===
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data type\|Short\]\] \| Icon player target \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | The Icon type |

View File

@ -1,14 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Drop
item\|description=Sent when a player wants to drop an item onto the
ground.\|opcode=87\|type=Fixed\|length=6\|revision=317}} == Drop Item ==
=== Description ===
# Drop Item
This packet is sent when a player wants to drop an item onto the ground.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
Standard Data Types\|Special A\]\] \| The item ID. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \| The frame ID. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The slot ID. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Drop item |
| Description | Sent when a player wants to drop an item onto the ground. |
| Opcode | 87 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |
| [Short](/Data-Types.html#common-data-types) | The frame ID. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot ID. |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Enter
name\|description=Opens up the name entry interface.
\|opcode=187\|type=Fixed\|length=0\|revision=317}} == Enter name ==
# Enter name
Sending the packet to the client will make the client open up the "Enter name" interface for things such as friend-adding.
=== Description ===
Sending the packet to the client will make the client open up the "Enter
name" interface for things such as friend-adding.
## Packet Details
| Key | Value |
|--|--|
| Name | Enter name |
| Description | Opens up the name entry interface. |
| Opcode | 187 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,17 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Equip
item\|description=Sent when a player equips an
item.\|opcode=41\|type=Fixed\|length=6\|revision=317}} == Equip Item ==
=== Description ===
# Equip Item
This is sent when a player equips an item in-game.
=== Packet Structure ===
## Packet Details
| Key | Value |
|--|--|
| Name | Equip item |
| Description | Sent when a player equips an item. |
| Opcode | 41 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
{\| border=2 ! Data type ! Description \|- \| Unsigned \[\[Data
Types\#Standard data types\|Short\]\] \| The ID of the item. \|- \|
Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data
Types\#Non Standard Data Types\|Special A\]\] \| The slot of the item.
\|- \| Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data
Types\#Non Standard Data Types\|Special A\]\] \| The ID of the
interface. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| Unsigned [Short](/Data-Types.html#common-data-types) | The ID of the item. |
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot of the item. |
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The ID of the interface. |

View File

@ -1,20 +1,35 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Flash
sidebar\|description=Causes a sidebar icon to start
flashing.\|opcode=24\|type=Fixed\|length=1\|revision=317}} == Flash
sidebar ==
=== Description ===
# Flash sidebar
This packet causes a sidebar icon to start flashing.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \[\[Data Types\#Non
Standard data types\|Special S\]\] \| The sidebar ID. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Flash sidebar |
| Description | Causes a sidebar icon to start flashing. |
| Opcode | 24 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
==== Values ==== The below are the different values for this packet. {\|
border=2 ! Value ! Icon \|- \| 0 \|\| Attack type \|- \| -1 \|\| Stats
\|- \| -2 \|\| Quests \|- \| -3 \|\| Inventory \|- \| -4 \|\| Wearing
\|- \| -5 \|\| Prayer \|- \| -6 \|\| Magic \|- \| -7 \|\| '''EMPTY'''
\|- \| -8 \|\| Friends list \|- \| -9 \|\| Ignore list \|- \| -10 \|\|
Log out \|- \| -11 \|\| Settings \|- \| -12 \|\| Emotes \|- \| -13 \|\|
Music \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) [Special S](/Data-Types.html#bespoke-data-types) | The sidebar ID. |
## Values
| Sidebar ID | Icon |
|--|--|
| 0 | Attack type |
| -1 | Stats |
| -2 | Quests |
| -3 | Inventory |
| -4 | Wearing |
| -5 | Prayer |
| -6 | Magic |
| -7 | *EMPTY* |
| -8 | Friends list |
| -9 | Ignore list |
| -10 | Log out |
| -11 | Settings |
| -12 | Emotes |
| -13 | Music |

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Focus
change\|description=Sent when the game client window goes in and out of
focus.\|opcode=3\|type=Fixed\|length=1\|revision=317}} == Focus Change
==
# Focus Change
This packet is sent when the game client window goes in and out of focus. The payload consists of one byte that is either 1 or 0; 1 if the client is in focus and 0 if not.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Focus change |
| Description | Sent when the game client window goes in and out of focus. |
| Opcode | 3 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
This packet is sent when the game client window goes in and out of
focus. The payload consists of one byte that is either 1 or 0; 1 if the
client is in focus and 0 if not.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| Whether or not the
client is in focus. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | Whether or not the client is in focus. |

View File

@ -1,13 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Follow\|description=Sent when a player clicks the follow
option on another
player\|opcode=39\|type=Fixed\|length=2\|revision=317}} == Follow ==
# Follow
This packet is sent when a player clicks the follow option on another player.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Follow |
| Description | Sent when a player clicks the follow option on another player |
| Opcode | 39 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
This packet is sent when a player clicks the follow option on another
player.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
Unsigned \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The other players ID. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| Unsigned [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The other players ID. |

View File

@ -1,22 +1,22 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Force
client setting\|description=Forcefully alters a client setting value and
default value to some supplied
value.\|opcode=36\|type=Fixed\|length=3\|revision=317}} == Force Client
Setting ==
# Force Client Setting
The client stores various user settings in an array, the default values are also stored in another array. This packet changes the default value for a setting and its current value to the one given.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Force client setting |
| Description | Forcefully alters a client setting value and default value to some supplied value. |
| Opcode | 36 |
| Type | Fixed |
| Length | 3 |
| Revision | 317 |
The client stores various user settings in an array, the default values
are also stored in another array. This packet changes the default value
for a setting and its current value to the one given.
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Little Endian](/Data-Types.html#little-endian) | Setting ID number. |
| [Byte](/Data-Types.html#common-data-types) | New value (and default value) for the setting. |
=== Packet Structure ===
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data types\|Short\]\] \[\[Data Types\#Byte Order\|Little Endian\]\] \|
Setting ID number. \|- \| \[\[Data Types\#Standard data types\|Byte\]\]
\| New value (and default value) for the setting. \|- \|}
=== Other Information === Opcode 87 (length 6) is extremely similar in
structure, but the new value is received as an Middle Endian Small Int.
## Other Information
Opcode 87 (length 6) is extremely similar in structure, but the new value is received as an Middle Endian Small Int.
This suggests its for use with bigger setting values.

View File

@ -1,16 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Friends list status\|description=Sends the friends list
load status\|opcode=221\|type=Fixed\|length=1\|revision=317}} == Friends
List Status ==
=== Description ===
# Friends List Status
This packet sends the first list load status.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| The status of the
friends list. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Friends list status |
| Description | Sends the friends list load status |
| Opcode | 221 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
==== Values ==== The below are the different values for this packet. {\|
border=2 ! Value ! Response \|- \| 0 \| Loading \|- \| 1 \| Connecting
\|- \| 2 \| Loaded \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | The status of the friends list. |

View File

@ -1,13 +1,9 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Ground Item
Action ==
# Ground Item Action
This packet is sent when a player clicks the first option on a ground item.
=== Description ===
This packet is sent when a player clicks the first option on a ground
item. === Packet Structure === {\|border=2 ! Data Type ! Description \|-
\| \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The items X coordinate. \|- \|
Additional \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The items Y coordinate. \|- \|
Additional \[\[Data Types\#Standard data types\|Short\]\] \| The item
ID. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The items X coordinate. |
| Additional [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The items Y coordinate. |
| Additional [Short](/Data-Types.html#common-data-types) | The item ID. |

View File

@ -1,15 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Hidden interface\|description=Sets an interface to be
hidden until hovered
over.\|opcode=171\|type=Fixed\|length=3\|revision=317}}
== Hidden Interface ==
=== Description ===
# Hidden Interface
Sets an interface to be hidden until hovered over.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| Hidden until hovered
\|- \| \[\[Data Types\#Standard data types\|Short\]\] \| Interface Id
\|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Hidden interface |
| Description | Sets an interface to be hidden until hovered over. |
| Opcode | 171 |
| Type | Fixed |
| Length | 3 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | Hidden until hovered |
| [Short](/Data-Types.html#common-data-types) | Interface Id |

View File

@ -1,10 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Idle
logout\|description=Sent when the player has become idle and should be
logged out. \|opcode=202\|type=Fixed\|length=0\|revision=317}} == Idle
logout ==
# Idle logout
This is sent when the player becomes idle and should be logged out. This is sent after the player is idle for 60 seconds, after that it is sent every 10 seconds as long as the player is idle.
=== Description ===
This is sent when the player becomes idle and should be logged out. This
is sent after the player is idle for 60 seconds, after that it is sent
every 10 seconds as long as the player is idle.
## Packet Details
| Key | Value |
|--|--|
| Name | Idle logout |
| Description | Sent when the player has become idle and should be logged out. |
| Opcode | 202 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Idle\|description=Idle
packet..\|opcode=0\|type=Fixed\|length=0\|revision=317}} == Idle ==
# Idle
Sent when the player is idle for the current cycle, and acts as a "ping" packet.
=== Description ===
Sent when the player is idle for the current cycle, and acts as a "ping"
packet.
## Packet Details
| Key | Value |
|--|--|
| Name | Idle |
| Description | Idle packet.. |
| Opcode | 0 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,18 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Initialize player\|description=Sends the player's
membership status and their current index on the server's player
list.\|opcode=249\|type=Fixed\|length=3\|revision=317}} == Initialize
Player ==
=== Description ===
# Initialize Player
Sends the player membership flag and player list index.
=== Packet Structure ===
## Packet Details
| Key | Value |
|--|--|
| Name | Initialize player |
| Description | Sends the player's membership status and their current index on the server's player list. |
| Opcode | 249 |
| Type | Fixed |
| Length | 3 |
| Revision | 317 |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data types\|Byte\]\] \[\[Data Types\#Non Standard Data Types\|Special
A\]\] \| Membership flag (1 = member, 0 = free). \|- \| \[\[Data
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\]
\| Player list index. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Membership flag (1 = member, 0 = free). |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Player list index. |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Input
amount\|description=Opens up the amount input interface.
\|opcode=27\|type=Fixed\|length=0\|revision=317}} == Input amount ==
# Input amount
Sending the packet to the client will make the client open up the "Input amount" interface over the chatbox for things such as Buy X and Bank X.
=== Description ===
Sending the packet to the client will make the client open up the "Input
amount" interface over the chatbox for things such as Buy X and Bank X.
## Packet Details
| Key | Value |
|--|--|
| Name | Input amount |
| Description | Opens up the amount input interface. |
| Opcode | 27 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,13 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Interface animation\|description=Sets an interface's
model animation\|opcode=200\|type=Fixed\|length=4\|revision=317}} ==
Interface animation ==
=== Description ===
# Interface animation
Sets an interface's model animation.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \| The interface ID \|-
\| \[\[Data Types\#Standard data types\|Short\]\] \| The animation ID
\|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Interface animation |
| Description | Sets an interface's model animation |
| Opcode | 200 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The interface ID |
| [Short](/Data-Types.html#common-data-types) | The animation ID |

View File

@ -1,23 +1,27 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Interface color\|description=This packet changes the
color of an interface that is
text.\|opcode=122\|type=Fixed\|length=4\|revision=317}} == Interface
Color ==
=== Description ===
# Interface Color
This packet changes the color of an interface that is text.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The interface ID. \|- \| \[\[Data Types\#Little
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The color. \|-
\|}
## Packet Details
| Key | Value |
|--|--|
| Name | Interface color |
| Description | This packet changes the color of an interface that is text. |
| Opcode | 122 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
=== Information === You use this packet to change the color of text in
an interface.
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The color. |
{\|border=2 ! Color ! Code \|- \| Green \| 0x3366 \|- \| Yellow \|
0x33FF66 \|- \| Red \| 0x6000 \|- \|}
## Information
You use this packet to change the color of text in an interface.
| Color | Code |
|--|--|
| Green | 0x3366 |
| Yellow | 0x33FF66 |
| Red | 0x6000 |

View File

@ -1,16 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Interface item\|description=Displays an item model inside
an interface.\|opcode=246\|type=Fixed\|length=6\|revision=317}} ==
Interface Item ==
=== Description ===
# Interface Item
Displays an item model inside an interface.
=== Packet Structure ===
## Packet Details
| Key | Value |
|--|--|
| Name | Interface item |
| Description | Displays an item model inside an interface. |
| Opcode | 246 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Little
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\|\| Interface ID. \|- \| \[\[Data Types\#Standard data types\|Short\]\]
\|\| The item's model zoom. \|- \| \[\[Data Types\#Standard data
types\|Short\]\] \|\| The item ID. \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | Interface ID. |
| [Short](/Data-Types.html#common-data-types) | The item's model zoom. |
| [Short](/Data-Types.html#common-data-types) | The item ID. |

View File

@ -1,18 +1,20 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Interface model rotation\|description=Changes the zoom
and rotation of the interface id's media
given.\|opcode=230\|type=Fixed\|length=8\|revision=317}} == Interface
Color ==
=== Description ===
# Interface Color
Changes the zoom and rotation of the interface id's media given.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Word\]\] \[\[Data Types\#Non
Standard Data Types\|Special A\]\] \| The zoom. \|- \| \[\[Data
Types\#Standard data types\|Word\]\] \| The interface id. \|- \|
\[\[Data Types\#Standard data types\|Word\]\] \| The rotation1. \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Word\]\] \[\[Data Types\#Non Standard data
types\|Special A\]\] \| The rotation2. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Interface model rotation |
| Description | Changes the zoom and rotation of the interface id's media given. |
| Opcode | 230 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The zoom. |
| [Short](/Data-Types.html#common-data-types) | The interface id. |
| [Short](/Data-Types.html#common-data-types) | The rotation1. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The rotation2. |

View File

@ -1,15 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Interface offset\|description=Sets the offset for drawing
of an interface\|opcode=70\|type=Fixed\|length=6\|revision=317}} ==
Interface offset ==
=== Description ===
# Interface offset
Sets the offset for drawing of an interface.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \| The X offset \|- \|
\[\[Data Types\#Byte Order\|Little Endian\]\] \[\[Data Types\#Standard
data types\|Short\]\] \| The Y offset \|- \| \[\[Data Types\#Byte
Order\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\| The interface ID \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Interface offset |
| Description | Sets the offset for drawing of an interface |
| Opcode | 70 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The X offset |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The Y offset |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The interface ID |

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Interface over tab\|description=Draws an interface over
the tab area.\|opcode=106\|type=Fixed\|length=1\|revision=317}} == Open
Welcome Screen ==
=== Description ===
# Open Welcome Screen
This packet draws an interface over the tab area.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data type\|Byte\]\] \[\[Data Types\#Non
Standard data types\|Special C\]\] \| Interface ID \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Interface over tab |
| Description | Draws an interface over the tab area. |
| Opcode | 106 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) [Special C](/Data-Types.html#bespoke-data-types) | Interface ID |

View File

@ -1,22 +1,24 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Inventory Overlay\|description=Overlays an interface on
the inventory\|opcode=248\|type=Fixed\|length=4\|revision=317}} == Child
Frame ==
# Child Frame
This packet overlays an interface in the inventory area. This is used in trading and staking.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Inventory Overlay |
| Description | Overlays an interface on the inventory |
| Opcode | 248 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
This packet overlays an interface in the inventory area. This is used in
trading and staking.
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface to open. |
| [Short](/Data-Types.html#common-data-types) | The interface to overlay the inventory area. |
=== Example ===
## Example
`sendFrame248(3323, 3321);`
<pre>sendFrame248(3323, 3321);</pre>
That will set the open interface to interface 3323, which is the trade
interface, with the inventory overlay interface as 3321, which is an
inventory type interface with offer actions.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
Standard data types\|Special A\]\] \| The interface to open. \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \| The interface to
overlay the inventory area. \|- \|}
That will set the open interface to interface 3323, which is the trade interface.
With the inventory overlay interface as 3321, which is an inventory type interface with offer actions.

View File

@ -1,18 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item
action 1\|description=Sent when the player clicks the first option of an
item.\|opcode=122\|type=Fixed\|length=6\|revision=317}} == Item Action 1
==
# Item Action 1
This packet is sent when a player clicks the first option of an item, such as "Bury" for bones or "Eat" for food.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Item action 1 |
| Description | Sent when the player clicks the first option of an item. |
| Opcode | 122 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
This packet is sent when a player clicks the first option of an item,
such as "Bury" for bones or "Eat" for food.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data Types\#Standard
data types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special
A\]\] \| The slot the item is in. \|- \| \[\[Data Types\#LITTLE
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\| The ID of the item. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The frame ID. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot the item is in. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The ID of the item. |

View File

@ -1,23 +1,22 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item
on floor\|description=Sent when a player uses an item on another item
thats on the floor.\|opcode=25\|type=Fixed\|length=10\|revision=317}} ==
Item on Floor==
# Description
This packet is sent when a player uses an item on another item thats on the floor.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Item on floor |
| Description | Sent when a player uses an item on another item thats on the floor. |
| Opcode | 25 |
| Type | Fixed |
| Length | 10 |
| Revision | 317 |
This packet is sent when a player uses an item on another item thats on
the floor.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The interface ID. \|- \|
Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data
Types\#Non Standard Data Types\|Special A\]\] \| The item being used ID.
\|- \| \[\[Data Types\#Standard data types\|Short\]\] \| The floor items
ID. \|- \| Unsigned \[\[Data Types\#Standard data types\|Short\]\]
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The Y
coordinate of the item. \|- \| Unsigned \[\[Data Types\#Little
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The items slot
ID. \|- \| \[\[Data Types\#Standard data types\|Short\]\] \| The X
coordinate of the item. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The interface ID. |
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item being used ID. |
| [Short](/Data-Types.html#common-data-types) | The floor items ID. |
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The Y coordinate of the item. |
| Unsigned [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The items slot ID. |
| [Short](/Data-Types.html#common-data-types) | The X coordinate of the item. |

View File

@ -1,14 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item
on item\|description=Sent when a player uses an item on another
item.\|opcode=53\|type=Fixed\|length=4\|revision=317}} == Item on Item
==
=== Description ===
# Item on Item
This packet is sent when a player uses an item on another item.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \| The item being used
on's slot. \|- \| \[\[Data Types\#Standard data types\|Short\]\]
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The item being
used's slot. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Item on item |
| Description | Sent when a player uses an item on another item. |
| Opcode | 53 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The item being used on's slot. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item being used's slot. |

View File

@ -1,22 +1,22 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item
on object\|description=Sent when a player uses an item on an
objet.\|opcode=192\|type=Fixed\|length=12\|revision=317}} == Item on
Object ==
=== Description ===
# Item on Object
This packet is sent when a player uses an item on object.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
Standard Data Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data
types\|Short\]\] \| The object ID. \|- \| \[\[Data Types\#Big
Endian\|Big Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The objects Y
coordinate. \|- \| \[\[Data Types\#Big Endian\|Big Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The items slot ID. \|- \|
\[\[Data Types\#Big Endian\|Big Endian\]\] \[\[Data Types\#Standard data
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\]
\| The objects X coordinate. \|- \| \[\[Data Types\#Standard data
types\|Short\]\] \| The item ID. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Item on object |
| Description | Sent when a player uses an item on an objet. |
| Opcode | 192 |
| Type | Fixed |
| Length | 12 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The frame ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The object ID. |
| [Big Endian](/Data-Types.html#big-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects Y coordinate. |
| [Big Endian](/Data-Types.html#big-endian) [Short](/Data-Types.html#common-data-types) | The items slot ID. |
| [Big Endian](/Data-Types.html#big-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects X coordinate. |
| [Short](/Data-Types.html#common-data-types) | The item ID. |

View File

@ -1,16 +1,20 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item
on player\|description=Sent when a player uses an item on another
player.\|opcode=14\|type=Fixed\|length=8\|revision=317}} == Item on
Player ==
=== Description ===
# Item on Player
This packet is sent when a player uses an item on another player.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
Standard Data Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \| The other players ID. \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \| The item ID. \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The items slot ID. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Item on player |
| Description | Sent when a player uses an item on another player. |
| Opcode | 14 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The frame ID. |
| [Short](/Data-Types.html#common-data-types) | The other players ID. |
| [Short](/Data-Types.html#common-data-types) | The item ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The items slot ID. |

View File

@ -1,14 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Light
item\|description=Sent when a player attempts to light logs on
fire.\|opcode=79\|type=Fixed\|length=6\|revision=317}} == Light Item ==
=== Description ===
# Light Item
This packet is sent when a player attempts to light logs on fire.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \| The items Y
coordinate. \|- \| Unsigned \[\[Data Types\#Standard data
types\|Short\]\] \| The item ID. \|- \| \[\[Data Types\#Little
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\| The items X coordinate. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Light item |
| Description | Sent when a player attempts to light logs on fire. |
| Opcode | 79 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The items Y coordinate. |
| Unsigned [Short](/Data-Types.html#common-data-types) | The item ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The items X coordinate. |

View File

@ -1,23 +1,27 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Load
map region\|description=Makes the client load the specified map
region.\|opcode=73\|type=Fixed\|length=4\|revision=317}} == Load Map
Region ==
=== Description ===
# Load Map Region
Makes the client load the specified map region.
=== Packet Structure ===
## Packet Details
| Key | Value |
|--|--|
| Name | Load map region |
| Description | Makes the client load the specified map region. |
| Opcode | 73 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special
A\]\] \| Region X coordinate (absolute X / 8) plus 6. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \| Region Y coordinate (absolute Y
/ 8) plus 6. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Region X coordinate (absolute X / 8) plus 6. |
| [Short](/Data-Types.html#common-data-types) | Region Y coordinate (absolute Y / 8) plus 6. |
=== Other Information === There are various loops/arrays within the map
region loading functionality of the client which have been misunderstood
by many. {\| border=2 ! Loop type ! Description \|- \| 104 x 104 \|
Maximum size of the client's load area \|- \| 8 x 8 \| Load blocks to
speed up loading NPCs, Items and Objects \|- \| 13 x 13 \| Number of
load blocks to load \|- \|}
## Other Information
There are various loops/arrays within the map region loading functionality of the client which have been misunderstood by many.
| Loop type | Description |
|--|--|
| 104 x 104 | Maximum size of the client's load area |
| 8 x 8 | Load blocks to speed up loading NPCs, Items and Objects |
| 13 x 13 | Number of load blocks to load |

View File

@ -1,9 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Loading finished\|description=Sent when the player is
finished loading a map
region\|opcode=121\|type=Fixed\|length=0\|revision=317}} == Loading
Finished ==
=== Description ===
# Loading Finished
This packet is sent when a player is finished loading a new map region.
## Packet Details
| Key | Value |
|--|--|
| Name | Loading finished |
| Description | Sent when the player is finished loading a map region |
| Opcode | 121 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Logout\|description=Forces the client to
logout.\|opcode=109\|type=Fixed\|length=0\|revision=317}} == Logout ==
# Logout
Forces the client to logout cleanly and return to the login screen, without attempting a reconnection.
=== Description ===
Forces the client to logout cleanly and return to the login screen,
without attempting a reconnection.
## Packet Details
| Key | Value |
|--|--|
| Name | Logout |
| Description | Forces the client to logout. |
| Opcode | 109 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,10 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Mage
NPC\|description=Sent when a player attempts to use a magic attack on an
NPC.\|opcode=131\|type=Fixed\|length=4\|revision=317}} == Mage NPC ==
# Mage NPC
Sent when a player attempts to use a magic attack on an NPC.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Non Standard Data Types\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| ? \|- \| \[\[Data Types\#Standard data
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\]
\| ? \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Mage NPC |
| Description | Sent when a player attempts to use a magic attack on an NPC. |
| Opcode | 131 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | ? |
| [Little Endian](/Data-Types.html#little-endian) [Special A](/Data-Types.html#bespoke-data-types) | ? |

View File

@ -1,17 +1,20 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Magic
on items\|description=Sent when a player casts magic on the items in
their inventory.\|opcode=237\|type=Fixed\|length=8\|revision=317}} ==
Magic on Items ==
# Magic on Items
This packet is sent when a player casts magic (i.e. High Level Alchemy) on the items in their inventory.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Magic on items |
| Description | Sent when a player casts magic on the items in their inventory. |
| Opcode | 237 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
This packet is sent when a player casts magic (i.e. High Level Alchemy)
on the items in their inventory.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \| The items slot ID. \|-
\| \[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
Standard Data Types\|Special A\]\] \| The item ID. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \| The frame ID. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The spell ID. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The items slot ID. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |
| [Short](/Data-Types.html#common-data-types) | The frame ID. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The spell ID. |

View File

@ -1,13 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
# Magic on Player
This packet is sent when the player attempts to cast magic onto another.
{{packet\|name=Magic on player\|description=This packet is send when a
player attempts to cast magic on
another\|opcode=249\|type=Fixed\|length=4\|revision=317}} == Magic on
Player == === Description === This packet is sent when the player
attempts to cast magic onto another.
## Packet Details
| Key | Value |
|--|--|
| Name | Magic on player |
| Description | This packet is send when a player attempts to cast magic on another |
| Opcode | 249 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
Standard Data Types\|Special A\]\] \| The player index. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Byte
Order\|Little\]\] \| The spell ID. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The player index. |
| [Short](/Data-Types.html#common-data-types) [Little Endian](/Data-Types.html#little-endian) | The spell ID. |

View File

@ -1,15 +1,24 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Minimap State\|description=Sets the state of the clients
minimap.\|opcode=99\|type=Fixed\|length=1\|revision=317}} == Minimap
State ==
# Minimap State
This packet sets the Minimaps state, possible values are shown below.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Minimap State |
| Description | Sets the state of the clients minimap. |
| Opcode | 99 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
This packet sets the Minimaps state
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | The state. |
'''States:''' \* 0 - '''Active''': Clickable and viewable \* 1
-'''Locked''': viewable but not clickable \* 2 -'''Blacked-out''':
Minimap is replaced with black background
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#byte\|byte\]\] \| The state. \|- \|}
## Values
| State | Description |
|--|--|
| 0 | **Active**: Clickable and viewable |
| 1 | **Locked**: viewable but not clickable |
| 2 | **Blacked-out**: Minimap is replaced with black background |

View File

@ -1,5 +1,2 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Mouse click ==
=== Description ===
# Mouse click
This packet is sent when a player clicks somewhere on the game screen.

View File

@ -1,19 +1,20 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Move
item\|description=Sent when the player moves an item from one slot to
another.\|opcode=214\|type=Fixed\|length=7\|revision=317}} == Move Item
==
# Move Item
This packet is sent when a player moves an item from one slot to another.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Move item |
| Description | Sent when the player moves an item from one slot to another. |
| Opcode | 214 |
| Type | Fixed |
| Length | 7 |
| Revision | 317 |
This packet is sent when a player moves an item from one slot to
another.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data Types\#Standard
data types\|Byte\]\] \| Insert mode. \|- \| \[\[Data Types\#Little
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| Starting slot.
\|- \| \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| New slot. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The frame ID. |
| [Byte](/Data-Types.html#common-data-types) | Insert mode. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Starting slot. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | New slot. |

View File

@ -1,12 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Audio\|description=Sets the audio to
play.\|opcode=174\|type=Fixed\|length=N/A\|revision=317}} == Audio ==
=== Description ===
# Audio
Sets what audio to play at a certain moment.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Word\|Word\]\] \| The sound id. \|- \| \[\[Data
Types\#Byte\|Byte\]\] \| The volume. \|- \| \[\[Data
Types\#Word\|Word\]\] \| The delay. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Audio |
| Description | Sets the audio to play. |
| Opcode | 174 |
| Type | Fixed |
| Length | N/A |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The sound id. |
| [Byte](/Data-Types.html#common-data-types) | The volume. |
| [Short](/Data-Types.html#common-data-types) | The delay. |

View File

@ -1,6 +1,2 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == NPC Dialogue ==
=== Description ===
This packet is what handles when the player hits the "Click here to
continue".
# NPC Dialogue
This packet is what handles when the player hits the "Click here to continue".

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=NPC
action 1\|description=Sent when a player clicks the first option of an
NPC.\|opcode=155\|type=Fixed\|length=2\|revision=317}} == NPC Action 1
==
=== Description ===
# NPC Action 1
This packet is sent when a player clicks the first option of an NPC.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The NPC index. \|}
## Packet Details
| Key | Value |
|--|--|
| Name | NPC action 1 |
| Description | Sent when a player clicks the first option of an NPC. |
| Opcode | 155 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The NPC index. |

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=NPC
action 2\|description=Sent when a player clicks the second action of an
NPC.\|opcode=17\|type=Fixed\|length=2\|revision=317}} == NPC Action 2 ==
=== Description ===
# NPC Action 2
This packet is sent when a player clicks the second action of an NPC.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The NPC index. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | NPC action 2 |
| Description | Sent when a player clicks the second action of an NPC. |
| Opcode | 17 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The NPC index. |

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=NPC
action 3\|description=Sent when a player clicks the third option of an
NPC.\|opcode=21\|type=Fixed\|length=2\|revision=317}} == NPC Action 3 ==
=== Description ===
# NPC Action 3
This packet is sent when a player clicks the third option of an NPC.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
Unsigned \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The NPC index. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | NPC action 3 |
| Description | Sent when a player clicks the third option of an NPC. |
| Opcode | 21 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| Unsigned [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The NPC index. |

View File

@ -1,16 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=NPC
head on interface\|description=Places the head of an NPC on an
interface\|opcode=75\|type=Fixed\|length=4\|revision=317}} == NPC head
on interface ==
=== Description ===
# NPC head on interface
Places the head of an NPC on an interface
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The NPC ID \|- \| \[\[Data Types\#Little
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The 'slot' ID
for where you wish to place the head \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | NPC head on interface |
| Description | Places the head of an NPC on an interface |
| Opcode | 75 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The NPC ID |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The 'slot' ID for where you wish to place the head |

View File

@ -1,18 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Object action 1\|description=Sent when the player clicks
the first option of an
object.\|opcode=132\|type=Fixed\|length=6\|revision=317}} == Object
Action 1 ==
# Object Action 1
This packet is sent when a player clicks the first option of an object, such as "Cut" for trees or "Mine" for rocks.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Object action 1 |
| Description | Sent when the player clicks the first option of an object. |
| Opcode | 132 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
This packet is sent when a player clicks the first option of an object,
such as "Cut" for trees or "Mine" for rocks.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The objects X coordinate. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \| The objects ID. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The objects Y coordinate. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects X coordinate. |
| [Short](/Data-Types.html#common-data-types) | The objects ID. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects Y coordinate. |

View File

@ -1,19 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Object action 2\|description=Sent when the player clicks
the second option available for an an
object.\|opcode=252\|type=Fixed\|length=6\|revision=317}} == Object
action 2 ==
# Object action 2
This packet is sent when a player clicks the second option available of an object, such as "Prospect" for rocks.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Object action 2 |
| Description | Sent when the player clicks the second option available for an an object. |
| Opcode | 252 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
This packet is sent when a player clicks the second option available of
an object, such as "Prospect" for rocks.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
Types\|Special A\]\] \| The objects ID. \|- \| \[\[Data Types\#Little
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
\| The objects Y coordinate. \|- \| \[\[Data Types\#Standard data
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\]
\| The objects X coordinate. \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The objects Y coordinate. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects X coordinate. |

View File

@ -1,18 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Object action 3\|description=Sent when a player clicks
the third action available for an
object.\|opcode=70\|type=Fixed\|length=6\|revision=317}} == Object
Action 3 ==
# Object Action 3
This packet is sent when a player clicks the third action available for an object.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Object action 3 |
| Description | Sent when a player clicks the third action available for an object. |
| Opcode | 70 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
This packet is sent when a player clicks the third action available for
an object.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The X coordinate of the object.
\|- \| \[\[Data Types\#Standard data types\|Short\]\] \| The Y
coordinate of the object. \|- \| \[\[Data Types\#Big Endian\|Big
Endian\]\] \[\[Data Types\#Standard data types\|Short\]\] \[\[Data
Types\#Non Standard Data Types\|Special A\]\] \| The object ID. \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The X coordinate of the object. |
| [Short](/Data-Types.html#common-data-types) | The Y coordinate of the object. |
| [Big Endian](/Data-Types.html#big-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The object ID. |

View File

@ -1,9 +1,8 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Object removal ==
=== Description ===
# Object removal
This packet requests the client to remove an object.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
Negated \[\[Data Types\#byte\|byte\]\] \| object type \<\< 2 + object
rotation & 3 \|- \| \[\[Data Types\#byte\|byte\]\] \| 0 \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| Unsigned [Byte](/Data-Types.html#common-data-types) | `object_type << 2 + object_rotation & 3` |
| [Byte](/Data-Types.html#common-data-types) | `0` |

View File

@ -1,11 +1,9 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Object spawn ==
=== Description ===
# Object spawn
This packet requests the client to spawn an object.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
subtrahend \[\[Data Types\#byte\|byte\]\] \| 0 \|- \| Little endian
\[\[Data Types\#byte\|byte\]\] \| ObjectID \|- \| subtrahend \[\[Data
Types\#byte\|byte\]\] \| object type \<\< 2 + object rotation & 3 \|-
\|}
## Packet Structure
| Data Type | Description |
|--|--|
| Subtrahend [Byte](/Data-Types.html#common-data-types) | 0 |
| [Little Endian](/Data-Types.html#little-endian) [Byte](/Data-Types.html#common-data-types) | Object ID |
| Subtrahend [Byte](/Data-Types.html#common-data-types) | `object_type << 2 + object_rotation & 3` |

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Open
chatbox interface\|description=Displays an interface over the
chatbox.\|opcode=218\|type=Fixed\|length=2\|revision=317}} == Open
chatbox interface ==
# Open chatbox interface
Sending this packet to the client will cause the client to open an interface over the chatbox.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Open chatbox interface |
| Description | Displays an interface over the chatbox. |
| Opcode | 218 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
Sending this packet to the client will cause the client to open an
interface over the chatbox.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard data
types\|Special A\]\] \| Interface ID. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Interface ID. |

View File

@ -1,20 +1,21 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Open
welcome screen\|description=Displays the welcome
screen.\|opcode=176\|type=Fixed\|length=10\|revision=317}} == Open
Welcome Screen ==
=== Description ===
# Open Welcome Screen
This packet displays the welcome screen.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data type\|Byte\]\] \[\[Data Types\#Non
Standard data types\|Special C\]\] \| Days since last recovery change
(200 for not yet set, 201 for members server). \|- \| \[\[Data
Types\#Standard data type\|Short\]\] \[\[Data Types\#Non Standard data
types\|Special A\]\] \| Number of unread messages. \|- \| \[\[Data
Types\#Standard data types\|Byte\]\] \| Member warning (1 for member, 0
for non-member). \|- \| \[\[Data Types\#Non Standard data
types\|Middle-Endian Big Integer\]\] \| Last logged IP. \|- \| \[\[Data
Types\#Standard data types\|Short\]\] \| Last logged successful log-n.
\|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Open welcome screen |
| Description | Displays the welcome screen. |
| Opcode | 176 |
| Type | Fixed |
| Length | 10 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) [Special C](/Data-Types.html#bespoke-data-types) | Days since last recovery change (200 for not yet set, 201 for members server). |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Number of unread messages. |
| [Byte](/Data-Types.html#common-data-types) | Member warning (1 for member, 0 for non-member). |
| [Middle-Endian Big Integer](/Data-Types.html#middle-endian-big-integer) | Last logged IP. |
| [Short](/Data-Types.html#common-data-types) | Last logged successful log-in. |

View File

@ -1,18 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Pickup ground item\|description=Sent when the player
picks up an item from the
ground.\|opcode=236\|type=Fixed\|length=6\|revision=317}} == Pickup
Ground Item ==
# Pickup Ground Item
This packet is sent when a player clicks the "Pick Up" option on an item when its on the ground.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Pickup ground item |
| Description | Sent when the player picks up an item from the ground. |
| Opcode | 236 |
| Type | Fixed |
| Length | 6 |
| Revision | 317 |
This packet is sent when a player clicks the "Pick Up" option on an item
when its on the ground.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The Y coordinate of the item.
\|- \| \[\[Data Types\#Standard data types\|Short\]\] \| The item ID.
\|- \| \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The X coordinate of the item.
\|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The Y coordinate of the item. |
| [Short](/Data-Types.html#common-data-types) | The item ID. |
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The X coordinate of the item. |

View File

@ -1,12 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Play
song\|description=Starts playing a
song.\|opcode=74\|type=Fixed\|length=2\|revision=317}} == Play song ==
# Play song
Sending this packet to the client will cause the client to start playing a song.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Play song |
| Description | Starts playing a song. |
| Opcode | 74 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
Sending this packet to the client will cause the client to start playing
a song.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The song ID. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The song ID. |

View File

@ -1,10 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Player Option\|description=Adds an option to a player's
right click context
menu.\|opcode=104\|type=Variable\|length=N/A\|revision=317}} == Player
Option ==
# Player Option
Adds an option to a player's right click context menu.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] C \| The option position.
\|- \| \[\[Data Types\#Standard data types\|Byte\]\] A \| Flag \|- \|
\[\[Data Types\#Standard data types\|String\]\] \| Action text. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Player Option |
| Description | Adds an option to a player's right click context menu. |
| Opcode | 104 |
| Type | Variable |
| Length | N/A |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) [Special C](/Data-Types.html#bespoke-data-types) | The option position. |
| [Byte](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Flag |
| [String](/Data-Types.html#common-data-types) | Action text. |

View File

@ -1,13 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Player command\|description=Sent when a player types a
command in the chat box.\|opcode=103\|type=Variable
Byte\|length=N/A\|revision=317}} == Player Command ==
# Player Command
This packet is sent when a player types a message with the prefix '::', the message is then sent to the server and an appropriate action is taken (e.g. spawning an item).
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Player command |
| Description | Sent when a player types a command in the chat box. |
| Opcode | 103 |
| Type | Variable Byte |
| Length | N/A |
| Revision | 317 |
This packet is sent when a player types a message with the prefix '::',
the message is then sent to the server and an appropriate action is
taken (e.g. spawning an item).
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[RS String\|RS String\]\] \| The command name and parameters. \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [RS String](/RS-String.html) | The command name and parameters. |

View File

@ -1,11 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send
head model to interface.\|description=Sends the player head model to an
interface.\|opcode=185\|type=Fixed\|length=2\|revision=317}} == Send
player head model to an interface ==
=== Description ===
# Send player head model to an interface
This packet sends a players head to an interface
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Little Endian Short A\]\] \| The interface ID. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Send head model to interface. |
| Description | Sends the player head model to an interface. |
| Opcode | 185 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface ID. |

View File

@ -1,16 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Privacy options\|description=Sent when a player changes
their privacy options.\|opcode=95\|type=Fixed\|length=3\|revision=317}}
== Privacy Options ==
# Privacy Options
This packet is sent when a player changes their privacy options (i.e. public chat).
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Privacy options |
| Description | Sent when a player changes their privacy options. |
| Opcode | 95 |
| Type | Fixed |
| Length | 3 |
| Revision | 317 |
This packet is sent when a player changes their privacy options
(i.e. public chat).
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
Unsigned \[\[Data Types\#Standard data types\|Byte\]\] \| The public
chat options. \|- \| Unsigned \[\[Data Types\#Standard data
types\|Byte\]\] \| The private chat options. \|- \| Unsigned \[\[Data
Types\#Standard data types\|Byte\]\] \| The trade/compete options. \|-
\|}
## Packet Structure
| Data Type | Description |
|--|--|
| Unsigned [Byte](/Data-Types.html#common-data-types) | The public chat options. |
| Unsigned [Byte](/Data-Types.html#common-data-types) | The private chat options. |
| Unsigned [Byte](/Data-Types.html#common-data-types) | The trade/compete options. |

View File

@ -1,42 +1,42 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] \[\[Category RS2\]\]
== '''Packet structure''' == When the client sends a packet to the
server, the first byte encapsulates its
\[http://en.wikipedia.org/wiki/Opcode opcode\]. This specific opcode is
encrypted with a value generated by the
\[http://en.wikipedia.org/wiki/ISAAC\_(cipher) ISAAC\]
\[http://en.wikipedia.org/wiki/Pseudorandom\_number\_generator PRNG\]
seeded with a dynamically server generated key during the login block.
The server decrypts it and associates the opcode to the packet's
respective predefined size. If the packet does not contain a fixed size,
the opcode will be followed by either a byte or a word - varying per
packet - for its proper size. This is then followed by the
\[http://en.wikipedia.org/wiki/Payload\_(software) payload\].
# 317 Protocol
## Packet structure
When the client sends a packet to the server, the first byte encapsulates its [opcode](http://en.wikipedia.org/wiki/Opcode).
A list of the 317 Packets may be found
\[http://rswiki.moparisthebest.com/index.php?title=Category:Packet:317
here\].
This specific opcode is encrypted with a value generated by the [ISAAC](http://en.wikipedia.org/wiki/ISAAC_(cipher)) [PRNG](http://en.wikipedia.org/wiki/Pseudorandom_number_generator), seeded with a dynamically server generated key during the login block.
== '''Login Protocol Overview''' == Every connection to the main
'gateway' server sends a single byte of data, mostly well known as the
connection type. The connection type tells the main server which type of
connection you wish to initiate. The old engine list consists of: \*
Login request - connection type 14 \* Update - connection type 15 \* New
connection login - connection type 16 \* Reconnecting login - connection
type 18
The server decrypts it and associates the opcode to the packet's respective predefined size.
If the packet does not contain a fixed size, the opcode will be followed by either a byte or a word - varying per packet - for its proper size.
This is then followed by the [payload](http://en.wikipedia.org/wiki/Payload_(software)).
The connection type we will cover in the following paragraphs is the
login connection type, 14. After the login handshake initiating
connection type, the client writes hash derived from the logging in
player's username. This is believed to help select the appropriate login
server. On successful handshake, the server sends back 8 ignored bytes.
## Login Protocol Overview
Every connection to the main 'gateway' server sends a single byte of data, mostly well known as the connection type.
The connection type tells the main server which type of connection you wish to initiate.
<pre>long encodedUsername = TextUtils.encodeAsBase37Integer(username);
The old engine list consists of:
| ID | Description |
|--|--|
| 14 | Login request |
| 15 | Update |
| 16 | New connection login |
| 18 | Reconnecting login |
The connection type we will cover in the following paragraphs is the login connection type, 14. After the login handshake initiating connection type, the client writes hash derived from the logging in player's username.
This is believed to help select the appropriate login server.
On successful handshake, the server sends back 8 ignored bytes.
```java
long encodedUsername = encode_base37(username);
int usernameHash = (int) (encodedUsername >> 16 & 31L);
out.offset = 0;
out.writeByte(14); // Initiate connection type
out.writeByte(14); // Connection type
out.writeByte(usernameHash);
in.queueBytes(2, out.payload);
for (int j = 0; j < 8; j++) in.read();</pre>
for (int j = 0; j < 8; j++)
in.read();
```
At this point, the client reads in one byte, called the status code. The
status code 0 is expected to start the login protocol correctly. If the
status code is 0, the client reads a long, dubbed by many as the server
@ -52,7 +52,7 @@ longs. After the session keys, the session's UID (unique identifier or
user identifier) is written to the block. This is used to distinguish
between multiple sessions. Trailing behind the UID comes the client's
username and password written as modified C-strings that are rather
terminated with a 10 byte than a NUL byte. This block is then RSA
terminated with a 10 byte than a NULL byte. This block is then RSA
encrypted and stored for later use.
Now starts the login request packet. It starts off with a flag telling
@ -73,91 +73,85 @@ The ISAAC ciphers are seeded for packet opcode masking after adding 50
to each int of the session keys, and the status code is reread. This
finishes the login protocol.
== '''Login Protocol Breakdown''' == The login is comprised of four
stages in which the client and server switch in regards to which one is
reading and which one is writing. <br/> ===Variables:=== The login
process has a lot of variable data, compiled here is a list of the
variables and their different values. ====Name Hash==== A hash of the
player name, thought to be used to select an appropriate login server.
## Login Protocol Breakdown
The login is comprised of four stages in which the client and server switch in regards to which one is reading and which one is writing.
### Variables
The login process has a lot of variable data, compiled here is a list of the variables and their different values.
**Name Hash**:
A hash of the player name, thought to be used to select an appropriate login server.
This has no use in current private servers.
====Server Session Key==== The server-session-key is one of two ciphers
used to encrypt the game protocol, using the ISAAC algorithms. <br/>
===="Data File Version"==== <!-- Colby --> The CRC checks for the cache
files. <br/>
**Server Session Key**:
The server-session-key is one of two seeds used to encrypt the game protocol communications, using the ISAAC algorithm instances.
====User ID==== A client-side randomly generated integer. This could be
used in reassigning sessions to players that have lost connection. It is
stored as a packed integer in a file named 'uid.dat' in the cache
directory. <br/>
**Data File Version**:
The CRC checks for the cache files.
====Username==== The username of the player, used to identify their
account. <br/> ====Password==== The password of the player account, used
so only they can log into their account. <br/> ====Client Session
Key==== The client-session-key is one of two ciphers used to encrypt the
game protocol, using the ISAAC algorithms. <br/> ====Connect Status====
The status of the connection. {\|border=2 ! Value ! Status \|- \| 16 \|
Signifies that the connection is new. \|- \| 18 \| Signifies that the
session is reconnecting a previously lost connection. \|- \|}
**User ID**:
A client-side randomly generated integer.
This could be used in reassigning sessions to players that have lost connection.
It is stored as a packed integer in a file named 'uid.dat' in the cache directory.
====Size==== The size of the unencrypted login packet, used to determine
how many bytes need to be read from the stream by the server. <br/>
====Client Version==== The memory-version of the game client.
{\|border=2 ! Value ! Status \|- \| 0 \| Signifies the client is a
low-memory client. \|- \| 1 \| Signifies that the client is a
high-memory client. \|- \|}
**Username**: The username of the player, used to identify their account.
====CRC Values==== 9 4-byte values, Each containing the CRC of their
respective cache files. Used by the server to verify client is up to
date. <br/>
**Password**: The password of the player account, used so only they can log into their account.
====Player Status==== The in-game player status - player, player
moderator, or administrator. <br/> {\|border=2 ! Value ! Status \|- \| 0
\| Signifies that this player is a normal player. \|- \| 1 \| Signifies
that this player is a player moderator. \|- \| 2 \| Signifies that this
player is an administrator. \|- \|}
**Client Session Key**: The client-session-key is one of two seeds used to encrypt the game protocol communications, using the ISAAC algorithm instances.
====Flagged==== If set to 1, information about mouse movements etc. are
sent to the server. Suspected bot accounts are flagged. <br/>
====Response Codes==== At the beginning and end of the login procedure,
we send different values to the client to allow or deny a login. The
various values show different messages on the login box on the client or
do something internally. <br/> {\| border=2 ! Value ! Response \|- \| -1
\| Waits for 2000ms and tries again while counting failures. \|- \| 0 \|
Exchanges session keys, player name, password, etc. \|- \| 1 \| Waits
for 2000ms and tries again. \|- \| 2 \| Client made a successful login.
\|- \| 3 \| "Invalid username or password." \|- \| 4 \| "Your account
has been disabled. Please check your message-center for details." \|- \|
5 \| "Your account is already logged in. Please try again in 60 secs..."
\|- \| 6 \| "RuneScape has been updated! Please reload this page." \|-
\| 7 \| "This world is full. Please use a different world." \|- \| 8 \|
"Unable to connect. Login server offline." \|- \| 9 \| "Login limit
exceeded. Too many connections from your address." \|- \| 10 \| "Unable
to connect. Bad session ID." \|- \| 11 \| "Login server rejected
session. Please try again." \|- \| 12 \| "You need a members account to
login to this world. Please subscribe, or use a different world." \|- \|
13 \| "Could not complete login. Please try using a different world."
\|- \| 14 \| "The server is being updated. Please wait 1 minute and try
again." \|- \| 15 \| See the \[\[\#Regarding response code 15\|notes
below\]\]. \|- \| 16 \| "Login attempts exceeded. Please wait 1 minute
and try again." \|- \| 17 \| "You are standing in a members-only area.
To play on this world move to a free area first." \|- \| 20 \| "Invalid
loginserver requested. Please try using a different world." \|- \| 21 \|
"You have only just left another world. Your profile will be transferred
in: (number) seconds." \|- \| None of the above \| "Unexpected server
response. Please try using a different world." \|- \|}
**Connect Status**: The status of the connection (16 if new, 18 if reconnecting).
==== Regarding response code 15 ==== On the server, players are not
unregistered for quite some time. This can be best witnessed when the
client forcefully closes the connection while in combat. If you're quick
enough before the player dies or kills the NPC, login attempts during
that time return that the account is already logged in. This probably
explains why the message says "try again in 60 seconds", and they just
reused the response when the player is truly logged in.
**Size**: The size of the unencrypted login packet, used to determine how many bytes need to be read from the stream by the server.
**Client Version**: The memory-version of the game client (0 if low-memory client, 1 if high-memory client).
**CRC Values**: Nine 4-byte values, Each containing the CRC of their respective cache files.
Used by the server to verify client is up to date.
**Player Status**: The in-game player privilege status - regular (0), player moderator (1), or administrator (2).
**Flagged**: If set to 1, information about mouse movements etc. are sent to the server.
Suspected bot accounts are flagged.
**Response Codes**:
At the beginning and end of the login procedure, we send different values to the client to allow or deny a login.
The various values show different messages on the login box on the client or do something internally.
| Value | Response |
|--|--|
| -1 | Waits for 2000ms and tries again while counting failures. |
| 0 | Exchanges session keys, player name, password, etc. |
| 1 | Waits for 2000ms and tries again. |
| 2 | Client made a successful login. |
| 3 | "Invalid username or password." |
| 4 | "Your account has been disabled. Please check your message-center for details." |
| 5 | "Your account is already logged in. Please try again in 60 secs..." |
| 6 | "RuneScape has been updated! Please reload this page." |
| 7 | "This world is full. Please use a different world." |
| 8 | "Unable to connect. Login server offline." |
| 9 | "Login limit exceeded. Too many connections from your address." |
| 10 | "Unable to connect. Bad session ID." |
| 11 | "Login server rejected session. Please try again." |
| 12 | "You need a members account to login to this world. Please subscribe, or use a different world." |
| 13 | "Could not complete login. Please try using a different world." |
| 14 | "The server is being updated. Please wait 1 minute and try again." |
| 15 | See the notes regarding login response code 15 below. |
| 16 | "Login attempts exceeded. Please wait 1 minute and try again." |
| 17 | "You are standing in a members-only area. To play on this world move to a free area first." |
| 20 | "Invalid loginserver requested. Please try using a different world." |
| 21 | "You have only just left another world. Your profile will be transferred in: (number) seconds."
| None of the above | "Unexpected server response. Please try using a different world." |
**Regarding response code 15** On the server, players are not unregistered for quite some time.
This can be best witnessed when the client forcefully closes the connection while in combat.
If you're quick enough before the player dies or kills the NPC, login attempts during that time return that the account is already logged in.
This probably explains why the message says "try again in 60 seconds", and they just reused the response when the player is truly logged in.
Going along with this "players aren't offline yet" idea, when the client
experiences some lag and performs a reconnect, it sends byte 18 as it's
\[\[\#Connect Status\|connection type\]\] to the server.
*Connect Status* to the server.
The server most likely saves this as a boolean (reconnect = var == 18;).
When the login is entirely validated, meaning the password's are okay
@ -166,69 +160,87 @@ and the server isn't full, it can either send back the normal response,
But why 15? If you look at the client code, you'll see that the chat
messages aren't cleared. If you've ever had a poor connection you've
noticed that your chat stays there upon a reconnect, and this is exactly
why. <!-- thanks to Colby for this contribution--> When you implement
response code 15 though, you do NOT need to send the "player status" or
the "flagged" bytes.
noticed that your chat stays there upon a reconnect, and this is exactly why.
When you implement response code 15 though, you do NOT need to send the "player status" or the "flagged" bytes.
===Login Process:=== ====Stage 1: Client -\> Server==== {\| border=2 \|-
! Data Type ! Value \|- \| ubyte \| 14 \|- \| ubyte \| "name hash" \|-
\|} <br/>
## Login Process
### Stage 1: Client -> Server
| Data Type | Value |
|--|--|
| Unsigned [Byte](/Data-Types.html#common-data-types) | 14 |
| Unsigned [Byte](/Data-Types.html#common-data-types) | "name hash" |
====Stage 2: Server -\> Client==== {\| border=2 \|- ! Data Type ! Value
\|- \| byte \| 0 \|- \| byte \| 0 \|- \| byte \| 0 \|- \| byte \| 0 \|-
\| byte \| 0 \|- \| byte \| 0 \|- \| byte \| 0 \|- \| byte \| 0 \|- \|
byte \| "response code" \|- \| \[\[QWord\|long\]\] \| "server session
key" \|- \|} <br/>
### Stage 2: Server -> Client
| Data Type | Value |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | 0 |
| [Byte](/Data-Types.html#common-data-types) | "response code" |
| [Long](/Data-Types.html#common-data-types) | Server session key |
====Stage 3: Client -\> Server==== {\| border=2 \|- ! Data Type ! Value
\|- \| byte \| "connect status" \|- \| byte \| "size" \|- \| byte \| 255
\|- \| \[\[Word\|short\]\] \| 317 \|- \| byte \| "client version" \|- \|
\[\[DWord\|int\]\] \| "crc values"\[0\] \|- \| \[\[DWord\|int\]\] \|
"crc values"\[1\] \|- \| \[\[DWord\|int\]\] \| "crc values"\[2\] \|- \|
\[\[DWord\|int\]\] \| "crc values"\[3\] \|- \| \[\[DWord\|int\]\] \|
"crc values"\[4\] \|- \| \[\[DWord\|int\]\] \| "crc values"\[5\] \|- \|
\[\[DWord\|int\]\] \| "crc values"\[6\] \|- \| \[\[DWord\|int\]\] \|
"crc values"\[7\] \|- \| \[\[DWord\|int\]\] \| "crc values"\[8\] \|- \|
byte \| 10 \|- \| \[\[QWord\|long\]\] \| "client session key" \|- \|
\[\[QWord\|long\]\] \| "server session key" \|- \| \[\[DWord\|int\]\] \|
"user id" \|- \| \[\[RS String\|RS String\]\] \| "username" \|- \|
\[\[RS String\|RS String\]\] \| "password" \|- \|} <br/>
### Stage 3: Client -> Server
| Data Type | Value |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | Connect status |
| [Byte](/Data-Types.html#common-data-types) | Size |
| [Byte](/Data-Types.html#common-data-types) | 255 |
| [Short](/Data-Types.html#common-data-types) | 317 (Client version) |
| [Int](/Data-Types.html#common-data-types) | crc values [0] |
| [Int](/Data-Types.html#common-data-types) | crc values [1] |
| [Int](/Data-Types.html#common-data-types) | crc values [2] |
| [Int](/Data-Types.html#common-data-types) | crc values [3] |
| [Int](/Data-Types.html#common-data-types) | crc values [4] |
| [Int](/Data-Types.html#common-data-types) | crc values [5] |
| [Int](/Data-Types.html#common-data-types) | crc values [6] |
| [Int](/Data-Types.html#common-data-types) | crc values [7] |
| [Int](/Data-Types.html#common-data-types) | crc values [8] |
| [Byte](/Data-Types.html#common-data-types) | 10 |
| [Long](/Data-Types.html#common-data-types) | Client session key |
| [Long](/Data-Types.html#common-data-types) | Server session key |
| [Int](/Data-Types.html#common-data-types) | User id |
| [RS String](/RS-String.html) | Username |
| [RS String](/RS-String.html) | Password |
====Stage 4: Server -\> Client==== {\| border=2 \|- ! Data Type ! Value
\|- \| byte \| "response code" \|- \| byte \| "player status" \|- \|
byte \| "flagged" \|- \|} <br/>
### Stage 4: Server -> Client
| Data Type | Value |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | Response code |
| [Byte](/Data-Types.html#common-data-types) | Player status |
| [Byte](/Data-Types.html#common-data-types) | Flagged |
== '''Player Updating''' == The player updating process consists of 4
parts: \* a) Our player movement updates \* b) Other player movement
updates \* c) Player list updating \* c.a) Apperance updating \* c.b)
Location updating \* d) Player update block flag-based updates
### Player Updating
The player updating process consists of 4 parts:
'''Our player movement updates'''
a. Our player movement updates
b. Other player movement updates
c. Player list updating
c.a. Apperance updating
c.b. Location updating
d. Player update block flag-based updates
### Our player movement updates
The client begins by reading 1 bit. This bit tells the client whether or
not it is currently updating 'our player', or the player the client is
controlling. If it's not updating our player, it exits and goes onto
step b. If it is, it then reads 2 bits. The value is called the movement
update type. There are 4 recognized movement update types:
controlling.
If it's not updating our player, it exits and goes onto step b.
If it is, it then reads 2 bits. The value is called the movement update type.
- Type 0 basically tells the client there is nothing to update for our
player, just add its index to the local updating list.
- Type 1 tells the client you moved in one direction. The client reads
3 bits, which represents the direction you moved in, and then 1 bit,
which states whether further update is required. If so, it adds it
to the updating list. This is used in walking.
- Type 2 functions in much of the same way as its previous, only this
time it reads two 3 bit values. The first represents the player's
last direction, and the second it's current direction. Trailing
behind it is also the 1 bit 'update required' flag as type 1. This
is used in running.
- Type 3 on the other hand is different. It reads in 2 bits which
represents our player's plane, or its level of height, in the game
world.
There are 4 recognized movement update types:
* Type 0 basically tells the client there is nothing to update for our player, just add its index to the local updating list.
* Type 1 tells the client you moved in one direction.
The client reads 3 bits, which represents the direction you moved in, and then 1 bit, which states whether further update is required.
If so, it adds it to the updating list. This is used in walking.
* Type 2 functions in much of the same way as its previous, only this time it reads two 3 bit values. The first represents the player's last direction, and the second it's current direction.
Trailing behind it is also the 1 bit 'update required' flag as type 1. This is used in running.
* Type 3 on the other hand is different.
It reads in 2 bits which represents our player's plane, or its level of height, in the game world.
Only 0-3 inclusive are appropriate planes supported by the client. It
then reads 1 bit, which describes whether or not to clear the
@ -240,7 +252,7 @@ and relative Y coordinates of our player to our current map region's
origin. It then sets our players position to the plane, x, and y
positions as told to.
'''Other player movement updates'''
### Other player movement updates
The client begins by reading an 8 bit value telling the client how many
players there are to update. It then enters a loop for each player there
@ -250,30 +262,19 @@ Inside this loop, the client reads 1 bit. This is the movement update
required flag. If the flag is 0, it sets the current updating player's
last update cycle time to the current game logic loop cycle time, and
adds the player to the local player list. If the flag is not 0, it then
reads the movement update type, which is a 2 bit quantity. The following
known types are:
reads the movement update type, which is a 2 bit quantity.
- 0, the client updates the current player's last update cycle time,
adds the current player to the local player list, and adds it to the
updating list.
The following known types are:
- 1, the client updates the current player's last update cycle time
and adds the current player to the local player list as well, but
also reads in 3 bit quantity. This represents the current player's
direction it walked to. It then reads the a 1 bit value that
specifies whether or not to add the player to the updating list.
* 0, the client updates the current player's last update cycle time, adds the current player to the local player list, and adds it to the updating list.
* 1, the client updates the current player's last update cycle time and adds the current player to the local player list as well, but also reads in 3 bit quantity.
This represents the current player's direction it walked to.
It then reads the a 1 bit value that specifies whether or not to add the player to the updating list.
* 2, the client does the exact same thing as the type 2 update, except it reads in two of the 3 bit quantities.
The first represents the current player's last direction, and the second its current direction running.
* 3, the client queues to remove the player from the list of players to be updated but it is possible such as in the instances for when players teleport to add them back to the list of players to be updated during the populate update.
- 2, the client does the exact same thing as the type 2 update, except
it reads in two of the 3 bit quantities. The first represents the
current player's last direction, and the second its current
direction running.
- 3, the client queues to remove the player from the list of players
to be updated but it is possible such as in the instances for when
players teleport to add them back to the list of players to be
updated during the populate update.
'''Player list updating'''
### Player list updating
The next step in the player updating procedure is the player list
updating, or where the client recieves data on every player in its local
@ -285,7 +286,7 @@ player in the updated list to be informed about. The clietn then checks
if it has a cached buffer for that player's updating, and if it does, it
updates the player appearance.
'''Appearance updating'''
### Appearance updating
Appearance updating starts off by first reading an unsigned byte that
represents the current player's gender. Then it reads another unsigned
@ -306,19 +307,23 @@ coloured body part. In each loop, the client reads an unsigned short and
assigns it as the color of the current loop idx (which represents the
body part).
Finally, after the color loop, the client reads 7 unsigned shorts
representing animation indices; the animations belong to: \* Standing
still \* Turning while standing \* Walking \* Turning around (backwards)
\* Turning a quarter-way clockwise \* Turning a quarter-way counter
clockwise \* Running
Finally, after the color loop, the client reads 7 unsigned shorts representing animation indices; the animations belong to:
* Standing still
* Turning while standing
* Walking
* Turning around (backwards)
* Turning a quarter-way clockwise
* Turning a quarter-way counter clockwise
* Running
After these animation indices are read, a long representing the player's
name is read, an unsigned byte representing the combat level, and an
unsigned short representing the players skill level (for things where
players arent ranked by levels, such as where it states '<player name>
(skill <skill>)' as an action menu text).
players arent ranked by levels, such as where it states
`<player name> (skill <skill>)` as an action menu text).
'''Location updating'''
### Location updating
After the appearance updating, the client starts to update that player's
location relative to our player. The player is added to the local player
@ -333,7 +338,7 @@ subtracted from it to signify the player is on the other side of ours.
The client then sets the player's position, ending the player list
updating process.
'''Update block flag-based updating'''
#### Update block flag-based updating
The following is what most people think of when they say 'update mask'
and 'update flag'. This process of the updating procedure is very
@ -352,322 +357,210 @@ player's flag, and if the mask is set, logic is performed. These masks
are frequently called update masks. A list of player update masks are
below:
- '''0x400''' The 0x400 mask is used to update the player so they
appear to be asynchronously animating and walking. This mask is
often used for the \[http://runescape.wikia.com/wiki/Agility
Agility\] skill. The data associated goes in order of: byte (type C)
which is the first location's X coordinate value, byte (type S)
which is the first location's Y coordinate value, byte (type S)
which is the second location's X coordinate value, byte (type C) the
second location's Y coordinate value. After the locations are
written, there is a required movement speed which is written as a
short which marks how fast to move from position 1 to position 2.
Another short (type A) is written as the movement speed going from
position 2 to position 1. Finally one byte is written to end the
mask block, which marks the direction.
* **0x400**: The 0x400 mask is used to update the player so they
appear to be asynchronously animating and walking. This mask is
often used for the [Agility](http://runescape.wikia.com/wiki/Agility) skill.
The data associated goes in order of: byte (type C)
which is the first location's X coordinate value, byte (type S)
which is the first location's Y coordinate value, byte (type S)
which is the second location's X coordinate value, byte (type C) the
second location's Y coordinate value. After the locations are
written, there is a required movement speed which is written as a
short which marks how fast to move from position 1 to position 2.
Another short (type A) is written as the movement speed going from
position 2 to position 1. Finally one byte is written to end the
mask block, which marks the direction.
- '''0x100''' The 0x100 mask is responsible for player graphics
updating. The data associated is a little-endian unsigned short
which represents the graphics id, and an int which is the graphics
delay.
* **0x100**: The 0x100 mask is responsible for player graphics
updating. The data associated is a little-endian unsigned short
which represents the graphics id, and an int which is the graphics
delay.
- '''0x8''' Animations are handled by the 0x8 mask. The payload for
this update is a little-endian unsigned short that is the animation
id, and an unsigned inversed byte (Special C) which states the
animation's delay.
* **0x8**: Animations are handled by the 0x8 mask. The payload for
this update is a little-endian unsigned short that is the animation
id, and an unsigned inversed byte (Special C) which states the
animation's delay.
- '''0x4''' The beloved 0x4 mask takes care of forced player text that
is only displayed above the player's model. The only data associated
with this is a jagex ASCII string with a terminator of 10.
* **0x4**: The beloved 0x4 mask takes care of forced player text that
is only displayed above the player's model. The only data associated
with this is a jagex ASCII string with a terminator of 10.
- '''0x80''' Unlike the previous, the 0x80 mask handles normal player
chat text. The client will read a little-endian unsigned short which
holds chat text attributes. It holds the text color and chat
effects. Next, the client reads an unsigned byte which states the
player's priveleges (normal player, player moderator, moderator,
staff) to give the chatter's name a crown. Right behind it trails an
unsigned inversed byte that gives chat text length in bytes.
Trailing afterwards is dictionary-compressed chat text. All chat
text characters become indexes into a valid character table and are
written as nibbles (4 bit quantities).
* **0x80**: Unlike the previous, the 0x80 mask handles normal player
chat text. The client will read a little-endian unsigned short which
holds chat text attributes. It holds the text color and chat
effects. Next, the client reads an unsigned byte which states the
player's priveleges (normal player, player moderator, moderator,
staff) to give the chatter's name a crown. Right behind it trails an
unsigned inversed byte that gives chat text length in bytes.
Trailing afterwards is dictionary-compressed chat text. All chat
text characters become indexes into a valid character table and are
written as nibbles (4 bit quantities).
- '''0x1''' Updating the player's current interacting-entity is done
via mask 0x1. The entity id is written as a little-endian unsigned
short.
* **0x1**: Updating the player's current interacting-entity is done
via mask 0x1. The entity id is written as a little-endian unsigned
short.
- '''0x10''' The 0x10 mask updates appearance of the player in exact
same way as in updating player list. Only difference is that
appearance is updated from a set-sized buffer filled from the
current buffer. An unsigned inversed byte is read first which
describes appearance buffer size, and the buffer is filled.
* **0x10**: The 0x10 mask updates appearance of the player in exact
same way as in updating player list. Only difference is that
appearance is updated from a set-sized buffer filled from the
current buffer. An unsigned inversed byte is read first which
describes appearance buffer size, and the buffer is filled.
- '''0x2''' Facing coordinate updating is signified by the 0x2 mask.
The player's facing-towards X and Y are set to read values;
specifically, an unsigned lower-inverted short and little-endian
unsigned short, respectively.
* **0x2**: Facing coordinate updating is signified by the 0x2 mask.
The player's facing-towards X and Y are set to read values;
specifically, an unsigned lower-inverted short and little-endian
unsigned short, respectively.
- '''0x20''' Notifying client's of a player's health is done via the
0x20 mask. The hitpoint damage done to the player is sent as an
unsigned byte, followed by the hit type as a positive inverted byte.
The player's current and max health are read as an unsigned inverted
byte and unsigned byte, respectively.
* **0x20**: Notifying client's of a player's health is done via the
0x20 mask. The hitpoint damage done to the player is sent as an
unsigned byte, followed by the hit type as a positive inverted byte.
The player's current and max health are read as an unsigned inverted
byte and unsigned byte, respectively.
- '''0x200''' The 0x200 mask acts in the same way as the 0x20 mask and
is most likely associated with special attacks from weapons that
have the ability to hit twice at the same time. Hitpoint damage is
an unsigned byte, the hit type an unsigned inverted byte, and the
current and maximum health being an unsigned byte and unsigned
inverted byte, respectively.
* **0x200**: The 0x200 mask acts in the same way as the 0x20 mask and
is most likely associated with special attacks from weapons that
have the ability to hit twice at the same time. Hitpoint damage is
an unsigned byte, the hit type an unsigned inverted byte, and the
current and maximum health being an unsigned byte and unsigned
inverted byte, respectively.
After the client processes every single player in the update player
list, it ends player updating.
After the client processes every single player in the update player list, it ends player updating.
==Game Protocol== The game protocol is the in-game communication of
player actions between the server and client. <br/> ===Server -\> Client
Packets===
## Game Protocol
The game protocol is the in-game communication of player actions between the server and client.
{
---
## Server -> Client Packets
| Opcode | Type | Length (bytes) | Name | Description
|--|--|--|--|--|
| 1 | FIXED | 0 | [Animation reset](/317/317-Animation-reset.html) | Resets all animations in the immediate area. |
| 4 | FIXED | 6 | [Draw graphic at position](/317/317-Draw-graphic-at-position.html) | Draw a graphic at a given x/y position after a delay. |
| 8 | FIXED | 4 | [Set interface model](/317/317-Set-interface-model.html) | Draw a given model on a given interface. |
| 24 | FIXED | 1 | [Flash sidebar](/317/317-Flash-sidebar.html) | Causes a sidebar icon to start flashing. |
| 27 | FIXED | 0 | [Input amount](/317/317-Input-amount.html) | Displays the "Input amount" interface. |
| 34 | VARIABLE_SHORT | N/A | [Draw items on interface](/317/317-Draw-items-on-interface.html) | Draw a collection of items on an interface. |
| 35 | FIXED | 4 | [Camera shake](/317/317-Camera-shake.html) | Causes the camera to shake. |
| 36 | FIXED | 3 | [Force client setting](/317/317-Force-client-setting.html) | Forcefully changes a client's setting's value. Also changes the default value for that setting. |
| 44 | FIXED | 5 | [Send ground item](/317/317-Send-ground-item.html) | Place an item stack on the ground. |
| 50 | FIXED | 9 | [Send add friend](/317/317-Send-add-friend.html) | Sends a friend to the friend list. |
| 53 | VARIABLE_SHORT | N/A | [Draw items on interface](/317/317-Draw-items-on-interface.html) | Draw a collection of items on an interface. |
| 60 | VARIABLE_SHORT | N/A | [Begin processing position related packets](/317/317-Begin-processing-position-related-packets.html) | Begin processing position related packets. |
| 61 | FIXED | 1 | [Show multi-combat](/317/317-Show-multi-combat.html) | Shows the player that they are in a multi-combat zone. |
| 64 | FIXED | 2 | [Delete ground item](/317/317-Delete-ground-item.html) | Delete ground item. |
| 65 | VARIABLE_SHORT | N/A | [NPC updating](/317/317-NPC-updating.html) | NPC updating |
| 68 | FIXED | 0 | [Reset button state](/317/317-Reset-button-state.html) | Resets the button state for all buttons. |
| 70 | FIXED | 6 | [Interface offset](/317/317-Interface-offset.html) | Sets the offset for drawing of an interface. |
| 71 | FIXED | 3 | [Send sidebar interface](/317/317-Send-sidebar-interface.html) | Assigns an interface to one of the tabs in the game sidebar. |
| 72 | FIXED | 2 | [Clear inventory](/317/317-Clear-inventory.html) | Clears an interface's inventory. |
| 73 | FIXED | 4 | [Load map region](/317/317-Load-map-region.html) | Loads a new map region. |
| 74 | FIXED | 4 | [Play song](/317/317-Play-song.html) | Starts playing a song. |
| 75 | FIXED | 4 | [NPC head on interface](/317/317-NPC-head-on-interface.html) | Place the head of an NPC on an interface |
| 78 | FIXED | 0 | [Reset destination](/317/317-Reset-destination.html) | Resets the players' destination. |
| 79 | FIXED | 4 | [Scroll position](/317/317-Scroll-position.html) | Sets the scrollbar position of an interface. |
| 81 | VARIABLE | N/A | [Begin player updating](/317/317-Begin-player-updating.html) | Begins the player update procedure |
| 84 | FIXED | 7 | [Edit ground item amount](/317/317-Edit-ground-item-amount.html) | Edit ground item amount |
| 85 | FIXED | 2 | [Set local player coordinates](/317/317-Set-local-player-coordinates.html) | Set local player coordinates |
| 87 | FIXED | 7 | [Force client setting](/317/317-Force-client-setting.html) | Forcefully changes a client's setting's value. Also changes the default value for that setting. |
| 97 | FIXED | 2 | [Show interface](/317/317-Show-interface.html) | Displays a normal interface. |
| 99 | FIXED | 1 | [Minimap State](/317/317-Minimap-State.html) | Sets the mini map's state. |
| 101 | FIXED | 3 | [Object removal](/317/317-Object-removal.html) | Sends an object removal request to the client. |
| 104 | VARIABLE | N/A | [Player Option](/317/317-Player-Option.html) | Adds a player option to the right click menu of player(s). |
| 105 | FIXED | 4 | [Play sound in location](/317/317-Play-sound-in-location.html) | Play sound in location. |
| 106 | FIXED | 1 | [Interface over tab](/317/317-Interface-over-tab.html) | Draws an interface over the tab area. |
| 107 | FIXED | 0 | [Reset camera](/317/317-Reset-camera.html) | Resets the camera position. |
| 109 | FIXED | 0 | [Logout](/317/317-Logout.html) | Disconnects the client from the server. |
| 110 | FIXED | 1 | [Run energy](/317/317-Run-energy.html) | Sends the players run energy level. |
| 114 | FIXED | 2 | [System update](/317/317-System-update.html) | Sends how many seconds until a 'System Update.' |
| 117 | N/A | N/A | [Create Projectile](/317/317-Create-Projectile.html) | Creates a projectile. |
| 121 | FIXED | 4 | [Song Queue](/317/317-Song-Queue.html) | Queues a song to be played next. |
| 122 | FIXED | 4 | [Interface color](/317/317-Interface-color.html) | Changes the color of an interface. |
| 126 | VARIABLE_SHORT | N/A | [Set interface text](/317/317-Set-interface-text.html) | Attaches text to an interface. |
| 134 | FIXED | 6 | [Skill level](/317/317-Skill-level.html) | Sends a skill level to the client. |
| 142 | FIXED | 2 | [Show inventory interface](/317/317-Show-inventory-interface.html) | Show inventory interface |
| 147 | FIXED | 14 | [Player to object transformation](/317/317-Player-to-object-transformation.html) | Player to object transformation |
| 151 | FIXED | 5 | [Object spawn](/317/317-Object-spawn.html) | Sends an object spawn request to the client. |
| 156 | FIXED | 3 | [Remove non-specified ground items???](/317/317-Remove-non-specified-ground-items???.html) | Remove non-specified ground items?????? |
| 160 | FIXED | 4 | [Spawn an animated object???](/317/317-Spawn-an-animated-object???.html) | Shows an interface in the chat box?????? |
| 164 | FIXED | 2 | [Chat interface](/317/317-Chat-interface.html) | Shows an interface in the chat box. |
| 166 | FIXED | 6 | [Spin camera](/317/317-Spin-camera.html) | Spin camera |
| 171 | FIXED | 3 | [Hidden Interface](/317/317-Hidden-Interface.html) | Sets an interface to be hidden until hovered over. |
| 174 | FIXED | N/A | [Audio](/317/317-Audio.html) | Sets what audio/sound is to play at a certain time. |
| 176 | FIXED | 10 | [Open welcome screen](/317/317-Open-welcome-screen.html) | Displays the welcome screen. |
| 177 | FIXED | 6 | [Set cutscene camera](/317/317-Set-cutscene-camera.html) | Set cutscene camera |
| 185 | FIXED | 2 | [Player head to interface](/317/317-Player-head-to-interface.html) | Sends the players head model to an interface |
| 187 | FIXED | 0 | [Enter name](/317/317-Enter-name.html) | Displays the "Enter name" interface. |
| 196 | VARIABLE_BYTE | N/A | [Send private message](/317/317-Send-private-message.html) | Sends a private message to another player. |
| 200 | FIXED | 4 | [Interface animation](/317/317-Interface-animation.html) | Sets an interface's model animation. |
| 206 | FIXED | 3 | [Chat settings](/317/317-Chat-settings.html) | Sends the chat privacy settings. |
| 208 | FIXED | 2 | [Walkable interface](/317/317-Walkable-interface.html) | Displays an interface in walkable mode. |
| 214 | VARIABLE_SHORT | N/A | [Send add ignore](/317/317-Send-add-ignore.html) | Sends a ignored player to the ignore list. |
| 215 | FIXED | 7 | [Spawn ground item for all except specified player](/317/317-Spawn-ground-item-for-all-except-specified-player.html) | Spawn ground item for all except specified player |
| 218 | FIXED | 2 | [Open chatbox interface](/317/317-Open-chatbox-interface.html) | Opens an interface over the chatbox. |
| 219 | FIXED | 0 | [Clear screen](/317/317-Clear-screen.html) | Clears the screen of all open interfaces. |
| 221 | FIXED | 1 | [Friends list status](/317/317-Friends-list-status.html) | Friends list load status. |
| 230 | FIXED | 8 | [Interface model rotation](/317/317-Interface-model-rotation.html) | Sets an interface's model rotation and zoom |
| 240 | FIXED | 2 | [Weight](/317/317-Weight.html) | Sends the players weight amount. |
| 241 | VARIABLE_SHORT | N/A | [Construct map region](/317/317-Construct-map-region.html) | Constructs a dynamic map region using a palette of 8*8 tiles. |
| 246 | FIXED | 6 | [Interface item](/317/317-Interface-item.html) | Displays an item model inside an interface. |
| 248 | FIXED | 4 | [Inventory overlay](/317/317-Inventory-overlay.html) | Displays an interface over the sidebar area. |
| 249 | FIXED | 3 | [Initialize player](/317/317-Initialize-player.html) | Sends the player's membership status and their current index on the server's player list. |
| 253 | VARIABLE_BYTE | N/A | [Send message](/317/317-Send-message.html) | Sends a server message (e.g. 'Welcome to RuneScape') or trade/duel request. |
| 254 | VARIABLE_BYTE | N/A | [Display hint icon](/317/317-Display-hint-icon.html) | Displays a hint icon. |
! Opcode ! Type ! Length (bytes) ! Name ! Description \|- \| 1 \| FIXED
\| 0 \| \[\[317 Animation reset\|Animation reset\]\] \| Resets all
animations in the immediate area. \|- \| 4 \| FIXED \| 6 \| \[\[317 Draw
graphic at position\|Draw graphic at position\]\] \| Draw a graphic at a
given x/y position after a delay. \|- \| 8 \| FIXED \| 4 \| \[\[317 Set
interface model\|Set interface model\]\] \| Draw a given model on a
given interface. \|- \| 24 \| FIXED \| 1 \| \[\[317 Flash sidebar\|Flash
sidebar\]\] \| Causes a sidebar icon to start flashing. \|- \| 27 \|
FIXED \| 0 \| \[\[317 Input amount\|Input amount\]\] \| Displays the
"Input amount" interface. \|- \| 34 \| VARIABLE\_SHORT \| N/A \| \[\[317
Draw items on interface\|Draw items on interface\]\] \| Draw a
collection of items on an interface. \|- \| 35 \| FIXED \| 4 \| \[\[317
Camera shake\|Camera shake\]\] \| Causes the camera to shake. \|- \| 36
\| FIXED \| 3 \| \[\[317 Force client setting\|Force client setting\]\]
\| Forcefully changes a client's setting's value. Also changes the
default value for that setting. \|- \| 44 \| FIXED \| 5 \| \[\[317 Send
ground item\|Send ground item\]\] \| Place an item stack on the ground.
\|- \| 50 \| FIXED \| 9 \| \[\[317 Send add friend\|Send add friend\]\]
\| Sends a friend to the friend list. \|- \| 53 \| VARIABLE\_SHORT \|
N/A \| \[\[317 Draw items on interface\|Draw items on interface\]\] \|
Draw a collection of items on an interface. \|- \| 60 \| VARIABLE\_SHORT
\| N/A \| \[\[317 Begin processing position related packets\|Begin
processing position related packets\]\] \| Begin processing position
related packets. \|- \| 61 \| FIXED \| 1 \| \[\[317 Show
multi-combat\|Show multi-combat\]\] \| Shows the player that they are in
a multi-combat zone. \|- \| 64 \| FIXED \| 2 \| \[\[317 Delete ground
item\|Delete ground item\]\] \| Delete ground item. \|- \| 65 \|
VARIABLE\_SHORT \| N/A \| \[\[317 NPC updating\|NPC updating\]\] \| NPC
updating \|- \| 68 \| FIXED \| 0 \| \[\[317 Reset button state\|Reset
button state\]\] \| Resets the button state for all buttons. \|- \| 70
\| FIXED \| 6 \| \[\[317 Interface offset\|Interface offset\]\] \| Sets
the offset for drawing of an interface. \|- \| 71 \| FIXED \| 3 \|
\[\[317 Send sidebar interface\|Send sidebar interface\]\] \| Assigns an
interface to one of the tabs in the game sidebar. \|- \| 72 \| FIXED \|
2 \| \[\[317 Clear inventory\|Clear inventory\]\] \| Clears an
interface's inventory. \|- \| 73 \| FIXED \| 4 \| \[\[317 Load map
region\|Load map region\]\] \| Loads a new map region. \|- \| 74 \|
FIXED \| 4 \| \[\[317 Play song\|Play song\]\] \| Starts playing a song.
\|- \| 75 \| FIXED \| 4 \| \[\[317 NPC head on interface\|NPC head on
interface\]\] \| Place the head of an NPC on an interface \|- \| 78 \|
FIXED \| 0 \| \[\[317 Reset destination\|Reset destination\]\] \| Resets
the players' destination. \|- \| 79 \| FIXED \| 4 \| \[\[317 Scroll
position\|Scroll position\]\] \| Sets the scrollbar position of an
interface. \|- \| 81 \| VARIABLE \| N/A \| \[\[317 Begin player
updating\|Begin player updating\]\] \| Begins the player update
procedure \|- \| 84 \| FIXED \| 7 \| \[\[317 Edit ground item
amount\|Edit ground item amount\]\] \| Edit ground item amount \|- \| 85
\| FIXED \| 2 \| \[\[317 Set local player coordinates\|Set local player
coordinates\]\] \| Set local player coordinates \|- \| 87 \| FIXED \| 7
\| \[\[317 Force client setting\|Force client setting\]\] \| Forcefully
changes a client's setting's value. Also changes the default value for
that setting. \|- \| 97 \| FIXED \| 2 \| \[\[317 Show interface\|Show
interface\]\] \| Displays a normal interface. \|- \| 99 \| FIXED \| 1 \|
\[\[317 Minimap State\|Minimap State\]\] \| Sets the mini map's state.
\|- \| 101 \| FIXED \| 3 \| \[\[317 Object removal\|Object removal\]\]
\| Sends an object removal request to the client. \|- \| 104 \| VARIABLE
\| N/A \| \[\[317 Player Option\|Player Option\]\] \| Adds a player
option to the right click menu of player(s). \|- \| 105 \| FIXED \| 4 \|
\[\[317 Play sound in location\|Play sound in location\]\] \| Play sound
in location. \|- \| 106 \| FIXED \| 1 \| \[\[317 Interface over
tab\|Interface over tab\]\] \| Draws an interface over the tab area. \|-
\| 107 \| FIXED \| 0 \| \[\[317 Reset camera\|Reset camera\]\] \| Resets
the camera position. \|- \| 109 \| FIXED \| 0 \| \[\[317
Logout\|Logout\]\] \| Disconnects the client from the server. \|- \| 110
\| FIXED \| 1 \| \[\[317 Run energy\|Run energy\]\] \| Sends the players
run energy level. \|- \| 114 \| FIXED \| 2 \| \[\[317 System
update\|System update\]\] \| Sends how many seconds until a 'System
Update.' \|- \| 117 \| N/A \| N/A \| \[\[317 Create Projectile\|Create
Projectile\]\] \| Creates a projectile. \|- \| 121 \| FIXED \| 4 \|
\[\[317 Song Queue\|Song Queue\]\] \| Queues a song to be played next.
\|- \| 122 \| FIXED \| 4 \| \[\[317 Interface color\|Interface color\]\]
\| Changes the color of an interface. \|- \| 126 \| VARIABLE\_SHORT \|
N/A \| \[\[317 Set interface text\|Set interface text\]\] \| Attaches
text to an interface. \|- \| 134 \| FIXED \| 6 \| \[\[317 Skill
level\|Skill level\]\] \| Sends a skill level to the client. \|- \| 142
\| FIXED \| 2 \| \[\[317 Show inventory interface\|Show inventory
interface\]\] \| Show inventory interface \|- \| 147 \| FIXED \| 14 \|
\[\[317 Player to object transformation\|Player to object
transformation\]\] \| Player to object transformation \|- \| 151 \|
FIXED \| 5 \| \[\[317 Object spawn\|Object spawn\]\] \| Sends an object
spawn request to the client. \|- \| 156 \| FIXED \| 3 \| \[\[317 Remove
non-specified ground items???\|Remove non-specified ground items???\]\]
\| Remove non-specified ground items?????? \|- \| 160 \| FIXED \| 4 \|
\[\[317 Spawn an animated object???\|Spawn an animated object???\]\] \|
Shows an interface in the chat box?????? \|- \| 164 \| FIXED \| 2 \|
\[\[317 Chat interface\|Chat interface\]\] \| Shows an interface in the
chat box. \|- \| 166 \| FIXED \| 6 \| \[\[317 Spin camera\|Spin
camera\]\] \| Spin camera \|- \| 171 \| FIXED \| 3 \| \[\[317 Hidden
Interface\|Hidden Interface\]\] \| Sets an interface to be hidden until
hovered over. \|- \| 174 \| FIXED \| N/A \| \[\[317 Audio\|Audio\]\] \|
Sets what audio/sound is to play at a certain time. \|- \| 176 \| FIXED
\| 10 \| \[\[317 Open welcome screen\|Open welcome screen\]\] \|
Displays the welcome screen. \|- \| 177 \| FIXED \| 6 \| \[\[317 Set
cutscene camera\|Set cutscene camera\]\] \| Set cutscene camera \|- \|
185 \| FIXED \| 2 \| \[\[317 Player head to interface\|Player head to
interface\]\] \| Sends the players head model to an interface \|- \| 187
\| FIXED \| 0 \| \[\[317 Enter name\|Enter name\]\] \| Displays the
"Enter name" interface. \|- \| 196 \| VARIABLE\_BYTE \| N/A \| \[\[317
Send private message\|Send private message\]\] \| Sends a private
message to another player. \|- \| 200 \| FIXED \| 4 \| \[\[317 Interface
animation\|Interface animation\]\] \| Sets an interface's model
animation. \|- \| 206 \| FIXED \| 3 \| \[\[317 Chat settings\|Chat
settings\]\] \| Sends the chat privacy settings. \|- \| 208 \| FIXED \|
2 \| \[\[317 Walkable interface\|Walkable interface\]\] \| Displays an
interface in walkable mode. \|- \| 214 \| VARIABLE\_SHORT \| N/A \|
\[\[317 Send add ignore\|Send add ignore\]\] \| Sends a ignored player
to the ignore list. \|- \| 215 \| FIXED \| 7 \| \[\[317 Spawn ground
item for all except specified player\|Spawn ground item for all except
specified player\]\] \| Spawn ground item for all except specified
player \|- \| 218 \| FIXED \| 2 \| \[\[317 Open chatbox interface\|Open
chatbox interface\]\] \| Opens an interface over the chatbox. \|- \| 219
\| FIXED \| 0 \| \[\[317 Clear screen\|Clear screen\]\] \| Clears the
screen of all open interfaces. \|- \| 221 \| FIXED \| 1 \| \[\[317
Friends list status\|Friends list status\]\] \| Friends list load
status. \|- \| 230 \| FIXED \| 8 \| \[\[317 Interface model
rotation\|Interface model rotation\]\] \| Sets an interface's model
rotation and zoom \|- \| 240 \| FIXED \| 2 \| \[\[317 Weight\|Weight\]\]
\| Sends the players weight amount. \|- \| 241 \| VARIABLE\_SHORT \| N/A
\| \[\[317 Construct map region\|Construct map region\]\] \| Constructs
a dynamic map region using a palette of 8\*8 tiles. \|- \| 246 \| FIXED
\| 6 \| \[\[317 Interface item\|Interface item\]\] \| Displays an item
model inside an interface. \|- \| 248 \| FIXED \| 4 \| \[\[317 Inventory
overlay\|Inventory overlay\]\] \| Displays an interface over the sidebar
area. \|- \| 249 \| FIXED \| 3 \| \[\[317 Initialize player\|Initialize
player\]\] \| Sends the player's membership status and their current
index on the server's player list. \|- \| 253 \| VARIABLE\_BYTE \| N/A
\| \[\[317 Send message\|Send message\]\] \| Sends a server message
(e.g. 'Welcome to RuneScape') or trade/duel request. \|- \| 254 \|
VARIABLE\_BYTE \| N/A \| \[\[317 Display hint icon\|Display hint
icon\]\] \| Displays a hint icon. \|- \|}
===Client -\> Server Packets===
{
---
! Opcode ! Type ! Length (bytes) ! Name ! Description \|- \| 0 \| FIXED
\| 0 \| \[\[317 Idle\|Idle\]\] \| Sent when there are no actions being
performed by the player for this cycle. \|- \| 3 \| FIXED \| 1 \|
\[\[317 Focus change\|Focus change\]\] \| Sent when the game client
window goes out of focus. \|- \| 4 \| VARIABLE BYTE \| N/A \| \[\[317
Chat\|Chat\]\] \| Sent when the player enters a chat message. \|- \| 14
\| FIXED \| 8 \| \[\[317 Item on player\|Item on player\]\] \| Sent when
a player uses an item on another player. \|- \| 16 \| FIXED \| 1 \|
\[\[317 Alternate item option 2\|Alternate item option 2\]\] \| Sent
when a player uses an item. This is an alternate item option. \|- \| 17
\| FIXED \| 2 \| \[\[317 NPC action 2\|NPC action 2\]\] \| Sent when a
player clicks the second option of an NPC. \|- \| 18 \| FIXED \| 2 \|
\[\[317 NPC action 4\|NPC action 4\]\] \| Sent when a player clicks the
fourth option of an NPC. \|- \| 21 \| FIXED \| 2 \| \[\[317 NPC action
3\|NPC action 3\]\] \| Sent when a player clicks the third option of an
NPC. \|- \| 25 \| FIXED \| 10 \| \[\[317 Item on floor\|Item on
floor\]\] \| Sent when a player uses an item on another item thats on
the floor. \|- \| 39 \| FIXED \| 2 \| \[\[317 Trade answer\|Trade
answer\]\] \| Sent when a player answers a trade request from another
player. \|- \| 40 \| FIXED \| N/A \| \[\[317 NPC
Dialogue\|NpcDialogue\]\] \| Sent when a player clicks the "Click here
to continue" on any dialogue. \|- \| 41 \| FIXED \| 6 \| \[\[317 Equip
item\|Equip item\]\] \| Sent when a player equips an item. \|- \| 43 \|
FIXED \| 6 \| \[\[317 Bank 10 items\|Bank 10 items\]\] \| Sent when a
player banks 10 of a certain item. \|- \| 53 \| FIXED \| 4 \| \[\[317
Item on item\|Item on item\]\] \| Sent when a player uses an item with
another item. \|- \| 70 \| FIXED \| 6 \| \[\[317 Object action 3\|Object
action 3\]\] \| Sent when the player clicks the third action available
for an object. \|- \| 72 \| FIXED \| 2 \| \[\[317 Attack (NPC)\|Attack
(NPC)\]\] \| Sent when a player attacks an NPC. \|- \| 73 \| FIXED \| 2
\| \[\[317 Trade request\|Trade request\]\] \| Sent when a player
requests a trade with another player. \|- \| 74 \| FIXED \| 8 \| \[\[317
Remove ignore\|Remove ignore\]\] \| Sent when a player removes a player
from their ignore list. \|- \| 79 \| FIXED \| 6 \| \[\[317 Light
item\|Light item\]\] \| Sent when a player attempts to light logs on
fire. \|- \| 86 \| FIXED \| 4 \| \[\[317 Camera movement\|Camera
movement\]\] \| Sent when the player moves the camera. \|- \| 87 \|
FIXED \| 6 \| \[\[317 Drop item\|Drop item\]\] \| Sent when a player
wants to drop an item onto the ground. \|- \| 95 \| FIXED \| 3 \|
\[\[317 Privacy options\|Privacy options\]\] \| Sent when a player
changes their privacy options (i.e. public chat). \|- \| 98 \|
VARIABLE\_BYTE \| N/A \| \[\[317 Walk on command\|Walk on command\]\] \|
Sent when the player should walk somewhere according to a certain action
performed, such as clicking an object. \|- \| 101 \| FIXED \| 13 \|
\[\[317 Design screen\|Design screen\]\] \| Sent when a player is
choosing their character design options. \|- \| 103 \| VARIABLE\_BYTE \|
N/A \| \[\[317 Player command\|Player command\]\] \| Sent when the
player enters a command in the chat box (e.g. "::command") \|- \| 117 \|
FIXED \| 6 \| \[\[317 Bank 5 items\|Bank 5 items\]\] \| Sent when a
player banks 5 of a certain item. \|- \| 121 \| FIXED \| 0 \| \[\[317
Loading finished\|Loading finished\]\] \| Sent when the client finishes
loading a map region. \|- \| 122 \| FIXED \| 6 \| \[\[317 Item action
1\|Item action 1\]\] \| Sent when the player clicks the first option of
an item, such as "Bury" for bones. \|- \| 126 \| VARIABLE BYTE \| N/A \|
\[\[317 Private message\|Private message\]\] \| Sent when a player sends
a private message to another player. \|- \| 129 \| FIXED \| 6 \| \[\[317
Bank all items\|Bank all items\]\] \| Sent when a player banks all of a
certain item that they have in their inventory. \|- \| 130 \| FIXED \| 0
\| \[\[317 Close window\|Close window\]\] \| Sent when a player presses
the close, exit or cancel button on an interface. \|- \| 131 \| FIXED \|
4 \| \[\[317 Mage NPC\|Mage NPC\]\] \| Sent when a player uses magic
attacks on an NPC. \|- \| 132 \| FIXED \| 6 \| \[\[317 Object action
1\|Object action 1\]\] \| Sent when the player clicks the first option
of an object, such as "Cut" for trees. \|- \| 133 \| FIXED \| 8 \|
\[\[317 Add ignore\|Add ignore\]\] \| Sent when a player adds a player
to their ignore list. \|- \| 135 \| FIXED \| 6 \| \[\[317 Bank X items
part-1\|Bank X items part-1\]\] \| Sent when a player requests to bank
an X amount of items. \|- \| 139 \| FIXED \| 2 \| \[\[317
Follow\|Follow\]\] \| Sent when a player clicks the follow option on
another player. \|- \| 145 \| FIXED \| 6 \| \[\[317 Unequip
item\|Unequip item\]\] \| Sent when a player unequips an item. \|- \|
155 \| FIXED \| 2 \| \[\[317 NPC action 1\|NPC action 1\]\] \| Sent when
a player clicks first option of an NPC, such as "Talk." \|- \| 164 \|
VARIABLE\_BYTE \| N/A \| \[\[317 Regular walk\|Regular walk\]\] \| Sent
when the player walks regularly. \|- \| 185 \| FIXED \| 2 \| \[\[317
Button click\|Button click\]\] \| Sent when a player clicks an in-game
button. \|- \| 188 \| FIXED \| 8 \| \[\[317 Add friend\|Add friend\]\]
\| Sent when a player adds a friend to their friend list. \|- \| 192 \|
FIXED \| 12 \| \[\[317 Item on object\|Item on object\]\] \| Sent when a
a player uses an item on an object. \|- \| 202 \| FIXED \| 0 \| \[\[317
Idle logout\|Idle logout\]\] \| Sent when the player has become idle and
should be logged out. \|- \| 208 \| FIXED \| 4 \| \[\[317 Bank X items
part-2\|Bank X items part-2\]\] \| Sent when a player enters an X amount
of items they want to bank. \|- \| 210 \| FIXED \| 0 \| \[\[317 Region
change\|Region change\]\] \| Sent when a player enters a new map region.
\|- \| 214 \| FIXED \| 7 \| \[\[317 Move item\|Move item\]\] \| Sent
when a player moves an item from one slot to another. \|- \| 215 \|
FIXED \| 8 \| \[\[317 Remove friend\|Remove friend\]\] \| Sent when a
player removes a friend from their friend list. \|- \| 218 \| FIXED \| 8
\| \[\[317 Report player\|Report player\]\] \| Sent when a player
reports another player. \|- \| 236 \| FIXED \| 6 \| \[\[317 Pickup
ground item\|Pickup ground item\]\] \| Sent when the player picks up an
item from the ground. \|- \| 237 \| FIXED \| 8 \| \[\[317 Magic on
items\|Magic on items\]\] \| Sent when a player casts magic on the items
in their inventory. \|- \| 241 \| FIXED \| 4 \| \[\[317 Mouse
click\|Mouse click\]\] \| Sent when the player clicks somewhere on the
game screen. \|- \| 248 \| VARIABLE\_BYTE \| N/A \| \[\[317 Map
walk\|Map walk\]\] \| Sent when the player walks using the map. Has 14
additional (assumed to be anticheat) bytes added to the end of it that
are ignored. \|- \| 249 \| FIXED \| 4 \| \[\[317 Magic on player\|Magic
on player\]\] \| Sent when a player attempts to cast magic on another
player. \|- \| 252 \| FIXED \| 6 \| \[\[317 Object action 2\|Object
action 2\]\] \| Sent when the player clicks the second option available
for an object. \|- \| 253 \| FIXED \| 6 \| \[\[317 Ground Item
Action\|Ground Item Action\]\] \| Sent when the player clicks the first
option for a ground item (I.E. 'Light Logs') \|- \|}
## Client -> Server Packets
| Opcode | Type | Length (bytes) | Name | Description
|--|--|--|--|--|
| 0 | FIXED | 0 | [Idle](/317/317-Idle.html) | Sent when there are no actions being performed by the player for this cycle. |
| 3 | FIXED | 1 | [Focus change](/317/317-Focus-change.html) | Sent when the game client window goes out of focus. |
| 4 | VARIABLE BYTE | N/A | [Chat](/317/317-Chat.html) | Sent when the player enters a chat message. |
| 14 | FIXED | 8 | [Item on player](/317/317-Item-on-player.html) | Sent when a player uses an item on another player. |
| 16 | FIXED | 1 | [Alternate item option 2](/317/317-Alternate-item-option-2.html) | Sent when a player uses an item. This is an alternate item option. |
| 17 | FIXED | 2 | [NPC action 2](/317/317-NPC-action-2.html) | Sent when a player clicks the second option of an NPC. |
| 18 | FIXED | 2 | [NPC action 4](/317/317-NPC-action-4.html) | Sent when a player clicks the fourth option of an NPC. |
| 21 | FIXED | 2 | [NPC action 3](/317/317-NPC-action-3.html) | Sent when a player clicks the third option of an NPC. |
| 25 | FIXED | 10 | [Item on floor](/317/317-Item-on-floor.html) | Sent when a player uses an item on another item thats on the floor. |
| 39 | FIXED | 2 | [Trade answer](/317/317-Trade-answer.html) | Sent when a player answers a trade request from another player. |
| 40 | FIXED | N/A | [NpcDialogue](/317/317-NPC-Dialogue.html) | Sent when a player clicks the "Click here to continue" on any dialogue. |
| 41 | FIXED | 6 | [Equip item](/317/317-Equip-item.html) | Sent when a player equips an item. |
| 43 | FIXED | 6 | [Bank 10 items](/317/317-Bank-10-items.html) | Sent when a player banks 10 of a certain item. |
| 53 | FIXED | 4 | [Item on item](/317/317-Item-on-item.html) | Sent when a player uses an item with another item. |
| 70 | FIXED | 6 | [Object action 3](/317/317-Object-action-3.html) | Sent when the player clicks the third action available for an object. |
| 72 | FIXED | 2 | [Attack (NPC)](/317/317-Attack-(NPC).html) | Sent when a player attacks an NPC. |
| 73 | FIXED | 2 | [Trade request](/317/317-Trade-request.html) | Sent when a player requests a trade with another player. |
| 74 | FIXED | 8 | [Remove ignore](/317/317-Remove-ignore.html) | Sent when a player removes a player from their ignore list. |
| 79 | FIXED | 6 | [Light item](/317/317-Light-item.html) | Sent when a player attempts to light logs on fire. |
| 86 | FIXED | 4 | [Camera movement](/317/317-Camera-movement.html) | Sent when the player moves the camera. |
| 87 | FIXED | 6 | [Drop item](/317/317-Drop-item.html) | Sent when a player wants to drop an item onto the ground. |
| 95 | FIXED | 3 | [Privacy options](/317/317-Privacy-options.html) | Sent when a player changes their privacy options (i.e. public chat). |
| 98 | VARIABLE_BYTE | N/A | [Walk on command](/317/317-Walk-on-command.html) | Sent when the player should walk somewhere according to a certain action performed, such as clicking an object. |
| 101 | FIXED | 13 | [Design screen](/317/317-Design-screen.html) | Sent when a player is choosing their character design options. |
| 103 | VARIABLE_BYTE | N/A | [Player command](/317/317-Player-command.html) | Sent when the player enters a command in the chat box (e.g. "::command") |
| 117 | FIXED | 6 | [Bank 5 items](/317/317-Bank-5-items.html) | Sent when a player banks 5 of a certain item. |
| 121 | FIXED | 0 | [Loading finished](/317/317-Loading-finished.html) | Sent when the client finishes loading a map region. |
| 122 | FIXED | 6 | [Item action 1](/317/317-Item-action-1.html) | Sent when the player clicks the first option of an item, such as "Bury" for bones. |
| 126 | VARIABLE BYTE | N/A | [Private message](/317/317-Private-message.html) | Sent when a player sends a private message to another player. |
| 129 | FIXED | 6 | [Bank all items](/317/317-Bank-all-items.html) | Sent when a player banks all of a certain item that they have in their inventory. |
| 130 | FIXED | 0 | [Close window](/317/317-Close-window.html) | Sent when a player presses the close, exit or cancel button on an interface. |
| 131 | FIXED | 4 | [Mage NPC](/317/317-Mage-NPC.html) | Sent when a player uses magic attacks on an NPC. |
| 132 | FIXED | 6 | [Object action 1](/317/317-Object-action-1.html) | Sent when the player clicks the first option of an object, such as "Cut" for trees. |
| 133 | FIXED | 8 | [Add ignore](/317/317-Add-ignore.html) | Sent when a player adds a player to their ignore list. |
| 135 | FIXED | 6 | [Bank X items part-1](/317/317-Bank-X-items-part-1.html) | Sent when a player requests to bank an X amount of items. |
| 139 | FIXED | 2 | [Follow](/317/317-Follow.html) | Sent when a player clicks the follow option on another player. |
| 145 | FIXED | 6 | [Unequip item](/317/317-Unequip-item.html) | Sent when a player unequips an item. |
| 155 | FIXED | 2 | [NPC action 1](/317/317-NPC-action-1.html) | Sent when a player clicks first option of an NPC, such as "Talk." |
| 164 | VARIABLE_BYTE | N/A | [Regular walk](/317/317-Regular-walk.html) | Sent when the player walks regularly. |
| 185 | FIXED | 2 | [Button click](/317/317-Button-click.html) | Sent when a player clicks an in-game button. |
| 188 | FIXED | 8 | [Add friend](/317/317-Add-friend.html) | Sent when a player adds a friend to their friend list. |
| 192 | FIXED | 12 | [Item on object](/317/317-Item-on-object.html) | Sent when a a player uses an item on an object. |
| 202 | FIXED | 0 | [Idle logout](/317/317-Idle-logout.html) | Sent when the player has become idle and should be logged out. |
| 208 | FIXED | 4 | [Bank X items part-2](/317/317-Bank-X-items-part-2.html) | Sent when a player enters an X amount of items they want to bank. |
| 210 | FIXED | 0 | [Region change](/317/317-Region-change.html) | Sent when a player enters a new map region. |
| 214 | FIXED | 7 | [Move item](/317/317-Move-item.html) | Sent when a player moves an item from one slot to another. |
| 215 | FIXED | 8 | [Remove friend](/317/317-Remove-friend.html) | Sent when a player removes a friend from their friend list. |
| 218 | FIXED | 8 | [Report player](/317/317-Report-player.html) | Sent when a player reports another player. |
| 236 | FIXED | 6 | [Pickup ground item](/317/317-Pickup-ground-item.html) | Sent when the player picks up an item from the ground. |
| 237 | FIXED | 8 | [Magic on items](/317/317-Magic-on-items.html) | Sent when a player casts magic on the items in their inventory. |
| 241 | FIXED | 4 | [Mouse click](/317/317-Mouse-click.html) | Sent when the player clicks somewhere on the game screen. |
| 248 | VARIABLE_BYTE | N/A | [Map walk](/317/317-Map-walk.html) | Sent when the player walks using the map. Has 14 additional (assumed to be anticheat) bytes added to the end of it that are ignored. |
| 249 | FIXED | 4 | [Magic on player](/317/317-Magic-on-player.html) | Sent when a player attempts to cast magic on another player. |
| 252 | FIXED | 6 | [Object action 2](/317/317-Object-action-2.html) | Sent when the player clicks the second option available for an object. |
| 253 | FIXED | 6 | [Ground Item Action](/317/317-Ground-Item-Action.html) | Sent when the player clicks the first option for a ground item (i.e. 'Light Logs') |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Region change\|description=Sent when a player enters a
new map region.\|opcode=210\|type=Fixed\|length=0\|revision=317}} ==
Region Change ==
=== Description ===
# Region Change
This packet is sent when a player enters a new map region.
## Packet Details
| Key | Value |
|--|--|
| Name | Region change |
| Description | Sent when a player enters a new map region. |
| Opcode | 210 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Remove friend\|description=Sent when a player removes a
friend from their friend
list.\|opcode=215\|type=Fixed\|length=8\|revision=317}} == Remove Friend
==
# Remove Friend
This packet is sent when a player removes a friend from their friends list.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Remove friend |
| Description | Sent when a player removes a friend from their friend list. |
| Opcode | 215 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
This packet is sent when a player removes a friend from their friends
list.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Long\]\] \| The other players ID.
\|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Long](/Data-Types.html#common-data-types) | The other players ID. |

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Remove ignore\|description=Sent when a player removes
another player from their ignore
list.\|opcode=74\|type=Fixed\|length=8\|revision=317}} == Remove Ignore
==
# Remove Ignore
This packet is sent when a player removes another player from their ignore list.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Remove ignore |
| Description | Sent when a player removes another player from their ignore list. |
| Opcode | 74 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
This packet is sent when a player removes another player from their
ignore list.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Long\]\] \| The other players ID.
\|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Long](/Data-Types.html#common-data-types) | The other players ID. |

View File

@ -1,15 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Report player\|description=Sent when a player reports
another player.\|opcode=218\|type=Fixed\|length=8\|revision=317}} ==
Report Player ==
=== Description ===
# Report Player
This packet is sent when a player reports another player.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Long\]\] \| The players name as a
long. \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The rule
that's being reported \|- \| \[\[Data Types\#Standard data
types\|Byte\]\] \| Mute for 48 hours - Sent as either 1 or 0 for a
boolean client-side \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Report player |
| Description | Sent when a player reports another player. |
| Opcode | 218 |
| Type | Fixed |
| Length | 8 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Long](/Data-Types.html#common-data-types) | The players name as a long. |
| [Byte](/Data-Types.html#common-data-types) | The rule that's being reported |
| [Byte](/Data-Types.html#common-data-types) | Mute for 48 hours - Sent as either 1 or 0 for a boolean client-side |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Reset
setting states\|description=Resets the states for all
settings.\|opcode=68\|type=Fixed\|length=0\|revision=317}} == Reset
setting states ==
=== Description ===
# Reset setting states
This packet resets the states for all user settings (inc. buttons).
## Packet Details
| Key | Value |
|--|--|
| Name | Reset setting states |
| Description | Resets the states for all settings. |
| Opcode | 68 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,8 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Reset
camera\|description=Resets the camera
position.\|opcode=107\|type=Fixed\|length=0\|revision=317}} == Reset
Camera ==
=== Description ===
# Reset Camera
Resets the game's camera position to the client default.
## Packet Details
| Key | Value |
|--|--|
| Name | Reset camera |
| Description | Resets the camera position. |
| Opcode | 107 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,9 +1,12 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Reset
destination\|description=Resets the player's
destination.\|opcode=78\|type=Fixed\|length=0\|revision=317}} == Reset
destination ==
# Reset destination
Sending the packet to the client will make the client reset the player's destination and effectively stop them from walking.
=== Description ===
Sending the packet to the client will make the client reset the player's
destination and effectively stop them from walking.
## Packet Details
| Key | Value |
|--|--|
| Name | Reset destination |
| Description | Resets the player's destination. |
| Opcode | 78 |
| Type | Fixed |
| Length | 0 |
| Revision | 317 |

View File

@ -1,13 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Run
energy\|description=Sends the players run energy
level.\|opcode=110\|type=Fixed\|length=1\|revision=317}} == Run Energy
==
=== Description ===
# Run Energy
Sends how much run energy the player currently has.
=== Packet Structure ===
## Packet Details
| Key | Value |
|--|--|
| Name | Run energy |
| Description | Sends the players run energy level. |
| Opcode | 110 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data types\|Byte\]\] \| The energy level. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | The energy level. |

View File

@ -1,15 +1,18 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
{{packet\|name=Scroll position\|description=Sets the scrollbar position
of an interface.\|opcode=79\|type=Fixed\|length=4\|revision=317}} ==
Scroll Position ==
=== Description ===
# Scroll Position
This packet sets the scrollbar position of an interface.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
Types\#Standard data types\|Short\]\] \| The interface ID. \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
Standard data types\|Special A\]\] \| The position of the scrollbar. \|-
\|}
## Packet Details
| Key | Value |
|--|--|
| Name | Scroll position |
| Description | Sets the scrollbar position of an interface. |
| Opcode | 79 |
| Type | Fixed |
| Length | 4 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The interface ID. |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The position of the scrollbar. |

View File

@ -1,14 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send
Skill\|description=Sends a specific
skill\|opcode=154\|type=Fixed\|length=N/A\|revision=317}} == Send Skill
==
=== Description ===
# Send Skill
This packet sends a specific skill.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \| The skill you want to
send. \|- \| \[\[Data Types\#Standard data types\|Int\]\] \| The
experience of that skill. \|- \| \[\[Data Types\#Standard data
types\|Byte\]\] \| The level of that skill. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Send Skill |
| Description | Sends a specific skill |
| Opcode | 154 |
| Type | Fixed |
| Length | N/A |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | The skill you want to send. |
| [Int](/Data-Types.html#common-data-types) | The experience of that skill. |
| [Byte](/Data-Types.html#common-data-types) | The level of that skill. |

View File

@ -1,37 +1,10 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
<h3>
[ Description ]{.mw-headline}
</h3>
<p>
# Send Add Friend
Sends friend data to the client
Attempts to update player node, if player isn't in the friends list and
there is space, the player is added to the friend list.
</p>
<h3>
[ Packet Structure ]{.mw-headline}
</h3>
<table border="2">
<tr>
<th>
Data type
</th>
<th>
Description
</th>
</tr>
<tr>
<td>
Long
</td>
<td>
The player name
</td>
</tr>
<td>
Byte
</td>
<td>
The world (10 = "online" for most clients, 0 = logged out)
</td>
</table>
Attempts to update player node, if player isn't in the friends list and there is space, the player is added to the friend list.
## Packet Structure
| Data type | Description |
|--|--|
| [Long](/Data-Types.html#common-data-types) | Player name |
| [Byte](/Data-Types.html#common-data-types) | The world (10 = "online" in world 1, 0 = logged out) |

View File

@ -1,22 +1,31 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send
ignored users\|description=Sends a list of all the ignored player
IDs\|opcode=214\|type=VARIABLE\_SHORT\|length=N/A\|revision=317}} ==
Send ignored users ==
=== Description ===
# Send ignored users
Sends the IDs of all the users that this player has in their ignore.
Note: By looking at the rest of the 317 protocol, there doesn't seem to be a way to change the list dynamically.
It seems as though that whenever the player decides to add or remove a player from their list, it must send all the values again.
## Packet Details
| Key | Value |
|--|--|
| Name | Send ignored users |
| Description | Sends a list of all the ignored player IDs |
| Opcode | 214 |
| Type | VARIABLE_SHORT |
| Length | N/A |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| Long block (see blow) | Player name |
## Long block
This packet has a slightly different structure than the other packets.
int entries = packetSize / 8; for (int i = 0; i \< entries; i++) {
ignoreList\[i\] = stream.readLong(); }
```java
int entries = packetSize / 8;
By looking at the rest of the 317 protocol, there doesn't seem to be a
way to change the list dynamically. It seems as though that whenever the
player decides to add or remove a player from their list, it must send
all the values again.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard Data Types\|Long\]\] \| The Unique Identifier
of the player(s) (possibly determined by their username). \|- \|}
for (int i = 0; i < entries; i++) {
ignoreList[i] = stream.readLong();
}
```

View File

@ -1,19 +1,22 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send
message\|description=Sends a server message, trade or duel request to
the client's chat panel.\|opcode=253\|type=Variable
Byte\|length=N/A\|revision=317}} == Send Message ==
# Send Message
Sends a server side message (e.g. 'Welcome to RuneScape'), or a trade/duel/challenge request.
=== Description ===
The format for sending such requests is: `[player name][request type]`.
Where `[request type]` is one of `:duelreq:`, `:chalreq:`, or `:tradereq:`.
Sends a server side message (e.g. 'Welcome to RuneScape'), or
trade/duel/challenge request.
Example: Trading a player called 'mopar': `mopar:tradereq:`.
The format for sending such requests is: '\[player name\]\[request
type\]'. Where request type can be one of the following: ':duelreq:',
':chalreq:' or ':tradereq:'. An example for trading the player 'mopar'
would be: 'mopar:tradereq:'.
## Packet Details
| Key | Value |
|--|--|
| Name | Send message |
| Description | Sends a server message, trade or duel request to the client's chat panel. |
| Opcode | 253 |
| Type | Variable Byte |
| Length | N/A |
| Revision | 317 |
=== Packet Structure ===
{\| border=2 ! Data type ! Description \|- \| \[\[RS String\|RS
String\]\] \| The message. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [RS String](/RS-String.html) | The message. |

View File

@ -1,15 +1,19 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Send Private
Message == {\| style="float:right;margin:1em; width:250px;"
cellpadding="3" cellspacing="0" border="1" \|- ! scope="col" colspan="2"
style="background-color:\#3c5;" \| Send Message Sends Message to another
user. \|- ! scope="row"\| Opcode \| 196 \|- ! scope="row"\| Type \|
VARIABLE\_SHORT \|- ! scope="row"\| Length \| N/A \|}
=== Description ===
# Send Private Message
Sending a private message to another user on the server.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Long\]\] \| Player name. \|- \|
\[\[Data Types\#Standard data types\|Int\]\] \| ? \|- \| \[\[Data
Types\#Standard data types\|Byte\]\] \| Player rights. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Sending private message |
| Description | Send Message Sends Message to another user. |
| Opcode | 196 |
| Type | VARIABLE_SHORT |
| Length | N/A |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| [Long](/Data-Types.html#common-data-types) | Player name. |
| [Int](/Data-Types.html#common-data-types) | Global message counter. |
| [Byte](/Data-Types.html#common-data-types) | Player rights. |

View File

@ -1,22 +1,38 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send
sidebar interface\|description=Assigns an interface to on of the tabs in
the game sidebar.\|opcode=71\|type=Fixed\|length=3\|revision=317}} ==
Send Sidebar Interface ==
=== Description ===
# Send Sidebar Interface
This packet assigns an interface to one of the tabs in the game sidebar.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Standard data types\|Short\]\] \| The sidebar ID. \|- \|
\[\[Data Types\#Standard data types\|Byte\]\] \[\[Data Types\#Non
Standard Data Types\|Special A\]\] \| The interface ID. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Send sidebar interface |
| Description | Assigns an interface to on of the tabs in the game sidebar. |
| Opcode | 71 |
| Type | Fixed |
| Length | 3 |
| Revision | 317 |
=== Values === The below are the different values for this packet. {\|
border=2 ! Value ! Icon ! Norm. ID \|- \| 0 \|\| Attack type \|\| 2433
\|- \| 1 \|\| Stats \|\| 3917 \|- \| 2 \|\| Quests \|\| 638 \|- \| 3
\|\| Inventory \|\| 3213 \|- \| 4 \|\| Wearing \|\| 1644 \|- \| 5 \|\|
Prayer \|\| 5608 \|- \| 6 \|\| Magic \|\| 1151 \|- \| 7 \|\| '''EMPTY'''
\|- \| 8 \|\| Friends list \|\| 5065 \|- \| 9 \|\| Ignore list \|\| 5715
\|- \| 10 \|\| Log out \|\| 2449 \|- \| 11 \|\| Settings \|\| 4445 \|-
\| 12 \|\| Emotes \|\| 147 \|- \| 13 \|\| Music \|\| 6299 \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The sidebar ID. |
| [Byte](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface ID. |
## Values
The below are the different values for this packet.
| Value | Icon | Norm. ID |
|--|--|--|
| 0 | Attack type | 2433 |
| 1 | Stats | 3917 |
| 2 | Quests | 638 |
| 3 | Inventory | 3213 |
| 4 | Wearing | 1644 |
| 5 | Prayer | 5608 |
| 6 | Magic | 1151 |
| 7 | *EMPTY* | N/A |
| 8 | Friends list | 5065 |
| 9 | Ignore list | 5715 |
| 10 | Log out | 2449 |
| 11 | Settings | 4445 |
| 12 | Emotes | 147 |
| 13 | Music | 6299 |

View File

@ -1,17 +1,22 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Set
interface text\|description=Sets the text for a specified
interface\|opcode=126\|type=VARIABLE\_SHORT\|length=N/A\|revision=317}}
== Set Interface Text ==
=== Description ===
# Set Interface Text
Sets the text for the specific interface.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#Non Standard Data Types\|RS\_String\]\] \| The new text
for the interface \|- \| \[\[Data Types\#Non Standard Data Types\|Short
A\]\] \| The interface id \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Set interface text |
| Description | Sets the text for a specified interface |
| Opcode | 126 |
| Type | VARIABLE_SHORT |
| Length | N/A |
| Revision | 317 |
=== Information === I do not recommend you use this to change the text
color. I refer you to \[\[317 Interface color\|Interface Color\]\] for
the proper way to do so.
## Packet Structure
| Data Type | Description |
|--|--|
| [RS String](/RS-String.html) | The new text for the interface |
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface id |
## Information
I do not recommend you use this to change the text color.
I refer you to [Interface Color](317-Interface-color.html) packet for the proper way to do so.

View File

@ -1,14 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Show
interface\|description=Displays a normal
interface.\|opcode=97\|type=Fixed\|length=2\|revision=317}} == Show
Interface ==
# Show Interface
Displays a normal non-walkable interface.
=== Description ===
## Packet Details
| Key | Value |
|--|--|
| Name | Show interface |
| Description | Displays a normal interface. |
| Opcode | 97 |
| Type | Fixed |
| Length | 2 |
| Revision | 317 |
Displays a normal non-walkable \[\[Interfaces\|interface\]\] with the
given id.
=== Packet Structure ===
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
data types\|Short\]\] \| The interface id. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Short](/Data-Types.html#common-data-types) | The interface id. |

View File

@ -1,15 +1,24 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Show
multi-combat\|description=Shows the player if they are in a multi-combat
zone.\|opcode=61\|type=Fixed\|length=1\|revision=317}} == Show
multi-combat ==
# Show multi-combat
Sending this packet to the client will make the client show the player if they are in a multi-combat zone.
=== Description ===
States:
Sending this packet to the client will make the client show the player
if they are in a multi-combat zone.
| ID | Name |
|--|--|
| 0 | Not in a multi-combat zone (i.e. no crossbones in bottom-right). |
| 1 | In a multi-combat zone (i.e. crossbones in bottom-right). |
'''States:''' \* 0 - Not in a multi-combat zone, no crossbones in
bottom-right. \* 1 - In a multi-combat zone, crossbones in bottom-right.
## Packet Details
| Key | Value |
|--|--|
| Name | Show multi-combat |
| Description | Shows the player if they are in a multi-combat zone. |
| Opcode | 61 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
\[\[Data Types\#byte\|byte\]\] \| The state. \|- \|}
## Packet Structure
| Data Type | Description |
|--|--|
| [Byte](/Data-Types.html#common-data-types) | The state. |

View File

@ -1,11 +1,17 @@
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Show
Tab\|description=Shows the given
tab.\|opcode=106\|type=Fixed\|length=1\|revision=317}} == Show Tab ==
=== Description ===
# Show Tab
Shows the given tab id.
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| U
\[\[Data Types\#Standard data types\|Byte\]\] \[\[Data Types\#Non
Standard Data Types\|Special C\]\] \| Tab ID. \|- \|}
## Packet Details
| Key | Value |
|--|--|
| Name | Show Tab |
| Description | Shows the given tab. |
| Opcode | 106 |
| Type | Fixed |
| Length | 1 |
| Revision | 317 |
## Packet Structure
| Data Type | Description |
|--|--|
| U [Byte](/Data-Types.html#common-data-types) [Special C](/Data-Types.html#bespoke-data-types) | Tab ID. |

Some files were not shown because too many files have changed in this diff Show More