질문과 답변

Extra Form

ACE에서는 매뉴에서 파티멤버를 교체할 수 있더군요.
그런데 특정멤버는 교체할 수 없도록 하고 싶은데 방법을 모르겠습니다.

 
 
 

Comment '2'
  • ?
    아이미르 2012.10.06 17:15

    #==============================================================================
    # ■ Scene_Menu
    #------------------------------------------------------------------------------
    #  메뉴 화면의 처리를 실시하는 클래스입니다.
    #==============================================================================

    class Scene_Menu < Scene_MenuBase
      #--------------------------------------------------------------------------
      # ● 줄대체[결정]
      #--------------------------------------------------------------------------
      def on_formation_ok
        if @status_window.pending_index >= 0
          if !$game_party.fixed_member.include?(@status_window.index)
            $game_party.swap_order(@status_window.index, @status_window.pending_index)
            @status_window.pending_index = -1
            @status_window.redraw_item(@status_window.index)
          end
        else
          if !$game_party.fixed_member.include?(@status_window.index)
            @status_window.pending_index = @status_window.index
          end
        end
        @status_window.activate
      end
    end

    #==============================================================================
    # ■ Game_Party
    #------------------------------------------------------------------------------
    #  파티를 취급하는 클래스입니다.소지금이나 아이템등의 정보가 포함됩니다.이 곳간
    # 스의 인스턴스는 $game_party 로 참조됩니다.
    #==============================================================================

    class Game_Party < Game_Unit
      #--------------------------------------------------------------------------
      # ● 공개 인스턴스 변수
      #--------------------------------------------------------------------------
      attr_reader   :fixed_member   
     
      #--------------------------------------------------------------------------
      # ● 오브젝트 초기화
      #--------------------------------------------------------------------------
      alias old_ini initialize
      def initialize
        old_ini
        @fixed_member = []
      end
    end

     

    이 스크립트는 특정 순서의 액터를 자리교체할 수 없게 고정시키는 스크립트입니다아...

    액터를 기준으로 하려했더니 순서를 고려하는 게 귀찮아서 아예 순서 기준으로 만들었네요.

     

    예시를 들어 사용법을 말해보면

    지금 파티가 5명이 있는 데

    3번째 순서의 액터를 고정하고 싶다

    -> 이벤트의 스크립트 창에 $game_party.fixed_member.push(2)를 써 줍니다

      순서는 0부터 시작하기 때문입니다

     

    그런 다음 확인해보면 아예 선택이 안됩니다...

    다른 액터를 선택해도 이 녀석은 순서교체 메뉴에서는 선택이 되지 않습니다.

     

    다시 고정을 풀고 순서교체를 사용하려면

    3번째 순서의 액터의 고정을 풀고 싶다

    -> 이벤트의 스크립트 창에 $game_party.fixed_member.delete(2)를 써 줍니다

     

    여럿을 사용하면 둘 이상의 액터도 고정할 수 있습니다

     

    유용히 사용하세요

  • ?
    님믹 2012.10.07 10:30
    왕 ^^ 정말 고맙습니다~

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12451
Board Pagination Prev 1 ... 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 Next
/ 83