Advertisement
Guest User

length.h

a guest
Mar 28th, 2020
775
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 18.33 KB | None | 0 0
  1. #pragma once
  2. #define WORD_MAX 0xffff
  3.  
  4. enum EMisc
  5. {
  6.     MAX_HOST_LENGTH         = 15,
  7.     IP_ADDRESS_LENGTH       = 15,
  8.     LOGIN_MAX_LEN           = 30,
  9.     PASSWD_MAX_LEN          = 16,
  10.     PLAYER_PER_ACCOUNT      = 4,
  11.     ACCOUNT_STATUS_MAX_LEN  = 8,
  12.     CHARACTER_NAME_MAX_LEN  = 48,
  13.     SHOP_SIGN_MAX_LEN       = 32,
  14.     INVENTORY_MAX_NUM       = 180,
  15.     ABILITY_MAX_NUM         = 50,
  16.     EMPIRE_MAX_NUM          = 4,
  17.     BANWORD_MAX_LEN         = 24,
  18.     SMS_MAX_LEN             = 80,
  19.     MOBILE_MAX_LEN          = 32,
  20.     SOCIAL_ID_MAX_LEN       = 18,
  21.     LANGUAGE_MAX_LEN        = 2,
  22.     LANGUAGE_MAX_NUM        = 5,
  23.  
  24.     GUILD_NAME_MAX_LEN      = 12,
  25.  
  26.     SHOP_HOST_ITEM_MAX_NUM  = 40,   /* 호스트의 최대 아이템 개수 */
  27.     SHOP_GUEST_ITEM_MAX_NUM = 18,   /* 게스트의 최대 아이템 개수 */
  28.  
  29.     SHOP_PRICELIST_MAX_NUM  = 40,   ///< 개인상점 가격정보 리스트에서 유지할 가격정보의 최대 갯수
  30.  
  31.     CHAT_MAX_LEN            = 512,
  32.  
  33.     QUICKSLOT_MAX_NUM       = 36,
  34.  
  35.     JOURNAL_MAX_NUM         = 2,
  36.  
  37.     QUERY_MAX_LEN           = 8192,
  38.  
  39.     FILE_MAX_LEN            = 128,
  40.  
  41.     PLAYER_EXP_TABLE_MAX    = 150,
  42.     PLAYER_MAX_LEVEL_CONST  = 150,
  43.  
  44.     GUILD_MAX_LEVEL         = 20,
  45.     MOB_MAX_LEVEL           = 100,
  46.  
  47.     ATTRIBUTE_MAX_VALUE     = 20,
  48.     CHARACTER_PATH_MAX_NUM  = 64,
  49.     SKILL_MAX_NUM           = 255,
  50.     SKILLBOOK_DELAY_MIN     = 64800,
  51.     SKILLBOOK_DELAY_MAX     = 108000,
  52.     SKILL_MAX_LEVEL         = 40,
  53.  
  54.     APPLY_NAME_MAX_LEN      = 32,
  55.     EVENT_FLAG_NAME_MAX_LEN = 32,
  56.  
  57.     MOB_SKILL_MAX_NUM       = 5,
  58.  
  59.     POINT_MAX_NUM = 255,
  60.     DRAGON_SOUL_BOX_SIZE = 32,
  61.     DRAGON_SOUL_BOX_COLUMN_NUM = 8,
  62.     DRAGON_SOUL_BOX_ROW_NUM = DRAGON_SOUL_BOX_SIZE / DRAGON_SOUL_BOX_COLUMN_NUM,
  63.     DRAGON_SOUL_REFINE_GRID_SIZE = 15,
  64.     MAX_AMOUNT_OF_MALL_BONUS    = 20,
  65.  
  66.     WEAR_MAX_NUM                = 35,
  67.  
  68.     //LIMIT_GOLD
  69.     GOLD_MAX = 1000000000000001LL,
  70.  
  71.     MAX_PASSPOD = 8 ,
  72.  
  73.        
  74.     //END_LIMIT_GOLD
  75.  
  76.     OPENID_AUTHKEY_LEN = 32,
  77.  
  78.     SHOP_TAB_NAME_MAX = 32,
  79.     SHOP_TAB_COUNT_MAX = 3,
  80.  
  81.     BELT_INVENTORY_SLOT_WIDTH = 4,
  82.     BELT_INVENTORY_SLOT_HEIGHT= 4,
  83.  
  84.     BELT_INVENTORY_SLOT_COUNT = BELT_INVENTORY_SLOT_WIDTH * BELT_INVENTORY_SLOT_HEIGHT,
  85.  
  86.  
  87. /**
  88.      **** 현재까지 할당 된 아이템 영역 정리 (DB상 Item Position) ****
  89.     +------------------------------------------------------+ 0
  90.     | 캐릭터 기본 인벤토리 (45칸 * 2페이지) 90칸           |
  91.     +------------------------------------------------------+ 90 = INVENTORY_MAX_NUM(90)
  92.     | 캐릭터 장비 창 (착용중인 아이템) 32칸                |
  93.     +------------------------------------------------------+ 122 = INVENTORY_MAX_NUM(90) + WEAR_MAX_NUM(32)
  94.     | 용혼석 장비 창 (착용중인 용혼석) 12칸                |
  95.     +------------------------------------------------------+ 134 = 122 + DS_SLOT_MAX(6) * DRAGON_SOUL_DECK_MAX_NUM(2)
  96.     | 용혼석 장비 창 예약 (아직 미사용) 18칸               |
  97.     +------------------------------------------------------+ 152 = 134 + DS_SLOT_MAX(6) * DRAGON_SOUL_DECK_RESERVED_MAX_NUM(3)
  98.     | 벨트 인벤토리 (벨트 착용시에만 벨트 레벨에 따라 활성)|
  99.     +------------------------------------------------------+ 168 = 152 + BELT_INVENTORY_SLOT_COUNT(16) = INVENTORY_AND_EQUIP_CELL_MAX
  100.     | 미사용                                               |
  101.     +------------------------------------------------------+ ??
  102. */
  103. };
  104.  
  105. enum EMatrixCard
  106. {
  107.     MATRIX_CODE_MAX_LEN     = 192,
  108.     MATRIX_ANSWER_MAX_LEN   = 8,
  109. };
  110.  
  111. enum EWearPositions
  112. {
  113.     WEAR_BODY,      // 0
  114.     WEAR_HEAD,      // 1
  115.     WEAR_FOOTS,     // 2
  116.     WEAR_WRIST,     // 3
  117.     WEAR_WEAPON,    // 4
  118.     WEAR_NECK,      // 5
  119.     WEAR_EAR,       // 6
  120.     WEAR_UNIQUE1,   // 7
  121.     WEAR_UNIQUE2,   // 8
  122.     WEAR_ARROW,     // 9
  123.     WEAR_SHIELD,    // 10
  124.     WEAR_ABILITY1,  // 11
  125.     WEAR_ABILITY2,  // 12
  126.     WEAR_ABILITY3,  // 13
  127.     WEAR_ABILITY4,  // 14
  128.     WEAR_ABILITY5,  // 15
  129.     WEAR_ABILITY6,  // 16
  130.     WEAR_ABILITY7,  // 17
  131.     WEAR_ABILITY8,  // 18
  132.     WEAR_COSTUME_BODY,  // 19
  133.     WEAR_COSTUME_HAIR,  // 20
  134.     WEAR_COSTUME_MOUNT, // 21
  135. #ifdef __WEAPON_COSTUME_SYSTEM__
  136.     WEAR_COSTUME_WEAPON, //22
  137. #endif
  138. #ifdef __ACCE_SYSTEM__
  139.     WEAR_COSTUME_ACCE,  // 23
  140. #endif
  141. #ifdef ERBE_DES_DRACHENGOTTES
  142.     WEAR_COSTUME_ERBE, //24
  143. #endif
  144.    
  145.     WEAR_RING1,         // 25   : 신규 반지슬롯1 (왼쪽)
  146.     WEAR_RING2,         // 26   : 신규 반지슬롯2 (오른쪽)
  147.  
  148.     WEAR_BELT,          // 27   : 신규 벨트슬롯
  149.  
  150.    
  151. #ifdef __ITEM_SHINING__
  152.     WEAR_SHINING_WEAPON_1, //28
  153.     WEAR_SHINING_WEAPON_2, //29
  154.     WEAR_SHINING_WEAPON_3, //30
  155.     WEAR_SHINING_ARMOR_1, //31
  156.     WEAR_SHINING_ARMOR_2, //32
  157.     WEAR_SHINING_SPECIAL, //33
  158. #endif
  159.  
  160.     WEAR_MAX = 35   //
  161. };
  162.  
  163. enum EDragonSoulDeckType
  164. {
  165.     DRAGON_SOUL_DECK_0,
  166.     DRAGON_SOUL_DECK_1,
  167.     DRAGON_SOUL_DECK_MAX_NUM = 2,
  168.  
  169.     DRAGON_SOUL_DECK_RESERVED_MAX_NUM = 3// NOTE: 중요! 아직 사용중이진 않지만, 3페이지 분량을 예약 해 둠. DS DECK을 늘릴 경우 반드시 그 수만큼 RESERVED에서 차감해야 함!
  170. };
  171.  
  172. enum ESex
  173. {
  174.     SEX_MALE,
  175.     SEX_FEMALE
  176. };
  177.  
  178. enum EDirection
  179. {
  180.     DIR_NORTH,
  181.     DIR_NORTHEAST,
  182.     DIR_EAST,
  183.     DIR_SOUTHEAST,
  184.     DIR_SOUTH,
  185.     DIR_SOUTHWEST,
  186.     DIR_WEST,
  187.     DIR_NORTHWEST,
  188.     DIR_MAX_NUM
  189. };
  190.  
  191. #define ABILITY_MAX_LEVEL   10  /* 기술 최대 레벨 */
  192.  
  193. enum EAbilityDifficulty
  194. {
  195.     DIFFICULTY_EASY,
  196.     DIFFICULTY_NORMAL,
  197.     DIFFICULTY_HARD,
  198.     DIFFICULTY_VERY_HARD,
  199.     DIFFICULTY_NUM_TYPES
  200. };
  201.  
  202. enum EAbilityCategory
  203. {
  204.     CATEGORY_PHYSICAL,  /* 신체적 어빌리티 */
  205.     CATEGORY_MENTAL,    /* 정신적 어빌리티 */
  206.     CATEGORY_ATTRIBUTE, /* 능력 어빌리티 */
  207.     CATEGORY_NUM_TYPES
  208. };
  209.  
  210. enum EJobs
  211. {
  212.     JOB_WARRIOR,
  213.     JOB_ASSASSIN,
  214.     JOB_SURA,
  215.     JOB_SHAMAN,
  216.     JOB_MAX_NUM
  217. };
  218.  
  219. enum ESkillGroups
  220. {
  221.     SKILL_GROUP_MAX_NUM = 2,
  222. };
  223.  
  224. enum ERaceFlags
  225. {
  226.     RACE_FLAG_ANIMAL    = (1 << 0),
  227.     RACE_FLAG_UNDEAD    = (1 << 1),
  228.     RACE_FLAG_DEVIL     = (1 << 2),
  229.     RACE_FLAG_HUMAN     = (1 << 3),
  230.     RACE_FLAG_ORC       = (1 << 4),
  231.     RACE_FLAG_MILGYO    = (1 << 5),
  232.     RACE_FLAG_INSECT    = (1 << 6),
  233.     RACE_FLAG_FIRE      = (1 << 7),
  234.     RACE_FLAG_ICE       = (1 << 8),
  235.     RACE_FLAG_DESERT    = (1 << 9),
  236.     RACE_FLAG_TREE      = (1 << 10),
  237.     RACE_FLAG_ATT_ELEC  = (1 << 11),
  238.     RACE_FLAG_ATT_FIRE  = (1 << 12),
  239.     RACE_FLAG_ATT_ICE   = (1 << 13),
  240.     RACE_FLAG_ATT_WIND  = (1 << 14),
  241.     RACE_FLAG_ATT_EARTH = (1 << 15),
  242.     RACE_FLAG_ATT_DARK  = (1 << 16),
  243.     RACE_FLAG_BOSS  = (1 << 17),
  244.     RACE_FLAG_METIN = (1 << 18),
  245. };
  246.  
  247. enum ELoads
  248. {
  249.     LOAD_NONE,
  250.     LOAD_LIGHT,
  251.     LOAD_NORMAL,
  252.     LOAD_HEAVY,
  253.     LOAD_MASSIVE
  254. };
  255.  
  256. enum
  257. {
  258.     QUICKSLOT_TYPE_NONE,
  259.     QUICKSLOT_TYPE_ITEM,
  260.     QUICKSLOT_TYPE_SKILL,
  261.     QUICKSLOT_TYPE_COMMAND,
  262.     QUICKSLOT_TYPE_MAX_NUM,
  263. };
  264.  
  265. enum EParts
  266. {
  267.     PART_MAIN,
  268.     PART_WEAPON,
  269.     PART_HEAD,
  270.     PART_HAIR,
  271.     //#ifdef __ACCE_SYSTEM__ [remove manually in-case you disable them]
  272.     PART_ACCE,
  273.     //#endif
  274.  
  275.     PART_ARROW_TYPE,
  276.     PART_MAX_NUM,
  277.     PART_WEAPON_SUB,
  278. };
  279.  
  280. enum EChatType
  281. {
  282.     CHAT_TYPE_TALKING,  /* 그냥 채팅 */
  283.     CHAT_TYPE_INFO, /* 정보 (아이템을 집었다, 경험치를 얻었다. 등) */
  284.     CHAT_TYPE_NOTICE,   /* 공지사항 */
  285.     CHAT_TYPE_PARTY,    /* 파티말 */
  286.     CHAT_TYPE_GUILD,    /* 길드말 */
  287.     CHAT_TYPE_COMMAND,  /* 일반 명령 */
  288.     CHAT_TYPE_SHOUT,    /* 외치기 */
  289.     CHAT_TYPE_WHISPER,
  290.     CHAT_TYPE_BIG_NOTICE,
  291.     CHAT_TYPE_MONARCH_NOTICE,
  292.     CHAT_TYPE_MAX_NUM
  293. };
  294.  
  295. enum EWhisperType
  296. {
  297.     WHISPER_TYPE_NORMAL     = 0,
  298.     WHISPER_TYPE_NOT_EXIST      = 1,
  299.     WHISPER_TYPE_TARGET_BLOCKED = 2,
  300.     WHISPER_TYPE_SENDER_BLOCKED = 3,
  301.     WHISPER_TYPE_ERROR      = 4,
  302.     WHISPER_TYPE_GM         = 5,
  303.     WHISPER_TYPE_SYSTEM     = 0xFF
  304. };
  305.  
  306. enum ECharacterPosition
  307. {
  308.     POSITION_GENERAL,
  309.     POSITION_BATTLE,
  310.     POSITION_DYING,
  311.     POSITION_SITTING_CHAIR,
  312.     POSITION_SITTING_GROUND,
  313.     POSITION_INTRO,
  314.     POSITION_MAX_NUM
  315. };
  316.  
  317. enum EGMLevels
  318. {
  319.     GM_PLAYER,
  320.     GM_LOW_WIZARD,
  321.     GM_WIZARD,
  322.     GM_HIGH_WIZARD,
  323.     GM_GOD,
  324.     GM_IMPLEMENTOR
  325. };
  326.  
  327. enum EMobRank
  328. {
  329.     MOB_RANK_PAWN,
  330.     MOB_RANK_S_PAWN,
  331.     MOB_RANK_KNIGHT,
  332.     MOB_RANK_S_KNIGHT,
  333.     MOB_RANK_BOSS,
  334.     MOB_RANK_KING,
  335.     MOB_RANK_MAX_NUM
  336. };
  337.  
  338. enum ECharType
  339. {
  340.     CHAR_TYPE_MONSTER,
  341.     CHAR_TYPE_NPC,
  342.     CHAR_TYPE_STONE,
  343.     CHAR_TYPE_WARP,
  344.     CHAR_TYPE_DOOR,
  345.     CHAR_TYPE_BUILDING,
  346.     CHAR_TYPE_PC,
  347.     CHAR_TYPE_POLYMORPH_PC,
  348.     CHAR_TYPE_HORSE,
  349.     CHAR_TYPE_GOTO
  350. };
  351.  
  352. enum EBattleType
  353. {
  354.     BATTLE_TYPE_MELEE,
  355.     BATTLE_TYPE_RANGE,
  356.     BATTLE_TYPE_MAGIC,
  357.     BATTLE_TYPE_SPECIAL,
  358.     BATTLE_TYPE_POWER,
  359.     BATTLE_TYPE_TANKER,
  360.     BATTLE_TYPE_SUPER_POWER,
  361.     BATTLE_TYPE_SUPER_TANKER,
  362.     BATTLE_TYPE_MAX_NUM
  363. };
  364.  
  365. enum EApplyTypes
  366. {
  367.     APPLY_NONE,         // 0
  368.     APPLY_MAX_HP,       // 1
  369.     APPLY_MAX_SP,       // 2
  370.     APPLY_CON,          // 3
  371.     APPLY_INT,          // 4
  372.     APPLY_STR,          // 5
  373.     APPLY_DEX,          // 6
  374.     APPLY_ATT_SPEED,    // 7
  375.     APPLY_MOV_SPEED,    // 8
  376.     APPLY_CAST_SPEED,   // 9
  377.     APPLY_HP_REGEN,     // 10
  378.     APPLY_SP_REGEN,     // 11
  379.     APPLY_POISON_PCT,   // 12
  380.     APPLY_STUN_PCT,     // 13
  381.     APPLY_SLOW_PCT,     // 14
  382.     APPLY_CRITICAL_PCT,     // 15
  383.     APPLY_PENETRATE_PCT,    // 16
  384.     APPLY_ATTBONUS_HUMAN,   // 17
  385.     APPLY_ATTBONUS_ANIMAL,  // 18
  386.     APPLY_ATTBONUS_ORC,     // 19
  387.     APPLY_ATTBONUS_MILGYO,  // 20
  388.     APPLY_ATTBONUS_UNDEAD,  // 21
  389.     APPLY_ATTBONUS_DEVIL,   // 22
  390.     APPLY_STEAL_HP,         // 23
  391.     APPLY_STEAL_SP,         // 24
  392.     APPLY_MANA_BURN_PCT,    // 25
  393.     APPLY_DAMAGE_SP_RECOVER,    // 26
  394.     APPLY_BLOCK,            // 27
  395.     APPLY_DODGE,            // 28
  396.     APPLY_RESIST_SWORD,     // 29
  397.     APPLY_RESIST_TWOHAND,   // 30
  398.     APPLY_RESIST_DAGGER,    // 31
  399.     APPLY_RESIST_BELL,      // 32
  400.     APPLY_RESIST_FAN,       // 33
  401.     APPLY_RESIST_BOW,       // 34
  402.     APPLY_RESIST_FIRE,      // 35
  403.     APPLY_RESIST_ELEC,      // 36
  404.     APPLY_RESIST_MAGIC,     // 37
  405.     APPLY_RESIST_WIND,      // 38
  406.     APPLY_REFLECT_MELEE,    // 39
  407.     APPLY_REFLECT_CURSE,    // 40
  408.     APPLY_POISON_REDUCE,    // 41
  409.     APPLY_KILL_SP_RECOVER,  // 42
  410.     APPLY_EXP_DOUBLE_BONUS, // 43
  411.     APPLY_GOLD_DOUBLE_BONUS,    // 44
  412.     APPLY_ITEM_DROP_BONUS,  // 45
  413.     APPLY_POTION_BONUS,     // 46
  414.     APPLY_KILL_HP_RECOVER,  // 47
  415.     APPLY_IMMUNE_STUN,      // 48
  416.     APPLY_IMMUNE_SLOW,      // 49
  417.     APPLY_IMMUNE_FALL,      // 50
  418.     APPLY_SKILL,            // 51
  419.     APPLY_BOW_DISTANCE,     // 52
  420.     APPLY_ATT_GRADE_BONUS,  // 53
  421.     APPLY_DEF_GRADE_BONUS,  // 54
  422.     APPLY_MAGIC_ATT_GRADE,  // 55
  423.     APPLY_MAGIC_DEF_GRADE,  // 56
  424.     APPLY_CURSE_PCT,        // 57
  425.     APPLY_MAX_STAMINA,      // 58
  426.     APPLY_ATTBONUS_WARRIOR, // 59
  427.     APPLY_ATTBONUS_ASSASSIN,    // 60
  428.     APPLY_ATTBONUS_SURA,    // 61
  429.     APPLY_ATTBONUS_SHAMAN,  // 62
  430.     APPLY_ATTBONUS_MONSTER, // 63
  431.     APPLY_MALL_ATTBONUS,            // 64 공격력 +x%
  432.     APPLY_MALL_DEFBONUS,            // 65 방어력 +x%
  433.     APPLY_MALL_EXPBONUS,            // 66 경험치 +x%
  434.     APPLY_MALL_ITEMBONUS,           // 67 아이템 드롭율 x/10배
  435.     APPLY_MALL_GOLDBONUS,           // 68 돈 드롭율 x/10배
  436.     APPLY_MAX_HP_PCT,               // 69 최대 생명력 +x%
  437.     APPLY_MAX_SP_PCT,               // 70 최대 정신력 +x%
  438.     APPLY_SKILL_DAMAGE_BONUS,       // 71 스킬 데미지 * (100+x)%
  439.     APPLY_NORMAL_HIT_DAMAGE_BONUS,  // 72 평타 데미지 * (100+x)%
  440.     APPLY_SKILL_DEFEND_BONUS,       // 73 스킬 데미지 방어 * (100-x)%
  441.     APPLY_NORMAL_HIT_DEFEND_BONUS,  // 74 평타 데미지 방어 * (100-x)%
  442.     APPLY_PC_BANG_EXP_BONUS,        // 75 PC방 아이템 EXP 보너스
  443.     APPLY_PC_BANG_DROP_BONUS,       // 76 PC방 아이템 드롭율 보너스
  444.  
  445.     APPLY_EXTRACT_HP_PCT,           // 77 사용시 HP 소모
  446.  
  447.     APPLY_RESIST_WARRIOR,           // 78 무사에게 저항
  448.     APPLY_RESIST_ASSASSIN,          // 79 자객에게 저항
  449.     APPLY_RESIST_SURA,              // 80 수라에게 저항
  450.     APPLY_RESIST_SHAMAN,            // 81 무당에게 저항
  451.     APPLY_ENERGY,                   // 82 기력
  452.     APPLY_DEF_GRADE,                // 83 방어력. DEF_GRADE_BONUS는 클라에서 두배로 보여지는 의도된 버그(...)가 있다.
  453.     APPLY_COSTUME_ATTR_BONUS,       // 84 코스튬 아이템에 붙은 속성치 보너스
  454.     APPLY_MAGIC_ATTBONUS_PER,       // 85 마법 공격력 +x%
  455.     APPLY_MELEE_MAGIC_ATTBONUS_PER,         // 86 마법 + 밀리 공격력 +x%
  456.    
  457.     APPLY_RESIST_ICE,       // 87 냉기 저항
  458.     APPLY_RESIST_EARTH,     // 88 대지 저항
  459.     APPLY_RESIST_DARK,      // 89 어둠 저항
  460.  
  461.     APPLY_ANTI_CRITICAL_PCT,    //90 크리티컬 저항
  462.     APPLY_ANTI_PENETRATE_PCT,   //91 관통타격 저항
  463.  
  464.     APPLY_ATTBONUS_BOSS,
  465.     APPLY_ATTBONUS_METIN,
  466.  
  467.     MAX_APPLY_NUM,              //
  468. };
  469.  
  470. enum EOnClickEvents
  471. {
  472.     ON_CLICK_NONE,
  473.     ON_CLICK_SHOP,
  474.     ON_CLICK_TALK,
  475.     ON_CLICK_MAX_NUM
  476. };
  477.  
  478. enum EOnIdleEvents
  479. {
  480.     ON_IDLE_NONE,
  481.     ON_IDLE_GENERAL,
  482.     ON_IDLE_MAX_NUM
  483. };
  484.  
  485. enum EWindows
  486. {
  487.     RESERVED_WINDOW,
  488.     INVENTORY,
  489.     EQUIPMENT,
  490.     SAFEBOX,
  491.     MALL,
  492.     DRAGON_SOUL_INVENTORY,
  493.     BELT_INVENTORY,
  494. #ifdef __AUCTION__
  495.     AUCTION,
  496. #endif
  497.     GROUND
  498. };
  499.  
  500. enum EMobSizes
  501. {
  502.     MOBSIZE_RESERVED,
  503.     MOBSIZE_SMALL,
  504.     MOBSIZE_MEDIUM,
  505.     MOBSIZE_BIG
  506. };
  507.  
  508. enum EAIFlags
  509. {
  510.     AIFLAG_AGGRESSIVE   = (1 << 0),
  511.     AIFLAG_NOMOVE   = (1 << 1),
  512.     AIFLAG_COWARD   = (1 << 2),
  513.     AIFLAG_NOATTACKSHINSU   = (1 << 3),
  514.     AIFLAG_NOATTACKJINNO    = (1 << 4),
  515.     AIFLAG_NOATTACKCHUNJO   = (1 << 5),
  516.     AIFLAG_ATTACKMOB = (1 << 6 ),
  517.     AIFLAG_BERSERK  = (1 << 7),
  518.     AIFLAG_STONESKIN    = (1 << 8),
  519.     AIFLAG_GODSPEED = (1 << 9),
  520.     AIFLAG_DEATHBLOW    = (1 << 10),
  521.     AIFLAG_REVIVE       = (1 << 11),
  522. };
  523.  
  524. enum EMobStatType
  525. {
  526.     MOB_STATTYPE_POWER,
  527.     MOB_STATTYPE_TANKER,
  528.     MOB_STATTYPE_SUPER_POWER,
  529.     MOB_STATTYPE_SUPER_TANKER,
  530.     MOB_STATTYPE_RANGE,
  531.     MOB_STATTYPE_MAGIC,
  532.     MOB_STATTYPE_MAX_NUM
  533. };
  534.  
  535. enum EImmuneFlags
  536. {
  537.     IMMUNE_STUN     = (1 << 0),
  538.     IMMUNE_SLOW     = (1 << 1),
  539.     IMMUNE_FALL     = (1 << 2),
  540.     IMMUNE_CURSE    = (1 << 3),
  541.     IMMUNE_POISON   = (1 << 4),
  542.     IMMUNE_TERROR   = (1 << 5),
  543.     IMMUNE_REFLECT  = (1 << 6),
  544. };
  545.  
  546. enum EMobEnchants
  547. {
  548.     MOB_ENCHANT_CURSE,
  549.     MOB_ENCHANT_SLOW,
  550.     MOB_ENCHANT_POISON,
  551.     MOB_ENCHANT_STUN,
  552.     MOB_ENCHANT_CRITICAL,
  553.     MOB_ENCHANT_PENETRATE,
  554.     MOB_ENCHANTS_MAX_NUM
  555. };
  556.  
  557. enum EMobResists
  558. {
  559.     MOB_RESIST_SWORD,
  560.     MOB_RESIST_TWOHAND,
  561.     MOB_RESIST_DAGGER,
  562.     MOB_RESIST_BELL,
  563.     MOB_RESIST_FAN,
  564.     MOB_RESIST_BOW,
  565.     MOB_RESIST_FIRE,
  566.     MOB_RESIST_ELECT,
  567.     MOB_RESIST_MAGIC,
  568.     MOB_RESIST_WIND,
  569.     MOB_RESIST_POISON,
  570.     MOB_RESISTS_MAX_NUM
  571. };
  572.  
  573. enum
  574. {
  575.     SKILL_ATTR_TYPE_NORMAL = 1,
  576.     SKILL_ATTR_TYPE_MELEE,
  577.     SKILL_ATTR_TYPE_RANGE,
  578.     SKILL_ATTR_TYPE_MAGIC
  579.         /*
  580.            SKILL_ATTR_TYPE_FIRE,
  581.            SKILL_ATTR_TYPE_ICE,
  582.            SKILL_ATTR_TYPE_ELEC,
  583.            SKILL_ATTR_TYPE_DARK,
  584.            */
  585. };
  586.  
  587. enum
  588. {
  589.     SKILL_NORMAL,
  590.     SKILL_MASTER,
  591.     SKILL_GRAND_MASTER,
  592.     SKILL_PERFECT_MASTER,
  593. };
  594.  
  595. enum EGuildWarType
  596. {
  597.     GUILD_WAR_TYPE_FIELD,
  598.     GUILD_WAR_TYPE_BATTLE,
  599.     GUILD_WAR_TYPE_FLAG,
  600.     GUILD_WAR_TYPE_MAX_NUM
  601. };
  602.  
  603. enum EGuildWarState
  604. {
  605.     GUILD_WAR_NONE,
  606.     GUILD_WAR_SEND_DECLARE,
  607.     GUILD_WAR_REFUSE,
  608.     GUILD_WAR_RECV_DECLARE,
  609.     GUILD_WAR_WAIT_START,
  610.     GUILD_WAR_CANCEL,
  611.     GUILD_WAR_ON_WAR,
  612.     GUILD_WAR_END,
  613.     GUILD_WAR_OVER,
  614.     GUILD_WAR_RESERVE,
  615.  
  616.     GUILD_WAR_DURATION = 30*60, // 1시간
  617.     GUILD_WAR_WIN_POINT = 1000,
  618.     GUILD_WAR_LADDER_HALF_PENALTY_TIME = 12*60*60,
  619. };
  620.  
  621. enum EAttributeSet
  622. {            
  623.     ATTRIBUTE_SET_WEAPON,
  624.     ATTRIBUTE_SET_BODY,
  625.     ATTRIBUTE_SET_WRIST,
  626.     ATTRIBUTE_SET_FOOTS,
  627.     ATTRIBUTE_SET_NECK,
  628.     ATTRIBUTE_SET_HEAD,
  629.     ATTRIBUTE_SET_SHIELD,
  630.     ATTRIBUTE_SET_EAR,
  631.     ATTRIBUTE_SET_MAX_NUM
  632. };  
  633.  
  634. enum EPrivType
  635. {
  636.     PRIV_NONE,
  637.     PRIV_ITEM_DROP,
  638.     PRIV_GOLD_DROP,
  639.     PRIV_GOLD10_DROP,
  640.     PRIV_EXP_PCT,
  641.     MAX_PRIV_NUM,
  642. };
  643.  
  644. enum EMoneyLogType
  645. {
  646.     MONEY_LOG_RESERVED,
  647.     MONEY_LOG_MONSTER,
  648.     MONEY_LOG_SHOP,
  649.     MONEY_LOG_REFINE,
  650.     MONEY_LOG_QUEST,
  651.     MONEY_LOG_GUILD,
  652.     MONEY_LOG_MISC,
  653.     MONEY_LOG_MONSTER_KILL,
  654.     MONEY_LOG_DROP,
  655.     MONEY_LOG_TYPE_MAX_NUM,
  656. };
  657.  
  658. enum EPremiumTypes
  659. {
  660.     PREMIUM_EXP,        // 경험치가 1.2배
  661.     PREMIUM_ITEM,       // 아이템 드롭율이 2배
  662.     PREMIUM_SAFEBOX,        // 창고가 1칸에서 3칸
  663.     PREMIUM_AUTOLOOT,       // 돈 자동 줍기
  664.     PREMIUM_FISH_MIND,      // 고급 물고기 낚일 확률 상승
  665.     PREMIUM_MARRIAGE_FAST,  // 금실 증가 양을 빠르게합니다.
  666.     PREMIUM_GOLD,       // 돈 드롭율이 1.5배
  667.     PREMIUM_MAX_NUM = 9
  668. };
  669.  
  670. enum SPECIAL_EFFECT
  671. {
  672.     SE_NONE,
  673.  
  674.     SE_HPUP_RED,
  675.     SE_SPUP_BLUE,
  676.     SE_SPEEDUP_GREEN,
  677.     SE_DXUP_PURPLE,
  678.     SE_CRITICAL,
  679.     SE_PENETRATE,
  680.     SE_BLOCK,
  681.     SE_DODGE,
  682.     SE_CHINA_FIREWORK,
  683.     SE_SPIN_TOP,
  684.     SE_SUCCESS,
  685.     SE_FAIL,
  686.     SE_FR_SUCCESS,
  687.     SE_LEVELUP_ON_14_FOR_GERMANY,
  688.     SE_LEVELUP_UNDER_15_FOR_GERMANY,
  689.     SE_PERCENT_DAMAGE1,
  690.     SE_PERCENT_DAMAGE2,
  691.     SE_PERCENT_DAMAGE3,
  692.  
  693.     SE_AUTO_HPUP,
  694.     SE_AUTO_SPUP,
  695.  
  696.     SE_EQUIP_RAMADAN_RING,
  697.     SE_EQUIP_HALLOWEEN_CANDY,
  698.     SE_EQUIP_HAPPINESS_RING,
  699.     SE_EQUIP_LOVE_PENDANT,
  700. #ifdef __ACCE_SYSTEM__
  701.     SE_EFFECT_ACCE_SUCCEDED,
  702.     SE_EFFECT_ACCE_EQUIP,
  703. #endif
  704. } ;
  705.  
  706. enum ETeenFlags
  707. {
  708.     TEENFLAG_NONE = 0,
  709.     TEENFLAG_1HOUR,
  710.     TEENFLAG_2HOUR,
  711.     TEENFLAG_3HOUR,
  712.     TEENFLAG_4HOUR,
  713.     TEENFLAG_5HOUR,
  714. };
  715.  
  716. #include "item_length.h"
  717.  
  718. enum EDragonSoulRefineWindowSize
  719. {
  720.     DRAGON_SOUL_REFINE_GRID_MAX = 15,
  721. };
  722.  
  723. enum EMisc2
  724. {
  725.     DRAGON_SOUL_EQUIP_SLOT_START = INVENTORY_MAX_NUM + WEAR_MAX_NUM,
  726.     DRAGON_SOUL_EQUIP_SLOT_END = DRAGON_SOUL_EQUIP_SLOT_START + (DS_SLOT_MAX * DRAGON_SOUL_DECK_MAX_NUM),
  727.     DRAGON_SOUL_EQUIP_RESERVED_SLOT_END = DRAGON_SOUL_EQUIP_SLOT_END + (DS_SLOT_MAX * DRAGON_SOUL_DECK_RESERVED_MAX_NUM),
  728.  
  729.     BELT_INVENTORY_SLOT_START = DRAGON_SOUL_EQUIP_RESERVED_SLOT_END,
  730.     BELT_INVENTORY_SLOT_END = BELT_INVENTORY_SLOT_START + BELT_INVENTORY_SLOT_COUNT,
  731.  
  732.     INVENTORY_AND_EQUIP_SLOT_MAX = BELT_INVENTORY_SLOT_END,
  733. };
  734.  
  735. #pragma pack(push, 1)
  736.  
  737. typedef struct SItemPos
  738. {
  739.     BYTE window_type;
  740.     WORD cell;
  741.     SItemPos ()
  742.     {
  743.         window_type = INVENTORY;
  744.         cell = WORD_MAX;
  745.     }
  746.  
  747.     SItemPos (BYTE _window_type, WORD _cell)
  748.     {
  749.         window_type = _window_type;
  750.         cell = _cell;
  751.     }
  752.  
  753.     bool IsValidItemPosition() const
  754.     {
  755.         switch (window_type)
  756.         {
  757.         case RESERVED_WINDOW:
  758.             return false;
  759.         case INVENTORY:
  760.         case EQUIPMENT:
  761.         case BELT_INVENTORY:
  762.             return cell < INVENTORY_AND_EQUIP_SLOT_MAX;
  763.         case DRAGON_SOUL_INVENTORY:
  764.             return cell < (DRAGON_SOUL_INVENTORY_MAX_NUM);
  765.         // 동적으로 크기가 정해지는 window는 valid 체크를 할 수가 없다.
  766.         case SAFEBOX:
  767.         case MALL:
  768.             return false;
  769.         default:
  770.             return false;
  771.         }
  772.         return false;
  773.     }
  774.    
  775.     bool IsEquipPosition() const
  776.     {
  777.         return ((INVENTORY == window_type || EQUIPMENT == window_type) && cell >= INVENTORY_MAX_NUM && cell < INVENTORY_MAX_NUM + WEAR_MAX_NUM)
  778.             || IsDragonSoulEquipPosition();
  779.     }
  780.  
  781.     bool IsDragonSoulEquipPosition() const
  782.     {
  783.         //return (DRAGON_SOUL_EQUIP_SLOT_START <= cell) && (DRAGON_SOUL_EQUIP_SLOT_END > cell);
  784.         return (window_type == INVENTORY) && (DRAGON_SOUL_EQUIP_SLOT_START <= cell) && (DRAGON_SOUL_EQUIP_SLOT_END > cell);
  785.     }
  786.  
  787.     bool IsBeltInventoryPosition() const
  788.     {
  789.         return (BELT_INVENTORY_SLOT_START <= cell) && (BELT_INVENTORY_SLOT_END > cell);
  790.     }
  791.  
  792.     bool IsDefaultInventoryPosition() const
  793.     {
  794.         return INVENTORY == window_type && cell < INVENTORY_MAX_NUM;
  795.     }
  796.  
  797.     bool operator==(const struct SItemPos& rhs) const
  798.     {
  799.         return (window_type == rhs.window_type) && (cell == rhs.cell);
  800.     }
  801.     bool operator<(const struct SItemPos& rhs) const
  802.     {
  803.         return (window_type < rhs.window_type) || ((window_type == rhs.window_type) && (cell < rhs.cell));
  804.     }
  805. } TItemPos;
  806.  
  807. const TItemPos NPOS (RESERVED_WINDOW, WORD_MAX);
  808.  
  809. typedef enum
  810. {
  811.     SHOP_COIN_TYPE_GOLD, // DEFAULT VALUE
  812.     SHOP_COIN_TYPE_SECONDARY_COIN,
  813. } EShopCoinType;
  814.  
  815. #ifdef __SKILL_COLOR_SYSTEM__
  816. namespace ESkillColorLength
  817. {
  818.     enum ESkillColorLength
  819.     {
  820.         MAX_SKILL_COUNT = 6,
  821.         MAX_EFFECT_COUNT = 5,
  822.         MAX_BUFF_COUNT = 5,
  823.         BUFF_BEGIN = MAX_SKILL_COUNT,
  824.     };
  825. }
  826. #endif
  827.  
  828. #pragma pack(pop)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement