mirror of
https://github.com/moparisthebest/rswiki-book
synced 2024-11-26 19:12:23 -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
|
# Add Friend
|
||||||
friend\|description=Sent when a player adds a friend to their friends
|
|
||||||
list.\|opcode=188\|type=Fixed\|length=8\|revision=317}} == Add Friend ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet is sent when a player adds a friend to their friends list.
|
This packet is sent when a player adds a friend to their friends list.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Long\]\] \| The other players ID.
|
| 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
|
# Add Ignore
|
||||||
ignore\|description=Sent when a player adds another player to their
|
This packet is sent when a player adds another player to their ignore list.
|
||||||
ignore list.\|opcode=133\|type=Fixed\|length=8\|revision=317}} == Add
|
|
||||||
Ignore ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
list.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Long](/Data-Types.html#common-data-types) | The other players ID. |
|
||||||
\[\[Data Types\#Standard data types\|Long\]\] \| The other players ID.
|
|
||||||
\|- \|}
|
|
||||||
|
@ -1,20 +1,19 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Alternate Item Option 2
|
||||||
{{packet\|name=Alternate Item Option 2\|description=Sent when the player
|
This packet is sent when a player clicks the alternate second option of an item.
|
||||||
clicks the alternate second option of an
|
|
||||||
item.\|opcode=16\|type=Fixed\|length=6\|revision=317}} == Alternate Item
|
|
||||||
Option 2 ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
an item.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The ID of the item. |
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
|
| [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. |
|
||||||
Standard Data Types\|Special A\]\] \| 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 frame ID. |
|
||||||
\[\[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. \|- \|}
|
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Animation Reset
|
||||||
{{packet\|name=Animation reset\|description=Resets all animations in the
|
|
||||||
immediate area. \|opcode=1\|type=Fixed\|length=0\|revision=317}} ==
|
|
||||||
Animation Reset ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
Resets all animations for players and npcs in the surrounding area.
|
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\]\]
|
# Description
|
||||||
{{packet\|name=Attack (NPC)\|description=Sent when a player attacks an
|
|
||||||
NPC\|opcode=72\|type=Fixed\|length=2\|revision=317}} == Attack (NPC) ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet is sent when a player attacks an NPC.
|
This packet is sent when a player attacks an NPC.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data
|
| Key | Value |
|
||||||
Types\#Non Standard Data Types\|Special A\]\] \| The NPC ID. \|- \|}
|
|--|--|
|
||||||
|
| 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\]\]
|
# Audio
|
||||||
{{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 ===
|
|
||||||
|
|
||||||
Sets what audio/sound is to play at a certain moment.
|
Sets what audio/sound is to play at a certain moment.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Word\|Word\]\] \| The sound id. \|- \| \[\[Data
|
| Key | Value |
|
||||||
Types\#Byte\|Byte\]\] \| The volume. \|- \| \[\[Data
|
|--|--|
|
||||||
Types\#Word\|Word\]\] \| The delay. \|- \|}
|
| 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
|
# Bank 10 Items
|
||||||
10 items\|description=Sent when a player banks 10 of a certain
|
This packet is sent when the player attempts to bank 10 of a certain item.
|
||||||
item.\|opcode=43\|type=Fixed\|length=6\|revision=317}} == Bank 10 Items
|
|
||||||
==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Details
|
||||||
item.<br> '''Note:''' This packet is also used for selling/buying 5 of
|
| Key | Value |
|
||||||
an item from a shop.
|
|--|--|
|
||||||
|
| 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 \|- \|
|
## Packet Structure
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Data Type | Description |
|
||||||
Types\#Standard data types\|Short\]\] \| The frame ID. \|- \| \[\[Data
|
|--|--|
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The frame ID. |
|
||||||
Types\|Special A\]\] \| The item ID. \|- \| \[\[Data Types\#Standard
|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |
|
||||||
data types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special
|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot ID. |
|
||||||
A\]\] \| The slot ID. \|}
|
|
||||||
|
@ -1,19 +1,21 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Bank
|
# Bank 5 Items
|
||||||
5 items\|description=Sent when a player attempts to bank 5 of a certain
|
This packet is sent when a player attempts to bank 5 of a certain item.
|
||||||
item.\|opcode=117\|type=Fixed\|length=6\|revision=317}} == Bank 5 Items
|
|
||||||
==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Details
|
||||||
item.<br> '''Note:''' This packet is also used for buying/selling 1 of
|
| Key | Value |
|
||||||
an item from a shop.
|
|--|--|
|
||||||
|
| 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 \|- \|
|
## Packet Structure
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Data Type | Description |
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
|
|--|--|
|
||||||
Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data Types\#Little
|
| [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. |
|
||||||
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
|
| [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. |
|
||||||
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The item ID.
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The slot ID. |
|
||||||
\|- \| \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
|
||||||
Types\#Standard data types\|Short\]\] \| The slot ID. \|- \|}
|
|
||||||
|
@ -1,16 +1,19 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Bank
|
# Bank X Items Part-1
|
||||||
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 ===
|
|
||||||
|
|
||||||
This packet is sent when a player requests to bank an X amount of items.
|
This packet is sent when a player requests to bank an X amount of items.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Key | Value |
|
||||||
Types\#Standard data types\|Short\]\] \| The items slot. \|- \| Unsigned
|
|--|--|
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
|
| Name | Bank x items part-1 |
|
||||||
Standard Data Types\|Special A\]\] \| The interface ID. \|- \| \[\[Data
|
| Description | Sent when a player requests to bank an X amount of items. |
|
||||||
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data
|
| Opcode | 135 |
|
||||||
types\|Short\]\] \| The item ID. \|- \|}
|
| 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
|
# Bank X Items Part-2
|
||||||
x items part-2\|description=Sent when a player enters an X amount of
|
This packet is sent when a player enters an X amount of items they want to bank.
|
||||||
items they want to
|
|
||||||
bank.\|opcode=208\|type=Fixed\|length=4\|revision=317}} == Bank X Items
|
|
||||||
Part-2 ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
to bank.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Int](/Data-Types.html#common-data-types) | The amount of the item you want to bank. |
|
||||||
\[\[Data Types\#Standard data types\|Integer\]\] \| The amount of the
|
|
||||||
item you want to bank. \|- \|}
|
|
||||||
|
@ -1,19 +1,21 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Bank
|
# Bank 10 Items
|
||||||
all items\|description=Sent when a player banks all of a certain item
|
This packet is sent when a player banks all of a certain item they have in their inventory.
|
||||||
they have in their
|
|
||||||
inventory.\|opcode=129\|type=Fixed\|length=6\|revision=317}} == Bank 10
|
|
||||||
Items ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Details
|
||||||
in their inventory. <br> '''Note:''' This packet is also used for
|
| Key | Value |
|
||||||
selling/buying 10 items at a shop.
|
|--|--|
|
||||||
|
| 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 \|- \|
|
## Packet Structure
|
||||||
Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data
|
| Data Type | Description |
|
||||||
Types\#Non Standard Data Types\|Special A\]\] \| The items slot ID. \|-
|
|--|--|
|
||||||
\| Unsigned \[\[Data Types\#Standard data types\|Short\]\] \| The
|
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The items slot ID. |
|
||||||
interface ID. \|- \| Unsigned \[\[Data Types\#Standard data
|
| Unsigned [Short](/Data-Types.html#common-data-types) | The interface ID. |
|
||||||
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\]
|
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |
|
||||||
\| The item ID. \|- \|}
|
|
||||||
|
@ -1,6 +1,2 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Player Updating
|
# Player Updating
|
||||||
==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet begins the player updating.
|
This packet begins the player updating.
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Button click
|
||||||
{{packet\|name=Button click\|description=Sent when a player clicks an
|
This is sent when a player clicks a button in-game, with the id of the button being clicked.
|
||||||
in-game button.\|opcode=185\|type=Fixed\|length=2\|revision=317}} ==
|
|
||||||
Button click ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
button being clicked.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure ===
|
| [Short](/Data-Types.html#common-data-types) | The button id. |
|
||||||
|
|
||||||
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
|
|
||||||
data types\|Short\]\] \| The button id. \|- \|}
|
|
||||||
|
@ -1,14 +1,18 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Camera Movement
|
||||||
{{packet\|name=Camera movement\|description=Sent when the player moves
|
|
||||||
the camera.\|opcode=86\|type=Fixed\|length=4\|revision=317}} == Camera
|
|
||||||
Movement ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet is sent when a player moves their game camera.
|
This packet is sent when a player moves their game camera.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \| The Y coordinate of
|
| Key | Value |
|
||||||
the camera. \|- \| \[\[Data Types\#Standard data types\|Short\]\]
|
|--|--|
|
||||||
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The X
|
| Name | Camera movement |
|
||||||
coordinate of the camera. \|- \|}
|
| 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\]\]
|
# Camera oscillate
|
||||||
{{packet\|name=Camera oscillate\|description=Begin camera
|
Begins camera oscillation, which is implemented using a configurable sinusoidal oscillator to offset a specific degree of freedom.
|
||||||
oscillation\|opcode=35\|type=Fixed\|length=4\|revision=317}} == Camera
|
|
||||||
oscillate ==
|
|
||||||
|
|
||||||
=== Description === Begins camera oscillation, which is implemented
|
## Packet Details
|
||||||
using a configurable sinusoidal oscillator to offset a specific degree
|
| Key | Value |
|
||||||
of freedom.
|
|--|--|
|
||||||
|
| 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
|
## Other Information
|
||||||
data types\|Byte\]\] \| Parameter (camera X, Z, Y, yaw, pitch) \|- \|
|
The oscillate event enables the client to oscillate one of 5 of it's position parameters.
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \| Jitter - for
|
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.
|
||||||
randomization \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \|
|
Together, these enable complex effects involving manipulation of the camera position to give rise to simulated earth-quakes and camera shock.
|
||||||
Amplitude \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \|
|
|
||||||
Frequency (scaled by 100) \|- \|}
|
|
||||||
|
|
||||||
=== Other Information === The oscillate event enables the client to
|
| Parameter | Description |
|
||||||
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
|
| 0 | Camera location along world X axis (a horizontal axis, aligned with map grid X) |
|
||||||
location of the camera, while 3 and 4 deal with the camera's
|
| 1 | Camera location along world Z axis (vertical axis) |
|
||||||
orientation. Together, these enable complex effects involving
|
| 2 | Camera location along world Y axis (a horizontal axis, aligned with map grid Y) |
|
||||||
manipulation of the camera position to give rise to simulated
|
| 3 | Camera orientation in world X plane w.r.t. world Z axis, i.e. yaw |
|
||||||
earth-quakes and camera shock. {\| border=2 ! Parameter ! Description
|
| 4 | Camera orientation in world Z plane w.r.t. world X axis, i.e. pitch |
|
||||||
\|- \| 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.
|
|
||||||
|
|
||||||
=== What it's doing === Every time the world is rendered, each camera
|
Note there is no built-in way to manipulate camera roll, as this is not one of the camera's degrees of freedom.
|
||||||
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.
|
|
||||||
|
|
||||||
=== Parameter === The offset itself is detailed as follows for each
|
## What it's doing
|
||||||
parameter: {\| border=2 ! Parameter ! Action \|- \| 0 \| camera\_x +=
|
Every time the world is rendered, each camera parameter that is enabled for oscillation is offset by a value computed as follows:
|
||||||
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
|
| Calculation | Formula |
|
||||||
ensure the angle not out of bounds: {\| border=2 \|- \|if (camera\_pitch
|
|--|--|
|
||||||
\< 128) then camera\_pitch = 128 \|- \|if (camera\_pitch \> 383) then
|
| Delta | `(int) ((Math.random() * (double) (jitter * 2 + 1) - (double) jitter) + Math.sin((double) phase * ((double) frequency / 100D)) * (double) amplitude);` |
|
||||||
camera\_pitch = 383 \|- \|} This is do to Jagex restricting the possible
|
|
||||||
range of orientations the camera may take.
|
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
|
# Chat interface click
|
||||||
interface click\|description=Received when a button is pressed, in a
|
Received by the server when a button is pressed in a [Chat interface](Chat-interface.html).
|
||||||
chat interface.\|opcode=40\|type=Fixed\|length=2\|revision=317}} == Chat
|
|
||||||
interface click ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
\[http://rswiki.moparisthebest.com/index.php?title=317:Chat\_interface\].
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Short](/Data-Types.html#common-data-types) | Frame ID. |
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \| Frame ID. \|- \|}
|
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Chat
|
# Chat Interface
|
||||||
interface\|description=Shows an interface in the chat
|
|
||||||
box.\|opcode=164\|type=Fixed\|length=2\|revision=317}} == Chat Interface
|
|
||||||
==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet attaches an interface to the chat box.
|
This packet attaches an interface to the chat box.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Key | Value |
|
||||||
Types\#Standard data types\|Short\]\] \| The interface ID. \|- \|}
|
|--|--|
|
||||||
|
| 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
|
# Chat Settings
|
||||||
settings\|description=Sends the chat privacy
|
|
||||||
settings\|opcode=206\|type=Fixed\|length=3\|revision=317}} == Chat
|
|
||||||
Settings ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet sends the chat privacy settings.
|
This packet sends the chat privacy settings.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \| Public chat setting.
|
| Key | Value |
|
||||||
\|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| Private chat
|
|--|--|
|
||||||
setting. \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| Trade
|
| Name | Chat settings |
|
||||||
setting. \|- \|}
|
| 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
|
# Clear inventory
|
||||||
Inventory\|description=Used to set all of the items and item stacks in
|
Clears a given inventory, by setting all of its item ids to negative one and its item stacks to zero.
|
||||||
an inventory to
|
|
||||||
nothing.\|opcode=72\|type=Fixed\|length=2\|revision=317}} == Clear
|
|
||||||
inventory ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
sets the item ids to negative one and the item stacks to zero.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The interface ID. |
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
|
||||||
Types\#Standard data types\|Short\]\] \| The interface ID. \|- \|}
|
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Clear
|
# Clear Screen
|
||||||
screen\|description=Clears the screen of all open
|
|
||||||
interfaces.\|opcode=219\|type=Fixed\|length=0\|revision=317}} == Clear
|
|
||||||
Screen ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
Removes all open interfaces from the players 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
|
# Close Window
|
||||||
window\|description=Sent when a player presses the close, exit or cancel
|
This packet is sent when a player presses the close, exit or cancel button on an interface.
|
||||||
button on an
|
|
||||||
interface.\|opcode=130\|type=Fixed\|length=0\|revision=317}} == Close
|
|
||||||
Window ==
|
|
||||||
|
|
||||||
=== Description ===
|
## Packet Details
|
||||||
|
| Key | Value |
|
||||||
This packet is sent when a player presses the close, exit or cancel
|
|--|--|
|
||||||
button on an interface.
|
| 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\]\]
|
# Construct Map Region
|
||||||
{{packet\|name=Construct map region\|description=Constructs a new map
|
The construct map region packet sends a dynamic map region that is constructed by using groups of 8x8 tiles.
|
||||||
region from a palette of 8x8 tiles.\|opcode=241\|type=Variable
|
It is generally used for instanced areas, such as fight caves, and in later revisions, player owned houses.
|
||||||
Short\|length=N/A\|revision=317}} == Construct Map Region ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
constructed by using groups of 8\*8 tiles. It is generally used for
|
| Data Type | Description |
|
||||||
instanced areas, such as fight caves, and in later revisions, player
|
|--|--|
|
||||||
owned houses.
|
| [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
|
A loop is used to construct it, as follows:
|
||||||
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. \|}
|
|
||||||
|
|
||||||
==== Bit block ====
|
```java
|
||||||
|
for (int z = 0; z < 4; z++) {
|
||||||
The bit block actually contains the 'palette' of map regions to make up
|
for(int x = 0; x < 13; x++) {
|
||||||
the new region.
|
for(int y = 0; y < 13; y++) {
|
||||||
|
// data for this 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 } } }
|
```
|
||||||
|
|
||||||
The individual format in each iteration of the loop is:
|
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
|
||||||
- '''1 bit''' - set to 0 to indicate to display nothing, 1 to display
|
* 26 bits - if the flag above is set to 1: `region_x << 14 | region_y << 3`
|
||||||
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
|
# Create Projectile
|
||||||
==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
Creates a projectile.
|
Creates a projectile.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Structure
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \| Position offset \|- \|
|
| Data Type | Description |
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \| Second X offset \|- \|
|
|--|--|
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \| Second Y offset \|- \|
|
| [Byte](/Data-Types.html#common-data-types) | Position offset |
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \| Target \|- \| \[\[Data
|
| [Byte](/Data-Types.html#common-data-types) | Second X offset |
|
||||||
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data
|
| [Byte](/Data-Types.html#common-data-types) | Second Y offset |
|
||||||
types\|Short\]\] \| Graphic ID \|- \| \[\[Data Types\#Standard data
|
| [Short](/Data-Types.html#common-data-types) | Target |
|
||||||
types\|Byte\]\] \| Starting height \|- \| \[\[Data Types\#Standard data
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | Graphic ID |
|
||||||
types\|Byte\]\] \| Ending height \|- \| \[\[Data Types\#Little
|
| [Byte](/Data-Types.html#common-data-types) | Starting height |
|
||||||
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
|
| [Byte](/Data-Types.html#common-data-types) | Ending height |
|
||||||
\| Starting time \|- \| \[\[Data Types\#Little Endian\|Little Endian\]\]
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | Starting time |
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \| Speed \|- \| \[\[Data
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | Speed |
|
||||||
Types\#Standard data types\|Byte\]\] \| Initial slope \|- \| \[\[Data
|
| [Byte](/Data-Types.html#common-data-types) | Initial slope |
|
||||||
Types\#Standard data types\|Byte\]\] \| Initial distance from source \|-
|
| [Byte](/Data-Types.html#common-data-types) | Initial distance from source |
|
||||||
\|}
|
|
||||||
|
@ -1,28 +1,29 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Design Screen
|
||||||
{{packet\|name=Design screen\|description=Sent when a player is choosing
|
This packet is sent when a player is choosing their character design options.
|
||||||
their character design
|
|
||||||
options.\|opcode=101\|type=Fixed\|length=13\|revision=317}} == Design
|
|
||||||
Screen ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
options.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Byte](/Data-Types.html#common-data-types) | The players gender. |
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \| The players gender. \|-
|
| [Byte](/Data-Types.html#common-data-types) | The players head model. |
|
||||||
\| \[\[Data Types\#Standard data types\|Byte\]\] \| The players head
|
| [Byte](/Data-Types.html#common-data-types) | The players beard model. |
|
||||||
model. \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The
|
| [Byte](/Data-Types.html#common-data-types) | The players torso model. |
|
||||||
players beard model. \|- \| \[\[Data Types\#Standard data
|
| [Byte](/Data-Types.html#common-data-types) | The players arm model. |
|
||||||
types\|Byte\]\] \| The players torso model. \|- \| \[\[Data
|
| [Byte](/Data-Types.html#common-data-types) | The players hand model. |
|
||||||
Types\#Standard data types\|Byte\]\] \| The players arm model. \|- \|
|
| [Byte](/Data-Types.html#common-data-types) | The players leg model |
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \| The players hand model.
|
| [Byte](/Data-Types.html#common-data-types) | The players foot model. |
|
||||||
\|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The players leg
|
| [Byte](/Data-Types.html#common-data-types) | The players hair color. |
|
||||||
model \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The
|
| [Byte](/Data-Types.html#common-data-types) | The players torso color. |
|
||||||
players foot model. \|- \| \[\[Data Types\#Standard data types\|Byte\]\]
|
| [Byte](/Data-Types.html#common-data-types) | The players leg color. |
|
||||||
\| The players hair color. \|- \| \[\[Data Types\#Standard data
|
| [Byte](/Data-Types.html#common-data-types) | The players foot color. |
|
||||||
types\|Byte\]\] \| The players torso color. \|- \| \[\[Data
|
| [Byte](/Data-Types.html#common-data-types) | The players skin color. |
|
||||||
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. \|- \|}
|
|
||||||
|
@ -1,31 +1,17 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Display Hint Icon
|
||||||
{{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 ===
|
|
||||||
|
|
||||||
Displays a 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
|
## Packet Structure
|
||||||
data types\|Byte\]\] \| The Icon type \|- \|}
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== if type == 1 ===
|
| [Byte](/Data-Types.html#common-data-types) | The Icon type |
|
||||||
|
|
||||||
{\| 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 \|- \|}
|
|
||||||
|
@ -1,14 +1,19 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Drop
|
# Drop Item
|
||||||
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 ===
|
|
||||||
|
|
||||||
This packet is sent when a player wants to drop an item onto the ground.
|
This packet is sent when a player wants to drop an item onto the ground.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
|
| Key | Value |
|
||||||
Standard Data Types\|Special A\]\] \| The item ID. \|- \| \[\[Data
|
|--|--|
|
||||||
Types\#Standard data types\|Short\]\] \| The frame ID. \|- \| \[\[Data
|
| Name | Drop item |
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
|
| Description | Sent when a player wants to drop an item onto the ground. |
|
||||||
Types\|Special A\]\] \| The slot ID. \|- \|}
|
| 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
|
# Enter name
|
||||||
name\|description=Opens up the name entry interface.
|
Sending the packet to the client will make the client open up the "Enter name" interface for things such as friend-adding.
|
||||||
\|opcode=187\|type=Fixed\|length=0\|revision=317}} == Enter name ==
|
|
||||||
|
|
||||||
=== Description ===
|
## Packet Details
|
||||||
|
| Key | Value |
|
||||||
Sending the packet to the client will make the client open up the "Enter
|
|--|--|
|
||||||
name" interface for things such as friend-adding.
|
| 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
|
# Equip Item
|
||||||
item\|description=Sent when a player equips an
|
|
||||||
item.\|opcode=41\|type=Fixed\|length=6\|revision=317}} == Equip Item ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This is sent when a player equips an item in-game.
|
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
|
## Packet Structure
|
||||||
Types\#Standard data types\|Short\]\] \| The ID of the item. \|- \|
|
| Data Type | Description |
|
||||||
Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data
|
|--|--|
|
||||||
Types\#Non Standard Data Types\|Special A\]\] \| The slot of the item.
|
| Unsigned [Short](/Data-Types.html#common-data-types) | The ID of the item. |
|
||||||
\|- \| Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data
|
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot of the item. |
|
||||||
Types\#Non Standard Data Types\|Special A\]\] \| The ID of the
|
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The ID of the interface. |
|
||||||
interface. \|- \|}
|
|
||||||
|
@ -1,20 +1,35 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Flash
|
# Flash sidebar
|
||||||
sidebar\|description=Causes a sidebar icon to start
|
|
||||||
flashing.\|opcode=24\|type=Fixed\|length=1\|revision=317}} == Flash
|
|
||||||
sidebar ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet causes a sidebar icon to start flashing.
|
This packet causes a sidebar icon to start flashing.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \[\[Data Types\#Non
|
| Key | Value |
|
||||||
Standard data types\|Special S\]\] \| The sidebar ID. \|- \|}
|
|--|--|
|
||||||
|
| 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. {\|
|
## Packet Structure
|
||||||
border=2 ! Value ! Icon \|- \| 0 \|\| Attack type \|- \| -1 \|\| Stats
|
| Data Type | Description |
|
||||||
\|- \| -2 \|\| Quests \|- \| -3 \|\| Inventory \|- \| -4 \|\| Wearing
|
|--|--|
|
||||||
\|- \| -5 \|\| Prayer \|- \| -6 \|\| Magic \|- \| -7 \|\| '''EMPTY'''
|
| [Byte](/Data-Types.html#common-data-types) [Special S](/Data-Types.html#bespoke-data-types) | The sidebar ID. |
|
||||||
\|- \| -8 \|\| Friends list \|- \| -9 \|\| Ignore list \|- \| -10 \|\|
|
|
||||||
Log out \|- \| -11 \|\| Settings \|- \| -12 \|\| Emotes \|- \| -13 \|\|
|
## Values
|
||||||
Music \|- \|}
|
| 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
|
# Focus Change
|
||||||
change\|description=Sent when the game client window goes in and out of
|
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.
|
||||||
focus.\|opcode=3\|type=Fixed\|length=1\|revision=317}} == Focus Change
|
|
||||||
==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
focus. The payload consists of one byte that is either 1 or 0; 1 if the
|
| Data Type | Description |
|
||||||
client is in focus and 0 if not.
|
|--|--|
|
||||||
|
| [Byte](/Data-Types.html#common-data-types) | Whether or not the client is in focus. |
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \| Whether or not the
|
|
||||||
client is in focus. \|- \|}
|
|
||||||
|
@ -1,13 +1,17 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Follow
|
||||||
{{packet\|name=Follow\|description=Sent when a player clicks the follow
|
This packet is sent when a player clicks the follow option on another player.
|
||||||
option on another
|
|
||||||
player\|opcode=39\|type=Fixed\|length=2\|revision=317}} == Follow ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
player.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| Unsigned [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The other players ID. |
|
||||||
Unsigned \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
|
||||||
Types\#Standard data types\|Short\]\] \| The other players ID. \|- \|}
|
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Force
|
# Force Client Setting
|
||||||
client setting\|description=Forcefully alters a client setting value and
|
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.
|
||||||
default value to some supplied
|
|
||||||
value.\|opcode=36\|type=Fixed\|length=3\|revision=317}} == Force Client
|
|
||||||
Setting ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
are also stored in another array. This packet changes the default value
|
| Data Type | Description |
|
||||||
for a setting and its current value to the one given.
|
|--|--|
|
||||||
|
| [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 ===
|
## Other Information
|
||||||
|
Opcode 87 (length 6) is extremely similar in structure, but the new value is received as an Middle Endian Small Int.
|
||||||
{\| 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.
|
|
||||||
This suggests its for use with bigger setting values.
|
This suggests its for use with bigger setting values.
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Friends List Status
|
||||||
{{packet\|name=Friends list status\|description=Sends the friends list
|
|
||||||
load status\|opcode=221\|type=Fixed\|length=1\|revision=317}} == Friends
|
|
||||||
List Status ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet sends the first list load status.
|
This packet sends the first list load status.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \| The status of the
|
| Key | Value |
|
||||||
friends list. \|- \|}
|
|--|--|
|
||||||
|
| 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. {\|
|
## Packet Structure
|
||||||
border=2 ! Value ! Response \|- \| 0 \| Loading \|- \| 1 \| Connecting
|
| Data Type | Description |
|
||||||
\|- \| 2 \| Loaded \|- \|}
|
|--|--|
|
||||||
|
| [Byte](/Data-Types.html#common-data-types) | The status of the friends list. |
|
||||||
|
@ -1,13 +1,9 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Ground Item
|
# Ground Item Action
|
||||||
Action ==
|
This packet is sent when a player clicks the first option on a ground item.
|
||||||
|
|
||||||
=== Description ===
|
## Packet Structure
|
||||||
|
| Data Type | Description |
|
||||||
This packet is sent when a player clicks the first option on a ground
|
|--|--|
|
||||||
item. === Packet Structure === {\|border=2 ! Data Type ! Description \|-
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The items X coordinate. |
|
||||||
\| \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Additional [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The items Y coordinate. |
|
||||||
Types\#Standard data types\|Short\]\] \| The items X coordinate. \|- \|
|
| Additional [Short](/Data-Types.html#common-data-types) | The item ID. |
|
||||||
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. \|- \|}
|
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Hidden Interface
|
||||||
{{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 ===
|
|
||||||
|
|
||||||
Sets an interface to be hidden until hovered over.
|
Sets an interface to be hidden until hovered over.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \| Hidden until hovered
|
| Key | Value |
|
||||||
\|- \| \[\[Data Types\#Standard data types\|Short\]\] \| Interface Id
|
|--|--|
|
||||||
\|- \|}
|
| 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
|
# Idle logout
|
||||||
logout\|description=Sent when the player has become idle and should be
|
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.
|
||||||
logged out. \|opcode=202\|type=Fixed\|length=0\|revision=317}} == Idle
|
|
||||||
logout ==
|
|
||||||
|
|
||||||
=== Description ===
|
## Packet Details
|
||||||
|
| Key | Value |
|
||||||
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
|
| Name | Idle logout |
|
||||||
every 10 seconds as long as the player is idle.
|
| 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\]\]
|
# Idle
|
||||||
{{packet\|name=Idle\|description=Idle
|
Sent when the player is idle for the current cycle, and acts as a "ping" packet.
|
||||||
packet..\|opcode=0\|type=Fixed\|length=0\|revision=317}} == Idle ==
|
|
||||||
|
|
||||||
=== Description ===
|
## Packet Details
|
||||||
|
| Key | Value |
|
||||||
Sent when the player is idle for the current cycle, and acts as a "ping"
|
|--|--|
|
||||||
packet.
|
| Name | Idle |
|
||||||
|
| Description | Idle packet.. |
|
||||||
|
| Opcode | 0 |
|
||||||
|
| Type | Fixed |
|
||||||
|
| Length | 0 |
|
||||||
|
| Revision | 317 |
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Initialize Player
|
||||||
{{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 ===
|
|
||||||
|
|
||||||
Sends the player membership flag and player list index.
|
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
|
## Packet Structure
|
||||||
data types\|Byte\]\] \[\[Data Types\#Non Standard Data Types\|Special
|
| Data Type | Description |
|
||||||
A\]\] \| Membership flag (1 = member, 0 = free). \|- \| \[\[Data
|
|--|--|
|
||||||
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data
|
| [Byte](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Membership flag (1 = member, 0 = free). |
|
||||||
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\]
|
| [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. |
|
||||||
\| Player list index. \|- \|}
|
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Input
|
# Input amount
|
||||||
amount\|description=Opens up the amount input interface.
|
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.
|
||||||
\|opcode=27\|type=Fixed\|length=0\|revision=317}} == Input amount ==
|
|
||||||
|
|
||||||
=== Description ===
|
## Packet Details
|
||||||
|
| Key | Value |
|
||||||
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.
|
| 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\]\]
|
# Interface animation
|
||||||
{{packet\|name=Interface animation\|description=Sets an interface's
|
|
||||||
model animation\|opcode=200\|type=Fixed\|length=4\|revision=317}} ==
|
|
||||||
Interface animation ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
Sets an interface's model animation.
|
Sets an interface's model animation.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \| The interface ID \|-
|
| Key | Value |
|
||||||
\| \[\[Data Types\#Standard data types\|Short\]\] \| The animation ID
|
|--|--|
|
||||||
\|- \|}
|
| 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\]\]
|
# Interface Color
|
||||||
{{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 ===
|
|
||||||
|
|
||||||
This packet changes the color of an interface that is text.
|
This packet changes the color of an interface that is text.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Key | Value |
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
|
|--|--|
|
||||||
Types\|Special A\]\] \| The interface ID. \|- \| \[\[Data Types\#Little
|
| Name | Interface color |
|
||||||
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
|
| Description | This packet changes the color of an interface that is text. |
|
||||||
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The color. \|-
|
| Opcode | 122 |
|
||||||
\|}
|
| Type | Fixed |
|
||||||
|
| Length | 4 |
|
||||||
|
| Revision | 317 |
|
||||||
|
|
||||||
=== Information === You use this packet to change the color of text in
|
## Packet Structure
|
||||||
an interface.
|
| 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 \|
|
## Information
|
||||||
0x33FF66 \|- \| Red \| 0x6000 \|- \|}
|
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\]\]
|
# Interface Item
|
||||||
{{packet\|name=Interface item\|description=Displays an item model inside
|
|
||||||
an interface.\|opcode=246\|type=Fixed\|length=6\|revision=317}} ==
|
|
||||||
Interface Item ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
Displays an item model inside an interface.
|
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
|
## Packet Structure
|
||||||
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
|
| Data Type | Description |
|
||||||
\|\| Interface ID. \|- \| \[\[Data Types\#Standard data types\|Short\]\]
|
|--|--|
|
||||||
\|\| The item's model zoom. \|- \| \[\[Data Types\#Standard data
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | Interface ID. |
|
||||||
types\|Short\]\] \|\| The item 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\]\]
|
# Interface Color
|
||||||
{{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 ===
|
|
||||||
|
|
||||||
Changes the zoom and rotation of the interface id's media given.
|
Changes the zoom and rotation of the interface id's media given.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Word\]\] \[\[Data Types\#Non
|
| Key | Value |
|
||||||
Standard Data Types\|Special A\]\] \| The zoom. \|- \| \[\[Data
|
|--|--|
|
||||||
Types\#Standard data types\|Word\]\] \| The interface id. \|- \|
|
| Name | Interface model rotation |
|
||||||
\[\[Data Types\#Standard data types\|Word\]\] \| The rotation1. \|- \|
|
| Description | Changes the zoom and rotation of the interface id's media given. |
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Opcode | 230 |
|
||||||
Types\#Standard data types\|Word\]\] \[\[Data Types\#Non Standard data
|
| Type | Fixed |
|
||||||
types\|Special A\]\] \| The rotation2. \|- \|}
|
| 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\]\]
|
# Interface offset
|
||||||
{{packet\|name=Interface offset\|description=Sets the offset for drawing
|
|
||||||
of an interface\|opcode=70\|type=Fixed\|length=6\|revision=317}} ==
|
|
||||||
Interface offset ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
Sets the offset for drawing of an interface.
|
Sets the offset for drawing of an interface.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \| The X offset \|- \|
|
| Key | Value |
|
||||||
\[\[Data Types\#Byte Order\|Little Endian\]\] \[\[Data Types\#Standard
|
|--|--|
|
||||||
data types\|Short\]\] \| The Y offset \|- \| \[\[Data Types\#Byte
|
| Name | Interface offset |
|
||||||
Order\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
|
| Description | Sets the offset for drawing of an interface |
|
||||||
\| The interface ID \|- \|}
|
| 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\]\]
|
# Open Welcome Screen
|
||||||
{{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 ===
|
|
||||||
|
|
||||||
This packet draws an interface over the tab area.
|
This packet draws an interface over the tab area.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data type\|Byte\]\] \[\[Data Types\#Non
|
| Key | Value |
|
||||||
Standard data types\|Special C\]\] \| Interface ID \|- \|}
|
|--|--|
|
||||||
|
| 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\]\]
|
# Child Frame
|
||||||
{{packet\|name=Inventory Overlay\|description=Overlays an interface on
|
This packet overlays an interface in the inventory area. This is used in trading and staking.
|
||||||
the inventory\|opcode=248\|type=Fixed\|length=4\|revision=317}} == Child
|
|
||||||
Frame ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
trading and staking.
|
| 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.
|
||||||
That will set the open interface to interface 3323, which is the trade
|
With the inventory overlay interface as 3321, which is an inventory type interface with offer actions.
|
||||||
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. \|- \|}
|
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item
|
# Item Action 1
|
||||||
action 1\|description=Sent when the player clicks the first option of an
|
This packet is sent when a player clicks the first option of an item, such as "Bury" for bones or "Eat" for food.
|
||||||
item.\|opcode=122\|type=Fixed\|length=6\|revision=317}} == Item Action 1
|
|
||||||
==
|
|
||||||
|
|
||||||
=== 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,
|
## Packet Structure
|
||||||
such as "Bury" for bones or "Eat" for food.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! 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. |
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The slot the item is in. |
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The ID of the item. |
|
||||||
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. \|- \|}
|
|
||||||
|
@ -1,23 +1,22 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item
|
# Description
|
||||||
on floor\|description=Sent when a player uses an item on another item
|
This packet is sent when a player uses an item on another item thats on the floor.
|
||||||
thats on the floor.\|opcode=25\|type=Fixed\|length=10\|revision=317}} ==
|
|
||||||
Item on 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
|
## Packet Structure
|
||||||
the floor.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The interface ID. |
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item being used ID. |
|
||||||
Types\#Standard data types\|Short\]\] \| The interface ID. \|- \|
|
| [Short](/Data-Types.html#common-data-types) | The floor items ID. |
|
||||||
Unsigned \[\[Data Types\#Standard data types\|Short\]\] \[\[Data
|
| Unsigned [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The Y coordinate of the item. |
|
||||||
Types\#Non Standard Data Types\|Special A\]\] \| The item being used ID.
|
| 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. |
|
||||||
\|- \| \[\[Data Types\#Standard data types\|Short\]\] \| The floor items
|
| [Short](/Data-Types.html#common-data-types) | The X coordinate of the item. |
|
||||||
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. \|- \|}
|
|
||||||
|
@ -1,14 +1,18 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Item
|
# Item on 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 ===
|
|
||||||
|
|
||||||
This packet is sent when a player uses an item on another item.
|
This packet is sent when a player uses an item on another item.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \| The item being used
|
| Key | Value |
|
||||||
on's slot. \|- \| \[\[Data Types\#Standard data types\|Short\]\]
|
|--|--|
|
||||||
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The item being
|
| Name | Item on item |
|
||||||
used's slot. \|- \|}
|
| 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
|
# Item on Object
|
||||||
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 ===
|
|
||||||
|
|
||||||
This packet is sent when a player uses an item on object.
|
This packet is sent when a player uses an item on object.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
|
| Key | Value |
|
||||||
Standard Data Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data
|
|--|--|
|
||||||
Types\#Little Endian\|Little Endian\]\] \[\[Data Types\#Standard data
|
| Name | Item on object |
|
||||||
types\|Short\]\] \| The object ID. \|- \| \[\[Data Types\#Big
|
| Description | Sent when a player uses an item on an objet. |
|
||||||
Endian\|Big Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
|
| Opcode | 192 |
|
||||||
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The objects Y
|
| Type | Fixed |
|
||||||
coordinate. \|- \| \[\[Data Types\#Big Endian\|Big Endian\]\] \[\[Data
|
| Length | 12 |
|
||||||
Types\#Standard data types\|Short\]\] \| The items slot ID. \|- \|
|
| Revision | 317 |
|
||||||
\[\[Data Types\#Big Endian\|Big Endian\]\] \[\[Data Types\#Standard data
|
|
||||||
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\]
|
## Packet Structure
|
||||||
\| The objects X coordinate. \|- \| \[\[Data Types\#Standard data
|
| Data Type | Description |
|
||||||
types\|Short\]\] \| The item ID. \|- \|}
|
|--|--|
|
||||||
|
| [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
|
# Item on Player
|
||||||
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 ===
|
|
||||||
|
|
||||||
This packet is sent when a player uses an item on another player.
|
This packet is sent when a player uses an item on another player.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
|
| Key | Value |
|
||||||
Standard Data Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data
|
|--|--|
|
||||||
Types\#Standard data types\|Short\]\] \| The other players ID. \|- \|
|
| Name | Item on player |
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \| The item ID. \|- \|
|
| Description | Sent when a player uses an item on another player. |
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Opcode | 14 |
|
||||||
Types\#Standard data types\|Short\]\] \| The items slot ID. \|- \|}
|
| 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
|
# Light Item
|
||||||
item\|description=Sent when a player attempts to light logs on
|
|
||||||
fire.\|opcode=79\|type=Fixed\|length=6\|revision=317}} == Light Item ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet is sent when a player attempts to light logs on fire.
|
This packet is sent when a player attempts to light logs on fire.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \| The items Y
|
| Key | Value |
|
||||||
coordinate. \|- \| Unsigned \[\[Data Types\#Standard data
|
|--|--|
|
||||||
types\|Short\]\] \| The item ID. \|- \| \[\[Data Types\#Little
|
| Name | Light item |
|
||||||
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
|
| Description | Sent when a player attempts to light logs on fire. |
|
||||||
\| The items X coordinate. \|- \|}
|
| 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
|
# Load Map Region
|
||||||
map region\|description=Makes the client load the specified map
|
|
||||||
region.\|opcode=73\|type=Fixed\|length=4\|revision=317}} == Load Map
|
|
||||||
Region ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
Makes the client load the specified 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
|
## Packet Structure
|
||||||
data types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special
|
| Data Type | Description |
|
||||||
A\]\] \| Region X coordinate (absolute X / 8) plus 6. \|- \| \[\[Data
|
|--|--|
|
||||||
Types\#Standard data types\|Short\]\] \| Region Y coordinate (absolute Y
|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Region X coordinate (absolute X / 8) plus 6. |
|
||||||
/ 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
|
## Other Information
|
||||||
region loading functionality of the client which have been misunderstood
|
There are various loops/arrays within the map region loading functionality of the client which have been misunderstood by many.
|
||||||
by many. {\| border=2 ! Loop type ! Description \|- \| 104 x 104 \|
|
|
||||||
Maximum size of the client's load area \|- \| 8 x 8 \| Load blocks to
|
| Loop type | Description |
|
||||||
speed up loading NPCs, Items and Objects \|- \| 13 x 13 \| Number of
|
|--|--|
|
||||||
load blocks to load \|- \|}
|
| 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\]\]
|
# Loading Finished
|
||||||
{{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 ===
|
|
||||||
|
|
||||||
This packet is sent when a player is finished loading a new map region.
|
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\]\]
|
# Logout
|
||||||
{{packet\|name=Logout\|description=Forces the client to
|
Forces the client to logout cleanly and return to the login screen, without attempting a reconnection.
|
||||||
logout.\|opcode=109\|type=Fixed\|length=0\|revision=317}} == Logout ==
|
|
||||||
|
|
||||||
=== Description ===
|
## Packet Details
|
||||||
|
| Key | Value |
|
||||||
Forces the client to logout cleanly and return to the login screen,
|
|--|--|
|
||||||
without attempting a reconnection.
|
| 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
|
# Mage NPC
|
||||||
NPC\|description=Sent when a player attempts to use a magic attack on an
|
Sent when a player attempts to use a magic attack on an NPC.
|
||||||
NPC.\|opcode=131\|type=Fixed\|length=4\|revision=317}} == Mage NPC ==
|
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Non Standard Data Types\|Little Endian\]\] \[\[Data
|
| Key | Value |
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
|
|--|--|
|
||||||
Types\|Special A\]\] \| ? \|- \| \[\[Data Types\#Standard data
|
| Name | Mage NPC |
|
||||||
types\|Short\]\] \[\[Data Types\#Non Standard Data Types\|Special A\]\]
|
| 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
|
# Magic on Items
|
||||||
on items\|description=Sent when a player casts magic on the items in
|
This packet is sent when a player casts magic (i.e. High Level Alchemy) on the items in their inventory.
|
||||||
their inventory.\|opcode=237\|type=Fixed\|length=8\|revision=317}} ==
|
|
||||||
Magic on Items ==
|
|
||||||
|
|
||||||
=== 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)
|
## Packet Structure
|
||||||
on the items in their inventory.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Short](/Data-Types.html#common-data-types) | The items slot ID. |
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \| The items slot ID. \|-
|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The item ID. |
|
||||||
\| \[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
|
| [Short](/Data-Types.html#common-data-types) | The frame ID. |
|
||||||
Standard Data Types\|Special A\]\] \| The item ID. \|- \| \[\[Data
|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The spell ID. |
|
||||||
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. \|- \|}
|
|
||||||
|
@ -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
|
## Packet Details
|
||||||
player attempts to cast magic on
|
| Key | Value |
|
||||||
another\|opcode=249\|type=Fixed\|length=4\|revision=317}} == Magic on
|
|--|--|
|
||||||
Player == === Description === This packet is sent when the player
|
| Name | Magic on player |
|
||||||
attempts to cast magic onto another.
|
| 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 \|- \|
|
## Packet Structure
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
|
| Data Type | Description |
|
||||||
Standard Data Types\|Special A\]\] \| The player index. \|- \| \[\[Data
|
|--|--|
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Byte
|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The player index. |
|
||||||
Order\|Little\]\] \| The spell ID. \|- \|}
|
| [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\]\]
|
# Minimap State
|
||||||
{{packet\|name=Minimap State\|description=Sets the state of the clients
|
This packet sets the Minimaps state, possible values are shown below.
|
||||||
minimap.\|opcode=99\|type=Fixed\|length=1\|revision=317}} == Minimap
|
|
||||||
State ==
|
|
||||||
|
|
||||||
=== 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
|
## Values
|
||||||
-'''Locked''': viewable but not clickable \* 2 -'''Blacked-out''':
|
| State | Description |
|
||||||
Minimap is replaced with black background
|
|--|--|
|
||||||
|
| 0 | **Active**: Clickable and viewable |
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| 1 | **Locked**: viewable but not clickable |
|
||||||
\[\[Data Types\#byte\|byte\]\] \| The state. \|- \|}
|
| 2 | **Blacked-out**: Minimap is replaced with black background |
|
||||||
|
@ -1,5 +1,2 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Mouse click ==
|
# Mouse click
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet is sent when a player clicks somewhere on the game screen.
|
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
|
# Move Item
|
||||||
item\|description=Sent when the player moves an item from one slot to
|
This packet is sent when a player moves an item from one slot to another.
|
||||||
another.\|opcode=214\|type=Fixed\|length=7\|revision=317}} == Move Item
|
|
||||||
==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
another.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! 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. |
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| [Byte](/Data-Types.html#common-data-types) | Insert mode. |
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | Starting slot. |
|
||||||
Types\|Special A\]\] \| The frame ID. \|- \| \[\[Data Types\#Standard
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | New slot. |
|
||||||
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. \|- \|}
|
|
||||||
|
@ -1,12 +1,19 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Audio
|
||||||
{{packet\|name=Audio\|description=Sets the audio to
|
|
||||||
play.\|opcode=174\|type=Fixed\|length=N/A\|revision=317}} == Audio ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
Sets what audio to play at a certain moment.
|
Sets what audio to play at a certain moment.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Word\|Word\]\] \| The sound id. \|- \| \[\[Data
|
| Key | Value |
|
||||||
Types\#Byte\|Byte\]\] \| The volume. \|- \| \[\[Data
|
|--|--|
|
||||||
Types\#Word\|Word\]\] \| The delay. \|- \|}
|
| 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 ==
|
# NPC Dialogue
|
||||||
|
This packet is what handles when the player hits the "Click here to continue".
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
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
|
# NPC Action 1
|
||||||
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 ===
|
|
||||||
|
|
||||||
This packet is sent when a player clicks the first option of an NPC.
|
This packet is sent when a player clicks the first option of an NPC.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Key | Value |
|
||||||
Types\#Standard data types\|Short\]\] \| The NPC index. \|}
|
|--|--|
|
||||||
|
| 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
|
# NPC Action 2
|
||||||
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 ===
|
|
||||||
|
|
||||||
This packet is sent when a player clicks the second action of an NPC.
|
This packet is sent when a player clicks the second action of an NPC.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Key | Value |
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
|
|--|--|
|
||||||
Types\|Special A\]\] \| The NPC index. \|- \|}
|
| 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
|
# NPC Action 3
|
||||||
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 ===
|
|
||||||
|
|
||||||
This packet is sent when a player clicks the third option of an NPC.
|
This packet is sent when a player clicks the third option of an NPC.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
Unsigned \[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Key | Value |
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
|
|--|--|
|
||||||
Types\|Special A\]\] \| The NPC index. \|- \|}
|
| 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
|
# NPC head on interface
|
||||||
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 ===
|
|
||||||
|
|
||||||
Places the head of an NPC on an interface
|
Places the head of an NPC on an interface
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Key | Value |
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
|
|--|--|
|
||||||
Types\|Special A\]\] \| The NPC ID \|- \| \[\[Data Types\#Little
|
| Name | NPC head on interface |
|
||||||
Endian\|Little Endian\]\] \[\[Data Types\#Standard data types\|Short\]\]
|
| Description | Places the head of an NPC on an interface |
|
||||||
\[\[Data Types\#Non Standard Data Types\|Special A\]\] \| The 'slot' ID
|
| Opcode | 75 |
|
||||||
for where you wish to place the head \|- \|}
|
| 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\]\]
|
# Object Action 1
|
||||||
{{packet\|name=Object action 1\|description=Sent when the player clicks
|
This packet is sent when a player clicks the first option of an object, such as "Cut" for trees or "Mine" for rocks.
|
||||||
the first option of an
|
|
||||||
object.\|opcode=132\|type=Fixed\|length=6\|revision=317}} == Object
|
|
||||||
Action 1 ==
|
|
||||||
|
|
||||||
=== 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,
|
## Packet Structure
|
||||||
such as "Cut" for trees or "Mine" for rocks.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! 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. |
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| [Short](/Data-Types.html#common-data-types) | The objects ID. |
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects Y coordinate. |
|
||||||
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. \|- \|}
|
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Object action 2
|
||||||
{{packet\|name=Object action 2\|description=Sent when the player clicks
|
This packet is sent when a player clicks the second option available of an object, such as "Prospect" for rocks.
|
||||||
the second option available for an an
|
|
||||||
object.\|opcode=252\|type=Fixed\|length=6\|revision=317}} == Object
|
|
||||||
action 2 ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
an object, such as "Prospect" for rocks.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! 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. |
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The objects Y coordinate. |
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard Data
|
| [Short](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The objects X coordinate. |
|
||||||
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. \|}
|
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Object Action 3
|
||||||
{{packet\|name=Object action 3\|description=Sent when a player clicks
|
This packet is sent when a player clicks the third action available for an object.
|
||||||
the third action available for an
|
|
||||||
object.\|opcode=70\|type=Fixed\|length=6\|revision=317}} == Object
|
|
||||||
Action 3 ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
an object.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The X coordinate of the object. |
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| [Short](/Data-Types.html#common-data-types) | The Y coordinate of the object. |
|
||||||
Types\#Standard data types\|Short\]\] \| The X 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. |
|
||||||
\|- \| \[\[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. \|}
|
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Object removal ==
|
# Object removal
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet requests the client to remove an object.
|
This packet requests the client to remove an object.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Structure
|
||||||
Negated \[\[Data Types\#byte\|byte\]\] \| object type \<\< 2 + object
|
| Data Type | Description |
|
||||||
rotation & 3 \|- \| \[\[Data Types\#byte\|byte\]\] \| 0 \|- \|}
|
|--|--|
|
||||||
|
| 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 ==
|
# Object spawn
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet requests the client to spawn an object.
|
This packet requests the client to spawn an object.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Structure
|
||||||
subtrahend \[\[Data Types\#byte\|byte\]\] \| 0 \|- \| Little endian
|
| Data Type | Description |
|
||||||
\[\[Data Types\#byte\|byte\]\] \| ObjectID \|- \| subtrahend \[\[Data
|
|--|--|
|
||||||
Types\#byte\|byte\]\] \| object type \<\< 2 + object rotation & 3 \|-
|
| 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
|
# Open chatbox interface
|
||||||
chatbox interface\|description=Displays an interface over the
|
Sending this packet to the client will cause the client to open an interface over the chatbox.
|
||||||
chatbox.\|opcode=218\|type=Fixed\|length=2\|revision=317}} == Open
|
|
||||||
chatbox interface ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
interface over the chatbox.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! 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. |
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
|
||||||
Types\#Standard data types\|Short\]\] \[\[Data Types\#Non Standard data
|
|
||||||
types\|Special A\]\] \| Interface ID. \|- \|}
|
|
||||||
|
@ -1,20 +1,21 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Open
|
# Open Welcome Screen
|
||||||
welcome screen\|description=Displays the welcome
|
|
||||||
screen.\|opcode=176\|type=Fixed\|length=10\|revision=317}} == Open
|
|
||||||
Welcome Screen ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet displays the welcome screen.
|
This packet displays the welcome screen.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data type\|Byte\]\] \[\[Data Types\#Non
|
| Key | Value |
|
||||||
Standard data types\|Special C\]\] \| Days since last recovery change
|
|--|--|
|
||||||
(200 for not yet set, 201 for members server). \|- \| \[\[Data
|
| Name | Open welcome screen |
|
||||||
Types\#Standard data type\|Short\]\] \[\[Data Types\#Non Standard data
|
| Description | Displays the welcome screen. |
|
||||||
types\|Special A\]\] \| Number of unread messages. \|- \| \[\[Data
|
| Opcode | 176 |
|
||||||
Types\#Standard data types\|Byte\]\] \| Member warning (1 for member, 0
|
| Type | Fixed |
|
||||||
for non-member). \|- \| \[\[Data Types\#Non Standard data
|
| Length | 10 |
|
||||||
types\|Middle-Endian Big Integer\]\] \| Last logged IP. \|- \| \[\[Data
|
| Revision | 317 |
|
||||||
Types\#Standard data types\|Short\]\] \| Last logged successful log-n.
|
|
||||||
\|- \|}
|
## 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\]\]
|
# Pickup Ground Item
|
||||||
{{packet\|name=Pickup ground item\|description=Sent when the player
|
This packet is sent when a player clicks the "Pick Up" option on an item when its on the ground.
|
||||||
picks up an item from the
|
|
||||||
ground.\|opcode=236\|type=Fixed\|length=6\|revision=317}} == Pickup
|
|
||||||
Ground Item ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
when its on the ground.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The Y coordinate of the item. |
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| [Short](/Data-Types.html#common-data-types) | The item ID. |
|
||||||
Types\#Standard data types\|Short\]\] \| The Y coordinate of the item.
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The X 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.
|
|
||||||
\|- \|}
|
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Play
|
# Play song
|
||||||
song\|description=Starts playing a
|
Sending this packet to the client will cause the client to start playing a song.
|
||||||
song.\|opcode=74\|type=Fixed\|length=2\|revision=317}} == Play 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
|
## Packet Structure
|
||||||
a song.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Little Endian](/Data-Types.html#little-endian) [Short](/Data-Types.html#common-data-types) | The song ID. |
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
|
||||||
Types\#Standard data types\|Short\]\] \| The song ID. \|- \|}
|
|
||||||
|
@ -1,10 +1,19 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Player Option
|
||||||
{{packet\|name=Player Option\|description=Adds an option to a player's
|
Adds an option to a player's right click context menu.
|
||||||
right click context
|
|
||||||
menu.\|opcode=104\|type=Variable\|length=N/A\|revision=317}} == Player
|
|
||||||
Option ==
|
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] C \| The option position.
|
| Key | Value |
|
||||||
\|- \| \[\[Data Types\#Standard data types\|Byte\]\] A \| Flag \|- \|
|
|--|--|
|
||||||
\[\[Data Types\#Standard data types\|String\]\] \| Action text. \|- \|}
|
| 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\]\]
|
# Player Command
|
||||||
{{packet\|name=Player command\|description=Sent when a player types a
|
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).
|
||||||
command in the chat box.\|opcode=103\|type=Variable
|
|
||||||
Byte\|length=N/A\|revision=317}} == Player Command ==
|
|
||||||
|
|
||||||
=== 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 '::',
|
## Packet Structure
|
||||||
the message is then sent to the server and an appropriate action is
|
| Data Type | Description |
|
||||||
taken (e.g. spawning an item).
|
|--|--|
|
||||||
|
| [RS String](/RS-String.html) | The command name and parameters. |
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
|
||||||
\[\[RS String\|RS String\]\] \| The command name and parameters. \|}
|
|
||||||
|
@ -1,11 +1,17 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send
|
# Send player head model to an interface
|
||||||
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 ===
|
|
||||||
|
|
||||||
This packet sends a players head to an interface
|
This packet sends a players head to an interface
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Little Endian Short A\]\] \| The interface ID. \|- \|}
|
| 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\]\]
|
# Privacy Options
|
||||||
{{packet\|name=Privacy options\|description=Sent when a player changes
|
This packet is sent when a player changes their privacy options (i.e. public chat).
|
||||||
their privacy options.\|opcode=95\|type=Fixed\|length=3\|revision=317}}
|
|
||||||
== Privacy Options ==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
(i.e. public chat).
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| Unsigned [Byte](/Data-Types.html#common-data-types) | The public chat options. |
|
||||||
Unsigned \[\[Data Types\#Standard data types\|Byte\]\] \| The public
|
| Unsigned [Byte](/Data-Types.html#common-data-types) | The private chat options. |
|
||||||
chat options. \|- \| Unsigned \[\[Data Types\#Standard data
|
| Unsigned [Byte](/Data-Types.html#common-data-types) | The trade/compete options. |
|
||||||
types\|Byte\]\] \| The private chat options. \|- \| Unsigned \[\[Data
|
|
||||||
Types\#Standard data types\|Byte\]\] \| The trade/compete options. \|-
|
|
||||||
\|}
|
|
||||||
|
@ -1,42 +1,42 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] \[\[Category RS2\]\]
|
# 317 Protocol
|
||||||
== '''Packet structure''' == When the client sends a packet to the
|
## Packet structure
|
||||||
server, the first byte encapsulates its
|
When the client sends a packet to the server, the first byte encapsulates its [opcode](http://en.wikipedia.org/wiki/Opcode).
|
||||||
\[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\].
|
|
||||||
|
|
||||||
A list of the 317 Packets may be found
|
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.
|
||||||
\[http://rswiki.moparisthebest.com/index.php?title=Category:Packet:317
|
|
||||||
here\].
|
|
||||||
|
|
||||||
== '''Login Protocol Overview''' == Every connection to the main
|
The server decrypts it and associates the opcode to the packet's respective predefined size.
|
||||||
'gateway' server sends a single byte of data, mostly well known as the
|
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.
|
||||||
connection type. The connection type tells the main server which type of
|
This is then followed by the [payload](http://en.wikipedia.org/wiki/Payload_(software)).
|
||||||
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 connection type we will cover in the following paragraphs is the
|
## Login Protocol Overview
|
||||||
login connection type, 14. After the login handshake initiating
|
Every connection to the main 'gateway' server sends a single byte of data, mostly well known as the connection type.
|
||||||
connection type, the client writes hash derived from the logging in
|
The connection type tells the main server which type of connection you wish to initiate.
|
||||||
player's username. This is believed to help select the appropriate login
|
|
||||||
server. On successful handshake, the server sends back 8 ignored bytes.
|
|
||||||
|
|
||||||
<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);
|
int usernameHash = (int) (encodedUsername >> 16 & 31L);
|
||||||
out.offset = 0;
|
out.offset = 0;
|
||||||
out.writeByte(14); // Initiate connection type
|
out.writeByte(14); // Connection type
|
||||||
out.writeByte(usernameHash);
|
out.writeByte(usernameHash);
|
||||||
in.queueBytes(2, out.payload);
|
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
|
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 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
|
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
|
user identifier) is written to the block. This is used to distinguish
|
||||||
between multiple sessions. Trailing behind the UID comes the client's
|
between multiple sessions. Trailing behind the UID comes the client's
|
||||||
username and password written as modified C-strings that are rather
|
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.
|
encrypted and stored for later use.
|
||||||
|
|
||||||
Now starts the login request packet. It starts off with a flag telling
|
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
|
to each int of the session keys, and the status code is reread. This
|
||||||
finishes the login protocol.
|
finishes the login protocol.
|
||||||
|
|
||||||
== '''Login Protocol Breakdown''' == The login is comprised of four
|
## Login Protocol Breakdown
|
||||||
stages in which the client and server switch in regards to which one is
|
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.
|
||||||
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
|
||||||
variables and their different values. ====Name Hash==== A hash of the
|
The login process has a lot of variable data, compiled here is a list of the variables and their different values.
|
||||||
player name, thought to be used to select an appropriate login server.
|
|
||||||
|
**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.
|
This has no use in current private servers.
|
||||||
|
|
||||||
====Server Session Key==== The server-session-key is one of two ciphers
|
**Server Session Key**:
|
||||||
used to encrypt the game protocol, using the ISAAC algorithms. <br/>
|
The server-session-key is one of two seeds used to encrypt the game protocol communications, using the ISAAC algorithm instances.
|
||||||
===="Data File Version"==== <!-- Colby --> The CRC checks for the cache
|
|
||||||
files. <br/>
|
|
||||||
|
|
||||||
====User ID==== A client-side randomly generated integer. This could be
|
**Data File Version**:
|
||||||
used in reassigning sessions to players that have lost connection. It is
|
The CRC checks for the cache files.
|
||||||
stored as a packed integer in a file named 'uid.dat' in the cache
|
|
||||||
directory. <br/>
|
|
||||||
|
|
||||||
====Username==== The username of the player, used to identify their
|
**User ID**:
|
||||||
account. <br/> ====Password==== The password of the player account, used
|
A client-side randomly generated integer.
|
||||||
so only they can log into their account. <br/> ====Client Session
|
This could be used in reassigning sessions to players that have lost connection.
|
||||||
Key==== The client-session-key is one of two ciphers used to encrypt the
|
It is stored as a packed integer in a file named 'uid.dat' in the cache directory.
|
||||||
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. \|- \|}
|
|
||||||
|
|
||||||
====Size==== The size of the unencrypted login packet, used to determine
|
**Username**: The username of the player, used to identify their account.
|
||||||
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. \|- \|}
|
|
||||||
|
|
||||||
====CRC Values==== 9 4-byte values, Each containing the CRC of their
|
**Password**: The password of the player account, used so only they can log into their account.
|
||||||
respective cache files. Used by the server to verify client is up to
|
|
||||||
date. <br/>
|
|
||||||
|
|
||||||
====Player Status==== The in-game player status - player, player
|
**Client Session Key**: The client-session-key is one of two seeds used to encrypt the game protocol communications, using the ISAAC algorithm instances.
|
||||||
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. \|- \|}
|
|
||||||
|
|
||||||
====Flagged==== If set to 1, information about mouse movements etc. are
|
**Connect Status**: The status of the connection (16 if new, 18 if reconnecting).
|
||||||
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." \|- \|}
|
|
||||||
|
|
||||||
==== Regarding response code 15 ==== On the server, players are not
|
**Size**: The size of the unencrypted login packet, used to determine how many bytes need to be read from the stream by the server.
|
||||||
unregistered for quite some time. This can be best witnessed when the
|
|
||||||
client forcefully closes the connection while in combat. If you're quick
|
**Client Version**: The memory-version of the game client (0 if low-memory client, 1 if high-memory client).
|
||||||
enough before the player dies or kills the NPC, login attempts during
|
|
||||||
that time return that the account is already logged in. This probably
|
**CRC Values**: Nine 4-byte values, Each containing the CRC of their respective cache files.
|
||||||
explains why the message says "try again in 60 seconds", and they just
|
Used by the server to verify client is up to date.
|
||||||
reused the response when the player is truly logged in.
|
|
||||||
|
**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
|
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
|
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;).
|
The server most likely saves this as a boolean (reconnect = var == 18;).
|
||||||
When the login is entirely validated, meaning the password's are okay
|
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
|
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
|
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
|
noticed that your chat stays there upon a reconnect, and this is exactly why.
|
||||||
why. <!-- thanks to Colby for this contribution--> When you implement
|
When you implement response code 15 though, you do NOT need to send the "player status" or the "flagged" bytes.
|
||||||
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 \|-
|
## Login Process
|
||||||
! Data Type ! Value \|- \| ubyte \| 14 \|- \| ubyte \| "name hash" \|-
|
### Stage 1: Client -> Server
|
||||||
\|} <br/>
|
| 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
|
### Stage 2: Server -> Client
|
||||||
\|- \| byte \| 0 \|- \| byte \| 0 \|- \| byte \| 0 \|- \| byte \| 0 \|-
|
| Data Type | Value |
|
||||||
\| byte \| 0 \|- \| byte \| 0 \|- \| byte \| 0 \|- \| byte \| 0 \|- \|
|
|--|--|
|
||||||
byte \| "response code" \|- \| \[\[QWord\|long\]\] \| "server session
|
| [Byte](/Data-Types.html#common-data-types) | 0 |
|
||||||
key" \|- \|} <br/>
|
| [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
|
### Stage 3: Client -> Server
|
||||||
\|- \| byte \| "connect status" \|- \| byte \| "size" \|- \| byte \| 255
|
| Data Type | Value |
|
||||||
\|- \| \[\[Word\|short\]\] \| 317 \|- \| byte \| "client version" \|- \|
|
|--|--|
|
||||||
\[\[DWord\|int\]\] \| "crc values"\[0\] \|- \| \[\[DWord\|int\]\] \|
|
| [Byte](/Data-Types.html#common-data-types) | Connect status |
|
||||||
"crc values"\[1\] \|- \| \[\[DWord\|int\]\] \| "crc values"\[2\] \|- \|
|
| [Byte](/Data-Types.html#common-data-types) | Size |
|
||||||
\[\[DWord\|int\]\] \| "crc values"\[3\] \|- \| \[\[DWord\|int\]\] \|
|
| [Byte](/Data-Types.html#common-data-types) | 255 |
|
||||||
"crc values"\[4\] \|- \| \[\[DWord\|int\]\] \| "crc values"\[5\] \|- \|
|
| [Short](/Data-Types.html#common-data-types) | 317 (Client version) |
|
||||||
\[\[DWord\|int\]\] \| "crc values"\[6\] \|- \| \[\[DWord\|int\]\] \|
|
| [Int](/Data-Types.html#common-data-types) | crc values [0] |
|
||||||
"crc values"\[7\] \|- \| \[\[DWord\|int\]\] \| "crc values"\[8\] \|- \|
|
| [Int](/Data-Types.html#common-data-types) | crc values [1] |
|
||||||
byte \| 10 \|- \| \[\[QWord\|long\]\] \| "client session key" \|- \|
|
| [Int](/Data-Types.html#common-data-types) | crc values [2] |
|
||||||
\[\[QWord\|long\]\] \| "server session key" \|- \| \[\[DWord\|int\]\] \|
|
| [Int](/Data-Types.html#common-data-types) | crc values [3] |
|
||||||
"user id" \|- \| \[\[RS String\|RS String\]\] \| "username" \|- \|
|
| [Int](/Data-Types.html#common-data-types) | crc values [4] |
|
||||||
\[\[RS String\|RS String\]\] \| "password" \|- \|} <br/>
|
| [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
|
### Stage 4: Server -> Client
|
||||||
\|- \| byte \| "response code" \|- \| byte \| "player status" \|- \|
|
| Data Type | Value |
|
||||||
byte \| "flagged" \|- \|} <br/>
|
|--|--|
|
||||||
|
| [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
|
### Player Updating
|
||||||
parts: \* a) Our player movement updates \* b) Other player movement
|
The player updating process consists of 4 parts:
|
||||||
updates \* c) Player list updating \* c.a) Apperance updating \* c.b)
|
|
||||||
Location updating \* d) Player update block flag-based updates
|
|
||||||
|
|
||||||
'''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
|
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
|
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
|
controlling.
|
||||||
step b. If it is, it then reads 2 bits. The value is called the movement
|
If it's not updating our player, it exits and goes onto step b.
|
||||||
update type. There are 4 recognized movement update types:
|
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
|
There are 4 recognized movement update types:
|
||||||
player, just add its index to the local updating list.
|
* 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.
|
||||||
- Type 1 tells the client you moved in one direction. The client reads
|
The client reads 3 bits, which represents the direction you moved in, and then 1 bit, which states whether further update is required.
|
||||||
3 bits, which represents the direction you moved in, and then 1 bit,
|
If so, it adds it to the updating list. This is used in walking.
|
||||||
which states whether further update is required. If so, it adds it
|
* 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.
|
||||||
to the updating list. This is used in walking.
|
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.
|
||||||
- Type 2 functions in much of the same way as its previous, only this
|
It reads in 2 bits which represents our player's plane, or its level of height, in the game world.
|
||||||
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
|
Only 0-3 inclusive are appropriate planes supported by the client. It
|
||||||
then reads 1 bit, which describes whether or not to clear the
|
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
|
origin. It then sets our players position to the plane, x, and y
|
||||||
positions as told to.
|
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
|
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
|
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
|
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
|
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
|
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
|
reads the movement update type, which is a 2 bit quantity.
|
||||||
known types are:
|
|
||||||
|
|
||||||
- 0, the client updates the current player's last update cycle time,
|
The following known types are:
|
||||||
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
|
* 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.
|
||||||
and adds the current player to the local player list as well, but
|
* 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.
|
||||||
also reads in 3 bit quantity. This represents the current player's
|
This represents the current player's direction it walked to.
|
||||||
direction it walked to. It then reads the a 1 bit value that
|
It then reads the a 1 bit value that specifies whether or not to add the player to the updating list.
|
||||||
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
|
### Player list updating
|
||||||
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'''
|
|
||||||
|
|
||||||
The next step in the player updating procedure is the player list
|
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
|
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
|
if it has a cached buffer for that player's updating, and if it does, it
|
||||||
updates the player appearance.
|
updates the player appearance.
|
||||||
|
|
||||||
'''Appearance updating'''
|
### Appearance updating
|
||||||
|
|
||||||
Appearance updating starts off by first reading an unsigned byte that
|
Appearance updating starts off by first reading an unsigned byte that
|
||||||
represents the current player's gender. Then it reads another unsigned
|
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
|
assigns it as the color of the current loop idx (which represents the
|
||||||
body part).
|
body part).
|
||||||
|
|
||||||
Finally, after the color loop, the client reads 7 unsigned shorts
|
Finally, after the color loop, the client reads 7 unsigned shorts representing animation indices; the animations belong to:
|
||||||
representing animation indices; the animations belong to: \* Standing
|
|
||||||
still \* Turning while standing \* Walking \* Turning around (backwards)
|
* Standing still
|
||||||
\* Turning a quarter-way clockwise \* Turning a quarter-way counter
|
* Turning while standing
|
||||||
clockwise \* Running
|
* 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
|
After these animation indices are read, a long representing the player's
|
||||||
name is read, an unsigned byte representing the combat level, and an
|
name is read, an unsigned byte representing the combat level, and an
|
||||||
unsigned short representing the players skill level (for things where
|
unsigned short representing the players skill level (for things where
|
||||||
players arent ranked by levels, such as where it states '<player name>
|
players arent ranked by levels, such as where it states
|
||||||
(skill <skill>)' as an action menu text).
|
`<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
|
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
|
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
|
The client then sets the player's position, ending the player list
|
||||||
updating process.
|
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'
|
The following is what most people think of when they say 'update mask'
|
||||||
and 'update flag'. This process of the updating procedure is very
|
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
|
are frequently called update masks. A list of player update masks are
|
||||||
below:
|
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
|
appear to be asynchronously animating and walking. This mask is
|
||||||
often used for the \[http://runescape.wikia.com/wiki/Agility
|
often used for the [Agility](http://runescape.wikia.com/wiki/Agility) skill.
|
||||||
Agility\] skill. The data associated goes in order of: byte (type C)
|
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 X coordinate value, byte (type S)
|
||||||
which is the first location's Y 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
|
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
|
position 2 to position 1. Finally one byte is written to end the
|
||||||
mask block, which marks the direction.
|
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
|
updating. The data associated is a little-endian unsigned short
|
||||||
which represents the graphics id, and an int which is the graphics
|
which represents the graphics id, and an int which is the graphics
|
||||||
delay.
|
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
|
this update is a little-endian unsigned short that is the animation
|
||||||
id, and an unsigned inversed byte (Special C) which states the
|
id, and an unsigned inversed byte (Special C) which states the
|
||||||
animation's delay.
|
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
|
is only displayed above the player's model. The only data associated
|
||||||
with this is a jagex ASCII string with a terminator of 10.
|
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
|
chat text. The client will read a little-endian unsigned short which
|
||||||
holds chat text attributes. It holds the text color and chat
|
holds chat text attributes. It holds the text color and chat
|
||||||
effects. Next, the client reads an unsigned byte which states the
|
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
|
text characters become indexes into a valid character table and are
|
||||||
written as nibbles (4 bit quantities).
|
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
|
via mask 0x1. The entity id is written as a little-endian unsigned
|
||||||
short.
|
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
|
same way as in updating player list. Only difference is that
|
||||||
appearance is updated from a set-sized buffer filled from the
|
appearance is updated from a set-sized buffer filled from the
|
||||||
current buffer. An unsigned inversed byte is read first which
|
current buffer. An unsigned inversed byte is read first which
|
||||||
describes appearance buffer size, and the buffer is filled.
|
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;
|
The player's facing-towards X and Y are set to read values;
|
||||||
specifically, an unsigned lower-inverted short and little-endian
|
specifically, an unsigned lower-inverted short and little-endian
|
||||||
unsigned short, respectively.
|
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
|
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.
|
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
|
The player's current and max health are read as an unsigned inverted
|
||||||
byte and unsigned byte, respectively.
|
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
|
is most likely associated with special attacks from weapons that
|
||||||
have the ability to hit twice at the same time. Hitpoint damage is
|
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
|
an unsigned byte, the hit type an unsigned inverted byte, and the
|
||||||
current and maximum health being an unsigned byte and unsigned
|
current and maximum health being an unsigned byte and unsigned
|
||||||
inverted byte, respectively.
|
inverted byte, respectively.
|
||||||
|
|
||||||
After the client processes every single player in the update player
|
After the client processes every single player in the update player list, it ends player updating.
|
||||||
list, it ends player updating.
|
|
||||||
|
|
||||||
==Game Protocol== The game protocol is the in-game communication of
|
## Game Protocol
|
||||||
player actions between the server and client. <br/> ===Server -\> Client
|
The game protocol is the in-game communication of player actions between the server and client.
|
||||||
Packets===
|
|
||||||
|
|
||||||
{
|
## 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
|
## Client -> Server Packets
|
||||||
\| 0 \| \[\[317 Animation reset\|Animation reset\]\] \| Resets all
|
| Opcode | Type | Length (bytes) | Name | Description
|
||||||
animations in the immediate area. \|- \| 4 \| FIXED \| 6 \| \[\[317 Draw
|
|--|--|--|--|--|
|
||||||
graphic at position\|Draw graphic at position\]\] \| Draw a graphic at a
|
| 0 | FIXED | 0 | [Idle](/317/317-Idle.html) | Sent when there are no actions being performed by the player for this cycle. |
|
||||||
given x/y position after a delay. \|- \| 8 \| FIXED \| 4 \| \[\[317 Set
|
| 3 | FIXED | 1 | [Focus change](/317/317-Focus-change.html) | Sent when the game client window goes out of focus. |
|
||||||
interface model\|Set interface model\]\] \| Draw a given model on a
|
| 4 | VARIABLE BYTE | N/A | [Chat](/317/317-Chat.html) | Sent when the player enters a chat message. |
|
||||||
given interface. \|- \| 24 \| FIXED \| 1 \| \[\[317 Flash sidebar\|Flash
|
| 14 | FIXED | 8 | [Item on player](/317/317-Item-on-player.html) | Sent when a player uses an item on another player. |
|
||||||
sidebar\]\] \| Causes a sidebar icon to start flashing. \|- \| 27 \|
|
| 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. |
|
||||||
FIXED \| 0 \| \[\[317 Input amount\|Input amount\]\] \| Displays the
|
| 17 | FIXED | 2 | [NPC action 2](/317/317-NPC-action-2.html) | Sent when a player clicks the second option of an NPC. |
|
||||||
"Input amount" interface. \|- \| 34 \| VARIABLE\_SHORT \| N/A \| \[\[317
|
| 18 | FIXED | 2 | [NPC action 4](/317/317-NPC-action-4.html) | Sent when a player clicks the fourth option of an NPC. |
|
||||||
Draw items on interface\|Draw items on interface\]\] \| Draw a
|
| 21 | FIXED | 2 | [NPC action 3](/317/317-NPC-action-3.html) | Sent when a player clicks the third option of an NPC. |
|
||||||
collection of items on an interface. \|- \| 35 \| FIXED \| 4 \| \[\[317
|
| 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. |
|
||||||
Camera shake\|Camera shake\]\] \| Causes the camera to shake. \|- \| 36
|
| 39 | FIXED | 2 | [Trade answer](/317/317-Trade-answer.html) | Sent when a player answers a trade request from another player. |
|
||||||
\| FIXED \| 3 \| \[\[317 Force client setting\|Force client setting\]\]
|
| 40 | FIXED | N/A | [NpcDialogue](/317/317-NPC-Dialogue.html) | Sent when a player clicks the "Click here to continue" on any dialogue. |
|
||||||
\| Forcefully changes a client's setting's value. Also changes the
|
| 41 | FIXED | 6 | [Equip item](/317/317-Equip-item.html) | Sent when a player equips an item. |
|
||||||
default value for that setting. \|- \| 44 \| FIXED \| 5 \| \[\[317 Send
|
| 43 | FIXED | 6 | [Bank 10 items](/317/317-Bank-10-items.html) | Sent when a player banks 10 of a certain item. |
|
||||||
ground item\|Send ground item\]\] \| Place an item stack on the ground.
|
| 53 | FIXED | 4 | [Item on item](/317/317-Item-on-item.html) | Sent when a player uses an item with another item. |
|
||||||
\|- \| 50 \| FIXED \| 9 \| \[\[317 Send add friend\|Send add friend\]\]
|
| 70 | FIXED | 6 | [Object action 3](/317/317-Object-action-3.html) | Sent when the player clicks the third action available for an object. |
|
||||||
\| Sends a friend to the friend list. \|- \| 53 \| VARIABLE\_SHORT \|
|
| 72 | FIXED | 2 | [Attack (NPC)](/317/317-Attack-(NPC).html) | Sent when a player attacks an NPC. |
|
||||||
N/A \| \[\[317 Draw items on interface\|Draw items on interface\]\] \|
|
| 73 | FIXED | 2 | [Trade request](/317/317-Trade-request.html) | Sent when a player requests a trade with another player. |
|
||||||
Draw a collection of items on an interface. \|- \| 60 \| VARIABLE\_SHORT
|
| 74 | FIXED | 8 | [Remove ignore](/317/317-Remove-ignore.html) | Sent when a player removes a player from their ignore list. |
|
||||||
\| N/A \| \[\[317 Begin processing position related packets\|Begin
|
| 79 | FIXED | 6 | [Light item](/317/317-Light-item.html) | Sent when a player attempts to light logs on fire. |
|
||||||
processing position related packets\]\] \| Begin processing position
|
| 86 | FIXED | 4 | [Camera movement](/317/317-Camera-movement.html) | Sent when the player moves the camera. |
|
||||||
related packets. \|- \| 61 \| FIXED \| 1 \| \[\[317 Show
|
| 87 | FIXED | 6 | [Drop item](/317/317-Drop-item.html) | Sent when a player wants to drop an item onto the ground. |
|
||||||
multi-combat\|Show multi-combat\]\] \| Shows the player that they are in
|
| 95 | FIXED | 3 | [Privacy options](/317/317-Privacy-options.html) | Sent when a player changes their privacy options (i.e. public chat). |
|
||||||
a multi-combat zone. \|- \| 64 \| FIXED \| 2 \| \[\[317 Delete ground
|
| 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. |
|
||||||
item\|Delete ground item\]\] \| Delete ground item. \|- \| 65 \|
|
| 101 | FIXED | 13 | [Design screen](/317/317-Design-screen.html) | Sent when a player is choosing their character design options. |
|
||||||
VARIABLE\_SHORT \| N/A \| \[\[317 NPC updating\|NPC updating\]\] \| NPC
|
| 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") |
|
||||||
updating \|- \| 68 \| FIXED \| 0 \| \[\[317 Reset button state\|Reset
|
| 117 | FIXED | 6 | [Bank 5 items](/317/317-Bank-5-items.html) | Sent when a player banks 5 of a certain item. |
|
||||||
button state\]\] \| Resets the button state for all buttons. \|- \| 70
|
| 121 | FIXED | 0 | [Loading finished](/317/317-Loading-finished.html) | Sent when the client finishes loading a map region. |
|
||||||
\| FIXED \| 6 \| \[\[317 Interface offset\|Interface offset\]\] \| Sets
|
| 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. |
|
||||||
the offset for drawing of an interface. \|- \| 71 \| FIXED \| 3 \|
|
| 126 | VARIABLE BYTE | N/A | [Private message](/317/317-Private-message.html) | Sent when a player sends a private message to another player. |
|
||||||
\[\[317 Send sidebar interface\|Send sidebar interface\]\] \| Assigns an
|
| 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. |
|
||||||
interface to one of the tabs in the game sidebar. \|- \| 72 \| FIXED \|
|
| 130 | FIXED | 0 | [Close window](/317/317-Close-window.html) | Sent when a player presses the close, exit or cancel button on an interface. |
|
||||||
2 \| \[\[317 Clear inventory\|Clear inventory\]\] \| Clears an
|
| 131 | FIXED | 4 | [Mage NPC](/317/317-Mage-NPC.html) | Sent when a player uses magic attacks on an NPC. |
|
||||||
interface's inventory. \|- \| 73 \| FIXED \| 4 \| \[\[317 Load map
|
| 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. |
|
||||||
region\|Load map region\]\] \| Loads a new map region. \|- \| 74 \|
|
| 133 | FIXED | 8 | [Add ignore](/317/317-Add-ignore.html) | Sent when a player adds a player to their ignore list. |
|
||||||
FIXED \| 4 \| \[\[317 Play song\|Play song\]\] \| Starts playing a song.
|
| 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. |
|
||||||
\|- \| 75 \| FIXED \| 4 \| \[\[317 NPC head on interface\|NPC head on
|
| 139 | FIXED | 2 | [Follow](/317/317-Follow.html) | Sent when a player clicks the follow option on another player. |
|
||||||
interface\]\] \| Place the head of an NPC on an interface \|- \| 78 \|
|
| 145 | FIXED | 6 | [Unequip item](/317/317-Unequip-item.html) | Sent when a player unequips an item. |
|
||||||
FIXED \| 0 \| \[\[317 Reset destination\|Reset destination\]\] \| Resets
|
| 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." |
|
||||||
the players' destination. \|- \| 79 \| FIXED \| 4 \| \[\[317 Scroll
|
| 164 | VARIABLE_BYTE | N/A | [Regular walk](/317/317-Regular-walk.html) | Sent when the player walks regularly. |
|
||||||
position\|Scroll position\]\] \| Sets the scrollbar position of an
|
| 185 | FIXED | 2 | [Button click](/317/317-Button-click.html) | Sent when a player clicks an in-game button. |
|
||||||
interface. \|- \| 81 \| VARIABLE \| N/A \| \[\[317 Begin player
|
| 188 | FIXED | 8 | [Add friend](/317/317-Add-friend.html) | Sent when a player adds a friend to their friend list. |
|
||||||
updating\|Begin player updating\]\] \| Begins the player update
|
| 192 | FIXED | 12 | [Item on object](/317/317-Item-on-object.html) | Sent when a a player uses an item on an object. |
|
||||||
procedure \|- \| 84 \| FIXED \| 7 \| \[\[317 Edit ground item
|
| 202 | FIXED | 0 | [Idle logout](/317/317-Idle-logout.html) | Sent when the player has become idle and should be logged out. |
|
||||||
amount\|Edit ground item amount\]\] \| Edit ground item amount \|- \| 85
|
| 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. |
|
||||||
\| FIXED \| 2 \| \[\[317 Set local player coordinates\|Set local player
|
| 210 | FIXED | 0 | [Region change](/317/317-Region-change.html) | Sent when a player enters a new map region. |
|
||||||
coordinates\]\] \| Set local player coordinates \|- \| 87 \| FIXED \| 7
|
| 214 | FIXED | 7 | [Move item](/317/317-Move-item.html) | Sent when a player moves an item from one slot to another. |
|
||||||
\| \[\[317 Force client setting\|Force client setting\]\] \| Forcefully
|
| 215 | FIXED | 8 | [Remove friend](/317/317-Remove-friend.html) | Sent when a player removes a friend from their friend list. |
|
||||||
changes a client's setting's value. Also changes the default value for
|
| 218 | FIXED | 8 | [Report player](/317/317-Report-player.html) | Sent when a player reports another player. |
|
||||||
that setting. \|- \| 97 \| FIXED \| 2 \| \[\[317 Show interface\|Show
|
| 236 | FIXED | 6 | [Pickup ground item](/317/317-Pickup-ground-item.html) | Sent when the player picks up an item from the ground. |
|
||||||
interface\]\] \| Displays a normal interface. \|- \| 99 \| FIXED \| 1 \|
|
| 237 | FIXED | 8 | [Magic on items](/317/317-Magic-on-items.html) | Sent when a player casts magic on the items in their inventory. |
|
||||||
\[\[317 Minimap State\|Minimap State\]\] \| Sets the mini map's state.
|
| 241 | FIXED | 4 | [Mouse click](/317/317-Mouse-click.html) | Sent when the player clicks somewhere on the game screen. |
|
||||||
\|- \| 101 \| FIXED \| 3 \| \[\[317 Object removal\|Object removal\]\]
|
| 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. |
|
||||||
\| Sends an object removal request to the client. \|- \| 104 \| VARIABLE
|
| 249 | FIXED | 4 | [Magic on player](/317/317-Magic-on-player.html) | Sent when a player attempts to cast magic on another player. |
|
||||||
\| N/A \| \[\[317 Player Option\|Player Option\]\] \| Adds a 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. |
|
||||||
option to the right click menu of player(s). \|- \| 105 \| FIXED \| 4 \|
|
| 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') |
|
||||||
\[\[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') \|- \|}
|
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Region Change
|
||||||
{{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 ===
|
|
||||||
|
|
||||||
This packet is sent when a player enters a new map region.
|
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\]\]
|
# Remove Friend
|
||||||
{{packet\|name=Remove friend\|description=Sent when a player removes a
|
This packet is sent when a player removes a friend from their friends list.
|
||||||
friend from their friend
|
|
||||||
list.\|opcode=215\|type=Fixed\|length=8\|revision=317}} == Remove Friend
|
|
||||||
==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
list.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Long](/Data-Types.html#common-data-types) | The other players ID. |
|
||||||
\[\[Data Types\#Standard data types\|Long\]\] \| The other players ID.
|
|
||||||
\|- \|}
|
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Remove Ignore
|
||||||
{{packet\|name=Remove ignore\|description=Sent when a player removes
|
This packet is sent when a player removes another player from their ignore list.
|
||||||
another player from their ignore
|
|
||||||
list.\|opcode=74\|type=Fixed\|length=8\|revision=317}} == Remove Ignore
|
|
||||||
==
|
|
||||||
|
|
||||||
=== 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
|
## Packet Structure
|
||||||
ignore list.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
| [Long](/Data-Types.html#common-data-types) | The other players ID. |
|
||||||
\[\[Data Types\#Standard data types\|Long\]\] \| The other players ID.
|
|
||||||
\|- \|}
|
|
||||||
|
@ -1,15 +1,19 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Report Player
|
||||||
{{packet\|name=Report player\|description=Sent when a player reports
|
|
||||||
another player.\|opcode=218\|type=Fixed\|length=8\|revision=317}} ==
|
|
||||||
Report Player ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet is sent when a player reports another player.
|
This packet is sent when a player reports another player.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Long\]\] \| The players name as a
|
| Key | Value |
|
||||||
long. \|- \| \[\[Data Types\#Standard data types\|Byte\]\] \| The rule
|
|--|--|
|
||||||
that's being reported \|- \| \[\[Data Types\#Standard data
|
| Name | Report player |
|
||||||
types\|Byte\]\] \| Mute for 48 hours - Sent as either 1 or 0 for a
|
| Description | Sent when a player reports another player. |
|
||||||
boolean client-side \|}
|
| 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
|
# Reset setting states
|
||||||
setting states\|description=Resets the states for all
|
|
||||||
settings.\|opcode=68\|type=Fixed\|length=0\|revision=317}} == Reset
|
|
||||||
setting states ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet resets the states for all user settings (inc. buttons).
|
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
|
# Reset Camera
|
||||||
camera\|description=Resets the camera
|
|
||||||
position.\|opcode=107\|type=Fixed\|length=0\|revision=317}} == Reset
|
|
||||||
Camera ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
Resets the game's camera position to the client default.
|
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
|
# Reset destination
|
||||||
destination\|description=Resets the player's
|
Sending the packet to the client will make the client reset the player's destination and effectively stop them from walking.
|
||||||
destination.\|opcode=78\|type=Fixed\|length=0\|revision=317}} == Reset
|
|
||||||
destination ==
|
|
||||||
|
|
||||||
=== Description ===
|
## Packet Details
|
||||||
|
| Key | Value |
|
||||||
Sending the packet to the client will make the client reset the player's
|
|--|--|
|
||||||
destination and effectively stop them from walking.
|
| 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
|
# Run Energy
|
||||||
energy\|description=Sends the players run energy
|
|
||||||
level.\|opcode=110\|type=Fixed\|length=1\|revision=317}} == Run Energy
|
|
||||||
==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
Sends how much run energy the player currently has.
|
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
|
## Packet Structure
|
||||||
data types\|Byte\]\] \| The energy level. \|- \|}
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
|
| [Byte](/Data-Types.html#common-data-types) | The energy level. |
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\]
|
# Scroll Position
|
||||||
{{packet\|name=Scroll position\|description=Sets the scrollbar position
|
|
||||||
of an interface.\|opcode=79\|type=Fixed\|length=4\|revision=317}} ==
|
|
||||||
Scroll Position ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet sets the scrollbar position of an interface.
|
This packet sets the scrollbar position of an interface.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Little Endian\|Little Endian\]\] \[\[Data
|
| Key | Value |
|
||||||
Types\#Standard data types\|Short\]\] \| The interface ID. \|- \|
|
|--|--|
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \[\[Data Types\#Non
|
| Name | Scroll position |
|
||||||
Standard data types\|Special A\]\] \| The position of the scrollbar. \|-
|
| 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
|
# Send Skill
|
||||||
Skill\|description=Sends a specific
|
|
||||||
skill\|opcode=154\|type=Fixed\|length=N/A\|revision=317}} == Send Skill
|
|
||||||
==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
This packet sends a specific skill.
|
This packet sends a specific skill.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \| The skill you want to
|
| Key | Value |
|
||||||
send. \|- \| \[\[Data Types\#Standard data types\|Int\]\] \| The
|
|--|--|
|
||||||
experience of that skill. \|- \| \[\[Data Types\#Standard data
|
| Name | Send Skill |
|
||||||
types\|Byte\]\] \| The level of that 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\]\]
|
# Send Add Friend
|
||||||
<h3>
|
|
||||||
[ Description ]{.mw-headline}
|
|
||||||
</h3>
|
|
||||||
<p>
|
|
||||||
Sends friend data to the client
|
Sends friend data to the client
|
||||||
|
|
||||||
Attempts to update player node, if player isn't in the friends list and
|
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.
|
||||||
there is space, the player is added to the friend list.
|
|
||||||
</p>
|
## Packet Structure
|
||||||
<h3>
|
| Data type | Description |
|
||||||
[ Packet Structure ]{.mw-headline}
|
|--|--|
|
||||||
</h3>
|
| [Long](/Data-Types.html#common-data-types) | Player name |
|
||||||
<table border="2">
|
| [Byte](/Data-Types.html#common-data-types) | The world (10 = "online" in world 1, 0 = logged out) |
|
||||||
<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>
|
|
||||||
|
@ -1,22 +1,31 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send
|
# Send ignored users
|
||||||
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 ===
|
|
||||||
|
|
||||||
Sends the IDs of all the users that this player has in their ignore.
|
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.
|
This packet has a slightly different structure than the other packets.
|
||||||
|
|
||||||
int entries = packetSize / 8; for (int i = 0; i \< entries; i++) {
|
```java
|
||||||
ignoreList\[i\] = stream.readLong(); }
|
int entries = packetSize / 8;
|
||||||
|
|
||||||
By looking at the rest of the 317 protocol, there doesn't seem to be a
|
for (int i = 0; i < entries; i++) {
|
||||||
way to change the list dynamically. It seems as though that whenever the
|
ignoreList[i] = stream.readLong();
|
||||||
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). \|- \|}
|
|
||||||
|
@ -1,19 +1,22 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Send
|
# Send Message
|
||||||
message\|description=Sends a server message, trade or duel request to
|
Sends a server side message (e.g. 'Welcome to RuneScape'), or a trade/duel/challenge request.
|
||||||
the client's chat panel.\|opcode=253\|type=Variable
|
|
||||||
Byte\|length=N/A\|revision=317}} == Send Message ==
|
|
||||||
|
|
||||||
=== 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
|
Example: Trading a player called 'mopar': `mopar:tradereq:`.
|
||||||
trade/duel/challenge request.
|
|
||||||
|
|
||||||
The format for sending such requests is: '\[player name\]\[request
|
## Packet Details
|
||||||
type\]'. Where request type can be one of the following: ':duelreq:',
|
| Key | Value |
|
||||||
':chalreq:' or ':tradereq:'. An example for trading the player 'mopar'
|
|--|--|
|
||||||
would be: 'mopar:tradereq:'.
|
| 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 ===
|
## Packet Structure
|
||||||
|
| Data Type | Description |
|
||||||
{\| border=2 ! Data type ! Description \|- \| \[\[RS String\|RS
|
|--|--|
|
||||||
String\]\] \| The message. \|- \|}
|
| [RS String](/RS-String.html) | The message. |
|
||||||
|
@ -1,15 +1,19 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] == Send Private
|
# Send Private Message
|
||||||
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 ===
|
|
||||||
|
|
||||||
Sending a private message to another user on the server.
|
Sending a private message to another user on the server.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Long\]\] \| Player name. \|- \|
|
| Key | Value |
|
||||||
\[\[Data Types\#Standard data types\|Int\]\] \| ? \|- \| \[\[Data
|
|--|--|
|
||||||
Types\#Standard data types\|Byte\]\] \| Player rights. \|- \|}
|
| 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
|
# Send Sidebar Interface
|
||||||
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 ===
|
|
||||||
|
|
||||||
This packet assigns an interface to one of the tabs in the game sidebar.
|
This packet assigns an interface to one of the tabs in the game sidebar.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Short\]\] \| The sidebar ID. \|- \|
|
| Key | Value |
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \[\[Data Types\#Non
|
|--|--|
|
||||||
Standard Data Types\|Special A\]\] \| The interface ID. \|- \|}
|
| 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. {\|
|
## Packet Structure
|
||||||
border=2 ! Value ! Icon ! Norm. ID \|- \| 0 \|\| Attack type \|\| 2433
|
| Data Type | Description |
|
||||||
\|- \| 1 \|\| Stats \|\| 3917 \|- \| 2 \|\| Quests \|\| 638 \|- \| 3
|
|--|--|
|
||||||
\|\| Inventory \|\| 3213 \|- \| 4 \|\| Wearing \|\| 1644 \|- \| 5 \|\|
|
| [Short](/Data-Types.html#common-data-types) | The sidebar ID. |
|
||||||
Prayer \|\| 5608 \|- \| 6 \|\| Magic \|\| 1151 \|- \| 7 \|\| '''EMPTY'''
|
| [Byte](/Data-Types.html#common-data-types) [Special A](/Data-Types.html#bespoke-data-types) | The interface ID. |
|
||||||
\|- \| 8 \|\| Friends list \|\| 5065 \|- \| 9 \|\| Ignore list \|\| 5715
|
|
||||||
\|- \| 10 \|\| Log out \|\| 2449 \|- \| 11 \|\| Settings \|\| 4445 \|-
|
## Values
|
||||||
\| 12 \|\| Emotes \|\| 147 \|- \| 13 \|\| Music \|\| 6299 \|- \|}
|
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
|
# Set Interface Text
|
||||||
interface text\|description=Sets the text for a specified
|
|
||||||
interface\|opcode=126\|type=VARIABLE\_SHORT\|length=N/A\|revision=317}}
|
|
||||||
== Set Interface Text ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
Sets the text for the specific interface.
|
Sets the text for the specific interface.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \|
|
## Packet Details
|
||||||
\[\[Data Types\#Non Standard Data Types\|RS\_String\]\] \| The new text
|
| Key | Value |
|
||||||
for the interface \|- \| \[\[Data Types\#Non Standard Data Types\|Short
|
|--|--|
|
||||||
A\]\] \| The interface id \|- \|}
|
| 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
|
## Packet Structure
|
||||||
color. I refer you to \[\[317 Interface color\|Interface Color\]\] for
|
| Data Type | Description |
|
||||||
the proper way to do so.
|
|--|--|
|
||||||
|
| [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
|
# Show Interface
|
||||||
interface\|description=Displays a normal
|
Displays a normal non-walkable interface.
|
||||||
interface.\|opcode=97\|type=Fixed\|length=2\|revision=317}} == Show
|
|
||||||
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
|
## Packet Structure
|
||||||
given id.
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
=== Packet Structure ===
|
| [Short](/Data-Types.html#common-data-types) | The interface id. |
|
||||||
|
|
||||||
{\| border=2 ! Data type ! Description \|- \| \[\[Data Types\#Standard
|
|
||||||
data types\|Short\]\] \| The interface id. \|- \|}
|
|
||||||
|
@ -1,15 +1,24 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Show
|
# Show multi-combat
|
||||||
multi-combat\|description=Shows the player if they are in a multi-combat
|
Sending this packet to the client will make the client show the player if they are in a multi-combat zone.
|
||||||
zone.\|opcode=61\|type=Fixed\|length=1\|revision=317}} == Show
|
|
||||||
multi-combat ==
|
|
||||||
|
|
||||||
=== Description ===
|
States:
|
||||||
|
|
||||||
Sending this packet to the client will make the client show the player
|
| ID | Name |
|
||||||
if they are in a multi-combat zone.
|
|--|--|
|
||||||
|
| 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
|
## Packet Details
|
||||||
bottom-right. \* 1 - In a multi-combat zone, crossbones in bottom-right.
|
| 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 \|- \|
|
## Packet Structure
|
||||||
\[\[Data Types\#byte\|byte\]\] \| The state. \|- \|}
|
| Data Type | Description |
|
||||||
|
|--|--|
|
||||||
|
| [Byte](/Data-Types.html#common-data-types) | The state. |
|
||||||
|
@ -1,11 +1,17 @@
|
|||||||
\[\[Category Packet\]\] \[\[Category Packet 317\]\] {{packet\|name=Show
|
# Show Tab
|
||||||
Tab\|description=Shows the given
|
|
||||||
tab.\|opcode=106\|type=Fixed\|length=1\|revision=317}} == Show Tab ==
|
|
||||||
|
|
||||||
=== Description ===
|
|
||||||
|
|
||||||
Shows the given tab id.
|
Shows the given tab id.
|
||||||
|
|
||||||
=== Packet Structure === {\|border=2 ! Data Type ! Description \|- \| U
|
## Packet Details
|
||||||
\[\[Data Types\#Standard data types\|Byte\]\] \[\[Data Types\#Non
|
| Key | Value |
|
||||||
Standard Data Types\|Special C\]\] \| Tab ID. \|- \|}
|
|--|--|
|
||||||
|
| 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