h1. CharacterSkill -------------------------------------------------- h2. 개요 - 모든 캐릭터들의 스킬들의 레벨 별 능력과, 그 레벨의 스킬을 배우기 위한 가격을 설정하는 데이터시트다. - 데이터시트의 1줄은 특정 스킬의 특정 레벨에 대한 데이터를 나타낸다. - 스킬을 특별히 레벨 별로 지정해야 할 필요가 없는 경우, 그 스킬들은 잠정적으로 1레벨의 능력을 가진다고 간주한다. : 현재는 대부분의 몬스터들의 스킬들이 그러하다. -------------------------------------------------- h2. [1] Read h3. 형식 - 적용 대상 : 툴 - 자료형 : bool h3. 설명 툴에서 해당 줄의 데이터들을 읽어들일지 아닐지 결정한다. 다음 값들을 사용할 수 있다. *TRUE* : 툴은 그 줄의 데이터를 읽는다. *FALSE* : 툴은 그 줄의 데이터를 읽어들이지 않는다. 툴은 데이터시트에서 읽어들인 줄의 데이터들로만 데이터 스크립트를 제작한다. 따라서, 이 필드를 이용해서 특정한 줄의 데이터들을 선택적으로 게임에 적용하거나, 혹은 적용하지 않게 만드는 데 쓸 수 있다. 예를 들어, 데이터시트에 테스트를 위해 임시로 넣은 데이터가 많은데, 이런 기능이 없는 경우, 게임에 빌드를 하기 위해서는 테스트 데이터를 그대로 사용하든가 아니면 제거해야 한다. 그런데 작업 경과에 따라 이제까지의 작업이 아깝거나, 게임 빌드 이후에 또 실험하던 데이터를 써야하는 등의 갖가지 이유 때문에 게임 빌드에 적용할 동안만 '잠시 툴이 특정 줄들의 데이터를 읽지 못하게' 하고 싶을 수 있다. 이 필드는 그런 경우에 사용할 수 있다. -------------------------------------------------- h2. [2] Comment h3. 형식 - 적용 대상 : 툴 - 자료형 : string h3. 설명 편집하는 사용자에게, 현재 편집하는 줄이 무엇을 위한 데이터인지 알려주는 주석을 적는 공간이다. 따라서 대부분은 순전히 데이터시트를 편집하는 사람의 편의를 위한 필드이기 때문에, 툴에서 데이터 스크립트로 변환할 때 이 필드의 값은 무시한다. 이 필드에 들어가야 하는 값에 대한 규칙도 특별히 존재하지 않는다. 다만, 소스 파일에 데이터 값을 상수로 정의하여 내보내는 경우, Comment 필드의 값은, 소스 코드에서 해당 상수의 역할을 설명하는 주석문으로 사용한다. -------------------------------------------------- h2. [3] Skill_Code h3. 형식 - 적용 대상 : 공통 - 자료형 : EodGTC[PerLevel] : key_reference : Skill h3. 설명 대상이 되는 스킬의 식별 코드. 이 값은 [[Datascript_Skill|Skill]] 데이터시트의 필드에서 정의한 값이어야 한다. 이 값은 다중 열 데이터(Multi-Line Data)로 구성한다. 따라서, 이 열의 위치에 있는 각 줄의 값들은 [] 기호 안에 인덱스 번호를 넣어서 순번을 구분한다. 인덱스는 0부터 순차적으로 숫자를 1씩 증가시키면서 매겨야 한다. 각 열에 인덱스를 부여하지 않을 수는 있지만, 그럴 경우에는 데이터 스크립트에 실제로 데이터가 적재되는 순서는 변환기 프로그램이 자동으로 결정한다. 인덱스의 값은 프로그램 내부적으로 int로 취급하기 때문에, int의 한계값(약 21.47억)을 벗어나지 말아야 한다. 자료형에 선언한 [] 기호 내부의 문자열 값은, 다중 열 데이터를 소스 코드에서 표현할 때 사용할 객체 선언 이름이다. -------------------------------------------------- h2. [4] Required_Character_Level h3. 형식 - 적용 대상 : 공통 - 자료형 : short h3. 설명 요구하는 플레이어 캐릭터의 레벨. 이 값은 [[Datascript_PlayerCharacterLevelup|PlayerCharacterLevelup]] 데이터시트의 필드에서 정의한 값이어야 한다. -------------------------------------------------- h2. [5] Skill_Level h3. 형식 - 적용 대상 : 툴 - 자료형 : short[Power] h3. 설명 대상 스킬의 레벨을 정의한다. 이 값은 다중 열 데이터(Multi-Line Data)로 구성한다. 따라서, 이 열의 위치에 있는 각 줄의 값들은 [] 기호 안에 인덱스 번호를 넣어서 순번을 구분한다. 인덱스는 0부터 순차적으로 숫자를 1씩 증가시키면서 매겨야 한다. 각 열에 인덱스를 부여하지 않을 수는 있지만, 그럴 경우에는 데이터 스크립트에 실제로 데이터가 적재되는 순서는 변환기 프로그램이 자동으로 결정한다. 인덱스의 값은 프로그램 내부적으로 int로 취급하기 때문에, int의 한계값(약 21.47억)을 벗어나지 말아야 한다. 자료형에 선언한 [] 기호 내부의 문자열 값은, 다중 열 데이터를 소스 코드에서 표현할 때 사용할 객체 선언 이름이다. -------------------------------------------------- h2. [6] Skill_Power_Event h3. 형식 - 적용 대상 : 공통 - 자료형 : enum : short : Eod.Defin.Skill.eSkillEventType h3. 설명 스킬의 능력과 관련한 이벤트들을 선언한다. 하나의 스킬의 가지는 능력에 대한 효과가 다양할 수 있기 때문에, 특정 레벨의 스킬 하나도 여러 개로 능력을 표현해야 할 수 있다. (그래서 필드가 존재하는 것이다.) 다만, 여기서는 스킬의 능력을 발휘하는 이벤트를 선언하기만 할 뿐이고, 실제 이 이벤트의 사용은 [[Datascript_SkillEvent|SkillEvent]] 데이터시트에서 담당한다. 이렇게 하는 이유는, 스킬의 능력이 실제로 어떤 시간과 상황에 발현이 되어야 하는지 여부는 스킬 이벤트를 구동하는 시점이 되어야만 알 수 있는 경우가 대부분이기 때문이다. 즉, 이 데이터시트에서는 스킬 레벨마다 달라지는 스킬 능력들을 나열해놓을 뿐이고, 스킬 이벤트 데이터시트에서 여기서 선언한 스킬 능력 이벤트들을 불러다 쓰는 방식이다. 다음과 같은 값들을 사용할 수 있다. (작성 중...) -------------------------------------------------- h2. [7] Parameters h3. 형식 - 적용 대상 : 공통 - 자료형 : list h3. 설명 해당 레벨의 필드가 표현하는 스킬 능력 이벤트의 객체에 전달할 매개변수들의 목록. 스킬이 얼마나 강력해지는지를 실질적으로 결정하는 부분이다. 매개변수들의 순서와 종류는 스킬에 따라 다르다. (작성 중...) -------------------------------------------------- h2. [8] Attack_Damage_Factor h3. 형식 - 적용 대상 : 공통 - 자료형 : float h3. 설명 공격력에 비례해 스킬의 능력이 올라갈 비율. 보통 AD Factor로 줄여서 부른다. -------------------------------------------------- h2. [9] Ability_Power_Factor h3. 형식 - 적용 대상 : 공통 - 자료형 : float h3. 설명 능력치에 비례해 스킬의 능력이 올라갈 비율. 보통 AP Factor로 줄여서 부른다. -------------------------------------------------- h2. [10] Targeting_Range_Type h3. 형식 - 적용 대상 : 공통 - 자료형 : enum : sbyte : Eod.Define.Skill.eTargetingRangeType h3. 설명 캐릭터가 스킬을 사용할 때, 사정거리를 계산하는 방식에 대한 타입. 이 타입의 값에 의해 의 값을 사정거리로 표현하는 방식이 달라진다. 다음과 같은 값을 사용할 수 있다. *Static* 고정적인 사정거리 값. *AddToAttackReach* 현재 캐릭터가 사용하고 있는 무기의 사정거리에 더한다. -------------------------------------------------- h2. [11] Targeting_Range_Min h2. [12] Targeting_Range_Max h3. 형식 - 적용 대상 : 공통 - 자료형 : float h3. 설명 최소 ~ 최대 사정거리. 스킬 시전자와 대상 간 거리가 의 값보다 가깝거나, 의 값보다 더 먼 대상은 스킬의 목표 대상에서 제외한다. * 이 값은 0보다 작을 수 없다. * 의 값은 반드시 보다 같거나 커야 한다. * 이 필드를 이용해서 무한대의 사정거리를 표현할 수는 없다. 엄청나게 큰 숫자를 이용해서 '사실상' 무한대의 사정거리를 만들 수야 있다. : -------------------------------------------------- h2. [13] Using_Cost_Type h3. 형식 - 적용 대상 : 공통 - 자료형 : enum : sbyte : Eod.Define.Skill.eUsingCostType h3. 설명 스킬을 사용하는 비용을 차감하는 방식. 사용할 수 있는 값은 다음과 같다. (작성 중... 어떤 경우에는 아이템을 소모하고, 어떤 경우에는 마력을 소모하고...) -------------------------------------------------- h2. [14] Using_Cost_Amount h3. 형식 - 적용 대상 : 공통 - 자료형 : int h3. 설명 스킬을 1회 사용할 때마다 지불하는 비용의 양. 필드의 값에 따른 비용으로 사용할 아이템의 양 혹은 전투 상태값의 양이다. -------------------------------------------------- h2. [15] Cooldown_Time_Second h3. 형식 - 적용 대상 : 공통 - 자료형 : float h3. 설명 해당 아이템 옵션을 1회 사용한 뒤, 재사용하기까지의 대기 시간을 초 단위로 설정한다. -------------------------------------------------- h2. [16] Additional_Action_Speed_Rate h3. 형식 - 적용 대상 : 공통 - 자료형 : float h3. 설명 -------------------------------------------------- h2. [17] Cost_Game_Play_Money h3. 형식 - 적용 대상 : 공통 - 자료형 : int h3. 설명 이 레벨의 스킬을 획득하기 위해 지불해야 하는 게임 플레이 화폐의 양을 설정한다.