기타

양손무기, 전신갑옷 스크립트

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
# 양손 소유 무기·전신요로이 ver.0.52(Since 2005/09/11)
# by Tetra-Z
#
# 복수의 장비 부위를 필요로 하는 장비를 설정합니다.
# <요점 뉴 게임>
#
# 병용 전제:XMS.줩RXS_MP8.아모 어레인지+마르치웨폰?
#          Tetra-Z작?아이템 취급?
# 도입 개소:XMS.줩RXS_MP8.아모 어레인지+마르치웨폰?보다 아래
#
# ver.0.50
# 출현
# ver.0.51(2005/09/14)
# 병용 확인 스윗치의 제거
# ver.0.52(2005/09/18)
# 장비중의 개소에 빈 곳을 필요로 하는 설정의 경우 제외할 수 없게 되는 버그를 수정.

#==============================================================================
# TETRAZ23
#==============================================================================
module TETRAZ23
  #--------------------------------------------------------------------------
  # ○ 무기가 필요로 하는 다른 장비 개소 @right_window상단으로부터0,1,2……
  #--------------------------------------------------------------------------
  def need_space_weapon(id)
    case id
    #==========================================================================
    # □ 커스터마이즈 포인트 1/2
    #==========================================================================
    when 1
      return [0,1] # 양손검 설정은 여기서 하실 수 있습니다
    when 20
      return [0,1]
    end
    return []
    #==========================================================================
  end
  #--------------------------------------------------------------------------
  # ○ 방어구가 필요로 하는 다른 장비 개소 @right_window상단으로부터0,1,2……
  #--------------------------------------------------------------------------
  def need_space_armor(id)
    case id
    #==========================================================================
    # □ 커스터마이즈 포인트 2/2
    #==========================================================================
    when 1
      return []  #전신갑옷 설정은 여기서 하실 수 있습니다
    end
    return []
    #==========================================================================
  end
end
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ○ 인클루드
  #--------------------------------------------------------------------------
  include TETRAZ23
  #--------------------------------------------------------------------------
  # ● 공개 인스턴스 변수
  #--------------------------------------------------------------------------
  attr_accessor :filled_equip_space
  #--------------------------------------------------------------------------
  # ● 셋업
  #    actor_id : 액터 ID
  #--------------------------------------------------------------------------
  alias tetraz23_setup setup
  def setup(actor_id)
    actor = $data_actors[actor_id]
    @filled_equip_space = {}
    tetraz23_setup(actor_id)
    fill = []
    fill[0] = need_space_weapon(@weapon_id)
    fill[1] = need_space_armor(@armor1_id)
    fill[2] = need_space_armor(@armor2_id)
    fill[3] = need_space_armor(@armor3_id)
    fill[4] = need_space_armor(@armor4_id)
    for j in 0..4
      for i in fill[j]
        if j == 0
          @filled_equip_space[i] = 0
        elsif defined? xrxs_mp8_setup
          @filled_equip_space[i] = XRXS_MP8::WEAPON_KINDS.size - 1 + j
        else
          @filled_equip_space[i] = j
        end
      end
    end
  end
end
#==============================================================================
# ■ Window_EquipRight
#==============================================================================
class Window_EquipRight < Window_Selectable
  attr_reader :data
end
#==============================================================================
# ■ Scene_Equip
#==============================================================================
class Scene_Equip
  #--------------------------------------------------------------------------
  # ○ 인클루드
  #--------------------------------------------------------------------------
  include TETRAZ23
  #--------------------------------------------------------------------------
  # ● 프레임 갱신 (라이트 윈도우가 액티브의 경우)
  #--------------------------------------------------------------------------
  alias tetraz23_update_right update_right
  def update_right
    # C 버튼이 밀렸을 경우
    if Input.trigger?(Input::C)
  if @right_window.item == nil and @actor.filled_equip_space[@right_window.index] != nil
        # 버저 SE (을)를 연주
        $game_system.se_play($data_system.buzzer_se)
        return
      end
    end
    tetraz23_update_right
  end
  #--------------------------------------------------------------------------
  #  ● 프레임 갱신 (라이트 윈도우가 액티브의 경우)
  #--------------------------------------------------------------------------
  alias tetraz23_update_item update_item
  def update_item
    # C 버튼이 밀렸을 경우
    if Input.trigger?(Input::C)
      space = []
      if @item_window.item.is_a?(RPG::Weapon)
        space = need_space_weapon(@item_window.item.id)
      elsif @item_window.item.is_a?(RPG::Armor)
        space = need_space_armor(@item_window.item.id)
      end
      for i in space
        next if @right_window.index == i
        if @right_window.data[i] != nil
          # 버저 SE (을)를 연주
          $game_system.se_play($data_system.buzzer_se)
          return
        end
      end
      before = @right_window.item
      tetraz23_update_item
      if before != @right_window.item
        for j in @actor.filled_equip_space.keys.clone
        @actor.filled_equip_space.delete(j) if @actor.filled_equip_space[j] == @right_window.index
        end
        for k in space
          @actor.filled_equip_space[k] = @right_window.index
        end
        # 라이트 윈도우, 아이템 윈도우의 내용을 재작성
        @right_window.refresh
      end
      return
    end
    tetraz23_update_item
  end
end
#----------------- 끝


사용법입니다

커스터마이즈 포인트
need_space_weapon(id)
    case id
    when 1
      return []
    end
    return []
  end
return [ 필요 장비 개소 배열] 그리고, 무기ID (으)로부터 실제로 장비하는 개소 이외에 필요한 장비 개소를 설정합니다.
필요 장비 개소 배열은,@right_window 의 상단으로부터0,1,2 ……됩니다.

( 례) return [0, 1]

장비중은 방패를 장비할 수 없게 되는, 양손 소유 무기가 됩니다.
XMS.줩RXS_MP8. 아모 어레인지·마르치웨폰?병용에 의해 무기가2 개소의 경우,
그 무기2 개소를 필요로 하는 양손 소유 무기가 됩니다.
  need_space_armor(id)
    case id
    when 1
      return []
    end
    return []
  end
return [ 필요 장비 개소 배열] 그리고, 방어구ID (으)로부터 실제로 장비하는 개소 이외에 필요한 장비 개소를 설정합니다.
필요 장비 개소 배열은 무기와 같이,@right_window 의 상단으로부터0,1,2 ……됩니다.

( 례) return [2]

이것이 요로이라면, 두와 요로이의 장비 개소를 필요로 하는 전신요로이가 됩니다.

주의
요점 뉴 게임.초기 장비에 모순이 생기면, 정상적으로 일하지 않습니다.주의해 주십시오.

이와 같은 분에게 추천!
양손 소유의 무기나, 전신요로이를 설정하고 싶다! 그렇다고 하는 분… ○ 
장비의 개념이 없는 동물RPG 그렇지만? 그렇다고 하는 분… ? 

출처는 - [수수께끼의정사면체] 입니다