{{Crappy}} This page refers to the RSC #204 client revision, all of the opcodes are the same with the exception of the last three in the Outgoing Data section. == '''Packet structure''' == ? == '''Login''' == ? == '''Incoming Data''' == '''TODO:''' Document packet structures
#define IDX_WEIRD_USERNAME    32
#define IDX_LOGIN             0
#define IDO_LOGOUT_ACK        31                    // acknowledge logout command from server
#define IDO_PING              67                    // send ping to server, so it knows we're still there
#define IDO_IGNORE_ADD        132                   // add name to ignore list
#define IDO_IGNORE_REMOVE     241                   // remove name from ignore list
#define IDO_FRIENDS_ADD       195                   // add name to friends list
#define IDO_FRIENDS_REMOVE    167                   // remove name from friends list
#define IDO_PM_FRIEND         218                   // send pm to someone in friends list
#define IDO_SEND_CHAT         216
#define IDO_SEND_SERVER_CMD   38                    // sends a command to the server (type "::xxx" in chat and it sends command 'xxx')
#define IDO_UPDATE_SETTINGS   64                    // changes settings (chatblock, privateblock, tradeblock, duelblock)

#define IDO_LOGOUT            102
#define IDO_CHAR_DESIGN       235                   // send character design (makeover mage, creation)
#define IDO_SLEEPWORD         45
#define IDO_NEW_PLAYER_ACK    163                   // send ids of newly added player back to server, if it wants to

#define IDO_EXCEPTION_SEND    3
#define IDO_WALKCMD_1         16
#define IDO_WALKCMD_2         187
#define IDO_CLICKDIALOGITEM   116
#define IDO_SETCOMBATSTYLE    29
#define IDO_WITHDRAW          22
#define IDO_DEPOSIT           23
#define IDO_CLOSE_BANK        212
#define IDO_BUYITEM           236
#define IDO_SELLITEM          221
#define IDO_CLOSE_SHOP        166
#define IDO_CANCEL_TRADE      230
#define IDO_CONFIRM_TRADE     104
#define IDO_TRADE_UPDATE      46
#define IDO_ACCEPT_TRADE      55
#define IDO_DUEL_CONFIRM_1    77
#define IDO_DUEL_UPDATE       33
#define IDO_DUEL_FLAG_1       8
#define IDO_DUEL_FLAG_2       176
#define IDO_CANCEL_DUEL       197
#define IDO_PRAYER_OFF        254
#define IDO_PRAYER_ON         60
#define IDO_CHANGE_SETTINGS   111

// action commands...
#define IDO_CAST_GR_ITEM      249
#define IDO_USEWITH_GR_ITEM   53
#define IDO_TAKE_ITEM         247
#define IDO_CAST_WALLOBJ      180
#define IDO_USEWITH_WALLOBJ   161
#define IDO_WALLOBJ_CMD1      14
#define IDO_WALLOBJ_CMD2      127
#define IDO_CAST_OBJECT       99
#define IDO_USEWITH_OBJECT    115
#define IDO_OBJECT_CMD1       136
#define IDO_OBJECT_CMD2       79

#define IDO_CAST_INVITEM      4
#define IDO_USEWITH_INVITEM   91
#define IDO_REMOVE_ITEM       170
#define IDO_WEAR_ITEM         169
#define IDO_INVITEM_CMD       90
#define IDO_DROP_ITEM         246

#define IDO_CAST_NPC          50
#define IDO_USEWITH_NPC       135
#define IDO_TALK_NPC          153
#define IDO_NPC_CMD           202
#define IDO_ATTACK_NPC        190

#define IDO_CAST_PLAYER       229
#define IDO_USEWITH_PLAYER    113
#define IDO_ATTACK_PLAYER     171
#define IDO_DUEL_PLAYER       103
#define IDO_TRADE_PLAYER      142
#define IDO_FOLLOW_PLAYER     165

#define IDO_CAST_GROUND       158
#define IDO_CAST_SELF         137

#define IDO_REPORT_ABUSE      206
opcode usage size payload
== '''Outgoing 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           131                   // (game) messages from server
#define IDI_LOGOUT            4                     // logout command from server (forced, or initiated by client IDO_LOGOUT)
#define IDI_LOGOUT_REJECT     183                   // not allowed to log out (e.g. when in combat)
#define IDI_FRIENDS_LOAD      71                    // when logging in, sends the whole friends list to the client
#define IDI_FRIEND_LOGGED     149                   // a friend from friends list logged in or out (also used to add a friend to friends list)
#define IDI_IGNORE_LOAD       109                   // when logging in, sends the whole ignore list to the client
#define IDI_SETTINGS_LOAD     51                    // load settings upon logging in (blocks)
#define IDI_FRIENDS_PM        120                   // someone pm'd us

#define IDI_PLAYER_MOVEMENT   191                   // player movement update
#define IDI_GRITEMS_UPDATE    99                    // update ground items
#define IDI_OBJECTS_UPDATE    48
#define IDI_INV_LOAD          53                    // load inventory
#define IDI_PLAYER_UPDATE     234
#define IDI_WALLOBJ_UPDATE    91
#define IDI_NPC_MOVEMENT      79                    // npc movement update
#define IDI_NPC_UPDATE        104
#define IDI_DIALOG_SHOW       245
#define IDI_DIALOG_CLOSE      252
#define IDI_LOAD_NEWMAPAREA   25                    // entering a new region (maparea)
#define IDI_XP_LOAD           156                   // load xp and stats
#define IDI_EQUIP_UPDATE      153                   // equipment stats (armour, magic, prayer, weapaim/power)
#define IDI_PLAYER_DIED       83
#define IDI_LOADWORLD         211                   // load objects, wallobjects, items
#define IDI_DESIGN_CHAR       59
#define IDI_OPEN_TRADE_1      92
#define IDI_CLOSE_TRADE       128
#define IDI_TRADE_UPDATE      97                    // opponents offer was updated
#define IDI_TRADE_B_UPDATE    162                   // update of opponents acception status
#define IDI_SHOP_OPEN         101
#define IDI_SHOP_CLOSE        137
#define IDI_TRADE_A_UPDATE    15                    // update of thisplayers acception status
#define IDI_LOAD_OPTIONS      240                   // camera angle, sound, mousebutton settings
#define IDI_PRAYER            206
#define IDI_QUESTS            5
#define IDI_BANK_OPEN         42
#define IDI_BANK_CLOSE        203
#define IDI_XP_UPDATE         33
#define IDI_OPEN_DUEL_1       176
#define IDI_CLOSE_DUEL        225
#define IDI_OPEN_TRADE_2      20                    // trade confirmation window
#define IDI_DUEL_UPDATE       6                     // opponents offer was updated
#define IDI_DUELOPT_UPDATE    30                    // update duel options
#define IDI_BANK_UPDATE       249
#define IDI_INV_ADD           90
#define IDI_INV_REMOVE        123
#define IDI_STAT_UPDATE       159
#define IDI_DUEL_B_UPDATE     253                   // update of opponents acception status
#define IDI_DUEL_A_UPDATE     210                   // update of thisplayers acception status
#define IDI_OPEN_DUEL_2       172                   // duel confirmation window
#define IDI_SOUND             204
#define IDI_SPLASH            36
#define IDI_WELCOMEWINDOW     182
#define IDI_MESSAGE_1         89
#define IDI_MESSAGE_2         222
#define IDI_FATIGUE_UPDATE    114
#define IDI_NEW_SLEEPWORD     117
#define IDI_FATIGUE_SLEEPN    244                   // fatigue update in sleeping window
#define IDI_SLEEP_SUCCESS     84
#define IDI_SLEEP_FAILED      194
#define IDI_SYSTEM_UPDATE     52

#define IDX_ACCOUNT_STOLEN    18                // "Account suspected stolen.", "Press 'recover a locked account' on front page."
#define IDX_ACCOUNT_NOT_RSC   21                // "Unable to login.", "That is not an RS-Classic account"
#define IDX_PASSWD_STOLEN     22                // "Password suspected stolen.", "Press 'change your password' on front page."
opcode usage size payload