h1. Item -------------------------------------------------- h2. 개요 - 아이템을 정의하는 데이터시트다. - 데이터시트의 1줄이 아이템 1종에 대한 데이터를 나타낸다. - 이 게임에서는 아이템들이 일정한 규칙에 의해 무작위로 옵션 능력을 부여하고, 이를 조합해서 아이템 능력을 구성한다. 그렇기 때문에, 여기서는 아이템의 종류만 정의할 뿐, 능력까지 정의하지는 않는다. 아이템의 능력을 생성하고 정의하기 위한 데이터시트들은 따로 있다. - 여기서 말하는 아이템들은 캐릭터가 장착하는 무기, 갑옷 뿐 아니라, 골드, 젬(과금 화폐)을 비롯하여 입장권, 무료 사용권, 각종 티켓 등의 모든 재화를 포함하는 개념이다. : 이와 관련한 자세한 내용은 프로젝트의 공식 명세서의 내용을 참조한다. -------------------------------------------------- h2. [1] Read h3. 형식 - 적용 대상 : 툴 - 자료형 : bool h3. 설명 툴에서 해당 줄의 데이터들을 읽어들일지 아닐지 결정한다. 다음 값들을 사용할 수 있다. *TRUE* : 툴은 그 줄의 데이터를 읽는다. *FALSE* : 툴은 그 줄의 데이터를 읽어들이지 않는다. 툴은 데이터시트에서 읽어들인 줄의 데이터들로만 데이터 스크립트를 제작한다. 따라서, 이 필드를 이용해서 특정한 줄의 데이터들을 선택적으로 게임에 적용하거나, 혹은 적용하지 않게 만드는 데 쓸 수 있다. 예를 들어, 데이터시트에 테스트를 위해 임시로 넣은 데이터가 많은데, 이런 기능이 없는 경우, 게임에 빌드를 하기 위해서는 테스트 데이터를 그대로 사용하든가 아니면 제거해야 한다. 그런데 작업 경과에 따라 이제까지의 작업이 아깝거나, 게임 빌드 이후에 또 실험하던 데이터를 써야하는 등의 갖가지 이유 때문에 게임 빌드에 적용할 동안만 '잠시 툴이 특정 줄들의 데이터를 읽지 못하게' 하고 싶을 수 있다. 이 필드는 그런 경우에 사용할 수 있다. -------------------------------------------------- h2. [2] Comment h3. 형식 - 적용 대상 : 툴 - 자료형 : string h3. 설명 편집하는 사용자에게, 현재 편집하는 줄이 무엇을 위한 데이터인지 알려주는 주석을 적는 공간이다. 따라서 대부분은 순전히 데이터시트를 편집하는 사람의 편의를 위한 필드이기 때문에, 툴에서 데이터 스크립트로 변환할 때 이 필드의 값은 무시한다. 이 필드에 들어가야 하는 값에 대한 규칙도 특별히 존재하지 않는다. 다만, 소스 파일에 데이터 값을 상수로 정의하여 내보내는 경우, Comment 필드의 값은, 소스 코드에서 해당 상수의 역할을 설명하는 주석문으로 사용한다. -------------------------------------------------- h2. [3] General_Type_Code h3. 형식 - 적용 대상 : 공통 - 자료형 : EodGTC(primitive) h3. 설명 현재 줄의 GTC의 값을 정의하는 필드다. 일반 타입 식별 코드(General Type Code)는 게임 내에서 종류를 구분할 필요가 있는 객체들 사이에서, 종류를 식별하는 키로써 사용하는 번호다. 종종 GTC라는 약어로써 표현한다. GTC를 정의하는 본래의 형식은 32비트 정수 타입이다. 따라서 이 필드에는 숫자로 GTC를 정의해야 한다. GTC와 관련한 상세한 내용은 프로젝트의 명세서에서 참고하기 바란다. -------------------------------------------------- h2. [4] GTC_Key h3. 형식 - 적용 대상 : 툴 - 자료형 : EodGTC(key define) h3. 설명 필드의 문자열 식별키를 정의한다. GTC는 숫자이기 때문에, 컴퓨터의 입장에서는 처리가 쉽고 속도도 빠르지만, 사람이 알아보기에는 쉽지 않다. 특히, 숫자가 많은 자릿수를 가지고 있을수록 더욱 그렇다. 이런 문제를 해소하기 위한 가장 좋은 방법은, 같은 GTC에 대해 사람은 문자열로, 컴퓨터는 숫자로 처리할 수 있도록 "자동으로" 연결해주는 기능을 만드는 것이다. 필드는 그러한 기능을 제공하기 위해 추가한 필드이다. 즉, 이 필드가 있기 때문에, 사람이 데이터시트를 편집하면서 다른 데이터시트의 GTC 참조 값을 필드에 넣어야 할 경우, 에서 정의하는 숫자 값으로 참조하는 대신, 이 필드의 문자 값으로 참조 값을 넣을 수 있다. 데이터 스크립트 생성 툴에서 이 데이터시트를 읽을 때, 이 필드에 정의한 문자열 값과 필드의 GTC 값을 연관짓는 사전(Dictionary) 객체를 생성한다. 이 사전 객체는 데이터시트 -> 데이터 스크립트 (+ 소스 파일) 변환 과정이 일어나는 동안 지워지지 않고 유지한다. 툴이 데이터시트들을 변환할 때, GTC를 (본래의 값인)숫자 대신 [4] GTC_Key에 정의한 문자열 값으로 링크하는 필드들을 발견하면, 그 GTC 문자열 키를 GTC의 본래 값인 숫자형으로 변환해서 데이터 스크립트를 작성해야 한다. 그 때, GTC 숫자 <-> GTC 문자 관계를 정의한 사전 객체를 이용해서 GTC 문자 키 -> GTC 숫자 변환을 수행한다. 데이터시트만 봐서는 GTC의 참조를 문자열 키로 하는 셈이지만, 실제로 게임에 탑재하는 데이터 스크립트에는 GTC의 본래 타입인 32비트 정수 값으로 툴이 자동으로 변환해서 넣어준다. -------------------------------------------------- h2. [5] Item_Type h3. 형식 - 적용 대상 : 공통 - 자료형 : enum : sbyte : Eod.Define.Item.eType h3. 설명 아이템의 종류를 구분하는 타입. 사용할 수 있는 값은 다음과 같다. (작성 중...) -------------------------------------------------- h2. [6] Grade h3. 형식 - 적용 대상 : 공통 - 자료형 : sbyte h3. 설명 아이템의 등급. * 1 ~ 6 사이의 값을 가져야 한다. * 보통 '$( 필드의 값)성 아이템' 하는 식으로 부른다. -------------------------------------------------- h2. [7] Required_Character_Class h3. 형식 - 적용 대상 : 공통 - 자료형 : enum : sbyte : Eod.Define.Character.eClass h3. 설명 요구하는 플레이어 캐릭터의 직업 클래스 다음 값을 사용할 수 있다. (대소문자를 구별해야 한다.) *All* 모든 캐릭터 직업 클래스 *Berserker* 광전사 *DemonHunter* 악마사냥꾼 *Archon* 집정관 -------------------------------------------------- h2. [8] Required_Character_Level h3. 형식 - 적용 대상 : 공통 - 자료형 : short h3. 설명 요구하는 플레이어 캐릭터의 레벨. 이 값은 [[Datascript_PlayerCharacterLevelup|PlayerCharacterLevelup]] 데이터시트의 필드에서 정의한 값이어야 한다. -------------------------------------------------- h2. [9] Enable_To_Sell h3. 형식 - 적용 대상 : 공통 - 자료형 : bool h3. 설명 아이템의 속성 중에서, 판매할 수 있는 아이템인지 여부를 설정한다. *TRUE* : 판매할 수 있는 아이템이다. *FALSE* : 판매할 수 없는 아이템이다. -------------------------------------------------- h2. [10] Storable h3. 형식 - 적용 대상 : 공통 - 자료형 : bool h3. 설명 아이템의 속성 중에서, 캐릭터의 물품보관함(인벤토리)에 들어갈 수 있는 아이템인지 여부를 설정한다. *TRUE* : 물품보관함에 들어갈 수 있는 아이템이다. *FALSE* : 물품보관함에 들어갈 수 없는 아이템이다. * 물품보관함에 들어갈 수 없는 아이템은 마치 돈이나 입장 자원처럼 재화의 방식으로 관리한다. -------------------------------------------------- h2. [11] Comsumable h3. 형식 - 적용 대상 : 공통 - 자료형 : bool h3. 설명 아이템의 속성 중에서, 이 아이템이 소모할 수 있는 아이템인지 여부를 설정한다. * 아이템을 소모한다는 뜻은, 아이템을 사용할 때마다 아이템 자체의 개수가 사라지는 방식이라는 뜻이다. * (기획에서는 아직 존재하지 않지만)아이템을 사용해서 뭔가 개수가 줄어들더라도 아이템 자체가 사라지지 않으면 소모성 아이템이 아니다. *TRUE* : 소모성 아이템이다. *FALSE* : 소모성 아이템이 아니다. -------------------------------------------------- h2. [12] Stack_Type h3. 형식 - 적용 대상 : 공통 - 자료형 : enum : sbyte : Eod.Define.Item.eStackType h3. 설명 아이템을 캐릭터가 소유하면, 그 아이템은 어떤 식으로든 적재하여야 한다. 이 때, 적재하는 방식이 아이템의 타입에 따라 차이가 생기는데, 이 필드는 아이템마다 그러한 차이점을 지정하기 위한 장소다. 사용할 수 있는 값은 다음과 같다. *Single* : 아이템을 하나의 전용 공간에 적재하는 방식이다. 이 전용 공간은 오직 이 아이템만 적재할 수 있으며, 다른 GTC를 가지는 아이템은 적재가 불가능하다. 게임에서 사용하는 화폐, 재료 둥 물품보관함에 들어가지 못하는 재화(Worth) 방식의 화폐들은 전부 이 방식의 적재 타입을 가져야 한다. *Multiple* : 격자 등의 범용 보관 슬롯으로 구성되어 있는 물품보관함에, 슬롯 단위로 나뉘어져 적재하는 방식이다. 장비 장착 등의 경우가 아닌 한, 단순 보관의 경우에는 해당 GTC를 가진 아이템만의 전용 보관 슬롯의 개념은 없다. 또한, 같은 GTC를 가지는 여러 개의 아이템 인스턴스를 각각의 슬롯에 보관하게 할 수도 있다. 장비 아이템들이 이러한 적재 타입을 가지는 대표적인 아이템들이다. -------------------------------------------------- h2. [13] Stack_Limit_Per_Slot h3. 형식 - 적용 대상 : 공통 - 자료형 : short h3. 설명 이 아이템을 슬롯 1칸에 몇 개까지 적재할 수 있는지 설정한다. 예를 들면, 많은 게임이 물약 아이템 등에 대해서는 슬롯 1개 당 수 개 ~ 수십 개 이상 적재할 수 있도록 한다. * 값은 0 이상의 정수여야 한다. * 값이 0이면 개수에 제한이 없다고 간주한다. -------------------------------------------------- h2. [14] Possesion_Count_Limit h3. 형식 - 적용 대상 : 공통 - 자료형 : int h3. 설명 대상 캐릭터가 이 아이템을 소유할 수 있는 최대 개수를 설정한다. 이 아이템에 대해서만큼은 여기에 설정된 개수보다 더 많은 아이템을 소유할 수 없게 만들 수 있다. 예를 들면, 캐릭터마다 딱 한 개씩만 소유할 수 있는 특별한 이벤트 아이템과 같은 것들이 있다. * 값은 0 이상의 정수여야 한다. * 값이 0이면 개수에 제한이 없다고 간주한다. -------------------------------------------------- h2. [15] Basic_Option_Code_1 h2. [16] Basic_Option_Code_2 h2. [17] Basic_Option_Code_3 h3. 형식 - 적용 대상 : 공통 - 자료형 : EodGTC : key_reference : ItemBasicOption h3. 설명 이 아이템을 생성할 때 기본으로 제공하는 옵션. 단, 옵션의 '종류'를 확정적으로 제공한다는 의미임에 주의한다. 옵션의 세부 능력 값은 여전히 [[Datascript_ItemBasicOption|ItemBasicOption]] 데이터시트를 통해서 무작위하게 생성한다. 옵션은 최대 3개까지 부여할 수 있으므로 필드도 3개이다. * 반드시 -> -> 필드의 순서대로 값을 채워넣어야 한다. 아이템에 기본 옵션이 1개 뿐일 경우, 에 값을 입력하고 나머지 필드를 비워야지, 을 비운 상태에서 필드에 값을 채워서는 안 된다. -------------------------------------------------- h2. [18] Additional_Option_Count h3. 형식 - 적용 대상 : 공통 - 자료형 : sbyte h3. 설명 이 GTC의 아이템 인스턴스를 생성할 때, 기본으로 지정하는 옵션 외에, 무작위로 부여하는 능력 옵션의 개수를 지정한다. 여기에 지정한 횟수만큼 아이템에 추가 옵션을 무작위 과정으로 생성한다. * 값은 0 이상의 정수여야 한다. -------------------------------------------------- h2. [19] Runestone_Slot_Count_Max h3. 형식 - 적용 대상 : 공통 - 자료형 : sbyte h3. 설명 룬스톤으로부터 옵션 능력을 1가지 추출해서 아이템의 옵션에 추가로 부여할 수 있다. 이 때, 해당 룬스톤은 아이템의 룬스톤 슬롯을 1개씩 사용한 것으로 간주한다. 룬스톤 슬롯에 부여하는 옵션은 여기에 지정한 개수만큼만 동시에 유지할 수 있다. 모든 룬스톤 슬롯에 론스톤으로부터 옵션이 부여된 이후에는, 기존 룬스톤 슬롯에 부여한 옵션을 교체하는 방식으로만 사용할 수 있다. -------------------------------------------------- h2. [20] Model_Part_Code h3. 형식 - 적용 대상 : 클라이언트 - 자료형 : int h3. 설명 아이템을 장착했을 때, 캐릭터 모델이 착용하는 모델 데이터의 식별 코드. 이 값은 [ModelPart] 데이터시트의 필드에서 정의한 값이어야 한다. -------------------------------------------------- h2. [21] Image_Code_Icon h3. 형식 - 적용 대상 : 클라이언트 - 자료형 : EodGTC : key_reference : Image h3. 설명 아이템 아이콘 GUI에 적용할 이미지 데이터의 식별 코드. 이 값은 [[Datascript_Image|Image]] 데이터시트의 필드에서 정의한 값이어야 한다. -------------------------------------------------- h2. [22] Text_Code_Name h3. 형식 - 적용 대상 : 클라이언트 - 자료형 : EodGTC : key_reference : TextData h3. 설명 이름창 UI에 적용할 텍스트 데이터의 식별 코드. 이 값은 [[Datascript_Text|Text]] 데이터시트의 필드에서 정의한 값이어야 한다. -------------------------------------------------- h2. [23] Text_Code_Description h3. 형식 - 적용 대상 : 클라이언트 - 자료형 : EodGTC : key_reference : TextData h3. 설명 설명창 UI에 적용할 텍스트 데이터의 식별 코드. 이 값은 [[Datascript_Text|Text]] 데이터시트의 필드에서 정의한 값이어야 한다.