이도류 직업을 만들려고 인터넷을 뒤적여서 어떤 스크립트를 써봤습니다.(내가 만들 수 있으면 참 좋겠는데 이걸 전혀 공부한 적이 없어서...)
무기1과 2에 각각 특정 장비만 착용 가능하게 하는 스크립트인데.
문제는 이펙트가 둘이 같이 나오네요.
무기2의 이펙트는 봉인하는 방법 없을까요?
그리고 이게 케릭터를 지정하는 스크립트인게 아쉬운데...직업으로 바꿀 수 없을까요?
module IMIR_HandSeparable
LEFT_HAND = [] #원래 무기 장착하는 부분이 왼손
RIGHT_HAND = [] #원래 방패 장착하는 부분이 오른손...;;;
#1번 액터의 경우
LEFT_HAND[1] = [1] #왼손은 무기타입 1번 착용가능
RIGHT_HAND[1] = [2, 4] #오른손은 무기타입 2, 4번 착용가능
end
#==============================================================================
# ■ Window_EquipItem
#------------------------------------------------------------------------------
# 장비 화면에서, 장비 변경의 후보가 되는 아이템의 일람을 표시하는 윈도우입니다.
#==============================================================================
class Window_EquipItem < Window_ItemList
#--------------------------------------------------------------------------
# ● 아이템을 리스트에 포함할지
#--------------------------------------------------------------------------
def include?(item)
return true if item == nil
return false unless item.is_a?(RPG::EquipItem)
return false if @slot_id < 0
return false if item.etype_id != @actor.equip_slots[@slot_id]
return false if hand_separable?(item)
return @actor.equippable?(item)
end
#--------------------------------------------------------------------------
# ● 왼손/오른손 구분함수
#--------------------------------------------------------------------------
def hand_separable?(item)
return if !@actor.dual_wield?
return if !item.is_a?(RPG::Weapon)
return if !IMIR_HandSeparable::LEFT_HAND[@actor.id]
return if !IMIR_HandSeparable::RIGHT_HAND[@actor.id]
if @slot_id == 0
if !IMIR_HandSeparable::LEFT_HAND[@actor.id].include?(item.wtype_id)
return true
end
elsif @slot_id == 1
if !IMIR_HandSeparable::RIGHT_HAND[@actor.id].include?(item.wtype_id)
return true
end
end
return false
end
end
return @actor.class_id == 1(첫번째 직업군인지 확인)
이렇게 하시면, 캐릭터의 직업이 1이 아니면 false가 되어서 첫번째 직업이 아니면 이도류를 사용하지 않게 막는다거나 하는 방법을 하시면 되겠습니다.
이펙트 부분은 지금 보여주신 스크립트에선 관계가 없습니다.