Files
2026-06-01 12:46:52 +02:00

73 lines
1.7 KiB
C

#pragma once
#include "ItemBase.h"
#include <mmo/ArType.h>
#include <toolkit/XFlag.h>
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 ];
};