{{Crappy}} This page refers to the RSC #202 client revision (the original distribution by eXemplar) - it is said that #202's protocol is identical to #204. == '''Packet structure''' == ? == '''Login''' == ? == '''Incoming Data''' == '''TODO:''' Document packet structures
// login responses...
#define IDX_MOD_ACCEPTED      25                    // logged in as player mod
#define IDX_LOGIN_SUCCESS     0
#define IDX_RELOGIN_SUCCESS   1                     // connection reestablished after lost connection...
#define IDX_WRONG_PWD         3
#define IDX_NAME_LOGGED_IN    4
#define IDX_CLIENT_UPDATED    5
#define IDX_IP_IN_USE         6
#define IDX_LOGINS_EXCEEDED   7
#define IDX_SERV_REJECTED     8
#define IDX_LOGINSERV_REJCT   9
#define IDX_NAME_IN_USE       10
#define IDX_TEMP_DISABLED     11
#define IDX_PERM_DISABLED     12
#define IDX_SERVER_FULL       14
#define IDX_MEMBERACC_REQ     15                    // requires member account to login here
#define IDX_LOGINSERV_DOWN    16
#define IDX_DECODE_FAIL       17
#define IDX_LOGIN_MISMATCH    20

#define IDI_MESSAGE           48                    // (game) messages from server
#define IDI_LOGOUT            222                   // logout command from server (forced, or initiated by client IDO_LOGOUT)
#define IDI_LOGOUT_REJECT     136                   // not allowed to log out (e.g. when in combat)
#define IDI_FRIENDS_LOAD      249                   // when logging in, sends the whole friends list to the client
#define IDI_FRIEND_LOGGED     25                    // a friend from friends list logged in or out (also used to add a friend to friends list)
#define IDI_IGNORE_LOAD       2                     // when logging in, sends the whole ignore list to the client
#define IDI_SETTINGS_LOAD     158                   // load settings upon logging in (blocks)
#define IDI_FRIENDS_PM        170                   // someone pm'd us

#define IDI_PLAYER_MOVEMENT   145                   // player movement update
#define IDI_GRITEMS_UPDATE    109                   // update ground items
#define IDI_OBJECTS_UPDATE    27
#define IDI_INV_LOAD          114                   // load inventory
#define IDI_PLAYER_UPDATE     53
#define IDI_WALLOBJ_UPDATE    95
#define IDI_NPC_MOVEMENT      77                    // npc movement update
#define IDI_NPC_UPDATE        190
#define IDI_DIALOG_SHOW       223
#define IDI_DIALOG_CLOSE      127
#define IDI_LOAD_NEWMAPAREA   131                   // entering a new region (maparea)
#define IDI_XP_LOAD           180                   // load xp and stats
#define IDI_EQUIP_UPDATE      177                   // equipment stats (armour, magic, prayer, weapaim/power)
#define IDI_PLAYER_DIED       165
#define IDI_LOADWORLD         115                   // load objects, wallobjects, items
#define IDI_DESIGN_CHAR       207
#define IDI_OPEN_TRADE_1      4
#define IDI_CLOSE_TRADE       187
#define IDI_TRADE_UPDATE      250                   // opponents offer was updated
#define IDI_TRADE_B_UPDATE    92                    // update of opponents acception status
#define IDI_SHOP_OPEN         253
#define IDI_SHOP_CLOSE        220
#define IDI_TRADE_A_UPDATE    18                    // update of thisplayers acception status
#define IDI_LOAD_OPTIONS      152                   // camera angle, sound, mousebutton settings
#define IDI_PRAYER            209
#define IDI_QUESTS            224
#define IDI_BANK_OPEN         93
#define IDI_BANK_CLOSE        171
#define IDI_XP_UPDATE         211
#define IDI_OPEN_DUEL_1       229
#define IDI_CLOSE_DUEL        160
#define IDI_OPEN_TRADE_2      251                   // trade confirmation window
#define IDI_DUEL_UPDATE       63                    // opponents offer was updated
#define IDI_DUELOPT_UPDATE    198                   // update duel options
#define IDI_BANK_UPDATE       139
#define IDI_INV_ADD           228
#define IDI_INV_REMOVE        191
#define IDI_STAT_UPDATE       208
#define IDI_DUEL_B_UPDATE     65                    // update of opponents acception status
#define IDI_DUEL_A_UPDATE     197                   // update of thisplayers acception status
#define IDI_OPEN_DUEL_2       147                   // duel confirmation window
#define IDI_SOUND             11
#define IDI_SPLASH            23
#define IDI_WELCOMEWINDOW     248
#define IDI_MESSAGE_1         148
#define IDI_MESSAGE_2         64
#define IDI_FATIGUE_UPDATE    126
#define IDI_NEW_SLEEPWORD     219
#define IDI_FATIGUE_SLEEPN    168                   // fatigue update in sleeping window
#define IDI_SLEEP_SUCCESS     103
#define IDI_SLEEP_FAILED      15
#define IDI_SYSTEM_UPDATE     172
opcode usage size payload
== '''Outgoing Data''' == '''TODO:''' Document packet structures
#define IDX_WEIRD_USERNAME    32
#define IDX_LOGIN             0
#define IDO_LOGOUT_ACK        39                    // acknowledge logout command from server
#define IDO_PING              153                   // send ping to server, so it knows we're still there
#define IDO_IGNORE_ADD        25                    // add name to ignore list
#define IDO_IGNORE_REMOVE     108                   // remove name from ignore list
#define IDO_FRIENDS_ADD       168                   // add name to friends list
#define IDO_FRIENDS_REMOVE    52                    // remove name from friends list
#define IDO_PM_FRIEND         254                   // send pm to someone in friends list
#define IDO_SEND_CHAT         145
#define IDO_SEND_SERVER_CMD   90                    // sends a command to the server (type "::xxx" in chat and it sends command 'xxx')
#define IDO_UPDATE_SETTINGS   176                   // changes settings (chatblock, privateblock, tradeblock, duelblock)

#define IDO_LOGOUT            129
#define IDO_CHAR_DESIGN       218                   // send character design (makeover mage, creation)
#define IDO_SLEEPWORD         72
#define IDO_NEW_PLAYER_ACK    83                    // send ids of newly added player back to server, if it wants to

#define IDO_EXCEPTION_SEND    156
#define IDO_WALKCMD_1         246
#define IDO_WALKCMD_2         132
#define IDO_CLICKDIALOGITEM   154
#define IDO_SETCOMBATSTYLE    41
#define IDO_WITHDRAW          183
#define IDO_DEPOSIT           198
#define IDO_CLOSE_BANK        48
#define IDO_BUYITEM           128
#define IDO_SELLITEM          255
#define IDO_CLOSE_SHOP        253
#define IDO_CANCEL_TRADE      216
#define IDO_CONFIRM_TRADE     53
#define IDO_TRADE_UPDATE      70
#define IDO_ACCEPT_TRADE      211
#define IDO_DUEL_CONFIRM_1    87
#define IDO_DUEL_UPDATE       123
#define IDO_DUEL_FLAG_1       225
#define IDO_DUEL_FLAG_2       252
#define IDO_CANCEL_DUEL       35
#define IDO_PRAYER_OFF        248
#define IDO_PRAYER_ON         56
#define IDO_CHANGE_SETTINGS   157

// action commands...
#define IDO_CAST_GR_ITEM      104
#define IDO_USEWITH_GR_ITEM   34
#define IDO_TAKE_ITEM         245
#define IDO_CAST_WALLOBJ      67
#define IDO_USEWITH_WALLOBJ   36
#define IDO_WALLOBJ_CMD1      126
#define IDO_WALLOBJ_CMD2      235
#define IDO_CAST_OBJECT       17
#define IDO_USEWITH_OBJECT    94
#define IDO_OBJECT_CMD1       51
#define IDO_OBJECT_CMD2       40

#define IDO_CAST_INVITEM      49
#define IDO_USEWITH_INVITEM   27
#define IDO_REMOVE_ITEM       92
#define IDO_WEAR_ITEM         181
#define IDO_INVITEM_CMD       89
#define IDO_DROP_ITEM         147

#define IDO_CAST_NPC          71
#define IDO_USEWITH_NPC       142
#define IDO_TALK_NPC          177
#define IDO_NPC_CMD           74
#define IDO_ATTACK_NPC        73

#define IDO_CAST_PLAYER       55
#define IDO_USEWITH_PLAYER    16
#define IDO_ATTACK_PLAYER     57
#define IDO_DUEL_PLAYER       222
#define IDO_TRADE_PLAYER      166
#define IDO_FOLLOW_PLAYER     68

#define IDO_CAST_GROUND       232
#define IDO_CAST_SELF         206

#define IDO_REPORT_ABUSE      7
opcode usage size payload