Convert to mdbook

This commit is contained in:
Travis Burtrum 2018-07-03 00:31:18 -04:00
parent 3e348c3d67
commit a2d91461cb
394 changed files with 59088 additions and 15079 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
book

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +0,0 @@
[[Category Packet]]
[[Category Packet 194]]
{{packet|name=Clear screen|description=Clears the screen of all open interfaces.|opcode=240|type=Fixed|length=0|revision=194}}
== Clear Screen ==
=== Description ===
Removes all open interfaces from the players screen.

View File

@ -1,8 +0,0 @@
[[Category Packet]]
[[Category Packet 194]]
{{packet|name=Logout|description=Forces the client to logout.|opcode=192|type=Fixed|length=0|revision=194}}
== Send Message ==
=== Description ===
Forces the client to logout cleanly and return to the login screen, without attempting a reconnection.

View File

@ -1,85 +0,0 @@
[[Category Packet]]
[[Category Packet 194]]
[[Category RS2]]
Just in case somebody cares about this.
== '''Packet structure''' ==
?
== '''Login''' ==
?
== '''Game Protocol''' ==
===Server -> Client Packets===
{| border=2
|-
! Opcode
! Type
! Length (bytes)
! Name
! Description
|-
| 137
| FIXED
| 2
| [[194 Show interface|Show interface]]
| Displays a normal interface.
|-
| 164
| VARIABLE_BYTE
| N/A
| [[194 Send message|Send message]]
| Sends a server message (e.g. 'Welcome to RuneScape') or trade/duel request.
|-
| 192
| FIXED
| 0
| [[194 Logout|Logout]]
| Disconnects the client from the server.
|-
| 206
| VARIABLE_BYTE
| N/A
| [[194 Set MIDI|Set MIDI]]
| Sets the current song playing on the client.
|-
| 210
| FIXED
| 3
| [[194 Send sidebar interface|Send sidebar interface]]
| Assigns an interface to one of the tabs in the game sidebar.
|-
| 240
| FIXED
| 0
| [[194 Clear screen|Clear screen]]
| Clears the screen of all open interfaces.
|-
|}
===Client -> Server Packets===
{| border=2
|-
! Opcode
! Type
! Length (bytes)
! Name
! Description
|-
| 54
| VARIABLE_BYTE
| N/A
| Send Chat Message
| Sends a chat message to the server.
|-
| 237
| VARIABLE_BYTE
| N/A
| Send Command
| Sends a command (any message prefixed with ::) to the server.
|-
|}

View File

@ -1,19 +0,0 @@
[[Category Packet]]
[[Category Packet 194]]
{{packet|name=Show interface|description=Displays a normal interface.|opcode=137|type=Fixed|length=2|revision=194}}
== Show interface ==
=== Description ===
Displays a normal interface with the given id.
=== Packet Structure ===
{| border=2
! Data type
! Description
|-
| [[Data Types#Standard data types|Short]]
| The interface id.
|-
|}

File diff suppressed because it is too large Load Diff

View File

@ -1,799 +0,0 @@
[[Category RSC]]
<table border="1" cellpadding="3" cellspacing="3">
<tr><td><b>id</b></td><td><b>npc name</b></td><td><b>level</b></td><td><b>description</b></td><td><b>attackable</b></td></tr>
<tr><td>0</td><td>Unicorn</td><td>21</td><td>It's a unicorn</td><td>X</td></tr>
<tr><td>1</td><td>Bob</td><td>2</td><td>An axe seller</td><td>-</td></tr>
<tr><td>2</td><td>Sheep</td><td>0</td><td>A very wooly sheep</td><td>-</td></tr>
<tr><td>3</td><td>Chicken</td><td>3</td><td>Yep definitely a chicken</td><td>X</td></tr>
<tr><td>4</td><td>Goblin</td><td>13</td><td>An ugly green creature</td><td>X</td></tr>
<tr><td>5</td><td>Hans</td><td>3</td><td>A castle servant</td><td>X</td></tr>
<tr><td>6</td><td>cow</td><td>8</td><td>It's a multi purpose cow</td><td>X</td></tr>
<tr><td>7</td><td>cook</td><td>15</td><td>The head cook of Lumbridge castle</td><td>-</td></tr>
<tr><td>8</td><td>Bear</td><td>24</td><td>Eek! A bear!</td><td>X</td></tr>
<tr><td>9</td><td>Priest</td><td>0</td><td>A priest of Saradomin</td><td>-</td></tr>
<tr><td>10</td><td>Urhney</td><td>8</td><td>He looks a little grumpy</td><td>-</td></tr>
<tr><td>11</td><td>Man</td><td>9</td><td>One of runescapes many citizens</td><td>X</td></tr>
<tr><td>12</td><td>Bartender</td><td>0</td><td>I could get a beer off him</td><td>-</td></tr>
<tr><td>13</td><td>Camel</td><td>0</td><td>Oh its a camel</td><td>-</td></tr>
<tr><td>14</td><td>Gypsy</td><td>0</td><td>An old gypsy lady</td><td>-</td></tr>
<tr><td>15</td><td>Ghost</td><td>12</td><td>Ooh spooky</td><td>-</td></tr>
<tr><td>16</td><td>Sir Prysin</td><td>40</td><td>One of the king's knights</td><td>-</td></tr>
<tr><td>17</td><td>Traiborn the wizard</td><td>12</td><td>An old wizard</td><td>-</td></tr>
<tr><td>18</td><td>Captain Rovin</td><td>51</td><td>The head of the palace guard</td><td>-</td></tr>
<tr><td>19</td><td>Rat</td><td>8</td><td>Overgrown vermin</td><td>X</td></tr>
<tr><td>20</td><td>Reldo</td><td>12</td><td>I think he's the librarian</td><td>-</td></tr>
<tr><td>21</td><td>mugger</td><td>10</td><td>He jumps out and attacks people</td><td>X</td></tr>
<tr><td>22</td><td>Lesser Demon</td><td>79</td><td>Lesser but still pretty big</td><td>X</td></tr>
<tr><td>23</td><td>Giant Spider</td><td>8</td><td>I think this spider has been genetically modified</td><td>X</td></tr>
<tr><td>24</td><td>Man</td><td>30</td><td>A shifty looking man</td><td>-</td></tr>
<tr><td>25</td><td>Jonny the beard</td><td>10</td><td>I can see why he's called the beard</td><td>X</td></tr>
<tr><td>26</td><td>Baraek</td><td>30</td><td>A fur trader</td><td>-</td></tr>
<tr><td>27</td><td>Katrine</td><td>25</td><td>She doesn't look to friendly</td><td>-</td></tr>
<tr><td>28</td><td>Tramp</td><td>7</td><td>A scruffy looking chap</td><td>-</td></tr>
<tr><td>29</td><td>Rat</td><td>2</td><td>A small muddy rat</td><td>X</td></tr>
<tr><td>30</td><td>Romeo</td><td>45</td><td>He looks mildly confused</td><td>-</td></tr>
<tr><td>31</td><td>Juliet</td><td>2</td><td>She looks a little stressed</td><td>-</td></tr>
<tr><td>32</td><td>Father Lawrence</td><td>0</td><td>A kindly looking priest</td><td>-</td></tr>
<tr><td>33</td><td>Apothecary</td><td>6</td><td>I wonder if he has any good potions</td><td>-</td></tr>
<tr><td>34</td><td>spider</td><td>2</td><td>Incey wincey</td><td>X</td></tr>
<tr><td>35</td><td>Delrith</td><td>30</td><td>A freshly summoned demon</td><td>X</td></tr>
<tr><td>36</td><td>Veronica</td><td>2</td><td>She doesn't look too happy</td><td>-</td></tr>
<tr><td>37</td><td>Weaponsmaster</td><td>25</td><td>The phoenix gang quartermaster</td><td>X</td></tr>
<tr><td>38</td><td>Professor Oddenstein</td><td>4</td><td>A mad scientist if I ever saw one</td><td>-</td></tr>
<tr><td>39</td><td>Curator</td><td>2</td><td>He looks like he's daydreaming</td><td>-</td></tr>
<tr><td>40</td><td>skeleton</td><td>21</td><td>It rattles as it walks</td><td>X</td></tr>
<tr><td>41</td><td>zombie</td><td>24</td><td>The living dead</td><td>X</td></tr>
<tr><td>42</td><td>king</td><td>30</td><td>King Roald the VIII</td><td>-</td></tr>
<tr><td>43</td><td>Giant bat</td><td>32</td><td>An angry flying rodent</td><td>X</td></tr>
<tr><td>44</td><td>Bartender</td><td>0</td><td>A friendly barman</td><td>-</td></tr>
<tr><td>45</td><td>skeleton</td><td>31</td><td>It rattles as it walks</td><td>X</td></tr>
<tr><td>46</td><td>skeleton</td><td>25</td><td>It rattles as it walks</td><td>X</td></tr>
<tr><td>47</td><td>Rat</td><td>13</td><td>overgrown vermin</td><td>X</td></tr>
<tr><td>48</td><td>Horvik the Armourer</td><td>16</td><td>He looks strong</td><td>-</td></tr>
<tr><td>49</td><td>Bear</td><td>0</td><td>A bear</td><td>-</td></tr>
<tr><td>50</td><td>skeleton</td><td>19</td><td>It rattles when it walks</td><td>X</td></tr>
<tr><td>51</td><td>Shopkeeper</td><td>0</td><td>Maybe he'd like to buy some of my junk</td><td>-</td></tr>
<tr><td>52</td><td>zombie</td><td>19</td><td>The living dead</td><td>X</td></tr>
<tr><td>53</td><td>Ghost</td><td>25</td><td>Ooh spooky</td><td>X</td></tr>
<tr><td>54</td><td>Aubury</td><td>0</td><td>I think he might be a shop keeper</td><td>-</td></tr>
<tr><td>55</td><td>Shopkeeper</td><td>0</td><td>I wonder what he's got for sale</td><td>-</td></tr>
<tr><td>56</td><td>shopkeeper</td><td>0</td><td>I can buy swords off him</td><td>-</td></tr>
<tr><td>57</td><td>Darkwizard</td><td>13</td><td>He works evil magic</td><td>X</td></tr>
<tr><td>58</td><td>lowe</td><td>0</td><td>The owner of the archery store</td><td>-</td></tr>
<tr><td>59</td><td>Thessalia</td><td>0</td><td>A young shop assistant</td><td>-</td></tr>
<tr><td>60</td><td>Darkwizard</td><td>25</td><td>He works evil magic</td><td>X</td></tr>
<tr><td>61</td><td>Giant</td><td>37</td><td>A very large foe</td><td>X</td></tr>
<tr><td>62</td><td>Goblin</td><td>7</td><td>An ugly green creature</td><td>X</td></tr>
<tr><td>63</td><td>farmer</td><td>15</td><td>He grows the crops in this area</td><td>X</td></tr>
<tr><td>64</td><td>Thief</td><td>21</td><td>He'll take anything that isn't nailed down</td><td>X</td></tr>
<tr><td>65</td><td>Guard</td><td>28</td><td>He tries to keep order around here</td><td>X</td></tr>
<tr><td>66</td><td>Black Knight</td><td>46</td><td>A sinister looking knight</td><td>X</td></tr>
<tr><td>67</td><td>Hobgoblin</td><td>32</td><td>A large ugly green creature</td><td>X</td></tr>
<tr><td>68</td><td>zombie</td><td>32</td><td>The living dead</td><td>X</td></tr>
<tr><td>69</td><td>Zaff</td><td>0</td><td>He trades in staffs</td><td>-</td></tr>
<tr><td>70</td><td>Scorpion</td><td>21</td><td>An extremely vicious scorpion</td><td>X</td></tr>
<tr><td>71</td><td>silk trader</td><td>0</td><td>He sells silk</td><td>-</td></tr>
<tr><td>72</td><td>Man</td><td>9</td><td>One of Runescapes many citizens</td><td>X</td></tr>
<tr><td>73</td><td>Guide</td><td>1</td><td>He gives hints to new adventurers</td><td>-</td></tr>
<tr><td>74</td><td>Giant Spider</td><td>31</td><td>I think this spider has been genetically modified</td><td>X</td></tr>
<tr><td>75</td><td>Peksa</td><td>9</td><td>A helmet salesman</td><td>-</td></tr>
<tr><td>76</td><td>Barbarian</td><td>16</td><td>Not civilised looking</td><td>X</td></tr>
<tr><td>77</td><td>Fred the farmer</td><td>9</td><td>An old farmer</td><td>-</td></tr>
<tr><td>78</td><td>Gunthor the Brave</td><td>37</td><td>The barbarians fearless leader</td><td>X</td></tr>
<tr><td>79</td><td>Witch</td><td>25</td><td>She's got warts</td><td>X</td></tr>
<tr><td>80</td><td>Ghost</td><td>25</td><td>Ooh spooky</td><td>X</td></tr>
<tr><td>81</td><td>Wizard</td><td>16</td><td>An old wizard</td><td>X</td></tr>
<tr><td>82</td><td>Shop Assistant</td><td>0</td><td>Maybe he'd like to buy some of my junk</td><td>-</td></tr>
<tr><td>83</td><td>Shop Assistant</td><td>0</td><td>Maybe he'd like to buy some of my junk</td><td>-</td></tr>
<tr><td>84</td><td>Zeke</td><td>0</td><td>He sells Scimitars</td><td>-</td></tr>
<tr><td>85</td><td>Louie Legs</td><td>0</td><td>He might want to sell something</td><td>-</td></tr>
<tr><td>86</td><td>Warrior</td><td>18</td><td>A member of Al Kharid's military</td><td>X</td></tr>
<tr><td>87</td><td>Shopkeeper</td><td>0</td><td>I wonder what he's got for sale</td><td>-</td></tr>
<tr><td>88</td><td>Shop Assistant</td><td>0</td><td>Maybe she'd like to buy some of my junk</td><td>-</td></tr>
<tr><td>89</td><td>Highwayman</td><td>13</td><td>He holds up passers by</td><td>X</td></tr>
<tr><td>90</td><td>Kebab Seller</td><td>0</td><td>A seller of strange food</td><td>-</td></tr>
<tr><td>91</td><td>Chicken</td><td>3</td><td>Yep definitely a chicken</td><td>-</td></tr>
<tr><td>92</td><td>Ernest</td><td>3</td><td>A former chicken</td><td>-</td></tr>
<tr><td>93</td><td>Monk</td><td>13</td><td>A Peaceful monk</td><td>X</td></tr>
<tr><td>94</td><td>Dwarf</td><td>18</td><td>A short angry guy</td><td>X</td></tr>
<tr><td>95</td><td>Banker</td><td>9</td><td>He can look after my money</td><td>-</td></tr>
<tr><td>96</td><td>Count Draynor</td><td>43</td><td>A vicious vampire</td><td>X</td></tr>
<tr><td>97</td><td>Morgan</td><td>9</td><td>A frigtened villager</td><td>-</td></tr>
<tr><td>98</td><td>Dr Harlow</td><td>9</td><td>His nose is very red</td><td>-</td></tr>
<tr><td>99</td><td>Deadly Red spider</td><td>36</td><td>I think this spider has been genetically modified</td><td>X</td></tr>
<tr><td>100</td><td>Guard</td><td>28</td><td>He's here to guard this fortress</td><td>X</td></tr>
<tr><td>101</td><td>Cassie</td><td>25</td><td>She sells shields</td><td>-</td></tr>
<tr><td>102</td><td>White Knight</td><td>56</td><td>A chivalrous knight</td><td>X</td></tr>
<tr><td>103</td><td>Ranael</td><td>25</td><td>A shopkeeper of some sort</td><td>-</td></tr>
<tr><td>104</td><td>Moss Giant</td><td>62</td><td>his beard seems to have a life of its own</td><td>X</td></tr>
<tr><td>105</td><td>Shopkeeper</td><td>0</td><td>I wonder what he's got for sale</td><td>-</td></tr>
<tr><td>106</td><td>Shop Assistant</td><td>0</td><td>Maybe he'd like to buy some of my junk</td><td>-</td></tr>
<tr><td>107</td><td>Witch</td><td>25</td><td>She's got warts</td><td>-</td></tr>
<tr><td>108</td><td>Black Knight</td><td>46</td><td>A sinister looking knight</td><td>X</td></tr>
<tr><td>109</td><td>Greldo</td><td>7</td><td>A small green warty creature</td><td>X</td></tr>
<tr><td>110</td><td>Sir Amik Varze</td><td>56</td><td>The leader of the white knights</td><td>-</td></tr>
<tr><td>111</td><td>Guildmaster</td><td>40</td><td>He's in charge of this place</td><td>-</td></tr>
<tr><td>112</td><td>Valaine</td><td>25</td><td>She runs the champion's store</td><td>-</td></tr>
<tr><td>113</td><td>Drogo</td><td>18</td><td>He runs a mining store</td><td>-</td></tr>
<tr><td>114</td><td>Imp</td><td>5</td><td>A cheeky little imp</td><td>X</td></tr>
<tr><td>115</td><td>Flynn</td><td>16</td><td>The mace salesman</td><td>-</td></tr>
<tr><td>116</td><td>Wyson the gardener</td><td>8</td><td>An old gardener</td><td>-</td></tr>
<tr><td>117</td><td>Wizard Mizgog</td><td>12</td><td>An old wizard</td><td>-</td></tr>
<tr><td>118</td><td>Prince Ali</td><td>20</td><td>A young prince</td><td>-</td></tr>
<tr><td>119</td><td>Hassan</td><td>20</td><td>the Chancellor to the emir</td><td>-</td></tr>
<tr><td>120</td><td>Osman</td><td>20</td><td>He looks a little shifty</td><td>-</td></tr>
<tr><td>121</td><td>Joe</td><td>40</td><td>Lady Keli's head guard</td><td>-</td></tr>
<tr><td>122</td><td>Leela</td><td>20</td><td>She comes from Al Kharid</td><td>-</td></tr>
<tr><td>123</td><td>Lady Keli</td><td>20</td><td>An Infamous bandit</td><td>-</td></tr>
<tr><td>124</td><td>Ned</td><td>20</td><td>An old sailor</td><td>-</td></tr>
<tr><td>125</td><td>Aggie</td><td>25</td><td>A witch</td><td>-</td></tr>
<tr><td>126</td><td>Prince Ali</td><td>10</td><td>That is an effective disguise</td><td>-</td></tr>
<tr><td>127</td><td>Jailguard</td><td>34</td><td>I wonder what he's guarding</td><td>X</td></tr>
<tr><td>128</td><td>Redbeard Frank</td><td>25</td><td>A pirate</td><td>-</td></tr>
<tr><td>129</td><td>Wydin</td><td>0</td><td>A grocer</td><td>-</td></tr>
<tr><td>130</td><td>shop assistant</td><td>0</td><td>I can buy swords off him</td><td>-</td></tr>
<tr><td>131</td><td>Brian</td><td>0</td><td>An axe seller</td><td>-</td></tr>
<tr><td>132</td><td>squire</td><td>0</td><td>A young squire</td><td>-</td></tr>
<tr><td>133</td><td>Head chef</td><td>15</td><td>He looks after the chef's guild</td><td>-</td></tr>
<tr><td>134</td><td>Thurgo</td><td>18</td><td>A short angry guy</td><td>-</td></tr>
<tr><td>135</td><td>Ice Giant</td><td>68</td><td>He's got icicles in his beard</td><td>X</td></tr>
<tr><td>136</td><td>King Scorpion</td><td>36</td><td>Wow scorpions shouldn't grow that big</td><td>X</td></tr>
<tr><td>137</td><td>Pirate</td><td>27</td><td>A vicious pirate</td><td>X</td></tr>
<tr><td>138</td><td>Sir Vyvin</td><td>56</td><td>One of the white knights of Falador</td><td>-</td></tr>
<tr><td>139</td><td>Monk of Zamorak</td><td>29</td><td>An evil cleric</td><td>X</td></tr>
<tr><td>140</td><td>Monk of Zamorak</td><td>19</td><td>An evil cleric</td><td>X</td></tr>
<tr><td>141</td><td>Wayne</td><td>16</td><td>An armourer</td><td>-</td></tr>
<tr><td>142</td><td>Barmaid</td><td>25</td><td>a pretty barmaid</td><td>-</td></tr>
<tr><td>143</td><td>Dwarven shopkeeper</td><td>18</td><td>I wonder if he wants to buy any of my junk</td><td>-</td></tr>
<tr><td>144</td><td>Doric</td><td>18</td><td>A dwarven smith</td><td>-</td></tr>
<tr><td>145</td><td>Shopkeeper</td><td>0</td><td>I wonder what he's got for sale</td><td>-</td></tr>
<tr><td>146</td><td>Shop Assistant</td><td>0</td><td>Maybe he'd like to buy some of my junk</td><td>-</td></tr>
<tr><td>147</td><td>Guide</td><td>1</td><td>She gives hints to new adventurers</td><td>-</td></tr>
<tr><td>148</td><td>Hetty</td><td>25</td><td>A witch</td><td>-</td></tr>
<tr><td>149</td><td>Betty</td><td>25</td><td>A witch</td><td>-</td></tr>
<tr><td>150</td><td>Bartender</td><td>0</td><td>I could get a beer off him</td><td>-</td></tr>
<tr><td>151</td><td>General wartface</td><td>13</td><td>An ugly green creature</td><td>-</td></tr>
<tr><td>152</td><td>General Bentnoze</td><td>13</td><td>An ugly green creature</td><td>-</td></tr>
<tr><td>153</td><td>Goblin</td><td>13</td><td>An ugly green creature</td><td>X</td></tr>
<tr><td>154</td><td>Goblin</td><td>13</td><td>An ugly green creature</td><td>X</td></tr>
<tr><td>155</td><td>Herquin</td><td>0</td><td>A gem merchant</td><td>-</td></tr>
<tr><td>156</td><td>Rommik</td><td>0</td><td>The owner of the crafting shop</td><td>-</td></tr>
<tr><td>157</td><td>Grum</td><td>0</td><td>Grum the goldsmith</td><td>-</td></tr>
<tr><td>158</td><td>Ice warrior</td><td>57</td><td>A strange inhuman warrior</td><td>X</td></tr>
<tr><td>159</td><td>Warrior</td><td>27</td><td>A skilled fighter</td><td>X</td></tr>
<tr><td>160</td><td>Thrander</td><td>16</td><td>A smith of some sort</td><td>-</td></tr>
<tr><td>161</td><td>Border Guard</td><td>18</td><td>a guard from Al Kharid</td><td>-</td></tr>
<tr><td>162</td><td>Border Guard</td><td>18</td><td>a guard from Al Kharid</td><td>-</td></tr>
<tr><td>163</td><td>Customs Officer</td><td>16</td><td>She is here to stop smugglers</td><td>-</td></tr>
<tr><td>164</td><td>Luthas</td><td>16</td><td>The owner of the banana plantation</td><td>-</td></tr>
<tr><td>165</td><td>Zambo</td><td>16</td><td>He will sell me exotic rum</td><td>-</td></tr>
<tr><td>166</td><td>Captain Tobias</td><td>20</td><td>An old sailor</td><td>-</td></tr>
<tr><td>167</td><td>Gerrant</td><td>0</td><td>I wonder what he's got for sale</td><td>-</td></tr>
<tr><td>168</td><td>Shopkeeper</td><td>0</td><td>I wonder what he's got for sale</td><td>-</td></tr>
<tr><td>169</td><td>Shop Assistant</td><td>0</td><td>Maybe he'd like to buy some of my junk</td><td>-</td></tr>
<tr><td>170</td><td>Seaman Lorris</td><td>20</td><td>A young sailor</td><td>-</td></tr>
<tr><td>171</td><td>Seaman Thresnor</td><td>20</td><td>A young sailor</td><td>-</td></tr>
<tr><td>172</td><td>Tanner</td><td>45</td><td>He makes leather</td><td>-</td></tr>
<tr><td>173</td><td>Dommik</td><td>0</td><td>The owner of the crafting shop</td><td>-</td></tr>
<tr><td>174</td><td>Abbot Langley</td><td>13</td><td>A Peaceful monk</td><td>-</td></tr>
<tr><td>175</td><td>Thordur</td><td>18</td><td>He runs a a tourist attraction</td><td>-</td></tr>
<tr><td>176</td><td>Brother Jered</td><td>13</td><td>human</td><td>-</td></tr>
<tr><td>177</td><td>Rat</td><td>13</td><td>Overgrown vermin</td><td>X</td></tr>
<tr><td>178</td><td>Ghost</td><td>25</td><td>Ooh spooky</td><td>X</td></tr>
<tr><td>179</td><td>skeleton</td><td>31</td><td>it rattles when it walks</td><td>X</td></tr>
<tr><td>180</td><td>zombie</td><td>32</td><td>the living dead</td><td>X</td></tr>
<tr><td>181</td><td>Lesser Demon</td><td>79</td><td>Lesser but still very big</td><td>X</td></tr>
<tr><td>182</td><td>Melzar the mad</td><td>45</td><td>He looks totally insane</td><td>X</td></tr>
<tr><td>183</td><td>Scavvo</td><td>10</td><td>He has lopsided eyes</td><td>-</td></tr>
<tr><td>184</td><td>Greater Demon</td><td>87</td><td>big red and incredibly evil</td><td>X</td></tr>
<tr><td>185</td><td>Shopkeeper</td><td>0</td><td>I wonder what he's got for sale</td><td>-</td></tr>
<tr><td>186</td><td>Shop Assistant</td><td>0</td><td>Maybe he'd like to buy some of my junk</td><td>-</td></tr>
<tr><td>187</td><td>Oziach</td><td>0</td><td>A strange little man</td><td>-</td></tr>
<tr><td>188</td><td>Bear</td><td>26</td><td>Eek! A bear!</td><td>X</td></tr>
<tr><td>189</td><td>Black Knight</td><td>46</td><td>An armoured follower of Zamorak</td><td>X</td></tr>
<tr><td>190</td><td>chaos Dwarf</td><td>59</td><td>a dwarf gone bad</td><td>X</td></tr>
<tr><td>191</td><td>dwarf</td><td>18</td><td>A dwarf who looks after the mining guild</td><td>-</td></tr>
<tr><td>192</td><td>Wormbrain</td><td>7</td><td>Dumb even by goblin standards</td><td>X</td></tr>
<tr><td>193</td><td>Klarense</td><td>20</td><td>A young sailor</td><td>-</td></tr>
<tr><td>194</td><td>Ned</td><td>20</td><td>An old sailor</td><td>-</td></tr>
<tr><td>195</td><td>skeleton</td><td>54</td><td>A Taller than normal skeleton</td><td>X</td></tr>
<tr><td>196</td><td>Dragon</td><td>110</td><td>A powerful and ancient dragon</td><td>X</td></tr>
<tr><td>197</td><td>Oracle</td><td>57</td><td>A mystic of unknown race</td><td>-</td></tr>
<tr><td>198</td><td>Duke of Lumbridge</td><td>30</td><td>Duke Horacio of Lumbridge</td><td>-</td></tr>
<tr><td>199</td><td>Dark Warrior</td><td>21</td><td>A warrior touched by chaos</td><td>X</td></tr>
<tr><td>200</td><td>Druid</td><td>29</td><td>A worshipper of Guthix</td><td>X</td></tr>
<tr><td>201</td><td>Red Dragon</td><td>140</td><td>A big powerful dragon</td><td>X</td></tr>
<tr><td>202</td><td>Blue Dragon</td><td>105</td><td>A mother dragon</td><td>X</td></tr>
<tr><td>203</td><td>Baby Blue Dragon</td><td>50</td><td>Young but still dangerous</td><td>X</td></tr>
<tr><td>204</td><td>Kaqemeex</td><td>29</td><td>A wise druid</td><td>-</td></tr>
<tr><td>205</td><td>Sanfew</td><td>29</td><td>An old druid</td><td>-</td></tr>
<tr><td>206</td><td>Suit of armour</td><td>29</td><td>A dusty old suit of armour</td><td>-</td></tr>
<tr><td>207</td><td>Adventurer</td><td>13</td><td>A cleric</td><td>-</td></tr>
<tr><td>208</td><td>Adventurer</td><td>12</td><td>A wizard</td><td>-</td></tr>
<tr><td>209</td><td>Adventurer</td><td>56</td><td>A Warrior</td><td>-</td></tr>
<tr><td>210</td><td>Adventurer</td><td>25</td><td>An archer</td><td>-</td></tr>
<tr><td>211</td><td>Leprechaun</td><td>18</td><td>A funny little man who lives in a tree</td><td>-</td></tr>
<tr><td>212</td><td>Monk of entrana</td><td>13</td><td>A Peaceful monk</td><td>-</td></tr>
<tr><td>213</td><td>Monk of entrana</td><td>13</td><td>A Peaceful monk</td><td>-</td></tr>
<tr><td>214</td><td>zombie</td><td>32</td><td>The living dead</td><td>X</td></tr>
<tr><td>215</td><td>Monk of entrana</td><td>13</td><td>A Peaceful monk</td><td>-</td></tr>
<tr><td>216</td><td>tree spirit</td><td>95</td><td>Ooh spooky</td><td>X</td></tr>
<tr><td>217</td><td>cow</td><td>8</td><td>It's a dairy cow</td><td>-</td></tr>
<tr><td>218</td><td>Irksol</td><td>2</td><td>Is he invisible or just a set of floating clothes?</td><td>-</td></tr>
<tr><td>219</td><td>Fairy Lunderwin</td><td>2</td><td>A fairy merchant</td><td>-</td></tr>
<tr><td>220</td><td>Jakut</td><td>2</td><td>An unusual looking merchant</td><td>-</td></tr>
<tr><td>221</td><td>Doorman</td><td>56</td><td>He guards the entrance to the faerie market</td><td>-</td></tr>
<tr><td>222</td><td>Fairy Shopkeeper</td><td>0</td><td>I wonder what he's got for sale</td><td>-</td></tr>
<tr><td>223</td><td>Fairy Shop Assistant</td><td>0</td><td>Maybe he'd like to buy some of my junk</td><td>-</td></tr>
<tr><td>224</td><td>Fairy banker</td><td>9</td><td>He can look after my money</td><td>-</td></tr>
<tr><td>225</td><td>Giles</td><td>30</td><td>He runs an ore exchange store</td><td>-</td></tr>
<tr><td>226</td><td>Miles</td><td>30</td><td>He runs a bar exchange store</td><td>-</td></tr>
<tr><td>227</td><td>Niles</td><td>30</td><td>He runs a fish exchange store</td><td>-</td></tr>
<tr><td>228</td><td>Gaius</td><td>16</td><td>he sells very big swords</td><td>-</td></tr>
<tr><td>229</td><td>Fairy Ladder attendant</td><td>0</td><td>A worker in the faerie market</td><td>-</td></tr>
<tr><td>230</td><td>Jatix</td><td>29</td><td>A hard working druid</td><td>-</td></tr>
<tr><td>231</td><td>Master Crafter</td><td>0</td><td>The man in charge of the crafter's guild</td><td>-</td></tr>
<tr><td>232</td><td>Bandit</td><td>29</td><td>He's ready for a fight</td><td>X</td></tr>
<tr><td>233</td><td>Noterazzo</td><td>29</td><td>A bandit shopkeeper</td><td>-</td></tr>
<tr><td>234</td><td>Bandit</td><td>29</td><td>A wilderness outlaw</td><td>X</td></tr>
<tr><td>235</td><td>Fat Tony</td><td>15</td><td>A Gourmet Pizza chef</td><td>-</td></tr>
<tr><td>236</td><td>Donny the lad</td><td>39</td><td>A bandit leader</td><td>X</td></tr>
<tr><td>237</td><td>Black Heather</td><td>39</td><td>A bandit leader</td><td>X</td></tr>
<tr><td>238</td><td>Speedy Keith</td><td>39</td><td>A bandit leader</td><td>X</td></tr>
<tr><td>239</td><td>White wolf sentry</td><td>31</td><td>A vicious mountain wolf</td><td>X</td></tr>
<tr><td>240</td><td>Boy</td><td>39</td><td>He doesn't seem very happy</td><td>-</td></tr>
<tr><td>241</td><td>Rat</td><td>2</td><td>He seems to live here</td><td>-</td></tr>
<tr><td>242</td><td>Nora T Hag</td><td>25</td><td>She's got warts</td><td>-</td></tr>
<tr><td>243</td><td>Grey wolf</td><td>64</td><td>A sinister looking wolf</td><td>X</td></tr>
<tr><td>244</td><td>shapeshifter</td><td>24</td><td>I've not seen anyone like this before</td><td>X</td></tr>
<tr><td>245</td><td>shapeshifter</td><td>34</td><td>I think this spider has been genetically modified</td><td>-</td></tr>
<tr><td>246</td><td>shapeshifter</td><td>44</td><td>Eek! A bear!</td><td>-</td></tr>
<tr><td>247</td><td>shapeshifter</td><td>54</td><td>A sinister looking wolf</td><td>-</td></tr>
<tr><td>248</td><td>White wolf</td><td>41</td><td>A vicious mountain wolf</td><td>X</td></tr>
<tr><td>249</td><td>Pack leader</td><td>71</td><td>A vicious mountain wolf</td><td>X</td></tr>
<tr><td>250</td><td>Harry</td><td>0</td><td>I wonder what he's got for sale</td><td>-</td></tr>
<tr><td>251</td><td>Thug</td><td>18</td><td>He likes hitting things</td><td>X</td></tr>
<tr><td>252</td><td>Firebird</td><td>6</td><td>Probably not a chicken</td><td>X</td></tr>
<tr><td>253</td><td>Achetties</td><td>46</td><td>One of Asgarnia's greatest heros</td><td>-</td></tr>
<tr><td>254</td><td>Ice queen</td><td>103</td><td>The leader of the ice warriors</td><td>X</td></tr>
<tr><td>255</td><td>Grubor</td><td>15</td><td>A rough looking thief</td><td>-</td></tr>
<tr><td>256</td><td>Trobert</td><td>13</td><td>A well dressed thief</td><td>-</td></tr>
<tr><td>257</td><td>Garv</td><td>28</td><td>A diligent guard</td><td>-</td></tr>
<tr><td>258</td><td>guard</td><td>27</td><td>A vicious pirate</td><td>-</td></tr>
<tr><td>259</td><td>Grip</td><td>46</td><td>Scar face petes head guard</td><td>X</td></tr>
<tr><td>260</td><td>Alfonse the waiter</td><td>9</td><td>He should get a clean apron</td><td>-</td></tr>
<tr><td>261</td><td>Charlie the cook</td><td>15</td><td>Head cook of the Shrimp and parrot</td><td>-</td></tr>
<tr><td>262</td><td>Guard Dog</td><td>46</td><td>He doesn't seem pleased to see me</td><td>X</td></tr>
<tr><td>263</td><td>Ice spider</td><td>64</td><td>I think this spider has been genetically modified</td><td>X</td></tr>
<tr><td>264</td><td>Pirate</td><td>30</td><td>A vicious pirate</td><td>X</td></tr>
<tr><td>265</td><td>Jailer</td><td>51</td><td>Guards prisoners for the black knights</td><td>X</td></tr>
<tr><td>266</td><td>Lord Darquarius</td><td>76</td><td>A black knight commander</td><td>X</td></tr>
<tr><td>267</td><td>Seth</td><td>30</td><td>He runs a fish exchange store</td><td>-</td></tr>
<tr><td>268</td><td>Banker</td><td>9</td><td>He can look after my money</td><td>-</td></tr>
<tr><td>269</td><td>Helemos</td><td>46</td><td>A retired hero</td><td>-</td></tr>
<tr><td>270</td><td>Chaos Druid</td><td>19</td><td>A crazy evil druid</td><td>X</td></tr>
<tr><td>271</td><td>Poison Scorpion</td><td>26</td><td>It has a very vicious looking tail</td><td>X</td></tr>
<tr><td>272</td><td>Velrak the explorer</td><td>3</td><td>he looks cold and hungry</td><td>-</td></tr>
<tr><td>273</td><td>Sir Lancelot</td><td>56</td><td>A knight of the round table</td><td>-</td></tr>
<tr><td>274</td><td>Sir Gawain</td><td>56</td><td>A knight of the round table</td><td>-</td></tr>
<tr><td>275</td><td>King Arthur</td><td>56</td><td>A wise old king</td><td>-</td></tr>
<tr><td>276</td><td>Sir Mordred</td><td>58</td><td>An evil knight</td><td>X</td></tr>
<tr><td>277</td><td>Renegade knight</td><td>51</td><td>He isn't very friendly</td><td>X</td></tr>
<tr><td>278</td><td>Davon</td><td>27</td><td>An amulet trader</td><td>-</td></tr>
<tr><td>279</td><td>Bartender</td><td>0</td><td>I could get some grog off him</td><td>-</td></tr>
<tr><td>280</td><td>Arhein</td><td>0</td><td>A merchant</td><td>-</td></tr>
<tr><td>281</td><td>Morgan le faye</td><td>25</td><td>An evil sorceress</td><td>-</td></tr>
<tr><td>282</td><td>Candlemaker</td><td>16</td><td>He makes and sells candles</td><td>-</td></tr>
<tr><td>283</td><td>lady</td><td>0</td><td>She has a hint of magic about her</td><td>-</td></tr>
<tr><td>284</td><td>lady</td><td>0</td><td>She has a hint of magic about her</td><td>-</td></tr>
<tr><td>285</td><td>lady</td><td>0</td><td>She has a hint of magic about her</td><td>-</td></tr>
<tr><td>286</td><td>Beggar</td><td>7</td><td>A scruffy looking chap</td><td>-</td></tr>
<tr><td>287</td><td>Merlin</td><td>12</td><td>An old wizard</td><td>-</td></tr>
<tr><td>288</td><td>Thrantax</td><td>90</td><td>A freshly summoned demon</td><td>-</td></tr>
<tr><td>289</td><td>Hickton</td><td>0</td><td>The owner of the archery store</td><td>-</td></tr>
<tr><td>290</td><td>Black Demon</td><td>156</td><td>A big scary jet black demon</td><td>X</td></tr>
<tr><td>291</td><td>Black Dragon</td><td>200</td><td>A fierce dragon with black scales!</td><td>X</td></tr>
<tr><td>292</td><td>Poison Spider</td><td>63</td><td>I think this spider has been genetically modified</td><td>X</td></tr>
<tr><td>293</td><td>Monk of Zamorak</td><td>47</td><td>An evil cleric</td><td>X</td></tr>
<tr><td>294</td><td>Hellhound</td><td>114</td><td>Hello nice doggy</td><td>X</td></tr>
<tr><td>295</td><td>Animated axe</td><td>46</td><td>a magic axe with a mind of it's own</td><td>X</td></tr>
<tr><td>296</td><td>Black Unicorn</td><td>31</td><td>It's a sort of unicorn</td><td>X</td></tr>
<tr><td>297</td><td>Frincos</td><td>13</td><td>A Peaceful monk</td><td>-</td></tr>
<tr><td>298</td><td>Otherworldly being</td><td>66</td><td>Is he invisible or just a set of floating clothes?</td><td>X</td></tr>
<tr><td>299</td><td>Owen</td><td>30</td><td>He runs a fish exchange store</td><td>-</td></tr>
<tr><td>300</td><td>Thormac the sorceror</td><td>25</td><td>A powerful sorcerrer</td><td>-</td></tr>
<tr><td>301</td><td>Seer</td><td>16</td><td>An old wizard</td><td>-</td></tr>
<tr><td>302</td><td>Kharid Scorpion</td><td>21</td><td>a smaller less dangerous scorpion</td><td>-</td></tr>
<tr><td>303</td><td>Kharid Scorpion</td><td>21</td><td>a smaller less dangerous scorpion</td><td>-</td></tr>
<tr><td>304</td><td>Kharid Scorpion</td><td>21</td><td>a smaller less dangerous scorpion</td><td>-</td></tr>
<tr><td>305</td><td>Barbarian guard</td><td>16</td><td>Not very civilised</td><td>-</td></tr>
<tr><td>306</td><td>Bartender</td><td>0</td><td>I could get a beer off him</td><td>-</td></tr>
<tr><td>307</td><td>man</td><td>9</td><td>A well dressed nobleman</td><td>-</td></tr>
<tr><td>308</td><td>gem trader</td><td>0</td><td>He sells gems</td><td>-</td></tr>
<tr><td>309</td><td>Dimintheis</td><td>9</td><td>A well dressed nobleman</td><td>-</td></tr>
<tr><td>310</td><td>chef</td><td>15</td><td>A busy looking chef</td><td>-</td></tr>
<tr><td>311</td><td>Hobgoblin</td><td>48</td><td>An ugly green creature</td><td>X</td></tr>
<tr><td>312</td><td>Ogre</td><td>58</td><td>A large dim looking humanoid</td><td>X</td></tr>
<tr><td>313</td><td>Boot the Dwarf</td><td>18</td><td>A short angry guy</td><td>-</td></tr>
<tr><td>314</td><td>Wizard</td><td>16</td><td>A young wizard</td><td>-</td></tr>
<tr><td>315</td><td>Chronozon</td><td>121</td><td>Chronozon the blood demon</td><td>X</td></tr>
<tr><td>316</td><td>Captain Barnaby</td><td>20</td><td>An old sailor</td><td>-</td></tr>
<tr><td>317</td><td>Customs Official</td><td>16</td><td>She's here to stop smugglers</td><td>-</td></tr>
<tr><td>318</td><td>Man</td><td>9</td><td>One of Runescape's citizens</td><td>X</td></tr>
<tr><td>319</td><td>farmer</td><td>15</td><td>An humble peasant</td><td>X</td></tr>
<tr><td>320</td><td>Warrior</td><td>27</td><td>A skilled fighter</td><td>X</td></tr>
<tr><td>321</td><td>Guard</td><td>28</td><td>He tries to keep the law and order around here</td><td>X</td></tr>
<tr><td>322</td><td>Knight</td><td>56</td><td>A knight of Ardougne</td><td>X</td></tr>
<tr><td>323</td><td>Paladin</td><td>71</td><td>A paladin of Ardougne</td><td>X</td></tr>
<tr><td>324</td><td>Hero</td><td>83</td><td>A Hero of Ardougne</td><td>X</td></tr>
<tr><td>325</td><td>Baker</td><td>15</td><td>He sells hot baked bread</td><td>-</td></tr>
<tr><td>326</td><td>silk merchant</td><td>0</td><td>He buys silk</td><td>-</td></tr>
<tr><td>327</td><td>Fur trader</td><td>0</td><td>A buyer and seller of animal furs</td><td>-</td></tr>
<tr><td>328</td><td>silver merchant</td><td>0</td><td>He deals in silver</td><td>-</td></tr>
<tr><td>329</td><td>spice merchant</td><td>15</td><td>He sells exotic spices</td><td>-</td></tr>
<tr><td>330</td><td>gem merchant</td><td>0</td><td>He sells gems</td><td>-</td></tr>
<tr><td>331</td><td>Zenesha</td><td>25</td><td>A shopkeeper of some sort</td><td>-</td></tr>
<tr><td>332</td><td>Kangai Mau</td><td>0</td><td>A tribesman</td><td>-</td></tr>
<tr><td>333</td><td>Wizard Cromperty</td><td>12</td><td>An old wizard</td><td>-</td></tr>
<tr><td>334</td><td>RPDT employee</td><td>12</td><td>A delivery man</td><td>-</td></tr>
<tr><td>335</td><td>Horacio</td><td>8</td><td>An old gardener</td><td>-</td></tr>
<tr><td>336</td><td>Aemad</td><td>16</td><td>He helps run the adventurers store</td><td>-</td></tr>
<tr><td>337</td><td>Kortan</td><td>16</td><td>He helps run the adventurers store</td><td>-</td></tr>
<tr><td>338</td><td>zoo keeper</td><td>20</td><td>He looks after Ardougne city zoo</td><td>X</td></tr>
<tr><td>339</td><td>Make over mage</td><td>0</td><td>He can change how I look</td><td>-</td></tr>
<tr><td>340</td><td>Bartender</td><td>0</td><td>I could get a beer off him</td><td>-</td></tr>
<tr><td>341</td><td>chuck</td><td>0</td><td>A wood merchant</td><td>-</td></tr>
<tr><td>342</td><td>Rogue</td><td>21</td><td>He needs a shave</td><td>X</td></tr>
<tr><td>343</td><td>Shadow spider</td><td>53</td><td>Is it a spider or is it a shadow</td><td>X</td></tr>
<tr><td>344</td><td>Fire Giant</td><td>109</td><td>A big guy with red glowing skin</td><td>X</td></tr>
<tr><td>345</td><td>Grandpa Jack</td><td>20</td><td>A wistful old man</td><td>-</td></tr>
<tr><td>346</td><td>Sinister stranger</td><td>43</td><td>not your average fisherman</td><td>-</td></tr>
<tr><td>347</td><td>Bonzo</td><td>30</td><td>Fishing competition organiser</td><td>-</td></tr>
<tr><td>348</td><td>Forester</td><td>21</td><td>He looks after McGrubor's wood</td><td>X</td></tr>
<tr><td>349</td><td>Morris</td><td>30</td><td>Fishing competition organiser</td><td>-</td></tr>
<tr><td>350</td><td>Brother Omad</td><td>13</td><td>A Peaceful monk</td><td>-</td></tr>
<tr><td>351</td><td>Thief</td><td>21</td><td>A dastardly blanket thief</td><td>X</td></tr>
<tr><td>352</td><td>Head Thief</td><td>34</td><td>A dastardly blanket thief</td><td>X</td></tr>
<tr><td>353</td><td>Big Dave</td><td>15</td><td>A well built fisherman</td><td>-</td></tr>
<tr><td>354</td><td>Joshua</td><td>15</td><td>A grumpy fisherman</td><td>-</td></tr>
<tr><td>355</td><td>Mountain Dwarf</td><td>18</td><td>A short angry guy</td><td>-</td></tr>
<tr><td>356</td><td>Mountain Dwarf</td><td>28</td><td>A short angry guy</td><td>X</td></tr>
<tr><td>357</td><td>Brother Cedric</td><td>13</td><td>A Peaceful monk</td><td>-</td></tr>
<tr><td>358</td><td>Necromancer</td><td>34</td><td>A crazy evil necromancer</td><td>X</td></tr>
<tr><td>359</td><td>zombie</td><td>24</td><td>The living dead</td><td>X</td></tr>
<tr><td>360</td><td>Lucien</td><td>21</td><td>He walks with a slight limp</td><td>-</td></tr>
<tr><td>361</td><td>The Fire warrior of lesarkus</td><td>63</td><td>A strange red humanoid</td><td>X</td></tr>
<tr><td>362</td><td>guardian of Armadyl</td><td>54</td><td>A worshipper of Armadyl</td><td>-</td></tr>
<tr><td>363</td><td>guardian of Armadyl</td><td>54</td><td>A worshipper of Armadyl</td><td>-</td></tr>
<tr><td>364</td><td>Lucien</td><td>21</td><td>He walks with a limp</td><td>X</td></tr>
<tr><td>365</td><td>winelda</td><td>25</td><td>A witch</td><td>-</td></tr>
<tr><td>366</td><td>Brother Kojo</td><td>13</td><td>A Peaceful monk</td><td>-</td></tr>
<tr><td>367</td><td>Dungeon Rat</td><td>16</td><td>Overgrown vermin</td><td>X</td></tr>
<tr><td>368</td><td>Master fisher</td><td>15</td><td>The man in charge of the fishing guild</td><td>-</td></tr>
<tr><td>369</td><td>Orven</td><td>30</td><td>He runs a fish exchange store</td><td>-</td></tr>
<tr><td>370</td><td>Padik</td><td>30</td><td>He runs a fish exchange store</td><td>-</td></tr>
<tr><td>371</td><td>Shopkeeper</td><td>0</td><td>He smells of fish</td><td>-</td></tr>
<tr><td>372</td><td>Lady servil</td><td>2</td><td>She look's wealthy</td><td>-</td></tr>
<tr><td>373</td><td>Guard</td><td>28</td><td>It's one of General Khazard's guard's</td><td>-</td></tr>
<tr><td>374</td><td>Guard</td><td>28</td><td>It's one of General Khazard's guard's</td><td>-</td></tr>
<tr><td>375</td><td>Guard</td><td>28</td><td>It's one of General Khazard's guard's</td><td>-</td></tr>
<tr><td>376</td><td>Guard</td><td>28</td><td>It's one of General Khazard's guard's</td><td>-</td></tr>
<tr><td>377</td><td>Jeremy Servil</td><td>0</td><td>A young squire</td><td>-</td></tr>
<tr><td>378</td><td>Justin Servil</td><td>0</td><td>Jeremy servil's father</td><td>-</td></tr>
<tr><td>379</td><td>fightslave joe</td><td>0</td><td>He look's mistreated and weak</td><td>-</td></tr>
<tr><td>380</td><td>fightslave kelvin</td><td>0</td><td>He look's mistreated and weak</td><td>-</td></tr>
<tr><td>381</td><td>local</td><td>7</td><td>A scruffy looking chap</td><td>-</td></tr>
<tr><td>382</td><td>Khazard Bartender</td><td>0</td><td>A tough looking barman</td><td>-</td></tr>
<tr><td>383</td><td>General Khazard</td><td>100</td><td>He look's real nasty</td><td>X</td></tr>
<tr><td>384</td><td>Khazard Ogre</td><td>58</td><td>Khazard's strongest ogre warrior</td><td>X</td></tr>
<tr><td>385</td><td>Guard</td><td>28</td><td>It's one of General Khazard's guard's</td><td>-</td></tr>
<tr><td>386</td><td>Khazard Scorpion</td><td>46</td><td>A large angry scorpion</td><td>X</td></tr>
<tr><td>387</td><td>hengrad</td><td>0</td><td>He look's mistreated and weak</td><td>-</td></tr>
<tr><td>388</td><td>Bouncer</td><td>122</td><td>Hello nice doggy</td><td>X</td></tr>
<tr><td>389</td><td>Stankers</td><td>0</td><td>A cheerful looking fellow</td><td>-</td></tr>
<tr><td>390</td><td>Docky</td><td>20</td><td>An old sailor</td><td>-</td></tr>
<tr><td>391</td><td>Shopkeeper</td><td>0</td><td>Maybe he'd like to buy some of my junk</td><td>-</td></tr>
<tr><td>392</td><td>Fairy queen</td><td>2</td><td>A very little queen</td><td>-</td></tr>
<tr><td>393</td><td>Merlin</td><td>12</td><td>An old wizard</td><td>-</td></tr>
<tr><td>394</td><td>Crone</td><td>25</td><td>A strange old lady</td><td>-</td></tr>
<tr><td>395</td><td>High priest of entrana</td><td>13</td><td>A Peaceful monk</td><td>-</td></tr>
<tr><td>396</td><td>elkoy</td><td>3</td><td>It's a tree gnome</td><td>-</td></tr>
<tr><td>397</td><td>remsai</td><td>3</td><td>It's a tree gnome</td><td>-</td></tr>
<tr><td>398</td><td>bolkoy</td><td>3</td><td>It's a tree gnome</td><td>-</td></tr>
<tr><td>399</td><td>local gnome</td><td>3</td><td>It's a young tree gnome</td><td>X</td></tr>
<tr><td>400</td><td>bolren</td><td>3</td><td>It's a gnome he look's important</td><td>-</td></tr>
<tr><td>401</td><td>Black Knight titan</td><td>146</td><td>He is blocking the way</td><td>X</td></tr>
<tr><td>402</td><td>kalron</td><td>3</td><td>he look's lost</td><td>X</td></tr>
<tr><td>403</td><td>brother Galahad</td><td>13</td><td>A Peaceful monk</td><td>-</td></tr>
<tr><td>404</td><td>tracker 1</td><td>3</td><td>It's a tree gnome</td><td>-</td></tr>
<tr><td>405</td><td>tracker 2</td><td>3</td><td>It's a tree gnome</td><td>-</td></tr>
<tr><td>406</td><td>tracker 3</td><td>3</td><td>It's a tree gnome</td><td>-</td></tr>
<tr><td>407</td><td>Khazard troop</td><td>28</td><td>It's one of General Khazard's warrior's</td><td>X</td></tr>
<tr><td>408</td><td>commander montai</td><td>3</td><td>It's a tree gnome</td><td>-</td></tr>
<tr><td>409</td><td>gnome troop</td><td>3</td><td>It's a tree gnome trooper</td><td>X</td></tr>
<tr><td>410</td><td>khazard warlord</td><td>100</td><td>He look's real nasty</td><td>X</td></tr>
<tr><td>411</td><td>Sir Percival</td><td>56</td><td>He's covered in pieces of straw</td><td>-</td></tr>
<tr><td>412</td><td>Fisher king</td><td>30</td><td>an old king</td><td>-</td></tr>
<tr><td>413</td><td>maiden</td><td>2</td><td>She has a far away look in her eyes</td><td>-</td></tr>
<tr><td>414</td><td>Fisherman</td><td>30</td><td>an old fisherman</td><td>-</td></tr>
<tr><td>415</td><td>King Percival</td><td>56</td><td>The new fisher king</td><td>-</td></tr>
<tr><td>416</td><td>unhappy peasant</td><td>25</td><td>He looks tired and hungry</td><td>X</td></tr>
<tr><td>417</td><td>happy peasant</td><td>25</td><td>He looks well fed and full of energy</td><td>X</td></tr>
<tr><td>418</td><td>ceril</td><td>9</td><td>It's Sir ceril carnillean a local noblemen</td><td>-</td></tr>
<tr><td>419</td><td>butler</td><td>9</td><td>It's the carnillean family butler</td><td>-</td></tr>
<tr><td>420</td><td>carnillean guard</td><td>28</td><td>It's a carnillean family guard</td><td>X</td></tr>
<tr><td>421</td><td>Tribesman</td><td>39</td><td>A primative warrior</td><td>X</td></tr>
<tr><td>422</td><td>henryeta</td><td>2</td><td>It's a wealthy looking woman</td><td>-</td></tr>
<tr><td>423</td><td>philipe</td><td>0</td><td>It's a young well dressed boy</td><td>-</td></tr>
<tr><td>424</td><td>clivet</td><td>20</td><td>A strange looking man in black </td><td>-</td></tr>
<tr><td>425</td><td>cult member</td><td>20</td><td>An suspicous looking man in black </td><td>X</td></tr>
<tr><td>426</td><td>Lord hazeel</td><td>100</td><td>He could do with some sun</td><td>X</td></tr>
<tr><td>427</td><td>alomone</td><td>42</td><td>A musculer looking man in black </td><td>-</td></tr>
<tr><td>428</td><td>Khazard commander</td><td>41</td><td>It's one of General Khazard's commander's</td><td>X</td></tr>
<tr><td>429</td><td>claus</td><td>15</td><td>the carnillean family cook</td><td>-</td></tr>
<tr><td>430</td><td>1st plague sheep</td><td>0</td><td>The sheep has the plague</td><td>-</td></tr>
<tr><td>431</td><td>2nd plague sheep</td><td>0</td><td>The sheep has the plague</td><td>-</td></tr>
<tr><td>432</td><td>3rd plague sheep</td><td>0</td><td>The sheep has the plague</td><td>-</td></tr>
<tr><td>433</td><td>4th plague sheep</td><td>0</td><td>The sheep has the plague</td><td>-</td></tr>
<tr><td>434</td><td>Farmer brumty</td><td>15</td><td>He looks after livestock in this area</td><td>-</td></tr>
<tr><td>435</td><td>Doctor orbon</td><td>15</td><td>A local doctor</td><td>-</td></tr>
<tr><td>436</td><td>Councillor Halgrive</td><td>20</td><td>A town counceller</td><td>-</td></tr>
<tr><td>437</td><td>Edmond</td><td>20</td><td>A local civilian</td><td>-</td></tr>
<tr><td>438</td><td>Citizen</td><td>11</td><td>He look's tired</td><td>X</td></tr>
<tr><td>439</td><td>Citizen</td><td>10</td><td>He look's frightened</td><td>X</td></tr>
<tr><td>440</td><td>Citizen</td><td>12</td><td>She look's frustrated</td><td>X</td></tr>
<tr><td>441</td><td>Citizen</td><td>20</td><td>He look's angry</td><td>X</td></tr>
<tr><td>442</td><td>Citizen</td><td>15</td><td>He look's disillusioned</td><td>X</td></tr>
<tr><td>443</td><td>Jethick</td><td>15</td><td>A cynical old man</td><td>-</td></tr>
<tr><td>444</td><td>Mourner</td><td>2</td><td>A mourner or plague healer</td><td>-</td></tr>
<tr><td>445</td><td>Mourner</td><td>2</td><td>A mourner or plague healer</td><td>-</td></tr>
<tr><td>446</td><td>Ted Rehnison</td><td>9</td><td>The head of the Rehnison family</td><td>-</td></tr>
<tr><td>447</td><td>Martha Rehnison</td><td>12</td><td>A fairly poor looking woman</td><td>-</td></tr>
<tr><td>448</td><td>Billy Rehnison</td><td>45</td><td>The Rehnisons eldest son</td><td>-</td></tr>
<tr><td>449</td><td>Milli Rehnison</td><td>39</td><td>She doesn't seem very happy</td><td>-</td></tr>
<tr><td>450</td><td>Alrena</td><td>2</td><td>She look's concerned</td><td>-</td></tr>
<tr><td>451</td><td>Mourner</td><td>2</td><td>A mourner or plague healer</td><td>-</td></tr>
<tr><td>452</td><td>Clerk</td><td>2</td><td>A bueracratic administrator</td><td>-</td></tr>
<tr><td>453</td><td>Carla</td><td>2</td><td>She look's upset</td><td>-</td></tr>
<tr><td>454</td><td>Bravek</td><td>30</td><td>The city warder of West Ardougne</td><td>-</td></tr>
<tr><td>455</td><td>Caroline</td><td>2</td><td>A well dressed middle aged lady</td><td>-</td></tr>
<tr><td>456</td><td>Holgart</td><td>20</td><td>An old sailor</td><td>-</td></tr>
<tr><td>457</td><td>Holgart</td><td>20</td><td>An old sailor</td><td>-</td></tr>
<tr><td>458</td><td>Holgart</td><td>20</td><td>An old sailor</td><td>-</td></tr>
<tr><td>459</td><td>kent</td><td>45</td><td>caroline's husband</td><td>-</td></tr>
<tr><td>460</td><td>bailey</td><td>15</td><td>the fishing platform cook</td><td>-</td></tr>
<tr><td>461</td><td>kennith</td><td>0</td><td>A young scared looking boy</td><td>-</td></tr>
<tr><td>462</td><td>Platform Fisherman</td><td>30</td><td>an emotionless fisherman</td><td>X</td></tr>
<tr><td>463</td><td>Platform Fisherman</td><td>30</td><td>an emotionless fisherman</td><td>X</td></tr>
<tr><td>464</td><td>Platform Fisherman</td><td>30</td><td>an emotionless fisherman</td><td>X</td></tr>
<tr><td>465</td><td>Elena</td><td>2</td><td>She doesn't look too happy</td><td>-</td></tr>
<tr><td>466</td><td>jinno</td><td>30</td><td>He doesn't seem to mind his lack of legs</td><td>-</td></tr>
<tr><td>467</td><td>Watto</td><td>30</td><td>He doesn't seem to mind his lack of legs</td><td>-</td></tr>
<tr><td>468</td><td>Recruiter</td><td>51</td><td>A member of the Ardougne royal army</td><td>-</td></tr>
<tr><td>469</td><td>Head mourner</td><td>2</td><td>In charge of people with silly outfits</td><td>-</td></tr>
<tr><td>470</td><td>Almera</td><td>2</td><td>A woman of the wilderness</td><td>-</td></tr>
<tr><td>471</td><td>hudon</td><td>0</td><td>A young boisterous looking lad</td><td>-</td></tr>
<tr><td>472</td><td>hadley</td><td>30</td><td>A happy looking fellow</td><td>-</td></tr>
<tr><td>473</td><td>Rat</td><td>7</td><td>Overgrown vermin</td><td>X</td></tr>
<tr><td>474</td><td>Combat instructor</td><td>51</td><td>He will tell me how to fight</td><td>-</td></tr>
<tr><td>475</td><td>golrie</td><td>3</td><td>It's a tree gnome</td><td>-</td></tr>
<tr><td>476</td><td>Guide</td><td>1</td><td>She gives hints to new adventurers</td><td>-</td></tr>
<tr><td>477</td><td>King Black Dragon</td><td>245</td><td>The biggest meanest dragon around</td><td>X</td></tr>
<tr><td>478</td><td>cooking instructor</td><td>15</td><td>Talk to him to learn about runescape food</td><td>-</td></tr>
<tr><td>479</td><td>fishing instructor</td><td>15</td><td>He smells of fish</td><td>-</td></tr>
<tr><td>480</td><td>financial advisor</td><td>0</td><td>He knows about money</td><td>-</td></tr>
<tr><td>481</td><td>gerald</td><td>15</td><td>An old fisherman</td><td>-</td></tr>
<tr><td>482</td><td>mining instructor</td><td>18</td><td>A short angry guy</td><td>-</td></tr>
<tr><td>483</td><td>Elena</td><td>2</td><td>She looks concerned</td><td>-</td></tr>
<tr><td>484</td><td>Omart</td><td>30</td><td>A nervous looking fellow</td><td>-</td></tr>
<tr><td>485</td><td>Bank assistant</td><td>9</td><td>She can look after my stuff</td><td>-</td></tr>
<tr><td>486</td><td>Jerico</td><td>15</td><td>He looks friendly enough</td><td>-</td></tr>
<tr><td>487</td><td>Kilron</td><td>15</td><td>He looks shifty</td><td>-</td></tr>
<tr><td>488</td><td>Guidor's wife</td><td>2</td><td>She looks rather concerned</td><td>-</td></tr>
<tr><td>489</td><td>Quest advisor</td><td>51</td><td>I wonder what advise he has to impart</td><td>-</td></tr>
<tr><td>490</td><td>chemist</td><td>4</td><td>human</td><td>-</td></tr>
<tr><td>491</td><td>Mourner</td><td>2</td><td>A mourner or plague healer</td><td>-</td></tr>
<tr><td>492</td><td>Mourner</td><td>2</td><td>A mourner or plague healer</td><td>-</td></tr>
<tr><td>493</td><td>Wilderness guide</td><td>29</td><td>He's ready for a fight</td><td>-</td></tr>
<tr><td>494</td><td>Magic Instructor</td><td>12</td><td>An old wizard</td><td>-</td></tr>
<tr><td>495</td><td>Mourner</td><td>22</td><td>A mourner or plague healer</td><td>X</td></tr>
<tr><td>496</td><td>Community instructor</td><td>2</td><td>This is the last advisor - honest</td><td>-</td></tr>
<tr><td>497</td><td>boatman</td><td>20</td><td>An old sailor</td><td>-</td></tr>
<tr><td>498</td><td>skeleton mage</td><td>21</td><td>It rattles as it walks</td><td>X</td></tr>
<tr><td>499</td><td>controls guide</td><td>29</td><td>He's ready for a fight</td><td>-</td></tr>
<tr><td>500</td><td>nurse sarah</td><td>2</td><td>She's quite a looker</td><td>-</td></tr>
<tr><td>501</td><td>Tailor</td><td>29</td><td>He's ready for a party</td><td>-</td></tr>
<tr><td>502</td><td>Mourner</td><td>25</td><td>A mourner or plague healer</td><td>X</td></tr>
<tr><td>503</td><td>Guard</td><td>28</td><td>He tries to keep order around here</td><td>-</td></tr>
<tr><td>504</td><td>Chemist</td><td>29</td><td>He looks clever enough</td><td>-</td></tr>
<tr><td>505</td><td>Chancy</td><td>29</td><td>He's ready for a bet</td><td>-</td></tr>
<tr><td>506</td><td>Hops</td><td>29</td><td>He's drunk</td><td>-</td></tr>
<tr><td>507</td><td>DeVinci</td><td>29</td><td>He has a colourful personality</td><td>-</td></tr>
<tr><td>508</td><td>Guidor</td><td>29</td><td>He's not that ill</td><td>-</td></tr>
<tr><td>509</td><td>Chancy</td><td>29</td><td>He's ready for a bet</td><td>-</td></tr>
<tr><td>510</td><td>Hops</td><td>29</td><td>He's drunk</td><td>-</td></tr>
<tr><td>511</td><td>DeVinci</td><td>29</td><td>He has a colourful personality</td><td>-</td></tr>
<tr><td>512</td><td>king Lathas</td><td>30</td><td>King Lanthas of east ardounge</td><td>-</td></tr>
<tr><td>513</td><td>Head wizard</td><td>12</td><td>He runs the wizards guild</td><td>-</td></tr>
<tr><td>514</td><td>Magic store owner</td><td>12</td><td>An old wizard</td><td>-</td></tr>
<tr><td>515</td><td>Wizard Frumscone</td><td>12</td><td>A confused looking wizard</td><td>-</td></tr>
<tr><td>516</td><td>target practice zombie</td><td>24</td><td>The living dead</td><td>X</td></tr>
<tr><td>517</td><td>Trufitus</td><td>6</td><td>A wise old witch doctor</td><td>-</td></tr>
<tr><td>518</td><td>Colonel Radick</td><td>51</td><td>A soldier of the town of Yanille</td><td>X</td></tr>
<tr><td>519</td><td>Soldier</td><td>28</td><td>A soldier of the town of Yanille</td><td>X</td></tr>
<tr><td>520</td><td>Bartender</td><td>0</td><td>I could get a beer off him</td><td>-</td></tr>
<tr><td>521</td><td>Jungle Spider</td><td>47</td><td>A venomous deadly spider</td><td>X</td></tr>
<tr><td>522</td><td>Jiminua</td><td>0</td><td>She looks very interested in selling some of her wares.</td><td>-</td></tr>
<tr><td>523</td><td>Jogre</td><td>58</td><td>An aggressive humanoid</td><td>X</td></tr>
<tr><td>524</td><td>Guard</td><td>28</td><td>He tries to keep order around here</td><td>-</td></tr>
<tr><td>525</td><td>Ogre</td><td>58</td><td>Useful for ranged training</td><td>X</td></tr>
<tr><td>526</td><td>Guard</td><td>28</td><td>He tries to keep order around here</td><td>-</td></tr>
<tr><td>527</td><td>Guard</td><td>28</td><td>He tries to keep order around here</td><td>-</td></tr>
<tr><td>528</td><td>shop keeper</td><td>0</td><td>he sells weapons</td><td>-</td></tr>
<tr><td>529</td><td>Bartender</td><td>0</td><td>I could get a beer off him</td><td>-</td></tr>
<tr><td>530</td><td>Frenita</td><td>0</td><td>runs a cookery shop</td><td>-</td></tr>
<tr><td>531</td><td>Ogre chieftan</td><td>78</td><td>A slightly bigger uglier ogre</td><td>X</td></tr>
<tr><td>532</td><td>rometti</td><td>3</td><td>It's a well dressed tree gnome</td><td>-</td></tr>
<tr><td>533</td><td>Rashiliyia</td><td>80</td><td>A willowy ethereal being who floats above the ground</td><td>-</td></tr>
<tr><td>534</td><td>Blurberry</td><td>3</td><td>It's a red faced tree gnome</td><td>-</td></tr>
<tr><td>535</td><td>Heckel funch</td><td>3</td><td>It's another jolly tree gnome</td><td>-</td></tr>
<tr><td>536</td><td>Aluft Gianne</td><td>3</td><td>It's a tree gnome chef</td><td>-</td></tr>
<tr><td>537</td><td>Hudo glenfad</td><td>3</td><td>It's another jolly tree gnome</td><td>-</td></tr>
<tr><td>538</td><td>Irena</td><td>0</td><td>human</td><td>-</td></tr>
<tr><td>539</td><td>Mosol</td><td>0</td><td>A jungle warrior</td><td>-</td></tr>
<tr><td>540</td><td>Gnome banker</td><td>3</td><td>It's tree gnome banker</td><td>-</td></tr>
<tr><td>541</td><td>King Narnode Shareen</td><td>3</td><td>It's a gnome he look's important</td><td>-</td></tr>
<tr><td>542</td><td>UndeadOne</td><td>62</td><td>One of Rashaliyas Minions</td><td>X</td></tr>
<tr><td>543</td><td>Drucas</td><td>20</td><td>engraver</td><td>-</td></tr>
<tr><td>544</td><td>tourist</td><td>29</td><td>human</td><td>-</td></tr>
<tr><td>545</td><td>King Narnode Shareen</td><td>3</td><td>It's a gnome he look's important</td><td>-</td></tr>
<tr><td>546</td><td>Hazelmere</td><td>3</td><td>An ancient looking gnome</td><td>-</td></tr>
<tr><td>547</td><td>Glough</td><td>3</td><td>An rough looking gnome</td><td>-</td></tr>
<tr><td>548</td><td>Shar</td><td>0</td><td>Concerned about the economy</td><td>-</td></tr>
<tr><td>549</td><td>Shantay</td><td>0</td><td>human</td><td>-</td></tr>
<tr><td>550</td><td>charlie</td><td>0</td><td>Poor guy?</td><td>X</td></tr>
<tr><td>551</td><td>Gnome guard</td><td>31</td><td>A tree gnome guard</td><td>X</td></tr>
<tr><td>552</td><td>Gnome pilot</td><td>3</td><td>He can fly the glider</td><td>-</td></tr>
<tr><td>553</td><td>Mehman</td><td>29</td><td>local</td><td>-</td></tr>
<tr><td>554</td><td>Ana</td><td>16</td><td>This lady doesn't look as if she belongs here.</td><td>-</td></tr>
<tr><td>555</td><td>Chaos Druid warrior</td><td>44</td><td>A crazy evil druid</td><td>X</td></tr>
<tr><td>556</td><td>Gnome pilot</td><td>3</td><td>He can fly the glider</td><td>-</td></tr>
<tr><td>557</td><td>Shipyard worker</td><td>44</td><td>He look's busy</td><td>X</td></tr>
<tr><td>558</td><td>Shipyard worker</td><td>44</td><td>He look's busy</td><td>X</td></tr>
<tr><td>559</td><td>Shipyard worker</td><td>44</td><td>He look's busy</td><td>X</td></tr>
<tr><td>560</td><td>Shipyard foreman</td><td>62</td><td>He look's busy</td><td>-</td></tr>
<tr><td>561</td><td>Shipyard foreman</td><td>62</td><td>He look's busy</td><td>-</td></tr>
<tr><td>562</td><td>Gnome guard</td><td>23</td><td>A tree gnome guard</td><td>X</td></tr>
<tr><td>563</td><td>Femi</td><td>3</td><td>It's a little tree gnome</td><td>-</td></tr>
<tr><td>564</td><td>Femi</td><td>3</td><td>It's a little tree gnome</td><td>-</td></tr>
<tr><td>565</td><td>Anita</td><td>3</td><td>It's a little tree gnome</td><td>-</td></tr>
<tr><td>566</td><td>Glough</td><td>3</td><td>An rough looking gnome</td><td>-</td></tr>
<tr><td>567</td><td>Salarin the twisted</td><td>69</td><td>A crazy evil druid</td><td>X</td></tr>
<tr><td>568</td><td>Black Demon</td><td>175</td><td>A big scary jet black demon</td><td>X</td></tr>
<tr><td>569</td><td>Gnome pilot</td><td>3</td><td>He can fly the glider</td><td>-</td></tr>
<tr><td>570</td><td>Gnome pilot</td><td>3</td><td>He can fly the glider</td><td>-</td></tr>
<tr><td>571</td><td>Gnome pilot</td><td>3</td><td>He can fly the glider</td><td>-</td></tr>
<tr><td>572</td><td>Gnome pilot</td><td>3</td><td>He can fly the glider</td><td>-</td></tr>
<tr><td>573</td><td>Sigbert the Adventurer</td><td>56</td><td>A Warrior</td><td>-</td></tr>
<tr><td>574</td><td>Yanille Watchman</td><td>33</td><td>He watches out for invading ogres</td><td>X</td></tr>
<tr><td>575</td><td>Tower guard</td><td>33</td><td>He stops people going up the tower</td><td>-</td></tr>
<tr><td>576</td><td>Gnome Trainer</td><td>11</td><td>He can advise on training</td><td>-</td></tr>
<tr><td>577</td><td>Gnome Trainer</td><td>11</td><td>He can advise on training</td><td>-</td></tr>
<tr><td>578</td><td>Gnome Trainer</td><td>11</td><td>He can advise on training</td><td>-</td></tr>
<tr><td>579</td><td>Gnome Trainer</td><td>11</td><td>He can advise on training</td><td>-</td></tr>
<tr><td>580</td><td>Blurberry barman</td><td>3</td><td>He serves cocktails</td><td>-</td></tr>
<tr><td>581</td><td>Gnome waiter</td><td>3</td><td>He can serve you gnome food</td><td>-</td></tr>
<tr><td>582</td><td>Gnome guard</td><td>27</td><td>A tree gnome guard</td><td>X</td></tr>
<tr><td>583</td><td>Gnome child</td><td>3</td><td>that's a little gnome</td><td>X</td></tr>
<tr><td>584</td><td>Earth warrior</td><td>52</td><td>A strange inhuman warrior</td><td>X</td></tr>
<tr><td>585</td><td>Gnome child</td><td>3</td><td>He's a little fellow</td><td>X</td></tr>
<tr><td>586</td><td>Gnome child</td><td>3</td><td>hello little gnome</td><td>X</td></tr>
<tr><td>587</td><td>Gulluck</td><td>10</td><td>He sells weapons</td><td>-</td></tr>
<tr><td>588</td><td>Gunnjorn</td><td>16</td><td>Not civilised looking</td><td>-</td></tr>
<tr><td>589</td><td>Zadimus</td><td>0</td><td>Ghostly Visage of the dead Zadimus</td><td>-</td></tr>
<tr><td>590</td><td>Brimstail</td><td>3</td><td>An ancient looking gnome</td><td>-</td></tr>
<tr><td>591</td><td>Gnome child</td><td>3</td><td>He's a little fellow</td><td>-</td></tr>
<tr><td>592</td><td>Gnome local</td><td>9</td><td>A tree gnome villager</td><td>X</td></tr>
<tr><td>593</td><td>Gnome local</td><td>3</td><td>A tree gnome villager</td><td>X</td></tr>
<tr><td>594</td><td>Moss Giant</td><td>62</td><td>his beard seems to have a life of its own</td><td>X</td></tr>
<tr><td>595</td><td>Gnome Baller</td><td>70</td><td>A tree gnome ball player</td><td>X</td></tr>
<tr><td>596</td><td>Goalie</td><td>70</td><td>A gnome ball goal catcher</td><td>-</td></tr>
<tr><td>597</td><td>Gnome Baller</td><td>70</td><td>A tree gnome ball player</td><td>X</td></tr>
<tr><td>598</td><td>Gnome Baller</td><td>70</td><td>A tree gnome ball player</td><td>X</td></tr>
<tr><td>599</td><td>Gnome Baller</td><td>70</td><td>A tree gnome ball player</td><td>X</td></tr>
<tr><td>600</td><td>Gnome Baller</td><td>70</td><td>A tree gnome ball player</td><td>X</td></tr>
<tr><td>601</td><td>Referee</td><td>3</td><td>He controls the game</td><td>-</td></tr>
<tr><td>602</td><td>Gnome Baller</td><td>70</td><td>A tree gnome ball player</td><td>X</td></tr>
<tr><td>603</td><td>Gnome Baller</td><td>70</td><td>A tree gnome ball player</td><td>X</td></tr>
<tr><td>604</td><td>Gnome Baller</td><td>70</td><td>A tree gnome ball player</td><td>X</td></tr>
<tr><td>605</td><td>Gnome Baller</td><td>70</td><td>A tree gnome ball player</td><td>X</td></tr>
<tr><td>606</td><td>Gnome Baller</td><td>70</td><td>A tree gnome ball player</td><td>X</td></tr>
<tr><td>607</td><td>Gnome Baller</td><td>70</td><td>A tree gnome ball player</td><td>X</td></tr>
<tr><td>608</td><td>Gnome Baller</td><td>70</td><td>A tree gnome ball player</td><td>X</td></tr>
<tr><td>609</td><td>Gnome Baller</td><td>70</td><td>He's on your team</td><td>-</td></tr>
<tr><td>610</td><td>Gnome Baller</td><td>70</td><td>He's on your team</td><td>-</td></tr>
<tr><td>611</td><td>Cheerleader</td><td>3</td><td>It's a little tree gnome</td><td>-</td></tr>
<tr><td>612</td><td>Cheerleader</td><td>3</td><td>It's a little tree gnome</td><td>-</td></tr>
<tr><td>613</td><td>Nazastarool Zombie</td><td>83</td><td>One of Rashaliyas Minions</td><td>X</td></tr>
<tr><td>614</td><td>Nazastarool Skeleton</td><td>83</td><td>One of Rashaliyas Minions</td><td>X</td></tr>
<tr><td>615</td><td>Nazastarool Ghost</td><td>83</td><td>One of Rashaliyas Minions</td><td>X</td></tr>
<tr><td>616</td><td>Fernahei</td><td>6</td><td>An enthusiastic fishing shop owner</td><td>-</td></tr>
<tr><td>617</td><td>Jungle Banker</td><td>9</td><td>He can look after my money</td><td>-</td></tr>
<tr><td>618</td><td>Cart Driver</td><td>15</td><td>He drives the cart</td><td>-</td></tr>
<tr><td>619</td><td>Cart Driver</td><td>15</td><td>He drives the cart</td><td>-</td></tr>
<tr><td>620</td><td>Obli</td><td>0</td><td>An intelligent looking shop owner</td><td>-</td></tr>
<tr><td>621</td><td>Kaleb</td><td>0</td><td>This is Kaleb Paramaya - a warm and friendly inn owner</td><td>-</td></tr>
<tr><td>622</td><td>Yohnus</td><td>0</td><td>This is Yohnus - he runs the local blacksmiths</td><td>-</td></tr>
<tr><td>623</td><td>Serevel</td><td>0</td><td>This is Serevel - he sells tickets for the 'Lady of the Waves'</td><td>-</td></tr>
<tr><td>624</td><td>Yanni</td><td>0</td><td>Yanni Salika - He buys and sells antiques.</td><td>-</td></tr>
<tr><td>625</td><td>Official</td><td>3</td><td>He helps the referee</td><td>-</td></tr>
<tr><td>626</td><td>Koftik</td><td>16</td><td>The kings top tracker</td><td>-</td></tr>
<tr><td>627</td><td>Koftik</td><td>16</td><td>The kings top tracker</td><td>-</td></tr>
<tr><td>628</td><td>Koftik</td><td>16</td><td>The kings top tracker</td><td>-</td></tr>
<tr><td>629</td><td>Koftik</td><td>16</td><td>The kings top tracker</td><td>-</td></tr>
<tr><td>630</td><td>Blessed Vermen</td><td>14</td><td>A undead servent of iban</td><td>X</td></tr>
<tr><td>631</td><td>Blessed Spider</td><td>35</td><td>One of iban's eight legged friends</td><td>X</td></tr>
<tr><td>632</td><td>Paladin</td><td>71</td><td>A paladin of Ardougne</td><td>X</td></tr>
<tr><td>633</td><td>Paladin</td><td>71</td><td>A paladin of Ardougne</td><td>X</td></tr>
<tr><td>634</td><td>slave</td><td>16</td><td>He seems possessed</td><td>X</td></tr>
<tr><td>635</td><td>slave</td><td>16</td><td>He seems possessed</td><td>X</td></tr>
<tr><td>636</td><td>slave</td><td>16</td><td>He seems to have been here a while</td><td>X</td></tr>
<tr><td>637</td><td>slave</td><td>16</td><td>He seems possessed</td><td>X</td></tr>
<tr><td>638</td><td>slave</td><td>16</td><td>He seems to have been here a while</td><td>X</td></tr>
<tr><td>639</td><td>slave</td><td>16</td><td>He seems possessed</td><td>X</td></tr>
<tr><td>640</td><td>slave</td><td>16</td><td>He seems to have been here a while</td><td>X</td></tr>
<tr><td>641</td><td>Kalrag</td><td>78</td><td>I think this is one of Ibans pets</td><td>X</td></tr>
<tr><td>642</td><td>Niloof</td><td>18</td><td>A short angry guy</td><td>-</td></tr>
<tr><td>643</td><td>Kardia the Witch</td><td>25</td><td>She's got warts</td><td>-</td></tr>
<tr><td>644</td><td>Souless</td><td>16</td><td>He seems an empty shell</td><td>X</td></tr>
<tr><td>645</td><td>Othainian</td><td>78</td><td>big red and incredibly evil</td><td>X</td></tr>
<tr><td>646</td><td>Doomion</td><td>98</td><td>A big scary jet black demon</td><td>X</td></tr>
<tr><td>647</td><td>Holthion</td><td>78</td><td>big red and incredibly evil</td><td>X</td></tr>
<tr><td>648</td><td>Klank</td><td>18</td><td>A short angry guy</td><td>-</td></tr>
<tr><td>649</td><td>Iban</td><td>21</td><td>You feel terror just looking at him</td><td>-</td></tr>
<tr><td>650</td><td>Koftik</td><td>16</td><td>The kings top tracker</td><td>-</td></tr>
<tr><td>651</td><td>Goblin guard</td><td>48</td><td>An imposing green creature</td><td>X</td></tr>
<tr><td>652</td><td>Observatory Professor</td><td>4</td><td>He works in the observatory</td><td>-</td></tr>
<tr><td>653</td><td>Ugthanki</td><td>45</td><td>A dangerous type of spitting camel that can temporarily blind an opponent.</td><td>X</td></tr>
<tr><td>654</td><td>Observatory assistant</td><td>4</td><td>The Professor's assistant</td><td>-</td></tr>
<tr><td>655</td><td>Souless</td><td>24</td><td>A servent to zamorak</td><td>X</td></tr>
<tr><td>656</td><td>Dungeon spider</td><td>22</td><td>A nasty poisonous arachnid</td><td>X</td></tr>
<tr><td>657</td><td>Kamen</td><td>18</td><td>A short angry guy</td><td>-</td></tr>
<tr><td>658</td><td>Iban disciple</td><td>19</td><td>An evil follower of Iban</td><td>X</td></tr>
<tr><td>659</td><td>Koftik</td><td>16</td><td>The kings top tracker</td><td>-</td></tr>
<tr><td>660</td><td>Goblin</td><td>19</td><td>These goblins have grown strong</td><td>X</td></tr>
<tr><td>661</td><td>Chadwell</td><td>16</td><td>A sturdy looking gent</td><td>-</td></tr>
<tr><td>662</td><td>Professor</td><td>4</td><td>The owner of the observatory</td><td>-</td></tr>
<tr><td>663</td><td>San Tojalon</td><td>120</td><td>The animated spirit of San Tojalon</td><td>X</td></tr>
<tr><td>664</td><td>Ghost</td><td>29</td><td>A doomed victim of zamorak</td><td>X</td></tr>
<tr><td>665</td><td>Spirit of Scorpius</td><td>100</td><td>The undead spirit of the follower of Zamorak</td><td>-</td></tr>
<tr><td>666</td><td>Scorpion</td><td>21</td><td>There are nasty scorpions around this grave</td><td>-</td></tr>
<tr><td>667</td><td>Dark Mage</td><td>0</td><td>He works in the ways of dark magic</td><td>-</td></tr>
<tr><td>668</td><td>Mercenary</td><td>50</td><td>He seems to be guarding an area</td><td>X</td></tr>
<tr><td>669</td><td>Mercenary Captain</td><td>64</td><td>He's in control of the local guards.</td><td>X</td></tr>
<tr><td>670</td><td>Mercenary</td><td>39</td><td>He seems to be guarding an area</td><td>X</td></tr>
<tr><td>671</td><td>Mining Slave</td><td>16</td><td>A chained slave forced to mine rocks.</td><td>X</td></tr>
<tr><td>672</td><td>Watchtower wizard</td><td>12</td><td>A learned man</td><td>-</td></tr>
<tr><td>673</td><td>Ogre Shaman</td><td>100</td><td>An intelligent form of ogre</td><td>-</td></tr>
<tr><td>674</td><td>Skavid</td><td>3</td><td>Servant race to the ogres</td><td>-</td></tr>
<tr><td>675</td><td>Ogre guard</td><td>78</td><td>These ogres protect the city</td><td>-</td></tr>
<tr><td>676</td><td>Ogre guard</td><td>78</td><td>These ogres protect the city</td><td>-</td></tr>
<tr><td>677</td><td>Ogre guard</td><td>78</td><td>These ogres protect the city</td><td>-</td></tr>
<tr><td>678</td><td>Skavid</td><td>3</td><td>Servant race to the ogres</td><td>-</td></tr>
<tr><td>679</td><td>Skavid</td><td>3</td><td>Servant race to the ogres</td><td>-</td></tr>
<tr><td>680</td><td>Og</td><td>78</td><td>The chieftan of this ogre tribe</td><td>-</td></tr>
<tr><td>681</td><td>Grew</td><td>78</td><td>The chieftan of this ogre tribe</td><td>-</td></tr>
<tr><td>682</td><td>Toban</td><td>78</td><td>The chieftan of this ogre tribe</td><td>-</td></tr>
<tr><td>683</td><td>Gorad</td><td>78</td><td>A high ranking ogre official</td><td>X</td></tr>
<tr><td>684</td><td>Ogre guard</td><td>96</td><td>this creature looks very tough</td><td>X</td></tr>
<tr><td>685</td><td>Yanille Watchman</td><td>33</td><td>A captured guard of Yanille</td><td>-</td></tr>
<tr><td>686</td><td>Ogre merchant</td><td>58</td><td>He sells ogre-inspired items</td><td>-</td></tr>
<tr><td>687</td><td>Ogre trader</td><td>58</td><td>He trades in metals</td><td>-</td></tr>
<tr><td>688</td><td>Ogre trader</td><td>58</td><td>He trades in food</td><td>-</td></tr>
<tr><td>689</td><td>Ogre trader</td><td>58</td><td>He trades in food</td><td>-</td></tr>
<tr><td>690</td><td>Mercenary</td><td>39</td><td>He seems to be guarding an area</td><td>X</td></tr>
<tr><td>691</td><td>City Guard</td><td>78</td><td>high ranking ogre guards</td><td>-</td></tr>
<tr><td>692</td><td>Mercenary</td><td>39</td><td>He seems to be guarding this area</td><td>X</td></tr>
<tr><td>693</td><td>Lawgof</td><td>18</td><td>He guards the mines</td><td>-</td></tr>
<tr><td>694</td><td>Dwarf</td><td>18</td><td>A short angry guy</td><td>X</td></tr>
<tr><td>695</td><td>lollk</td><td>18</td><td>He looks scared</td><td>-</td></tr>
<tr><td>696</td><td>Skavid</td><td>3</td><td>Servant race to the ogres</td><td>-</td></tr>
<tr><td>697</td><td>Ogre guard</td><td>78</td><td>These ogres protect the city</td><td>X</td></tr>
<tr><td>698</td><td>Nulodion</td><td>18</td><td>He's the head of black guard weapon development</td><td>-</td></tr>
<tr><td>699</td><td>Dwarf</td><td>18</td><td>A short angry guy</td><td>X</td></tr>
<tr><td>700</td><td>Al Shabim</td><td>0</td><td>The leader of a nomadic Bedabin desert people - sometimes referred to as the 'Tenti's'</td><td>-</td></tr>
<tr><td>701</td><td>Bedabin Nomad</td><td>0</td><td>A Bedabin nomad - they live in the harshest extremes in the desert</td><td>-</td></tr>
<tr><td>702</td><td>Captain Siad</td><td>48</td><td>He's in control of the whole mining camp.</td><td>X</td></tr>
<tr><td>703</td><td>Bedabin Nomad Guard</td><td>70</td><td>A Bedabin nomad guard - he's protecting something important</td><td>X</td></tr>
<tr><td>704</td><td>Ogre citizen</td><td>58</td><td>A denizen of Gu'Tanoth</td><td>X</td></tr>
<tr><td>705</td><td>Rock of ages</td><td>150</td><td>A huge boulder</td><td>X</td></tr>
<tr><td>706</td><td>Ogre</td><td>58</td><td>A large dim looking humanoid</td><td>X</td></tr>
<tr><td>707</td><td>Skavid</td><td>3</td><td>Servant race to the ogres</td><td>-</td></tr>
<tr><td>708</td><td>Skavid</td><td>3</td><td>Servant race to the ogres</td><td>-</td></tr>
<tr><td>709</td><td>Skavid</td><td>3</td><td>Servant race to the ogres</td><td>-</td></tr>
<tr><td>710</td><td>Draft Mercenary Guard</td><td>50</td><td>He's quickly drafted in to deal with trouble makers</td><td>X</td></tr>
<tr><td>711</td><td>Mining Cart Driver</td><td>15</td><td>He drives the mining cart</td><td>-</td></tr>
<tr><td>712</td><td>kolodion</td><td>12</td><td>He runs the mage arena</td><td>-</td></tr>
<tr><td>713</td><td>kolodion</td><td>12</td><td>He runs the mage arena</td><td>X</td></tr>
<tr><td>714</td><td>Gertrude</td><td>20</td><td>A busy housewife</td><td>-</td></tr>
<tr><td>715</td><td>Shilop</td><td>0</td><td>A young boisterous looking lad</td><td>-</td></tr>
<tr><td>716</td><td>Rowdy Guard</td><td>50</td><td>He looks as if he's spoiling for trouble</td><td>X</td></tr>
<tr><td>717</td><td>Shantay Pass Guard</td><td>32</td><td>He seems to be guarding the Shantay Pass</td><td>X</td></tr>
<tr><td>718</td><td>Rowdy Slave</td><td>16</td><td>A slave who's looking for trouble.</td><td>X</td></tr>
<tr><td>719</td><td>Shantay Pass Guard</td><td>32</td><td>He seems to be guarding the Shantay Pass</td><td>-</td></tr>
<tr><td>720</td><td>Assistant</td><td>0</td><td>He is an assistant to Shantay and helps him to run the pass.</td><td>-</td></tr>
<tr><td>721</td><td>Desert Wolf</td><td>31</td><td>A vicious Desert wolf</td><td>X</td></tr>
<tr><td>722</td><td>Workman</td><td>9</td><td>This person is working on the site</td><td>-</td></tr>
<tr><td>723</td><td>Examiner</td><td>2</td><td>As you examine the examiner you examine that she is indeed an examiner!!</td><td>-</td></tr>
<tr><td>724</td><td>Student</td><td>0</td><td>A student busily digging!</td><td>-</td></tr>
<tr><td>725</td><td>Student</td><td>20</td><td>A student busily digging!</td><td>-</td></tr>
<tr><td>726</td><td>Guide</td><td>12</td><td>This person specialises in panning for gold</td><td>-</td></tr>
<tr><td>727</td><td>Student</td><td>18</td><td>A student busily digging!</td><td>-</td></tr>
<tr><td>728</td><td>Archaeological expert</td><td>15</td><td>An expert on archaeology!</td><td>-</td></tr>
<tr><td>729</td><td>civillian</td><td>18</td><td>He looks aggitated!</td><td>X</td></tr>
<tr><td>730</td><td>civillian</td><td>0</td><td>She looks aggitated!</td><td>-</td></tr>
<tr><td>731</td><td>civillian</td><td>0</td><td>She looks aggitated!</td><td>-</td></tr>
<tr><td>732</td><td>civillian</td><td>15</td><td>He looks aggitated!</td><td>-</td></tr>
<tr><td>733</td><td>Murphy</td><td>15</td><td>The man in charge of the fishing trawler</td><td>-</td></tr>
<tr><td>734</td><td>Murphy</td><td>15</td><td>The man in charge of the fishing trawler</td><td>-</td></tr>
<tr><td>735</td><td>Sir Radimus Erkle</td><td>10</td><td>A huge muscular man in charge of the Legends Guild</td><td>-</td></tr>
<tr><td>736</td><td>Legends Guild Guard</td><td>50</td><td>This guard is protecting the entrance to the Legends Guild.</td><td>-</td></tr>
<tr><td>737</td><td>Escaping Mining Slave</td><td>16</td><td>An emancipated slave with cool Desert Clothes.</td><td>-</td></tr>
<tr><td>738</td><td>Workman</td><td>9</td><td>This person is working in the mine</td><td>-</td></tr>
<tr><td>739</td><td>Murphy</td><td>15</td><td>The man in charge of the fishing trawler</td><td>-</td></tr>
<tr><td>740</td><td>Echned Zekin</td><td>50</td><td>An evil spirit of the underworld.</td><td>-</td></tr>
<tr><td>741</td><td>Donovan the Handyman</td><td>9</td><td>It's the family odd jobs man</td><td>-</td></tr>
<tr><td>742</td><td>Pierre the Dog Handler</td><td>9</td><td>It's the guy who looks after the family guard dog</td><td>-</td></tr>
<tr><td>743</td><td>Hobbes the Butler</td><td>9</td><td>It's the family butler</td><td>-</td></tr>
<tr><td>744</td><td>Louisa The Cook</td><td>0</td><td>It's the family cook</td><td>-</td></tr>
<tr><td>745</td><td>Mary The Maid</td><td>25</td><td>The family maid</td><td>-</td></tr>
<tr><td>746</td><td>Stanford The Gardener</td><td>8</td><td>It's the family Gardener</td><td>-</td></tr>
<tr><td>747</td><td>Guard</td><td>28</td><td>He looks like he's in over his head here</td><td>-</td></tr>
<tr><td>748</td><td>Guard Dog</td><td>46</td><td>He doesn't seem pleased to see me</td><td>-</td></tr>
<tr><td>749</td><td>Guard</td><td>8</td><td>***EMPTY PLEASE USE OR REPLACE***</td><td>-</td></tr>
<tr><td>750</td><td>Man</td><td>9</td><td>A thirsty looking man</td><td>-</td></tr>
<tr><td>751</td><td>Anna Sinclair</td><td>9</td><td>The first child of the late Lord Sinclair</td><td>-</td></tr>
<tr><td>752</td><td>Bob Sinclair</td><td>9</td><td>The second child of the late Lord Sinclair</td><td>-</td></tr>
<tr><td>753</td><td>Carol Sinclair</td><td>9</td><td>The third child of the late Lord Sinclair</td><td>-</td></tr>
<tr><td>754</td><td>David Sinclair</td><td>9</td><td>The fourth child of the late Lord Sinclair</td><td>-</td></tr>
<tr><td>755</td><td>Elizabeth Sinclair</td><td>9</td><td>The fifth child of the late Lord Sinclair</td><td>-</td></tr>
<tr><td>756</td><td>Frank Sinclair</td><td>9</td><td>The sixth child of the late Lord Sinclair</td><td>-</td></tr>
<tr><td>757</td><td>kolodion</td><td>65</td><td>He's a shape shifter</td><td>X</td></tr>
<tr><td>758</td><td>kolodion</td><td>68</td><td>He's a shape shifter</td><td>X</td></tr>
<tr><td>759</td><td>kolodion</td><td>46</td><td>He's a shape shifter</td><td>X</td></tr>
<tr><td>760</td><td>kolodion</td><td>98</td><td>He's a shape shifter</td><td>X</td></tr>
<tr><td>761</td><td>Irvig Senay</td><td>125</td><td>The animated spirit of Irvig Senay</td><td>X</td></tr>
<tr><td>762</td><td>Ranalph Devere</td><td>130</td><td>The animated spirit of Ranalph Devere</td><td>X</td></tr>
<tr><td>763</td><td>Poison Salesman</td><td>7</td><td>Peter Potter - Poison Purveyor</td><td>-</td></tr>
<tr><td>764</td><td>Gujuo</td><td>60</td><td>A tall charismatic looking jungle native - he approaches with confidence</td><td>-</td></tr>
<tr><td>765</td><td>Jungle Forester</td><td>15</td><td>A woodsman who specialises in large and exotic timber</td><td>-</td></tr>
<tr><td>766</td><td>Ungadulu</td><td>75</td><td>An ancient looking Shaman</td><td>X</td></tr>
<tr><td>767</td><td>Ungadulu</td><td>75</td><td>An ancient looking Shaman - he looks very strange with glowing red eyes...</td><td>X</td></tr>
<tr><td>768</td><td>Death Wing</td><td>80</td><td>A supernatural creature of the underworld</td><td>X</td></tr>
<tr><td>769</td><td>Nezikchened</td><td>172</td><td>An ancient powerful Demon of the Underworld...</td><td>X</td></tr>
<tr><td>770</td><td>Dwarf Cannon engineer</td><td>18</td><td>He's the head of black guard weapon development</td><td>-</td></tr>
<tr><td>771</td><td>Dwarf commander</td><td>18</td><td>He guards the mines</td><td>-</td></tr>
<tr><td>772</td><td>Viyeldi</td><td>80</td><td>The spirit of a dead sorcerer</td><td>X</td></tr>
<tr><td>773</td><td>Nurmof</td><td>18</td><td>He sells pickaxes</td><td>-</td></tr>
<tr><td>774</td><td>Fatigue expert</td><td>10</td><td>He looks wide awake</td><td>-</td></tr>
<tr><td>775</td><td>Karamja Wolf</td><td>61</td><td>A hungry</td><td>X</td></tr>
<tr><td>776</td><td>Jungle Savage</td><td>87</td><td>A savage and fearless Jungle warrior</td><td>X</td></tr>
<tr><td>777</td><td>Oomlie Bird</td><td>32</td><td>A variety of flightless jungle fowl - it has a sharp beak and a bad temper.</td><td>X</td></tr>
<tr><td>778</td><td>Sidney Smith</td><td>30</td><td>Sidney Smith - Certification clerk</td><td>-</td></tr>
<tr><td>779</td><td>Siegfried Erkle</td><td>25</td><td>An eccentric shop keeper - related to the Grand Vizier of the Legends Guild</td><td>-</td></tr>
<tr><td>780</td><td>Tea seller</td><td>9</td><td>He has delicious tea to buy</td><td>-</td></tr>
<tr><td>781</td><td>Wilough</td><td>0</td><td>A young son of gertrudes</td><td>-</td></tr>
<tr><td>782</td><td>Philop</td><td>0</td><td>Gertrudes youngest</td><td>-</td></tr>
<tr><td>783</td><td>Kanel</td><td>0</td><td>Gertrudes youngest's twin brother</td><td>-</td></tr>
<tr><td>784</td><td>chamber guardian</td><td>15</td><td>He hasn't seen much sun latley</td><td>-</td></tr>
<tr><td>785</td><td>Sir Radimus Erkle</td><td>10</td><td>A huge muscular man in charge of the Legends Guild</td><td>-</td></tr>
<tr><td>786</td><td>Pit Scorpion</td><td>35</td><td>Very vicious little scorpions</td><td>X</td></tr>
<tr><td>787</td><td>Shadow Warrior</td><td>64</td><td>A sinsistar shadowy figure</td><td>X</td></tr>
<tr><td>788</td><td>Fionella</td><td>25</td><td>She runs the legend's general store</td><td>-</td></tr>
<tr><td>789</td><td>Battle mage</td><td>52</td><td>He kills in the name of guthix</td><td>X</td></tr>
<tr><td>790</td><td>Battle mage</td><td>52</td><td>He kills in the name of zamarok</td><td>X</td></tr>
<tr><td>791</td><td>Battle mage</td><td>52</td><td>He kills in the name of Saradomin</td><td>X</td></tr>
<tr><td>792</td><td>Gundai</td><td>15</td><td>He must get lonely out here</td><td>-</td></tr>
<tr><td>793</td><td>Lundail</td><td>15</td><td>He sells rune stones</td><td>-</td></tr>

File diff suppressed because it is too large Load Diff

View File

@ -1,44 +0,0 @@
{{packet|name=Construct Map Region|description=Constructs the map region|opcode=241|type=Variable Short|length=N/A|revision=317}}
== Construct Map Region ==
=== Description ===
This packet constructs the map region.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Additional Short]]
| The players region y plus 6.
|-
| [[Data Types#Standard data types|Short]]
| The players region x plus 6.
|-
|}
=== Other Information ===
After the region y is sent, you need to initialize the bit access. Then, loop through the z (which can only go up to 3). Still in the for-loop, you need to go through the x's (up to 12). Then, loop through the y's (up to 12).
All of this is in the all three for-loops!
Step 1: Then you'll get the tile of x, y, and z.
Step 2: Then you need to send the bits 1 and (if tile is null) 1 otherwise, 0.
Step 3: Check if the tile is not null. Within this if-statement, you put these bits...
{|border=2
! Method
|-
| putBits(26, tile.getX() << 14 | tile.getY() << 3 | tile.getZ() << 24 | tile.getRotation() << 1)
|-
|}
Out of the for-loops!
Step 1: Finish the bit access and send the region x.
Done.

View File

@ -1,33 +0,0 @@
{{packet|name=Send Player Head|description=Sends player's head on an interface|opcode=185|type=Fixed|length=5|revision=317}}
== Player Dialogue Head ==
=== Description ===
This packet sends the player head to an interface.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Byte]]
| The status of the friends list.
|-
|}
==== Values ====
The below are the different values for this packet.
{| border=2
! Value
! Response
|-
| 0
| Loading
|-
| 1
| Connecting
|-
| 2
| Loaded
|-
|}

View File

@ -1,754 +0,0 @@
[[Category RS2]]
NOTE: This page will have many further updates, once I rename and document the #289 client more.
== '''Packet structure''' ==
When the client sends a packet to the server, the first byte encapsulates its [http://en.wikipedia.org/wiki/Opcode opcode]. This specific opcode is encrypted with a value generated by the [http://en.wikipedia.org/wiki/ISAAC 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].
== '''Login Protocol Overview''' ==
Every connection to the main 'gateway' server sends a single byte of data, mostly well known as the connection type. The connection type tells the main server which type of connection you wish to initiate. The old engine list consists of:
* Login request - connection type 14
* Update - connection type 15
* New connection login - connection type 16
* Reconnecting login - connection type 18
The 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 a small bit of data 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.
<pre>long l = TextUtils.encodeAsBase37Integer(username);
int i = (int) (l >> 16 & 31L);
out.offset = 0;
out.writeByte(14); // Initiate connection type
out.writeByte(i); // "small bit of data derived from... player's username"
in.queueBytes(2, out.payload);
for (int j = 0; j < 8; j++) in.read();</pre>
At this point, the client reads in one byte, called the status code. The status code 0 is expected to start the login protocol correctly. If the status code is 0, the client reads a long, dubbed by many as the server session key. This is used to help generate a unique seed for the client session's packet opcode masking. The client then stores two ints that are the upper and lower ints of the client session key, which has the same purpose as the server's key. The client then starts writing the login block, which is RSA encrypted.
The login block starts with the byte 10, which is considered a magic number. Following it is the client session key and server session key longs. After the session keys, the session's UID (unique identifier or user identifier) is written to the block. This is used to distinguish between multiple sessions. Trailing behind the UID comes the client's username and password written as modified C-strings that are rather terminated with a 10 byte than a NUL byte. This block is then RSA encrypted and stored for later use.
Now starts the login request packet. It starts off with a flag telling the server whether or not the client is reconnecting or connecting for the first time. The byte is 18 or 16, respectively. [NOW CLASSIFIED AS A CONNECTION TYPE] Following is the size of the rest of the login response packet, including the login block that trails at the end, to tip the server how much data it should expect. Later comes the magic number byte 255, and right behind it the client revision short. The packet is just about crafted completely. A flag byte that represents if the client is running in low memory or high memory modes is sent, and after the 9 CRC32 checksums of the file system 0 basic archives (this includes versionlist, media, config, etc.). To top it off, the RSA encrypted login block is appended to the end and the packet is sent to the server.
The ISAAC ciphers are seeded for packet opcode masking after adding 50 to each int of the session keys, and the status code is reread. This finishes the login protocol.
== '''Login Protocol Breakdown''' ==
The login is comprised of four stages in which the client and server switch in regards to which one is reading and which one is writing.
<br/>
===Variables:===
The login process has a lot of variable data, compiled here is a list of the variables and their different values.
====Name Hash====
A hash of the player name, thought to be used to select an appropriate login server. This has no use in current private servers.
====Server Session Key====
The server-session-key is one of two ciphers used to encrypt the game protocol, using the ISAAC algorithms.
<br/>
===="Data File Version"====
<!-- Colby -->
The CRC checks for the cache files.
<br/>
====User ID====
The ID of the user.
<br/>
====Username====
The username of the player, used to identify their account.
<br/>
====Password====
The password of the player account, used so only they can log into their account.
<br/>
====Client Session Key====
The client-session-key is one of two ciphers used to encrypt the game protocol, using the ISAAC algorithms.
<br/>
====Connect Status====
The status of the connection.
{|border=2
! Value
! Status
|-
| 16
| Signifies that the connection is new.
|-
| 18
| Signifies that the session is reconnecting a previously lost connection.
|-
|}
====Size====
The size of the unencrypted login packet, used to determine how many bytes need to be read from the stream by the server.
<br/>
====Client Version====
The memory-version of the game client.
{|border=2
! Value
! Status
|-
| 0
| Signifies the client is a low-memory client.
|-
| 1
| Signifies that the client is a high-memory client.
|-
|}
====CRC Values====
9 4-byte values, Each containing the CRC of their respective cache files. Used by the server to verify client is up to date.
<br/>
====Player Status====
The in-game player status - player, player moderator, or administrator.
<br/>
{|border=2
! Value
! Status
|-
| 0
| Signifies that this player is a normal player.
|-
| 1
| Signifies that this player is a player moderator.
|-
| 2
| Signifies that this player is an administrator.
|-
|}
====Flagged====
If set to 1, information about mouse movements etc. are sent to the server. Suspected bot accounts are flagged.
<br/>
====Response Codes====
At the beginning and end of the login procedure, we send different values to the client to allow or deny a login. The various values show different messages on the login box on the client or do something internally.
<br/>
{| border=2
! Value
! Response
|-
| -1
| Waits for 2000ms and tries again while counting failures.
|-
| 0
| Exchanges session keys, player name, password, etc.
|-
| 1
| Waits for 2000ms and tries again.
|-
| 2
| Client made a successful login.
|-
| 3
| "Invalid username or password."
|-
| 4
| "Your account has been disabled. Please check your message-center for details."
|-
| 5
| "Your account is already logged in. 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 unregistered for quite some time. This can be best witnessed when the client forcefully closes the connection while in combat. If you're quick enough before the player dies or kills the NPC, login attempts during that time return that the account is already logged in. This probably explains why the message says "try again in 60 seconds", and they just reused the response when the player is truly logged in.
Going along with this "players aren't offline yet" idea, when the client experiences some lag and performs a reconnect, it sends byte 18 as it's [[#Connect Status|connection type]] to the server.
The server most likely saves this as a boolean (reconnect = var == 18;). When the login is entirely validated, meaning the password's are okay and the server isn't full, it can either send back the normal response, 2, or 15.
But why 15? If you look at the client code, you'll see that the chat messages aren't cleared. If you've ever had a poor connection you've noticed that your chat stays there upon a reconnect, and this is exactly why.
<!-- thanks to Colby for this contribution-->
When you implement response code 15 though, you do NOT need to send the "player status" or the "flagged" bytes.
===Login Process:===
====Stage 1: Client -> Server====
{| border=2
|-
! Data Type
! Value
|-
| ubyte
| 14
|-
| ubyte
| "name hash"
|-
|}
<br/>
====Stage 2: Server -> Client====
{| border=2
|-
! Data Type
! Value
|-
| byte
| 0
|-
| byte
| 0
|-
| byte
| 0
|-
| byte
| 0
|-
| byte
| 0
|-
| byte
| 0
|-
| byte
| 0
|-
| byte
| 0
|-
| byte
| "response code"
|-
| [[QWord|long]]
| "server session key"
|-
|}
<br/>
====Stage 3: Client -> Server====
{| border=2
|-
! Data Type
! Value
|-
| byte
| "connect status"
|-
| byte
| "size"
|-
| byte
| 255
|-
| [[Word|short]]
| 289
|-
| byte
| "client version"
|-
| [[DWord|int]]
| "crc values"[0]
|-
| [[DWord|int]]
| "crc values"[1]
|-
| [[DWord|int]]
| "crc values"[2]
|-
| [[DWord|int]]
| "crc values"[3]
|-
| [[DWord|int]]
| "crc values"[4]
|-
| [[DWord|int]]
| "crc values"[5]
|-
| [[DWord|int]]
| "crc values"[6]
|-
| [[DWord|int]]
| "crc values"[7]
|-
| [[DWord|int]]
| "crc values"[8]
|-
| byte
| 10 or "RSA header"
|-
| [[QWord|long]]
| "client session key"
|-
| [[QWord|long]]
| "server session key"
|-
| [[DWord|int]]
| "user id"
|-
| [[RS String|RS String]]
| "username"
|-
| [[RS String|RS String]]
| "password"
|-
|}
<br/>
====Stage 4: Server -> Client====
{| border=2
|-
! Data Type
! Value
|-
| byte
| "response code"
|-
| byte
| "player status"
|-
| byte
| "flagged"
|-
|}
<br/>
== '''Player Updating''' ==
Yes, the player updating procedure IS different than 317.
The player updating process consists of 4 parts:
* a) Our player movement updates
* b) Other player movement updates
* c) Player list updating
* c.a) Apperance updating
* c.b) Location updating
* d) Player update block flag-based updates
'''Our player movement updates'''
The client begins by reading 1 bit. This bit tells the client whether or not it is currently updating
'our player', or the player the client is controlling. If it's not updating our player, it exits and goes onto step b.
If it is, it then reads 2 bits. The value is called the movement update type. There are 4 recognized movement update types:
* Type 0 basically tells the client there is nothing to update for our player, just add its index to the local updating list.
* Type 1 tells the client you moved in one direction. The client reads 3 bits, which represents the direction you moved in, and then 1 bit, which states whether further update is required. If so, it adds it to the updating list. This is used in walking.
* Type 2 functions in much of the same way as its previous, only this time it reads two 3 bit values. The first represents the player's last direction, and the second it's current direction. Trailing behind it is also the 1 bit 'update required' flag as type 1. This is used in running.
* Type 3 on the other hand is different. It reads in 2 bits which represents our player's plane, or its level of height, in the game world. Only 0-3 inclusive are appropriate planes supported by the client. It then reads two 7 bit quantities, representing the new relative X and relative Y coordinates of our player to our current map region's origin. It then sets our players position to the plane, x, and y positions as told to. Directly after it reads 1 bit, which describes whether or not to clear the awaiting-waypoint queue, basically to stop client from further queued stepping, such as used in teleporting.
Finally, it reads the 'update required' bit, and checks to see if further update is required.
'''Other player movement updates'''
The client begins by reading an 8 bit value telling the client how many players there are to update. It then enters a loop
for each player there is to update.
Inside this loop, the client reads 1 bit. This is the movement update required flag. If the flag is 0, it sets the current updating player's last update cycle time to the current game logic loop cycle time, and adds the player to the local player list. If the flag is not 0, it then reads the movement update type, which is a 2 bit quantity. The following known types are:
* 0, the client updates the current player's last update cycle time, adds the current player to the local player list, and adds it to the updating list.
* 1, the client updates the current player's last update cycle time and adds the current player to the local player list as well, but also reads in 3 bit quantity. This represents the current player's direction it walked to. It then reads the a 1 bit value that specifies whether or not to add the player to the updating list.
* 2, the client does the exact same thing as the type 2 update, except it reads in two of the 3 bit quantities. The first represents the current player's last direction, and the second its current direction running.
* 3, it only adds the player to the needing-update list, or so believed. Type 3 is not well known.
'''Player list updating'''
The next step in the player updating procedure is the player list updating, or where the client recieves data on every player in its local list, such as appearance and location relative to ours. The client loops through a process for each player in the updating.
The client reads an 11 bit quantity from the buffer, which is the next player in the updated list to be informed about. The client then checks if it has a cached buffer for that player's updating, and if it does, it updates the player appearance.
'''Appearance updating'''
Appearance updating starts off by first reading an unsigned byte that represents the current player's gender. Then it reads another unsigned byte that represents the player's over-head icon id. This is used with prayer icons above heads. Next, a loop occurs 12 times to read equipment data.
In the loop, the client reads an unsigned byte that is the equipment slot's item id high byte. If it is 0, the player's equpment slot has no item. If it is not 0, another unsigned byte is read the merged with the previous to create the equipment's item id. If the id is 65535 (written as a -1 signed short), then the player's appearance is that of an NPC. The client reads in an unsigned short representing the NPC's id and sets the player's definition to that NPC's.
After the equipment loop, it loops 5 times, once for each type of coloured body part. In each loop, the client reads an unsigned short and assigns it as the color of the current loop idx (which represents the body part).
Finally, after the color loop, the client reads 7 unsigned shorts representing animation indices; the animations belong to:
* Standing still
* Turning while standing
* Walking
* Turning around (backwards)
* Turning a quarter-way clockwise
* Turning a quarter-way counter clockwise
* Running
After these animation indices are read, a long representing the player's name is read, an unsigned byte representing the combat level, and an unsigned short representing
the players skill level (for things where players arent ranked by levels, such as where it states '<player name> (skill <skill>)' as an action menu text).
'''Location updating'''
After the appearance updating, the client starts to update that player's location relative to our player. The player is added to the local player list and it's last update cycle time. It then reads to 5 bit values that determine the players relative X and Y coordinates to our player. The local player area is 16x16, so if the delta of the two coordinates is > 15, 32 is subtracted from it to signify the player is on the other side of ours. It then reads a 1 bit quantity that defines whether or not the client has a chunk in the player update block list. If it does, it adds it to the updating list. At this point the client then sets the player's position. The next bit states whether or not to discard the awaiting-waypoint queue, such as when teleporting, ending the player list updating process.
'''Update block flag-based updating'''
The following is what most people think of when they say 'update mask' and 'update flag'. This process of the updating procedure is very important. It begins with looping through ALL players in the local player update list, reading an unsigned byte which from now on will be called the update flag. All further updates are seen to be 'included' by comparing a bitwise mask to this flag. If the flag has the bits for 0x40 all on, this signifies that the flag was too large for a simple unsigned byte and reads in another unsigned byte, which it uses as the upper unsigned byte, therefore the update flag is an unsigned little-endian short. The client then passes off the data to a helper method which processes all updates this flag signifies.
Inside this method, many different bitwise masks are compared to the player's flag, and if the mask is set, logic is performed. These masks are frequently called update masks. A list of player update masks are below:
* '''0x200''' The 0x200 mask is used to update the player so they appear to be asynchronously animating and walking. This mask is often used for the [http://runescape.wikia.com/wiki/Agility Agility] skill. The data associated goes in order of: byte (type C) which is the first location's X coordinate value, byte (type S) which is the first location's Y coordinate value, byte (type S) which is the second location's X coordinate value, byte (type C) the second location's Y coordinate value. After the locations are written, there is a required movement speed which is written as a short which marks how fast to move from position 1 to position 2. Another short (type A) is written as the movement speed going from position 2 to position 1. Finally one byte is written to end the mask block, which marks the direction.
* '''0x100''' The 0x100 mask is responsible for player graphics updating. The data associated is a little-endian unsigned short which represents the graphics id, and an int which is the graphics delay.
* '''0x2''' Animations are handled by the 0x2 mask. The payload for this update is a little-endian unsigned short that is the animation id, and an unsigned inversed byte which states the animation's delay.
* '''0x8''' The beloved 0x8 mask takes care of forced player text that is only displayed above the player's model. The only data associated with this is a jagex ASCII string with a terminator of 10.
* '''0x40''' Unlike the previous, the 0x40 mask handles normal player chat text. The client will read a little-endian unsigned short which holds chat text attributes. It holds the text color and chat effects. Next, the client reads an unsigned byte which states the player's priveleges (normal player, player moderator, moderator, staff) to give the chatter's name a crown. Right behind it trails an unsigned inversed byte that gives chat text length in bytes. Trailing afterwards is dictionary-compressed chat text. All chat text characters become indexes into a valid character table and are written as nibbles (4 bit quantities).
* '''0x4''' Updating the player's current interacting-entity is done via mask 0x4. The entity id is written as a little-endian unsigned short.
* '''0x1''' The 0x1 mask updates appearance of the player in exact same way as in updating player list. Only difference is that appearance is updated from a set-sized buffer filled from the current buffer. An unsigned inversed byte is read first which describes appearance buffer size, and the buffer is filled.
* '''0x20''' Facing coordinate updating is signified by the 0x20 mask. The player's facing-towards X and Y are set to read values; specifically, an unsigned lower-inverted short and little-endian unsigned short, respectively.
* '''0x10''' Notifying client's of a player's health is done via the 0x10 mask. The hitpoint damage done to the player is sent as an unsigned byte, followed by the hit type as a positive inverted byte. The player's current and max health are read as an unsigned inverted byte and unsigned byte, respectively.
* '''0x400''' The 0x400 mask acts in the same way as the 0x10 mask and is most likely associated with special attacks from weapons that have the ability to hit twice at the same time. Hitpoint damage is an unsigned byte, the hit type an unsigned inverted byte, and the current and maximum health being an unsigned byte and unsigned inverted byte, respectively.
After the client processes every single player in the update player list, it ends player updating.
==Game Protocol==
The game protocol is the in-game communication of player actions between the server and client.
<br/>
===Server -> Client Packets===
{| border=2
|-
! Opcode
! Type
! Length (bytes)
! Name
! Description
|-
| 13
| FIXED
| 3
| [[289 Chat settings|Chat settings]]
| Sends the chat privacy settings.
|-
| 18
| FIXED
| 6
| [[289 Interface item|Interface item]]
| Displays an item model inside an interface.
|-
| 21
| VARIABLE_BYTE
| N/A
| [[289 Send player option|Send player option]]
| Sends a player option (when a player is right clicked, i.e. "Follow").
|-
| 23
| FIXED
| 0
| [[289 Clear screen|Clear screen]]
| Clears the screen of all open interfaces.
|-
| 30
| FIXED
| 5
| [[289 Send player head|Send player head]]
| Sends the players dialogue head on an interface.
|-
| 46
| FIXED
| 2
| [[289 Weight|Weight]]
| Sends the players weight.
|-
| 47
| VARIABLE_SHORT
| N/A
| [[289 Send add ignore|Send add ignore]]
| Sends a ignored player to the ignore list.
|-
| 55
| FIXED
| 4
| [[289 Inventory overlay|Inventory overlay]]
| Displays an interface over the sidebar area.
|-
| 59
| VARIABLE_SHORT
| N/A
| [[289 Set interface text|Set interface text]]
| Attaches text to an interface.
|-
| 63
| FIXED
| 3
| [[289 Send sidebar interface|Send sidebar interface]]
| Assigns an interface to one of the tabs in the game sidebar.
|-
| 76
| FIXED
| 32
| [[289 Send update item|Send update item]]
| Updates an item on an interface.
|-
| 79
| FIXED
| 6
| [[289 Interface offset|Interface offset]]
| Sets the offset for drawing of an interface.
|-
| 81
| FIXED
| 2
| [[289 Chat interface|Chat interface]]
| Shows an interface in the chat box.
|-
| 107
| FIXED
| 2048
| [[289 Send update items|Send update items]]
| Updates more than one item on an interface.
|-
| 119
| FIXED
| 2
| [[289 Show interface|Show interface]]
| Displays a normal interface.
|-
| 120
| FIXED
| 3
| [[289 Initialize player|Initialize player]]
| Sends their current index on the server's player list and the player's membership status.
|-
| 121
| FIXED
| 0
| [[289 Logout|Logout]]
| Disconnects the client from the server.
|-
| 133
| FIXED
| 0
| [[289 Reset camera|Reset camera]]
| Resets the camera position.
|-
| 154
| FIXED
| N/A
| [[317 Send Skill|Send Skill]]
| Sends a specific skill.
|-
| 155
| FIXED
| 3
| [[317 Send position|Send position]]
| Sends the coordinates of the player.
|-
| 160
| FIXED
| 4
| [[289 Interface color|Interface color]]
| Changes the color of an interface.
|-
| 168
| FIXED
| 9
| [[289 Send add friend|Send add friend]]
| Sends a friend to the friend list.
|-
| 172
| FIXED
| 0
| [[289 Reset button state|Reset button state]]
| Resets the button state for all buttons.
|-
| 177
| FIXED
| 6
| [[289 Send sound|Send sound]]
| Instructs the client to play a sound.
|-
| 181
| FIXED
| 1
| [[289 Flash sidebar|Flash sidebar]]
| Causes a sidebar icon to start flashing.
|-
| 184
| FIXED
| 4
| [[289 Scroll position|Scroll position]]
| Sets the scrollbar position of an interface.
|-|
| 185
| FIXED
| 5
| [[289 Send Player Head|Send Player Head]]
| Sends the player's head on an interface.
|-
| 187
| FIXED
| 3
| [[289 Play song|Play song]]
| Instructs the client to play a song.
|-
| 188
| N/A
| N/A
| [[289 Protocol#Player Updating|Player updating]]
| See player updating (above) for more information.
|-
| 195
| FIXED
| 1
| [[289 Run energy|Run energy]]
| Sends the players run energy level.
|-
| 196
| VARIABLE_BYTE
| N/A
| [[289 Send message|Send message]]
| Sends a server message (e.g. 'Welcome to RuneScape') or trade/duel request.
|-
| 200
| FIXED
| 4
| [[289 Interface animation|Interface animation]]
| Sets an interface's model animation.
|-
| 201
| FIXED
| 0
| [[289 Animation reset|Animation reset]]
| Resets all animations in the immediate area.
|-
| 204
| FIXED
| 2
| [[289 System update|System update]]
| Sends how many seconds until a 'System Update.'
|-
| 208
| FIXED
| 4
| [[289 Camera shake|Camera shake]]
| Causes the camera to shake.
|-
| 219
| FIXED
| 4
| [[289 Load map region|Load map region]]
| Loads a new map region.
|-
| 221
| FIXED
| 1
| [[317 Friends list status|Friends list status]]
| Friends list load status.
|-
| 243
| VARIABLE_BYTE
| N/A
| [[289 Send private message|Send private message]]
| Sends a private message to another player.
|-
| 241
| VARIABLE_SHORT
| N/A
| [[289 Construct Map Region|Construct Map Region]]
| Constructs the map region.
|-
| 244
| FIXED
| 5
| [[289 Send Npc Head|Send Npc Head]]
| Sends the dialogue head of an npc on an interface.
|-
| 247
| FIXED
| 1
| [[289 Minimap State|Minimap State]]
| Sets the mini map's state.
|-
| 253
| FIXED
| 10
| [[289 Open welcome screen|Open welcome screen]]
| Displays the welcome screen.
|-
|}
===Client -> Server Packets===
{| border=2
|-
! Opcode
! Type
! Length (bytes)
! Name
! Description
|-
| 235
| FIXED
| 8
| [[289 Add friend|Add friend]]
| Sent when a player adds a friend to their friend list.
|-
|}

View File

@ -1,17 +0,0 @@
{{packet|name=Send player head|description=Sends the player head on an interface|opcode=185|type=Fixed|length=5|revision=317}}
== Friends List Status ==
=== Description ===
This packet sends the first list load status.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Little Endian Short-A]]
| The interface Id.
|-
|}

View File

@ -1,19 +0,0 @@
{{packet|name=Send Sidebar Interface|description=Sends the sidebar interfaces|opcode=63|type=Fixed|length=3|revision=317}}
== Send Sidebar Interface ==
=== Description ===
This packet sends the sidebar interfaces
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Short]]
| The interface Id.
|-
| [[Data Types#Standard data types|Byte]]
| The icon.
|-
|}

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Add friend|description=Sent when a player adds a friend to their friends list.|opcode=188|type=Fixed|length=8|revision=317}}
== Add Friend ==
=== Description ===
This packet is sent when a player adds a friend to their friends list.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Long]]
| The other players ID.
|-
|}

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Add ignore|description=Sent when a player adds another player to their ignore list.|opcode=133|type=Fixed|length=8|revision=317}}
== Add Ignore ==
=== Description ===
This packet is sent when a player adds another player to their ignore list.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Long]]
| The other players ID.
|-
|}

View File

@ -1,26 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Alternate Item Option 2|description=Sent when the player clicks the alternate second option of an item.|opcode=16|type=Fixed|length=6|revision=317}}
== Alternate Item Option 2 ==
=== Description ===
This packet is sent when a player clicks the alternate second option of an item.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The ID of the item.
|-
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The slot the item is in.
|-
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The frame ID.
|-
|}

View File

@ -1,8 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Animation reset|description=Resets all animations in the immediate area. |opcode=1|type=Fixed|length=0|revision=317}}
== Animation Reset ==
=== Description ===
Resets all animations for players and npcs in the surrounding area.

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Attack (NPC)|description=Sent when a player attacks an NPC|opcode=72|type=Fixed|length=2|revision=317}}
== Attack (NPC) ==
=== Description ===
This packet is sent when a player attacks an NPC.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| Unsigned [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The NPC ID.
|-
|}

View File

@ -1,24 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Audio|description=Sets what audio/sound is to play at a certain moment.|opcode=147|type=Fixed|length=N/A|revision=317}}
== Audio ==
=== Description ===
Sets what audio/sound is to play at a certain moment.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Word|Word]]
| The sound id.
|-
| [[Data Types#Byte|Byte]]
| The volume.
|-
| [[Data Types#Word|Word]]
| The delay.
|-
|}

View File

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

View File

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

View File

@ -1,24 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Bank x items part-1|description=Sent when a player requests to bank an X amount of items.|opcode=135|type=Fixed|length=6|revision=317}}
== Bank X Items Part-1 ==
=== Description ===
This packet is sent when a player requests to bank an X amount of items.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The items slot.
|-
| Unsigned [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The interface ID.
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The item ID.
|-
|}

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=bank x items part-2|description=Sent when a player enters an X amount of items they want to bank.|opcode=208|type=Fixed|length=4|revision=317}}
== Bank X Items Part-2 ==
=== Description ===
This packet is sent when a player enters an X amount of items they want to bank.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Integer]]
| The amount of the item you want to bank.
|-
|}

View File

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

View File

@ -1,7 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
== Player Updating ==
=== Description ===
This packet begins the player updating.

View File

@ -1,19 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Button click|description=Sent when a player clicks an in-game button.|opcode=185|type=Fixed|length=2|revision=317}}
== Button click ==
=== Description ===
This is sent when a player clicks a button in-game, with the id of the button being clicked.
=== Packet Structure ===
{| border=2
! Data type
! Description
|-
| [[Data Types#Standard data types|Short]]
| The button id.
|-
|}

View File

@ -1,21 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Camera movement|description=Sent when the player moves the camera.|opcode=86|type=Fixed|length=4|revision=317}}
== Camera Movement ==
=== Description ===
This packet is sent when a player moves their game camera.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Short]]
| The Y coordinate of the camera.
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The X coordinate of the camera.
|-
|}

View File

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

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Chat interface click|description=Received when a button is pressed, in a chat interface.|opcode=40|type=Fixed|length=2|revision=317}}
== Chat interface click ==
=== Description ===
Received by the server when a button is pressed in a chat interface [http://rswiki.moparisthebest.com/index.php?title=317:Chat_interface].
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Short]]
| Frame ID.
|-
|}

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Chat interface|description=Shows an interface in the chat box.|opcode=164|type=Fixed|length=2|revision=317}}
== Chat Interface ==
=== Description ===
This packet attaches an interface to the chat box.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The interface ID.
|-
|}

View File

@ -1,24 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Chat settings|description=Sends the chat privacy settings|opcode=206|type=Fixed|length=3|revision=317}}
== Chat Settings ==
=== Description ===
This packet sends the chat privacy settings.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Byte]]
| Public chat setting.
|-
| [[Data Types#Standard data types|Byte]]
| Private chat setting.
|-
| [[Data Types#Standard data types|Byte]]
| Trade setting.
|-
|}

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Clear Inventory|description=Used to set all of the items and item stacks in an inventory to nothing.|opcode=72|type=Fixed|length=2|revision=317}}
== Clear inventory ==
=== Description ===
This packet creates a loop through a given inventory interface id and sets the item ids to negative one and the item stacks to zero.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The interface ID.
|-
|}

View File

@ -1,8 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Clear screen|description=Clears the screen of all open interfaces.|opcode=219|type=Fixed|length=0|revision=317}}
== Clear Screen ==
=== Description ===
Removes all open interfaces from the players screen.

View File

@ -1,8 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Close window|description=Sent when a player presses the close, exit or cancel button on an interface.|opcode=130|type=Fixed|length=0|revision=317}}
== Close Window ==
=== Description ===
This packet is sent when a player presses the close, exit or cancel button on an interface.

View File

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

View File

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

View File

@ -1,54 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Design screen|description=Sent when a player is choosing their character design options.|opcode=101|type=Fixed|length=13|revision=317}}
== Design Screen ==
=== Description ===
This packet is sent when a player is choosing their character design options.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Byte]]
| The players gender.
|-
| [[Data Types#Standard data types|Byte]]
| The players head model.
|-
| [[Data Types#Standard data types|Byte]]
| The players beard model.
|-
| [[Data Types#Standard data types|Byte]]
| The players torso model.
|-
| [[Data Types#Standard data types|Byte]]
| The players arm model.
|-
| [[Data Types#Standard data types|Byte]]
| The players hand model.
|-
| [[Data Types#Standard data types|Byte]]
| The players leg model
|-
| [[Data Types#Standard data types|Byte]]
| The players foot model.
|-
| [[Data Types#Standard data types|Byte]]
| The players hair color.
|-
| [[Data Types#Standard data types|Byte]]
| The players torso color.
|-
| [[Data Types#Standard data types|Byte]]
| The players leg color.
|-
| [[Data Types#Standard data types|Byte]]
| The players foot color.
|-
| [[Data Types#Standard data types|Byte]]
| The players skin color.
|-
|}

View File

@ -1,59 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Display hint icon|description=Display a hint icon to the player.|opcode=254|type=Variable Byte|length=N/A|revision=317}}
== Display Hint Icon ==
=== Description ===
Displays a hint icon.
=== Packet Structure ===
{| border=2
! Data type
! Description
|-
| [[Data Types#Standard data types|Byte]]
| The Icon type
|-
|}
=== if type == 1 ===
{| border=2
! Data type
! Description
|-
| [[Data Types#Standard data type|Short]]
| Icon NPC target
|-
|}
=== if type >= 2 && type <= 6 ===
{| border=2
! Data type
! Description
|-
| [[Data Types#Standard data type|Short]]
| Icon X
|-
| [[Data Types#Standard data type|Short]]
| Icon Y
|-
| [[Data Types#Standard data types|Byte]]
| Icon draw height
|-
|}
=== if type == 10 ===
{| border=2
! Data type
! Description
|-
| [[Data Types#Standard data type|Short]]
| Icon player target
|-
|}

View File

@ -1,24 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Drop item|description=Sent when a player wants to drop an item onto the ground.|opcode=87|type=Fixed|length=6|revision=317}}
== Drop Item ==
=== Description ===
This packet is sent when a player wants to drop an item onto the ground.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The item ID.
|-
| [[Data Types#Standard data types|Short]]
| The frame ID.
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The slot ID.
|-
|}

View File

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

View File

@ -1,25 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Equip item|description=Sent when a player equips an item.|opcode=41|type=Fixed|length=6|revision=317}}
== Equip Item ==
=== Description ===
This is sent when a player equips an item in-game.
=== Packet Structure ===
{| border=2
! Data type
! Description
|-
| Unsigned [[Data Types#Standard data types|Short]]
| The ID of the item.
|-
| Unsigned [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The slot of the item.
|-
| Unsigned [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The ID of the interface.
|-
|}

View File

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

View File

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

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Follow|description=Sent when a player clicks the follow option on another player|opcode=39|type=Fixed|length=2|revision=317}}
== Follow ==
=== Description ===
This packet is sent when a player clicks the follow option on another player.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| Unsigned [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The other players ID.
|-
|}

View File

@ -1,26 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Force client setting|description=Forcefully alters a client setting value and default value to some supplied value.|opcode=36|type=Fixed|length=3|revision=317}}
== Force Client Setting ==
=== Description ===
The client stores various user settings in an array, the default values are also stored in another array. This packet changes the default value for a setting and its current value to the one given.
=== Packet Structure ===
{| 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.

View File

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

View File

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

View File

@ -1,22 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Hidden interface|description=Sets an interface to be hidden until hovered over.|opcode=171|type=Fixed|length=3|revision=317}}
== Hidden Interface ==
=== Description ===
Sets an interface to be hidden until hovered over.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Byte]]
| Hidden until hovered
|-
| [[Data Types#Standard data types|Short]]
| Interface Id
|-
|}

View File

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

View File

@ -1,8 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Idle|description=Idle packet..|opcode=0|type=Fixed|length=0|revision=317}}
== Idle ==
=== Description ===
Sent when the player is idle for the current cycle, and acts as a "ping" packet.

View File

@ -1,22 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Initialize player|description=Sends the player's membership status and their current index on the server's player list.|opcode=249|type=Fixed|length=3|revision=317}}
== Initialize Player ==
=== Description ===
Sends the player membership flag and player list index.
=== Packet Structure ===
{| border=2
! Data type
! Description
|-
| [[Data Types#Standard data types|Byte]] [[Data Types#Non Standard Data Types|Special A]]
| Membership flag (1 = member, 0 = free).
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| Player list index.
|-
|}

View File

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

View File

@ -1,21 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Interface animation|description=Sets an interface's model animation|opcode=200|type=Fixed|length=4|revision=317}}
== Interface animation ==
=== Description ===
Sets an interface's model animation.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Short]]
| The interface ID
|-
| [[Data Types#Standard data types|Short]]
| The animation ID
|-
|}

View File

@ -1,39 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Interface color|description=This packet changes the color of an interface that is text.|opcode=122|type=Fixed|length=4|revision=317}}
== Interface Color ==
=== Description ===
This packet changes the color of an interface that is text.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The interface ID.
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The color.
|-
|}
=== Information ===
You use this packet to change the color of text in an interface.
{|border=2
! Color
! Code
|-
| Green
| 0x3366
|-
| Yellow
| 0x33FF66
|-
| Red
| 0x6000
|-
|}

View File

@ -1,21 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Interface item|description=Displays an item model inside an interface.|opcode=246|type=Fixed|length=6|revision=317}}
== Interface Item ==
=== Description ===
Displays an item model inside an interface.
=== Packet Structure ===
{| border=2
! Data type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] || Interface ID.
|-
| [[Data Types#Standard data types|Short]] || The item's model zoom.
|-
| [[Data Types#Standard data types|Short]] || The item ID.
|}

View File

@ -1,27 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Interface model rotation|description=Changes the zoom and rotation of the interface id's media given.|opcode=230|type=Fixed|length=8|revision=317}}
== Interface Color ==
=== Description ===
Changes the zoom and rotation of the interface id's media given.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Word]] [[Data Types#Non Standard Data Types|Special A]]
| The zoom.
|-
| [[Data Types#Standard data types|Word]]
| The interface id.
|-
| [[Data Types#Standard data types|Word]]
| The rotation1.
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Word]] [[Data Types#Non Standard data types|Special A]]
| The rotation2.
|-
|}

View File

@ -1,24 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Interface offset|description=Sets the offset for drawing of an interface|opcode=70|type=Fixed|length=6|revision=317}}
== Interface offset ==
=== Description ===
Sets the offset for drawing of an interface.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Short]]
| The X offset
|-
| [[Data Types#Byte Order|Little Endian]] [[Data Types#Standard data types|Short]]
| The Y offset
|-
| [[Data Types#Byte Order|Little Endian]] [[Data Types#Standard data types|Short]]
| The interface ID
|-
|}

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Interface over tab|description=Draws an interface over the tab area.|opcode=106|type=Fixed|length=1|revision=317}}
== Open Welcome Screen ==
=== Description ===
This packet draws an interface over the tab area.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data type|Byte]] [[Data Types#Non Standard data types|Special C]]
| Interface ID
|-
|}

View File

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

View File

@ -1,24 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Item action 1|description=Sent when the player clicks the first option of an item.|opcode=122|type=Fixed|length=6|revision=317}}
== Item Action 1 ==
=== Description ===
This packet is sent when a player clicks the first option of an item, such as "Bury" for bones or "Eat" for food.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The frame ID.
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The slot the item is in.
|-
| [[Data Types#LITTLE Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The ID of the item.
|-
|}

View File

@ -1,33 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Item on floor|description=Sent when a player uses an item on another item thats on the floor.|opcode=25|type=Fixed|length=10|revision=317}}
== Item on Floor==
=== Description ===
This packet is sent when a player uses an item on another item thats on the floor.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The interface ID.
|-
| Unsigned [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The item being used ID.
|-
| [[Data Types#Standard data types|Short]]
| The floor items ID.
|-
| Unsigned [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The Y coordinate of the item.
|-
| Unsigned [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The items slot ID.
|-
| [[Data Types#Standard data types|Short]]
| The X coordinate of the item.
|-
|}

View File

@ -1,21 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Item on item|description=Sent when a player uses an item on another item.|opcode=53|type=Fixed|length=4|revision=317}}
== Item on Item ==
=== Description ===
This packet is sent when a player uses an item on another item.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Short]]
| The item being used on's slot.
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The item being used's slot.
|-
|}

View File

@ -1,33 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Item on object|description=Sent when a player uses an item on an objet.|opcode=192|type=Fixed|length=12|revision=317}}
== Item on Object ==
=== Description ===
This packet is sent when a player uses an item on object.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The frame ID.
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The object ID.
|-
| [[Data Types#Big Endian|Big Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The objects Y coordinate.
|-
| [[Data Types#Big Endian|Big Endian]] [[Data Types#Standard data types|Short]]
| The items slot ID.
|-
| [[Data Types#Big Endian|Big Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The objects X coordinate.
|-
| [[Data Types#Standard data types|Short]]
| The item ID.
|-
|}

View File

@ -1,27 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Item on player|description=Sent when a player uses an item on another player.|opcode=14|type=Fixed|length=8|revision=317}}
== Item on Player ==
=== Description ===
This packet is sent when a player uses an item on another player.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The frame ID.
|-
| [[Data Types#Standard data types|Short]]
| The other players ID.
|-
| [[Data Types#Standard data types|Short]]
| The item ID.
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The items slot ID.
|-
|}

View File

@ -1,24 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Light item|description=Sent when a player attempts to light logs on fire.|opcode=79|type=Fixed|length=6|revision=317}}
== Light Item ==
=== Description ===
This packet is sent when a player attempts to light logs on fire.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Short]]
| The items Y coordinate.
|-
| Unsigned [[Data Types#Standard data types|Short]]
| The item ID.
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The items X coordinate.
|-
|}

View File

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

View File

@ -1,8 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Loading finished|description=Sent when the player is finished loading a map region|opcode=121|type=Fixed|length=0|revision=317}}
== Loading Finished ==
=== Description ===
This packet is sent when a player is finished loading a new map region.

View File

@ -1,8 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Logout|description=Forces the client to logout.|opcode=109|type=Fixed|length=0|revision=317}}
== Logout ==
=== Description ===
Forces the client to logout cleanly and return to the login screen, without attempting a reconnection.

View File

@ -1,17 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Mage NPC|description=Sent when a player attempts to use a magic attack on an NPC.|opcode=131|type=Fixed|length=4|revision=317}}
== Mage NPC ==
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Non Standard Data Types|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| ?
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| ?
|-
|}

View File

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

View File

@ -1,20 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Magic on player|description=This packet is send when a player attempts to cast magic on another|opcode=249|type=Fixed|length=4|revision=317}}
== Magic on Player ==
=== Description ===
This packet is sent when the player attempts to cast magic onto another.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The player index.
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Byte Order|Little]]
| The spell ID.
|-
|}

View File

@ -1,23 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Minimap State|description=Sets the state of the clients minimap.|opcode=99|type=Fixed|length=1|revision=317}}
== Minimap State ==
=== Description ===
This packet sets the Minimaps state
'''States:'''
* 0 - '''Active''': Clickable and viewable
* 1 - '''Locked''': viewable but not clickable
* 2 - '''Blacked-out''': Minimap is replaced with black background
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#byte|byte]]
| The state.
|-
|}

View File

@ -1,27 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Move item|description=Sent when the player moves an item from one slot to another.|opcode=214|type=Fixed|length=7|revision=317}}
== Move Item ==
=== Description ===
This packet is sent when a player moves an item from one slot to another.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The frame ID.
|-
| [[Data Types#Standard data types|Byte]]
| Insert mode.
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| Starting slot.
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| New slot.
|-
|}

View File

@ -1,24 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Audio|description=Sets the audio to play.|opcode=174|type=Fixed|length=N/A|revision=317}}
== Audio ==
=== Description ===
Sets what audio to play at a certain moment.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Word|Word]]
| The sound id.
|-
| [[Data Types#Byte|Byte]]
| The volume.
|-
| [[Data Types#Word|Word]]
| The delay.
|-
|}

View File

@ -1,17 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=NPC action 1|description=Sent when a player clicks the first option of an NPC.|opcode=155|type=Fixed|length=2|revision=317}}
== NPC Action 1 ==
=== Description ===
This packet is sent when a player clicks the first option of an NPC.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The NPC index.
|}

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=NPC action 2|description=Sent when a player clicks the second action of an NPC.|opcode=17|type=Fixed|length=2|revision=317}}
== NPC Action 2 ==
=== Description ===
This packet is sent when a player clicks the second action of an NPC.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The NPC index.
|-
|}

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=NPC action 3|description=Sent when a player clicks the third option of an NPC.|opcode=21|type=Fixed|length=2|revision=317}}
== NPC Action 3 ==
=== Description ===
This packet is sent when a player clicks the third option of an NPC.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| Unsigned [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The NPC index.
|-
|}

View File

@ -1,21 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=NPC head on interface|description=Places the head of an NPC on an interface|opcode=75|type=Fixed|length=4|revision=317}}
== NPC head on interface ==
=== Description ===
Places the head of an NPC on an interface
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The NPC ID
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The 'slot' ID for where you wish to place the head
|-
|}

View File

@ -1,24 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Object action 1|description=Sent when the player clicks the first option of an object.|opcode=132|type=Fixed|length=6|revision=317}}
== Object Action 1 ==
=== Description ===
This packet is sent when a player clicks the first option of an object, such as "Cut" for trees or "Mine" for rocks.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The objects X coordinate.
|-
| [[Data Types#Standard data types|Short]]
| The objects ID.
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The objects Y coordinate.
|-
|}

View File

@ -1,23 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Object action 2|description=Sent when the player clicks the second option available for an an object.|opcode=252|type=Fixed|length=6|revision=317}}
== Object action 2 ==
=== Description ===
This packet is sent when a player clicks the second option available of an object, such as "Prospect" for rocks.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The objects ID.
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The objects Y coordinate.
|-
| [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The objects X coordinate.
|}

View File

@ -1,23 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Object action 3|description=Sent when a player clicks the third action available for an object.|opcode=70|type=Fixed|length=6|revision=317}}
== Object Action 3 ==
=== Description ===
This packet is sent when a player clicks the third action available for an object.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The X coordinate of the object.
|-
| [[Data Types#Standard data types|Short]]
| The Y coordinate of the object.
|-
| [[Data Types#Big Endian|Big Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard Data Types|Special A]]
| The object ID.
|}

View File

@ -1,20 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
== Object removal ==
=== Description ===
This packet requests the client to remove an object.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| Negated [[Data Types#byte|byte]]
| object type << 2 + object rotation & 3
|-
| [[Data Types#byte|byte]]
| 0
|-
|}

View File

@ -1,23 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
== Object spawn ==
=== Description ===
This packet requests the client to spawn an object.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| subtrahend [[Data Types#byte|byte]]
| 0
|-
| Little endian [[Data Types#byte|byte]]
| ObjectID
|-
| subtrahend [[Data Types#byte|byte]]
| object type << 2 + object rotation & 3
|-
|}

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Open chatbox interface|description=Displays an interface over the chatbox.|opcode=218|type=Fixed|length=2|revision=317}}
== Open chatbox interface ==
=== Description ===
Sending this packet to the client will cause the client to open an interface over the chatbox.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]] [[Data Types#Non Standard data types|Special A]]
| Interface ID.
|-
|}

View File

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

View File

@ -1,24 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Pickup ground item|description=Sent when the player picks up an item from the ground.|opcode=236|type=Fixed|length=6|revision=317}}
== Pickup Ground Item ==
=== Description ===
This packet is sent when a player clicks the "Pick Up" option on an item when its on the ground.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The Y coordinate of the item.
|-
| [[Data Types#Standard data types|Short]]
| The item ID.
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The X coordinate of the item.
|-
|}

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Play song|description=Starts playing a song.|opcode=74|type=Fixed|length=2|revision=317}}
== Play song ==
=== Description ===
Sending this packet to the client will cause the client to start playing a song.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Little Endian|Little Endian]] [[Data Types#Standard data types|Short]]
| The song ID.
|-
|}

View File

@ -1,20 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Player Option|description=Adds an option to a player's right click context menu.|opcode=104|type=Variable|length=N/A|revision=317}}
== Player Option ==
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Byte]] C
| The option position.
|-
| [[Data Types#Standard data types|Byte]] A
| Flag
|-
| [[Data Types#Standard data types|String]]
| Action text.
|-
|}

View File

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

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Send head model to interface.|description=Sends the player head model to an interface.|opcode=185|type=Fixed|length=2|revision=317}}
== Send player head model to an interface ==
=== Description ===
This packet sends a players head to an interface
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Little Endian Short A]]
| The interface ID.
|-
|}

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Region change|description=Sent when a player enters a new map region.|opcode=210|type=Fixed|length=0|revision=317}}
== Region Change ==
=== Description ===
This packet is sent when a player enters a new map region.

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Remove friend|description=Sent when a player removes a friend from their friend list.|opcode=215|type=Fixed|length=8|revision=317}}
== Remove Friend ==
=== Description ===
This packet is sent when a player removes a friend from their friends list.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Long]]
| The other players ID.
|-
|}

View File

@ -1,18 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Remove ignore|description=Sent when a player removes another player from their ignore list.|opcode=74|type=Fixed|length=8|revision=317}}
== Remove Ignore ==
=== Description ===
This packet is sent when a player removes another player from their ignore list.
=== Packet Structure ===
{|border=2
! Data Type
! Description
|-
| [[Data Types#Standard data types|Long]]
| The other players ID.
|-
|}

View File

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

View File

@ -1,8 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Reset setting states|description=Resets the states for all settings.|opcode=68|type=Fixed|length=0|revision=317}}
== Reset setting states ==
=== Description ===
This packet resets the states for all user settings (inc. buttons).

View File

@ -1,8 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Reset camera|description=Resets the camera position.|opcode=107|type=Fixed|length=0|revision=317}}
== Reset Camera ==
=== Description ===
Resets the game's camera position to the client default.

View File

@ -1,8 +0,0 @@
[[Category Packet]]
[[Category Packet 317]]
{{packet|name=Reset destination|description=Resets the player's destination.|opcode=78|type=Fixed|length=0|revision=317}}
== Reset destination ==
=== Description ===
Sending the packet to the client will make the client reset the player's destination and effectively stop them from walking.

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