Ace 스크립트

질문란에 올라온 걸 보고 패시브 스크립트를 응용해서 고심해서

 

만들어봤습니다.

 

딱히 셋트 장비를 장착한 걸 직접적인 효과 이외에 보여주는 장치는 마련하지 못한 관계로

 

이번엔 스크린 샷이 없네요;;

 

바로 사용법으로 들어갑니다.

 

 

 

 

 

!! 사용법 !!

 

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

 

module Imir_SetEffect
 
  EquipSet = []
 
  EquipSetMax   = 3   # 설정할 셋트의 최대치
  ElementsMax   = 10  # 용어 - 속성 의 최대치
  StatesMax     = 27  # 상태 의 최대치
  SkillTypeMax  = 2   # 용어 - 스킬타입 의 최대치
  SkillMax      = 128 # 스킬 의 최대치
  WeaponTypeMax = 10  # 용어 - 무기타입 의 최대치
  ArmorTypeMax  = 6   # 용어 - 방어구타입 의 최대치
 
  #==================================================================
  # 기본 데이터 셋팅
  #==================================================================
 
  for i in 1..EquipSetMax
    EquipSet[i] = {}
    EquipSet[i][:weapons] = []
    EquipSet[i][:armors] = []
   
    EquipSet[i][:param] = []
    EquipSet[i][:paramrate] = []
    EquipSet[i][:bfre] = []
    for param_id in 0..7
      # 0:mhp, 1:mmp, 2:atk, 3:def, 4:mat, 5:mdf, 6:agi, 7:luk
      EquipSet[i][:param][param_id] = 0     # 스텟증감
      EquipSet[i][:paramrate][param_id] = 0 # 스텟비율증감
      EquipSet[i][:bfre][param_id] = 0      # 약화내성
    end
   
    EquipSet[i][:xparam] = []
    EquipSet[i][:sparam] = []
    for param_id in 0..9
      # xparam
      # 0:hit, 1:eva, 2:cri, 3:cev, 4:mev, 5:mrf, 6:cnt, 7:hrg, 8:mrg, 9:trg
      # sparam
      # 0:tgr, 1:grd, 2:rec, 3:pha, 4:mcr, 5:tcr, 6:pdr, 7:mdr, 8:fdr, 9:exr
      EquipSet[i][:xparam][param_id] = 0
      EquipSet[i][:sparam][param_id] = 0
    end
   
    EquipSet[i][:elre] = []
    EquipSet[i][:atel] = []
    for element_id in 1..ElementsMax
      EquipSet[i][:elre][element_id] = 0 # 속성내성
      EquipSet[i][:atel][element_id] = 0 # 공격속성 
    end
   
    EquipSet[i][:stre] = []
    EquipSet[i][:stno] = []
    EquipSet[i][:atst] = []
    for state_id in 1..StatesMax
      EquipSet[i][:stre][state_id] = 0 # 상태내성
      EquipSet[i][:stno][state_id] = 0 # 상태무효
      EquipSet[i][:atst][state_id] = 0 # 공격상태
    end
   
    EquipSet[i][:atsp] = 0 # 공격속도
    EquipSet[i][:atnu] = 0 # 공격횟수
   
    EquipSet[i][:skty] = []
    EquipSet[i][:skts] = []
    for skilltype_id in 1..SkillTypeMax
      EquipSet[i][:skty][skilltype_id] = 0 # 스킬타입 추가
      EquipSet[i][:skts][skilltype_id] = 0 # 스킬타입 봉인
    end
   
    EquipSet[i][:skpl] = []
    EquipSet[i][:skse] = []    
    for skill_id in 1..SkillMax
      EquipSet[i][:skpl][skill_id] = 0 # 스킬 추가
      EquipSet[i][:skse][skill_id] = 0 # 스킬 봉인
    end
   
    EquipSet[i][:wety] = []    
    for wtype_id in 1..WeaponTypeMax
      EquipSet[i][:wety][wtype_id] = 0 # 무기타입 추가
    end
   
    EquipSet[i][:arty] = []    
    for atype_id in 1..ArmorTypeMax
      EquipSet[i][:arty][atype_id] = 0 # 방어구타입 추가
    end
   
    EquipSet[i][:eqfx] = []    
    EquipSet[i][:eqse] = []    
    for equip_id in 0..4 #.equip_slots.size
      EquipSet[i][:eqfx][equip_id] = 0 # 장비고정   
      EquipSet[i][:eqse][equip_id] = 0 # 장비봉인   
    end

    EquipSet[i][:dbwp] = 0 # 이도류
   
  end
 
  #==================================================================
  # 세트 장비 설정
  #==================================================================
 
  EquipSet[1][:weapons] = [1]
  EquipSet[1][:armors] = [1]
  EquipSet[1][:param][0] = 1000
  EquipSet[1][:paramrate][1] = 10
  EquipSet[1][:xparam][2] = 100
  EquipSet[1][:sparam][3] = 100
 
  EquipSet[2][:armors] = [1, 51]
  EquipSet[2][:param][0] = -500
  EquipSet[2][:elre][3] = 100
  EquipSet[2][:stno][7] = 1
 
  EquipSet[3][:weapons] = [12]
  EquipSet[3][:armors] = [1]
  EquipSet[3][:atst][8] = 100
  EquipSet[3][:atnu] = 10
  EquipSet[3][:skts][1] = 1
  EquipSet[3][:skty][2] = 1
  EquipSet[3][:skpl][74] = 1
end

 

먼저

 

  EquipSetMax   = 3   # 설정할 셋트의 최대치
  ElementsMax   = 10  # 용어 - 속성 의 최대치
  StatesMax     = 27  # 상태 의 최대치
  SkillTypeMax  = 2   # 용어 - 스킬타입 의 최대치
  SkillMax      = 128 # 스킬 의 최대치
  WeaponTypeMax = 10  # 용어 - 무기타입 의 최대치
  ArmorTypeMax  = 6   # 용어 - 방어구타입 의 최대치

이 부분을 자신의 프로젝트에 맞게 잘 써넣어 줍시다.

 

( 잘 모르겠는 데 모듈 부분에서 $data_states.size 같은 문구를 쓰면 nil 데이터라면서 에러가 나더군요;;

 

모듈이 클래스보다 우선해서 작업하기 때문인가... 하고 추측해봅니다. )

 

바로 아래 있는 기초데이터 셋팅에서 노가다를 방지하기 위해서 쓰이는 부분이니 만큼 잘 써넣어 줍시다.

 

 

그 다음에는 문구에 대한 해석입니다.

 

    EquipSet[i][:weapons] = []
    EquipSet[i][:armors] = []

이 부분은 셋트 장비를 ID로 써넣을 부분입니다. 

 

7번 셋트를 1번 무기. 핸드액스와 2번 방어구. 가죽베스트로 하고 싶다. 라면

 

    EquipSet[7][:weapons] = [1]
    EquipSet[7][:armors] = [2]

 이런식으로 써넣으면 됩니다. 여러 개도 가능합니다( 그래야 셋트로써 의미가 있겠지요;;)

 

그 아래로는 엄청 긴게 전부 셋트 효과를 나타내는 겁니다... 아... 징하게 길다;;

 

   EquipSet[i][:param] = []
    EquipSet[i][:paramrate] = []
    EquipSet[i][:bfre] = []

 

이 세 개는 기본 파라미터와 관련 있습니다. :param은 수치로 더하는 거. 그 밑에 rate 붙은 건 비율로 더하는 거

 

(정확히는 더한다라기 보다는 증감입니다) 그 밑의 bfre는 약화내성 수치입니다.

 

0:mhp, 1:mmp, 2:atk, 3:def, 4:mat, 5:mdf, 6:agi, 7:luk이므로

 

2번 셋트를 장착했을 때 최대체력을 1000더하고 최대마력을 50% 감소하고 공격력 약화내성을 50% 줄이고 싶다... 면

 

   EquipSet[2][:param][0] = 1000
   EquipSet[2][:paramrate][1] = -50 
   EquipSet[2][:bfre][2] = -50

 

이렇게 써주면 됩니다. 이건 나중에 몰아서 써넣는 게 관리하기 편하실 겁니다.

 

    EquipSet[i][:xparam] = []
    EquipSet[i][:sparam] = []

 

이 부분은 특수능력치와 추가능력치네요 각각 넘버링은

 

      # xparam
      # 0:hit, 1:eva, 2:cri, 3:cev, 4:mev, 5:mrf, 6:cnt, 7:hrg, 8:mrg, 9:trg
      # sparam
      # 0:tgr, 1:grd, 2:rec, 3:pha, 4:mcr, 5:tcr, 6:pdr, 7:mdr, 8:fdr, 9:exr

 

이렇게 됩니다. 이건 제가 임의로 정한게 아니라 VXAce 디폴트 설정입니다..

 

    EquipSet[i][:elre] = []
    EquipSet[i][:atel] = []

 

elre는 속성내성, atel은 공격 속성입니다. 모두 용어의 속성이름 옆의 ID를 참고해주세요.

 

공격 속성의 경우 값이 0이 아니면 공격 속성으로 추가됩니다.

 

    EquipSet[i][:stre] = []
    EquipSet[i][:stno] = []
    EquipSet[i][:atst] = []

 

순서대로 상태내성, 상태무효, 공격상태입니다. 상태란의 이름 옆의 ID를 참고해주세요

 

상태무효도 값이 0이 아니면 무효화 상태로 등록이 되며 공격상태의 경우 값이 확률입니다.

 

    EquipSet[i][:atsp] = 0 # 공격속도
    EquipSet[i][:atnu] = 0 # 공격횟수

 

옆의 주석대로 공격속도와 공격횟수입니다. 적당히 더하고 빼주시면 됩니다.

 

    EquipSet[i][:skty] = []
    EquipSet[i][:skts] = []

 

순서대로 스킬타입 추가와 스킬타입 봉인입니다. 값이 0이 아니면 추가되고 봉인됩니다.

 

    EquipSet[i][:skpl] = []
    EquipSet[i][:skse] = [] 

 

순서대로 스킬 추가 , 스킬 봉인입니다. 값이 0이 아니면 적용됩니다.

 

EquipSet[i][:wety] = []

EquipSet[i][:arty] = [] 

 

순서대로 무기타입 추가와 방어구타입 추가입니다. 역시 값이 0이 아니면 추가됩니다.

 

    EquipSet[i][:eqfx] = []    
    EquipSet[i][:eqse] = []  

 

순서대로 장비고정과 장비봉인입니다. 역시 값이 0이 아니면 그 위치의 장비가 고정되고 봉인됩니다.

 

무기부터 순서대로 0, 1, 2, 3, 4입니다. ( 즉, 아방스님이 올리신 사용자 추가장비 스크립트와는

 

연동되지 않습니다 주의해주세요)

 

 

 

2.

 

이제 잘 살펴보셨으면 설정항목 아래 쪽에 제가 주석줄로 구분해둔 공간이 있는 게 보이실 겁니다.

 

  #==================================================================
  # 세트 장비 설정
  #==================================================================
 
  EquipSet[1][:weapons] = [1]
  EquipSet[1][:armors] = [1]
  EquipSet[1][:param][0] = 1000
  EquipSet[1][:paramrate][1] = 10
  EquipSet[1][:xparam][2] = 100
  EquipSet[1][:sparam][3] = 100
 
  EquipSet[2][:armors] = [1, 51]
  EquipSet[2][:param][0] = -500
  EquipSet[2][:elre][3] = 100
  EquipSet[2][:stno][7] = 1
 
  EquipSet[3][:weapons] = [12]
  EquipSet[3][:armors] = [1]
  EquipSet[3][:atst][8] = 100
  EquipSet[3][:atnu] = 10
  EquipSet[3][:skts][1] = 1
  EquipSet[3][:skty][2] = 1
  EquipSet[3][:skpl][74] = 1

 

이 부분 이야기 하는 겁니다. 이걸 잘 해석할 수 있으면 잘 적용할 수 있을 겁니다.

 

예제를 해석해보자면

 

 

 

1번 셋트 장비는 1번 무기와 1번 방어구를 착용하고 있으면 적용 되며

 

0번 파라미터, 즉 최대체력이 1000 증가하고 1번 파라미터 즉 최대마력이 10% 증가합니다.

 

2번 추가능력치 치명타율이 100 증가하고 3번 특수능력치 약의 지식이 100증가합니다.

 

 

 

2번 셋트 장비는 1번 방어구와 51번 방어구를 착용하고 있으면 적용되며

 

0번 파라미터, 즉 최대체력이 500감소되며 3번 속성저항이 100증가합니다.

 

또한 7번 상태는 무효화되는 군요.

 

 

 

3번 셋트 장비는 12번 무기와 1번 방어구를 착용하고 있으면 적용되며

 

공격시 8번 상태가 100%확률로 적용됩니다. 또한 공격회수가 10 증가하고

 

스킬타입 1번이 봉인되고 스킬타입 2번이 추가되며 74번 스킬이 추가됩니다.

 

 

 

어제오늘 이틀동안 급조하느라 버그가 있을 수 있습니다. 아무쪼록 프로젝트 제작에 도움이 되었으면 합니다.

 

잘 사용해주세요.

 

 

Who's 아이미르

?

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

 

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

  • ?
    허걱 2013.03.08 21:23

    딴 소리지만...
    모듈이 클래스보다 우선해서 작업한다기 보다는...
    $data_states가 정의되어있지 않기 때문이 아닐까요..?
    각각의 파일을 불러서 읽어들이거나
    DataManager.load_normal_database
    을 먼저 실행해서 각각의 변수를 정의해 준 다음 실행한다면 될듯 합니다.

    참고로...
    용어 - 속성의 최대값 등도 알 수 있습니다.
    데이터베이스에서 시스템이나 용어등의 내용은 $data_system 으로 불려지게 되는데...
    예를들어 용어 - 속성의 최대값 같은 경우는
    ($data_system.elements.size - 1) 이라고 해주면 됩니다.
    -1을 하는 이유는... 배열의 0번째는 "" (빈 문자열) 이 저장되기 때문입니다.
    (이는 데이터베이스에 표시되는 숫자와 맞추기 위해서 쓰레기값을 넣은거죠;;)


     

    기본 도움말에서 RPG::System 섹션을 보면 확인할 수 있습니다.

    p $data_system
    등으로 확인해 볼 수도 있습니다.

  • ?
    로브남 2013.03.09 15:19
    사실 기대 안하고 커먼이벤트로 짤 생각하고 있었는데 만들어서 올려주실줄이야... 정말 고생하셨습니다.
    일단 올려두셨으니 사용해 보도록 할게요.
  • ?
    아이미르님은 어쩜 올리시는 것 마다 맘에듬 ㅋ.ㅋ.ㅋ.ㅋ.ㅋ.ㅋ
  • ?
    불청객 2013.04.05 07:51
    질문있습니다~
    장비 장착 제한, 아이템 도감, 셋트 장비, 장비 종류 추가를 쓰고있습니다.
    이렇게 해두고... 반지 라는 아이템 종류를 추가한뒤 2개의 반지가 세트효과를 갖게 만들고 게임에 들어가 재대로 작동하나 확인을 하려하는대...
    오루가 나네요. 셋트장비 #Game_Actor 153 : TypeError occurred. nill can't be coerced into Fixnum
    이라고 하는대...
    장비가 반지 반지 해서 2개의 반지를 낄 수 있는 구조인대 첫 번째 반지를 기면 문제가 없다 2번째 반지를 장착 하려는 순간 뜹니다... 왜그럴까요 ㅠㅠ 하나를 포기해야 하는 걸 까 요
  • ?
    아이미르 2013.04.05 08:37
    제가 작성한 장비장착제한이나 셋트장비 스크립트는 장비슬롯추가 스크립트와는 호환이 안됩니다 따라서 같이 사용하시려면 그 부분을 수정하셔야됩니다
  • ?
    불청객 2013.04.05 09:02

    어딜 어떻게 수정해야할지... 

    스크립트는 너무 어렵군요 .... 

  • ?
    시옷청룡 2013.07.11 12:42
    감사합니다~ 상태가 무효화가 된다는 것은, 셋트를 착용하고 있으면 그 상태에는 절대로 걸리지 않는다는 말이 맞나요?
  • ?
    아이미르 2013.07.25 08:39
    예. VXAce 장비의 특징란에 있는 상태 무효화의 구현입니다.
  • ?
    소나소나 2014.08.08 01:39
    Script '#Game_Actor' line 350:NomethodError Occurred.
    undefined method '[]' for nilclass
    가 뜨네요 ㅜㅜ 뭐지

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 5605
공지 RPG VX ACE 유용한 링크 모음 16 아방스 2012.01.03 29441
117 키입력 Key Simulator by Fantasist 1 습작 2013.05.01 1409
116 기타 Localization by ForeverZer0, KK20 file 습작 2013.04.26 1444
115 키입력 No F1, F12 and Alt+Return (Kein F1, F12 und Alt+Eingabe) by cremno 3 습작 2013.04.19 1575
114 메뉴 아이템 설명 메뉴 스크립트 (Crazyninjaguy) 2 file IZEN 2013.04.18 4918
113 스킬 Skill Cost Manager - Yanfly 4 file Rondo 2013.04.09 2643
112 메시지 N.A.S.T.Y. Text Pop Over Events 3 file Mimesis 2013.04.08 3648
111 이동 및 탈것 Galv’s Character Animations V.2.0 캐릭터 애니메이션 2 yellowcat 2013.04.08 2517
110 이동 및 탈것 Etude87_Mouse_Move_Ex ver.1.00 9 습작 2013.03.29 1643
109 스킬 VXAce 스킬포인트 스크립트 5 file 아이미르 2013.03.21 4186
» 아이템 VXAce 셋트장비 스크립트 9 file 아이미르 2013.03.08 3649
107 상태/속성 상태를 해제하는 상태 3 file 레미티 2013.03.07 1560
106 스킬 VXAce 아츠장착 스킬습득 스크립트 1 file 아이미르 2013.02.24 2797
105 HUD SpriteIcon - 화면에 아이콘 그리기 4 file 허걱 2013.02.24 3659
104 오디오 Extended Music Script (for VXA) by Zhek Alkaid 2013.02.22 1614
103 전투 Basic Enemy HP Bars 2.1 by V.M 10 Alkaid 2013.02.21 4239
102 전투 Etude87_SRPG_converter_for_Ace_Add_on ver.1.02 2 습작 2013.02.18 3116
101 버그픽스 Text Cache by Mithran 1 Alkaid 2013.02.16 1426
100 버그픽스 VXAce SP1 2 Alkaid 2013.02.15 2082
99 메시지 Etude87_VX_Style_Choice ver.1.00 11 file 습작 2013.02.14 3518
98 전투 CP's Battle Engine by Neon Black 20 Alkaid 2013.02.14 5013
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11