Yardım Metin ve Patron Efsun kodu proto

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

aznp

Üye
Üye
Mesaj
62
Çözümler
1
Beğeni
7
Puan
84
Ticaret Puanı
0
selamlar arkadaşlar oyunumda Metinlere karşı güç ve Patronlara karşı güç efsunu var ancak bunu bir kostüme vermek istiyorum bunun kodlarını bulamıyorum araştırdım ama nasıl vericeğim bir iteme ?
Screenshot_2.png
 
common/length.h dosyasını aç ve şu bloğu bul;
Bunun içinde vardır muhtemelen.
C++:
enum EApplyTypes
{
    APPLY_NONE,
    APPLY_MAX_HP,
    APPLY_MAX_SP,
    APPLY_CON,
    APPLY_INT,
    APPLY_STR,
    ....
    ...
    ...
}

C++:
APPLY_ATTBONUS_SEFI,
APPLY_ATTBONUS_METINE,
Adında olabilirler, artık hangi isimle eklendilerse onu sen kendin bulursun.

Koduna gelince de; APPLY_NONE, satırından başlayarak (0 dan başlayacaksın) metin efsununa gelene kadar say.
Kaçıncı sıradaysa kodu odur.
 
common/length.h dosyasını aç ve şu bloğu bul;
Bunun içinde vardır muhtemelen.
C++:
enum EApplyTypes
{
    APPLY_NONE,
    APPLY_MAX_HP,
    APPLY_MAX_SP,
    APPLY_CON,
    APPLY_INT,
    APPLY_STR,
    ....
    ...
    ...
}

C++:
APPLY_ATTBONUS_SEFI,
APPLY_ATTBONUS_METINE,
Adında olabilirler, artık hangi isimle eklendilerse onu sen kendin bulursun.

Koduna gelince de; APPLY_NONE, satırından başlayarak (0 dan başlayacaksın) metin efsununa gelene kadar say.
Kaçıncı sıradaysa kodu odur.
C++:
#ifndef __INC_METIN_II_LENGTH_H__
#define __INC_METIN_II_LENGTH_H__

#include "CommonDefines.h"

#define WORD_MAX 0xffff
enum EMisc
{
    MAX_HOST_LENGTH = 15,
    IP_ADDRESS_LENGTH = 15,
    LOGIN_MAX_LEN = 30,
    PASSWD_MAX_LEN = 16,
#ifdef ENABLE_PLAYER_PER_ACCOUNT5
    PLAYER_PER_ACCOUNT = 5,
#else
    PLAYER_PER_ACCOUNT = 4,
#endif
    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,
#ifdef ENABLE_EXTEND_INVEN_SYSTEM
    INVENTORY_PAGE_COUNT = 4, // 2 (default)
#else
    INVENTORY_PAGE_COUNT = 2, // 2 (default)
#endif
    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,


#ifdef __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,
#ifdef __ENABLE_CHEQUE_SYSTEM__
    YANG_PER_CHEQUE = 100000000,
#endif
#endif

    //LIMIT_GOLD
    GOLD_MAX = 1000000000000001LL,

    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,

#ifdef 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,
#endif

#ifdef __TITLE_SYSTEM__
    TITLE_MAX_LEN = 200,
#endif

};

#ifdef ENABLE_SWITCHBOT
enum SwitchbotValues
{
    SWITCHBOT_SLOT_COUNT = 5,
    SWITCHBOT_ALTERNATIVE_COUNT = 2,
    //1 = Switching Item
    //2 = Yang
    SWITCHBOT_PRICE_TYPE = 1,
    //Amount Swtichting Items the Yang-Price
    SWITCHBOT_PRICE_AMOUNT = 1,
};

const DWORD c_arSwitchingItems[3] =
{
    39028,
    71084,
    76014,
};
#endif

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

#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
    WEAR_COSTUME_MOUNT,//21
#endif
#ifdef ENABLE_ACCE_SYSTEM
    WEAR_COSTUME_ACCE,//22
#endif
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM
    WEAR_COSTUME_WEAPON,//23
#endif
#ifdef __AURA_SYSTEM__
    WEAR_COSTUME_AURA,//24
#endif
#ifdef __PET_SYSTEM__
    WEAR_COSTUME_PET,
#endif
#ifdef SOCKET_SLOTS
    WEAR_SOCKET1,
    WEAR_SOCKET2,
    WEAR_SOCKET3,
    WEAR_SOCKET4,
    WEAR_SOCKET5,
    WEAR_SOCKET6,
    WEAR_SOCKET7,
    WEAR_SOCKET8,
    WEAR_SOCKET9,
    WEAR_SOCKET10,
    WEAR_SOCKET11,
    WEAR_SOCKET12,
    WEAR_SOCKET13,
    WEAR_SOCKET14,
    WEAR_SOCKET15,
    WEAR_SOCKET16,
    WEAR_SOCKET17,
    WEAR_SOCKET18,
    WEAR_SOCKET19,
    WEAR_SOCKET20,
    WEAR_SOCKET21,
    WEAR_SOCKET22,
    WEAR_SOCKET23,
    WEAR_SOCKET24,
    WEAR_SOCKET25,
#endif
    WEAR_RING1,//25
    WEAR_RING2,//26
    WEAR_BELT,//27
#ifdef ENABLE_PENDANT_SYSTEM
    WEAR_PENDANT,//28
#endif
    WEAR_MAX_NUM,
};

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
};

#define 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,
#ifdef ENABLE_WOLFMAN_CHARACTER
    JOB_WOLFMAN,
#endif
    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,
};

#ifdef __TITLE_SYSTEM__
enum ETitles
{
    TITLE_0,    // 0 = default
    TITLE_1,
    TITLE_2,
    TITLE_3,
    TITLE_4,
    TITLE_5,
    TITLE_6,
    TITLE_7,
    TITLE_8,
    TITLE_9,
    TITLE_10,
    TITLE_11,
    TITLE_12,
    TITLE_13,
    TITLE_14,
    TITLE_15,
    TITLE_16,
    TITLE_17,
    TITLE_18,
    TITLE_19,
    TITLE_20,
    TITLES_MAX_NUM
};
#endif

enum EParts
{
    PART_MAIN,
    PART_WEAPON,
    PART_HEAD,
    PART_HAIR,
#ifdef ENABLE_ACCE_SYSTEM
    PART_ACCE,
#endif
#ifdef __AURA_SYSTEM__
    PART_AURA,
#endif
    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,
#ifdef ENABLE_DICE_SYSTEM
    CHAT_TYPE_DICE_INFO, //11
#endif
    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,

#ifdef ENABLE_WOLFMAN_CHARACTER
    APPLY_BLEEDING_REDUCE,
    APPLY_BLEEDING_PCT,
    APPLY_ATTBONUS_WOLFMAN,
    APPLY_RESIST_WOLFMAN,
    APPLY_RESIST_CLAW,
#endif

#ifdef ENABLE_ACCE_SYSTEM
    APPLY_ACCEDRAIN_RATE,
#endif

#ifdef ENABLE_MAGIC_REDUCTION_SYSTEM
    APPLY_RESIST_MAGIC_REDUCTION,    //98
#endif
#ifdef 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,
#ifdef ENABLE_WOLFMAN_CHARACTER
        APPLY_ATTBONUS_CLAW,
#endif
        APPLY_ATTBONUS_CZ,
        APPLY_ATTBONUS_DESERT,
        APPLY_ATTBONUS_INSECT,
#endif
#ifdef 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,
#endif
    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,
#ifdef ENABLE_SPECIAL_STORAGE
    UPGRADE_INVENTORY,
    BOOK_INVENTORY,
    STONE_INVENTORY,
    CHEST_INVENTORY,
#endif
#ifdef __AURA_SYSTEM__
    AURA_REFINE,
#endif
#ifdef ENABLE_SWITCHBOT
    SWITCHBOT,
#endif
    BELT_INVENTORY,
    GROUND,
#ifdef __ENABLE_NEW_OFFLINESHOP__
    NEW_OFFSHOP,
    SHOP_SAFEBOX,
#endif
};

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,
#endif
    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,
#endif
#if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_BLEEDING_AS_POISON)
    MOB_RESIST_BLEEDING,
#endif
    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,
#ifdef 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,
#endif
#endif
#ifdef ENABLE_PENDANT_SYSTEM
    ATTRIBUTE_SET_PENDANT,
#endif
    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,

#ifdef ENABLE_ACCE_SYSTEM
    SE_EFFECT_ACCE_SUCCEDED,
    SE_EFFECT_ACCE_EQUIP,
#endif
#ifdef ENABLE_AGGREGATE_MONSTER_EFFECT
    SE_AGGREGATE_MONSTER_EFFECT,
#endif
#ifdef ENABLE_UPGRADE_EFFECT
    SE_UPSUCCESS,
    SE_UPFAILED,
#endif
#ifdef ENABLE_DUEL_EFFECT
    SE_PVP_WIN,
    SE_PVP_OPEN1,
    SE_PVP_OPEN2,
    SE_PVP_BEGIN1,
    SE_PVP_BEGIN2,
#endif
};

enum ETeenFlags
{
    TEENFLAG_NONE = 0,
    TEENFLAG_1HOUR,
    TEENFLAG_2HOUR,
    TEENFLAG_3HOUR,
    TEENFLAG_4HOUR,
    TEENFLAG_5HOUR,
};

#include "item_length.h"






enum EDragonSoulRefineWindowSize
{
    DRAGON_SOUL_REFINE_GRID_MAX = 15,
};

enum EMisc2
{
    DRAGON_SOUL_EQUIP_SLOT_START = EMisc::INVENTORY_MAX_NUM + EWearPositions::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,
};

#pragma 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);
#ifdef ENABLE_SPECIAL_STORAGE
        case UPGRADE_INVENTORY:
        case BOOK_INVENTORY:
        case STONE_INVENTORY:
        case CHEST_INVENTORY:
            return cell < (SPECIAL_INVENTORY_MAX_NUM);
#endif
#ifdef ENABLE_SWITCHBOT
            case SWITCHBOT:
                return cell < SWITCHBOT_SLOT_COUNT;
#endif
        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);
    }
#ifdef ENABLE_SWITCHBOT
    bool IsSwitchbotPosition() const
    {
        return SWITCHBOT == window_type && cell < SWITCHBOT_SLOT_COUNT;
    }
#endif
    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;


#ifdef __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
};
#endif

#pragma pack(pop)

#endif

direk atım size acaba hangisi ?
 
C++:
#ifndef __INC_METIN_II_LENGTH_H__
#define __INC_METIN_II_LENGTH_H__

#include "CommonDefines.h"

#define WORD_MAX 0xffff
enum EMisc
{
    MAX_HOST_LENGTH = 15,
    IP_ADDRESS_LENGTH = 15,
    LOGIN_MAX_LEN = 30,
    PASSWD_MAX_LEN = 16,
#ifdef ENABLE_PLAYER_PER_ACCOUNT5
    PLAYER_PER_ACCOUNT = 5,
#else
    PLAYER_PER_ACCOUNT = 4,
#endif
    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,
#ifdef ENABLE_EXTEND_INVEN_SYSTEM
    INVENTORY_PAGE_COUNT = 4, // 2 (default)
#else
    INVENTORY_PAGE_COUNT = 2, // 2 (default)
#endif
    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,


#ifdef __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,
#ifdef __ENABLE_CHEQUE_SYSTEM__
    YANG_PER_CHEQUE = 100000000,
#endif
#endif

    //LIMIT_GOLD
    GOLD_MAX = 1000000000000001LL,

    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,

#ifdef 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,
#endif

#ifdef __TITLE_SYSTEM__
    TITLE_MAX_LEN = 200,
#endif

};

#ifdef ENABLE_SWITCHBOT
enum SwitchbotValues
{
    SWITCHBOT_SLOT_COUNT = 5,
    SWITCHBOT_ALTERNATIVE_COUNT = 2,
    //1 = Switching Item
    //2 = Yang
    SWITCHBOT_PRICE_TYPE = 1,
    //Amount Swtichting Items the Yang-Price
    SWITCHBOT_PRICE_AMOUNT = 1,
};

const DWORD c_arSwitchingItems[3] =
{
    39028,
    71084,
    76014,
};
#endif

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

#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
    WEAR_COSTUME_MOUNT,//21
#endif
#ifdef ENABLE_ACCE_SYSTEM
    WEAR_COSTUME_ACCE,//22
#endif
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM
    WEAR_COSTUME_WEAPON,//23
#endif
#ifdef __AURA_SYSTEM__
    WEAR_COSTUME_AURA,//24
#endif
#ifdef __PET_SYSTEM__
    WEAR_COSTUME_PET,
#endif
#ifdef SOCKET_SLOTS
    WEAR_SOCKET1,
    WEAR_SOCKET2,
    WEAR_SOCKET3,
    WEAR_SOCKET4,
    WEAR_SOCKET5,
    WEAR_SOCKET6,
    WEAR_SOCKET7,
    WEAR_SOCKET8,
    WEAR_SOCKET9,
    WEAR_SOCKET10,
    WEAR_SOCKET11,
    WEAR_SOCKET12,
    WEAR_SOCKET13,
    WEAR_SOCKET14,
    WEAR_SOCKET15,
    WEAR_SOCKET16,
    WEAR_SOCKET17,
    WEAR_SOCKET18,
    WEAR_SOCKET19,
    WEAR_SOCKET20,
    WEAR_SOCKET21,
    WEAR_SOCKET22,
    WEAR_SOCKET23,
    WEAR_SOCKET24,
    WEAR_SOCKET25,
#endif
    WEAR_RING1,//25
    WEAR_RING2,//26
    WEAR_BELT,//27
#ifdef ENABLE_PENDANT_SYSTEM
    WEAR_PENDANT,//28
#endif
    WEAR_MAX_NUM,
};

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
};

#define 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,
#ifdef ENABLE_WOLFMAN_CHARACTER
    JOB_WOLFMAN,
#endif
    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,
};

#ifdef __TITLE_SYSTEM__
enum ETitles
{
    TITLE_0,    // 0 = default
    TITLE_1,
    TITLE_2,
    TITLE_3,
    TITLE_4,
    TITLE_5,
    TITLE_6,
    TITLE_7,
    TITLE_8,
    TITLE_9,
    TITLE_10,
    TITLE_11,
    TITLE_12,
    TITLE_13,
    TITLE_14,
    TITLE_15,
    TITLE_16,
    TITLE_17,
    TITLE_18,
    TITLE_19,
    TITLE_20,
    TITLES_MAX_NUM
};
#endif

enum EParts
{
    PART_MAIN,
    PART_WEAPON,
    PART_HEAD,
    PART_HAIR,
#ifdef ENABLE_ACCE_SYSTEM
    PART_ACCE,
#endif
#ifdef __AURA_SYSTEM__
    PART_AURA,
#endif
    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,
#ifdef ENABLE_DICE_SYSTEM
    CHAT_TYPE_DICE_INFO, //11
#endif
    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,

#ifdef ENABLE_WOLFMAN_CHARACTER
    APPLY_BLEEDING_REDUCE,
    APPLY_BLEEDING_PCT,
    APPLY_ATTBONUS_WOLFMAN,
    APPLY_RESIST_WOLFMAN,
    APPLY_RESIST_CLAW,
#endif

#ifdef ENABLE_ACCE_SYSTEM
    APPLY_ACCEDRAIN_RATE,
#endif

#ifdef ENABLE_MAGIC_REDUCTION_SYSTEM
    APPLY_RESIST_MAGIC_REDUCTION,    //98
#endif
#ifdef 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,
#ifdef ENABLE_WOLFMAN_CHARACTER
        APPLY_ATTBONUS_CLAW,
#endif
        APPLY_ATTBONUS_CZ,
        APPLY_ATTBONUS_DESERT,
        APPLY_ATTBONUS_INSECT,
#endif
#ifdef 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,
#endif
    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,
#ifdef ENABLE_SPECIAL_STORAGE
    UPGRADE_INVENTORY,
    BOOK_INVENTORY,
    STONE_INVENTORY,
    CHEST_INVENTORY,
#endif
#ifdef __AURA_SYSTEM__
    AURA_REFINE,
#endif
#ifdef ENABLE_SWITCHBOT
    SWITCHBOT,
#endif
    BELT_INVENTORY,
    GROUND,
#ifdef __ENABLE_NEW_OFFLINESHOP__
    NEW_OFFSHOP,
    SHOP_SAFEBOX,
#endif
};

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,
#endif
    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,
#endif
#if defined(ENABLE_WOLFMAN_CHARACTER) && !defined(USE_MOB_BLEEDING_AS_POISON)
    MOB_RESIST_BLEEDING,
#endif
    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,
#ifdef 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,
#endif
#endif
#ifdef ENABLE_PENDANT_SYSTEM
    ATTRIBUTE_SET_PENDANT,
#endif
    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,

#ifdef ENABLE_ACCE_SYSTEM
    SE_EFFECT_ACCE_SUCCEDED,
    SE_EFFECT_ACCE_EQUIP,
#endif
#ifdef ENABLE_AGGREGATE_MONSTER_EFFECT
    SE_AGGREGATE_MONSTER_EFFECT,
#endif
#ifdef ENABLE_UPGRADE_EFFECT
    SE_UPSUCCESS,
    SE_UPFAILED,
#endif
#ifdef ENABLE_DUEL_EFFECT
    SE_PVP_WIN,
    SE_PVP_OPEN1,
    SE_PVP_OPEN2,
    SE_PVP_BEGIN1,
    SE_PVP_BEGIN2,
#endif
};

enum ETeenFlags
{
    TEENFLAG_NONE = 0,
    TEENFLAG_1HOUR,
    TEENFLAG_2HOUR,
    TEENFLAG_3HOUR,
    TEENFLAG_4HOUR,
    TEENFLAG_5HOUR,
};

#include "item_length.h"






enum EDragonSoulRefineWindowSize
{
    DRAGON_SOUL_REFINE_GRID_MAX = 15,
};

enum EMisc2
{
    DRAGON_SOUL_EQUIP_SLOT_START = EMisc::INVENTORY_MAX_NUM + EWearPositions::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,
};

#pragma 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);
#ifdef ENABLE_SPECIAL_STORAGE
        case UPGRADE_INVENTORY:
        case BOOK_INVENTORY:
        case STONE_INVENTORY:
        case CHEST_INVENTORY:
            return cell < (SPECIAL_INVENTORY_MAX_NUM);
#endif
#ifdef ENABLE_SWITCHBOT
            case SWITCHBOT:
                return cell < SWITCHBOT_SLOT_COUNT;
#endif
        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);
    }
#ifdef ENABLE_SWITCHBOT
    bool IsSwitchbotPosition() const
    {
        return SWITCHBOT == window_type && cell < SWITCHBOT_SLOT_COUNT;
    }
#endif
    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;


#ifdef __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
};
#endif

#pragma pack(pop)

#endif

direk atım size acaba hangisi ?
APPLY_ATTBONUS_STONE, > metinlere karşı
APPLY_ATTBONUS_BOSS, > bosslara karşı
 
APPLY_ATTBONUS_STONE, > metinlere karşı
APPLY_ATTBONUS_BOSS, > bosslara karşı
Kod:
APPLY_MAX_HP : Max HP
APPLY_MAX_SP : Max SP
APPLY_CON : Canlılık
APPLY_INT : Zeka
APPLY_STR : Güç
APPLY_DEX : Çeviklik
APPLY_ATT_SPEED : Saldırı Hızı
APPLY_MOV_SPEED : Hareket Hızı
APPLY_CAST_SPEED : Büyü Hızı
APPLY_HP_REGEN : Hp Üretimi
APPLY_SP_REGEN : SP Üretimi
APPLY_POISON_PCT : Zehirleme Değişimi
APPLY_BLEEDING_PCT : Kanama Saldırısı
APPLY_STUN_PCT : Sersemletme Şansı
APPLY_SLOW_PCT : Yavaşlatma Şansı
APPLY_CRITICAL_PCT : Kritik Vuruş
APPLY_PENETRATE_PCT : Delici Vuruş
APPLY_ATTBONUS_WARRIOR : Savasçılara karşı güçlü
APPLY_ATTBONUS_ASSASSIN : Ninja karşı güçlü
APPLY_ATTBONUS_SURA : Sura karşı güçlü
APPLY_ATTBONUS_SHAMAN : Şaman karşı güçlü
APPLY_ATTBONUS_WOLFMAN : Lycanlar'a karşı güçlü
APPLY_ATTBONUS_MONSTER : Canavarlara karşı güçlü
APPLY_ATTBONUS_HUMAN : Yarı insanlara karşı güçlü
APPLY_ATTBONUS_ANIMAL : Hayvanlara karşı güçlü
APPLY_ATTBONUS_ORC : Orklara karşı güçlü
APPLY_ATTBONUS_MILGYO : Mistiklere karşı güçlü
APPLY_ATTBONUS_UNDEAD : Ölümsüzlere karşı güçlü
APPLY_ATTBONUS_DEVIL : Şeytanlara karşı güçlü
APPLY_STEAL_HP : HP adsorbe
APPLY_STEAL_SP : SP adsorbe
APPLY_MANA_BURN_PCT : SP çalma şansı
APPLY_DAMAGE_SP_RECOVER : Sp geri kazanım şansı
APPLY_BLOCK : Yakın dövüş saldırıları bloklama şansı
APPLY_DODGE : Oklardan korunma şansı
APPLY_RESIST_SWORD : Kılıç savunması
APPLY_RESIST_TWOHAND : Çiftel savunması
APPLY_RESIST_DAGGER : Bıçak savunması
APPLY_RESIST_BELL : Çan savunması
APPLY_RESIST_FAN : Yelpaze savunması
APPLY_RESIST_BOW : Ok savunması
APPLY_RESIST_CLAW : Pençelerde savunma şansı
APPLY_RESIST_FIRE : Ateşe karşı dayanıklılık
APPLY_RESIST_ELEC : Şimseğe karşı dayanıklılık
APPLY_RESIST_MAGIC : Büyüye karşı dayanıklılık
APPLY_RESIST_WIND : Rüzgar Dayanıklılığı
APPLY_REFLECT_MELEE : Yakın dövüş vuruşlarını yansıtma şansı
APPLY_REFLECT_CURSE : Lanet yansıtılması
APPLY_POISON_REDUCE : Zehre karşı koyma
APPLY_BLEEDING_REDUCE : Kanama saldırılarında direnç
APPLY_KILL_SP_RECOVER : SP yüklemesi
APPLY_EXP_DOUBLE_BONUS : EXP Bonus şansı
APPLY_GOLD_DOUBLE_BONUS : İki kat Yang düşme şansı
APPLY_ITEM_DROP_BONUS : iki Kat eşya düşme şansı
APPLY_POTION_BONUS : İksir etkisi
APPLY_KILL_HP_RECOVER : HP yüklemesi
APPLY_IMMUNE_STUN : Sersemlik karşısında bağışıklık
APPLY_IMMUNE_SLOW : Yavaşlama karşısında bağışıklık
APPLY_IMMUNE_FALL : Yere düşme karşısında bağışıklık
APPLY_BOW_DISTANCE : Yay Menzili
APPLY_DEF_GRADE_BONUS : Savunma
APPLY_ATT_GRADE_BONUS : Saldırı Değeri
APPLY_MAGIC_ATT_GRADE : Büyülü Saldırı Değeri
APPLY_MAGIC_DEF_GRADE : Büyü Savunması
APPLY_MAX_STAMINA : Max. Dayanıklılık
APPLY_MALL_ATTBONUS : Saldırı Değeri
APPLY_MALL_DEFBONUS : Savunma
APPLY_MALL_EXPBONUS : EXP Bonus
APPLY_MALL_ITEMBONUS : Elde edilen nesne katsayısı..
APPLY_MALL_GOLDBONUS : Elde edilen yang kat sayısı..
APPLY_SKILL_DAMAGE_BONUS : Beceri Hasarı
APPLY_NORMAL_HIT_DAMAGE_BONUS : Ortalama Zarar
APPLY_SKILL_DEFEND_BONUS : Beceri hasarına karşı koyma
APPLY_NORMAL_HIT_DEFEND_BONUS : Ortalama Zarara Direniş
APPLY_PC_BANG_EXP_BONUS : iCafe exp bonus
APPLY_PC_BANG_DROP_BONUS : iCafe item bonus
APPLY_RESIST_WARRIOR : Savaşçı saldırılarına karşı savunma şansı
APPLY_RESIST_ASSASSIN : Ninja saldırılarına karşı savunma şansı
APPLY_RESIST_SURA : Sura saldırılarına karşı savunma şansı
APPLY_RESIST_SHAMAN : Şaman saldırılarına karşı savunma şansı
APPLY_RESIST_WOLFMAN : Lycanlar'a karşı savunma şansı
APPLY_MAX_HP_PCT : Maks. HP
APPLY_MAX_SP_PCT : Maks. SP
APPLY_ENERGY : Enerji
APPLY_COSTUME_ATTR_BONUS : Kostüm bonusu
APPLY_MAGIC_ATTBONUS_PER : Büyü Saldırı
APPLY_MELEE_MAGIC_ATTBONUS_PER : Büyü Saldırı / Yakın Dövüş Saldırı
APPLY_RESIST_ICE : Buz Direnci
APPLY_RESIST_EARTH : Dünya Direnci
APPLY_RESIST_DARK : Karanlık Direnci
APPLY_ANTI_CRITICAL_PCT : Kritik Vuruş Direnci
APPLY_ANTI_PENETRATE_PCT : Delici Vuruş Direnciü
APPLY_ATTBONUS_STONE, > metinlere karşı
APPLY_ATTBONUS_BOSS, > bosslara karşı

bu doğru ozaman değil mi
 
arkadaşlar bu arkadaş yardım etmenizi tavsiye etmiyorum hala ücretini iade ettiğim filesimi kullanıyor çalışmanızıda tavsiye etmem efsunlarda sorun yok fakat çözüm olayınıda söylemeyeceğim
 
Merhaba @aznp

İlgili sorununuz devam ediyor mu ? Sorununu çözdüyseniz eğer diğer kullanıcıların da faydalanması için çözüm yolunuzu paylaşır mısınız?.
 
Geri
Üst