- Mesaj
- 111
- Çözümler
- 3
- Beğeni
- 7
- Puan
- 434
- Ticaret Puanı
- 0
Tılsım ve Kemer takınca gözükmüyorlar ama özellikler geliyor bunu nasıl düzenlerim
filesi kurdugumdan beri böyle yaptığım işlem dahilinde olmadıgamelib / ItemData.h
userinterface / GameType.h
length.h
dosyalarını konuya dahil edermisin
birde en son ne işlem yaptın ?
#pragma once
// Icon, Model (droped on ground), Game Data
#include "../eterLib/GrpSubImage.h"
#include "../eterGrnLib/Thing.h"
#include "GameLibDefines.h"
#include "../UserInterface/Locale_inc.h"
class CItemData
{
public:
enum
{
ITEM_NAME_MAX_LEN = 24,
ITEM_LIMIT_MAX_NUM = 2,
ITEM_VALUES_MAX_NUM = 6,
ITEM_SMALL_DESCR_MAX_LEN = 256,
ITEM_APPLY_MAX_NUM = 3,
ITEM_SOCKET_MAX_NUM = 3,
#ifdef ENABLE_SHINING_SYSTEM
ITEM_SHINING_MAX_COUNT = 3,
#endif
#ifdef __UNIMPLEMENTED__
ITEM_PICK_MAX_LEVEL = 9,
ITEM_ROD_MAX_LEVEL = 20,
#endif
};
#ifdef ENABLE_SOULBIND_SYSTEM
enum ESealBind
{
SEAL_BIND_FLAG_DROP,
SEAL_BIND_FLAG_UPGRADE,
SEAL_BIND_FLAG_SELL,
SEAL_BIND_FLAG_ENCHANT,
SEAL_BIND_FLAG_TRADE,
SEAL_BIND_FLAG_UNSEAL,
SEAL_BIND_FLAG_MAX,
};
enum ESealDate
{
SEAL_DATE_DEFAULT_TIMESTAMP = 0, // 2015/11/12 it's -1
SEAL_DATE_UNLIMITED_TIMESTAMP = -1, // 2015/11/12 it doesn't exist
};
enum ESealItem
{
SEAL_ITEM_BINDING_VNUM = 50263,
SEAL_ITEM_UNBINDING_VNUM = 50264,
};
#endif
#ifdef __UNIMPLEMENTED__
enum EPetData
{
EGG_USE_SUCCESS = 0,
EGG_USE_FAILED_TIMEOVER = 2,
EGG_USE_FAILED_BECAUSE_NAME = 1,
GROWTH_PET_ITEM_USE_COOL_TIME = 1,
PET_EGG_USE_TRUE = 0,
PET_EGG_USE_FAILED_BECAUSE_TRADING = 1,
PET_EGG_USE_FAILED_BECAUSE_SHOP_OPEN = 2,
PET_EGG_USE_FAILED_BECAUSE_MALL_OPEN = 3,
PET_EGG_USE_FAILED_BECAUSE_SAFEBOX_OPEN = 4,
PET_HATCHING_MONEY = 100000,
PET_NAME_MAX_SIZE = 20,
PET_NAME_MIN_SIZE = 4,
};
#endif
enum EItemType
{
ITEM_TYPE_NONE, //0
ITEM_TYPE_WEAPON,
ITEM_TYPE_ARMOR,
ITEM_TYPE_USE,
ITEM_TYPE_AUTOUSE, //4
ITEM_TYPE_MATERIAL, //5
ITEM_TYPE_SPECIAL,
ITEM_TYPE_TOOL, //7
ITEM_TYPE_LOTTERY,
ITEM_TYPE_ELK,
ITEM_TYPE_METIN, //10
ITEM_TYPE_CONTAINER, //11
ITEM_TYPE_FISH,
ITEM_TYPE_ROD, //13
ITEM_TYPE_RESOURCE, //14
ITEM_TYPE_CAMPFIRE, //15
ITEM_TYPE_UNIQUE, //16
ITEM_TYPE_SKILLBOOK, //17
ITEM_TYPE_QUEST, //18
ITEM_TYPE_POLYMORPH, //19
ITEM_TYPE_TREASURE_BOX,
ITEM_TYPE_TREASURE_KEY,
ITEM_TYPE_SKILLFORGET, //22
ITEM_TYPE_GIFTBOX, //23
ITEM_TYPE_PICK, //24
ITEM_TYPE_HAIR,
ITEM_TYPE_TOTEM,
ITEM_TYPE_BLEND,
ITEM_TYPE_COSTUME,
ITEM_TYPE_DS,
ITEM_TYPE_SPECIAL_DS,
ITEM_TYPE_EXTRACT,
ITEM_TYPE_SECONDARY_COIN,
ITEM_TYPE_RING,
ITEM_TYPE_BELT,
#ifdef EFFECTRENDER_SYSTEM
ITEM_TYPE_EFFECT,
#endif
#ifdef __UNIMPLEMENTED__
ITEM_TYPE_PET, //35
ITEM_TYPE_MEDIUM, //36
#endif
ITEM_TYPE_MAX_NUM,
};
enum EResourceSubTypes
{
RESOURCE_FISHBONE = 0,
RESOURCE_WATERSTONEPIECE = 1,
RESOURCE_WATERSTONE = 2,
RESOURCE_BLOOD_PEARL = 3,
RESOURCE_BLUE_PEARL = 4,
RESOURCE_WHITE_PEARL = 5,
RESOURCE_BUCKET = 6,
RESOURCE_CRYSTAL = 7,
RESOURCE_GEM = 8,
RESOURCE_STONE = 9,
RESOURCE_METIN = 10,
RESOURCE_ORE = 11,
#ifdef ENABLE_AURA_SYSTEM
RESOURCE_AURA,
#endif
};
#ifdef __UNIMPLEMENTED__
enum EPetSubTypes
{
PET_EGG = 0,
PET_UPBRINGING = 1,
PET_BAG = 2,
PET_FEEDSTUFF = 3,
PET_SKILL = 4,
PET_SKILL_DEL_BOOK = 5,
};
enum EMediumSubTypes
{
MEDIUM_MOVE_COSTUME_ATTR = 0,
};
#endif
enum EWeddingItem
{
WEDDING_TUXEDO1 = 11901,
WEDDING_TUXEDO2 = 11902,
WEDDING_BRIDE_DRESS1 = 11903,
WEDDING_BRIDE_DRESS2 = 11904,
WEDDING_TUXEDO3 = 11911,
WEDDING_TUXEDO4 = 11912,
WEDDING_BRIDE_DRESS3 = 11913,
WEDDING_BRIDE_DRESS4 = 11914,
WEDDING_BOUQUET1 = 50201,
WEDDING_BOUQUET2 = 50202,
};
enum EWeaponSubTypes
{
WEAPON_SWORD, //0
WEAPON_DAGGER,
WEAPON_BOW, //2
WEAPON_TWO_HANDED, //3
WEAPON_BELL, //4
WEAPON_FAN, //5
WEAPON_ARROW, //6
WEAPON_MOUNT_SPEAR, //7
#ifdef ENABLE_WOLFMAN_CHARACTER
WEAPON_CLAW = 8, //8
#endif
#ifdef ENABLE_QUIVER_SYSTEM
WEAPON_QUIVER = 9, //9
#endif
#ifdef __UNIMPLEMENTED__
WEAPON_BOUQUET = 10, //10
#endif
WEAPON_NUM_TYPES, //11 2015/11/12
WEAPON_NONE = WEAPON_NUM_TYPES+1,
};
enum EMaterialSubTypes
{
MATERIAL_LEATHER,
MATERIAL_BLOOD,
MATERIAL_ROOT,
MATERIAL_NEEDLE,
MATERIAL_JEWEL,
MATERIAL_DS_REFINE_NORMAL,
MATERIAL_DS_REFINE_BLESSED,
MATERIAL_DS_REFINE_HOLLY,
};
enum EArmorSubTypes
{
ARMOR_BODY,
ARMOR_HEAD,
ARMOR_SHIELD,
ARMOR_WRIST,
ARMOR_FOOTS,
ARMOR_NECK,
ARMOR_EAR,
#ifdef ENABLE_PENDANT_SYSTEM
ARMOR_PENDANT,
#endif
ARMOR_NUM_TYPES
};
enum ECostumeSubTypes
{
COSTUME_BODY,
COSTUME_HAIR,
#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
COSTUME_MOUNT = 2, //2
#endif
#ifdef ENABLE_ACCE_SYSTEM
COSTUME_ACCE = 3, //3
#endif
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM
COSTUME_WEAPON = 4, //4
#endif
#ifdef ENABLE_AURA_SYSTEM
COSTUME_AURA = 5,
#endif
#ifdef ENABLE_EFFECT_SYSTEM
USE_EFFECT,
#endif
COSTUME_NUM_TYPES,
};
enum EUseSubTypes
{
USE_POTION, // 0
USE_TALISMAN,
USE_TUNING,
USE_MOVE,
USE_TREASURE_BOX,
USE_MONEYBAG,
USE_BAIT,
USE_ABILITY_UP,
USE_AFFECT,
USE_CREATE_STONE,
USE_SPECIAL, // 10
USE_POTION_NODELAY,
USE_CLEAR,
USE_INVISIBILITY,
USE_DETACHMENT,
USE_BUCKET,
USE_POTION_CONTINUE,
USE_CLEAN_SOCKET,
USE_CHANGE_ATTRIBUTE,
USE_ADD_ATTRIBUTE,
USE_ADD_ACCESSORY_SOCKET, // 20
USE_PUT_INTO_ACCESSORY_SOCKET,
USE_ADD_ATTRIBUTE2,
USE_RECIPE,
USE_CHANGE_ATTRIBUTE2,
USE_BIND,
USE_UNBIND,
USE_TIME_CHARGE_PER,
USE_TIME_CHARGE_FIX, // 28
USE_PUT_INTO_BELT_SOCKET,
USE_PUT_INTO_RING_SOCKET,
#ifdef ENABLE_USE_COSTUME_ATTR
USE_CHANGE_COSTUME_ATTR, // 31
USE_RESET_COSTUME_ATTR, // 32
#endif
#ifdef ENABLE_AURA_SYSTEM
USE_PUT_INTO_AURA_SOCKET, // xx AURA_BOOSTER
#endif
};
enum EDragonSoulSubType
{
DS_SLOT1,
DS_SLOT2,
DS_SLOT3,
DS_SLOT4,
DS_SLOT5,
DS_SLOT6,
DS_SLOT_NUM_TYPES = 6,
};
enum EMetinSubTypes
{
METIN_NORMAL,
METIN_GOLD,
};
enum ELimitTypes
{
LIMIT_NONE,
LIMIT_LEVEL,
LIMIT_STR,
LIMIT_DEX,
LIMIT_INT,
LIMIT_CON,
LIMIT_PCBANG,
LIMIT_REAL_TIME,
LIMIT_REAL_TIME_START_FIRST_USE,
LIMIT_TIMER_BASED_ON_WEAR,
LIMIT_MAX_NUM
};
enum EItemAntiFlag
{
ITEM_ANTIFLAG_FEMALE = (1 << 0),
ITEM_ANTIFLAG_MALE = (1 << 1),
ITEM_ANTIFLAG_WARRIOR = (1 << 2),
ITEM_ANTIFLAG_ASSASSIN = (1 << 3),
ITEM_ANTIFLAG_SURA = (1 << 4),
ITEM_ANTIFLAG_SHAMAN = (1 << 5),
ITEM_ANTIFLAG_GET = (1 << 6),
ITEM_ANTIFLAG_DROP = (1 << 7),
ITEM_ANTIFLAG_SELL = (1 << 8),
ITEM_ANTIFLAG_EMPIRE_A = (1 << 9),
ITEM_ANTIFLAG_EMPIRE_B = (1 << 10),
ITEM_ANTIFLAG_EMPIRE_R = (1 << 11),
ITEM_ANTIFLAG_SAVE = (1 << 12),
ITEM_ANTIFLAG_GIVE = (1 << 13),
ITEM_ANTIFLAG_PKDROP = (1 << 14),
ITEM_ANTIFLAG_STACK = (1 << 15),
ITEM_ANTIFLAG_MYSHOP = (1 << 16),
ITEM_ANTIFLAG_SAFEBOX = (1 << 17),
#ifdef ENABLE_WOLFMAN_CHARACTER
ITEM_ANTIFLAG_WOLFMAN = (1 << 18),
#endif
};
enum EItemFlag
{
ITEM_FLAG_REFINEABLE = (1 << 0),
ITEM_FLAG_SAVE = (1 << 1),
ITEM_FLAG_STACKABLE = (1 << 2),
ITEM_FLAG_COUNT_PER_1GOLD = (1 << 3),
ITEM_FLAG_SLOW_QUERY = (1 << 4),
ITEM_FLAG_RARE = (1 << 5),
ITEM_FLAG_UNIQUE = (1 << 6),
ITEM_FLAG_MAKECOUNT = (1 << 7),
ITEM_FLAG_IRREMOVABLE = (1 << 8),
ITEM_FLAG_CONFIRM_WHEN_USE = (1 << 9),
ITEM_FLAG_QUEST_USE = (1 << 10),
ITEM_FLAG_QUEST_USE_MULTIPLE= (1 << 11),
ITEM_FLAG_UNUSED03 = (1 << 12), // UNUSED03
ITEM_FLAG_LOG = (1 << 13),
ITEM_FLAG_APPLICABLE = (1 << 14),
};
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 ENABLE_AURA_SYSTEM
WEAR_COSTUME_AURA,// 24
#endif
WEAR_RING1,// 25
WEAR_RING2,// 26
WEAR_BELT,// 27
#ifdef ENABLE_PENDANT_SYSTEM
WEAR_PENDANT,// 28
#endif
#ifdef ENABLE_EFFECT_SYSTEM
WEAR_EFFECT_ARMOR,
WEAR_EFFECT_WEAPON,
#endif
WEAR_MAX_NUM = 32,
};
enum EItemWearableFlag
{
WEARABLE_BODY = (1 << 0),
WEARABLE_HEAD = (1 << 1),
WEARABLE_FOOTS = (1 << 2),
WEARABLE_WRIST = (1 << 3),
WEARABLE_WEAPON = (1 << 4),
WEARABLE_NECK = (1 << 5),
WEARABLE_EAR = (1 << 6),
WEARABLE_UNIQUE = (1 << 7),
WEARABLE_SHIELD = (1 << 8),
WEARABLE_ARROW = (1 << 9),
WEARABLE_ABILITY = (1 << 10),
WEARABLE_COSTUME_BODY = (1 << 11),
WEARABLE_COSTUME_HAIR = (1 << 12),
WEARABLE_COSTUME_MOUNT = (1 << 13),
WEARABLE_COSTUME_ACCE = (1 << 14),
WEARABLE_COSTUME_WEAPON = (1 << 15),
#ifdef ENABLE_PENDANT_SYSTEM
WEARABLE_PENDANT = (1 << 16),
#endif
#ifdef ENABLE_EFFECT_SYSTEM
WEARABLE_EFFECT_ARMOR = (1 << 17),
WEARABLE_EFFECT_WEAPON = (1 << 18),
#endif
};
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_ATT_BONUS_TO_WARRIOR, // 59
APPLY_ATT_BONUS_TO_ASSASSIN,// 60
APPLY_ATT_BONUS_TO_SURA, // 61
APPLY_ATT_BONUS_TO_SHAMAN, // 62
APPLY_ATT_BONUS_TO_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_EXTRACT_HP_PCT, //75
APPLY_PC_BANG_EXP_BONUS, //76
APPLY_PC_BANG_DROP_BONUS, //77
APPLY_RESIST_WARRIOR, //78
APPLY_RESIST_ASSASSIN , //79
APPLY_RESIST_SURA, //80
APPLY_RESIST_SHAMAN, //81
APPLY_ENERGY, //82
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 , //92
APPLY_BLEEDING_PCT , //93
APPLY_ATT_BONUS_TO_WOLFMAN , //94
APPLY_RESIST_WOLFMAN , //95
APPLY_RESIST_CLAW , //96
#endif
#ifdef ENABLE_ACCE_SYSTEM
APPLY_ACCEDRAIN_RATE , //97
#endif
#ifdef ENABLE_MAGIC_REDUCTION_SYSTEM
APPLY_RESIST_MAGIC_REDUCTION , //98
#endif
APPLY_MOUNT,
#ifdef ENABLE_PENDANT_SYSTEM
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 // ENABLE_WOLFMAN_CHARACTER
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 EPointTypes
{
POINT_NONE = 0,
POINT_LEVEL = 1,
POINT_VOICE = 2,
POINT_EXP = 3,
POINT_NEXT_EXP = 4,
POINT_HP = 5,
POINT_MAX_HP = 6,
POINT_SP = 7,
POINT_MAX_SP = 8,
POINT_STAMINA = 9,
POINT_MAX_STAMINA = 10,
POINT_GOLD = 11,
POINT_ST = 12,
POINT_HT = 13,
POINT_DX = 14,
POINT_IQ = 15,
POINT_DEF_GRADE = 16,
POINT_ATT_SPEED = 17,
POINT_ATT_GRADE = 18,
POINT_MOV_SPEED = 19,
POINT_CLIENT_DEF_GRADE = 20,
POINT_CASTING_SPEED = 21,
POINT_MAGIC_ATT_GRADE = 22,
POINT_MAGIC_DEF_GRADE = 23,
POINT_EMPIRE_POINT = 24,
POINT_LEVEL_STEP = 25,
POINT_STAT = 26,
POINT_SUB_SKILL = 27,
POINT_SKILL = 28,
POINT_WEAPON_MIN = 29,
POINT_WEAPON_MAX = 30,
POINT_PLAYTIME = 31,
POINT_HP_REGEN = 32,
POINT_SP_REGEN = 33,
POINT_BOW_DISTANCE = 34,
POINT_HP_RECOVERY = 35,
POINT_SP_RECOVERY = 36,
POINT_POISON_PCT = 37,
POINT_STUN_PCT = 38,
POINT_SLOW_PCT = 39,
POINT_CRITICAL_PCT = 40,
POINT_PENETRATE_PCT = 41,
POINT_CURSE_PCT = 42,
POINT_ATTBONUS_HUMAN = 43,
POINT_ATTBONUS_ANIMAL = 44,
POINT_ATTBONUS_ORC = 45,
POINT_ATTBONUS_MILGYO = 46,
POINT_ATTBONUS_UNDEAD = 47,
POINT_ATTBONUS_DEVIL = 48,
POINT_ATTBONUS_INSECT = 49,
POINT_ATTBONUS_FIRE = 50,
POINT_ATTBONUS_ICE = 51,
POINT_ATTBONUS_DESERT = 52,
POINT_ATTBONUS_MONSTER = 53,
POINT_ATTBONUS_WARRIOR = 54,
POINT_ATTBONUS_ASSASSIN = 55,
POINT_ATTBONUS_SURA = 56,
POINT_ATTBONUS_SHAMAN = 57,
POINT_ATTBONUS_TREE = 58,
POINT_RESIST_WARRIOR = 59,
POINT_RESIST_ASSASSIN = 60,
POINT_RESIST_SURA = 61,
POINT_RESIST_SHAMAN = 62,
POINT_STEAL_HP = 63,
POINT_STEAL_SP = 64,
POINT_MANA_BURN_PCT = 65,
POINT_DAMAGE_SP_RECOVER = 66,
POINT_BLOCK = 67,
POINT_DODGE = 68,
POINT_RESIST_SWORD = 69,
POINT_RESIST_TWOHAND = 70,
POINT_RESIST_DAGGER = 71,
POINT_RESIST_BELL = 72,
POINT_RESIST_FAN = 73,
POINT_RESIST_BOW = 74,
POINT_RESIST_FIRE = 75,
POINT_RESIST_ELEC = 76,
POINT_RESIST_MAGIC = 77,
POINT_RESIST_WIND = 78,
POINT_REFLECT_MELEE = 79,
POINT_REFLECT_CURSE = 80,
POINT_POISON_REDUCE = 81,
POINT_KILL_SP_RECOVER = 82,
POINT_EXP_DOUBLE_BONUS = 83,
POINT_GOLD_DOUBLE_BONUS = 84,
POINT_ITEM_DROP_BONUS = 85,
POINT_POTION_BONUS = 86,
POINT_KILL_HP_RECOVERY = 87,
POINT_IMMUNE_STUN = 88,
POINT_IMMUNE_SLOW = 89,
POINT_IMMUNE_FALL = 90,
POINT_PARTY_ATTACKER_BONUS = 91,
POINT_PARTY_TANKER_BONUS = 92,
POINT_ATT_BONUS = 93,
POINT_DEF_BONUS = 94,
POINT_ATT_GRADE_BONUS = 95,
POINT_DEF_GRADE_BONUS = 96,
POINT_MAGIC_ATT_GRADE_BONUS = 97,
POINT_MAGIC_DEF_GRADE_BONUS = 98,
POINT_RESIST_NORMAL_DAMAGE = 99,
POINT_HIT_HP_RECOVERY = 100,
POINT_HIT_SP_RECOVERY = 101,
POINT_MANASHIELD = 102,
POINT_PARTY_BUFFER_BONUS = 103,
POINT_PARTY_SKILL_MASTER_BONUS = 104,
POINT_HP_RECOVER_CONTINUE = 105,
POINT_SP_RECOVER_CONTINUE = 106,
POINT_STEAL_GOLD = 107,
POINT_POLYMORPH = 108,
POINT_MOUNT = 109,
POINT_PARTY_HASTE_BONUS = 110,
POINT_PARTY_DEFENDER_BONUS = 111,
POINT_STAT_RESET_COUNT = 112,
POINT_HORSE_SKILL = 113,
POINT_MALL_ATTBONUS = 114,
POINT_MALL_DEFBONUS = 115,
POINT_MALL_EXPBONUS = 116,
POINT_MALL_ITEMBONUS = 117,
POINT_MALL_GOLDBONUS = 118,
POINT_MAX_HP_PCT = 119,
POINT_MAX_SP_PCT = 120,
POINT_SKILL_DAMAGE_BONUS = 121,
POINT_NORMAL_HIT_DAMAGE_BONUS = 122,
POINT_SKILL_DEFEND_BONUS = 123,
POINT_NORMAL_HIT_DEFEND_BONUS = 124,
POINT_PC_BANG_EXP_BONUS = 125,
POINT_PC_BANG_DROP_BONUS = 126,
POINT_RAMADAN_CANDY_BONUS_EXP = 127,
POINT_ENERGY = 128,
POINT_ENERGY_END_TIME = 129,
POINT_COSTUME_ATTR_BONUS = 130,
POINT_MAGIC_ATT_BONUS_PER = 131,
POINT_MELEE_MAGIC_ATT_BONUS_PER = 132,
POINT_RESIST_ICE = 133,
POINT_RESIST_EARTH = 134,
POINT_RESIST_DARK = 135,
POINT_RESIST_CRITICAL = 136,
POINT_RESIST_PENETRATE = 137,
#ifdef ENABLE_ACCE_SYSTEM
POINT_ACCEDRAIN_RATE = 138,
#endif
#ifdef ENABLE_MAGIC_REDUCTION_SYSTEM
POINT_RESIST_MAGIC_REDUCTION = 139,
#endif
#ifdef ENABLE_PENDANT_SYSTEM
POINT_APPLY_MOUNT = 140,
POINT_ENCHANT_FIRE = 141,
POINT_ENCHANT_ICE = 142,
POINT_ENCHANT_EARTH = 143,
POINT_ENCHANT_DARK = 144,
POINT_ENCHANT_WIND = 145,
POINT_ENCHANT_ELECT = 146,
POINT_RESIST_HUMAN = 147,
POINT_ATTBONUS_SWORD = 148,
POINT_ATTBONUS_TWOHAND = 149,
POINT_ATTBONUS_DAGGER = 150,
POINT_ATTBONUS_BELL = 151,
POINT_ATTBONUS_FAN = 152,
POINT_ATTBONUS_BOW = 153,
POINT_ATTBONUS_CZ = 154,
#endif
#ifdef ENABLE_EXTRA_APPLY_BONUS
POINT_ATTBONUS_STONE = 155,
POINT_ATTBONUS_BOSS = 156,
#endif
#ifdef ENABLE_EXTRA_APPLY_BONUS
POINT_ATTBONUS_ELEMENTS = 157,
POINT_ENCHANT_ELEMENTS = 158,
POINT_ATTBONUS_CHARACTERS = 159,
POINT_ENCHANT_CHARACTERS = 160,
POINT_ATTBONUS_RAZADOR = 161,
POINT_ATTBONUS_NEMERE = 162,
POINT_ATTBONUS_LUCIFER = 163,
POINT_ATTBONUS_BLUE_DRAGON = 164,
POINT_ATTBONUS_RED_DRAGON = 165,
POINT_ATTBONUS_AZRAEL = 166,
#endif
#ifdef ENABLE_PARTY_RENEWAL
POINT_PARTY_ATTACKER_MONSTER_BONUS = 167,
POINT_PARTY_ATTACKER_STONE_BONUS = 168,
POINT_PARTY_ATTACKER_BOSS_BONUS = 169,
#endif
POINT_MIN_WEP = 200,
POINT_MAX_WEP = 201,
POINT_MIN_MAGIC_WEP = 202,
POINT_MAX_MAGIC_WEP = 203,
POINT_HIT_RATE = 204,
//POINT_MAX_NUM = 255,=>stdafx.h ·Î/
};
enum EImmuneFlags
{
IMMUNE_PARA = (1 << 0),
IMMUNE_CURSE = (1 << 1),
IMMUNE_STUN = (1 << 2),
IMMUNE_SLEEP = (1 << 3),
IMMUNE_SLOW = (1 << 4),
IMMUNE_POISON = (1 << 5),
IMMUNE_TERROR = (1 << 6),
};
#pragma pack(push)
#pragma pack(1)
typedef struct SItemLimit
{
BYTE bType;
long lValue;
} TItemLimit;
typedef struct SItemApply
{
BYTE bType;
long lValue;
} TItemApply;
typedef struct SItemTable_r152
{
DWORD dwVnum;
char szName[ITEM_NAME_MAX_LEN + 1];
char szLocaleName[ITEM_NAME_MAX_LEN + 1];
BYTE bType;
BYTE bSubType;
BYTE bWeight;
BYTE bSize;
DWORD dwAntiFlags;
DWORD dwFlags;
DWORD dwWearFlags;
DWORD dwImmuneFlag;
DWORD dwIBuyItemPrice;
DWORD dwISellItemPrice;
TItemLimit aLimits[ITEM_LIMIT_MAX_NUM];
TItemApply aApplies[ITEM_APPLY_MAX_NUM];
long alValues[ITEM_VALUES_MAX_NUM];
long alSockets[ITEM_SOCKET_MAX_NUM];
DWORD dwRefinedVnum;
WORD wRefineSet;
BYTE bAlterToMagicItemPct;
BYTE bSpecular;
BYTE bGainSocketPct;
} TItemTable_r152;
typedef struct SItemTable_r156
{
DWORD dwVnum;
DWORD dwVnumRange;
char szName[ITEM_NAME_MAX_LEN + 1];
char szLocaleName[ITEM_NAME_MAX_LEN + 1];
BYTE bType;
BYTE bSubType;
BYTE bWeight;
BYTE bSize;
DWORD dwAntiFlags;
DWORD dwFlags;
DWORD dwWearFlags;
DWORD dwImmuneFlag;
DWORD dwIBuyItemPrice;
DWORD dwISellItemPrice;
TItemLimit aLimits[ITEM_LIMIT_MAX_NUM];
TItemApply aApplies[ITEM_APPLY_MAX_NUM];
long alValues[ITEM_VALUES_MAX_NUM];
long alSockets[ITEM_SOCKET_MAX_NUM];
DWORD dwRefinedVnum;
WORD wRefineSet;
BYTE bAlterToMagicItemPct;
BYTE bSpecular;
BYTE bGainSocketPct;
} TItemTable_r156;
typedef struct SItemTable_r158
{
DWORD dwVnum;
DWORD dwVnumRange;
char szName[ITEM_NAME_MAX_LEN + 1];
char szLocaleName[ITEM_NAME_MAX_LEN + 1];
BYTE bType;
BYTE bSubType;
BYTE bWeight;
BYTE bSize;
DWORD dwAntiFlags;
DWORD dwFlags;
DWORD dwWearFlags;
DWORD dwImmuneFlag;
DWORD dwIBuyItemPrice;
DWORD dwISellItemPrice;
TItemLimit aLimits[ITEM_LIMIT_MAX_NUM];
TItemApply aApplies[ITEM_APPLY_MAX_NUM];
long alValues[ITEM_VALUES_MAX_NUM];
long alSockets[ITEM_SOCKET_MAX_NUM];
DWORD dwRefinedVnum;
WORD wRefineSet;
BYTE bAlterToMagicItemPct;
BYTE bSpecular;
BYTE bGainSocketPct;
WORD wWearableFlag;
} TItemTable_r158;
typedef SItemTable_r156 SItemTable, TItemTable;
#ifdef ENABLE_ACCE_SYSTEM
struct SScaleInfo
{
float fScaleX, fScaleY, fScaleZ;
float fPositionX, fPositionY, fPositionZ;
};
typedef struct SScaleTable
{
SScaleInfo tInfo[10];
} TScaleTable;
#endif
#ifdef ENABLE_PROTOSTRUCT_AUTODETECT
typedef struct SItemTableAll
{
static bool IsValidStruct(DWORD structSize)
{
switch (structSize)
{
case sizeof(TItemTable_r152):
case sizeof(TItemTable_r156):
case sizeof(TItemTable_r158):
return true;
break;
}
return false;
}
static void Process(void* obj, DWORD structSize, DWORD i, CItemData::TItemTable& t)
{
#define ITABLE_COPY_STR(x) strncpy_s(t.##x##, sizeof(t.##x##), r.##x##, _TRUNCATE)
#define ITABLE_COPY_INT(x) t.##x## = r.##x
#define ITABLE_ZERO_STR(x) memset(t.##x##, 0, sizeof(t.##x##));
#define ITABLE_ZERO_INT(x) t.##x## = 0
#define ITABLE_COUNT(x) _countof(t.##x##)
#define ITABLE_PROCESS(len)\
CItemData::TItemTable_r##len## & r = *((CItemData::TItemTable_r##len## *) obj + i);\
ITABLE_COPY_INT(dwVnum);\
ITABLE_COPY_STR(szName);\
ITABLE_COPY_STR(szLocaleName);\
ITABLE_COPY_INT(bType);\
ITABLE_COPY_INT(bSubType);\
ITABLE_COPY_INT(bWeight);\
ITABLE_COPY_INT(bSize);\
ITABLE_COPY_INT(dwAntiFlags);\
ITABLE_COPY_INT(dwFlags);\
ITABLE_COPY_INT(dwWearFlags);\
ITABLE_COPY_INT(dwImmuneFlag);\
ITABLE_COPY_INT(dwIBuyItemPrice);\
ITABLE_COPY_INT(dwISellItemPrice);\
for (size_t i=0; i<ITABLE_COUNT(aLimits); ++i)\
{\
ITABLE_COPY_INT(aLimits[i].bType);\
ITABLE_COPY_INT(aLimits[i].lValue);\
}\
for (size_t i=0; i<CItemData::ITEM_APPLY_MAX_NUM; ++i)\
{\
ITABLE_COPY_INT(aApplies[i].bType);\
ITABLE_COPY_INT(aApplies[i].lValue);\
}\
for (size_t i=0; i<CItemData::ITEM_VALUES_MAX_NUM; ++i)\
{\
ITABLE_COPY_INT(alValues[i]);\
}\
for (size_t i=0; i<CItemData::ITEM_SOCKET_MAX_NUM; ++i)\
{\
ITABLE_COPY_INT(alSockets[i]);\
}\
ITABLE_COPY_INT(dwRefinedVnum);\
ITABLE_COPY_INT(wRefineSet);\
ITABLE_COPY_INT(bAlterToMagicItemPct);\
ITABLE_COPY_INT(bSpecular);\
ITABLE_COPY_INT(bGainSocketPct);
switch (structSize)
{
case sizeof(TItemTable_r152):
{
ITABLE_PROCESS(152);
ITABLE_ZERO_INT(dwVnumRange);
}
break;
case sizeof(TItemTable_r156):
{
ITABLE_PROCESS(156);
ITABLE_COPY_INT(dwVnumRange);
}
break;
case sizeof(TItemTable_r158):
{
ITABLE_PROCESS(158);
ITABLE_COPY_INT(dwVnumRange);
}
break;
}
}
} TItemTableAll;
#endif //ENABLE_PROTOSTRUCT_AUTODETECT
#pragma pack(pop)
public:
CItemData();
virtual ~CItemData();
void Clear();
void SetSummary(const std::string& c_rstSumm);
void SetDescription(const std::string& c_rstDesc);
CGraphicThing * GetModelThing();
CGraphicThing * GetSubModelThing();
CGraphicThing * GetDropModelThing();
CGraphicSubImage * GetIconImage();
DWORD GetLODModelThingCount();
BOOL GetLODModelThingPointer(DWORD dwIndex, CGraphicThing ** ppModelThing);
DWORD GetAttachingDataCount();
BOOL GetCollisionDataPointer(DWORD dwIndex, const NRaceData::TAttachingData ** c_ppAttachingData);
BOOL GetAttachingDataPointer(DWORD dwIndex, const NRaceData::TAttachingData ** c_ppAttachingData);
/////
const TItemTable* GetTable() const;
DWORD GetIndex() const;
const char * GetName() const;
const char * GetDescription() const;
const char * GetSummary() const;
BYTE GetType() const;
BYTE GetSubType() const;
UINT GetRefine() const;
const char* GetUseTypeString() const;
DWORD GetWeaponType() const;
BYTE GetSize() const;
BOOL IsAntiFlag(DWORD dwFlag) const;
BOOL IsFlag(DWORD dwFlag) const;
BOOL IsWearableFlag(DWORD dwFlag) const;
BOOL HasNextGrade() const;
DWORD GetWearFlags() const;
DWORD GetIBuyItemPrice() const;
DWORD GetISellItemPrice() const;
BOOL GetLimit(BYTE byIndex, TItemLimit * pItemLimit) const;
BOOL GetApply(BYTE byIndex, TItemApply * pItemApply) const;
long GetValue(BYTE byIndex) const;
long GetSocket(BYTE byIndex) const;
long SetSocket(BYTE byIndex,DWORD value);
int GetSocketCount() const;
DWORD GetIconNumber() const;
UINT GetSpecularPoweru() const;
float GetSpecularPowerf() const;
/////
BOOL IsEquipment() const;
/////
//BOOL LoadItemData(const char * c_szFileName);
void SetDefaultItemData(const char * c_szIconFileName, const char * c_szModelFileName = NULL);
void SetItemTableData(TItemTable * pItemTable);
#ifdef ENABLE_SHINING_SYSTEM
typedef struct SItemShiningTable {
char szShinings[ITEM_SHINING_MAX_COUNT][256];
public:
//Checking if any shining is set for this item.
bool Any() const
{
for (int i = 0; i < CItemData::ITEM_SHINING_MAX_COUNT; i++)
{
if (strcmp(szShinings[i], ""))
{
return true;
}
}
return false;
}
} TItemShiningTable;
void SetItemShiningTableData(BYTE bIndex, const char* szEffectname);
CItemData::TItemShiningTable GetItemShiningTable() { return m_ItemShiningTable; }
#endif
#ifdef ENABLE_ACCE_SYSTEM
void SetItemScale(const std::string strJob, const std::string strSex, const std::string strScaleX, const std::string strScaleY, const std::string strScaleZ, const std::string strPositionX, const std::string strPositionY, const std::string strPositionZ);
bool GetItemScale(DWORD dwPos, float & fScaleX, float & fScaleY, float & fScaleZ, float & fPositionX, float & fPositionY, float & fPositionZ);
#endif
protected:
void __LoadFiles();
void __SetIconImage(const char * c_szFileName);
protected:
std::string m_strModelFileName;
std::string m_strSubModelFileName;
std::string m_strDropModelFileName;
std::string m_strIconFileName;
std::string m_strDescription;
std::string m_strSummary;
std::vector<std::string> m_strLODModelFileNameVector;
CGraphicThing * m_pModelThing;
CGraphicThing * m_pSubModelThing;
CGraphicThing * m_pDropModelThing;
CGraphicSubImage * m_pIconImage;
std::vector<CGraphicThing *> m_pLODModelThingVector;
NRaceData::TAttachingDataVector m_AttachingDataVector;
DWORD m_dwVnum;
TItemTable m_ItemTable;
#ifdef ENABLE_SHINING_SYSTEM
TItemShiningTable m_ItemShiningTable;
#endif
#ifdef ENABLE_ACCE_SYSTEM
TScaleTable m_ScaleTable;
#endif
#ifdef ENABLE_AURA_SYSTEM
public:
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 EAuraItem
{
AURA_BOOST_ITEM_VNUM_BASE = 49980
};
enum EAuraBoostIndex
{
ITEM_AURA_BOOST_ERASER,
ITEM_AURA_BOOST_WEAK,
ITEM_AURA_BOOST_NORMAL,
ITEM_AURA_BOOST_STRONG,
ITEM_AURA_BOOST_ULTIMATE,
ITEM_AURA_BOOST_MAX,
};
protected:
typedef struct SAuraScaleTable
{
D3DXVECTOR3 v3MeshScale[NRaceData::SEX_MAX_NUM][NRaceData::JOB_MAX_NUM];
float fParticleScale[NRaceData::SEX_MAX_NUM][NRaceData::JOB_MAX_NUM];
} TAuraScaleTable;
TAuraScaleTable m_AuraScaleTable;
DWORD m_dwAuraEffectID;
public:
void SetAuraScaleTableData(BYTE byJob, BYTE bySex, float fMeshScaleX, float fMeshScaleY, float fMeshScaleZ, float fParticleScale);
D3DXVECTOR3& GetAuraMeshScaleVector(BYTE byJob, BYTE bySex);
float GetAuraParticleScale(BYTE byJob, BYTE bySex);
void SetAuraEffectID(const char* szAuraEffectPath);
DWORD GetAuraEffectID() const { return m_dwAuraEffectID; }
#endif
public:
static void DestroySystem();
static CItemData* New();
static void Delete(CItemData* pkItemData);
static CDynamicPool<CItemData> ms_kPool;
};
gamelib / ItemData.h
userinterface / GameType.h
length.h
dosyalarını konuya dahil edermisin
birde en son ne işlem yaptın ?
#pragma once
#include "../GameLib/ItemData.h"
#include "Locale_inc.h"
struct SAffects
{
enum
{
AFFECT_MAX_NUM = 32,
};
SAffects() : dwAffects(0) {}
SAffects(const DWORD & c_rAffects)
{
__SetAffects(c_rAffects);
}
int operator = (const DWORD & c_rAffects)
{
__SetAffects(c_rAffects);
}
BOOL IsAffect(BYTE byIndex)
{
return dwAffects & (1 << byIndex);
}
void __SetAffects(const DWORD & c_rAffects)
{
dwAffects = c_rAffects;
}
DWORD dwAffects;
};
extern std::string g_strGuildSymbolPathName;
const DWORD c_Name_Max_Length = 64;
const DWORD c_FileName_Max_Length = 128;
const DWORD c_Short_Name_Max_Length = 32;
const DWORD c_Inventory_Page_Column = 5;
const DWORD c_Inventory_Page_Row = 9;
const DWORD c_Inventory_Page_Size = c_Inventory_Page_Column*c_Inventory_Page_Row; // x*y
#ifdef ENABLE_EXTEND_INVEN_SYSTEM
const DWORD c_Inventory_Page_Count = 4;
#else
const DWORD c_Inventory_Page_Count = 2;
#endif
const DWORD c_ItemSlot_Count = c_Inventory_Page_Size * c_Inventory_Page_Count;
const DWORD c_Equipment_Count = 12;
const DWORD c_Equipment_Start = c_ItemSlot_Count;
const DWORD c_Equipment_Body = c_Equipment_Start + CItemData::WEAR_BODY;
const DWORD c_Equipment_Head = c_Equipment_Start + CItemData::WEAR_HEAD;
const DWORD c_Equipment_Shoes = c_Equipment_Start + CItemData::WEAR_FOOTS;
const DWORD c_Equipment_Wrist = c_Equipment_Start + CItemData::WEAR_WRIST;
const DWORD c_Equipment_Weapon = c_Equipment_Start + CItemData::WEAR_WEAPON;
const DWORD c_Equipment_Neck = c_Equipment_Start + CItemData::WEAR_NECK;
const DWORD c_Equipment_Ear = c_Equipment_Start + CItemData::WEAR_EAR;
const DWORD c_Equipment_Unique1 = c_Equipment_Start + CItemData::WEAR_UNIQUE1;
const DWORD c_Equipment_Unique2 = c_Equipment_Start + CItemData::WEAR_UNIQUE2;
const DWORD c_Equipment_Arrow = c_Equipment_Start + CItemData::WEAR_ARROW;
const DWORD c_Equipment_Shield = c_Equipment_Start + CItemData::WEAR_SHIELD;
#ifdef ENABLE_NEW_EQUIPMENT_SYSTEM
const DWORD c_New_Equipment_Start = c_Equipment_Start + CItemData::WEAR_RING1;
const DWORD c_New_Equipment_Count = 4;
const DWORD c_Equipment_Ring1 = c_Equipment_Start + CItemData::WEAR_RING1;
const DWORD c_Equipment_Ring2 = c_Equipment_Start + CItemData::WEAR_RING2;
const DWORD c_Equipment_Belt = c_Equipment_Start + CItemData::WEAR_BELT;
#ifdef ENABLE_PENDANT_SYSTEM
const DWORD c_Equipment_Pendant = c_Equipment_Start + CItemData::WEAR_PENDANT;
#endif
#endif
#ifdef ENABLE_SKILL_COLOR_SYSTEM
enum ESkillColorLength
{
MAX_SKILL_COUNT = 6,
MAX_EFFECT_COUNT = 5,
BUFF_BEGIN = MAX_SKILL_COUNT,
MAX_BUFF_COUNT = 5,
};
#endif
enum EDragonSoulDeckType
{
DS_DECK_1,
DS_DECK_2,
DS_DECK_MAX_NUM = 2,
};
enum EDragonSoulGradeTypes
{
DRAGON_SOUL_GRADE_NORMAL,
DRAGON_SOUL_GRADE_BRILLIANT,
DRAGON_SOUL_GRADE_RARE,
DRAGON_SOUL_GRADE_ANCIENT,
DRAGON_SOUL_GRADE_LEGENDARY,
#ifdef ENABLE_DS_GRADE_MYTH
DRAGON_SOUL_GRADE_MYTH,
#endif
DRAGON_SOUL_GRADE_MAX,
};
enum EDragonSoulStepTypes
{
DRAGON_SOUL_STEP_LOWEST,
DRAGON_SOUL_STEP_LOW,
DRAGON_SOUL_STEP_MID,
DRAGON_SOUL_STEP_HIGH,
DRAGON_SOUL_STEP_HIGHEST,
DRAGON_SOUL_STEP_MAX,
};
#ifdef ENABLE_COSTUME_SYSTEM
const DWORD c_Costume_Slot_Start = c_Equipment_Start + CItemData::WEAR_COSTUME_BODY;
const DWORD c_Costume_Slot_Body = c_Costume_Slot_Start + CItemData::COSTUME_BODY;
const DWORD c_Costume_Slot_Hair = c_Costume_Slot_Start + CItemData::COSTUME_HAIR;
const DWORD c_Costume_Effect_Body = c_Costume_Slot_Start + CItemData::USE_EFFECT;
const DWORD c_Costume_Effect_Weapon = c_Costume_Slot_Start + CItemData::USE_EFFECT;
#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
const DWORD c_Costume_Slot_Mount = c_Costume_Slot_Start + CItemData::COSTUME_MOUNT;
#endif
#ifdef ENABLE_ACCE_SYSTEM
const DWORD c_Costume_Slot_Acce = c_Costume_Slot_Start + CItemData::COSTUME_ACCE;
#endif
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM
const DWORD c_Costume_Slot_Weapon = c_Costume_Slot_Start + CItemData::COSTUME_WEAPON; // c_Costume_Slot_End + 1;
#endif
#ifdef ENABLE_AURA_SYSTEM
const DWORD c_Costume_Slot_Aura = c_Costume_Slot_Start + CItemData::COSTUME_AURA;
#endif
#if defined(ENABLE_WEAPON_COSTUME_SYSTEM) || defined(ENABLE_ACCE_SYSTEM)
const DWORD c_Costume_Slot_Count = 8;
#elif defined(ENABLE_MOUNT_COSTUME_SYSTEM)
const DWORD c_Costume_Slot_Count = 3;
#else
const DWORD c_Costume_Slot_Count = 2;
#endif
const DWORD c_Costume_Slot_End = c_Costume_Slot_Start + c_Costume_Slot_Count;
#endif
const DWORD c_Wear_Max = 32;
const DWORD c_DragonSoul_Equip_Start = c_ItemSlot_Count + c_Wear_Max;
const DWORD c_DragonSoul_Equip_Slot_Max = 6;
const DWORD c_DragonSoul_Equip_End = c_DragonSoul_Equip_Start + c_DragonSoul_Equip_Slot_Max * DS_DECK_MAX_NUM;
const DWORD c_DragonSoul_Equip_Reserved_Count = c_DragonSoul_Equip_Slot_Max * 3;
#ifdef ENABLE_NEW_EQUIPMENT_SYSTEM
const DWORD c_Belt_Inventory_Slot_Start = c_DragonSoul_Equip_End + c_DragonSoul_Equip_Reserved_Count;
const DWORD c_Belt_Inventory_Width = 4;
const DWORD c_Belt_Inventory_Height= 4;
const DWORD c_Belt_Inventory_Slot_Count = c_Belt_Inventory_Width * c_Belt_Inventory_Height;
const DWORD c_Belt_Inventory_Slot_End = c_Belt_Inventory_Slot_Start + c_Belt_Inventory_Slot_Count;
const DWORD c_Inventory_Count = c_Belt_Inventory_Slot_End;
#else
const DWORD c_Inventory_Count = c_DragonSoul_Equip_End;
#endif
const DWORD c_DragonSoul_Inventory_Start = 0;
const DWORD c_DragonSoul_Inventory_Box_Size = 32;
const DWORD c_DragonSoul_Inventory_Count = CItemData::DS_SLOT_NUM_TYPES * DRAGON_SOUL_GRADE_MAX * c_DragonSoul_Inventory_Box_Size;
const DWORD c_DragonSoul_Inventory_End = c_DragonSoul_Inventory_Start + c_DragonSoul_Inventory_Count;
#ifdef ENABLE_SPECIAL_STORAGE
const DWORD c_Special_Inventory_Page_Size = 5 * 9;
const DWORD c_Special_Inventory_Page_Count = 4;
const DWORD c_Special_ItemSlot_Count = c_Special_Inventory_Page_Size * c_Special_Inventory_Page_Count;
#endif
enum ESlotType
{
SLOT_TYPE_NONE,
SLOT_TYPE_INVENTORY,
SLOT_TYPE_SKILL,
SLOT_TYPE_EMOTION,
SLOT_TYPE_SHOP,
SLOT_TYPE_EXCHANGE_OWNER,
SLOT_TYPE_EXCHANGE_TARGET,
SLOT_TYPE_QUICK_SLOT,
SLOT_TYPE_SAFEBOX,
SLOT_TYPE_PRIVATE_SHOP,
SLOT_TYPE_MALL,
SLOT_TYPE_DRAGON_SOUL_INVENTORY,
#ifdef ENABLE_SPECIAL_STORAGE
SLOT_TYPE_UPGRADE_INVENTORY,
SLOT_TYPE_BOOK_INVENTORY,
SLOT_TYPE_STONE_INVENTORY,
SLOT_TYPE_CHEST_INVENTORY,
#endif
#ifdef ENABLE_AURA_SYSTEM
SLOT_TYPE_AURA,
#endif
SLOT_TYPE_MAX,
};
#ifdef ENABLE_AURA_SYSTEM
const BYTE c_AuraMaxLevel = 250;
enum EAuraRefineInfoSlot
{
AURA_REFINE_INFO_SLOT_CURRENT,
AURA_REFINE_INFO_SLOT_NEXT,
AURA_REFINE_INFO_SLOT_EVOLVED,
AURA_REFINE_INFO_SLOT_MAX
};
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 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
};
#endif
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 ENABLE_AURA_SYSTEM
AURA_REFINE,
#endif
BELT_INVENTORY,
GROUND,
WINDOW_TYPE_MAX,
};
enum EDSInventoryMaxNum
{
DS_INVENTORY_MAX_NUM = c_DragonSoul_Inventory_Count,
DS_REFINE_WINDOW_MAX_NUM = 15,
};
#pragma pack (push, 1)
#define WORD_MAX 0xffff
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;
}
// int operator=(const int _cell)
// {
//window_type = INVENTORY;
// cell = _cell;
// return cell;
// }
bool IsValidCell()
{
switch (window_type)
{
case INVENTORY:
return cell < c_Inventory_Count;
break;
case EQUIPMENT:
return cell < c_DragonSoul_Equip_End;
break;
case DRAGON_SOUL_INVENTORY:
return cell < (DS_INVENTORY_MAX_NUM);
break;
#ifdef ENABLE_SPECIAL_STORAGE
case UPGRADE_INVENTORY:
return cell < c_Special_ItemSlot_Count;
break;
case BOOK_INVENTORY:
return cell < c_Special_ItemSlot_Count;
break;
case STONE_INVENTORY:
return cell < c_Special_ItemSlot_Count;
break;
case CHEST_INVENTORY:
return cell < c_Special_ItemSlot_Count;
break;
#endif
default:
return false;
}
}
bool IsEquipCell()
{
switch (window_type)
{
case INVENTORY:
case EQUIPMENT:
return (c_Equipment_Start + c_Wear_Max > cell) && (c_Equipment_Start <= cell);
break;
case BELT_INVENTORY:
case DRAGON_SOUL_INVENTORY:
#ifdef ENABLE_SPECIAL_STORAGE
case UPGRADE_INVENTORY:
case BOOK_INVENTORY:
case STONE_INVENTORY:
case CHEST_INVENTORY:
#endif
return false;
break;
default:
return false;
}
}
#ifdef ENABLE_NEW_EQUIPMENT_SYSTEM
bool IsBeltInventoryCell()
{
bool bResult = c_Belt_Inventory_Slot_Start <= cell && c_Belt_Inventory_Slot_End > cell;
return bResult;
}
#endif
bool IsNPOS()
{
return (window_type == RESERVED_WINDOW && cell == WORD_MAX);
}
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) || (cell != rhs.cell);
}
bool operator<(const struct SItemPos& rhs) const
{
return (window_type < rhs.window_type) || ((window_type == rhs.window_type) && (cell < rhs.cell));
}
} TItemPos;
const TItemPos NPOS(RESERVED_WINDOW, WORD_MAX);
#pragma pack(pop)
const DWORD c_QuickBar_Line_Count = 3;
const DWORD c_QuickBar_Slot_Count = 12;
const float c_Idle_WaitTime = 5.0f;
const int c_Monster_Race_Start_Number = 6;
const int c_Monster_Model_Start_Number = 20001;
const float c_fAttack_Delay_Time = 0.2f;
const float c_fHit_Delay_Time = 0.1f;
const float c_fCrash_Wave_Time = 0.2f;
const float c_fCrash_Wave_Distance = 3.0f;
const float c_fHeight_Step_Distance = 50.0f;
enum
{
DISTANCE_TYPE_FOUR_WAY,
DISTANCE_TYPE_EIGHT_WAY,
DISTANCE_TYPE_ONE_WAY,
DISTANCE_TYPE_MAX_NUM,
};
const float c_fMagic_Script_Version = 1.0f;
const float c_fSkill_Script_Version = 1.0f;
const float c_fMagicSoundInformation_Version = 1.0f;
const float c_fBattleCommand_Script_Version = 1.0f;
const float c_fEmotionCommand_Script_Version = 1.0f;
const float c_fActive_Script_Version = 1.0f;
const float c_fPassive_Script_Version = 1.0f;
// Used by PushMove
const float c_fWalkDistance = 175.0f;
const float c_fRunDistance = 310.0f;
#define FILE_MAX_LEN 128
enum
{
ITEM_SOCKET_SLOT_MAX_NUM = 4,
// refactored attribute slot begin
ITEM_ATTRIBUTE_SLOT_NORM_NUM = 5,
ITEM_ATTRIBUTE_SLOT_RARE_NUM = 2,
ITEM_ATTRIBUTE_SLOT_NORM_START = 0,
ITEM_ATTRIBUTE_SLOT_NORM_END = ITEM_ATTRIBUTE_SLOT_NORM_START + ITEM_ATTRIBUTE_SLOT_NORM_NUM,
ITEM_ATTRIBUTE_SLOT_RARE_START = ITEM_ATTRIBUTE_SLOT_NORM_END,
ITEM_ATTRIBUTE_SLOT_RARE_END = ITEM_ATTRIBUTE_SLOT_RARE_START + ITEM_ATTRIBUTE_SLOT_RARE_NUM,
ITEM_ATTRIBUTE_SLOT_MAX_NUM = ITEM_ATTRIBUTE_SLOT_RARE_END, // 7
// refactored attribute slot end
};
#pragma pack(push)
#pragma pack(1)
typedef struct SQuickSlot
{
BYTE Type;
BYTE Position;
} TQuickSlot;
typedef struct TPlayerItemAttribute
{
BYTE bType;
short sValue;
} TPlayerItemAttribute;
typedef struct packet_item
{
DWORD vnum;
BYTE count;
DWORD flags;
DWORD anti_flags;
long alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
} TItemData;
typedef struct packet_shop_item
{
DWORD vnum;
DWORD price;
BYTE count;
BYTE display_pos;
long alSockets[ITEM_SOCKET_SLOT_MAX_NUM];
TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_SLOT_MAX_NUM];
} TShopItemData;
#pragma pack(pop)
inline float GetSqrtDistance(int ix1, int iy1, int ix2, int iy2) // By sqrt
{
float dx, dy;
dx = float(ix1 - ix2);
dy = float(iy1 - iy2);
return sqrtf(dx*dx + dy*dy);
}
// DEFAULT_FONT
void DefaultFont_Startup();
void DefaultFont_Cleanup();
void DefaultFont_SetName(const char * c_szFontName);
CResource* DefaultFont_GetResource();
CResource* DefaultItalicFont_GetResource();
// END_OF_DEFAULT_FONT
void SetGuildSymbolPath(const char * c_szPathName);
const char * GetGuildSymbolFileName(DWORD dwGuildID);
BYTE SlotTypeToInvenType(BYTE bSlotType);
#ifdef ENABLE_DETAILS_INTERFACE
BYTE ApplyTypeToPointType(BYTE bApplyType);
#endif
#ifdef ENABLE_AURA_SYSTEM
int* GetAuraRefineInfo(BYTE bLevel);
#endif
gamelib / ItemData.h
userinterface / GameType.h
length.h
dosyalarını konuya dahil edermisin
birde en son ne işlem yaptın ?
#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,
WEAR_MAX_NUM = 32,
#ifdef ENABLE_HWID_BAN_SYSTEM
CPU_ID_MAX_LEN = 128,
HDD_MODEL_MAX_LEN = 128,
MACHINE_GUID_MAX_LEN = 128,
MAC_ADDR_MAX_LEN = 128,
HDD_SERIAL_MAX_LEN = 128,
#endif
#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 = 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,
#ifdef ENABLE_RENAME_ALIGNMENT_SYSTEM
TITLE_MAX_NUM = 25,
TITLE_COLOR_MAX_NUM = 4, // r, g, b, a
#endif
#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
};
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 ENABLE_EFFECT_SYSTEM
WEAR_EFFECT_ARMOR,
WEAR_EFFECT_WEAPON,
#endif
WEAR_RING1,//25
WEAR_RING2,//26
WEAR_BELT,//27
#ifdef ENABLE_PENDANT_SYSTEM
WEAR_PENDANT,//28
#endif
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
};
#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,
};
enum EParts
{
PART_MAIN,
PART_WEAPON,
PART_HEAD,
PART_HAIR,
#ifdef ENABLE_ACCE_SYSTEM
PART_ACCE,
#endif
#ifdef __AURA_SYSTEM__
PART_AURA,
#endif
#ifdef ENABLE_EFFECT_SYSTEM
BODY_EFFECT,
WEAPON_RIGHT_EFFECT,
WEAPON_LEFT_EFFECT,
#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
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 = 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,
};
#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
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;
#ifdef ENABLE_SKILL_COLOR_SYSTEM
namespace ESkillColorLength
{
enum ESkillColorLength
{
MAX_SKILL_COUNT = 6,
MAX_EFFECT_COUNT = 5,
MAX_BUFF_COUNT = 5,
BUFF_BEGIN = MAX_SKILL_COUNT,
};
}
#endif
#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
syserr düşmüyorSyser da iletebilir misin.
bu giymeli efekt sistemiyse onlar için ayrı slot var aksam bakalım olurENABLE_EFFECT_SYSTEM
Bu sistem den kaynaklanıyor büyük ihtimalle PC de değilim akşam bakalım
//değiştir
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 ENABLE_AURA_SYSTEM
WEAR_COSTUME_AURA,// 24
#endif
#ifdef ENABLE_EFFECT_SYSTEM
WEAR_EFFECT_ARMOR,
WEAR_EFFECT_WEAPON,
#endif
WEAR_RING1,// 27
WEAR_RING2,// 28
WEAR_BELT,// 29
#ifdef ENABLE_PENDANT_SYSTEM
WEAR_PENDANT,// 30
#endif
WEAR_MAX_NUM = 32,
};
//değiştir
#ifdef ENABLE_COSTUME_SYSTEM
const DWORD c_Costume_Slot_Start = c_Equipment_Start + 19;
const DWORD c_Costume_Slot_Body = c_Costume_Slot_Start + 0;
const DWORD c_Costume_Slot_Hair = c_Costume_Slot_Start + 1;
#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
const DWORD c_Costume_Slot_Mount = c_Costume_Slot_Start + 2;
#endif
#ifdef ENABLE_ACCE_SYSTEM
const DWORD c_Costume_Slot_Acce = c_Costume_Slot_Start + 3;
#endif
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM
const DWORD c_Costume_Slot_Weapon = c_Costume_Slot_Start + 4;
#endif
#ifdef ENABLE_AURA_SYSTEM
const DWORD c_Costume_Slot_Aura = c_Costume_Slot_Start + 5;
#endif
const DWORD c_Costume_Effect_Body = c_Costume_Slot_Start + 6;
const DWORD c_Costume_Effect_Weapon = c_Costume_Slot_Start + 7;
const DWORD c_Costume_Slot_Count = 8;
const DWORD c_Costume_Slot_End = c_Costume_Slot_Start + c_Costume_Slot_Count;
#endif
//değiştir
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 ENABLE_EFFECT_SYSTEM
WEAR_EFFECT_ARMOR,
WEAR_EFFECT_WEAPON,
#endif
WEAR_RING1,//27
WEAR_RING2,//28
WEAR_BELT,//29
#ifdef ENABLE_PENDANT_SYSTEM
WEAR_PENDANT,//30
#endif
WEAR_MAX = 32 //
};