조회 수 1450 추천 수 0 댓글 2
Atachment
첨부 '1'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

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
    감사합니다! 우선 해독 작업을 수행해보겠습니다!

  1. 제2회 인디사이드 게임제작대회 출품작 리스트.

    Date2016.10.24 By인디사이드운영자 Views26435 Votes0
    read more
  2. 인디사이드 활동 규정.(ver.20160119)

    Date2015.02.16 By천무 Views28155 Votes1
    read more
  3. 혹시 '이터니티' 라는게임 갖고 계시는분 있을까요?

    Date2026.02.01 ByDoingDogu Views409 Votes0
    Read More
  4. [스마일게이트 퓨처랩] 비버롹스 2025 온라인 전시관 오픈! (12/1~12/14)

    Date2025.12.01 By스마일게이트퓨처랩 Views375 Votes0
    Read More
  5. [스마일게이트 퓨처랩] 비버롹스 with 산나비! 게임 시연과 함께 굿즈 스토어까지!

    Date2025.11.26 By스마일게이트퓨처랩 Views355 Votes0
    Read More
  6. [스마일게이트 퓨처랩] 놓치면 후회! 비버롹스 2차 얼리버드 티켓 절찬 판매중!

    Date2025.11.20 By스마일게이트퓨처랩 Views378 Votes0
    Read More
  7. 코리아 인디게임 쇼케이스가 떴다

    Date2025.10.20 Bygls2024 Views414 Votes0
    Read More
  8. GGDC 2025 글로벌게임개발자컨퍼런스 2차 공개!

    Date2025.10.18 Byggdc Views382 Votes0
    Read More
  9. BEAVER ROCKS 2025 슈퍼 얼리버드 티켓 오픈!

    Date2025.10.17 By스마일게이트퓨처랩 Views366 Votes0
    Read More
  10. 이제 여기 다운로드는 다 막힌건가

    Date2025.10.12 ByRedgm Views645 Votes0
    Read More
  11. 안녕하세요

    Date2025.09.30 By우사준 Views410 Votes0
    Read More
  12. 혹시 이 사이트의 등업관련해서 질문이있는데요

    Date2025.09.23 By이드냐 Views568 Votes0
    Read More
  13. GGDC 2025 글로벌 게임 개발자 컨퍼런스

    Date2025.09.18 Byggdc Views813 Votes0
    Read More
  14. NGC2025 사전등록 이벤트 소식~ ^^

    Date2025.09.18 By태사자 Views343 Votes0
    Read More
  15. [대구디지털혁신진흥원] (NGC2025) NEXT GAME CONFERENCE 2025

    Date2025.09.12 By태사자 Views389 Votes0
    Read More
  16. [스마일게이트 퓨처랩]BEAVER ROCKS 인디게임&컬처 페스티벌, 2025 전시팀 모집

    Date2025.08.04 By스마일게이트퓨처랩 Views440 Votes0
    Read More
  17. [전남정보문화산업진흥원] 게임개발 취업 부트캠프

    Date2025.07.31 By유니버스 Views395 Votes0
    Read More
  18. 충청권 인디게임 공모전<인디유>

    Date2025.07.24 ByCBGC Views435 Votes0
    Read More
  19. 인디게임에 대한 간단한 생각

    Date2025.07.18 By철수와미애 Views731 Votes0
    Read More
  20. [스마일게이트 퓨처랩]스마일게이트 인디게임 프로토타이핑 챌린지 모집 (~7/31)

    Date2025.07.17 By스마일게이트퓨처랩 Views419 Votes0
    Read More
  21. 2025 충북글로벌게임센터 게임기업 신규 입주 모집(~7. 25.)

    Date2025.07.07 ByCBGC Views436 Votes0
    Read More
  22. 2025 충북글로벌게임센터 [충북게임아카데미] 교육생 모집(~6. 26.)

    Date2025.06.17 ByCBGC Views444 Votes0
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 1177 Next
/ 1177


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)