#pragma once #include "ItemBase.h" #include #include struct ItemInstance { ItemInstance() { UID = 0; Code = 0; nLevel = 1; nEnhance = 1; nCount = 1; nOwnerUID = 0; nCurrentEndurance = 0; GenerateInfo = BY_UNKNOWN; } enum { INSTANCE_FLAG_SIZE = 1 ///< int 1개 사이즈 라는 뜻 }; typedef __int64 ItemUID; typedef XFlag< int, INSTANCE_FLAG_SIZE > InstanceFlag; AR_HANDLE OwnerHandle; // 이하 DB에 기록해야할것 ItemUID UID; ItemBase::ItemCode Code; int nLevel; ///< 레벨 1 ~ 5 int nEnhance; ///< 강화도 1 ~ 20 int nOwnerUID; int nCount; int nCurrentEndurance; ///< 내구성 InstanceFlag Flag; enum { ITEM_FLAG_CARD = 0, ///< 카드화 되었음 ITEM_FLAG_FULL = 1, ///< 슬롯에 무언가 들어있음 ITEM_FLAG_INSERTED = 2, ///< 다른 아이템의 슬롯이 들어가 있음 ITEM_FLAG_FAILED = 3, ///< 강화 실패작 ITEM_FLAG_EVENTITEM = 4, ///< 이벤트 아이템 ITEM_FLAG_CAGE_HAS_PET = 5, ///< 테이밍 된 펫 우리 ITEM_FLAG_EMPTY = 30, ///< 카오스 스톤 비어있음 ITEM_FLAG_SUMMON = 31, ///< 소환수임~! }; enum GenerateCode { BY_MONSTER = 0, ///< 몹이 떨굼 BY_MARKET = 1, ///< 상점에서 구입 BY_QUEST = 2, ///< 퀘스트로 얻음 BY_SCRIPT = 3, ///< 스크립트 BY_MIX = 4, ///< 조합 BY_GM = 5, ///< GM BY_BASIC = 6, ///< 캐릭 생성시 제공되는 아이템 BY_TRADE = 7, ///< 트레이드시 쪼개져서 생성됨 BY_UNKNOWN = 126, ///< 알수 없음 }; GenerateCode GenerateInfo; ItemBase::ItemCode Socket[ ItemBase::MAX_SOCKET_NUMBER ]; };