스킬

VXAce 스킬포인트 스크립트

by 아이미르 posted Mar 21, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

VXAce 스킬포인트 예제 1.JPG

VXAce 스킬포인트 예제 2.JPG

 

 

이번 스크립트는 예전에 만들었던 경험치로 스킬 습득 스크립트를 고쳐서 만든

 

스킬포인트로 스킬을 습득하는 스크립트 입니다.

 

레벨업하면 스킬 포인트를 얻어서 액터마다 설정된 습득가능한 스킬 리스트에서 스킬포인트를 소모해서

 

스킬을 습득하는 겁니다.

 

 

 

사용법

 

 

 

이 스크립트는 따로 작용하는 스크립트가 아니라 메뉴에 등록되어 사용되는 스크립트이기 때문에

 

설정항목을 잘 설정하면 사용준비는 끝입니다.

 

... 뭐 매번 스크립트 사용법 쓸 때마다 말하기도 귀찮지만 설정항목을 잘 설정해주세요...

 

module IMIR_SkillPoint
 
  SkillList  = []
  Conditions = []
 
  ActorMax     = 10
  GetPointType = 1 # 0: 1씩, 1: 디폴트만큼, 2: 레벨/10만큼(정수부분) 
  DefaultPoint = 3
  VocabPoint   = "Sp"
  VocabMenu    = "스킬포인트"
 
  for id in 1..ActorMax
    SkillList[id]  = []
    Conditions[id] = {}
    # [필요스킬포인트, 선행스킬배열, 직업, 레벨, 별명]
  end
 
  SkillList[1] = [76, 77, 51, 52, 55]
  Conditions[1] = {
    76 => [ 1, [], 0, 0, ""],
    77 => [ 1, [], 0, 0, ""],
    51 => [ 2, [76], 0, 3, ""],
    52 => [ 3, [76, 51], 0, 5, ""],
    55 => [ 2, [76, 77], 2, 4, "칭호3"],
  }
 
  SkillList[2] = [77, 55, 56]
  Conditions[2] = {
    77 => [ 1, [], 0, 0, ""],
    55 => [ 2, [77], 0, 0, "칭호1"],
    56 => [ 2, [77, 55], 0, 0, "칭호2"],
  }
 
  SkillList[3] = [78, 59, 60]
  Conditions[3] = {
    78 => [ 1, [], 0, 0, ""],
    59 => [ 2, [78], 2, 0, ""],
    60 => [ 2, [78, 59], 3, 0, ""],
  }
end

 

GetPointType은 말 그대로 레벨업 했을 때 스킬포인트를 얼만큼 습득하는 가... 에 대한 타입 구분입니다.

 

0일 때는 기본적으로 레벨업 할때마다 1씩 습득합니다.

 

1은 설정된 디폴트 값만큼 (DefaultPoint = 3 <- 이게 기본값입니다. ) 습득하고

 

2는 다른 방식으로 어떻게 하면 좋을 까 하다가 잘 떠오르지 않아서 대충 레벨/10 으로 설정해봤습니다.

 

  *Game_Actor 부분을 잘 수정하시면 다른 식으로 습득하게 구현할 수도 있습니다.

 

 

SkillList[id]  = [] 부분은 실제로 액터가 습득할 수 있는 스킬들의 ID를 모아둔 배열입니다.

 

중요한 부분은 Conditions[id] = {} 부분입니다. 이게 스킬들마다 습득가능 조건을 설정하는 부분입니다.

 

정확히는 습득가능 스킬 리스트에 포함하는 조건입니다.

 

조건 배열은 기본적으로 주석에 있는 것처럼

 

[필요스킬포인트, 선행스킬배열, 직업, 레벨, 별명] 순입니다.

 

 

 

 

1번 액터의 스킬리스트를 가지고 살펴보겠습니다.

 

  SkillList[1] = [76, 77, 51, 52, 55]
  Conditions[1] = {
    76 => [ 1, [], 0, 0, ""],
    77 => [ 1, [], 0, 0, ""],
    51 => [ 2, [76], 0, 3, ""],
    52 => [ 3, [76, 51], 0, 5, ""],
    55 => [ 2, [76, 77], 2, 4, "칭호3"],
  }

 

예제에 따르면 1번 액터가 습득가능한 스킬은 76번, 77번, 51번 52번 55번 스킬입니다.

 

76번 스킬의 조건은 없네요...  필요스킬 포인트가 1이라는 것만 제외하고 나머지는

 

조건이 없을 때 모습입니다. 선행스킬배열 [], 직업id 0, 레벨 0, 별명 "" 이렇게 넣으면 조건이 없는 겁니다.

 

51번 스킬의 조건은 선행스킬 76번 스킬, 즉 76번 스킬을 습득하고 있어야 한다는 겁니다.

 

그리고 레벨이 3이상일때 이 스킬은 리스트에 출현합니다.  습득시 필요 스킬포인트는 2입니다.

 

52번 스킬의 조건은 선행스킬 76, 51번 스킬, 즉 76번 스킬과 51번 스킬을 습득하고 있어야 리스트에 출현합니다.

 

또한 레벨제한은 5, 즉 5레벨이상이어야 합니다.  습득시 필요스킬 포인트는 3이네요.

 

55번 스킬은 조건이 모두 채워져 있네요. 선행 스킬로서 76번 스킬과 77번 스킬을 미리 습득하고 있어야 하며

 

직업ID가 2번이어야 하고 4레벨이상이어야 하며 별명(칭호라고도 하던가요;;)이 칭호3이어야 합니다.

 

필요 스킬포인트는 2네요.

 

이런식으로 액터마다 리스트와 출현조건, 필요 스킬포인트를 잘 설정해 주시면 됩니다.

 

물론 스킬에 따른 필요조건이 없으면 에러가 나겠지요;;;

 

 

Who's 아이미르

?

허루쿠... 임용고시 공부해야되는데 이러고 있다....

 

알만툴의 중독성은 쩔어준다는;;;