#pragma once /* ItemBase by Testors 2004-05-13 . ItemCode 와 ItemUID 의 차이점. ex1) 바스타드 소드의 ItemCode 는 1, 가죽 갑옷의 Item Code 는 2 이다. ex2) 바스타드 소드가 두자루 있을경우 각각은 다른 ItemUID 을 갖는다. */ #include #include #include #include "StructGold.h" #include "ItemEffect.h" // 아이템 컨텐츠 정보 struct ItemBase { typedef int ItemCode; typedef XFlag BaseFlag; enum { ITEM_CODE_WEARED_BULLET = 100001, ITEM_CODE_EMPTY_BOTTLE = 100002, }; enum { ITEM_CODE_NORMAL_BOTTLE = 800102, ITEM_CODE_PREMIUM_BOTTLE = 800104, ITEM_CODE_BEGINNERS_BAG = 490001, // 수련자의 가방(기본 지급 아이템) ITEM_CODE_STAMINA_SAVER = 900000, // 스테미너 세이버 ITEM_CODE_STAMINA_SAVER_NOT_FOR_SALE = 900010, // 스테미너 세이버(비매품 - 거래 불가) ITEM_CODE_STAMINA_SAVER_FOR_NOVICE = 900011, // 초보자의 스테미너 세이버(초보자 지원용) ITEM_CODE_STAMINA_SAVER_OF_LOVE = 2000203, // 사랑의 스테미너 세이버(발렌타인 데이 이벤트 보상용) ITEM_CODE_FAIRY_POTION = 910004, // 요정의 병(사용 안 함) ITEM_CODE_GRAND_FAIRY_POTION = 910005, // 대모요정의 병 ITEM_CODE_GRAND_FAIRY_POTION_BY_PLAYPOINT = 2902042, // 대모요정의 병(플레이 포인트 샵 판매용) ITEM_CODE_GRAND_FAIRY_POTION_NOT_FOR_SALE = 2010454, // 대모요정의 병(비매품)<09년국내 출석 이벤트> ITEM_CODE_GRAND_FAIRY_POTION_TIME = 910102, ITEM_CODE_RETURN_FEATHER = 910006, // 귀환의 깃털 ITEM_CODE_RETURN_FEATHER_SECRET_DUNGEON = 910080, // 귀환의 깃털: 숨겨진 던전 마스터 ITEM_CODE_RETURN_BACK_FEATHER = 910009, // 복귀의 깃털 ITEM_CODE_EVENT_RETURN_FEATHER = 2902104, // 레벨업 달성 이벤트 보상 귀환의 깃털 ITEM_CODE_EVENT_RETURN_FEATHER2 = 2012099, // 귀환의 깃털 (이벤트용) ITEM_CODE_RUPPI_RETURN_FEATHER = 9000098, // 테스트 서버 크루템 일반 판매용 귀환의 깃털 ITEM_CODE_FAIRY_LOCK = 920005, // 요정의 자물쇠 ITEM_CODE_FAIRY_LOCK2 = 960125, ITEM_CODE_SECROUTE_WARP_TICKET = 910023, // 시크루트 귀환권 ITEM_CODE_HUNTAHOLIC_POINT_TICKET = 806808, // 헌터홀릭 포인트 카드 ITEM_CODE_RENAME_CHARACTER_TYPE1 = 930040, // 캐릭터 이름 변경 신청서(친구/차단 등록 삭제용) ITEM_CODE_RENAME_CHARACTER_TYPE2 = 930042, // 캐릭터 이름 변경 신청서(친구/차단 등록 유지/갱신용) ITEM_CODE_RENAME_CHARACTER_TYPE3 = 2010459, // 아바타명 변경 서비스권(비매품)<09년국내 출석 이벤트> ITEM_CODE_RENAME_CHARACTER_TYPE4 = 2012645, // 아바타명 변경권<2012><서버통합건> ITEM_CODE_MIRROR_OF_TAMING_CARD = 960019, // 테이밍 카드의 거울(테이밍 성공/실패 시 소모, 실패 시에 카드 보호)<캐시템> ITEM_CODE_MIRROR_OF_TAMING_CARD_TRADABLE = 960021, // 테이밍 카드의 거울(테이밍 성공/실패 시 소모, 실패 시에 카드 보호)<거래가능> ITEM_CODE_MIRROR_OF_TAMING_CARD_ON_TEST = 9000111, // 테이밍 카드의 거울(테이밍 성공/실패 시 소모, 실패 시에 카드 보호)<테스트서버용> ITEM_CODE_INGAME_POINT = 806809, // 인게임 포인트 아이템 ITEM_CODE_INGAME_POINT2 = 806815, // 인게임 포인트 아이템 ITEM_CODE_INGAME_POINT3 = 806816, // 인게임 포인트 아이템 ITEM_CODE_JOKER = 540070, // 조커 카드 ITEM_CODE_CREATURE_TAMING_SCROLL = 491008, // 크리처 테이밍 주문서(크리처 테이밍 스킬을 동작시키지만 쿨타임 무시) ITEM_CODE_CREATURE_TAMING_SCROLL_EVENT = 2012861, // 크리처 테이밍 주문서(이벤트용. 거래불가) ITEM_CODE_CREATURE_TAMING_SCROLL_EVENT2 = 2013145, // 크리처 테이밍 주문서(이벤트용. 캐릭귀속) ITEM_CODE_CREATURE_TAMING_SCROLL_LV30 = 491012, }; enum { CODE_BASE_BOOSTER = 603000, CODE_BASE_BACKBOARD = 603100, }; enum { MAX_COOLTIME_GROUP = 40, MAX_OPTION_NUMBER = 4, MAX_SOCKET_NUMBER = 4, // 4 MAX_ITEM_NAME_LENGTH = 32, MAX_ITEM_REPAIR = 12, MAX_ITEM_WEAR = 28, <<<<<<< HEAD MAX_SPARE_ITEM_WEAR = 35, ======= MAX_SPARE_ITEM_WEAR = 28, >>>>>>> a34328224e914a577b99c79ec6e8ffbcea554a05 }; ItemCode nCode; // 아이템 코드 int nNameId; // 이름 int nType; // 아이템 타입 enum ITEM_TYPE { TYPE_ETC = 0, // 일반 TYPE_ARMOR = 1, // 장비 TYPE_CARD = 2, // 카드 TYPE_SUPPLY = 3, // 소모품 TYPE_CUBE = 4, // 큐브 TYPE_CHARM = 5, // 부적 TYPE_USE = 6, // 사용형 - 소모되지 않고 쿨타임만 TYPE_SOULSTONE = 7, // 소울스톤 TYPE_USE_CARD = 8, TYPE_COLLECTION = 9, }; int nGroup; // 그룹 ID enum ITEM_GROUP { GROUP_ETC = 0, // 기타 GROUP_WEAPON = 1, // 무기 GROUP_ARMOR = 2, // 의상 GROUP_SHIELD = 3, // 방패 GROUP_HELM = 4, // 투구 GROUP_GLOVE = 5, // 장갑 GROUP_BOOTS = 6, // 부츠 GROUP_BELT = 7, // 벨트 GROUP_MANTLE = 8, // 망토 GROUP_ACCESSORY = 9, // 악세서리 GROUP_SKILLCARD = 10, // 스킬 카드 GROUP_ITEMCARD = 11, // 유니트 카드 GROUP_SPELLCARD = 12, // 스펠 카드(미구현) GROUP_SUMMONCARD = 13, // 소환수 카드 GROUP_FACE = 15, // 가면 GROUP_UNDERWEAR = 16, // 속옷 GROUP_BAG = 17, // 가방 GROUP_PET_CAGE = 18, // 펫 우리 GROUP_BACKPACK = 19, GROUP_STRIKE_CUBE = 21, // 스트라이크 큐브 GROUP_DEFENCE_CUBE = 22, // 디펜스 큐브 GROUP_SKILL_CUBE = 23, // 스킬 큐브 GROUP_RESTORATION_CUBE = 24, // 환원의 큐브 GROUP_EMBLEM = 25, GROUP_CASH_ITEM = 80, GROUP_SOULSTONE = 93, // 소울 스톤 GROUP_BULLET = 98, // 탄환 GROUP_CONSUMABLE = 99, // 소모품 GROUP_NPC_FACE = 100, // NPC용 얼굴 GROUP_DECO = 110, // 꾸미기 GROUP_RIDING = 120, // 탑승용 아이템 GROUP_ARTIFACT = 130, // 아티팩트 아이템 GROUP_EQUIPMENT_ON_BELT = 140, // 벨트 장착용 보스 카드 GROUP_SKIN1 = 150, GROUP_SKIN2 = 151, GROUP_SKIN3 = 152, }; enum ItemClass { // 미분류 CLASS_ETC = 0, // 무기 <<<<<<< HEAD ======= // AziaMafia Double Arba //CLASS_DOUBLE_CROSSBOW = 94 , >>>>>>> a34328224e914a577b99c79ec6e8ffbcea554a05 CLASS_DOUBLE_AXE = 95, // 쌍도끼 CLASS_DOUBLE_SWORD = 96, CLASS_DOUBLE_DAGGER = 98, CLASS_EVERY_WEAPON = 99, CLASS_ETCWEAPON = 100, // 기타무기 CLASS_ONEHAND_SWORD = 101, // 한손검 CLASS_TWOHAND_SWORD = 102, // 양손검 CLASS_DAGGER = 103, // 단검 CLASS_TWOHAND_SPEAR = 104, // 창 CLASS_TWOHAND_AXE = 105, // 양손도끼 CLASS_ONEHAND_MACE = 106, // 한손메이스 CLASS_TWOHAND_MACE = 107, // 양손메이스 CLASS_HEAVY_BOW = 108, // 헤비 보우 CLASS_LIGHT_BOW = 109, // 라이트 보우 CLASS_CROSSBOW = 110, // 석궁 CLASS_ONEHAND_STAFF = 111, // 한손지팡이 CLASS_TWOHAND_STAFF = 112, // 양손지팡이 CLASS_ONEHAND_AXE = 113, // 한손도끼 <<<<<<< HEAD CLASS_DOUBLE_CROSSBOW = 114, //Double Crossbow ======= CLASS_DOUBLE_CROSSBOW = 114, // From ZONE source; dual crossbows >>>>>>> a34328224e914a577b99c79ec6e8ffbcea554a05 //CLASS_DOUBLE_WEAPON = 199, // 방어구 CLASS_ARMOR = 200, // 공용의상 CLASS_FIGHTER_ARMOR = 201, // 전사용 CLASS_HUNTER_ARMOR = 202, // 헌터용 CLASS_MAGICIAN_ARMOR= 203, // 마법사용 CLASS_SUMMONER_ARMOR= 204, // 소환사용 // CLASS_SHIELD = 210, // 공용방패 CLASS_HELM = 220, // 공용투구 CLASS_BOOTS = 230, // 공용부츠 CLASS_GLOVE = 240, // 공용장갑 CLASS_BELT = 250, // 공용벨트 CLASS_MANTLE = 260, // 공용망토 CLASS_QUIVER = 265, // 화살통 CLASS_BOOSTER = 266, // 악세사리 CLASS_ETC_ACCESSORY = 300, // 기타악세사리 CLASS_RING = 301, // 링 CLASS_EARRING = 302, // 귀걸이 CLASS_ARMULET = 303, // 목걸이 CLASS_EYEGLASS = 304, // 안경 CLASS_MASK = 305, // 수염 CLASS_CUBE = 306, // 큐브 // 포스칩, 소울칩, 루나칩 CLASS_BOOST_CHIP = 400, // 소울스톤 CLASS_SOULSTONE = 401, CLASS_CREATURE_FOOD = 402, CLASS_FARM_PASS = 403, // 에테리얼 스톤(충전용 배터리) CLASS_ETHEREAL_STONE = 451, // 꾸미기 아이템 //CLASS_DECO_WEAPON = 600, // 꾸미기 무기, 사용하지 않음(무기 종류별 상세 구분 ID로 대체, 609~621) CLASS_DECO_SHIELD = 601, // 꾸미기 방패 CLASS_DECO_ARMOR = 602, // 꾸미기 갑옷 CLASS_DECO_HELM = 603, // 꾸미기 투구 CLASS_DECO_GLOVE = 604, // 꾸미기 장갑 CLASS_DECO_BOOTS = 605, // 꾸미기 부츠 CLASS_DECO_MALTLE = 606, // 꾸미기 망토 CLASS_DECO_SHOULDER = 607, // 꾸미기 어깨(날개) CLASS_DECO_HAIR = 608, // 꾸미기 헤어 CLASS_DECO_ONEHAND_SWORD = 609, // 꾸미기 한손검 CLASS_DECO_TWOHAND_SWORD = 610, // 꾸미기 양손검 CLASS_DECO_DAGGER = 611, // 꾸미기 단검 CLASS_DECO_TWOHAND_SPEAR = 612, // 꾸미기 양손창 CLASS_DECO_TWOHAND_AXE = 613, // 꾸미기 양손도끼 CLASS_DECO_ONEHAND_MACE = 614, // 꾸미기 한손메이스 CLASS_DECO_TWOHAND_MACE = 615, // 꾸미기 양손메이스 CLASS_DECO_HEAVY_BOW = 616, // 꾸미기 헤비 보우 CLASS_DECO_LIGHT_BOW = 617, // 꾸미기 라이트 보우 CLASS_DECO_CROSSBOW = 618, // 꾸미기 석궁 CLASS_DECO_ONEHAND_STAFF = 619, // 꾸미기 한손지팡이 CLASS_DECO_TWOHAND_STAFF = 620, // 꾸미기 양손지팡이 CLASS_DECO_ONEHAND_AXE = 621 , // 꾸미기 한손도끼 CLASS_ELEMENT_EFFECT = 700, // 속성이펙트 CLASS_ELEMENT_ONEHAND_PHYSICAL = 701, // 속성이펙트공격력강화 (한손) CLASS_ELEMENT_ONEHAND_MAGICAL = 702, // 속성이펙트마력강화 (한손) CLASS_ELEMENT_TWOHAND_PHYSICAL = 703, // 속성이펙트공격력강화 (양손) CLASS_ELEMENT_TWOHAND_MAGICAL = 704, // 속성이펙트마력강화 (양손) }; ItemClass nClass; // 계열 int nSetID; // 세트 아이디 int nSetPartFlag; // 세트 파트 플래그 unsigned char nGrade; // 등급(에테리얼 내구도 관련) int nRank; // 랭크 int nLevel; // 아이템 생성시 기본 레벨 int nEnhance; // 아이템 생성시 기본 강화 int nSocketCount; int nInstanceFlag; char nJobDepth; // 직업 차수( 비트셋형태, 0차 직업 = 1, 1차 직업 = 2, 2차 직업 = 4, 3차 직업 = 8 ) int nMinLevel; int nMaxLevel; int nTargetMinLevel; int nTargetMaxLevel; int nRange; // 사정거리 float fWeight; // 무게 StructGold nPrice; // 상점 판매가 - 루피(플레이어 입장 구매가) int nHuntaholicPoint; // 상점 판매가 - 헌터홀릭 포인트(플레이어 입장 구매가) int nArenaPoint; // 상점 판매가 - 아레나 포인트(플레이어 입장 구매가) int nEtherealDurability; // 에테리얼 내구도 int nEndurance; // 내구성 enum ItemWearType { WEAR_CANTWEAR = -1, // 장비불가 WEAR_NONE = -1, // 장비 하지 않음 WEAR_WEAPON = 0, // 오른손전용 (방패라던가) WEAR_SHIELD = 1, // 왼손전용 WEAR_ARMOR = 2, // 갑옷 WEAR_HELM = 3, // 투구 WEAR_GLOVE = 4, // 장갑 WEAR_BOOTS = 5, // 부츠 WEAR_BELT = 6, // 벨트 WEAR_MANTLE = 7, // 망토 WEAR_ARMULET = 8, // 목걸이 WEAR_RING = 9, // 반지 // 10 은 반지 두번째 슬롯을 위해 예약 WEAR_EAR = 11, // 귀걸이 WEAR_FACE = 12, // 눈 WEAR_BACKPACK = 13, // 입 WEAR_DECO_WEAPON = 14, WEAR_DECO_SHIELD = 15, WEAR_DECO_ARMOR = 16, WEAR_DECO_HELM = 17, WEAR_DECO_GLOVE = 18, WEAR_DECO_BOOTS = 19, WEAR_DECO_MANTLE = 20, WEAR_DECO_SHOULDER = 21, WEAR_RIDE_ITEM = 22, WEAR_BAG_SLOT = 23, WEAR_BOOSTER = 24, WEAR_BACKBOARD = 25, WEAR_SECOND_EAR = 26, WEAR_CHAOS_STONE = 27, WEAR_SPARE_WEAPON = 28, WEAR_SPARE_SHIELD = 29, WEAR_SPARE_DECO_WEAPON = 30, WEAR_SPARE_DECO_SHIELD = 31, WEAR_TWOFINGER_RING = 94, // 반지 두칸 소모 WEAR_TWOHAND = 99, // 투핸드 WEAR_SKILL = 100, // 스킬 WEAR_SUMMON_ONLY = 200, // 크리처 전용 장비 WEAR_SECOND_RING = 10, WEAR_RIGHTHAND = WEAR_WEAPON, // 오른손전용 WEAR_LEFTHAND = WEAR_SHIELD, // 왼손전용 (방패라던가) WEAR_BULLET = WEAR_SHIELD, // 탄환 WEAR_SPARE_RIGHTHAND = WEAR_SPARE_WEAPON, // 오른손전용 WEAR_SPARE_LEFTHAND = WEAR_SPARE_SHIELD, // 왼손전용 (방패라던가) WEAR_SPARE_BULLET = WEAR_SPARE_SHIELD, // 탄환 }; ItemWearType WearType; enum LIMIT_FLAG { LIMIT_DEVA = (1 << 2), // 데바 LIMIT_ASURA = (1 << 3), // 아수라 LIMIT_GAIA = (1 << 4), // 가이아 LIMIT_FIGHTER = (1 << 10), // 전사 LIMIT_HUNTER = (1 << 11), // 헌터 LIMIT_MAGICIAN = (1 << 12), // 마법사 LIMIT_SUMMONER = (1 << 13), // 소환사 }; int nLimit; // 사용제한 BaseFlag Flag; enum ITEM_FLAG { FLAG_CANT_DONATE = 0, // 기부 불가 여부 FLAG_CANT_STORAGE = 1, // 창고 집어넣을 수 있는지 없는지 여부 FLAG_CANT_ENHANCE = 2, // 강화 불가 FLAG_USE = 3, // 소모성 사용 가능 여부 FLAG_CARD = 4, // 카드화 가능여부 FLAG_SOCKET = 5, // 소켓삽입가능여부 FLAG_JOIN = 6, // 중첩 가능 여부 FLAG_TARGET_USE = 7, // 타겟 지정 사용 여부 FLAG_WARP = 8, // 사용시 워프하는 아이템임 FLAG_CANT_TRADE = 9, // 트레이드가능여부 (1이면 불가인듯) FLAG_CANT_SELL = 10, // 상점 매각 가능 여부 FLAG_QUEST = 11, // 퀘스트 아이템 여부 FLAG_CANT_USE_OVERWEIGHT = 12, // 무게 초과시 사용 불가 여부 FLAG_CASHITEM = 13, // 캐쉬템 여부 FLAG_CANT_USE_RIDING = 14, // 라이딩시 사용 불가 FLAG_CANT_DROP = 15, // 드랍 불가 FLAG_CANT_USE_MOVING = 16, // 이동시 사용 불가 FLAG_QUEST_DISTRIBUTE = 17, // 퀘스트 분배 아이템 FLAG_CANT_USE_SIT = 18, // 앉아서 사용 불가 FLAG_CANT_USE_IN_RAID_SIEGE = 19, // 레이드/시즈 던전 내부에서 사용 불가 FLAG_CANT_USE_IN_SECROUTE = 20, // 시크루트에서 사용 불가 FLAG_CANT_USE_IN_EVENTMAP = 21, // 이벤트 지역에서 사용 불가 FLAG_CANT_USE_IN_HUNTAHOLIC = 22, // 헌터홀릭 로비/던전에서 사용 불가 FLAG_USABLE_IN_ONLY_HUNTAHOLIC = 23, // 헌터홀릭 로비/던전에서만 사용 가능 FLAG_CANT_USE_IN_DEATHMATCH = 24, // 데스매치에서 사용 불가 FLAG_USABLE_IN_ONLY_DEATHMATCH = 25, // 데스매치에서만 사용 가능 FLAG_NOT_ERASABLE = 26, // 아이템 파괴 불가능(0:가능 1:불가능) FLAG_USABLE_ON_ONLY_SIT = 27, // 앉아서만 사용 가능 FLAG_CANT_USE_IN_SECRET_DUNGEON = 28, // 숨겨진 던전 내에서 사용 불가(0:사용 가능, 1: 사용 불가) FLAG_CANT_USE_IN_BATTLE_ARENA = 29, // 배틀 아레나 내에서 사용 불가(0:사용 가능, 1: 사용 불가) FLAG_CANT_DECOMPOSE = 30, // 분해 불가능 여부 (0:분해 가능, 1:분해 불가) FLAG_RANDOMIZABLE = 31, // Si la randomisation est possible (0: impossible, 1: possible) }; int nSummonId; int nThrowRange; short nBaseType[MAX_OPTION_NUMBER]; c_fixed10 fBaseVar1[MAX_OPTION_NUMBER]; c_fixed10 fBaseVar2[MAX_OPTION_NUMBER]; short nOptType[MAX_OPTION_NUMBER]; c_fixed10 fOptVar1[MAX_OPTION_NUMBER]; c_fixed10 fOptVar2[MAX_OPTION_NUMBER]; int nSkillID; int nStateCode; int nStateLevel; int nStateTime; int nCoolTime; short nCoolTimeGroup; int nArrangeCode; // 아이템 정렬 기준 (Since Epic 8.3) int available_time; enum { PERMANENT = 0, DECREASE_ON_GAME = 1, DECREASE_ALWAYS = 2 }; char decrease_type; /* 이하 클라이언트 정보 char szModel[61][6]; char szDropModel[61]; int nIconId; */ // ItemResource 테이블에서 로드되지 않고 서버 설정/명령어에 따라 세팅됨 bool bLogRequiredOnExpiration; }; struct ItemBaseServer : public ItemBase { const std::vector< EffectInfo * > * pvEffectList; const std::vector< EnhanceEffectInfo * > * pvEnhanceEffectList; std::string strScript; };