Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.69 KB | None | 0 0
  1. #ifndef __INC_METIN_II_LENGTH_H__
  2. #define __INC_METIN_II_LENGTH_H__
  3.  
  4. #define WORD_MAX 0xffff
  5. enum EMisc
  6. {
  7. MAX_HOST_LENGTH = 15,
  8. IP_ADDRESS_LENGTH = 15,
  9. LOGIN_MAX_LEN = 30,
  10. PASSWD_MAX_LEN = 16,
  11. PLAYER_PER_ACCOUNT = 4,
  12. ACCOUNT_STATUS_MAX_LEN = 8,
  13. CHARACTER_NAME_MAX_LEN = 24,
  14. SHOP_SIGN_MAX_LEN = 32,
  15. INVENTORY_MAX_NUM = 180,
  16. ABILITY_MAX_NUM = 50,
  17. EMPIRE_MAX_NUM = 4,
  18. BANWORD_MAX_LEN = 24,
  19. SMS_MAX_LEN = 80,
  20. MOBILE_MAX_LEN = 32,
  21. SOCIAL_ID_MAX_LEN = 18,
  22.  
  23. GUILD_NAME_MAX_LEN = 12,
  24.  
  25. SHOP_HOST_ITEM_MAX_NUM = 80, /* ČŁ˝şĆ®ŔÇ ĂÖ´ë ľĆŔĚĹŰ °łĽö */
  26. SHOP_GUEST_ITEM_MAX_NUM = 18, /* °Ô˝şĆ®ŔÇ ĂÖ´ë ľĆŔĚĹŰ °łĽö */
  27.  
  28. SHOP_PRICELIST_MAX_NUM = 80, ///< °łŔλóÁˇ °ˇ°ÝÁ¤ş¸ ¸®˝şĆ®żˇĽ­ ŔŻÁöÇŇ °ˇ°ÝÁ¤ş¸ŔÇ ĂÖ´ë °ąĽö
  29.  
  30. CHAT_MAX_LEN = 512,
  31.  
  32. QUICKSLOT_MAX_NUM = 36,
  33.  
  34. JOURNAL_MAX_NUM = 2,
  35.  
  36. QUERY_MAX_LEN = 8192,
  37.  
  38. FILE_MAX_LEN = 128,
  39.  
  40. PLAYER_EXP_TABLE_MAX = 175,
  41. PLAYER_MAX_LEVEL_CONST = 175,
  42.  
  43. GUILD_MAX_LEVEL = 20,
  44. MOB_MAX_LEVEL = 100,
  45.  
  46. ATTRIBUTE_MAX_VALUE = 20,
  47. CHARACTER_PATH_MAX_NUM = 64,
  48. SKILL_MAX_NUM = 255,
  49. SKILLBOOK_DELAY_MIN = 64800,
  50. SKILLBOOK_DELAY_MAX = 108000,
  51. SKILL_MAX_LEVEL = 40,
  52.  
  53. APPLY_NAME_MAX_LEN = 32,
  54. EVENT_FLAG_NAME_MAX_LEN = 32,
  55.  
  56. MOB_SKILL_MAX_NUM = 5,
  57.  
  58. POINT_MAX_NUM = 255,
  59. DRAGON_SOUL_BOX_SIZE = 32,
  60. DRAGON_SOUL_BOX_COLUMN_NUM = 8,
  61. DRAGON_SOUL_BOX_ROW_NUM = DRAGON_SOUL_BOX_SIZE / DRAGON_SOUL_BOX_COLUMN_NUM,
  62. DRAGON_SOUL_REFINE_GRID_SIZE = 15,
  63. MAX_AMOUNT_OF_MALL_BONUS = 20,
  64.  
  65. WEAR_MAX_NUM = 32,
  66.  
  67. //LIMIT_GOLD
  68. GOLD_MAX = 1000000000000001LL,
  69.  
  70. MAX_PASSPOD = 8 ,
  71.  
  72.  
  73. //END_LIMIT_GOLD
  74.  
  75. OPENID_AUTHKEY_LEN = 32,
  76.  
  77. SHOP_TAB_NAME_MAX = 32,
  78. SHOP_TAB_COUNT_MAX = 3,
  79.  
  80. BELT_INVENTORY_SLOT_WIDTH = 4,
  81. BELT_INVENTORY_SLOT_HEIGHT= 4,
  82.  
  83. BELT_INVENTORY_SLOT_COUNT = BELT_INVENTORY_SLOT_WIDTH * BELT_INVENTORY_SLOT_HEIGHT,
  84.  
  85. SPECIAL_INVENTORY_MAX_NUM = 90,
  86.  
  87.  
  88. /**
  89. **** ÇöŔç±îÁö ÇŇ´ç µČ ľĆŔĚĹŰ żµżŞ Á¤¸® (DB»ó Item Position) ****
  90. +------------------------------------------------------+ 0
  91. | Äł¸ŻĹÍ ±âş» ŔÎşĄĹ丮 (45Ä­ * 2ĆäŔĚÁö) 90Ä­ |
  92. +------------------------------------------------------+ 90 = INVENTORY_MAX_NUM(90)
  93. | Äł¸ŻĹÍ Ŕĺşń â (ÂřżëÁßŔÎ ľĆŔĚĹŰ) 32Ä­ |
  94. +------------------------------------------------------+ 122 = INVENTORY_MAX_NUM(90) + WEAR_MAX_NUM(32)
  95. | żëČĄĽ® Ŕĺşń â (ÂřżëÁßŔÎ żëČĄĽ®) 12Ä­ |
  96. +------------------------------------------------------+ 134 = 122 + DS_SLOT_MAX(6) * DRAGON_SOUL_DECK_MAX_NUM(2)
  97. | żëČĄĽ® Ŕĺşń â żąľŕ (ľĆÁ÷ ąĚ»çżë) 18Ä­ |
  98. +------------------------------------------------------+ 152 = 134 + DS_SLOT_MAX(6) * DRAGON_SOUL_DECK_RESERVED_MAX_NUM(3)
  99. | ş§Ć® ŔÎşĄĹ丮 (ş§Ć® Âřżë˝Ăżˇ¸¸ ş§Ć® ·ąş§żˇ µű¶ó Č°Ľş)|
  100. +------------------------------------------------------+ 168 = 152 + BELT_INVENTORY_SLOT_COUNT(16) = INVENTORY_AND_EQUIP_CELL_MAX
  101. | ąĚ»çżë |
  102. +------------------------------------------------------+ ??
  103. */
  104. };
  105.  
  106. enum EMatrixCard
  107. {
  108. MATRIX_CODE_MAX_LEN = 192,
  109. MATRIX_ANSWER_MAX_LEN = 8,
  110. };
  111.  
  112. enum EWearPositions
  113. {
  114. WEAR_BODY, // 0
  115. WEAR_HEAD, // 1
  116. WEAR_FOOTS, // 2
  117. WEAR_WRIST, // 3
  118. WEAR_WEAPON, // 4
  119. WEAR_NECK, // 5
  120. WEAR_EAR, // 6
  121. WEAR_UNIQUE1, // 7
  122. WEAR_UNIQUE2, // 8
  123. WEAR_ARROW, // 9
  124. WEAR_SHIELD, // 10
  125. WEAR_ABILITY1, // 11
  126. WEAR_ABILITY2, // 12
  127. WEAR_ABILITY3, // 13
  128. WEAR_ABILITY4, // 14
  129. WEAR_ABILITY5, // 15
  130. WEAR_ABILITY6, // 16
  131. WEAR_ABILITY7, // 17
  132. WEAR_ABILITY8, // 18
  133. WEAR_COSTUME_BODY, // 19
  134. WEAR_COSTUME_HAIR, // 20
  135. #ifdef __SASH_SYSTEM__
  136. WEAR_COSTUME_SASH,
  137. #endif
  138. WEAR_COSTUME_MOUNT,
  139. #ifdef __WEAPON_COSTUME_SYSTEM__
  140. WEAR_COSTUME_WEAPON,
  141. #endif
  142.  
  143. WEAR_RING1, // 21 : ˝Ĺ±Ô ąÝÁö˝˝·Ô1 (żŢÂĘ)
  144. WEAR_RING2, // 22 : ˝Ĺ±Ô ąÝÁö˝˝·Ô2 (żŔ¸ĄÂĘ)
  145. WEAR_BELT, // 23 : ˝Ĺ±Ô ş§Ć®˝˝·Ô
  146.  
  147. WEAR_MAX = 32 //
  148. };
  149.  
  150. enum EDragonSoulDeckType
  151. {
  152. DRAGON_SOUL_DECK_0,
  153. DRAGON_SOUL_DECK_1,
  154. DRAGON_SOUL_DECK_MAX_NUM = 2,
  155.  
  156. DRAGON_SOUL_DECK_RESERVED_MAX_NUM = 2, // NOTE: Áßżä! ľĆÁ÷ »çżëÁßŔĚÁř ľĘÁö¸¸, 3ĆäŔĚÁö şĐ·®Ŕ» żąľŕ ÇŘ µŇ. DS DECKŔ» ´Ă¸± °ćżě ąÝµĺ˝Ă ±× Ľö¸¸Ĺ­ RESERVEDżˇĽ­ Â÷°¨ÇŘľß ÇÔ!
  157. };
  158.  
  159. enum ESex
  160. {
  161. SEX_MALE,
  162. SEX_FEMALE
  163. };
  164.  
  165. enum EDirection
  166. {
  167. DIR_NORTH,
  168. DIR_NORTHEAST,
  169. DIR_EAST,
  170. DIR_SOUTHEAST,
  171. DIR_SOUTH,
  172. DIR_SOUTHWEST,
  173. DIR_WEST,
  174. DIR_NORTHWEST,
  175. DIR_MAX_NUM
  176. };
  177.  
  178. #define ABILITY_MAX_LEVEL 10 /* ±âĽú ĂÖ´ë ·ąş§ */
  179.  
  180. enum EAbilityDifficulty
  181. {
  182. DIFFICULTY_EASY,
  183. DIFFICULTY_NORMAL,
  184. DIFFICULTY_HARD,
  185. DIFFICULTY_VERY_HARD,
  186. DIFFICULTY_NUM_TYPES
  187. };
  188.  
  189. enum EAbilityCategory
  190. {
  191. CATEGORY_PHYSICAL, /* ˝ĹĂĽŔű ľîşô¸®ĆĽ */
  192. CATEGORY_MENTAL, /* Á¤˝ĹŔű ľîşô¸®ĆĽ */
  193. CATEGORY_ATTRIBUTE, /* ´É·Â ľîşô¸®ĆĽ */
  194. CATEGORY_NUM_TYPES
  195. };
  196.  
  197. enum EJobs
  198. {
  199. JOB_WARRIOR,
  200. JOB_ASSASSIN,
  201. JOB_SURA,
  202. JOB_SHAMAN,
  203. JOB_MAX_NUM
  204. };
  205.  
  206. enum ESkillGroups
  207. {
  208. SKILL_GROUP_MAX_NUM = 2,
  209. };
  210.  
  211. enum ERaceFlags
  212. {
  213. RACE_FLAG_ANIMAL = (1 << 0),
  214. RACE_FLAG_UNDEAD = (1 << 1),
  215. RACE_FLAG_DEVIL = (1 << 2),
  216. RACE_FLAG_HUMAN = (1 << 3),
  217. RACE_FLAG_ORC = (1 << 4),
  218. RACE_FLAG_MILGYO = (1 << 5),
  219. RACE_FLAG_INSECT = (1 << 6),
  220. RACE_FLAG_FIRE = (1 << 7),
  221. RACE_FLAG_ICE = (1 << 8),
  222. RACE_FLAG_DESERT = (1 << 9),
  223. RACE_FLAG_TREE = (1 << 10),
  224. RACE_FLAG_ATT_ELEC = (1 << 11),
  225. RACE_FLAG_ATT_FIRE = (1 << 12),
  226. RACE_FLAG_ATT_ICE = (1 << 13),
  227. RACE_FLAG_ATT_WIND = (1 << 14),
  228. RACE_FLAG_ATT_EARTH = (1 << 15),
  229. RACE_FLAG_ATT_DARK = (1 << 16),
  230. };
  231.  
  232. enum ELoads
  233. {
  234. LOAD_NONE,
  235. LOAD_LIGHT,
  236. LOAD_NORMAL,
  237. LOAD_HEAVY,
  238. LOAD_MASSIVE
  239. };
  240.  
  241. enum
  242. {
  243. QUICKSLOT_TYPE_NONE,
  244. QUICKSLOT_TYPE_ITEM,
  245. QUICKSLOT_TYPE_SKILL,
  246. QUICKSLOT_TYPE_COMMAND,
  247. QUICKSLOT_TYPE_MAX_NUM,
  248. };
  249.  
  250. enum EParts
  251. {
  252. PART_MAIN,
  253. PART_WEAPON,
  254. PART_HEAD,
  255. PART_HAIR,
  256. PART_SASH,
  257.  
  258. PART_MAX_NUM,
  259. PART_WEAPON_SUB,
  260. };
  261.  
  262. enum EChatType
  263. {
  264. CHAT_TYPE_TALKING, /* ±×łÉ äĆĂ */
  265. CHAT_TYPE_INFO, /* Á¤ş¸ (ľĆŔĚĹŰŔ» Áýľú´Ů, °ćÇčġ¸¦ ľňľú´Ů. µî) */
  266. CHAT_TYPE_NOTICE, /* °řÁö»çÇ× */
  267. CHAT_TYPE_PARTY, /* ĆÄĆĽ¸» */
  268. CHAT_TYPE_GUILD, /* ±ćµĺ¸» */
  269. CHAT_TYPE_COMMAND, /* ŔĎąÝ ¸í·É */
  270. CHAT_TYPE_SHOUT, /* żÜġ±â */
  271. CHAT_TYPE_WHISPER,
  272. CHAT_TYPE_BIG_NOTICE,
  273. CHAT_TYPE_MONARCH_NOTICE,
  274. CHAT_TYPE_MAX_NUM
  275. };
  276.  
  277. enum EWhisperType
  278. {
  279. WHISPER_TYPE_NORMAL = 0,
  280. WHISPER_TYPE_NOT_EXIST = 1,
  281. WHISPER_TYPE_TARGET_BLOCKED = 2,
  282. WHISPER_TYPE_SENDER_BLOCKED = 3,
  283. WHISPER_TYPE_ERROR = 4,
  284. WHISPER_TYPE_GM = 5,
  285. WHISPER_TYPE_SYSTEM = 0xFF
  286. };
  287.  
  288. enum ECharacterPosition
  289. {
  290. POSITION_GENERAL,
  291. POSITION_BATTLE,
  292. POSITION_DYING,
  293. POSITION_SITTING_CHAIR,
  294. POSITION_SITTING_GROUND,
  295. POSITION_INTRO,
  296. POSITION_MAX_NUM
  297. };
  298.  
  299. enum EGMLevels
  300. {
  301. GM_PLAYER,
  302. GM_LOW_WIZARD,
  303. GM_WIZARD,
  304. GM_HIGH_WIZARD,
  305. GM_GOD,
  306. GM_IMPLEMENTOR
  307. };
  308.  
  309. enum EMobRank
  310. {
  311. MOB_RANK_PAWN,
  312. MOB_RANK_S_PAWN,
  313. MOB_RANK_KNIGHT,
  314. MOB_RANK_S_KNIGHT,
  315. MOB_RANK_BOSS,
  316. MOB_RANK_KING,
  317. MOB_RANK_MAX_NUM
  318. };
  319.  
  320. enum ECharType
  321. {
  322. CHAR_TYPE_MONSTER,
  323. CHAR_TYPE_NPC,
  324. CHAR_TYPE_STONE,
  325. CHAR_TYPE_WARP,
  326. CHAR_TYPE_DOOR,
  327. CHAR_TYPE_BUILDING,
  328. CHAR_TYPE_PC,
  329. CHAR_TYPE_POLYMORPH_PC,
  330. CHAR_TYPE_HORSE,
  331. CHAR_TYPE_GOTO
  332. };
  333.  
  334. enum EBattleType
  335. {
  336. BATTLE_TYPE_MELEE,
  337. BATTLE_TYPE_RANGE,
  338. BATTLE_TYPE_MAGIC,
  339. BATTLE_TYPE_SPECIAL,
  340. BATTLE_TYPE_POWER,
  341. BATTLE_TYPE_TANKER,
  342. BATTLE_TYPE_SUPER_POWER,
  343. BATTLE_TYPE_SUPER_TANKER,
  344. BATTLE_TYPE_MAX_NUM
  345. };
  346.  
  347. enum EApplyTypes
  348. {
  349. APPLY_NONE, // 0
  350. APPLY_MAX_HP, // 1
  351. APPLY_MAX_SP, // 2
  352. APPLY_CON, // 3
  353. APPLY_INT, // 4
  354. APPLY_STR, // 5
  355. APPLY_DEX, // 6
  356. APPLY_ATT_SPEED, // 7
  357. APPLY_MOV_SPEED, // 8
  358. APPLY_CAST_SPEED, // 9
  359. APPLY_HP_REGEN, // 10
  360. APPLY_SP_REGEN, // 11
  361. APPLY_POISON_PCT, // 12
  362. APPLY_STUN_PCT, // 13
  363. APPLY_SLOW_PCT, // 14
  364. APPLY_CRITICAL_PCT, // 15
  365. APPLY_PENETRATE_PCT, // 16
  366. APPLY_ATTBONUS_HUMAN, // 17
  367. APPLY_ATTBONUS_ANIMAL, // 18
  368. APPLY_ATTBONUS_ORC, // 19
  369. APPLY_ATTBONUS_MILGYO, // 20
  370. APPLY_ATTBONUS_UNDEAD, // 21
  371. APPLY_ATTBONUS_DEVIL, // 22
  372. APPLY_STEAL_HP, // 23
  373. APPLY_STEAL_SP, // 24
  374. APPLY_MANA_BURN_PCT, // 25
  375. APPLY_DAMAGE_SP_RECOVER, // 26
  376. APPLY_BLOCK, // 27
  377. APPLY_DODGE, // 28
  378. APPLY_RESIST_SWORD, // 29
  379. APPLY_RESIST_TWOHAND, // 30
  380. APPLY_RESIST_DAGGER, // 31
  381. APPLY_RESIST_BELL, // 32
  382. APPLY_RESIST_FAN, // 33
  383. APPLY_RESIST_BOW, // 34
  384. APPLY_RESIST_FIRE, // 35
  385. APPLY_RESIST_ELEC, // 36
  386. APPLY_RESIST_MAGIC, // 37
  387. APPLY_RESIST_WIND, // 38
  388. APPLY_REFLECT_MELEE, // 39
  389. APPLY_REFLECT_CURSE, // 40
  390. APPLY_POISON_REDUCE, // 41
  391. APPLY_KILL_SP_RECOVER, // 42
  392. APPLY_EXP_DOUBLE_BONUS, // 43
  393. APPLY_GOLD_DOUBLE_BONUS, // 44
  394. APPLY_ITEM_DROP_BONUS, // 45
  395. APPLY_POTION_BONUS, // 46
  396. APPLY_KILL_HP_RECOVER, // 47
  397. APPLY_IMMUNE_STUN, // 48
  398. APPLY_IMMUNE_SLOW, // 49
  399. APPLY_IMMUNE_FALL, // 50
  400. APPLY_SKILL, // 51
  401. APPLY_BOW_DISTANCE, // 52
  402. APPLY_ATT_GRADE_BONUS, // 53
  403. APPLY_DEF_GRADE_BONUS, // 54
  404. APPLY_MAGIC_ATT_GRADE, // 55
  405. APPLY_MAGIC_DEF_GRADE, // 56
  406. APPLY_CURSE_PCT, // 57
  407. APPLY_MAX_STAMINA, // 58
  408. APPLY_ATTBONUS_WARRIOR, // 59
  409. APPLY_ATTBONUS_ASSASSIN, // 60
  410. APPLY_ATTBONUS_SURA, // 61
  411. APPLY_ATTBONUS_SHAMAN, // 62
  412. APPLY_ATTBONUS_MONSTER, // 63
  413. APPLY_MALL_ATTBONUS, // 64 °ř°Ý·Â +x%
  414. APPLY_MALL_DEFBONUS, // 65 ąćľî·Â +x%
  415. APPLY_MALL_EXPBONUS, // 66 °ćÇčġ +x%
  416. APPLY_MALL_ITEMBONUS, // 67 ľĆŔĚĹŰ µĺ·ÓŔ˛ x/10ąč
  417. APPLY_MALL_GOLDBONUS, // 68 µ· µĺ·ÓŔ˛ x/10ąč
  418. APPLY_MAX_HP_PCT, // 69 ĂÖ´ë »ý¸í·Â +x%
  419. APPLY_MAX_SP_PCT, // 70 ĂÖ´ë Á¤˝Ĺ·Â +x%
  420. APPLY_SKILL_DAMAGE_BONUS, // 71 ˝şĹł µĄąĚÁö * (100+x)%
  421. APPLY_NORMAL_HIT_DAMAGE_BONUS, // 72 ĆňŸ µĄąĚÁö * (100+x)%
  422. APPLY_SKILL_DEFEND_BONUS, // 73 ˝şĹł µĄąĚÁö ąćľî * (100-x)%
  423. APPLY_NORMAL_HIT_DEFEND_BONUS, // 74 ĆňŸ µĄąĚÁö ąćľî * (100-x)%
  424. APPLY_PC_BANG_EXP_BONUS, // 75 PCąć ľĆŔĚĹŰ EXP ş¸łĘ˝ş
  425. APPLY_PC_BANG_DROP_BONUS, // 76 PCąć ľĆŔĚĹŰ µĺ·ÓŔ˛ ş¸łĘ˝ş
  426.  
  427. APPLY_EXTRACT_HP_PCT, // 77 »çżë˝Ă HP ĽŇ¸đ
  428.  
  429. APPLY_RESIST_WARRIOR, // 78 ą«»çżˇ°Ô ŔúÇ×
  430. APPLY_RESIST_ASSASSIN, // 79 ŔÚ°´żˇ°Ô ŔúÇ×
  431. APPLY_RESIST_SURA, // 80 Ľö¶óżˇ°Ô ŔúÇ×
  432. APPLY_RESIST_SHAMAN, // 81 ą«´çżˇ°Ô ŔúÇ×
  433. APPLY_ENERGY, // 82 ±â·Â
  434. APPLY_DEF_GRADE, // 83 ąćľî·Â. DEF_GRADE_BONUS´Â Ŭ¶óżˇĽ­ µÎąč·Î ş¸ż©Áö´Â ŔǵµµČ ąö±×(...)°ˇ ŔÖ´Ů.
  435. APPLY_COSTUME_ATTR_BONUS, // 84 ÄÚ˝şĆ¬ ľĆŔĚĹŰżˇ şŮŔş ĽÓĽşÄˇ ş¸łĘ˝ş
  436. APPLY_MAGIC_ATTBONUS_PER, // 85 ¸¶ąý °ř°Ý·Â +x%
  437. APPLY_MELEE_MAGIC_ATTBONUS_PER, // 86 ¸¶ąý + ąĐ¸® °ř°Ý·Â +x%
  438.  
  439. APPLY_RESIST_ICE, // 87 łĂ±â ŔúÇ×
  440. APPLY_RESIST_EARTH, // 88 ´ëÁö ŔúÇ×
  441. APPLY_RESIST_DARK, // 89 ľîµŇ ŔúÇ×
  442.  
  443. APPLY_ANTI_CRITICAL_PCT, //90 Ĺ©¸®ĆĽÄĂ ŔúÇ×
  444. APPLY_ANTI_PENETRATE_PCT, //91 °üĹëŸ°Ý ŔúÇ×
  445.  
  446.  
  447. MAX_APPLY_NUM, //
  448. };
  449.  
  450. #ifdef __ALIGNMENT_BONUS__
  451. enum EAlignmentBonus
  452. {
  453. NAME_ALIGNMENT_1 = 10000,
  454. NAME_ALIGNMENT_2 = 40000,
  455. NAME_ALIGNMENT_3 = 80000,
  456. NAME_ALIGNMENT_4 = 120000,
  457. NAME_ALIGNMENT_5 = 300000,
  458. NAME_ALIGNMENT_6 = 500000,
  459. NAME_ALIGNMENT_7 = 1000000,
  460. NAME_ALIGNMENT_8 = 2500000,
  461. NAME_ALIGNMENT_9 = 5000000,
  462. NAME_ALIGNMENT_10 = 7500000,
  463. NAME_ALIGNMENT_11 = 10000000,
  464.  
  465. ALIGNMENT_TIME = 60*60*24*365,
  466.  
  467. VALUE_BONUS_ALIGNMENT_1 = 500,
  468. VALUE_BONUS_ALIGNMENT_2 = 1,
  469. VALUE_BONUS_ALIGNMENT_3 = 1,
  470.  
  471. VALUE_BONUS_ALIGNMENT_4 = 1500,
  472. VALUE_BONUS_ALIGNMENT_5 = 3,
  473. VALUE_BONUS_ALIGNMENT_6 = 3,
  474.  
  475. VALUE_BONUS_ALIGNMENT_7 = 2500,
  476. VALUE_BONUS_ALIGNMENT_8 = 5,
  477. VALUE_BONUS_ALIGNMENT_9 = 5,
  478.  
  479. VALUE_BONUS_ALIGNMENT_10 = 3000,
  480. VALUE_BONUS_ALIGNMENT_11 = 7,
  481. VALUE_BONUS_ALIGNMENT_12 = 7,
  482.  
  483. VALUE_BONUS_ALIGNMENT_13 = 3500,
  484. VALUE_BONUS_ALIGNMENT_14 = 10,
  485. VALUE_BONUS_ALIGNMENT_15 = 10,
  486.  
  487. VALUE_BONUS_ALIGNMENT_16 = 5000,
  488. VALUE_BONUS_ALIGNMENT_17 = 13,
  489. VALUE_BONUS_ALIGNMENT_18 = 13,
  490.  
  491. VALUE_BONUS_ALIGNMENT_19 = 7000,
  492. VALUE_BONUS_ALIGNMENT_20 = 15,
  493. VALUE_BONUS_ALIGNMENT_21 = 15,
  494.  
  495. VALUE_BONUS_ALIGNMENT_22 = 8500,
  496. VALUE_BONUS_ALIGNMENT_23 = 17,
  497. VALUE_BONUS_ALIGNMENT_24 = 17,
  498.  
  499. VALUE_BONUS_ALIGNMENT_25 = 9000,
  500. VALUE_BONUS_ALIGNMENT_26 = 19,
  501. VALUE_BONUS_ALIGNMENT_27 = 19,
  502.  
  503. VALUE_BONUS_ALIGNMENT_28 = 10000,
  504. VALUE_BONUS_ALIGNMENT_29 = 20,
  505. VALUE_BONUS_ALIGNMENT_30 = 20,
  506.  
  507. VALUE_BONUS_ALIGNMENT_31 = 12500,
  508. VALUE_BONUS_ALIGNMENT_32 = 23,
  509. VALUE_BONUS_ALIGNMENT_33 = 23,
  510.  
  511. VALUE_BONUS_ALIGNMENT_34 = 15000,
  512. VALUE_BONUS_ALIGNMENT_35 = 25,
  513. VALUE_BONUS_ALIGNMENT_36 = 25,
  514. };
  515. #endif
  516.  
  517. enum EOnClickEvents
  518. {
  519. ON_CLICK_NONE,
  520. ON_CLICK_SHOP,
  521. ON_CLICK_TALK,
  522. ON_CLICK_MAX_NUM
  523. };
  524.  
  525. enum EOnIdleEvents
  526. {
  527. ON_IDLE_NONE,
  528. ON_IDLE_GENERAL,
  529. ON_IDLE_MAX_NUM
  530. };
  531.  
  532. enum EWindows
  533. {
  534. RESERVED_WINDOW,
  535. INVENTORY,
  536. EQUIPMENT,
  537. SAFEBOX,
  538. MALL,
  539. DRAGON_SOUL_INVENTORY,
  540. BELT_INVENTORY,
  541. #ifdef __AUCTION__
  542. AUCTION,
  543. #endif
  544. GROUND
  545. };
  546.  
  547. enum EMobSizes
  548. {
  549. MOBSIZE_RESERVED,
  550. MOBSIZE_SMALL,
  551. MOBSIZE_MEDIUM,
  552. MOBSIZE_BIG
  553. };
  554.  
  555. enum EAIFlags
  556. {
  557. AIFLAG_AGGRESSIVE = (1 << 0),
  558. AIFLAG_NOMOVE = (1 << 1),
  559. AIFLAG_COWARD = (1 << 2),
  560. AIFLAG_NOATTACKSHINSU = (1 << 3),
  561. AIFLAG_NOATTACKJINNO = (1 << 4),
  562. AIFLAG_NOATTACKCHUNJO = (1 << 5),
  563. AIFLAG_ATTACKMOB = (1 << 6 ),
  564. AIFLAG_BERSERK = (1 << 7),
  565. AIFLAG_STONESKIN = (1 << 8),
  566. AIFLAG_GODSPEED = (1 << 9),
  567. AIFLAG_DEATHBLOW = (1 << 10),
  568. AIFLAG_REVIVE = (1 << 11),
  569. };
  570.  
  571. enum EMobStatType
  572. {
  573. MOB_STATTYPE_POWER,
  574. MOB_STATTYPE_TANKER,
  575. MOB_STATTYPE_SUPER_POWER,
  576. MOB_STATTYPE_SUPER_TANKER,
  577. MOB_STATTYPE_RANGE,
  578. MOB_STATTYPE_MAGIC,
  579. MOB_STATTYPE_MAX_NUM
  580. };
  581.  
  582. enum EImmuneFlags
  583. {
  584. IMMUNE_STUN = (1 << 0),
  585. IMMUNE_SLOW = (1 << 1),
  586. IMMUNE_FALL = (1 << 2),
  587. IMMUNE_CURSE = (1 << 3),
  588. IMMUNE_POISON = (1 << 4),
  589. IMMUNE_TERROR = (1 << 5),
  590. IMMUNE_REFLECT = (1 << 6),
  591. };
  592.  
  593. enum EMobEnchants
  594. {
  595. MOB_ENCHANT_CURSE,
  596. MOB_ENCHANT_SLOW,
  597. MOB_ENCHANT_POISON,
  598. MOB_ENCHANT_STUN,
  599. MOB_ENCHANT_CRITICAL,
  600. MOB_ENCHANT_PENETRATE,
  601. MOB_ENCHANTS_MAX_NUM
  602. };
  603.  
  604. enum EMobResists
  605. {
  606. MOB_RESIST_SWORD,
  607. MOB_RESIST_TWOHAND,
  608. MOB_RESIST_DAGGER,
  609. MOB_RESIST_BELL,
  610. MOB_RESIST_FAN,
  611. MOB_RESIST_BOW,
  612. MOB_RESIST_FIRE,
  613. MOB_RESIST_ELECT,
  614. MOB_RESIST_MAGIC,
  615. MOB_RESIST_WIND,
  616. MOB_RESIST_POISON,
  617. MOB_RESISTS_MAX_NUM
  618. };
  619.  
  620. enum
  621. {
  622. SKILL_ATTR_TYPE_NORMAL = 1,
  623. SKILL_ATTR_TYPE_MELEE,
  624. SKILL_ATTR_TYPE_RANGE,
  625. SKILL_ATTR_TYPE_MAGIC
  626. /*
  627. SKILL_ATTR_TYPE_FIRE,
  628. SKILL_ATTR_TYPE_ICE,
  629. SKILL_ATTR_TYPE_ELEC,
  630. SKILL_ATTR_TYPE_DARK,
  631. */
  632. };
  633.  
  634. enum
  635. {
  636. SKILL_NORMAL,
  637. SKILL_MASTER,
  638. SKILL_GRAND_MASTER,
  639. SKILL_PERFECT_MASTER,
  640. };
  641.  
  642. enum EGuildWarType
  643. {
  644. GUILD_WAR_TYPE_FIELD,
  645. GUILD_WAR_TYPE_BATTLE,
  646. GUILD_WAR_TYPE_FLAG,
  647. GUILD_WAR_TYPE_MAX_NUM
  648. };
  649.  
  650. enum EGuildWarState
  651. {
  652. GUILD_WAR_NONE,
  653. GUILD_WAR_SEND_DECLARE,
  654. GUILD_WAR_REFUSE,
  655. GUILD_WAR_RECV_DECLARE,
  656. GUILD_WAR_WAIT_START,
  657. GUILD_WAR_CANCEL,
  658. GUILD_WAR_ON_WAR,
  659. GUILD_WAR_END,
  660. GUILD_WAR_OVER,
  661. GUILD_WAR_RESERVE,
  662.  
  663. GUILD_WAR_DURATION = 30*60, // 1˝Ă°Ł
  664. GUILD_WAR_WIN_POINT = 1000,
  665. GUILD_WAR_LADDER_HALF_PENALTY_TIME = 12*60*60,
  666. };
  667.  
  668. enum EAttributeSet
  669. {
  670. ATTRIBUTE_SET_WEAPON,
  671. ATTRIBUTE_SET_BODY,
  672. ATTRIBUTE_SET_WRIST,
  673. ATTRIBUTE_SET_FOOTS,
  674. ATTRIBUTE_SET_NECK,
  675. ATTRIBUTE_SET_HEAD,
  676. ATTRIBUTE_SET_SHIELD,
  677. ATTRIBUTE_SET_EAR,
  678. ATTRIBUTE_SET_MAX_NUM
  679. };
  680.  
  681. enum EPrivType
  682. {
  683. PRIV_NONE,
  684. PRIV_ITEM_DROP,
  685. PRIV_GOLD_DROP,
  686. PRIV_GOLD10_DROP,
  687. PRIV_EXP_PCT,
  688. MAX_PRIV_NUM,
  689. };
  690.  
  691. enum EMoneyLogType
  692. {
  693. MONEY_LOG_RESERVED,
  694. MONEY_LOG_MONSTER,
  695. MONEY_LOG_SHOP,
  696. MONEY_LOG_REFINE,
  697. MONEY_LOG_QUEST,
  698. MONEY_LOG_GUILD,
  699. MONEY_LOG_MISC,
  700. MONEY_LOG_MONSTER_KILL,
  701. MONEY_LOG_DROP,
  702. MONEY_LOG_TYPE_MAX_NUM,
  703. };
  704.  
  705. enum EPremiumTypes
  706. {
  707. PREMIUM_EXP, // °ćÇčġ°ˇ 1.2ąč
  708. PREMIUM_ITEM, // ľĆŔĚĹŰ µĺ·ÓŔ˛ŔĚ 2ąč
  709. PREMIUM_SAFEBOX, // â°í°ˇ 1Ä­żˇĽ­ 3Ä­
  710. PREMIUM_AUTOLOOT, // µ· ŔÚµż Áݱâ
  711. PREMIUM_FISH_MIND, // °í±Ţ ą°°í±â ł¬ŔĎ Č®·ü »ó˝Â
  712. PREMIUM_MARRIAGE_FAST, // ±Ý˝Ç Áő°ˇ ľçŔ» şü¸Ł°ÔÇŐ´Ď´Ů.
  713. PREMIUM_GOLD, // µ· µĺ·ÓŔ˛ŔĚ 1.5ąč
  714. PREMIUM_MAX_NUM = 9
  715. };
  716.  
  717. enum SPECIAL_EFFECT
  718. {
  719. SE_NONE,
  720.  
  721. SE_HPUP_RED,
  722. SE_SPUP_BLUE,
  723. SE_SPEEDUP_GREEN,
  724. SE_DXUP_PURPLE,
  725. SE_CRITICAL,
  726. SE_PENETRATE,
  727. SE_BLOCK,
  728. SE_DODGE,
  729. SE_CHINA_FIREWORK,
  730. SE_SPIN_TOP,
  731. SE_SUCCESS,
  732. SE_FAIL,
  733. SE_FR_SUCCESS,
  734. SE_LEVELUP_ON_14_FOR_GERMANY,
  735. SE_LEVELUP_UNDER_15_FOR_GERMANY,
  736. SE_PERCENT_DAMAGE1,
  737. SE_PERCENT_DAMAGE2,
  738. SE_PERCENT_DAMAGE3,
  739.  
  740. SE_AUTO_HPUP,
  741. SE_AUTO_SPUP,
  742.  
  743. SE_EQUIP_RAMADAN_RING, // ¶ó¸¶´Ü Ăʽ´ŢŔÇ ąÝÁö(71135) ÂřżëÇŇ ¶§ ŔĚĆĺĆ® (ąßµżŔĚĆĺĆ®ŔÓ, ÁöĽÓŔĚĆĺĆ® ľĆ´Ô)
  744. SE_EQUIP_HALLOWEEN_CANDY, // ÇŇ·ÎŔ© »çĹÁŔ» Âřżë(-_-;)ÇŃ Ľř°Łżˇ ąßµżÇĎ´Â ŔĚĆĺĆ®
  745. SE_EQUIP_HAPPINESS_RING, // Ĺ©¸®˝ş¸¶˝ş ÇŕşąŔÇ ąÝÁö(71143) ÂřżëÇŇ ¶§ ŔĚĆĺĆ® (ąßµżŔĚĆĺĆ®ŔÓ, ÁöĽÓŔĚĆĺĆ® ľĆ´Ô)
  746. SE_EQUIP_LOVE_PENDANT, // ąß·»Ĺ¸ŔÎ »ç¶űŔÇ ĆŇ´řĆ®(71145) ÂřżëÇŇ ¶§ ŔĚĆĺĆ® (ąßµżŔĚĆĺĆ®ŔÓ, ÁöĽÓŔĚĆĺĆ® ľĆ´Ô)
  747. #ifdef __SASH_SYSTEM__
  748. SE_EFFECT_SASH_SUCCEDED,
  749. SE_EFFECT_SASH_EQUIP,
  750. #endif
  751.  
  752. } ;
  753.  
  754. enum ETeenFlags
  755. {
  756. TEENFLAG_NONE = 0,
  757. TEENFLAG_1HOUR,
  758. TEENFLAG_2HOUR,
  759. TEENFLAG_3HOUR,
  760. TEENFLAG_4HOUR,
  761. TEENFLAG_5HOUR,
  762. };
  763.  
  764.  
  765. #include "item_length.h"
  766.  
  767. // inventoryŔÇ positionŔ» łŞĹ¸ł»´Â ±¸Á¶ĂĽ
  768. // intżÍŔÇ ľĎ˝ĂŔű ÇüşŻČŻŔĚ ŔÖ´Â ŔĚŔŻ´Â,
  769. // ŔÎşĄ °ü·ĂµČ ¸đµç ÇÔĽö°ˇ window_typeŔş ąŢÁö ľĘ°í, cell ÇĎłŞ¸¸ ąŢľŇ±â ¶§ą®żˇ,(±âÁ¸żˇ´Â ŔÎşĄŔĚ ÇĎłŞ »ÓŔ̾ inventory typeŔ̶ő°Ô ÇĘżäľřľú±â ¶§ą®żˇ,)
  770. // ŔÎşĄ °ü·Ă ¸đµç ÇÔĽö ČŁĂâşÎşĐŔ» ĽöÁ¤ÇĎ´Â °ÍŔĚ ł­°¨Çϱ⠋šą®ŔĚ´Ů.
  771.  
  772. enum EDragonSoulRefineWindowSize
  773. {
  774. DRAGON_SOUL_REFINE_GRID_MAX = 15,
  775. };
  776.  
  777. enum EMisc2
  778. {
  779. DRAGON_SOUL_EQUIP_SLOT_START = INVENTORY_MAX_NUM + WEAR_MAX_NUM,
  780. DRAGON_SOUL_EQUIP_SLOT_END = DRAGON_SOUL_EQUIP_SLOT_START + (DS_SLOT_MAX * DRAGON_SOUL_DECK_MAX_NUM),
  781. DRAGON_SOUL_EQUIP_RESERVED_SLOT_END = DRAGON_SOUL_EQUIP_SLOT_END + (DS_SLOT_MAX * DRAGON_SOUL_DECK_RESERVED_MAX_NUM),
  782.  
  783. BELT_INVENTORY_SLOT_START = DRAGON_SOUL_EQUIP_RESERVED_SLOT_END,
  784. BELT_INVENTORY_SLOT_END = BELT_INVENTORY_SLOT_START + BELT_INVENTORY_SLOT_COUNT,
  785.  
  786. INVENTORY_AND_EQUIP_SLOT_MAX = BELT_INVENTORY_SLOT_END,
  787. };
  788.  
  789. #pragma pack(push, 1)
  790.  
  791. typedef struct SItemPos
  792. {
  793. BYTE window_type;
  794. WORD cell;
  795. SItemPos ()
  796. {
  797. window_type = INVENTORY;
  798. cell = WORD_MAX;
  799. }
  800.  
  801. SItemPos (BYTE _window_type, WORD _cell)
  802. {
  803. window_type = _window_type;
  804. cell = _cell;
  805. }
  806.  
  807. bool IsValidItemPosition() const
  808. {
  809. switch (window_type)
  810. {
  811. case RESERVED_WINDOW:
  812. return false;
  813. case INVENTORY:
  814. case EQUIPMENT:
  815. case BELT_INVENTORY:
  816. return cell < INVENTORY_AND_EQUIP_SLOT_MAX;
  817. case DRAGON_SOUL_INVENTORY:
  818. return cell < (DRAGON_SOUL_INVENTORY_MAX_NUM);
  819. // µżŔűŔ¸·Î Ĺ©±â°ˇ Á¤ÇŘÁö´Â window´Â valid ĂĽĹ©¸¦ ÇŇ Ľö°ˇ ľř´Ů.
  820. case SAFEBOX:
  821. case MALL:
  822. return false;
  823. default:
  824. return false;
  825. }
  826. return false;
  827. }
  828.  
  829. bool IsEquipPosition() const
  830. {
  831. return ((INVENTORY == window_type || EQUIPMENT == window_type) && cell >= INVENTORY_MAX_NUM && cell < INVENTORY_MAX_NUM + WEAR_MAX_NUM)
  832. || IsDragonSoulEquipPosition();
  833. }
  834.  
  835. bool IsDragonSoulEquipPosition() const
  836. {
  837. return (DRAGON_SOUL_EQUIP_SLOT_START <= cell) && (DRAGON_SOUL_EQUIP_SLOT_END > cell);
  838. }
  839.  
  840. bool IsBeltInventoryPosition() const
  841. {
  842. return (BELT_INVENTORY_SLOT_START <= cell) && (BELT_INVENTORY_SLOT_END > cell);
  843. }
  844.  
  845. bool IsDefaultInventoryPosition() const
  846. {
  847. return INVENTORY == window_type && cell < INVENTORY_MAX_NUM;
  848. }
  849.  
  850. bool operator==(const struct SItemPos& rhs) const
  851. {
  852. return (window_type == rhs.window_type) && (cell == rhs.cell);
  853. }
  854. bool operator<(const struct SItemPos& rhs) const
  855. {
  856. return (window_type < rhs.window_type) || ((window_type == rhs.window_type) && (cell < rhs.cell));
  857. }
  858. } TItemPos;
  859.  
  860. const TItemPos NPOS (RESERVED_WINDOW, WORD_MAX);
  861.  
  862. typedef enum
  863. {
  864. SHOP_COIN_TYPE_GOLD, // DEFAULT VALUE
  865. SHOP_COIN_TYPE_SECONDARY_COIN,
  866. } EShopCoinType;
  867.  
  868. #pragma pack(pop)
  869.  
  870. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement