00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef TMWSERV_PROTOCOL_H
00023 #define TMWSERV_PROTOCOL_H
00024
00041 enum {
00042
00043 PAMSG_REGISTER = 0x0000,
00044 APMSG_REGISTER_RESPONSE = 0x0002,
00045 PAMSG_UNREGISTER = 0x0003,
00046 APMSG_UNREGISTER_RESPONSE = 0x0004,
00047 PAMSG_LOGIN = 0x0010,
00048 APMSG_LOGIN_RESPONSE = 0x0012,
00049 PAMSG_LOGOUT = 0x0013,
00050 APMSG_LOGOUT_RESPONSE = 0x0014,
00051 PAMSG_CHAR_CREATE = 0x0020,
00052 APMSG_CHAR_CREATE_RESPONSE = 0x0021,
00053 PAMSG_CHAR_DELETE = 0x0022,
00054 APMSG_CHAR_DELETE_RESPONSE = 0x0023,
00055 APMSG_CHAR_INFO = 0x0024,
00056 PAMSG_CHAR_SELECT = 0x0026,
00057 APMSG_CHAR_SELECT_RESPONSE = 0x0027,
00058 PAMSG_EMAIL_CHANGE = 0x0030,
00059 APMSG_EMAIL_CHANGE_RESPONSE = 0x0031,
00060 PAMSG_PASSWORD_CHANGE = 0x0034,
00061 APMSG_PASSWORD_CHANGE_RESPONSE = 0x0035,
00062
00063 PGMSG_CONNECT = 0x0050,
00064 GPMSG_CONNECT_RESPONSE = 0x0051,
00065 PCMSG_CONNECT = 0x0053,
00066 CPMSG_CONNECT_RESPONSE = 0x0054,
00067
00068 PGMSG_DISCONNECT = 0x0060,
00069 GPMSG_DISCONNECT_RESPONSE = 0x0061,
00070 PCMSG_DISCONNECT = 0x0063,
00071 CPMSG_DISCONNECT_RESPONSE = 0x0064,
00072
00073 PAMSG_RECONNECT = 0x0065,
00074 APMSG_RECONNECT_RESPONSE = 0x0066,
00075
00076
00077 GPMSG_PLAYER_MAP_CHANGE = 0x0100,
00078 GPMSG_PLAYER_SERVER_CHANGE = 0x0101,
00079 PGMSG_PICKUP = 0x0110,
00080 PGMSG_DROP = 0x0111,
00081 PGMSG_EQUIP = 0x0112,
00082 PGMSG_UNEQUIP = 0x0113,
00083 PGMSG_MOVE_ITEM = 0x0114,
00084 GPMSG_INVENTORY = 0x0120,
00085 GPMSG_INVENTORY_FULL = 0x0121,
00086 GPMSG_PLAYER_ATTRIBUTE_CHANGE = 0x0130,
00087 GPMSG_PLAYER_EXP_CHANGE = 0x0140,
00088 GPMSG_LEVELUP = 0x0150,
00089 GPMSG_LEVEL_PROGRESS = 0x0151,
00090 PGMSG_RAISE_ATTRIBUTE = 0x0160,
00091 GPMSG_RAISE_ATTRIBUTE_RESPONSE = 0x0161,
00092 PGMSG_LOWER_ATTRIBUTE = 0x0170,
00093 GPMSG_LOWER_ATTRIBUTE_RESPONSE = 0x0171,
00094 PGMSG_RESPAWN = 0x0180,
00095 GPMSG_BEING_ENTER = 0x0200,
00096
00097
00098
00099 GPMSG_BEING_LEAVE = 0x0201,
00100 GPMSG_ITEM_APPEAR = 0x0202,
00101 GPMSG_BEING_LOOKS_CHANGE = 0x0210,
00102 PGMSG_WALK = 0x0260,
00103 PGMSG_ACTION_CHANGE = 0x0270,
00104 GPMSG_BEING_ACTION_CHANGE = 0x0271,
00105 PGMSG_DIRECTION_CHANGE = 0x0272,
00106 GPMSG_BEING_DIR_CHANGE = 0x0273,
00107 GPMSG_BEINGS_MOVE = 0x0280,
00108 GPMSG_ITEMS = 0x0281,
00109 PGMSG_ATTACK = 0x0290,
00110 PGMSG_USE_SPECIAL = 0x0292,
00111 GPMSG_BEING_ATTACK = 0x0291,
00112 PGMSG_SAY = 0x02A0,
00113 GPMSG_SAY = 0x02A1,
00114 GPMSG_NPC_CHOICE = 0x02B0,
00115 GPMSG_NPC_MESSAGE = 0x02B1,
00116 PGMSG_NPC_TALK = 0x02B2,
00117 PGMSG_NPC_TALK_NEXT = 0x02B3,
00118 PGMSG_NPC_SELECT = 0x02B4,
00119 GPMSG_NPC_BUY = 0x02B5,
00120 GPMSG_NPC_SELL = 0x02B6,
00121 PGMSG_NPC_BUYSELL = 0x02B7,
00122 GPMSG_NPC_ERROR = 0x02B8,
00123 GPMSG_NPC_POST = 0x02D0,
00124 PGMSG_NPC_POST_SEND = 0x02D1,
00125 GPMSG_NPC_POST_GET = 0x02D2,
00126 PGMSG_TRADE_REQUEST = 0x02C0,
00127 GPMSG_TRADE_REQUEST = 0x02C1,
00128 GPMSG_TRADE_START = 0x02C2,
00129 GPMSG_TRADE_COMPLETE = 0x02C3,
00130 PGMSG_TRADE_CANCEL = 0x02C4,
00131 GPMSG_TRADE_CANCEL = 0x02C5,
00132 PGMSG_TRADE_AGREED = 0x02C6,
00133 GPMSG_TRADE_AGREED = 0x02C7,
00134 PGMSG_TRADE_CONFIRM = 0x02C8,
00135 GPMSG_TRADE_CONFIRM = 0x02C9,
00136 PGMSG_TRADE_ADD_ITEM = 0x02CA,
00137 GPMSG_TRADE_ADD_ITEM = 0x02CB,
00138 PGMSG_TRADE_SET_MONEY = 0x02CC,
00139 GPMSG_TRADE_SET_MONEY = 0x02CD,
00140 GPMSG_TRADE_BOTH_CONFIRM = 0x02CE,
00141 PGMSG_USE_ITEM = 0x0300,
00142 GPMSG_USE_RESPONSE = 0x0301,
00143 GPMSG_BEINGS_DAMAGE = 0x0310,
00144 GPMSG_CREATE_EFFECT = 0x0320,
00145
00146
00147 PCMSG_GUILD_CREATE = 0x0350,
00148 CPMSG_GUILD_CREATE_RESPONSE = 0x0351,
00149 PCMSG_GUILD_INVITE = 0x0352,
00150 CPMSG_GUILD_INVITE_RESPONSE = 0x0353,
00151 PCMSG_GUILD_ACCEPT = 0x0354,
00152 CPMSG_GUILD_ACCEPT_RESPONSE = 0x0355,
00153 PCMSG_GUILD_GET_MEMBERS = 0x0356,
00154 CPMSG_GUILD_GET_MEMBERS_RESPONSE = 0x0357,
00155 CPMSG_GUILD_UPDATE_LIST = 0x0358,
00156 PCMSG_GUILD_QUIT = 0x0360,
00157 CPMSG_GUILD_QUIT_RESPONSE = 0x0361,
00158 PCMSG_GUILD_PROMOTE_MEMBER = 0x0365,
00159 CPMSG_GUILD_PROMOTE_MEMBER_RESPONSE = 0x0366,
00160
00161 CPMSG_GUILD_INVITED = 0x0370,
00162 CPMSG_GUILD_REJOIN = 0x0371,
00163
00164
00165 PCMSG_PARTY_INVITE = 0x03A0,
00166 CPMSG_PARTY_INVITE_RESPONSE = 0x03A1,
00167 CPMSG_PARTY_INVITED = 0x03A2,
00168 PCMSG_PARTY_ACCEPT_INVITE = 0x03A5,
00169 CPMSG_PARTY_ACCEPT_INVITE_RESPONSE = 0x03A6,
00170 PCMSG_PARTY_REJECT_INVITE = 0x03A7,
00171 CPMSG_PARTY_REJECTED = 0x03A8,
00172 PCMSG_PARTY_QUIT = 0x03AA,
00173 CPMSG_PARTY_QUIT_RESPONSE = 0x03AB,
00174 CPMSG_PARTY_NEW_MEMBER = 0x03B0,
00175 CPMSG_PARTY_MEMBER_LEFT = 0x03B1,
00176
00177
00178 CPMSG_ERROR = 0x0401,
00179 CPMSG_ANNOUNCEMENT = 0x0402,
00180 CPMSG_PRIVMSG = 0x0403,
00181 CPMSG_PUBMSG = 0x0404,
00182 PCMSG_CHAT = 0x0410,
00183 PCMSG_ANNOUNCE = 0x0411,
00184 PCMSG_PRIVMSG = 0x0412,
00185 PCMSG_WHO = 0x0415,
00186 CPMSG_WHO_RESPONSE = 0x0416,
00187
00188
00189 CPMSG_CHANNEL_EVENT = 0x0430,
00190 PCMSG_ENTER_CHANNEL = 0x0440,
00191 CPMSG_ENTER_CHANNEL_RESPONSE = 0x0441,
00192 PCMSG_QUIT_CHANNEL = 0x0443,
00193 CPMSG_QUIT_CHANNEL_RESPONSE = 0x0444,
00194 PCMSG_LIST_CHANNELS = 0x0445,
00195 CPMSG_LIST_CHANNELS_RESPONSE = 0x0446,
00196 PCMSG_LIST_CHANNELUSERS = 0x0460,
00197 CPMSG_LIST_CHANNELUSERS_RESPONSE = 0x0461,
00198 PCMSG_TOPIC_CHANGE = 0x0462,
00199
00200 PCMSG_USER_MODE = 0x0465,
00201 PCMSG_KICK_USER = 0x0466,
00202
00203 XXMSG_INVALID = 0x7FFF
00204 };
00205
00206
00207
00208 enum {
00209 ERRMSG_OK = 0,
00210 ERRMSG_FAILURE,
00211 ERRMSG_NO_LOGIN,
00212 ERRMSG_NO_CHARACTER_SELECTED,
00213 ERRMSG_INSUFFICIENT_RIGHTS,
00214 ERRMSG_INVALID_ARGUMENT,
00215 ERRMSG_EMAIL_ALREADY_EXISTS,
00216 ERRMSG_ALREADY_TAKEN,
00217 ERRMSG_SERVER_FULL,
00218 ERRMSG_TIME_OUT
00219 };
00220
00221
00222 enum {
00223 LOGIN_INVALID_VERSION = 0x40,
00224 LOGIN_SERVER_FULL
00225 };
00226
00227
00228 enum {
00229 REGISTER_INVALID_VERSION = 0x40,
00230 REGISTER_EXISTS_USERNAME,
00231 REGISTER_EXISTS_EMAIL
00232 };
00233
00234
00235 enum {
00236 CREATE_INVALID_HAIRSTYLE = 0x40,
00237 CREATE_INVALID_HAIRCOLOR,
00238 CREATE_INVALID_GENDER,
00239 CREATE_RAW_STATS_TOO_HIGH,
00240 CREATE_RAW_STATS_TOO_LOW,
00241 CREATE_RAW_STATS_EQUAL_TO_ZERO,
00242 CREATE_EXISTS_NAME,
00243 CREATE_TOO_MUCH_CHARACTERS
00244 };
00245
00246
00247 enum AttribmodResponseCode {
00248 ATTRIBMOD_OK = ERRMSG_OK,
00249 ATTRIBMOD_INVALID_ATTRIBUTE = 0x40,
00250 ATTRIBMOD_NO_POINTS_LEFT,
00251 ATTRIBMOD_DENIED
00252 };
00253
00254 enum {
00255
00256 OBJECT_ITEM = 0,
00257
00258 OBJECT_ACTOR,
00259
00260 OBJECT_NPC,
00261
00262 OBJECT_MONSTER,
00263
00264 OBJECT_PLAYER
00265 };
00266
00267
00268 enum {
00269
00270 MOVING_POSITION = 1,
00271
00272 MOVING_DESTINATION = 2
00273 };
00274
00275
00276 enum {
00277 EMAILCHG_EXISTS_EMAIL = 0x40
00278 };
00279
00280
00281 enum {
00282 CHAT_USING_BAD_WORDS = 0x40,
00283 CHAT_UNHANDLED_COMMAND
00284 };
00285
00286
00287 enum {
00288 CHAT_EVENT_NEW_PLAYER = 0,
00289 CHAT_EVENT_LEAVING_PLAYER,
00290 CHAT_EVENT_TOPIC_CHANGE,
00291 CHAT_EVENT_MODE_CHANGE,
00292 CHAT_EVENT_KICKED_PLAYER
00293 };
00294
00295
00296 enum {
00297 GUILD_EVENT_NEW_PLAYER = 0,
00298 GUILD_EVENT_LEAVING_PLAYER,
00299 GUILD_EVENT_ONLINE_PLAYER,
00300 GUILD_EVENT_OFFLINE_PLAYER
00301 };
00302
00303 #endif