mirror of
https://github.com/moparisthebest/rswiki-book
synced 2024-11-23 01:22:15 -05:00
Fix 317 pages
This commit is contained in:
parent
9acdd60189
commit
2fca33623a
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -1,6 +1,2 @@
|
||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Player Updating
|
||||
==
|
||||
|
||||
=== Description ===
|
||||
|
||||
# Player Updating
|
||||
This packet begins the player updating.
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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.
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -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`
|
||||
|
@ -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 |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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.
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -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.
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -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) | ? |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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.
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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".
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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` |
|
||||
|
@ -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` |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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,10 +357,10 @@ 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
|
||||
* **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)
|
||||
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
|
||||
@ -366,21 +371,21 @@ below:
|
||||
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
|
||||
* **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
|
||||
* **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
|
||||
* **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
|
||||
* **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
|
||||
@ -391,283 +396,171 @@ below:
|
||||
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
|
||||
* **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
|
||||
* **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.
|
||||
* **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**: 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
|
||||
* **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') |
|
||||
|
@ -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 |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -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 |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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) |
|
||||
|
@ -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();
|
||||
}
|
||||
```
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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 |
|
||||
|
@ -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.
|
||||
|
@ -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. |
|
||||
|
@ -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. |
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user