閲覧数 1656 推奨数 0 コメント 2
Atachment
添付 '1'
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷
?

Shortcut

Prev前へ 書き込み

Next次へ 書き込み

Larger Font Smaller Font 上へ 下へ Go comment 印刷

1.png

 

장비 부분에서 이렇게 달랑 5개(액터이름 레벨 공격력 타격 저항력 마법 저항력)말고 나머지 지능이나 민첩성이나 아무튼 그런것들도 보여줬으면 좋겠는데요... 어떻게 해야하는지... 

Who's 누런덧니

profile

평범한 쯔꾸르 제작자 누런덧니입니다.

국방부 퀘스트 중입니다.(2018.09.11 ~)


(네이버 블로그)

https://blog.naver.com/kslog053


(병맛 세계)

병원 탈출 (2017/01/03)

Over Rigs! (2017/05/01)

심영의 병원탈출 (2017/07/20)

4딸라! (2018/01/11)


(지식 세계)

게임 BGM 퀴즈! (2017/11/28)


(치킨 냠냠 세계)

치킨이닭! (2017/12/29)


(팬작 세계)

희망! 희망! 희망! (2018/05/10)


(좀비 바이러스로 뒤덮힌 세계)

길 (2018/06/30)

몇 분 전에... (2019/01/16)


(빛과 어둠이 경계하는 세계)

Ep.0 조용한 그녀와 함께 (2018/09/05)

?
  • profile
    천무 2016.01.30 20:14 Files添付 (1)

    좀 복잡할겁니다. 그냥 붙여넣기 하지마시고 이해하면서 살펴보세요.

     

    우선 스크립트중 Scene_Equip 을 수정합니다.

    제가 수정한곳은 빨간색 표기합니다.

     

    #==============================================================================
    # ■ Scene_Equip
    #------------------------------------------------------------------------------
    #  장비 화면의 처리를 실시하는 클래스입니다.
    #==============================================================================

    class Scene_Equip
      #--------------------------------------------------------------------------
      # ● 오브젝트 초기화
      #     actor_index : 액터 인덱스
      #     equip_index : 장비 인덱스
      #--------------------------------------------------------------------------
      def initialize(actor_index = 0, equip_index = 0)
        @actor_index = actor_index
        @equip_index = equip_index
      end
      #--------------------------------------------------------------------------
      # ● 메인 처리
      #--------------------------------------------------------------------------
      def main
        # 액터를 취득
        @actor = $game_party.actors[@actor_index]
        # 윈도우를 작성
        @help_window = Window_Help.new
        @left_window = Window_EquipLeft.new(@actor)
        @right_window = Window_EquipRight.new(@actor)
        @item_window1 = Window_EquipItem.new(@actor, 0)
        @item_window2 = Window_EquipItem.new(@actor, 1)
        @item_window3 = Window_EquipItem.new(@actor, 2)
        @item_window4 = Window_EquipItem.new(@actor, 3)
        @item_window5 = Window_EquipItem.new(@actor, 4)
        # 헬프 윈도우를 관련지어
        @right_window.help_window = @help_window
        @item_window1.help_window = @help_window
        @item_window2.help_window = @help_window
        @item_window3.help_window = @help_window
        @item_window4.help_window = @help_window
        @item_window5.help_window = @help_window
        # 커서 위치를 설정
        @right_window.index = @equip_index
        refresh
        # 트란지션 실행
        Graphics.transition
        # 메인 루프
        loop do
          # 게임 화면을 갱신
          Graphics.update
          # 입력 정보를 갱신
          Input.update
          # 프레임 갱신
          update
          # 화면이 바뀌면 루프를 중단
          if $scene != self
            break
          end
        end
        # 트란지션 준비
        Graphics.freeze
        # 윈도우를 해방
        @help_window.dispose
        @left_window.dispose
        @right_window.dispose
        @item_window1.dispose
        @item_window2.dispose
        @item_window3.dispose
        @item_window4.dispose
        @item_window5.dispose
      end
      #--------------------------------------------------------------------------
      # ● 리프레쉬
      #--------------------------------------------------------------------------
      def refresh
        # 아이템 윈도우의 가시 상태 설정
        @item_window1.visible = (@right_window.index == 0)
        @item_window2.visible = (@right_window.index == 1)
        @item_window3.visible = (@right_window.index == 2)
        @item_window4.visible = (@right_window.index == 3)
        @item_window5.visible = (@right_window.index == 4)
        # 현재 장비중의 아이템을 취득
        item1 = @right_window.item
        # 현재의 아이템 윈도우를 @item_window 로 설정
        case @right_window.index
        when 0
          @item_window = @item_window1
        when 1
          @item_window = @item_window2
        when 2
          @item_window = @item_window3
        when 3
          @item_window = @item_window4
        when 4
          @item_window = @item_window5
        end
        # 라이트 윈도우가 액티브의 경우
        if @right_window.active
          # 장비 변경 후의 파라미터를 소거
          @left_window.set_new_parameters(nil, nil, nil, nil)
        end
        # 아이템 윈도우가 액티브의 경우
        if @item_window.active
          # 현재 선택중의 아이템을 취득
          item2 = @item_window.item
          # 장비를 변경
          last_hp = @actor.hp
          last_sp = @actor.sp
          @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
          # 장비 변경 후의 파라미터를 취득
          new_atk = @actor.atk
          new_pdef = @actor.pdef
          new_mdef = @actor.mdef
          new_agi = @actor.agi      #이줄이 추가됨. 이것은 민첩에관한 장비변경후 파라미터 취득과정입니다.
          # 장비를 되돌린다
          @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
          @actor.hp = last_hp
          @actor.sp = last_sp
          # 레프트 윈도우에 묘화
          @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_agi) #마찬가지 위에서 민첩이하나더생겼으니추가
        end
      end
      #--------------------------------------------------------------------------
      # ● 프레임 갱신
      #--------------------------------------------------------------------------
      def update
        # 윈도우를 갱신
        @left_window.update
        @right_window.update
        @item_window.update
        refresh
        # 라이트 윈도우가 액티브의 경우: update_right 를 부른다
        if @right_window.active
          update_right
          return
        end
        # 아이템 윈도우가 액티브의 경우: update_item 를 부른다
        if @item_window.active
          update_item
          return
        end
      end
      #--------------------------------------------------------------------------
      # ● 프레임 갱신 (라이트 윈도우가 액티브의 경우)
      #--------------------------------------------------------------------------
      def update_right
        # B 버튼이 밀렸을 경우
        if Input.trigger?(Input::B)
          # 캔슬 SE 를 연주
          $game_system.se_play($data_system.cancel_se)
          # 메뉴 화면으로 전환해
          $scene = Scene_Menu.new(2)
          return
        end
        # C 버튼이 밀렸을 경우
        if Input.trigger?(Input::C)
          # 장비 고정의 경우
          if @actor.equip_fix?(@right_window.index)
            # 버저 SE 를 연주
            $game_system.se_play($data_system.buzzer_se)
            return
          end
          # 결정 SE 를 연주
          $game_system.se_play($data_system.decision_se)
          # 아이템 윈도우를 액티브화
          @right_window.active = false
          @item_window.active = true
          @item_window.index = 0
          return
        end
        # R 버튼이 밀렸을 경우
        if Input.trigger?(Input::R)
          # 커서 SE 를 연주
          $game_system.se_play($data_system.cursor_se)
          # 다음의 액터에게
          @actor_index += 1
          @actor_index %= $game_party.actors.size
          # 다른 장비 화면으로 전환해
          $scene = Scene_Equip.new(@actor_index, @right_window.index)
          return
        end
        # L 버튼이 밀렸을 경우
        if Input.trigger?(Input::L)
          # 커서 SE 를 연주
          $game_system.se_play($data_system.cursor_se)
          # 전의 액터에게
          @actor_index += $game_party.actors.size - 1
          @actor_index %= $game_party.actors.size
          # 다른 장비 화면으로 전환해
          $scene = Scene_Equip.new(@actor_index, @right_window.index)
          return
        end
      end
      #--------------------------------------------------------------------------
      # ● 프레임 갱신 (아이템 윈도우가 액티브의 경우)
      #--------------------------------------------------------------------------
      def update_item
        # B 버튼이 밀렸을 경우
        if Input.trigger?(Input::B)
          # 캔슬 SE 를 연주
          $game_system.se_play($data_system.cancel_se)
          # 라이트 윈도우를 액티브화
          @right_window.active = true
          @item_window.active = false
          @item_window.index = -1
          return
        end
        # C 버튼이 밀렸을 경우
        if Input.trigger?(Input::C)
          # 장비 SE 를 연주
          $game_system.se_play($data_system.equip_se)
          # 아이템 윈도우로 현재 선택되고 있는 데이터를 취득
          item = @item_window.item
          # 장비를 변경
          @actor.equip(@right_window.index, item == nil ? 0 : item.id)
          # 라이트 윈도우를 액티브화
          @right_window.active = true
          @item_window.active = false
          @item_window.index = -1
          # 라이트 윈도우, 아이템 윈도우의 내용을 재작성
          @right_window.refresh
          @item_window.refresh
          return
        end
      end
    end
     

     

     

     

    자 그리고 다음으로. Window_EquipLeft 를 수정합니다.

     

     

    #==============================================================================
    # ■ Window_EquipLeft
    #------------------------------------------------------------------------------
    #  장비 화면에서, 액터의 파라미터 변화를 표시하는 윈도우입니다.
    #==============================================================================

    class Window_EquipLeft < Window_Base
      #--------------------------------------------------------------------------
      # ● 오브젝트 초기화
      #     actor : 액터
      #--------------------------------------------------------------------------
      def initialize(actor)
        super(0, 64, 272, 292)  #원래 192인데 292로 수정했습니다. 이건 창의 높이입니다. 글씨가 더 들어가려면 창높이가 높아져야되죠.
        self.contents = Bitmap.new(width - 32, height - 32)
        @actor = actor
        refresh
      end
      #--------------------------------------------------------------------------
      # ● 리프레쉬
      #--------------------------------------------------------------------------
      def refresh
        self.contents.clear
        draw_actor_name(@actor, 4, 0)
        draw_actor_level(@actor, 4, 32)
        draw_actor_parameter(@actor, 4, 64, 0)
        draw_actor_parameter(@actor, 4, 96, 1)
        draw_actor_parameter(@actor, 4, 128, 2)
        draw_actor_parameter(@actor, 4, 160, 5) # 민첩1줄 추가하는겁니다. 마지막에 숫자가 표기할스텟종류입니다. Game_Actor 에서 번호 몇번이 뭘 의미하는지 확인가능합니다.
        if @new_atk != nil
          self.contents.font.color = system_color
          self.contents.draw_text(160, 64, 40, 32, "→", 1)
          self.contents.font.color = normal_color
          self.contents.draw_text(200, 64, 36, 32, @new_atk.to_s, 2)
        end
        if @new_pdef != nil
          self.contents.font.color = system_color
          self.contents.draw_text(160, 96, 40, 32, "→", 1)
          self.contents.font.color = normal_color
          self.contents.draw_text(200, 96, 36, 32, @new_pdef.to_s, 2)
        end
        if @new_mdef != nil
          self.contents.font.color = system_color
          self.contents.draw_text(160, 128, 40, 32, "→", 1)
          self.contents.font.color = normal_color
          self.contents.draw_text(200, 128, 36, 32, @new_mdef.to_s, 2)
        end
        if @new_agi != nil
          self.contents.font.color = system_color
          self.contents.draw_text(160, 160, 40, 32, "→", 1)
          self.contents.font.color = normal_color
          self.contents.draw_text(200, 160, 36, 32, @new_agi.to_s, 2)
        end
       
      end
      #--------------------------------------------------------------------------
      # ● 장비 변경 후의 파라미터 설정
      #     new_atk  : 장비 변경 후의 공격력
      #     new_pdef : 장비 변경 후의 물리 방어
      #     new_mdef : 장비 변경 후의 마법 방어
      #     new_mindef : 장비 변경 후의 민첩
      #--------------------------------------------------------------------------
      def set_new_parameters(new_atk, new_pdef, new_mdef, new_agi)
        if @new_atk != new_atk or @new_pdef != new_pdef or @new_mdef != new_mdef or @new_agi != new_agi
          @new_atk = new_atk
          @new_pdef = new_pdef
          @new_mdef = new_mdef
          @new_agi = new_agi
          refresh
        end
      end
    end

     

    자 다음. Window_EquipRight 수정.

     

    #==============================================================================
    # ■ Window_EquipRight
    #------------------------------------------------------------------------------
    #  장비 화면에서, 액터가 현재 장비하고 있는 아이템을 표시하는 윈도우입니다.
    #==============================================================================

    class Window_EquipRight < Window_Selectable
      #--------------------------------------------------------------------------
      # ● 오브젝트 초기화
      #     actor : 액터
      #--------------------------------------------------------------------------
      def initialize(actor)
        super(272, 64, 368, 292) #좌측창을 넓혔으니 우측도 넓혀야죠. 
        self.contents = Bitmap.new(width - 32, height - 32)
        @actor = actor
        refresh
        self.index = 0
      end
      #--------------------------------------------------------------------------
      # ● 아이템의 취득
      #--------------------------------------------------------------------------
      def item
        return @data[self.index]
      end
      #--------------------------------------------------------------------------
      # ● 리프레쉬
      #--------------------------------------------------------------------------
      def refresh
        self.contents.clear
        @data = []
        @data.push($data_weapons[@actor.weapon_id])
        @data.push($data_armors[@actor.armor1_id])
        @data.push($data_armors[@actor.armor2_id])
        @data.push($data_armors[@actor.armor3_id])
        @data.push($data_armors[@actor.armor4_id])
        @item_max = @data.size
        self.contents.font.color = system_color
        self.contents.draw_text(4, 32 * 0, 92, 32, $data_system.words.weapon)
        self.contents.draw_text(4, 32 * 1, 92, 32, $data_system.words.armor1)
        self.contents.draw_text(4, 32 * 2, 92, 32, $data_system.words.armor2)
        self.contents.draw_text(4, 32 * 3, 92, 32, $data_system.words.armor3)
        self.contents.draw_text(5, 32 * 4, 92, 32, $data_system.words.armor4)
        draw_item_name(@data[0], 92, 32 * 0)
        draw_item_name(@data[1], 92, 32 * 1)
        draw_item_name(@data[2], 92, 32 * 2)
        draw_item_name(@data[3], 92, 32 * 3)
        draw_item_name(@data[4], 92, 32 * 4)
      end
      #--------------------------------------------------------------------------
      # ● 헬프 텍스트 갱신
      #--------------------------------------------------------------------------
      def update_help
        @help_window.set_text(self.item == nil ? "" : self.item.description)
      end
    end
     

     

     

    다음 Window_EquipItem 변경.

     

    #==============================================================================
    # ■ Window_EquipItem
    #------------------------------------------------------------------------------
    #  장비 화면에서, 장비 변경의 후보가 되는 아이템의 일람을 표시하는 윈도우입니다.
    #==============================================================================

    class Window_EquipItem < Window_Selectable
      #--------------------------------------------------------------------------
      # ● 오브젝트 초기화
      #     actor      : 액터
      #     equip_type : 장비 부위 (0~3)
      #--------------------------------------------------------------------------
      def initialize(actor, equip_type)
        super(0, 356, 640, 124)  #위 창들이 100씩 길어졌으니 아래 장비나오는창은 100이 줄어야되고, 또 창의 Y축도 100 늘어나야 합니다.
        @actor = actor
        @equip_type = equip_type
        @column_max = 2
        refresh
        self.active = false
        self.index = -1
      end
      #--------------------------------------------------------------------------
      # ● 아이템의 취득
      #--------------------------------------------------------------------------
      def item
        return @data[self.index]
      end
      #--------------------------------------------------------------------------
      # ● 리프레쉬
      #--------------------------------------------------------------------------
      def refresh
        if self.contents != nil
          self.contents.dispose
          self.contents = nil
        end
        @data = []
        # 장비 가능한 무기를 추가
        if @equip_type == 0
          weapon_set = $data_classes[@actor.class_id].weapon_set
          for i in 1...$data_weapons.size
            if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)
              @data.push($data_weapons[i])
            end
          end
        end
        # 장비 가능한 방어구를 추가
        if @equip_type != 0
          armor_set = $data_classes[@actor.class_id].armor_set
          for i in 1...$data_armors.size
            if $game_party.armor_number(i) > 0 and armor_set.include?(i)
              if $data_armors[i].kind == @equip_type-1
                @data.push($data_armors[i])
              end
            end
          end
        end
        # 공백을 추가
        @data.push(nil)
        # 비트 맵을 작성해, 전항목을 묘화
        @item_max = @data.size
        self.contents = Bitmap.new(width - 32, row_max * 32)
        for i in 0...@item_max-1
          draw_item(i)
        end
      end
      #--------------------------------------------------------------------------
      # ● 항목의 묘화
      #     index : 항목 번호
      #--------------------------------------------------------------------------
      def draw_item(index)
        item = @data[index]
        x = 4 + index % 2 * (288 + 32)
        y = index / 2 * 32
        case item
        when RPG::Weapon
          number = $game_party.weapon_number(item.id)
        when RPG::Armor
          number = $game_party.armor_number(item.id)
        end
        bitmap = RPG::Cache.icon(item.icon_name)
        self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
        self.contents.font.color = normal_color
        self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
        self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
        self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
      end
      #--------------------------------------------------------------------------
      # ● 헬프 텍스트 갱신
      #--------------------------------------------------------------------------
      def update_help
        @help_window.set_text(self.item == nil ? "" : self.item.description)
      end
    end
     

     

     

     

     

    이렇게 수정하면 

    장비.png

     

    렇게 됩니다. 참쉽죠?

    ............

     

     

    제가 다시 강조하는 거지만 절대로 그냥 복붙하지마시고 직접 이걸 보고 하나씩 수정하고 추가해보셔야됩니다.

    왜냐면 저는 민첩 1개만 넣었지만. 몇개 더 넣을생각이시면 이걸 으용해서 다른것도 넣으셔야 하니까.

    스스로 알아야됩니다.

     

    이 스크립트 편집에서 중요한건. 창의크기, 창에표기되는 항목을 늘리기. (이 두가지 뿐입니다)

    좌표체계도 상당히 심플하고 일관적이기때문에 (X,Y,가로,세로) 창 조정하는건 익숙해지면 금방 합니다.

     

    이걸로 도움이 되셨기를 바라며 하하하 전이만!

     

  • profile
    누런덧니 2016.01.31 09:08
    감사합니다! 우선 해독 작업을 수행해보겠습니다!

List of Articles
番号 タイトル 投稿者 日付 閲覧数 推奨数
お知らせ 제2회 인디사이드 게임제작대회 출품작 리스트. 189 인디사이드운영자 2016.10.24 55189 0
お知らせ 인디사이드 활동 규정.(ver.20160119) 192 천무 2015.02.16 57811 1
23595 빛나는 글 new Starlight 2026.07.09 21 0
23594 Unite Seoul 2026 키노트 오픈기념 특별 프로모션 안내 - Unity CEO 방한, 세계 최초 발표 newfile 회잉 2026.07.09 27 0
23593 직장인 이성 만나는 현실적인 방법 file 우쭈앙 2026.07.08 38 0
23592 텔레그램@brrsim_7 선불유심내구제 선불유심매입 뽀로로통신 간편긴급자금 무직자 모바일소액 급전 개인선불유심삽니다 선불유심구매 정식업체 급전 선불유심내구제뽀로로통신 2026.07.08 43 0
23591 선불유심내구제 @brrsim_7텔레그램 소액급전 선불유심매입 뽀로로통신 급전 선불유심현금화하는업체 선불유심구매 선불유심내구제뽀로로통신 2026.07.08 51 0
23590 텔레그램@brrsim_7 선불유심내구제 선불유심매입 뽀로로통신 주부소액급전바로급전 선불유심구매 급전인터넷무담보소액 막심삽니다 선불유심내구제뽀로로통신 2026.07.08 51 0
23589 선불유심내구제 텔레그램@brrsim_7 선불유심매입 뽀로로통신 소액개인돈 급전 연체자바로소액급전 선불유심구매 무방문무서류 선불유심내구제뽀로로통신 2026.07.08 55 0
23588 텔레그램@brrsim_7 선불유심내구제 뽀로로통신 유심매입 선불유심구매 급전 전국바로급전해결 선불유심내구제뽀로로통신 2026.07.08 62 0
23587 선불유심내구제 텔레그램@brrsim_7 선불유심매입 뽀로로통신 주부소액내구제추천 급전 선불유심구매 연체자소액급전 선불유심내구제뽀로로통신 2026.07.08 54 0
23586 텔레그램@brrsim_7 선불유심내구제 소액급전 선불유심매입 뽀로로통신 대학생소액급전 선불유심구매 급전 선불유심내구제뽀로로통신 2026.07.08 50 0
23585 텔레그램@brrsim_7 선불유심내구제 선불유심매입 뽀로로통신 직장인바로소액급전 선불유심구매 급전 연체자바로소액급전 근로복지공단긴급생계비 선불유심내구제뽀로로통신 2026.07.08 52 0
23584 텔레그램@brrsim_7 선불유심내구제 선불유심매입 뽀로로통신 정부지원긴급생계비 소액급전 선불유심구매 막심삽니다 선불유심내구제뽀로로통신 2026.07.08 51 0
23583 텔레그램@brrsim_7 선불유심내구제 선불유심매입 뽀로로통신 급전 정부정책자금생활안정생계급전지원금 선불유심구매 연체자바로소액급전 선불유심내구제뽀로로통신 2026.07.08 54 0
23582 선불유심내구제 텔레그램@brrsim_7 선불유심매입 뽀로로통신 급전 모바일급전 저신용자비상금소액 유심칩매입문의 선불유심구매 선불유심내구제뽀로로통신 2026.07.08 51 0
23581 텔레그램@brrsim_7 선불유심내구제 선불유심매입 뽀로로통신 급전 연체자30만원소액 바로소액급전 선불유심구매 바로신불급전가능 선불유심내구제뽀로로통신 2026.07.08 50 0
23580 @brrsim_7텔레그램 선불유심내구제 급전 뽀로로통신 선불유심매입 뽀로로통신 선불유심현금화하는업체 선불유심구매 간편무서류소액급전 선불유심내구제뽀로로통신 2026.07.08 51 0
23579 선불유심내구제 텔레그램@brrsim_7 선불유심매입 선불유심구매 뽀로로통신 급전 대학생내구제 비상금 연체자바로소액급전 주말소액급전 선불유심내구제뽀로로통신 2026.07.08 57 0
23578 개인돈·비대면 급전대출 안전 상담 | 텔레그램 @bumbee2| 혜경궁 2026.07.08 55 0
23577 개인돈·비대면 급전대출 안전 상담 | 텔레그램 @bumbee2| 혜경궁 2026.07.08 51 0
23576 개인돈·비대면 급전대출 안전 상담 | 텔레그램 @bumbee2| 혜경궁 2026.07.08 49 0
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 1180 Next
/ 1180