파티

메뉴커맨드로 파티 멤버들 순서 바꾸기 by Yargovish

by 백호 posted Feb 22, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
http://www.phylomortis.com/resource/script/scr018.html
  class Scene_Menu를 저걸로 대체하라....고 되어 있습니다(단, 저기에는 걸음수 표시가 빠져 있음).  사실 Scene_Menu를 통째로 갈아엎을 필요 없이 관련 부분만 추가하면 됩니다.

class Scene_Menu
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #    menu_index : コマンドのカーソル初期位置
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
    @changer = 0 #Change Party Order by Yargovish
    @where = 0 #
    @checker = 0  #추가 끝
  end
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  def main
    # コマンドウィンドウを作成
    s1 = $data_system.words.item
    s2 = $data_system.words.skill
    s3 = $data_system.words.equip
    s4 = "Status"
    s5 = "Save"
    s6 = "Exit"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
#위의 부분을 편집해서 순서변경항목을 추가합니다.
...
    if $game_party.actors.size == 1 #
      @command_window.disable_item(순서변경항목 인덱스번호) #인덱스 번호는 배열처럼 0에서 시작
    end
...
  #--------------------------------------------------------------------------
  # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_command
...
# C ボタンが押された場合
    if Input.trigger?(Input::C)
      # パーティ人数が 0 人で、セーブ、ゲーム終了以外のコマンドの場合
      if $game_party.actors.size == 0 and @command_window.index < 4
        # ブザー SE を演奏
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      if $game_party.actors.size <= 1 and @command_window.index == (순서변경항목 인덱스번호) #인덱스 번호는 배열처럼 0에서 시작
        $game_system.se_play($data_system.buzzer_se)
        return
      end #추가끝
...
      case @command_window.index
...
      when (순서변경항목 인덱스번호) #인덱스 번호는 배열처럼 0에서 시작
        #Change Party Order by Yargovish
        $game_system.se_play($data_system.decision_se)
        @checker = 0
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
...
  #--------------------------------------------------------------------------
  # ● フレーム更新 (ステータスウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_status
...
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      # コマンドウィンドウのカーソル位置で分岐
      case @command_window.index
...
      when (순서변경항목 인덱스번호) #인덱스 번호는 배열처럼 0에서 시작
        #Change Party Order by Yargovish
        $game_system.se_play($data_system.decision_se)
        if @checker == 0
          @changer = $game_party.actors[@status_window.index]
          @where = @status_window.index
          @checker = 1
        else
          $game_party.actors[@where] = $game_party.actors[@status_window.index]
          $game_party.actors[@status_window.index] = @changer
          @checker = 0
          @status_window.refresh
...

**이 스크립트로 파티멤버들의 순서를 바꾸면 메뉴상이나 전투상에서는 순서가 바뀐 것으로 나오지만 맵상에 표시되는 선두캐릭터에는 영향을 주지 않습니다(누가 선두캐릭터도 바뀌게 해 보실 분?).