질문란에 올라온 걸 보고 패시브 스크립트를 응용해서 고심해서
만들어봤습니다.
딱히 셋트 장비를 장착한 걸 직접적인 효과 이외에 보여주는 장치는 마련하지 못한 관계로
이번엔 스크린 샷이 없네요;;
바로 사용법으로 들어갑니다.
!! 사용법 !!
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번 스킬이 추가됩니다.
어제오늘 이틀동안 급조하느라 버그가 있을 수 있습니다. 아무쪼록 프로젝트 제작에 도움이 되었으면 합니다.
잘 사용해주세요.