Ace 스크립트

VXAce 아츠장착 스킬습득 예제 1.JPG VXAce 아츠장착 스킬습득 예제 2.JPG VXAce 아츠장착 스킬습득 예제 3.JPG

 

이번에 작성한 스크립트는 예전에 아방스님이 올려주셨던 장비 확장 스크립트를 울궈먹었던

 

장비장착을 통한 스킬 습득 및 삭제 스크립트를 독립적으로 제작해보았습니다.

 

그 결과, 장비 장착 쪽이 잘 안되서 아예 메뉴란에 새로 등록해서 아이템을 장착하는 방향으로

 

가닥을 잡았습니다.

 

이 아이템들은 메모란을 통해서 속성치를 작성할 수 있으며 이 속성치에 따라 액터의 속성치 (스크린 샷

 

에서 얼굴 밑에 써있는 것들...)가 변하며 이를 통해 스킬이 습득되거나 삭제되는 스크립트 입니다.

 

 

 

 사용법

 

1.  설정항목을 잘 설정한다;;;;

 

  사실상 모든 스크립트가 그렇듯이 설정항목을 잘 설정하고 넘어갑니다.

 

module Imir_ExtraSkills 
 
  ExtraSkills  = []
  ActorEquips  = []
 
  SkillMax     = 8
  ActorMax     = 10
 
  VOCAB = "아츠 장착"
  Vocab_Equip  = "장비하기"
  Vocab_Unequip= "해제하기"
  Vocab_Cancel = "그만하기"
 
  DISPLAYED_ELEMENTS = [1,2,3,4,5,6,7,8,9,10]

  def self.element_icon(element_id)
    case element_id
    when 1; 116  # 물리
    when 2; 113  # 흡수
    when 3;  96  # 불꽃
    when 4;  97  # 얼음
    when 5;  98  # 번개
    when 6;  99  # 물
    when 7; 100  # 땅
    when 8; 101  # 바람
    when 9; 102  # 빛
    when 10; 103 # 어둠
    end
  end
 
  def self.element_name(element_id)
    case element_id
    when 1; "물리"
    when 2; "흡수"
    when 3; "불꽃"
    when 4; "얼음"
    when 5; "번개"
    when 6; "물"
    when 7; "땅"
    when 8; "바람"
    when 9; "빛"
    when 10; "어둠"
    end
  end
 
  for i in 1..ActorMax
    ActorEquips[i] = [0, 0, 0, 0, 0, 0]
  end
 
  ActorEquips[1] = [1, 0, 0, 0, 0, 0]
 
  for i in 1..SkillMax
    ExtraSkills[i] = [nil, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
  end
   
  ExtraSkills[1] = [nil, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 76]
  # 물리 1, 불꽃 1 => 76. 파이어 웨폰. 특기 계열.
  ExtraSkills[2] = [nil, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 49]
  # 흡수 2 => 49. 라이프 드레인. 마법 계열.
  ExtraSkills[3] = [nil, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 53]
  # 불꽃 3 => 53. 플레임. 마법 계열
  ExtraSkills[4] = [nil, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 57]
  # 얼음 4 => 57. 블리자드. 마법계열  
  ExtraSkills[5] = [nil, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 61]
  # 번개 5 => 61. 스파크. 마법계열
  ExtraSkills[6] = [nil, 3, 0, 0, 0, 0, 0, 0, 0, 0, 2, 73]
  # 물리 3, 어둠 2 => 73. 버스트. 마법계열
  ExtraSkills[7] = [nil, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 74]
  # 물리 5, 어둠 5 => 74. 뉴클리어. 마법계열
  ExtraSkills[8] = [nil, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 72]
  # 어둠 4 => 72. 다크니스. 마법계열
 
end

 

이 설정항목을 자세히 살펴보면

 

  SkillMax     = 8       

 

이건 이 스크립트로 습득가능한 스킬의 최대치를 설정하고,


  ActorMax     = 10

이건 작성중인 프로젝트의 등장 액터 수를 써넣는 겁니다. ( 실제 액터 수와 일치해야합니다. )

 

  DISPLAYED_ELEMENTS = [1,2,3,4,5,6,7,8,9,10]

 

이 부분들은 프로젝트에서 사용할 속성치의 설정입니다.

 

예제에서는 1부터 10까지 총 10개를 사용합니다.

 

  def self.element_icon(element_id)
    case element_id
    when 1; 116  # 물리
    when 2; 113  # 흡수
    when 3;  96  # 불꽃
    when 4;  97  # 얼음
    when 5;  98  # 번개
    when 6;  99  # 물
    when 7; 100  # 땅
    when 8; 101  # 바람
    when 9; 102  # 빛
    when 10; 103 # 어둠
    end
  end

각 속성에 맞는 아이콘 번호입니다. 아이콘 셋이 다르다거나 다른 모양으로 하고 싶으신분들은

 

다시 설정해주세요.

  
  def self.element_name(element_id)
    case element_id
    when 1; "물리"
    when 2; "흡수"
    when 3; "불꽃"
    when 4; "얼음"
    when 5; "번개"
    when 6; "물"
    when 7; "땅"
    when 8; "바람"
    when 9; "빛"
    when 10; "어둠"
    end
  end

각 속성들 이름입니다. 적당히 알아서 붙여주시면 됩니다.

 

  for i in 1..ActorMax
    ActorEquips[i] = [0, 0, 0, 0, 0, 0]
  end
 
  ActorEquips[1] = [1, 0, 0, 0, 0, 0]

이 부분은 액터가 초기 장비로 장착하고 나오는 아이템을 설정하는 부분입니다.

 

예제에서는 최대 장비수치를 여섯개로 잡았기 때문에 0이 여섯개 들어있는 배열이며

 

1번액터는 1번 아이템을 장착하고 있네요. 0은 빈칸입니다.

 

  for i in 1..SkillMax
    ExtraSkills[i] = [nil, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
  end
   
  ExtraSkills[1] = [nil, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 76]
  # 물리 1, 불꽃 1 => 76. 파이어 웨폰. 특기 계열.

이 부분은 이 스크립트를 사용해 습득 가능한 스킬들의 습득 조건과 습득 스킬을 설정하는 부분입니다.

 

위에서 본 것처럼 10개의 속성치를 사용하기 때문에 배열이 12칸입니다. (0번은 nil이고 11번이 스킬ID )

 

ExtraSkills[1]의 숫자는 이 장부의 순서입니다. 딱히 중요하지는 않으니까 연속적이고 겹치지

 

않게 차분히 나열하면 됩니다.

 

예제에 따르면 1번은 1번 속성치 1이상, 3번 속성치 1이상일 때 76번 스킬을 습득할 수 있다고 설정되어 있습니다.

 

밑에 주석을 달아두면 해석하기 용이하겠지요.

 

 

 

2. 액터, 직업, 아이템의 메모란에 기입한다.

 

<element:A,B>

 

A는 속성치 순번이고, B는 수치량입니다.

 

EXA) 액터의 초기 속성 수치를 3번 속성을 5, 4번 속성을 3으로 설정하고 싶다.

 

액터의 메모란에 가서 

 

<element:3,5><element:4,3>

 

이렇게 기입하면 됩니다.

 

 

기입 가능한 장소는 액터의 메모란, 직업의 메모란, 아이템의 메모란입니다. 무기나 방어구는

 

사용하지 않습니다.

 

 

 

!!주의사항!!

 

이 스크립트를 사용할 시, 스크립트로 습득할 스킬들은 액터가 레벨업이나 특정이벤트를 통해 습득하는

 

스킬들과는 다르게 설정해 주는 게 중요합니다.

 

이 스크립트는 스크립트 작성 취지에 맞게, 장비를 장착해서 속성치가 조건에 만족하면 스킬을 습득하지만

 

만족하지 못하면 다시 스킬이 삭제되는 구조를 가지고 있습니다.

 

즉, 장비장착으로 습득한 스킬과 ( 레벨업 혹은 특정 이벤트) 를 통해 습득하는 스킬이 같다면

 

장비를 장착하면서 없어질 수 있습니다.

 

주의해주세요.

 

Who's 아이미르

?

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

 

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

  • ?
    미루 2013.02.25 17:40
    오~ 영웅전설이 생각나는...!
    대단한 스크립트 입니다~>ㅁ<