#ifndef __INC_METIN_II_LENGTH_H__
[HASH=1]#define[/HASH] __INC_METIN_II_LENGTH_H__
[HASH=2388]#include[/HASH] "CommonDefines.h"
[HASH=1]#define[/HASH] WORD_MAX 0xffff#ifndef __INC_METIN_II_LENGTH_H__
[HASH=1]#define[/HASH] __INC_METIN_II_LENGTH_H__
[HASH=2388]#include[/HASH] "CommonDefines.h"
[HASH=1]#define[/HASH] WORD_MAX 0xffff
enum EMisc
{
MAX_HOST_LENGTH = 15,
IP_ADDRESS_LENGTH = 15,
LOGIN_MAX_LEN = 30,
PASSWD_MAX_LEN = 16,
[HASH=2]#ifdef[/HASH] ENABLE_PLAYER_PER_ACCOUNT5
PLAYER_PER_ACCOUNT = 5,
[HASH=2311]#else[/HASH]
PLAYER_PER_ACCOUNT = 4,
[HASH=3]#endif[/HASH]
ACCOUNT_STATUS_MAX_LEN = 8,
CHARACTER_NAME_MAX_LEN = 24,
SHOP_SIGN_MAX_LEN = 32,
INVENTORY_PAGE_COLUMN = 5, // 5 (default)
INVENTORY_PAGE_ROW = 9, // 9 (default)
INVENTORY_PAGE_SIZE = INVENTORY_PAGE_COLUMN * INVENTORY_PAGE_ROW,
[HASH=2]#ifdef[/HASH] ENABLE_EXTEND_INVEN_SYSTEM
INVENTORY_PAGE_COUNT = 4, // 2 (default)
[HASH=2311]#else[/HASH]
INVENTORY_PAGE_COUNT = 2, // 2 (default)
[HASH=3]#endif[/HASH]
INVENTORY_MAX_NUM = INVENTORY_PAGE_SIZE * INVENTORY_PAGE_COUNT, // 90 (default)
ABILITY_MAX_NUM = 50,
EMPIRE_MAX_NUM = 4,
BANWORD_MAX_LEN = 24,
SMS_MAX_LEN = 80,
MOBILE_MAX_LEN = 32,
SOCIAL_ID_MAX_LEN = 18,
GUILD_NAME_MAX_LEN = 12,
SHOP_HOST_ITEM_MAX_NUM = 40,
SHOP_GUEST_ITEM_MAX_NUM = 18,
SHOP_PRICELIST_MAX_NUM = 40,
CHAT_MAX_LEN = 512,
QUICKSLOT_MAX_NUM = 36,
JOURNAL_MAX_NUM = 2,
QUERY_MAX_LEN = 8192,
FILE_MAX_LEN = 128,
PLAYER_EXP_TABLE_MAX = 120,
PLAYER_MAX_LEVEL_CONST = 250,
GUILD_MAX_LEVEL = 20,
MOB_MAX_LEVEL = 100,
ATTRIBUTE_MAX_VALUE = 20,
CHARACTER_PATH_MAX_NUM = 64,
SKILL_MAX_NUM = 255,
SKILLBOOK_DELAY_MIN = 64800,
SKILLBOOK_DELAY_MAX = 108000,
SKILL_MAX_LEVEL = 40,
APPLY_NAME_MAX_LEN = 32,
EVENT_FLAG_NAME_MAX_LEN = 32,
MOB_SKILL_MAX_NUM = 5,
POINT_MAX_NUM = 255,
DRAGON_SOUL_BOX_SIZE = 32,
DRAGON_SOUL_BOX_COLUMN_NUM = 8,
DRAGON_SOUL_BOX_ROW_NUM = DRAGON_SOUL_BOX_SIZE / DRAGON_SOUL_BOX_COLUMN_NUM,
DRAGON_SOUL_REFINE_GRID_SIZE = 15,
MAX_AMOUNT_OF_MALL_BONUS = 20,
WEAR_MAX_NUM = 32,
[HASH=2]#ifdef[/HASH] __ENABLE_NEW_OFFLINESHOP__
OFFLINE_SHOP_NAME_MAX_LEN = 40 + CHARACTER_NAME_MAX_LEN + 1,
OFFLINESHOP_DURATION_MAX_MINUTES = 8 * 24 * 60,
OFFLINESHOP_MAX_SEARCH_RESULT = 250,
OFFLINESHOP_SECONDS_PER_SEARCH = 15,
//*new check about auction offers
OFFLINESHOP_SECONDS_PER_OFFER = 7,
[HASH=2]#ifdef[/HASH] __ENABLE_CHEQUE_SYSTEM__
YANG_PER_CHEQUE = 100000000,
[HASH=3]#endif[/HASH]
[HASH=3]#endif[/HASH]
//LIMIT_GOLD
GOLD_MAX = 2000000000,
MAX_PASSPOD = 8,
//END_LIMIT_GOLD
OPENID_AUTHKEY_LEN = 32,
SHOP_TAB_NAME_MAX = 32,
SHOP_TAB_COUNT_MAX = 3,
BELT_INVENTORY_SLOT_WIDTH = 4,
BELT_INVENTORY_SLOT_HEIGHT = 4,
BELT_INVENTORY_SLOT_COUNT = BELT_INVENTORY_SLOT_WIDTH * BELT_INVENTORY_SLOT_HEIGHT,
[HASH=2]#ifdef[/HASH] ENABLE_SPECIAL_STORAGE
SPECIAL_INVENTORY_PAGE_COUNT = 4,
SPECIAL_INVENTORY_PAGE_SIZE = 45,
SPECIAL_INVENTORY_MAX_NUM = SPECIAL_INVENTORY_PAGE_SIZE * SPECIAL_INVENTORY_PAGE_COUNT,
[HASH=3]#endif[/HASH]
};
enum EMatrixCard
{
MATRIX_CODE_MAX_LEN = 192,
MATRIX_ANSWER_MAX_LEN = 8,
};
enum EWearPositions
{
WEAR_BODY, // 0
WEAR_HEAD, // 1
WEAR_FOOTS, // 2
WEAR_WRIST, // 3
WEAR_WEAPON, // 4
WEAR_NECK, // 5
WEAR_EAR, // 6
WEAR_UNIQUE1, // 7
WEAR_UNIQUE2, // 8
WEAR_ARROW, // 9
WEAR_SHIELD, // 10
WEAR_ABILITY1, // 11
WEAR_ABILITY2, // 12
WEAR_ABILITY3, // 13
WEAR_ABILITY4, // 14
WEAR_ABILITY5, // 15
WEAR_ABILITY6, // 16
WEAR_ABILITY7, // 17
WEAR_ABILITY8, // 18
WEAR_COSTUME_BODY, // 19
WEAR_COSTUME_HAIR, // 20
[HASH=2]#ifdef[/HASH] ENABLE_MOUNT_COSTUME_SYSTEM
WEAR_COSTUME_MOUNT,//21
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_ACCE_SYSTEM
WEAR_COSTUME_ACCE,//22
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_WEAPON_COSTUME_SYSTEM
WEAR_COSTUME_WEAPON,//23
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] __AURA_SYSTEM__
WEAR_COSTUME_AURA,//24
[HASH=3]#endif[/HASH]
WEAR_RING1,//25
WEAR_RING2,//26
WEAR_BELT,//27
[HASH=2]#ifdef[/HASH] ENABLE_PENDANT_SYSTEM
WEAR_PENDANT,//28
[HASH=3]#endif[/HASH]
WEAR_GLOVE, //29
WEAR_MAX = 32 //
};
enum EDragonSoulDeckType
{
DRAGON_SOUL_DECK_0,
DRAGON_SOUL_DECK_1,
DRAGON_SOUL_DECK_MAX_NUM = 2,
DRAGON_SOUL_DECK_RESERVED_MAX_NUM = 3,
};
enum ESex
{
SEX_MALE,
SEX_FEMALE
};
enum EDirection
{
DIR_NORTH,
DIR_NORTHEAST,
DIR_EAST,
DIR_SOUTHEAST,
DIR_SOUTH,
DIR_SOUTHWEST,
DIR_WEST,
DIR_NORTHWEST,
DIR_MAX_NUM
};
[HASH=1]#define[/HASH] ABILITY_MAX_LEVEL 10
enum EAbilityDifficulty
{
DIFFICULTY_EASY,
DIFFICULTY_NORMAL,
DIFFICULTY_HARD,
DIFFICULTY_VERY_HARD,
DIFFICULTY_NUM_TYPES
};
enum EAbilityCategory
{
CATEGORY_PHYSICAL,
CATEGORY_MENTAL,
CATEGORY_ATTRIBUTE,
CATEGORY_NUM_TYPES
};
enum EJobs
{
JOB_WARRIOR,
JOB_ASSASSIN,
JOB_SURA,
JOB_SHAMAN,
[HASH=2]#ifdef[/HASH] ENABLE_WOLFMAN_CHARACTER
JOB_WOLFMAN,
[HASH=3]#endif[/HASH]
JOB_MAX_NUM
};
enum ESkillGroups
{
SKILL_GROUP_MAX_NUM = 2,
};
enum ERaceFlags
{
RACE_FLAG_ANIMAL = (1 << 0),
RACE_FLAG_UNDEAD = (1 << 1),
RACE_FLAG_DEVIL = (1 << 2),
RACE_FLAG_HUMAN = (1 << 3),
RACE_FLAG_ORC = (1 << 4),
RACE_FLAG_MILGYO = (1 << 5),
RACE_FLAG_INSECT = (1 << 6),
RACE_FLAG_FIRE = (1 << 7),
RACE_FLAG_ICE = (1 << 8),
RACE_FLAG_DESERT = (1 << 9),
RACE_FLAG_TREE = (1 << 10),
RACE_FLAG_ATT_ELEC = (1 << 11),
RACE_FLAG_ATT_FIRE = (1 << 12),
RACE_FLAG_ATT_ICE = (1 << 13),
RACE_FLAG_ATT_WIND = (1 << 14),
RACE_FLAG_ATT_EARTH = (1 << 15),
RACE_FLAG_ATT_DARK = (1 << 16),
RACE_FLAG_ATT_CZ = (1 << 17),
};
enum ELoads
{
LOAD_NONE,
LOAD_LIGHT,
LOAD_NORMAL,
LOAD_HEAVY,
LOAD_MASSIVE
};
enum
{
QUICKSLOT_TYPE_NONE,
QUICKSLOT_TYPE_ITEM,
QUICKSLOT_TYPE_SKILL,
QUICKSLOT_TYPE_COMMAND,
QUICKSLOT_TYPE_MAX_NUM,
};
enum EParts
{
PART_MAIN,
PART_WEAPON,
PART_HEAD,
PART_HAIR,
[HASH=2]#ifdef[/HASH] ENABLE_ACCE_SYSTEM
PART_ACCE,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] __AURA_SYSTEM__
PART_AURA,
[HASH=3]#endif[/HASH]
PART_MAX_NUM,
PART_WEAPON_SUB,
};
enum EChatType
{
CHAT_TYPE_TALKING,
CHAT_TYPE_INFO,
CHAT_TYPE_NOTICE,
CHAT_TYPE_PARTY,
CHAT_TYPE_GUILD,
CHAT_TYPE_COMMAND,
CHAT_TYPE_SHOUT,
CHAT_TYPE_WHISPER,
CHAT_TYPE_BIG_NOTICE,
CHAT_TYPE_MONARCH_NOTICE,
[HASH=2]#ifdef[/HASH] ENABLE_DICE_SYSTEM
CHAT_TYPE_DICE_INFO, //11
[HASH=3]#endif[/HASH]
CHAT_TYPE_MAX_NUM
};
enum EWhisperType
{
WHISPER_TYPE_NORMAL = 0,
WHISPER_TYPE_NOT_EXIST = 1,
WHISPER_TYPE_TARGET_BLOCKED = 2,
WHISPER_TYPE_SENDER_BLOCKED = 3,
WHISPER_TYPE_ERROR = 4,
WHISPER_TYPE_GM = 5,
WHISPER_TYPE_SYSTEM = 0xFF
};
enum ECharacterPosition
{
POSITION_GENERAL,
POSITION_BATTLE,
POSITION_DYING,
POSITION_SITTING_CHAIR,
POSITION_SITTING_GROUND,
POSITION_INTRO,
POSITION_MAX_NUM
};
enum EGMLevels
{
GM_PLAYER,
GM_LOW_WIZARD,
GM_WIZARD,
GM_HIGH_WIZARD,
GM_GOD,
GM_IMPLEMENTOR,
GM_DISABLE,
};
enum EMobRank
{
MOB_RANK_PAWN,
MOB_RANK_S_PAWN,
MOB_RANK_KNIGHT,
MOB_RANK_S_KNIGHT,
MOB_RANK_BOSS,
MOB_RANK_KING,
MOB_RANK_MAX_NUM
};
enum ECharType
{
CHAR_TYPE_MONSTER,
CHAR_TYPE_NPC,
CHAR_TYPE_STONE,
CHAR_TYPE_WARP,
CHAR_TYPE_DOOR,
CHAR_TYPE_BUILDING,
CHAR_TYPE_PC,
CHAR_TYPE_POLYMORPH_PC,
CHAR_TYPE_HORSE,
CHAR_TYPE_GOTO
};
enum EBattleType
{
BATTLE_TYPE_MELEE,
BATTLE_TYPE_RANGE,
BATTLE_TYPE_MAGIC,
BATTLE_TYPE_SPECIAL,
BATTLE_TYPE_POWER,
BATTLE_TYPE_TANKER,
BATTLE_TYPE_SUPER_POWER,
BATTLE_TYPE_SUPER_TANKER,
BATTLE_TYPE_MAX_NUM
};
enum EApplyTypes
{
APPLY_NONE, // 0
APPLY_MAX_HP, // 1
APPLY_MAX_SP, // 2
APPLY_CON, // 3
APPLY_INT, // 4
APPLY_STR, // 5
APPLY_DEX, // 6
APPLY_ATT_SPEED, // 7
APPLY_MOV_SPEED, // 8
APPLY_CAST_SPEED, // 9
APPLY_HP_REGEN, // 10
APPLY_SP_REGEN, // 11
APPLY_POISON_PCT, // 12
APPLY_STUN_PCT, // 13
APPLY_SLOW_PCT, // 14
APPLY_CRITICAL_PCT, // 15
APPLY_PENETRATE_PCT, // 16
APPLY_ATTBONUS_HUMAN, // 17
APPLY_ATTBONUS_ANIMAL, // 18
APPLY_ATTBONUS_ORC, // 19
APPLY_ATTBONUS_MILGYO, // 20
APPLY_ATTBONUS_UNDEAD, // 21
APPLY_ATTBONUS_DEVIL, // 22
APPLY_STEAL_HP, // 23
APPLY_STEAL_SP, // 24
APPLY_MANA_BURN_PCT, // 25
APPLY_DAMAGE_SP_RECOVER, // 26
APPLY_BLOCK, // 27
APPLY_DODGE, // 28
APPLY_RESIST_SWORD, // 29
APPLY_RESIST_TWOHAND, // 30
APPLY_RESIST_DAGGER, // 31
APPLY_RESIST_BELL, // 32
APPLY_RESIST_FAN, // 33
APPLY_RESIST_BOW, // 34
APPLY_RESIST_FIRE, // 35
APPLY_RESIST_ELEC, // 36
APPLY_RESIST_MAGIC, // 37
APPLY_RESIST_WIND, // 38
APPLY_REFLECT_MELEE, // 39
APPLY_REFLECT_CURSE, // 40
APPLY_POISON_REDUCE, // 41
APPLY_KILL_SP_RECOVER, // 42
APPLY_EXP_DOUBLE_BONUS, // 43
APPLY_GOLD_DOUBLE_BONUS, // 44
APPLY_ITEM_DROP_BONUS, // 45
APPLY_POTION_BONUS, // 46
APPLY_KILL_HP_RECOVER, // 47
APPLY_IMMUNE_STUN, // 48
APPLY_IMMUNE_SLOW, // 49
APPLY_IMMUNE_FALL, // 50
APPLY_SKILL, // 51
APPLY_BOW_DISTANCE, // 52
APPLY_ATT_GRADE_BONUS, // 53
APPLY_DEF_GRADE_BONUS, // 54
APPLY_MAGIC_ATT_GRADE, // 55
APPLY_MAGIC_DEF_GRADE, // 56
APPLY_CURSE_PCT, // 57
APPLY_MAX_STAMINA, // 58
APPLY_ATTBONUS_WARRIOR, // 59
APPLY_ATTBONUS_ASSASSIN, // 60
APPLY_ATTBONUS_SURA, // 61
APPLY_ATTBONUS_SHAMAN, // 62
APPLY_ATTBONUS_MONSTER, // 63
APPLY_MALL_ATTBONUS,
APPLY_MALL_DEFBONUS,
APPLY_MALL_EXPBONUS,
APPLY_MALL_ITEMBONUS,
APPLY_MALL_GOLDBONUS,
APPLY_MAX_HP_PCT,
APPLY_MAX_SP_PCT,
APPLY_SKILL_DAMAGE_BONUS,
APPLY_NORMAL_HIT_DAMAGE_BONUS,
APPLY_SKILL_DEFEND_BONUS,
APPLY_NORMAL_HIT_DEFEND_BONUS,
APPLY_PC_BANG_EXP_BONUS,
APPLY_PC_BANG_DROP_BONUS,
APPLY_EXTRACT_HP_PCT,
APPLY_RESIST_WARRIOR,
APPLY_RESIST_ASSASSIN,
APPLY_RESIST_SURA,
APPLY_RESIST_SHAMAN,
APPLY_ENERGY,
APPLY_DEF_GRADE,
APPLY_COSTUME_ATTR_BONUS,
APPLY_MAGIC_ATTBONUS_PER,
APPLY_MELEE_MAGIC_ATTBONUS_PER,
APPLY_RESIST_ICE,
APPLY_RESIST_EARTH,
APPLY_RESIST_DARK,
APPLY_ANTI_CRITICAL_PCT,
APPLY_ANTI_PENETRATE_PCT,
[HASH=2]#ifdef[/HASH] ENABLE_WOLFMAN_CHARACTER
APPLY_BLEEDING_REDUCE,
APPLY_BLEEDING_PCT,
APPLY_ATTBONUS_WOLFMAN,
APPLY_RESIST_WOLFMAN,
APPLY_RESIST_CLAW,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_ACCE_SYSTEM
APPLY_ACCEDRAIN_RATE,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_MAGIC_REDUCTION_SYSTEM
APPLY_RESIST_MAGIC_REDUCTION, //98
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_PENDANT_SYSTEM
APPLY_MOUNT,
APPLY_ENCHANT_FIRE,
APPLY_ENCHANT_ICE,
APPLY_ENCHANT_EARTH,
APPLY_ENCHANT_DARK,
APPLY_ENCHANT_WIND,
APPLY_ENCHANT_ELECT,
APPLY_RESIST_HUMAN,
APPLY_ATTBONUS_SWORD,
APPLY_ATTBONUS_TWOHAND,
APPLY_ATTBONUS_DAGGER,
APPLY_ATTBONUS_BELL,
APPLY_ATTBONUS_FAN,
APPLY_ATTBONUS_BOW,
[HASH=2]#ifdef[/HASH] ENABLE_WOLFMAN_CHARACTER
APPLY_ATTBONUS_CLAW,
[HASH=3]#endif[/HASH]
APPLY_ATTBONUS_CZ,
APPLY_ATTBONUS_DESERT,
APPLY_ATTBONUS_INSECT,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_EXTRA_APPLY_BONUS
APPLY_ATTBONUS_STONE,
APPLY_ATTBONUS_BOSS,
APPLY_ATTBONUS_ELEMENTS,
APPLY_ENCHANT_ELEMENTS,
APPLY_ATTBONUS_CHARACTERS,
APPLY_ENCHANT_CHARACTERS,
APPLY_ATTBONUS_RAZADOR,
APPLY_ATTBONUS_NEMERE,
APPLY_ATTBONUS_LUCIFER,
APPLY_ATTBONUS_BLUE_DRAGON,
APPLY_ATTBONUS_RED_DRAGON,
APPLY_ATTBONUS_AZRAEL,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_GLOVE_SYSTEM
APPLY_RANDOM,
[HASH=3]#endif[/HASH]
MAX_APPLY_NUM = 130,
};
enum EOnClickEvents
{
ON_CLICK_NONE,
ON_CLICK_SHOP,
ON_CLICK_TALK,
ON_CLICK_MAX_NUM
};
enum EOnIdleEvents
{
ON_IDLE_NONE,
ON_IDLE_GENERAL,
ON_IDLE_MAX_NUM
};
enum EWindows
{
RESERVED_WINDOW,
INVENTORY,
EQUIPMENT,
SAFEBOX,
MALL,
DRAGON_SOUL_INVENTORY,
[HASH=2]#ifdef[/HASH] ENABLE_SPECIAL_STORAGE
UPGRADE_INVENTORY,
BOOK_INVENTORY,
STONE_INVENTORY,
CHEST_INVENTORY,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] __AURA_SYSTEM__
AURA_REFINE,
[HASH=3]#endif[/HASH]
BELT_INVENTORY,
GROUND,
[HASH=2]#ifdef[/HASH] __ENABLE_NEW_OFFLINESHOP__
NEW_OFFSHOP,
SHOP_SAFEBOX,
[HASH=3]#endif[/HASH]
};
enum EMobSizes
{
MOBSIZE_RESERVED,
MOBSIZE_SMALL,
MOBSIZE_MEDIUM,
MOBSIZE_BIG
};
enum EAIFlags
{
AIFLAG_AGGRESSIVE = (1 << 0),
AIFLAG_NOMOVE = (1 << 1),
AIFLAG_COWARD = (1 << 2),
AIFLAG_NOATTACKSHINSU = (1 << 3),
AIFLAG_NOATTACKJINNO = (1 << 4),
AIFLAG_NOATTACKCHUNJO = (1 << 5),
AIFLAG_ATTACKMOB = (1 << 6),
AIFLAG_BERSERK = (1 << 7),
AIFLAG_STONESKIN = (1 << 8),
AIFLAG_GODSPEED = (1 << 9),
AIFLAG_DEATHBLOW = (1 << 10),
AIFLAG_REVIVE = (1 << 11),
};
enum EMobStatType
{
MOB_STATTYPE_POWER,
MOB_STATTYPE_TANKER,
MOB_STATTYPE_SUPER_POWER,
MOB_STATTYPE_SUPER_TANKER,
MOB_STATTYPE_RANGE,
MOB_STATTYPE_MAGIC,
MOB_STATTYPE_MAX_NUM
};
enum EImmuneFlags
{
IMMUNE_STUN = (1 << 0),
IMMUNE_SLOW = (1 << 1),
IMMUNE_FALL = (1 << 2),
IMMUNE_CURSE = (1 << 3),
IMMUNE_POISON = (1 << 4),
IMMUNE_TERROR = (1 << 5),
IMMUNE_REFLECT = (1 << 6),
};
enum EMobEnchants
{
MOB_ENCHANT_CURSE,
MOB_ENCHANT_SLOW,
MOB_ENCHANT_POISON,
MOB_ENCHANT_STUN,
MOB_ENCHANT_CRITICAL,
MOB_ENCHANT_PENETRATE,
#if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_BLEEDING_AS_POISON)
MOB_ENCHANT_BLEEDING,
[HASH=3]#endif[/HASH]
MOB_ENCHANTS_MAX_NUM
};
enum EMobResists
{
MOB_RESIST_SWORD,
MOB_RESIST_TWOHAND,
MOB_RESIST_DAGGER,
MOB_RESIST_BELL,
MOB_RESIST_FAN,
MOB_RESIST_BOW,
MOB_RESIST_FIRE,
MOB_RESIST_ELECT,
MOB_RESIST_MAGIC,
MOB_RESIST_WIND,
MOB_RESIST_POISON,
#if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_CLAW_AS_DAGGER)
MOB_RESIST_CLAW,
[HASH=3]#endif[/HASH]
#if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_BLEEDING_AS_POISON)
MOB_RESIST_BLEEDING,
[HASH=3]#endif[/HASH]
MOB_RESISTS_MAX_NUM
};
enum
{
SKILL_ATTR_TYPE_NORMAL = 1,
SKILL_ATTR_TYPE_MELEE,
SKILL_ATTR_TYPE_RANGE,
SKILL_ATTR_TYPE_MAGIC
/*
SKILL_ATTR_TYPE_FIRE,
SKILL_ATTR_TYPE_ICE,
SKILL_ATTR_TYPE_ELEC,
SKILL_ATTR_TYPE_DARK,
*/
};
enum
{
SKILL_NORMAL,
SKILL_MASTER,
SKILL_GRAND_MASTER,
SKILL_PERFECT_MASTER,
};
enum EGuildWarType
{
GUILD_WAR_TYPE_FIELD,
GUILD_WAR_TYPE_BATTLE,
GUILD_WAR_TYPE_FLAG,
GUILD_WAR_TYPE_MAX_NUM
};
enum EGuildWarState
{
GUILD_WAR_NONE,
GUILD_WAR_SEND_DECLARE,
GUILD_WAR_REFUSE,
GUILD_WAR_RECV_DECLARE,
GUILD_WAR_WAIT_START,
GUILD_WAR_CANCEL,
GUILD_WAR_ON_WAR,
GUILD_WAR_END,
GUILD_WAR_OVER,
GUILD_WAR_RESERVE,
GUILD_WAR_DURATION = 30 * 60,
GUILD_WAR_WIN_POINT = 1000,
GUILD_WAR_LADDER_HALF_PENALTY_TIME = 12 * 60 * 60,
};
enum EAttributeSet
{
ATTRIBUTE_SET_WEAPON,
ATTRIBUTE_SET_BODY,
ATTRIBUTE_SET_WRIST,
ATTRIBUTE_SET_FOOTS,
ATTRIBUTE_SET_NECK,
ATTRIBUTE_SET_HEAD,
ATTRIBUTE_SET_SHIELD,
ATTRIBUTE_SET_EAR,
[HASH=2]#ifdef[/HASH] ENABLE_ITEM_ATTR_COSTUME
ATTRIBUTE_SET_COSTUME_BODY,
ATTRIBUTE_SET_COSTUME_HAIR,
#if defined(ENABLE_ITEM_ATTR_COSTUME) && defined(ENABLE_WEAPON_COSTUME_SYSTEM)
ATTRIBUTE_SET_COSTUME_WEAPON,
[HASH=3]#endif[/HASH]
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_PENDANT_SYSTEM
ATTRIBUTE_SET_PENDANT,
[HASH=3]#endif[/HASH]
ATTRIBUTE_SET_MAX_NUM
};
enum EPrivType
{
PRIV_NONE,
PRIV_ITEM_DROP,
PRIV_GOLD_DROP,
PRIV_GOLD10_DROP,
PRIV_EXP_PCT,
MAX_PRIV_NUM,
};
enum EMoneyLogType
{
MONEY_LOG_RESERVED,
MONEY_LOG_MONSTER,
MONEY_LOG_SHOP,
MONEY_LOG_REFINE,
MONEY_LOG_QUEST,
MONEY_LOG_GUILD,
MONEY_LOG_MISC,
MONEY_LOG_MONSTER_KILL,
MONEY_LOG_DROP,
MONEY_LOG_TYPE_MAX_NUM,
};
enum EPremiumTypes
{
PREMIUM_EXP,
PREMIUM_ITEM,
PREMIUM_SAFEBOX,
PREMIUM_AUTOLOOT,
PREMIUM_FISH_MIND,
PREMIUM_MARRIAGE_FAST,
PREMIUM_GOLD,
PREMIUM_MAX_NUM = 9
};
enum SPECIAL_EFFECT
{
SE_NONE,
SE_HPUP_RED,
SE_SPUP_BLUE,
SE_SPEEDUP_GREEN,
SE_DXUP_PURPLE,
SE_CRITICAL,
SE_PENETRATE,
SE_BLOCK,
SE_DODGE,
SE_CHINA_FIREWORK,
SE_SPIN_TOP,
SE_SUCCESS,
SE_FAIL,
SE_FR_SUCCESS,
SE_LEVELUP_ON_14_FOR_GERMANY,
SE_LEVELUP_UNDER_15_FOR_GERMANY,
SE_PERCENT_DAMAGE1,
SE_PERCENT_DAMAGE2,
SE_PERCENT_DAMAGE3,
SE_AUTO_HPUP,
SE_AUTO_SPUP,
SE_EQUIP_RAMADAN_RING,
SE_EQUIP_HALLOWEEN_CANDY,
SE_EQUIP_HAPPINESS_RING,
SE_EQUIP_LOVE_PENDANT,
[HASH=2]#ifdef[/HASH] ENABLE_ACCE_SYSTEM
SE_EFFECT_ACCE_SUCCEDED,
SE_EFFECT_ACCE_EQUIP,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_AGGREGATE_MONSTER_EFFECT
SE_AGGREGATE_MONSTER_EFFECT,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_UPGRADE_EFFECT
SE_UPSUCCESS,
SE_UPFAILED,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_DUEL_EFFECT
SE_PVP_WIN,
SE_PVP_OPEN1,
SE_PVP_OPEN2,
SE_PVP_BEGIN1,
SE_PVP_BEGIN2,
[HASH=3]#endif[/HASH]
};
enum ETeenFlags
{
TEENFLAG_NONE = 0,
TEENFLAG_1HOUR,
TEENFLAG_2HOUR,
TEENFLAG_3HOUR,
TEENFLAG_4HOUR,
TEENFLAG_5HOUR,
};
[HASH=2388]#include[/HASH] "item_length.h"
enum EDragonSoulRefineWindowSize
{
DRAGON_SOUL_REFINE_GRID_MAX = 15,
};
enum EMisc2
{
DRAGON_SOUL_EQUIP_SLOT_START = INVENTORY_MAX_NUM + WEAR_MAX_NUM,
DRAGON_SOUL_EQUIP_SLOT_END = DRAGON_SOUL_EQUIP_SLOT_START + (DS_SLOT_MAX * DRAGON_SOUL_DECK_MAX_NUM),
DRAGON_SOUL_EQUIP_RESERVED_SLOT_END = DRAGON_SOUL_EQUIP_SLOT_END + (DS_SLOT_MAX * DRAGON_SOUL_DECK_RESERVED_MAX_NUM),
BELT_INVENTORY_SLOT_START = DRAGON_SOUL_EQUIP_RESERVED_SLOT_END,
BELT_INVENTORY_SLOT_END = BELT_INVENTORY_SLOT_START + BELT_INVENTORY_SLOT_COUNT,
INVENTORY_AND_EQUIP_SLOT_MAX = BELT_INVENTORY_SLOT_END,
};
[HASH=3375]#pragma[/HASH] pack(push, 1)
typedef struct SItemPos
{
BYTE window_type;
WORD cell;
SItemPos()
{
window_type = INVENTORY;
cell = WORD_MAX;
}
SItemPos(BYTE _window_type, WORD _cell)
{
window_type = _window_type;
cell = _cell;
}
bool IsValidItemPosition() const
{
switch (window_type)
{
case RESERVED_WINDOW:
return false;
case INVENTORY:
case EQUIPMENT:
case BELT_INVENTORY:
return cell < INVENTORY_AND_EQUIP_SLOT_MAX;
case DRAGON_SOUL_INVENTORY:
return cell < (DRAGON_SOUL_INVENTORY_MAX_NUM);
[HASH=2]#ifdef[/HASH] ENABLE_SPECIAL_STORAGE
case UPGRADE_INVENTORY:
case BOOK_INVENTORY:
case STONE_INVENTORY:
case CHEST_INVENTORY:
return cell < (SPECIAL_INVENTORY_MAX_NUM);
[HASH=3]#endif[/HASH]
case SAFEBOX:
case MALL:
return false;
default:
return false;
}
return false;
}
bool IsEquipPosition() const
{
return ((INVENTORY == window_type || EQUIPMENT == window_type) && cell >= INVENTORY_MAX_NUM && cell < INVENTORY_MAX_NUM + WEAR_MAX_NUM)
|| IsDragonSoulEquipPosition();
}
bool IsDragonSoulEquipPosition() const
{
return (window_type == INVENTORY) && (DRAGON_SOUL_EQUIP_SLOT_START <= cell) && (DRAGON_SOUL_EQUIP_SLOT_END > cell);
}
bool IsBeltInventoryPosition() const
{
return (BELT_INVENTORY_SLOT_START <= cell) && (BELT_INVENTORY_SLOT_END > cell);
}
bool IsDefaultInventoryPosition() const
{
return INVENTORY == window_type && cell < INVENTORY_MAX_NUM;
}
bool operator==(const struct SItemPos& rhs) const
{
return (window_type == rhs.window_type) && (cell == rhs.cell);
}
bool operator<(const struct SItemPos& rhs) const
{
return (window_type < rhs.window_type) || ((window_type == rhs.window_type) && (cell < rhs.cell));
}
bool operator!=(const struct SItemPos& rhs) const
{
return (window_type != rhs.window_type) || (cell != rhs.cell);
}
} TItemPos;
const TItemPos NPOS(RESERVED_WINDOW, WORD_MAX);
typedef struct SItemPosEx
{
TItemPos pos;
int id{ 0 };
} TItemPosEx;
typedef enum
{
SHOP_COIN_TYPE_GOLD, // DEFAULT VALUE
SHOP_COIN_TYPE_SECONDARY_COIN,
} EShopCoinType;
[HASH=2]#ifdef[/HASH] __AURA_SYSTEM__
typedef struct SAuraRefineInfo
{
BYTE bAuraRefineInfoLevel;
BYTE bAuraRefineInfoExpPercent;
} TAuraRefineInfo;
enum EAuraMisc
{
AURA_MAX_LEVEL = 250,
AURA_REFINE_MAX_DISTANCE = 1000,
};
enum EAuraWindowType
{
AURA_WINDOW_TYPE_ABSORB,
AURA_WINDOW_TYPE_GROWTH,
AURA_WINDOW_TYPE_EVOLVE,
AURA_WINDOW_TYPE_MAX,
};
enum EAuraSlotType
{
AURA_SLOT_MAIN,
AURA_SLOT_SUB,
AURA_SLOT_RESULT,
AURA_SLOT_MAX
};
enum EAuraGradeType
{
AURA_GRADE_NONE,
AURA_GRADE_ORDINARY,
AURA_GRADE_SIMPLE,
AURA_GRADE_NOBLE,
AURA_GRADE_SPARKLING,
AURA_GRADE_MAGNIFICENT,
AURA_GRADE_RADIANT,
AURA_GRADE_MAX_NUM,
};
enum EAuraRefineInfoType
{
AURA_REFINE_INFO_STEP,
AURA_REFINE_INFO_LEVEL_MIN,
AURA_REFINE_INFO_LEVEL_MAX,
AURA_REFINE_INFO_NEED_EXP,
AURA_REFINE_INFO_MATERIAL_VNUM,
AURA_REFINE_INFO_MATERIAL_COUNT,
AURA_REFINE_INFO_NEED_GOLD,
AURA_REFINE_INFO_EVOLVE_PCT,
AURA_REFINE_INFO_MAX
};
enum ERefineInfoType
{
AURA_REFINE_INFO_SLOT_CURRENT,
AURA_REFINE_INFO_SLOT_NEXT,
AURA_REFINE_INFO_SLOT_EVOLVED,
AURA_REFINE_INFO_SLOT_MAX
};
[HASH=3]#endif[/HASH]
[HASH=3375]#pragma[/HASH] pack(pop)
[HASH=3]#endif[/HASH]
enum EMisc
{
MAX_HOST_LENGTH = 15,
IP_ADDRESS_LENGTH = 15,
LOGIN_MAX_LEN = 30,
PASSWD_MAX_LEN = 16,
[HASH=2]#ifdef[/HASH] ENABLE_PLAYER_PER_ACCOUNT5
PLAYER_PER_ACCOUNT = 5,
[HASH=2311]#else[/HASH]
PLAYER_PER_ACCOUNT = 4,
[HASH=3]#endif[/HASH]
ACCOUNT_STATUS_MAX_LEN = 8,
CHARACTER_NAME_MAX_LEN = 24,
SHOP_SIGN_MAX_LEN = 32,
INVENTORY_PAGE_COLUMN = 5, // 5 (default)
INVENTORY_PAGE_ROW = 9, // 9 (default)
INVENTORY_PAGE_SIZE = INVENTORY_PAGE_COLUMN * INVENTORY_PAGE_ROW,
[HASH=2]#ifdef[/HASH] ENABLE_EXTEND_INVEN_SYSTEM
INVENTORY_PAGE_COUNT = 4, // 2 (default)
[HASH=2311]#else[/HASH]
INVENTORY_PAGE_COUNT = 2, // 2 (default)
[HASH=3]#endif[/HASH]
INVENTORY_MAX_NUM = INVENTORY_PAGE_SIZE * INVENTORY_PAGE_COUNT, // 90 (default)
ABILITY_MAX_NUM = 50,
EMPIRE_MAX_NUM = 4,
BANWORD_MAX_LEN = 24,
SMS_MAX_LEN = 80,
MOBILE_MAX_LEN = 32,
SOCIAL_ID_MAX_LEN = 18,
GUILD_NAME_MAX_LEN = 12,
SHOP_HOST_ITEM_MAX_NUM = 40,
SHOP_GUEST_ITEM_MAX_NUM = 18,
SHOP_PRICELIST_MAX_NUM = 40,
CHAT_MAX_LEN = 512,
QUICKSLOT_MAX_NUM = 36,
JOURNAL_MAX_NUM = 2,
QUERY_MAX_LEN = 8192,
FILE_MAX_LEN = 128,
PLAYER_EXP_TABLE_MAX = 120,
PLAYER_MAX_LEVEL_CONST = 250,
GUILD_MAX_LEVEL = 20,
MOB_MAX_LEVEL = 100,
ATTRIBUTE_MAX_VALUE = 20,
CHARACTER_PATH_MAX_NUM = 64,
SKILL_MAX_NUM = 255,
SKILLBOOK_DELAY_MIN = 64800,
SKILLBOOK_DELAY_MAX = 108000,
SKILL_MAX_LEVEL = 40,
APPLY_NAME_MAX_LEN = 32,
EVENT_FLAG_NAME_MAX_LEN = 32,
MOB_SKILL_MAX_NUM = 5,
POINT_MAX_NUM = 255,
DRAGON_SOUL_BOX_SIZE = 32,
DRAGON_SOUL_BOX_COLUMN_NUM = 8,
DRAGON_SOUL_BOX_ROW_NUM = DRAGON_SOUL_BOX_SIZE / DRAGON_SOUL_BOX_COLUMN_NUM,
DRAGON_SOUL_REFINE_GRID_SIZE = 15,
MAX_AMOUNT_OF_MALL_BONUS = 20,
WEAR_MAX_NUM = 32,
[HASH=2]#ifdef[/HASH] __ENABLE_NEW_OFFLINESHOP__
OFFLINE_SHOP_NAME_MAX_LEN = 40 + CHARACTER_NAME_MAX_LEN + 1,
OFFLINESHOP_DURATION_MAX_MINUTES = 8 * 24 * 60,
OFFLINESHOP_MAX_SEARCH_RESULT = 250,
OFFLINESHOP_SECONDS_PER_SEARCH = 15,
//*new check about auction offers
OFFLINESHOP_SECONDS_PER_OFFER = 7,
[HASH=2]#ifdef[/HASH] __ENABLE_CHEQUE_SYSTEM__
YANG_PER_CHEQUE = 100000000,
[HASH=3]#endif[/HASH]
[HASH=3]#endif[/HASH]
//LIMIT_GOLD
GOLD_MAX = 2000000000,
MAX_PASSPOD = 8,
//END_LIMIT_GOLD
OPENID_AUTHKEY_LEN = 32,
SHOP_TAB_NAME_MAX = 32,
SHOP_TAB_COUNT_MAX = 3,
BELT_INVENTORY_SLOT_WIDTH = 4,
BELT_INVENTORY_SLOT_HEIGHT = 4,
BELT_INVENTORY_SLOT_COUNT = BELT_INVENTORY_SLOT_WIDTH * BELT_INVENTORY_SLOT_HEIGHT,
[HASH=2]#ifdef[/HASH] ENABLE_SPECIAL_STORAGE
SPECIAL_INVENTORY_PAGE_COUNT = 4,
SPECIAL_INVENTORY_PAGE_SIZE = 45,
SPECIAL_INVENTORY_MAX_NUM = SPECIAL_INVENTORY_PAGE_SIZE * SPECIAL_INVENTORY_PAGE_COUNT,
[HASH=3]#endif[/HASH]
};
enum EMatrixCard
{
MATRIX_CODE_MAX_LEN = 192,
MATRIX_ANSWER_MAX_LEN = 8,
};
enum EWearPositions
{
WEAR_BODY, // 0
WEAR_HEAD, // 1
WEAR_FOOTS, // 2
WEAR_WRIST, // 3
WEAR_WEAPON, // 4
WEAR_NECK, // 5
WEAR_EAR, // 6
WEAR_UNIQUE1, // 7
WEAR_UNIQUE2, // 8
WEAR_ARROW, // 9
WEAR_SHIELD, // 10
WEAR_ABILITY1, // 11
WEAR_ABILITY2, // 12
WEAR_ABILITY3, // 13
WEAR_ABILITY4, // 14
WEAR_ABILITY5, // 15
WEAR_ABILITY6, // 16
WEAR_ABILITY7, // 17
WEAR_ABILITY8, // 18
WEAR_COSTUME_BODY, // 19
WEAR_COSTUME_HAIR, // 20
[HASH=2]#ifdef[/HASH] ENABLE_MOUNT_COSTUME_SYSTEM
WEAR_COSTUME_MOUNT,//21
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_ACCE_SYSTEM
WEAR_COSTUME_ACCE,//22
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_WEAPON_COSTUME_SYSTEM
WEAR_COSTUME_WEAPON,//23
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] __AURA_SYSTEM__
WEAR_COSTUME_AURA,//24
[HASH=3]#endif[/HASH]
WEAR_RING1,//25
WEAR_RING2,//26
WEAR_BELT,//27
[HASH=2]#ifdef[/HASH] ENABLE_PENDANT_SYSTEM
WEAR_PENDANT,//28
[HASH=3]#endif[/HASH]
WEAR_GLOVE, //29
WEAR_MAX = 32 //
};
enum EDragonSoulDeckType
{
DRAGON_SOUL_DECK_0,
DRAGON_SOUL_DECK_1,
DRAGON_SOUL_DECK_MAX_NUM = 2,
DRAGON_SOUL_DECK_RESERVED_MAX_NUM = 3,
};
enum ESex
{
SEX_MALE,
SEX_FEMALE
};
enum EDirection
{
DIR_NORTH,
DIR_NORTHEAST,
DIR_EAST,
DIR_SOUTHEAST,
DIR_SOUTH,
DIR_SOUTHWEST,
DIR_WEST,
DIR_NORTHWEST,
DIR_MAX_NUM
};
[HASH=1]#define[/HASH] ABILITY_MAX_LEVEL 10
enum EAbilityDifficulty
{
DIFFICULTY_EASY,
DIFFICULTY_NORMAL,
DIFFICULTY_HARD,
DIFFICULTY_VERY_HARD,
DIFFICULTY_NUM_TYPES
};
enum EAbilityCategory
{
CATEGORY_PHYSICAL,
CATEGORY_MENTAL,
CATEGORY_ATTRIBUTE,
CATEGORY_NUM_TYPES
};
enum EJobs
{
JOB_WARRIOR,
JOB_ASSASSIN,
JOB_SURA,
JOB_SHAMAN,
[HASH=2]#ifdef[/HASH] ENABLE_WOLFMAN_CHARACTER
JOB_WOLFMAN,
[HASH=3]#endif[/HASH]
JOB_MAX_NUM
};
enum ESkillGroups
{
SKILL_GROUP_MAX_NUM = 2,
};
enum ERaceFlags
{
RACE_FLAG_ANIMAL = (1 << 0),
RACE_FLAG_UNDEAD = (1 << 1),
RACE_FLAG_DEVIL = (1 << 2),
RACE_FLAG_HUMAN = (1 << 3),
RACE_FLAG_ORC = (1 << 4),
RACE_FLAG_MILGYO = (1 << 5),
RACE_FLAG_INSECT = (1 << 6),
RACE_FLAG_FIRE = (1 << 7),
RACE_FLAG_ICE = (1 << 8),
RACE_FLAG_DESERT = (1 << 9),
RACE_FLAG_TREE = (1 << 10),
RACE_FLAG_ATT_ELEC = (1 << 11),
RACE_FLAG_ATT_FIRE = (1 << 12),
RACE_FLAG_ATT_ICE = (1 << 13),
RACE_FLAG_ATT_WIND = (1 << 14),
RACE_FLAG_ATT_EARTH = (1 << 15),
RACE_FLAG_ATT_DARK = (1 << 16),
RACE_FLAG_ATT_CZ = (1 << 17),
};
enum ELoads
{
LOAD_NONE,
LOAD_LIGHT,
LOAD_NORMAL,
LOAD_HEAVY,
LOAD_MASSIVE
};
enum
{
QUICKSLOT_TYPE_NONE,
QUICKSLOT_TYPE_ITEM,
QUICKSLOT_TYPE_SKILL,
QUICKSLOT_TYPE_COMMAND,
QUICKSLOT_TYPE_MAX_NUM,
};
enum EParts
{
PART_MAIN,
PART_WEAPON,
PART_HEAD,
PART_HAIR,
[HASH=2]#ifdef[/HASH] ENABLE_ACCE_SYSTEM
PART_ACCE,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] __AURA_SYSTEM__
PART_AURA,
[HASH=3]#endif[/HASH]
PART_MAX_NUM,
PART_WEAPON_SUB,
};
enum EChatType
{
CHAT_TYPE_TALKING,
CHAT_TYPE_INFO,
CHAT_TYPE_NOTICE,
CHAT_TYPE_PARTY,
CHAT_TYPE_GUILD,
CHAT_TYPE_COMMAND,
CHAT_TYPE_SHOUT,
CHAT_TYPE_WHISPER,
CHAT_TYPE_BIG_NOTICE,
CHAT_TYPE_MONARCH_NOTICE,
[HASH=2]#ifdef[/HASH] ENABLE_DICE_SYSTEM
CHAT_TYPE_DICE_INFO, //11
[HASH=3]#endif[/HASH]
CHAT_TYPE_MAX_NUM
};
enum EWhisperType
{
WHISPER_TYPE_NORMAL = 0,
WHISPER_TYPE_NOT_EXIST = 1,
WHISPER_TYPE_TARGET_BLOCKED = 2,
WHISPER_TYPE_SENDER_BLOCKED = 3,
WHISPER_TYPE_ERROR = 4,
WHISPER_TYPE_GM = 5,
WHISPER_TYPE_SYSTEM = 0xFF
};
enum ECharacterPosition
{
POSITION_GENERAL,
POSITION_BATTLE,
POSITION_DYING,
POSITION_SITTING_CHAIR,
POSITION_SITTING_GROUND,
POSITION_INTRO,
POSITION_MAX_NUM
};
enum EGMLevels
{
GM_PLAYER,
GM_LOW_WIZARD,
GM_WIZARD,
GM_HIGH_WIZARD,
GM_GOD,
GM_IMPLEMENTOR,
GM_DISABLE,
};
enum EMobRank
{
MOB_RANK_PAWN,
MOB_RANK_S_PAWN,
MOB_RANK_KNIGHT,
MOB_RANK_S_KNIGHT,
MOB_RANK_BOSS,
MOB_RANK_KING,
MOB_RANK_MAX_NUM
};
enum ECharType
{
CHAR_TYPE_MONSTER,
CHAR_TYPE_NPC,
CHAR_TYPE_STONE,
CHAR_TYPE_WARP,
CHAR_TYPE_DOOR,
CHAR_TYPE_BUILDING,
CHAR_TYPE_PC,
CHAR_TYPE_POLYMORPH_PC,
CHAR_TYPE_HORSE,
CHAR_TYPE_GOTO
};
enum EBattleType
{
BATTLE_TYPE_MELEE,
BATTLE_TYPE_RANGE,
BATTLE_TYPE_MAGIC,
BATTLE_TYPE_SPECIAL,
BATTLE_TYPE_POWER,
BATTLE_TYPE_TANKER,
BATTLE_TYPE_SUPER_POWER,
BATTLE_TYPE_SUPER_TANKER,
BATTLE_TYPE_MAX_NUM
};
enum EApplyTypes
{
APPLY_NONE, // 0
APPLY_MAX_HP, // 1
APPLY_MAX_SP, // 2
APPLY_CON, // 3
APPLY_INT, // 4
APPLY_STR, // 5
APPLY_DEX, // 6
APPLY_ATT_SPEED, // 7
APPLY_MOV_SPEED, // 8
APPLY_CAST_SPEED, // 9
APPLY_HP_REGEN, // 10
APPLY_SP_REGEN, // 11
APPLY_POISON_PCT, // 12
APPLY_STUN_PCT, // 13
APPLY_SLOW_PCT, // 14
APPLY_CRITICAL_PCT, // 15
APPLY_PENETRATE_PCT, // 16
APPLY_ATTBONUS_HUMAN, // 17
APPLY_ATTBONUS_ANIMAL, // 18
APPLY_ATTBONUS_ORC, // 19
APPLY_ATTBONUS_MILGYO, // 20
APPLY_ATTBONUS_UNDEAD, // 21
APPLY_ATTBONUS_DEVIL, // 22
APPLY_STEAL_HP, // 23
APPLY_STEAL_SP, // 24
APPLY_MANA_BURN_PCT, // 25
APPLY_DAMAGE_SP_RECOVER, // 26
APPLY_BLOCK, // 27
APPLY_DODGE, // 28
APPLY_RESIST_SWORD, // 29
APPLY_RESIST_TWOHAND, // 30
APPLY_RESIST_DAGGER, // 31
APPLY_RESIST_BELL, // 32
APPLY_RESIST_FAN, // 33
APPLY_RESIST_BOW, // 34
APPLY_RESIST_FIRE, // 35
APPLY_RESIST_ELEC, // 36
APPLY_RESIST_MAGIC, // 37
APPLY_RESIST_WIND, // 38
APPLY_REFLECT_MELEE, // 39
APPLY_REFLECT_CURSE, // 40
APPLY_POISON_REDUCE, // 41
APPLY_KILL_SP_RECOVER, // 42
APPLY_EXP_DOUBLE_BONUS, // 43
APPLY_GOLD_DOUBLE_BONUS, // 44
APPLY_ITEM_DROP_BONUS, // 45
APPLY_POTION_BONUS, // 46
APPLY_KILL_HP_RECOVER, // 47
APPLY_IMMUNE_STUN, // 48
APPLY_IMMUNE_SLOW, // 49
APPLY_IMMUNE_FALL, // 50
APPLY_SKILL, // 51
APPLY_BOW_DISTANCE, // 52
APPLY_ATT_GRADE_BONUS, // 53
APPLY_DEF_GRADE_BONUS, // 54
APPLY_MAGIC_ATT_GRADE, // 55
APPLY_MAGIC_DEF_GRADE, // 56
APPLY_CURSE_PCT, // 57
APPLY_MAX_STAMINA, // 58
APPLY_ATTBONUS_WARRIOR, // 59
APPLY_ATTBONUS_ASSASSIN, // 60
APPLY_ATTBONUS_SURA, // 61
APPLY_ATTBONUS_SHAMAN, // 62
APPLY_ATTBONUS_MONSTER, // 63
APPLY_MALL_ATTBONUS,
APPLY_MALL_DEFBONUS,
APPLY_MALL_EXPBONUS,
APPLY_MALL_ITEMBONUS,
APPLY_MALL_GOLDBONUS,
APPLY_MAX_HP_PCT,
APPLY_MAX_SP_PCT,
APPLY_SKILL_DAMAGE_BONUS,
APPLY_NORMAL_HIT_DAMAGE_BONUS,
APPLY_SKILL_DEFEND_BONUS,
APPLY_NORMAL_HIT_DEFEND_BONUS,
APPLY_PC_BANG_EXP_BONUS,
APPLY_PC_BANG_DROP_BONUS,
APPLY_EXTRACT_HP_PCT,
APPLY_RESIST_WARRIOR,
APPLY_RESIST_ASSASSIN,
APPLY_RESIST_SURA,
APPLY_RESIST_SHAMAN,
APPLY_ENERGY,
APPLY_DEF_GRADE,
APPLY_COSTUME_ATTR_BONUS,
APPLY_MAGIC_ATTBONUS_PER,
APPLY_MELEE_MAGIC_ATTBONUS_PER,
APPLY_RESIST_ICE,
APPLY_RESIST_EARTH,
APPLY_RESIST_DARK,
APPLY_ANTI_CRITICAL_PCT,
APPLY_ANTI_PENETRATE_PCT,
[HASH=2]#ifdef[/HASH] ENABLE_WOLFMAN_CHARACTER
APPLY_BLEEDING_REDUCE,
APPLY_BLEEDING_PCT,
APPLY_ATTBONUS_WOLFMAN,
APPLY_RESIST_WOLFMAN,
APPLY_RESIST_CLAW,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_ACCE_SYSTEM
APPLY_ACCEDRAIN_RATE,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_MAGIC_REDUCTION_SYSTEM
APPLY_RESIST_MAGIC_REDUCTION, //98
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_PENDANT_SYSTEM
APPLY_MOUNT,
APPLY_ENCHANT_FIRE,
APPLY_ENCHANT_ICE,
APPLY_ENCHANT_EARTH,
APPLY_ENCHANT_DARK,
APPLY_ENCHANT_WIND,
APPLY_ENCHANT_ELECT,
APPLY_RESIST_HUMAN,
APPLY_ATTBONUS_SWORD,
APPLY_ATTBONUS_TWOHAND,
APPLY_ATTBONUS_DAGGER,
APPLY_ATTBONUS_BELL,
APPLY_ATTBONUS_FAN,
APPLY_ATTBONUS_BOW,
[HASH=2]#ifdef[/HASH] ENABLE_WOLFMAN_CHARACTER
APPLY_ATTBONUS_CLAW,
[HASH=3]#endif[/HASH]
APPLY_ATTBONUS_CZ,
APPLY_ATTBONUS_DESERT,
APPLY_ATTBONUS_INSECT,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_EXTRA_APPLY_BONUS
APPLY_ATTBONUS_STONE,
APPLY_ATTBONUS_BOSS,
APPLY_ATTBONUS_ELEMENTS,
APPLY_ENCHANT_ELEMENTS,
APPLY_ATTBONUS_CHARACTERS,
APPLY_ENCHANT_CHARACTERS,
APPLY_ATTBONUS_RAZADOR,
APPLY_ATTBONUS_NEMERE,
APPLY_ATTBONUS_LUCIFER,
APPLY_ATTBONUS_BLUE_DRAGON,
APPLY_ATTBONUS_RED_DRAGON,
APPLY_ATTBONUS_AZRAEL,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_GLOVE_SYSTEM
APPLY_RANDOM,
[HASH=3]#endif[/HASH]
MAX_APPLY_NUM = 130,
};
enum EOnClickEvents
{
ON_CLICK_NONE,
ON_CLICK_SHOP,
ON_CLICK_TALK,
ON_CLICK_MAX_NUM
};
enum EOnIdleEvents
{
ON_IDLE_NONE,
ON_IDLE_GENERAL,
ON_IDLE_MAX_NUM
};
enum EWindows
{
RESERVED_WINDOW,
INVENTORY,
EQUIPMENT,
SAFEBOX,
MALL,
DRAGON_SOUL_INVENTORY,
[HASH=2]#ifdef[/HASH] ENABLE_SPECIAL_STORAGE
UPGRADE_INVENTORY,
BOOK_INVENTORY,
STONE_INVENTORY,
CHEST_INVENTORY,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] __AURA_SYSTEM__
AURA_REFINE,
[HASH=3]#endif[/HASH]
BELT_INVENTORY,
GROUND,
[HASH=2]#ifdef[/HASH] __ENABLE_NEW_OFFLINESHOP__
NEW_OFFSHOP,
SHOP_SAFEBOX,
[HASH=3]#endif[/HASH]
};
enum EMobSizes
{
MOBSIZE_RESERVED,
MOBSIZE_SMALL,
MOBSIZE_MEDIUM,
MOBSIZE_BIG
};
enum EAIFlags
{
AIFLAG_AGGRESSIVE = (1 << 0),
AIFLAG_NOMOVE = (1 << 1),
AIFLAG_COWARD = (1 << 2),
AIFLAG_NOATTACKSHINSU = (1 << 3),
AIFLAG_NOATTACKJINNO = (1 << 4),
AIFLAG_NOATTACKCHUNJO = (1 << 5),
AIFLAG_ATTACKMOB = (1 << 6),
AIFLAG_BERSERK = (1 << 7),
AIFLAG_STONESKIN = (1 << 8),
AIFLAG_GODSPEED = (1 << 9),
AIFLAG_DEATHBLOW = (1 << 10),
AIFLAG_REVIVE = (1 << 11),
};
enum EMobStatType
{
MOB_STATTYPE_POWER,
MOB_STATTYPE_TANKER,
MOB_STATTYPE_SUPER_POWER,
MOB_STATTYPE_SUPER_TANKER,
MOB_STATTYPE_RANGE,
MOB_STATTYPE_MAGIC,
MOB_STATTYPE_MAX_NUM
};
enum EImmuneFlags
{
IMMUNE_STUN = (1 << 0),
IMMUNE_SLOW = (1 << 1),
IMMUNE_FALL = (1 << 2),
IMMUNE_CURSE = (1 << 3),
IMMUNE_POISON = (1 << 4),
IMMUNE_TERROR = (1 << 5),
IMMUNE_REFLECT = (1 << 6),
};
enum EMobEnchants
{
MOB_ENCHANT_CURSE,
MOB_ENCHANT_SLOW,
MOB_ENCHANT_POISON,
MOB_ENCHANT_STUN,
MOB_ENCHANT_CRITICAL,
MOB_ENCHANT_PENETRATE,
#if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_BLEEDING_AS_POISON)
MOB_ENCHANT_BLEEDING,
[HASH=3]#endif[/HASH]
MOB_ENCHANTS_MAX_NUM
};
enum EMobResists
{
MOB_RESIST_SWORD,
MOB_RESIST_TWOHAND,
MOB_RESIST_DAGGER,
MOB_RESIST_BELL,
MOB_RESIST_FAN,
MOB_RESIST_BOW,
MOB_RESIST_FIRE,
MOB_RESIST_ELECT,
MOB_RESIST_MAGIC,
MOB_RESIST_WIND,
MOB_RESIST_POISON,
#if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_CLAW_AS_DAGGER)
MOB_RESIST_CLAW,
[HASH=3]#endif[/HASH]
#if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_BLEEDING_AS_POISON)
MOB_RESIST_BLEEDING,
[HASH=3]#endif[/HASH]
MOB_RESISTS_MAX_NUM
};
enum
{
SKILL_ATTR_TYPE_NORMAL = 1,
SKILL_ATTR_TYPE_MELEE,
SKILL_ATTR_TYPE_RANGE,
SKILL_ATTR_TYPE_MAGIC
/*
SKILL_ATTR_TYPE_FIRE,
SKILL_ATTR_TYPE_ICE,
SKILL_ATTR_TYPE_ELEC,
SKILL_ATTR_TYPE_DARK,
*/
};
enum
{
SKILL_NORMAL,
SKILL_MASTER,
SKILL_GRAND_MASTER,
SKILL_PERFECT_MASTER,
};
enum EGuildWarType
{
GUILD_WAR_TYPE_FIELD,
GUILD_WAR_TYPE_BATTLE,
GUILD_WAR_TYPE_FLAG,
GUILD_WAR_TYPE_MAX_NUM
};
enum EGuildWarState
{
GUILD_WAR_NONE,
GUILD_WAR_SEND_DECLARE,
GUILD_WAR_REFUSE,
GUILD_WAR_RECV_DECLARE,
GUILD_WAR_WAIT_START,
GUILD_WAR_CANCEL,
GUILD_WAR_ON_WAR,
GUILD_WAR_END,
GUILD_WAR_OVER,
GUILD_WAR_RESERVE,
GUILD_WAR_DURATION = 30 * 60,
GUILD_WAR_WIN_POINT = 1000,
GUILD_WAR_LADDER_HALF_PENALTY_TIME = 12 * 60 * 60,
};
enum EAttributeSet
{
ATTRIBUTE_SET_WEAPON,
ATTRIBUTE_SET_BODY,
ATTRIBUTE_SET_WRIST,
ATTRIBUTE_SET_FOOTS,
ATTRIBUTE_SET_NECK,
ATTRIBUTE_SET_HEAD,
ATTRIBUTE_SET_SHIELD,
ATTRIBUTE_SET_EAR,
[HASH=2]#ifdef[/HASH] ENABLE_ITEM_ATTR_COSTUME
ATTRIBUTE_SET_COSTUME_BODY,
ATTRIBUTE_SET_COSTUME_HAIR,
#if defined(ENABLE_ITEM_ATTR_COSTUME) && defined(ENABLE_WEAPON_COSTUME_SYSTEM)
ATTRIBUTE_SET_COSTUME_WEAPON,
[HASH=3]#endif[/HASH]
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_PENDANT_SYSTEM
ATTRIBUTE_SET_PENDANT,
[HASH=3]#endif[/HASH]
ATTRIBUTE_SET_MAX_NUM
};
enum EPrivType
{
PRIV_NONE,
PRIV_ITEM_DROP,
PRIV_GOLD_DROP,
PRIV_GOLD10_DROP,
PRIV_EXP_PCT,
MAX_PRIV_NUM,
};
enum EMoneyLogType
{
MONEY_LOG_RESERVED,
MONEY_LOG_MONSTER,
MONEY_LOG_SHOP,
MONEY_LOG_REFINE,
MONEY_LOG_QUEST,
MONEY_LOG_GUILD,
MONEY_LOG_MISC,
MONEY_LOG_MONSTER_KILL,
MONEY_LOG_DROP,
MONEY_LOG_TYPE_MAX_NUM,
};
enum EPremiumTypes
{
PREMIUM_EXP,
PREMIUM_ITEM,
PREMIUM_SAFEBOX,
PREMIUM_AUTOLOOT,
PREMIUM_FISH_MIND,
PREMIUM_MARRIAGE_FAST,
PREMIUM_GOLD,
PREMIUM_MAX_NUM = 9
};
enum SPECIAL_EFFECT
{
SE_NONE,
SE_HPUP_RED,
SE_SPUP_BLUE,
SE_SPEEDUP_GREEN,
SE_DXUP_PURPLE,
SE_CRITICAL,
SE_PENETRATE,
SE_BLOCK,
SE_DODGE,
SE_CHINA_FIREWORK,
SE_SPIN_TOP,
SE_SUCCESS,
SE_FAIL,
SE_FR_SUCCESS,
SE_LEVELUP_ON_14_FOR_GERMANY,
SE_LEVELUP_UNDER_15_FOR_GERMANY,
SE_PERCENT_DAMAGE1,
SE_PERCENT_DAMAGE2,
SE_PERCENT_DAMAGE3,
SE_AUTO_HPUP,
SE_AUTO_SPUP,
SE_EQUIP_RAMADAN_RING,
SE_EQUIP_HALLOWEEN_CANDY,
SE_EQUIP_HAPPINESS_RING,
SE_EQUIP_LOVE_PENDANT,
[HASH=2]#ifdef[/HASH] ENABLE_ACCE_SYSTEM
SE_EFFECT_ACCE_SUCCEDED,
SE_EFFECT_ACCE_EQUIP,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_AGGREGATE_MONSTER_EFFECT
SE_AGGREGATE_MONSTER_EFFECT,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_UPGRADE_EFFECT
SE_UPSUCCESS,
SE_UPFAILED,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_DUEL_EFFECT
SE_PVP_WIN,
SE_PVP_OPEN1,
SE_PVP_OPEN2,
SE_PVP_BEGIN1,
SE_PVP_BEGIN2,
[HASH=3]#endif[/HASH]
};
enum ETeenFlags
{
TEENFLAG_NONE = 0,
TEENFLAG_1HOUR,
TEENFLAG_2HOUR,
TEENFLAG_3HOUR,
TEENFLAG_4HOUR,
TEENFLAG_5HOUR,
};
[HASH=2388]#include[/HASH] "item_length.h"
enum EDragonSoulRefineWindowSize
{
DRAGON_SOUL_REFINE_GRID_MAX = 15,
};
enum EMisc2
{
DRAGON_SOUL_EQUIP_SLOT_START = INVENTORY_MAX_NUM + WEAR_MAX_NUM,
DRAGON_SOUL_EQUIP_SLOT_END = DRAGON_SOUL_EQUIP_SLOT_START + (DS_SLOT_MAX * DRAGON_SOUL_DECK_MAX_NUM),
DRAGON_SOUL_EQUIP_RESERVED_SLOT_END = DRAGON_SOUL_EQUIP_SLOT_END + (DS_SLOT_MAX * DRAGON_SOUL_DECK_RESERVED_MAX_NUM),
BELT_INVENTORY_SLOT_START = DRAGON_SOUL_EQUIP_RESERVED_SLOT_END,
BELT_INVENTORY_SLOT_END = BELT_INVENTORY_SLOT_START + BELT_INVENTORY_SLOT_COUNT,
INVENTORY_AND_EQUIP_SLOT_MAX = BELT_INVENTORY_SLOT_END,
};
[HASH=3375]#pragma[/HASH] pack(push, 1)
typedef struct SItemPos
{
BYTE window_type;
WORD cell;
SItemPos()
{
window_type = INVENTORY;
cell = WORD_MAX;
}
SItemPos(BYTE _window_type, WORD _cell)
{
window_type = _window_type;
cell = _cell;
}
bool IsValidItemPosition() const
{
switch (window_type)
{
case RESERVED_WINDOW:
return false;
case INVENTORY:
case EQUIPMENT:
case BELT_INVENTORY:
return cell < INVENTORY_AND_EQUIP_SLOT_MAX;
case DRAGON_SOUL_INVENTORY:
return cell < (DRAGON_SOUL_INVENTORY_MAX_NUM);
[HASH=2]#ifdef[/HASH] ENABLE_SPECIAL_STORAGE
case UPGRADE_INVENTORY:
case BOOK_INVENTORY:
case STONE_INVENTORY:
case CHEST_INVENTORY:
return cell < (SPECIAL_INVENTORY_MAX_NUM);
[HASH=3]#endif[/HASH]
case SAFEBOX:
case MALL:
return false;
default:
return false;
}
return false;
}
bool IsEquipPosition() const
{
return ((INVENTORY == window_type || EQUIPMENT == window_type) && cell >= INVENTORY_MAX_NUM && cell < INVENTORY_MAX_NUM + WEAR_MAX_NUM)
|| IsDragonSoulEquipPosition();
}
bool IsDragonSoulEquipPosition() const
{
return (window_type == INVENTORY) && (DRAGON_SOUL_EQUIP_SLOT_START <= cell) && (DRAGON_SOUL_EQUIP_SLOT_END > cell);
}
bool IsBeltInventoryPosition() const
{
return (BELT_INVENTORY_SLOT_START <= cell) && (BELT_INVENTORY_SLOT_END > cell);
}
bool IsDefaultInventoryPosition() const
{
return INVENTORY == window_type && cell < INVENTORY_MAX_NUM;
}
bool operator==(const struct SItemPos& rhs) const
{
return (window_type == rhs.window_type) && (cell == rhs.cell);
}
bool operator<(const struct SItemPos& rhs) const
{
return (window_type < rhs.window_type) || ((window_type == rhs.window_type) && (cell < rhs.cell));
}
bool operator!=(const struct SItemPos& rhs) const
{
return (window_type != rhs.window_type) || (cell != rhs.cell);
}
} TItemPos;
const TItemPos NPOS(RESERVED_WINDOW, WORD_MAX);
typedef struct SItemPosEx
{
TItemPos pos;
int id{ 0 };
} TItemPosEx;
typedef enum
{
SHOP_COIN_TYPE_GOLD, // DEFAULT VALUE
SHOP_COIN_TYPE_SECONDARY_COIN,
} EShopCoinType;
[HASH=2]#ifdef[/HASH] __AURA_SYSTEM__
typedef struct SAuraRefineInfo
{
BYTE bAuraRefineInfoLevel;
BYTE bAuraRefineInfoExpPercent;
} TAuraRefineInfo;
enum EAuraMisc
{
AURA_MAX_LEVEL = 250,
AURA_REFINE_MAX_DISTANCE = 1000,
};
enum EAuraWindowType
{
AURA_WINDOW_TYPE_ABSORB,
AURA_WINDOW_TYPE_GROWTH,
AURA_WINDOW_TYPE_EVOLVE,
AURA_WINDOW_TYPE_MAX,
};
enum EAuraSlotType
{
AURA_SLOT_MAIN,
AURA_SLOT_SUB,
AURA_SLOT_RESULT,
AURA_SLOT_MAX
};
enum EAuraGradeType
{
AURA_GRADE_NONE,
AURA_GRADE_ORDINARY,
AURA_GRADE_SIMPLE,
AURA_GRADE_NOBLE,
AURA_GRADE_SPARKLING,
AURA_GRADE_MAGNIFICENT,
AURA_GRADE_RADIANT,
AURA_GRADE_MAX_NUM,
};
enum EAuraRefineInfoType
{
AURA_REFINE_INFO_STEP,
AURA_REFINE_INFO_LEVEL_MIN,
AURA_REFINE_INFO_LEVEL_MAX,
AURA_REFINE_INFO_NEED_EXP,
AURA_REFINE_INFO_MATERIAL_VNUM,
AURA_REFINE_INFO_MATERIAL_COUNT,
AURA_REFINE_INFO_NEED_GOLD,
AURA_REFINE_INFO_EVOLVE_PCT,
AURA_REFINE_INFO_MAX
};
enum ERefineInfoType
{
AURA_REFINE_INFO_SLOT_CURRENT,
AURA_REFINE_INFO_SLOT_NEXT,
AURA_REFINE_INFO_SLOT_EVOLVED,
AURA_REFINE_INFO_SLOT_MAX
};
[HASH=3]#endif[/HASH]
[HASH=3375]#pragma[/HASH] pack(pop)
[HASH=3]#endif[/HASH]
[HASH=2389]#ifndef[/HASH] __INC_METIN_II_LENGTH_H__
[HASH=1]#define[/HASH] __INC_METIN_II_LENGTH_H__
[HASH=2388]#include[/HASH] "CommonDefines.h"
[HASH=1]#define[/HASH] WORD_MAX 0xffff
enum EMisc
{
MAX_HOST_LENGTH = 15,
IP_ADDRESS_LENGTH = 15,
LOGIN_MAX_LEN = 30,
PASSWD_MAX_LEN = 16,
[HASH=2]#ifdef[/HASH] ENABLE_PLAYER_PER_ACCOUNT5
PLAYER_PER_ACCOUNT = 5,
[HASH=2311]#else[/HASH]
PLAYER_PER_ACCOUNT = 4,
[HASH=3]#endif[/HASH]
ACCOUNT_STATUS_MAX_LEN = 8,
CHARACTER_NAME_MAX_LEN = 24,
SHOP_SIGN_MAX_LEN = 32,
INVENTORY_PAGE_COLUMN = 5, // 5 (default)
INVENTORY_PAGE_ROW = 9, // 9 (default)
INVENTORY_PAGE_SIZE = INVENTORY_PAGE_COLUMN * INVENTORY_PAGE_ROW,
[HASH=2]#ifdef[/HASH] ENABLE_EXTEND_INVEN_SYSTEM
INVENTORY_PAGE_COUNT = 4, // 2 (default)
[HASH=2311]#else[/HASH]
INVENTORY_PAGE_COUNT = 2, // 2 (default)
[HASH=3]#endif[/HASH]
INVENTORY_MAX_NUM = INVENTORY_PAGE_SIZE * INVENTORY_PAGE_COUNT, // 90 (default)
ABILITY_MAX_NUM = 50,
EMPIRE_MAX_NUM = 4,
BANWORD_MAX_LEN = 24,
SMS_MAX_LEN = 80,
MOBILE_MAX_LEN = 32,
SOCIAL_ID_MAX_LEN = 18,
GUILD_NAME_MAX_LEN = 12,
SHOP_HOST_ITEM_MAX_NUM = 40,
SHOP_GUEST_ITEM_MAX_NUM = 18,
SHOP_PRICELIST_MAX_NUM = 40,
CHAT_MAX_LEN = 512,
QUICKSLOT_MAX_NUM = 36,
JOURNAL_MAX_NUM = 2,
QUERY_MAX_LEN = 8192,
FILE_MAX_LEN = 128,
PLAYER_EXP_TABLE_MAX = 120,
PLAYER_MAX_LEVEL_CONST = 250,
GUILD_MAX_LEVEL = 20,
MOB_MAX_LEVEL = 100,
ATTRIBUTE_MAX_VALUE = 20,
CHARACTER_PATH_MAX_NUM = 64,
SKILL_MAX_NUM = 255,
SKILLBOOK_DELAY_MIN = 64800,
SKILLBOOK_DELAY_MAX = 108000,
SKILL_MAX_LEVEL = 40,
APPLY_NAME_MAX_LEN = 32,
EVENT_FLAG_NAME_MAX_LEN = 32,
MOB_SKILL_MAX_NUM = 5,
POINT_MAX_NUM = 255,
DRAGON_SOUL_BOX_SIZE = 32,
DRAGON_SOUL_BOX_COLUMN_NUM = 8,
DRAGON_SOUL_BOX_ROW_NUM = DRAGON_SOUL_BOX_SIZE / DRAGON_SOUL_BOX_COLUMN_NUM,
DRAGON_SOUL_REFINE_GRID_SIZE = 15,
MAX_AMOUNT_OF_MALL_BONUS = 20,
WEAR_MAX_NUM = 32,
[HASH=2]#ifdef[/HASH] __ENABLE_NEW_OFFLINESHOP__
OFFLINE_SHOP_NAME_MAX_LEN = 40 + CHARACTER_NAME_MAX_LEN + 1,
OFFLINESHOP_DURATION_MAX_MINUTES = 8 * 24 * 60,
OFFLINESHOP_MAX_SEARCH_RESULT = 250,
OFFLINESHOP_SECONDS_PER_SEARCH = 15,
//*new check about auction offers
OFFLINESHOP_SECONDS_PER_OFFER = 7,
[HASH=2]#ifdef[/HASH] __ENABLE_CHEQUE_SYSTEM__
YANG_PER_CHEQUE = 100000000,
[HASH=3]#endif[/HASH]
[HASH=3]#endif[/HASH]
//LIMIT_GOLD
GOLD_MAX = 2000000000,
MAX_PASSPOD = 8,
//END_LIMIT_GOLD
OPENID_AUTHKEY_LEN = 32,
SHOP_TAB_NAME_MAX = 32,
SHOP_TAB_COUNT_MAX = 3,
BELT_INVENTORY_SLOT_WIDTH = 4,
BELT_INVENTORY_SLOT_HEIGHT = 4,
BELT_INVENTORY_SLOT_COUNT = BELT_INVENTORY_SLOT_WIDTH * BELT_INVENTORY_SLOT_HEIGHT,
[HASH=2]#ifdef[/HASH] ENABLE_SPECIAL_STORAGE
SPECIAL_INVENTORY_PAGE_COUNT = 4,
SPECIAL_INVENTORY_PAGE_SIZE = 45,
SPECIAL_INVENTORY_MAX_NUM = SPECIAL_INVENTORY_PAGE_SIZE * SPECIAL_INVENTORY_PAGE_COUNT,
[HASH=3]#endif[/HASH]
};
enum EMatrixCard
{
MATRIX_CODE_MAX_LEN = 192,
MATRIX_ANSWER_MAX_LEN = 8,
};
enum EWearPositions
{
WEAR_BODY, // 0
WEAR_HEAD, // 1
WEAR_FOOTS, // 2
WEAR_WRIST, // 3
WEAR_WEAPON, // 4
WEAR_NECK, // 5
WEAR_EAR, // 6
WEAR_UNIQUE1, // 7
WEAR_UNIQUE2, // 8
WEAR_ARROW, // 9
WEAR_SHIELD, // 10
WEAR_ABILITY1, // 11
WEAR_ABILITY2, // 12
WEAR_ABILITY3, // 13
WEAR_ABILITY4, // 14
WEAR_ABILITY5, // 15
WEAR_ABILITY6, // 16
WEAR_ABILITY7, // 17
WEAR_ABILITY8, // 18
WEAR_COSTUME_BODY, // 19
WEAR_COSTUME_HAIR, // 20
[HASH=2]#ifdef[/HASH] ENABLE_MOUNT_COSTUME_SYSTEM
WEAR_COSTUME_MOUNT,//21
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_ACCE_SYSTEM
WEAR_COSTUME_ACCE,//22
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_WEAPON_COSTUME_SYSTEM
WEAR_COSTUME_WEAPON,//23
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] __AURA_SYSTEM__
WEAR_COSTUME_AURA,//24
[HASH=3]#endif[/HASH]
WEAR_RING1,//25
WEAR_RING2,//26
WEAR_BELT,//27
[HASH=2]#ifdef[/HASH] ENABLE_PENDANT_SYSTEM
WEAR_PENDANT,//28
[HASH=3]#endif[/HASH]
WEAR_GLOVE, //29
WEAR_MAX = 32 //
};
enum EDragonSoulDeckType
{
DRAGON_SOUL_DECK_0,
DRAGON_SOUL_DECK_1,
DRAGON_SOUL_DECK_MAX_NUM = 2,
DRAGON_SOUL_DECK_RESERVED_MAX_NUM = 3,
};
enum ESex
{
SEX_MALE,
SEX_FEMALE
};
enum EDirection
{
DIR_NORTH,
DIR_NORTHEAST,
DIR_EAST,
DIR_SOUTHEAST,
DIR_SOUTH,
DIR_SOUTHWEST,
DIR_WEST,
DIR_NORTHWEST,
DIR_MAX_NUM
};
[HASH=1]#define[/HASH] ABILITY_MAX_LEVEL 10
enum EAbilityDifficulty
{
DIFFICULTY_EASY,
DIFFICULTY_NORMAL,
DIFFICULTY_HARD,
DIFFICULTY_VERY_HARD,
DIFFICULTY_NUM_TYPES
};
enum EAbilityCategory
{
CATEGORY_PHYSICAL,
CATEGORY_MENTAL,
CATEGORY_ATTRIBUTE,
CATEGORY_NUM_TYPES
};
enum EJobs
{
JOB_WARRIOR,
JOB_ASSASSIN,
JOB_SURA,
JOB_SHAMAN,
[HASH=2]#ifdef[/HASH] ENABLE_WOLFMAN_CHARACTER
JOB_WOLFMAN,
[HASH=3]#endif[/HASH]
JOB_MAX_NUM
};
enum ESkillGroups
{
SKILL_GROUP_MAX_NUM = 2,
};
enum ERaceFlags
{
RACE_FLAG_ANIMAL = (1 << 0),
RACE_FLAG_UNDEAD = (1 << 1),
RACE_FLAG_DEVIL = (1 << 2),
RACE_FLAG_HUMAN = (1 << 3),
RACE_FLAG_ORC = (1 << 4),
RACE_FLAG_MILGYO = (1 << 5),
RACE_FLAG_INSECT = (1 << 6),
RACE_FLAG_FIRE = (1 << 7),
RACE_FLAG_ICE = (1 << 8),
RACE_FLAG_DESERT = (1 << 9),
RACE_FLAG_TREE = (1 << 10),
RACE_FLAG_ATT_ELEC = (1 << 11),
RACE_FLAG_ATT_FIRE = (1 << 12),
RACE_FLAG_ATT_ICE = (1 << 13),
RACE_FLAG_ATT_WIND = (1 << 14),
RACE_FLAG_ATT_EARTH = (1 << 15),
RACE_FLAG_ATT_DARK = (1 << 16),
RACE_FLAG_ATT_CZ = (1 << 17),
};
enum ELoads
{
LOAD_NONE,
LOAD_LIGHT,
LOAD_NORMAL,
LOAD_HEAVY,
LOAD_MASSIVE
};
enum
{
QUICKSLOT_TYPE_NONE,
QUICKSLOT_TYPE_ITEM,
QUICKSLOT_TYPE_SKILL,
QUICKSLOT_TYPE_COMMAND,
QUICKSLOT_TYPE_MAX_NUM,
};
enum EParts
{
PART_MAIN,
PART_WEAPON,
PART_HEAD,
PART_HAIR,
[HASH=2]#ifdef[/HASH] ENABLE_ACCE_SYSTEM
PART_ACCE,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] __AURA_SYSTEM__
PART_AURA,
[HASH=3]#endif[/HASH]
PART_MAX_NUM,
PART_WEAPON_SUB,
};
enum EChatType
{
CHAT_TYPE_TALKING,
CHAT_TYPE_INFO,
CHAT_TYPE_NOTICE,
CHAT_TYPE_PARTY,
CHAT_TYPE_GUILD,
CHAT_TYPE_COMMAND,
CHAT_TYPE_SHOUT,
CHAT_TYPE_WHISPER,
CHAT_TYPE_BIG_NOTICE,
CHAT_TYPE_MONARCH_NOTICE,
[HASH=2]#ifdef[/HASH] ENABLE_DICE_SYSTEM
CHAT_TYPE_DICE_INFO, //11
[HASH=3]#endif[/HASH]
CHAT_TYPE_MAX_NUM
};
enum EWhisperType
{
WHISPER_TYPE_NORMAL = 0,
WHISPER_TYPE_NOT_EXIST = 1,
WHISPER_TYPE_TARGET_BLOCKED = 2,
WHISPER_TYPE_SENDER_BLOCKED = 3,
WHISPER_TYPE_ERROR = 4,
WHISPER_TYPE_GM = 5,
WHISPER_TYPE_SYSTEM = 0xFF
};
enum ECharacterPosition
{
POSITION_GENERAL,
POSITION_BATTLE,
POSITION_DYING,
POSITION_SITTING_CHAIR,
POSITION_SITTING_GROUND,
POSITION_INTRO,
POSITION_MAX_NUM
};
enum EGMLevels
{
GM_PLAYER,
GM_LOW_WIZARD,
GM_WIZARD,
GM_HIGH_WIZARD,
GM_GOD,
GM_IMPLEMENTOR,
GM_DISABLE,
};
enum EMobRank
{
MOB_RANK_PAWN,
MOB_RANK_S_PAWN,
MOB_RANK_KNIGHT,
MOB_RANK_S_KNIGHT,
MOB_RANK_BOSS,
MOB_RANK_KING,
MOB_RANK_MAX_NUM
};
enum ECharType
{
CHAR_TYPE_MONSTER,
CHAR_TYPE_NPC,
CHAR_TYPE_STONE,
CHAR_TYPE_WARP,
CHAR_TYPE_DOOR,
CHAR_TYPE_BUILDING,
CHAR_TYPE_PC,
CHAR_TYPE_POLYMORPH_PC,
CHAR_TYPE_HORSE,
CHAR_TYPE_GOTO
};
enum EBattleType
{
BATTLE_TYPE_MELEE,
BATTLE_TYPE_RANGE,
BATTLE_TYPE_MAGIC,
BATTLE_TYPE_SPECIAL,
BATTLE_TYPE_POWER,
BATTLE_TYPE_TANKER,
BATTLE_TYPE_SUPER_POWER,
BATTLE_TYPE_SUPER_TANKER,
BATTLE_TYPE_MAX_NUM
};
enum EApplyTypes
{
APPLY_NONE, // 0
APPLY_MAX_HP, // 1
APPLY_MAX_SP, // 2
APPLY_CON, // 3
APPLY_INT, // 4
APPLY_STR, // 5
APPLY_DEX, // 6
APPLY_ATT_SPEED, // 7
APPLY_MOV_SPEED, // 8
APPLY_CAST_SPEED, // 9
APPLY_HP_REGEN, // 10
APPLY_SP_REGEN, // 11
APPLY_POISON_PCT, // 12
APPLY_STUN_PCT, // 13
APPLY_SLOW_PCT, // 14
APPLY_CRITICAL_PCT, // 15
APPLY_PENETRATE_PCT, // 16
APPLY_ATTBONUS_HUMAN, // 17
APPLY_ATTBONUS_ANIMAL, // 18
APPLY_ATTBONUS_ORC, // 19
APPLY_ATTBONUS_MILGYO, // 20
APPLY_ATTBONUS_UNDEAD, // 21
APPLY_ATTBONUS_DEVIL, // 22
APPLY_STEAL_HP, // 23
APPLY_STEAL_SP, // 24
APPLY_MANA_BURN_PCT, // 25
APPLY_DAMAGE_SP_RECOVER, // 26
APPLY_BLOCK, // 27
APPLY_DODGE, // 28
APPLY_RESIST_SWORD, // 29
APPLY_RESIST_TWOHAND, // 30
APPLY_RESIST_DAGGER, // 31
APPLY_RESIST_BELL, // 32
APPLY_RESIST_FAN, // 33
APPLY_RESIST_BOW, // 34
APPLY_RESIST_FIRE, // 35
APPLY_RESIST_ELEC, // 36
APPLY_RESIST_MAGIC, // 37
APPLY_RESIST_WIND, // 38
APPLY_REFLECT_MELEE, // 39
APPLY_REFLECT_CURSE, // 40
APPLY_POISON_REDUCE, // 41
APPLY_KILL_SP_RECOVER, // 42
APPLY_EXP_DOUBLE_BONUS, // 43
APPLY_GOLD_DOUBLE_BONUS, // 44
APPLY_ITEM_DROP_BONUS, // 45
APPLY_POTION_BONUS, // 46
APPLY_KILL_HP_RECOVER, // 47
APPLY_IMMUNE_STUN, // 48
APPLY_IMMUNE_SLOW, // 49
APPLY_IMMUNE_FALL, // 50
APPLY_SKILL, // 51
APPLY_BOW_DISTANCE, // 52
APPLY_ATT_GRADE_BONUS, // 53
APPLY_DEF_GRADE_BONUS, // 54
APPLY_MAGIC_ATT_GRADE, // 55
APPLY_MAGIC_DEF_GRADE, // 56
APPLY_CURSE_PCT, // 57
APPLY_MAX_STAMINA, // 58
APPLY_ATTBONUS_WARRIOR, // 59
APPLY_ATTBONUS_ASSASSIN, // 60
APPLY_ATTBONUS_SURA, // 61
APPLY_ATTBONUS_SHAMAN, // 62
APPLY_ATTBONUS_MONSTER, // 63
APPLY_MALL_ATTBONUS,
APPLY_MALL_DEFBONUS,
APPLY_MALL_EXPBONUS,
APPLY_MALL_ITEMBONUS,
APPLY_MALL_GOLDBONUS,
APPLY_MAX_HP_PCT,
APPLY_MAX_SP_PCT,
APPLY_SKILL_DAMAGE_BONUS,
APPLY_NORMAL_HIT_DAMAGE_BONUS,
APPLY_SKILL_DEFEND_BONUS,
APPLY_NORMAL_HIT_DEFEND_BONUS,
APPLY_PC_BANG_EXP_BONUS,
APPLY_PC_BANG_DROP_BONUS,
APPLY_EXTRACT_HP_PCT,
APPLY_RESIST_WARRIOR,
APPLY_RESIST_ASSASSIN,
APPLY_RESIST_SURA,
APPLY_RESIST_SHAMAN,
APPLY_ENERGY,
APPLY_DEF_GRADE,
APPLY_COSTUME_ATTR_BONUS,
APPLY_MAGIC_ATTBONUS_PER,
APPLY_MELEE_MAGIC_ATTBONUS_PER,
APPLY_RESIST_ICE,
APPLY_RESIST_EARTH,
APPLY_RESIST_DARK,
APPLY_ANTI_CRITICAL_PCT,
APPLY_ANTI_PENETRATE_PCT,
[HASH=2]#ifdef[/HASH] ENABLE_WOLFMAN_CHARACTER
APPLY_BLEEDING_REDUCE,
APPLY_BLEEDING_PCT,
APPLY_ATTBONUS_WOLFMAN,
APPLY_RESIST_WOLFMAN,
APPLY_RESIST_CLAW,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_ACCE_SYSTEM
APPLY_ACCEDRAIN_RATE,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_MAGIC_REDUCTION_SYSTEM
APPLY_RESIST_MAGIC_REDUCTION, //98
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_PENDANT_SYSTEM
APPLY_MOUNT,
APPLY_ENCHANT_FIRE,
APPLY_ENCHANT_ICE,
APPLY_ENCHANT_EARTH,
APPLY_ENCHANT_DARK,
APPLY_ENCHANT_WIND,
APPLY_ENCHANT_ELECT,
APPLY_RESIST_HUMAN,
APPLY_ATTBONUS_SWORD,
APPLY_ATTBONUS_TWOHAND,
APPLY_ATTBONUS_DAGGER,
APPLY_ATTBONUS_BELL,
APPLY_ATTBONUS_FAN,
APPLY_ATTBONUS_BOW,
[HASH=2]#ifdef[/HASH] ENABLE_WOLFMAN_CHARACTER
APPLY_ATTBONUS_CLAW,
[HASH=3]#endif[/HASH]
APPLY_ATTBONUS_CZ,
APPLY_ATTBONUS_DESERT,
APPLY_ATTBONUS_INSECT,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_EXTRA_APPLY_BONUS
APPLY_ATTBONUS_STONE,
APPLY_ATTBONUS_BOSS,
APPLY_ATTBONUS_ELEMENTS,
APPLY_ENCHANT_ELEMENTS,
APPLY_ATTBONUS_CHARACTERS,
APPLY_ENCHANT_CHARACTERS,
APPLY_ATTBONUS_RAZADOR,
APPLY_ATTBONUS_NEMERE,
APPLY_ATTBONUS_LUCIFER,
APPLY_ATTBONUS_BLUE_DRAGON,
APPLY_ATTBONUS_RED_DRAGON,
APPLY_ATTBONUS_AZRAEL,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_GLOVE_SYSTEM
APPLY_RANDOM,
[HASH=3]#endif[/HASH]
MAX_APPLY_NUM = 130,
};
enum EOnClickEvents
{
ON_CLICK_NONE,
ON_CLICK_SHOP,
ON_CLICK_TALK,
ON_CLICK_MAX_NUM
};
enum EOnIdleEvents
{
ON_IDLE_NONE,
ON_IDLE_GENERAL,
ON_IDLE_MAX_NUM
};
enum EWindows
{
RESERVED_WINDOW,
INVENTORY,
EQUIPMENT,
SAFEBOX,
MALL,
DRAGON_SOUL_INVENTORY,
[HASH=2]#ifdef[/HASH] ENABLE_SPECIAL_STORAGE
UPGRADE_INVENTORY,
BOOK_INVENTORY,
STONE_INVENTORY,
CHEST_INVENTORY,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] __AURA_SYSTEM__
AURA_REFINE,
[HASH=3]#endif[/HASH]
BELT_INVENTORY,
GROUND,
[HASH=2]#ifdef[/HASH] __ENABLE_NEW_OFFLINESHOP__
NEW_OFFSHOP,
SHOP_SAFEBOX,
[HASH=3]#endif[/HASH]
};
enum EMobSizes
{
MOBSIZE_RESERVED,
MOBSIZE_SMALL,
MOBSIZE_MEDIUM,
MOBSIZE_BIG
};
enum EAIFlags
{
AIFLAG_AGGRESSIVE = (1 << 0),
AIFLAG_NOMOVE = (1 << 1),
AIFLAG_COWARD = (1 << 2),
AIFLAG_NOATTACKSHINSU = (1 << 3),
AIFLAG_NOATTACKJINNO = (1 << 4),
AIFLAG_NOATTACKCHUNJO = (1 << 5),
AIFLAG_ATTACKMOB = (1 << 6),
AIFLAG_BERSERK = (1 << 7),
AIFLAG_STONESKIN = (1 << 8),
AIFLAG_GODSPEED = (1 << 9),
AIFLAG_DEATHBLOW = (1 << 10),
AIFLAG_REVIVE = (1 << 11),
};
enum EMobStatType
{
MOB_STATTYPE_POWER,
MOB_STATTYPE_TANKER,
MOB_STATTYPE_SUPER_POWER,
MOB_STATTYPE_SUPER_TANKER,
MOB_STATTYPE_RANGE,
MOB_STATTYPE_MAGIC,
MOB_STATTYPE_MAX_NUM
};
enum EImmuneFlags
{
IMMUNE_STUN = (1 << 0),
IMMUNE_SLOW = (1 << 1),
IMMUNE_FALL = (1 << 2),
IMMUNE_CURSE = (1 << 3),
IMMUNE_POISON = (1 << 4),
IMMUNE_TERROR = (1 << 5),
IMMUNE_REFLECT = (1 << 6),
};
enum EMobEnchants
{
MOB_ENCHANT_CURSE,
MOB_ENCHANT_SLOW,
MOB_ENCHANT_POISON,
MOB_ENCHANT_STUN,
MOB_ENCHANT_CRITICAL,
MOB_ENCHANT_PENETRATE,
#if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_BLEEDING_AS_POISON)
MOB_ENCHANT_BLEEDING,
[HASH=3]#endif[/HASH]
MOB_ENCHANTS_MAX_NUM
};
enum EMobResists
{
MOB_RESIST_SWORD,
MOB_RESIST_TWOHAND,
MOB_RESIST_DAGGER,
MOB_RESIST_BELL,
MOB_RESIST_FAN,
MOB_RESIST_BOW,
MOB_RESIST_FIRE,
MOB_RESIST_ELECT,
MOB_RESIST_MAGIC,
MOB_RESIST_WIND,
MOB_RESIST_POISON,
#if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_CLAW_AS_DAGGER)
MOB_RESIST_CLAW,
[HASH=3]#endif[/HASH]
#if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_BLEEDING_AS_POISON)
MOB_RESIST_BLEEDING,
[HASH=3]#endif[/HASH]
MOB_RESISTS_MAX_NUM
};
enum
{
SKILL_ATTR_TYPE_NORMAL = 1,
SKILL_ATTR_TYPE_MELEE,
SKILL_ATTR_TYPE_RANGE,
SKILL_ATTR_TYPE_MAGIC
/*
SKILL_ATTR_TYPE_FIRE,
SKILL_ATTR_TYPE_ICE,
SKILL_ATTR_TYPE_ELEC,
SKILL_ATTR_TYPE_DARK,
*/
};
enum
{
SKILL_NORMAL,
SKILL_MASTER,
SKILL_GRAND_MASTER,
SKILL_PERFECT_MASTER,
};
enum EGuildWarType
{
GUILD_WAR_TYPE_FIELD,
GUILD_WAR_TYPE_BATTLE,
GUILD_WAR_TYPE_FLAG,
GUILD_WAR_TYPE_MAX_NUM
};
enum EGuildWarState
{
GUILD_WAR_NONE,
GUILD_WAR_SEND_DECLARE,
GUILD_WAR_REFUSE,
GUILD_WAR_RECV_DECLARE,
GUILD_WAR_WAIT_START,
GUILD_WAR_CANCEL,
GUILD_WAR_ON_WAR,
GUILD_WAR_END,
GUILD_WAR_OVER,
GUILD_WAR_RESERVE,
GUILD_WAR_DURATION = 30 * 60,
GUILD_WAR_WIN_POINT = 1000,
GUILD_WAR_LADDER_HALF_PENALTY_TIME = 12 * 60 * 60,
};
enum EAttributeSet
{
ATTRIBUTE_SET_WEAPON,
ATTRIBUTE_SET_BODY,
ATTRIBUTE_SET_WRIST,
ATTRIBUTE_SET_FOOTS,
ATTRIBUTE_SET_NECK,
ATTRIBUTE_SET_HEAD,
ATTRIBUTE_SET_SHIELD,
ATTRIBUTE_SET_EAR,
[HASH=2]#ifdef[/HASH] ENABLE_ITEM_ATTR_COSTUME
ATTRIBUTE_SET_COSTUME_BODY,
ATTRIBUTE_SET_COSTUME_HAIR,
#if defined(ENABLE_ITEM_ATTR_COSTUME) && defined(ENABLE_WEAPON_COSTUME_SYSTEM)
ATTRIBUTE_SET_COSTUME_WEAPON,
[HASH=3]#endif[/HASH]
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_PENDANT_SYSTEM
ATTRIBUTE_SET_PENDANT,
[HASH=3]#endif[/HASH]
ATTRIBUTE_SET_MAX_NUM
};
enum EPrivType
{
PRIV_NONE,
PRIV_ITEM_DROP,
PRIV_GOLD_DROP,
PRIV_GOLD10_DROP,
PRIV_EXP_PCT,
MAX_PRIV_NUM,
};
enum EMoneyLogType
{
MONEY_LOG_RESERVED,
MONEY_LOG_MONSTER,
MONEY_LOG_SHOP,
MONEY_LOG_REFINE,
MONEY_LOG_QUEST,
MONEY_LOG_GUILD,
MONEY_LOG_MISC,
MONEY_LOG_MONSTER_KILL,
MONEY_LOG_DROP,
MONEY_LOG_TYPE_MAX_NUM,
};
enum EPremiumTypes
{
PREMIUM_EXP,
PREMIUM_ITEM,
PREMIUM_SAFEBOX,
PREMIUM_AUTOLOOT,
PREMIUM_FISH_MIND,
PREMIUM_MARRIAGE_FAST,
PREMIUM_GOLD,
PREMIUM_MAX_NUM = 9
};
enum SPECIAL_EFFECT
{
SE_NONE,
SE_HPUP_RED,
SE_SPUP_BLUE,
SE_SPEEDUP_GREEN,
SE_DXUP_PURPLE,
SE_CRITICAL,
SE_PENETRATE,
SE_BLOCK,
SE_DODGE,
SE_CHINA_FIREWORK,
SE_SPIN_TOP,
SE_SUCCESS,
SE_FAIL,
SE_FR_SUCCESS,
SE_LEVELUP_ON_14_FOR_GERMANY,
SE_LEVELUP_UNDER_15_FOR_GERMANY,
SE_PERCENT_DAMAGE1,
SE_PERCENT_DAMAGE2,
SE_PERCENT_DAMAGE3,
SE_AUTO_HPUP,
SE_AUTO_SPUP,
SE_EQUIP_RAMADAN_RING,
SE_EQUIP_HALLOWEEN_CANDY,
SE_EQUIP_HAPPINESS_RING,
SE_EQUIP_LOVE_PENDANT,
[HASH=2]#ifdef[/HASH] ENABLE_ACCE_SYSTEM
SE_EFFECT_ACCE_SUCCEDED,
SE_EFFECT_ACCE_EQUIP,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_AGGREGATE_MONSTER_EFFECT
SE_AGGREGATE_MONSTER_EFFECT,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_UPGRADE_EFFECT
SE_UPSUCCESS,
SE_UPFAILED,
[HASH=3]#endif[/HASH]
[HASH=2]#ifdef[/HASH] ENABLE_DUEL_EFFECT
SE_PVP_WIN,
SE_PVP_OPEN1,
SE_PVP_OPEN2,
SE_PVP_BEGIN1,
SE_PVP_BEGIN2,
[HASH=3]#endif[/HASH]
};
enum ETeenFlags
{
TEENFLAG_NONE = 0,
TEENFLAG_1HOUR,
TEENFLAG_2HOUR,
TEENFLAG_3HOUR,
TEENFLAG_4HOUR,
TEENFLAG_5HOUR,
};
[HASH=2388]#include[/HASH] "item_length.h"
enum EDragonSoulRefineWindowSize
{
DRAGON_SOUL_REFINE_GRID_MAX = 15,
};
enum EMisc2
{
DRAGON_SOUL_EQUIP_SLOT_START = INVENTORY_MAX_NUM + WEAR_MAX_NUM,
DRAGON_SOUL_EQUIP_SLOT_END = DRAGON_SOUL_EQUIP_SLOT_START + (DS_SLOT_MAX * DRAGON_SOUL_DECK_MAX_NUM),
DRAGON_SOUL_EQUIP_RESERVED_SLOT_END = DRAGON_SOUL_EQUIP_SLOT_END + (DS_SLOT_MAX * DRAGON_SOUL_DECK_RESERVED_MAX_NUM),
BELT_INVENTORY_SLOT_START = DRAGON_SOUL_EQUIP_RESERVED_SLOT_END,
BELT_INVENTORY_SLOT_END = BELT_INVENTORY_SLOT_START + BELT_INVENTORY_SLOT_COUNT,
INVENTORY_AND_EQUIP_SLOT_MAX = BELT_INVENTORY_SLOT_END,
};
[HASH=3375]#pragma[/HASH] pack(push, 1)
typedef struct SItemPos
{
BYTE window_type;
WORD cell;
SItemPos()
{
window_type = INVENTORY;
cell = WORD_MAX;
}
SItemPos(BYTE _window_type, WORD _cell)
{
window_type = _window_type;
cell = _cell;
}
bool IsValidItemPosition() const
{
switch (window_type)
{
case RESERVED_WINDOW:
return false;
case INVENTORY:
case EQUIPMENT:
case BELT_INVENTORY:
return cell < INVENTORY_AND_EQUIP_SLOT_MAX;
case DRAGON_SOUL_INVENTORY:
return cell < (DRAGON_SOUL_INVENTORY_MAX_NUM);
[HASH=2]#ifdef[/HASH] ENABLE_SPECIAL_STORAGE
case UPGRADE_INVENTORY:
case BOOK_INVENTORY:
case STONE_INVENTORY:
case CHEST_INVENTORY:
return cell < (SPECIAL_INVENTORY_MAX_NUM);
[HASH=3]#endif[/HASH]
case SAFEBOX:
case MALL:
return false;
default:
return false;
}
return false;
}
bool IsEquipPosition() const
{
return ((INVENTORY == window_type || EQUIPMENT == window_type) && cell >= INVENTORY_MAX_NUM && cell < INVENTORY_MAX_NUM + WEAR_MAX_NUM)
|| IsDragonSoulEquipPosition();
}
bool IsDragonSoulEquipPosition() const
{
return (window_type == INVENTORY) && (DRAGON_SOUL_EQUIP_SLOT_START <= cell) && (DRAGON_SOUL_EQUIP_SLOT_END > cell);
}
bool IsBeltInventoryPosition() const
{
return (BELT_INVENTORY_SLOT_START <= cell) && (BELT_INVENTORY_SLOT_END > cell);
}
bool IsDefaultInventoryPosition() const
{
return INVENTORY == window_type && cell < INVENTORY_MAX_NUM;
}
bool operator==(const struct SItemPos& rhs) const
{
return (window_type == rhs.window_type) && (cell == rhs.cell);
}
bool operator<(const struct SItemPos& rhs) const
{
return (window_type < rhs.window_type) || ((window_type == rhs.window_type) && (cell < rhs.cell));
}
bool operator!=(const struct SItemPos& rhs) const
{
return (window_type != rhs.window_type) || (cell != rhs.cell);
}
} TItemPos;
const TItemPos NPOS(RESERVED_WINDOW, WORD_MAX);
typedef struct SItemPosEx
{
TItemPos pos;
int id{ 0 };
} TItemPosEx;
typedef enum
{
SHOP_COIN_TYPE_GOLD, // DEFAULT VALUE
SHOP_COIN_TYPE_SECONDARY_COIN,
} EShopCoinType;
[HASH=2]#ifdef[/HASH] __AURA_SYSTEM__
typedef struct SAuraRefineInfo
{
BYTE bAuraRefineInfoLevel;
BYTE bAuraRefineInfoExpPercent;
} TAuraRefineInfo;
enum EAuraMisc
{
AURA_MAX_LEVEL = 250,
AURA_REFINE_MAX_DISTANCE = 1000,
};
enum EAuraWindowType
{
AURA_WINDOW_TYPE_ABSORB,
AURA_WINDOW_TYPE_GROWTH,
AURA_WINDOW_TYPE_EVOLVE,
AURA_WINDOW_TYPE_MAX,
};
enum EAuraSlotType
{
AURA_SLOT_MAIN,
AURA_SLOT_SUB,
AURA_SLOT_RESULT,
AURA_SLOT_MAX
};
enum EAuraGradeType
{
AURA_GRADE_NONE,
AURA_GRADE_ORDINARY,
AURA_GRADE_SIMPLE,
AURA_GRADE_NOBLE,
AURA_GRADE_SPARKLING,
AURA_GRADE_MAGNIFICENT,
AURA_GRADE_RADIANT,
AURA_GRADE_MAX_NUM,
};
enum EAuraRefineInfoType
{
AURA_REFINE_INFO_STEP,
AURA_REFINE_INFO_LEVEL_MIN,
AURA_REFINE_INFO_LEVEL_MAX,
AURA_REFINE_INFO_NEED_EXP,
AURA_REFINE_INFO_MATERIAL_VNUM,
AURA_REFINE_INFO_MATERIAL_COUNT,
AURA_REFINE_INFO_NEED_GOLD,
AURA_REFINE_INFO_EVOLVE_PCT,
AURA_REFINE_INFO_MAX
};
enum ERefineInfoType
{
AURA_REFINE_INFO_SLOT_CURRENT,
AURA_REFINE_INFO_SLOT_NEXT,
AURA_REFINE_INFO_SLOT_EVOLVED,
AURA_REFINE_INFO_SLOT_MAX
};
[HASH=3]#endif[/HASH]
[HASH=3375]#pragma[/HASH] pack(pop)
[HASH=3]#endif[/HASH]