00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _TMWSERV_DEFINES_H_
00022 #define _TMWSERV_DEFINES_H_
00023
00032 enum
00033 {
00034 AL_BANNED = 0,
00035 AL_PLAYER = 1,
00036 AL_TESTER = 2,
00037 AL_DEV = 4,
00038 AL_GM = 8,
00039 AL_ADMIN = 128
00040 };
00041
00050 enum
00051 {
00052 GAL_NONE = 0,
00053 GAL_TOPIC_CHANGE = 1,
00054 GAL_INVITE = 2,
00055 GAL_KICK = 4,
00056 GAL_OWNER = 255
00057 };
00058
00059
00083 enum {
00084
00085 PAMSG_REGISTER = 0x0000,
00086 APMSG_REGISTER_RESPONSE = 0x0002,
00087 PAMSG_UNREGISTER = 0x0003,
00088 APMSG_UNREGISTER_RESPONSE = 0x0004,
00089 PAMSG_LOGIN = 0x0010,
00090 APMSG_LOGIN_RESPONSE = 0x0012,
00091 PAMSG_LOGOUT = 0x0013,
00092 APMSG_LOGOUT_RESPONSE = 0x0014,
00093 PAMSG_CHAR_CREATE = 0x0020,
00094 APMSG_CHAR_CREATE_RESPONSE = 0x0021,
00095 PAMSG_CHAR_DELETE = 0x0022,
00096 APMSG_CHAR_DELETE_RESPONSE = 0x0023,
00097 APMSG_CHAR_INFO = 0x0024,
00098 PAMSG_CHAR_SELECT = 0x0026,
00099 APMSG_CHAR_SELECT_RESPONSE = 0x0027,
00100 PAMSG_EMAIL_CHANGE = 0x0030,
00101 APMSG_EMAIL_CHANGE_RESPONSE = 0x0031,
00102 PAMSG_PASSWORD_CHANGE = 0x0034,
00103 APMSG_PASSWORD_CHANGE_RESPONSE = 0x0035,
00104
00105 PGMSG_CONNECT = 0x0050,
00106 GPMSG_CONNECT_RESPONSE = 0x0051,
00107 PCMSG_CONNECT = 0x0053,
00108 CPMSG_CONNECT_RESPONSE = 0x0054,
00109
00110 PGMSG_DISCONNECT = 0x0060,
00111 GPMSG_DISCONNECT_RESPONSE = 0x0061,
00112 PCMSG_DISCONNECT = 0x0063,
00113 CPMSG_DISCONNECT_RESPONSE = 0x0064,
00114
00115 PAMSG_RECONNECT = 0x0065,
00116 APMSG_RECONNECT_RESPONSE = 0x0066,
00117
00118
00119 GPMSG_PLAYER_MAP_CHANGE = 0x0100,
00120 GPMSG_PLAYER_SERVER_CHANGE = 0x0101,
00121 PGMSG_PICKUP = 0x0110,
00122 PGMSG_DROP = 0x0111,
00123 PGMSG_EQUIP = 0x0112,
00124 PGMSG_UNEQUIP = 0x0113,
00125 PGMSG_MOVE_ITEM = 0x0114,
00126 GPMSG_INVENTORY = 0x0120,
00127 GPMSG_INVENTORY_FULL = 0x0121,
00128 GPMSG_PLAYER_ATTRIBUTE_CHANGE = 0x0130,
00129 GPMSG_PLAYER_EXP_CHANGE = 0x0140,
00130 GPMSG_LEVELUP = 0x0150,
00131 GPMSG_LEVEL_PROGRESS = 0x0151,
00132 PGMSG_RAISE_ATTRIBUTE = 0x0160,
00133 GPMSG_RAISE_ATTRIBUTE_RESPONSE = 0x0161,
00134 PGMSG_LOWER_ATTRIBUTE = 0x0170,
00135 GPMSG_LOWER_ATTRIBUTE_RESPONSE = 0x0171,
00136 PGMSG_RESPAWN = 0x0180,
00137 GPMSG_BEING_ENTER = 0x0200,
00138
00139
00140
00141 GPMSG_BEING_LEAVE = 0x0201,
00142 GPMSG_ITEM_APPEAR = 0x0202,
00143 GPMSG_BEING_LOOKS_CHANGE = 0x0210,
00144 PGMSG_WALK = 0x0260,
00145 PGMSG_ACTION_CHANGE = 0x0270,
00146 GPMSG_BEING_ACTION_CHANGE = 0x0271,
00147 PGMSG_DIRECTION_CHANGE = 0x0272,
00148 GPMSG_BEING_DIR_CHANGE = 0x0273,
00149 GPMSG_BEING_HEALTH_CHANGE = 0x0274,
00150 GPMSG_BEINGS_MOVE = 0x0280,
00151 GPMSG_ITEMS = 0x0281,
00152 PGMSG_ATTACK = 0x0290,
00153 GPMSG_BEING_ATTACK = 0x0291,
00154 PGMSG_USE_SPECIAL = 0x0292,
00155 PGMSG_SAY = 0x02A0,
00156 GPMSG_SAY = 0x02A1,
00157 GPMSG_NPC_CHOICE = 0x02B0,
00158 GPMSG_NPC_MESSAGE = 0x02B1,
00159 PGMSG_NPC_TALK = 0x02B2,
00160 PGMSG_NPC_TALK_NEXT = 0x02B3,
00161 PGMSG_NPC_SELECT = 0x02B4,
00162 GPMSG_NPC_BUY = 0x02B5,
00163 GPMSG_NPC_SELL = 0x02B6,
00164 PGMSG_NPC_BUYSELL = 0x02B7,
00165 GPMSG_NPC_ERROR = 0x02B8,
00166 GPMSG_NPC_POST = 0x02D0,
00167 PGMSG_NPC_POST_SEND = 0x02D1,
00168 GPMSG_NPC_POST_GET = 0x02D2,
00169 PGMSG_TRADE_REQUEST = 0x02C0,
00170 GPMSG_TRADE_REQUEST = 0x02C1,
00171 GPMSG_TRADE_START = 0x02C2,
00172 GPMSG_TRADE_COMPLETE = 0x02C3,
00173 PGMSG_TRADE_CANCEL = 0x02C4,
00174 GPMSG_TRADE_CANCEL = 0x02C5,
00175 PGMSG_TRADE_AGREED = 0x02C6,
00176 GPMSG_TRADE_AGREED = 0x02C7,
00177 PGMSG_TRADE_CONFIRM = 0x02C8,
00178 GPMSG_TRADE_CONFIRM = 0x02C9,
00179 PGMSG_TRADE_ADD_ITEM = 0x02CA,
00180 GPMSG_TRADE_ADD_ITEM = 0x02CB,
00181 PGMSG_TRADE_SET_MONEY = 0x02CC,
00182 GPMSG_TRADE_SET_MONEY = 0x02CD,
00183 GPMSG_TRADE_BOTH_CONFIRM = 0x02CE,
00184 PGMSG_USE_ITEM = 0x0300,
00185 GPMSG_USE_RESPONSE = 0x0301,
00186 GPMSG_BEINGS_DAMAGE = 0x0310,
00187 GPMSG_CREATE_EFFECT = 0x0320,
00188
00189
00190 PCMSG_GUILD_CREATE = 0x0350,
00191 CPMSG_GUILD_CREATE_RESPONSE = 0x0351,
00192 PCMSG_GUILD_INVITE = 0x0352,
00193 CPMSG_GUILD_INVITE_RESPONSE = 0x0353,
00194 PCMSG_GUILD_ACCEPT = 0x0354,
00195 CPMSG_GUILD_ACCEPT_RESPONSE = 0x0355,
00196 PCMSG_GUILD_GET_MEMBERS = 0x0356,
00197 CPMSG_GUILD_GET_MEMBERS_RESPONSE = 0x0357,
00198 CPMSG_GUILD_UPDATE_LIST = 0x0358,
00199 PCMSG_GUILD_QUIT = 0x0360,
00200 CPMSG_GUILD_QUIT_RESPONSE = 0x0361,
00201 PCMSG_GUILD_PROMOTE_MEMBER = 0x0365,
00202 CPMSG_GUILD_PROMOTE_MEMBER_RESPONSE = 0x0366,
00203 PCMSG_GUILD_KICK_MEMBER = 0x0370,
00204 CPMSG_GUILD_KICK_MEMBER_RESPONSE = 0x0371,
00205
00206 CPMSG_GUILD_INVITED = 0x0388,
00207 CPMSG_GUILD_REJOIN = 0x0389,
00208
00209
00210 PCMSG_PARTY_INVITE = 0x03A0,
00211 CPMSG_PARTY_INVITE_RESPONSE = 0x03A1,
00212 CPMSG_PARTY_INVITED = 0x03A2,
00213 PCMSG_PARTY_ACCEPT_INVITE = 0x03A5,
00214 CPMSG_PARTY_ACCEPT_INVITE_RESPONSE = 0x03A6,
00215 PCMSG_PARTY_REJECT_INVITE = 0x03A7,
00216 CPMSG_PARTY_REJECTED = 0x03A8,
00217 PCMSG_PARTY_QUIT = 0x03AA,
00218 CPMSG_PARTY_QUIT_RESPONSE = 0x03AB,
00219 CPMSG_PARTY_NEW_MEMBER = 0x03B0,
00220 CPMSG_PARTY_MEMBER_LEFT = 0x03B1,
00221
00222
00223 CPMSG_ERROR = 0x0401,
00224 CPMSG_ANNOUNCEMENT = 0x0402,
00225 CPMSG_PRIVMSG = 0x0403,
00226 CPMSG_PUBMSG = 0x0404,
00227 PCMSG_CHAT = 0x0410,
00228 PCMSG_ANNOUNCE = 0x0411,
00229 PCMSG_PRIVMSG = 0x0412,
00230 PCMSG_WHO = 0x0415,
00231 CPMSG_WHO_RESPONSE = 0x0416,
00232
00233
00234 CPMSG_CHANNEL_EVENT = 0x0430,
00235 PCMSG_ENTER_CHANNEL = 0x0440,
00236 CPMSG_ENTER_CHANNEL_RESPONSE = 0x0441,
00237 PCMSG_QUIT_CHANNEL = 0x0443,
00238 CPMSG_QUIT_CHANNEL_RESPONSE = 0x0444,
00239 PCMSG_LIST_CHANNELS = 0x0445,
00240 CPMSG_LIST_CHANNELS_RESPONSE = 0x0446,
00241 PCMSG_LIST_CHANNELUSERS = 0x0460,
00242 CPMSG_LIST_CHANNELUSERS_RESPONSE = 0x0461,
00243 PCMSG_TOPIC_CHANGE = 0x0462,
00244
00245 PCMSG_USER_MODE = 0x0465,
00246 PCMSG_KICK_USER = 0x0466,
00247
00248
00249 GAMSG_REGISTER = 0x0500,
00250 AGMSG_REGISTER_RESPONSE = 0x0501,
00251 AGMSG_ACTIVE_MAP = 0x0502,
00252 AGMSG_PLAYER_ENTER = 0x0510,
00253 GAMSG_PLAYER_DATA = 0x0520,
00254 GAMSG_REDIRECT = 0x0530,
00255 AGMSG_REDIRECT_RESPONSE = 0x0531,
00256 GAMSG_PLAYER_RECONNECT = 0x0532,
00257 GAMSG_PLAYER_SYNC = 0x0533,
00258 GAMSG_SET_QUEST = 0x0540,
00259 GAMSG_GET_QUEST = 0x0541,
00260 AGMSG_GET_QUEST_RESPONSE = 0x0542,
00261 GAMSG_BAN_PLAYER = 0x0550,
00262 GAMSG_CHANGE_PLAYER_LEVEL = 0x0555,
00263 GAMSG_CHANGE_ACCOUNT_LEVEL = 0x0556,
00264 GAMSG_STATISTICS = 0x0560,
00265 CGMSG_CHANGED_PARTY = 0x0590,
00266 GCMSG_REQUEST_POST = 0x05A0,
00267 CGMSG_POST_RESPONSE = 0x05A1,
00268 GCMSG_STORE_POST = 0x05A5,
00269 CGMSG_STORE_POST_RESPONSE = 0x05A6,
00270 GAMSG_TRANSACTION = 0x0600,
00271
00272 XXMSG_INVALID = 0x7FFF
00273 };
00274
00275
00276
00277 enum {
00278 ERRMSG_OK = 0,
00279 ERRMSG_FAILURE,
00280 ERRMSG_NO_LOGIN,
00281 ERRMSG_NO_CHARACTER_SELECTED,
00282 ERRMSG_INSUFFICIENT_RIGHTS,
00283 ERRMSG_INVALID_ARGUMENT,
00284 ERRMSG_EMAIL_ALREADY_EXISTS,
00285 ERRMSG_ALREADY_TAKEN,
00286 ERRMSG_SERVER_FULL,
00287 ERRMSG_TIME_OUT,
00288 ERRMSG_LIMIT_REACHED
00289 };
00290
00291
00292 enum {
00293 DATA_VERSION_OK = 0x00,
00294 DATA_VERSION_OUTDATED = 0x01
00295 };
00296
00297
00298 enum {
00299 SYNC_CHARACTER_POINTS = 0x01,
00300 SYNC_CHARACTER_SKILL = 0x02,
00301 SYNC_ONLINE_STATUS = 0x03,
00302 SYNC_END_OF_BUFFER = 0xFF
00303 };
00304
00305
00306 enum {
00307 LOGIN_INVALID_VERSION = 0x40,
00308 LOGIN_INVALID_TIME = 0x50,
00309 LOGIN_BANNED
00310 };
00311
00312
00313 enum {
00314 REGISTER_INVALID_VERSION = 0x40,
00315 REGISTER_EXISTS_USERNAME,
00316 REGISTER_EXISTS_EMAIL
00317 };
00318
00319
00320 enum {
00321 CREATE_INVALID_HAIRSTYLE = 0x40,
00322 CREATE_INVALID_HAIRCOLOR,
00323 CREATE_INVALID_GENDER,
00324 CREATE_ATTRIBUTES_TOO_HIGH,
00325 CREATE_ATTRIBUTES_TOO_LOW,
00326 CREATE_ATTRIBUTES_EQUAL_TO_ZERO,
00327 CREATE_EXISTS_NAME,
00328 CREATE_TOO_MUCH_CHARACTERS
00329 };
00330
00331
00332 enum AttribmodResponseCode {
00333 ATTRIBMOD_OK = ERRMSG_OK,
00334 ATTRIBMOD_INVALID_ATTRIBUTE = 0x40,
00335 ATTRIBMOD_NO_POINTS_LEFT,
00336 ATTRIBMOD_DENIED
00337 };
00338
00339
00340 enum {
00341 EMAILCHG_EXISTS_EMAIL = 0x40
00342 };
00343
00344
00345 enum {
00346 CHAT_USING_BAD_WORDS = 0x40,
00347 CHAT_UNHANDLED_COMMAND
00348 };
00349
00350
00351 enum {
00352 CHAT_EVENT_NEW_PLAYER = 0,
00353 CHAT_EVENT_LEAVING_PLAYER,
00354 CHAT_EVENT_TOPIC_CHANGE,
00355 CHAT_EVENT_MODE_CHANGE,
00356 CHAT_EVENT_KICKED_PLAYER
00357 };
00358
00359
00360 enum {
00361 GUILD_EVENT_NEW_PLAYER = 0,
00362 GUILD_EVENT_LEAVING_PLAYER,
00363 GUILD_EVENT_ONLINE_PLAYER,
00364 GUILD_EVENT_OFFLINE_PLAYER
00365 };
00366
00367
00368 enum {
00369
00370 MOVING_POSITION = 1,
00371
00372 MOVING_DESTINATION = 2
00373 };
00374
00380 enum BeingState
00381 {
00382 STATE_POISONED = 1,
00383 STATE_STONED = 2,
00384 STATE_STUNNED = 4,
00385 STATE_SLOWED = 8,
00386 STATE_TIRED = 16,
00387 STATE_MAD = 32,
00388 STATE_BERSERK = 64,
00389 STATE_HASTED = 128,
00390 STATE_FLOATING = 256
00391 };
00392
00398 enum Element
00399 {
00400 ELEMENT_NEUTRAL = 0,
00401 ELEMENT_FIRE,
00402 ELEMENT_WATER,
00403 ELEMENT_EARTH,
00404 ELEMENT_AIR,
00405 ELEMENT_LIGHTNING,
00406 ELEMENT_METAL,
00407 ELEMENT_WOOD,
00408 ELEMENT_ICE,
00409 ELEMENT_ILLEGAL
00410 };
00411
00415 enum
00416 {
00417 BASE_ATTR_BEGIN = 0,
00418 BASE_ATTR_PHY_ATK_MIN = BASE_ATTR_BEGIN,
00419 BASE_ATTR_PHY_ATK_DELTA,
00421 BASE_ATTR_MAG_ATK,
00422 BASE_ATTR_PHY_RES,
00423 BASE_ATTR_MAG_RES,
00424 BASE_ATTR_EVADE,
00425 BASE_ATTR_HIT,
00426 BASE_ATTR_HP,
00427 BASE_ATTR_HP_REGEN,
00428 BASE_ATTR_END,
00429 BASE_ATTR_NB = BASE_ATTR_END - BASE_ATTR_BEGIN,
00430
00431 BASE_ELEM_BEGIN = BASE_ATTR_END,
00432 BASE_ELEM_NEUTRAL = BASE_ELEM_BEGIN,
00433 BASE_ELEM_FIRE,
00434 BASE_ELEM_WATER,
00435 BASE_ELEM_EARTH,
00436 BASE_ELEM_AIR,
00437 BASE_ELEM_SACRED,
00438 BASE_ELEM_DEATH,
00439 BASE_ELEM_END,
00440 BASE_ELEM_NB = BASE_ELEM_END - BASE_ELEM_BEGIN,
00441
00442 NB_BEING_ATTRIBUTES = BASE_ELEM_END
00443 };
00444
00449 enum
00450 {
00451 CHAR_ATTR_BEGIN = NB_BEING_ATTRIBUTES,
00452 CHAR_ATTR_STRENGTH = CHAR_ATTR_BEGIN,
00453 CHAR_ATTR_AGILITY,
00454 CHAR_ATTR_DEXTERITY,
00455 CHAR_ATTR_VITALITY,
00456 CHAR_ATTR_INTELLIGENCE,
00457 CHAR_ATTR_WILLPOWER,
00458 CHAR_ATTR_END,
00459 CHAR_ATTR_NB = CHAR_ATTR_END - CHAR_ATTR_BEGIN,
00460
00461 CHAR_SKILL_BEGIN = CHAR_ATTR_END,
00462
00463 CHAR_SKILL_WEAPON_BEGIN = CHAR_SKILL_BEGIN,
00464 CHAR_SKILL_WEAPON_NONE = CHAR_SKILL_WEAPON_BEGIN,
00465 CHAR_SKILL_WEAPON_KNIFE,
00466 CHAR_SKILL_WEAPON_SWORD,
00467 CHAR_SKILL_WEAPON_POLEARM,
00468 CHAR_SKILL_WEAPON_STAFF,
00469 CHAR_SKILL_WEAPON_WHIP,
00470 CHAR_SKILL_WEAPON_BOW,
00471 CHAR_SKILL_WEAPON_SHOOTING,
00472 CHAR_SKILL_WEAPON_MACE,
00473 CHAR_SKILL_WEAPON_AXE,
00474 CHAR_SKILL_WEAPON_THROWN,
00475 CHAR_SKILL_WEAPON_END,
00476 CHAR_SKILL_WEAPON_NB = CHAR_SKILL_WEAPON_END - CHAR_SKILL_WEAPON_BEGIN,
00477
00478 CHAR_SKILL_MAGIC_BEGIN = CHAR_SKILL_WEAPON_END,
00479 CHAR_SKILL_MAGIC_IAMJUSTAPLACEHOLDER = CHAR_SKILL_MAGIC_BEGIN,
00480
00481 CHAR_SKILL_MAGIC_END,
00482 CHAR_SKILL_MAGIC_NB = CHAR_SKILL_MAGIC_END - CHAR_SKILL_MAGIC_BEGIN,
00483
00484 CHAR_SKILL_CRAFT_BEGIN = CHAR_SKILL_MAGIC_END,
00485 CHAR_SKILL_CRAFT_IAMJUSTAPLACEHOLDER = CHAR_SKILL_CRAFT_BEGIN,
00486
00487 CHAR_SKILL_CRAFT_END,
00488 CHAR_SKILL_CRAFT_NB = CHAR_SKILL_CRAFT_END - CHAR_SKILL_CRAFT_BEGIN,
00489
00490 CHAR_SKILL_END = CHAR_SKILL_CRAFT_END,
00491 CHAR_SKILL_NB = CHAR_SKILL_END - CHAR_SKILL_BEGIN,
00492
00493 NB_CHARACTER_ATTRIBUTES = CHAR_SKILL_END
00494 };
00495
00496 #endif // _TMWSERV_DEFINES_H_