forked from metin2/server
372 lines
8.2 KiB
C
372 lines
8.2 KiB
C
#ifndef __INC_METIN2_ITEM_LENGTH_H__
|
|
#define __INC_METIN2_ITEM_LENGTH_H__
|
|
|
|
enum EItemMisc
|
|
{
|
|
ITEM_NAME_MAX_LEN = 24,
|
|
ITEM_VALUES_MAX_NUM = 6,
|
|
ITEM_SMALL_DESCR_MAX_LEN = 256,
|
|
ITEM_LIMIT_MAX_NUM = 2,
|
|
ITEM_APPLY_MAX_NUM = 3,
|
|
ITEM_SOCKET_MAX_NUM = 3,
|
|
ITEM_MAX_COUNT = 200,
|
|
ITEM_ATTRIBUTE_MAX_NUM = 7,
|
|
ITEM_ATTRIBUTE_MAX_LEVEL = 5,
|
|
ITEM_AWARD_WHY_MAX_LEN = 50,
|
|
|
|
REFINE_MATERIAL_MAX_NUM = 5,
|
|
|
|
ITEM_ELK_VNUM = 50026,
|
|
};
|
|
|
|
const BYTE ITEM_SOCKET_REMAIN_SEC = 0;
|
|
enum EItemValueIdice
|
|
{
|
|
ITEM_VALUE_DRAGON_SOUL_POLL_OUT_BONUS_IDX = 0,
|
|
ITEM_VALUE_CHARGING_AMOUNT_IDX = 0,
|
|
ITEM_VALUE_SECONDARY_COIN_UNIT_IDX = 0,
|
|
};
|
|
enum EItemDragonSoulSockets
|
|
{
|
|
ITEM_SOCKET_DRAGON_SOUL_ACTIVE_IDX = 2,
|
|
ITEM_SOCKET_CHARGING_AMOUNT_IDX = 2,
|
|
};
|
|
// 헐 이거 미친거 아니야?
|
|
// 나중에 소켓 확장하면 어쩌려고 이지랄 -_-;;;
|
|
enum EItemUniqueSockets
|
|
{
|
|
ITEM_SOCKET_UNIQUE_SAVE_TIME = ITEM_SOCKET_MAX_NUM - 2,
|
|
ITEM_SOCKET_UNIQUE_REMAIN_TIME = ITEM_SOCKET_MAX_NUM - 1
|
|
};
|
|
|
|
enum EItemTypes
|
|
{
|
|
ITEM_NONE, //0
|
|
ITEM_WEAPON, //1//무기
|
|
ITEM_ARMOR, //2//갑옷
|
|
ITEM_USE, //3//아이템 사용
|
|
ITEM_AUTOUSE, //4
|
|
ITEM_MATERIAL, //5
|
|
ITEM_SPECIAL, //6 //스페셜 아이템
|
|
ITEM_TOOL, //7
|
|
ITEM_LOTTERY, //8//복권
|
|
ITEM_ELK, //9//돈
|
|
ITEM_METIN, //10
|
|
ITEM_CONTAINER, //11
|
|
ITEM_FISH, //12//낚시
|
|
ITEM_ROD, //13
|
|
ITEM_RESOURCE, //14
|
|
ITEM_CAMPFIRE, //15
|
|
ITEM_UNIQUE, //16
|
|
ITEM_SKILLBOOK, //17
|
|
ITEM_QUEST, //18
|
|
ITEM_POLYMORPH, //19
|
|
ITEM_TREASURE_BOX, //20//보물상자
|
|
ITEM_TREASURE_KEY, //21//보물상자 열쇠
|
|
ITEM_SKILLFORGET, //22
|
|
ITEM_GIFTBOX, //23
|
|
ITEM_PICK, //24
|
|
ITEM_HAIR, //25//머리
|
|
ITEM_TOTEM, //26//토템
|
|
ITEM_BLEND, //27//생성될때 랜덤하게 속성이 붙는 약물
|
|
ITEM_COSTUME, //28//코스츔 아이템 (2011년 8월 추가된 코스츔 시스템용 아이템)
|
|
ITEM_DS, //29 //용혼석
|
|
ITEM_SPECIAL_DS, //30 // 특수한 용혼석 (DS_SLOT에 착용하는 UNIQUE 아이템이라 생각하면 됨)
|
|
ITEM_EXTRACT, //31 추출도구.
|
|
ITEM_SECONDARY_COIN, //32 ?? 명도전??
|
|
ITEM_RING, //33 반지
|
|
ITEM_BELT, //34 벨트
|
|
};
|
|
|
|
enum EMetinSubTypes
|
|
{
|
|
METIN_NORMAL,
|
|
METIN_GOLD,
|
|
};
|
|
|
|
enum EWeaponSubTypes
|
|
{
|
|
WEAPON_SWORD,
|
|
WEAPON_DAGGER,
|
|
WEAPON_BOW,
|
|
WEAPON_TWO_HANDED,
|
|
WEAPON_BELL,
|
|
WEAPON_FAN,
|
|
WEAPON_ARROW,
|
|
WEAPON_MOUNT_SPEAR,
|
|
WEAPON_NUM_TYPES,
|
|
};
|
|
|
|
enum EArmorSubTypes
|
|
{
|
|
ARMOR_BODY,
|
|
ARMOR_HEAD,
|
|
ARMOR_SHIELD,
|
|
ARMOR_WRIST,
|
|
ARMOR_FOOTS,
|
|
ARMOR_NECK,
|
|
ARMOR_EAR,
|
|
ARMOR_NUM_TYPES
|
|
};
|
|
|
|
enum ECostumeSubTypes
|
|
{
|
|
COSTUME_BODY = ARMOR_BODY, // [중요!!] ECostumeSubTypes enum value는 종류별로 EArmorSubTypes의 그것과 같아야 함.
|
|
COSTUME_HAIR = ARMOR_HEAD, // 이는 코스츔 아이템에 추가 속성을 붙이겠다는 사업부의 요청에 따라서 기존 로직을 활용하기 위함임.
|
|
COSTUME_NUM_TYPES,
|
|
};
|
|
|
|
enum EDragonSoulSubType
|
|
{
|
|
DS_SLOT1,
|
|
DS_SLOT2,
|
|
DS_SLOT3,
|
|
DS_SLOT4,
|
|
DS_SLOT5,
|
|
DS_SLOT6,
|
|
DS_SLOT_MAX,
|
|
};
|
|
|
|
enum EDragonSoulGradeTypes
|
|
{
|
|
DRAGON_SOUL_GRADE_NORMAL,
|
|
DRAGON_SOUL_GRADE_BRILLIANT,
|
|
DRAGON_SOUL_GRADE_RARE,
|
|
DRAGON_SOUL_GRADE_ANCIENT,
|
|
DRAGON_SOUL_GRADE_LEGENDARY,
|
|
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,
|
|
};
|
|
#define DRAGON_SOUL_STRENGTH_MAX 7
|
|
|
|
enum EDSInventoryMaxNum
|
|
{
|
|
DRAGON_SOUL_INVENTORY_MAX_NUM = DS_SLOT_MAX * DRAGON_SOUL_GRADE_MAX * DRAGON_SOUL_BOX_SIZE,
|
|
};
|
|
|
|
enum EFishSubTypes
|
|
{
|
|
FISH_ALIVE,
|
|
FISH_DEAD,
|
|
};
|
|
|
|
enum EResourceSubTypes
|
|
{
|
|
RESOURCE_FISHBONE,
|
|
RESOURCE_WATERSTONEPIECE,
|
|
RESOURCE_WATERSTONE,
|
|
RESOURCE_BLOOD_PEARL,
|
|
RESOURCE_BLUE_PEARL,
|
|
RESOURCE_WHITE_PEARL,
|
|
RESOURCE_BUCKET,
|
|
RESOURCE_CRYSTAL,
|
|
RESOURCE_GEM,
|
|
RESOURCE_STONE,
|
|
RESOURCE_METIN,
|
|
RESOURCE_ORE,
|
|
};
|
|
|
|
enum EUniqueSubTypes
|
|
{
|
|
UNIQUE_NONE,
|
|
UNIQUE_BOOK,
|
|
UNIQUE_SPECIAL_RIDE,
|
|
UNIQUE_SPECIAL_MOUNT_RIDE,
|
|
};
|
|
|
|
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, // 29 벨트 소켓에 사용할 수 있는 아이템
|
|
USE_PUT_INTO_RING_SOCKET, // 30 반지 소켓에 사용할 수 있는 아이템 (유니크 반지 말고, 새로 추가된 반지 슬롯)
|
|
};
|
|
|
|
enum EExtractSubTypes
|
|
{
|
|
EXTRACT_DRAGON_SOUL,
|
|
EXTRACT_DRAGON_HEART,
|
|
};
|
|
|
|
enum EAutoUseSubTypes
|
|
{
|
|
AUTOUSE_POTION,
|
|
AUTOUSE_ABILITY_UP,
|
|
AUTOUSE_BOMB,
|
|
AUTOUSE_GOLD,
|
|
AUTOUSE_MONEYBAG,
|
|
AUTOUSE_TREASURE_BOX
|
|
};
|
|
|
|
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 ESpecialSubTypes
|
|
{
|
|
SPECIAL_MAP,
|
|
SPECIAL_KEY,
|
|
SPECIAL_DOC,
|
|
SPECIAL_SPIRIT,
|
|
};
|
|
|
|
enum EToolSubTypes
|
|
{
|
|
TOOL_FISHING_ROD
|
|
};
|
|
|
|
enum ELotterySubTypes
|
|
{
|
|
LOTTERY_TICKET,
|
|
LOTTERY_INSTANT
|
|
};
|
|
|
|
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_UNUSED01 = (1 << 5), // UNUSED
|
|
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_QUEST_GIVE = (1 << 12),
|
|
ITEM_FLAG_LOG = (1 << 13),
|
|
ITEM_FLAG_APPLICABLE = (1 << 14),
|
|
};
|
|
|
|
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), // A 제국 사용 불가
|
|
ITEM_ANTIFLAG_EMPIRE_B = (1 << 10), // B 제국 사용 불가
|
|
ITEM_ANTIFLAG_EMPIRE_C = (1 << 11), // C 제국 사용 불가
|
|
ITEM_ANTIFLAG_SAVE = (1 << 12), // 저장되지 않음
|
|
ITEM_ANTIFLAG_GIVE = (1 << 13), // 거래 불가
|
|
ITEM_ANTIFLAG_PKDROP = (1 << 14), // PK시 떨어지지 않음
|
|
ITEM_ANTIFLAG_STACK = (1 << 15), // 합칠 수 없음
|
|
ITEM_ANTIFLAG_MYSHOP = (1 << 16), // 개인 상점에 올릴 수 없음
|
|
ITEM_ANTIFLAG_SAFEBOX = (1 << 17), // 창고에 넣을 수 없음
|
|
};
|
|
|
|
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_HAIR = (1 << 10),
|
|
WEARABLE_ABILITY = (1 << 11),
|
|
WEARABLE_COSTUME_BODY = (1 << 12),
|
|
};
|
|
|
|
enum ELimitTypes
|
|
{
|
|
LIMIT_NONE,
|
|
|
|
LIMIT_LEVEL,
|
|
LIMIT_STR,
|
|
LIMIT_DEX,
|
|
LIMIT_INT,
|
|
LIMIT_CON,
|
|
LIMIT_PCBANG,
|
|
|
|
/// 착용 여부와 상관 없이 실시간으로 시간 차감 (socket0에 소멸 시간이 박힘: unix_timestamp 타입)
|
|
LIMIT_REAL_TIME,
|
|
|
|
/// 아이템을 맨 처음 사용(혹은 착용) 한 순간부터 리얼타임 타이머 시작
|
|
/// 최초 사용 전에는 socket0에 사용가능시간(초단위, 0이면 프로토의 limit value값 사용) 값이 쓰여있다가
|
|
/// 아이템 사용시 socket1에 사용 횟수가 박히고 socket0에 unix_timestamp 타입의 소멸시간이 박힘.
|
|
LIMIT_REAL_TIME_START_FIRST_USE,
|
|
|
|
/// 아이템을 착용 중일 때만 사용 시간이 차감되는 아이템
|
|
/// socket0에 남은 시간이 초단위로 박힘. (아이템 최초 사용시 해당 값이 0이면 프로토의 limit value값을 socket0에 복사)
|
|
LIMIT_TIMER_BASED_ON_WEAR,
|
|
|
|
LIMIT_MAX_NUM
|
|
};
|
|
|
|
enum EAttrAddonTypes
|
|
{
|
|
ATTR_ADDON_NONE,
|
|
// positive values are reserved for set
|
|
ATTR_DAMAGE_ADDON = -1,
|
|
};
|
|
|
|
enum ERefineType
|
|
{
|
|
REFINE_TYPE_NORMAL,
|
|
REFINE_TYPE_NOT_USED1,
|
|
REFINE_TYPE_SCROLL,
|
|
REFINE_TYPE_HYUNIRON,
|
|
REFINE_TYPE_MONEY_ONLY,
|
|
REFINE_TYPE_MUSIN,
|
|
REFINE_TYPE_BDRAGON,
|
|
};
|
|
|
|
#endif
|