조회 수 1710 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
아이템창만 필요해서 다른거 싹다 없애고 X 키 누르면 아이템창만 조그맣게 뜨게 할 순 없을까요?
스크립트 있으시다면 조심스럽게 부탁해봅니다:-)
?
  • profile
    천무 2016.01.30 19:18

    우선 키 입력으로 조건분기 여는방법은 아시죠? 안다고 가정하고 답변을 드리죠.

    우선 스키립트의 하나 새로 추가해주시고요.
    이름은 Scene_Item2
    내용은

    #==============================================================================
    # ■ Scene_Item
    #------------------------------------------------------------------------------
    #  아이템 화면의 처리를 실시하는 클래스입니다.
    #==============================================================================

    class Scene_Item2
    #--------------------------------------------------------------------------
    # ● 메인 처리
    #--------------------------------------------------------------------------
    def main
    # 헬프 윈도우, 아이템 윈도우를 작성
    @help_window = Window_Help.new
    @item_window = Window_Item.new
    # 헬프 윈도우를 관련지어
    @item_window.help_window = @help_window
    # 타겟 윈도우를 작성 (불가시·비액티브하게 설정)
    @target_window = Window_Target.new
    @target_window.visible = false
    @target_window.active = false
    # 트란지션 실행
    Graphics.transition
    # 메인 루프
    loop do
    # 게임 화면을 갱신
    Graphics.update
    # 입력 정보를 갱신
    Input.update
    # 프레임 갱신
    update
    # 화면이 바뀌면 루프를 중단
    if $scene != self
    break
    end
    end
    # 트란지션 준비
    Graphics.freeze
    # 윈도우를 해방
    @help_window.dispose
    @item_window.dispose
    @target_window.dispose
    end
    #--------------------------------------------------------------------------
    # ● 프레임 갱신
    #--------------------------------------------------------------------------
    def update
    # 윈도우를 갱신
    @help_window.update
    @item_window.update
    @target_window.update
    # 아이템 윈도우가 액티브의 경우: update_item 를 부른다
    if @item_window.active
    update_item
    return
    end
    # 타겟 윈도우가 액티브의 경우: update_target 를 부른다
    if @target_window.active
    update_target
    return
    end
    end
    #--------------------------------------------------------------------------
    # ● 프레임 갱신 (아이템 윈도우가 액티브의 경우)
    #--------------------------------------------------------------------------
    def update_item
    # B 버튼이 밀렸을 경우
    if Input.trigger?(Input::B)
    # 캔슬 SE 를 연주
    $game_system.se_play($data_system.cancel_se)
    # 메뉴 화면으로 전환해
    $scene = Scene_Map.new
    return
    end
    # C 버튼이 밀렸을 경우
    if Input.trigger?(Input::C)
    # 아이템 윈도우로 현재 선택되고 있는 데이터를 취득
    @item = @item_window.item
    # 사용 아이템이 아닌 경우
    unless @item.is_a?(RPG::Item)
    # 버저 SE 를 연주
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    # 사용할 수 없는 경우
    unless $game_party.item_can_use?(@item.id)
    # 버저 SE 를 연주
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    # 결정 SE 를 연주
    $game_system.se_play($data_system.decision_se)
    # 효과 범위가 아군의 경우
    if @item.scope >= 3
    # 타겟 윈도우를 액티브화
    @item_window.active = false
    @target_window.x = (@item_window.index + 1) % 2 * 304
    @target_window.visible = true
    @target_window.active = true
    # 효과 범위 (단체/전체)에 따라 커서 위치를 설정
    if @item.scope == 4 || @item.scope == 6
    @target_window.index = -1
    else
    @target_window.index = 0
    end
    # 효과 범위가 아군 이외의 경우
    else
    # 코먼 이벤트 ID 가 유효의 경우
    if @item.common_event_id > 0
    # 코먼 이벤트 호출 예약
    $game_temp.common_event_id = @item.common_event_id
    # 아이템의 사용시 SE 를 연주
    $game_system.se_play(@item.menu_se)
    # 소모품의 경우
    if @item.consumable
    # 사용한 아이템을 1 줄인다
    $game_party.lose_item(@item.id, 1)
    # 아이템 윈도우의 항목을 재묘화
    @item_window.draw_item(@item_window.index)
    end
    # 맵 화면으로 전환해
    $scene = Scene_Map.new
    return
    end
    end
    return
    end
    end
    #--------------------------------------------------------------------------
    # ● 프레임 갱신 (타겟 윈도우가 액티브의 경우)
    #--------------------------------------------------------------------------
    def update_target
    # B 버튼이 밀렸을 경우
    if Input.trigger?(Input::B)
    # 캔슬 SE 를 연주
    $game_system.se_play($data_system.cancel_se)
    # 아이템 조각등에서 사용할 수 없게 되었을 경우
    unless $game_party.item_can_use?(@item.id)
    # 아이템 윈도우의 내용을 재작성
    @item_window.refresh
    end
    # 타겟 윈도우를 소거
    @item_window.active = true
    @target_window.visible = false
    @target_window.active = false
    return
    end
    # C 버튼이 밀렸을 경우
    if Input.trigger?(Input::C)
    # 아이템을 다 사용했을 경우
    if $game_party.item_number(@item.id) == 0
    # 버저 SE 를 연주
    $game_system.se_play($data_system.buzzer_se)
    return
    end
    # 타겟이 전체의 경우
    if @target_window.index == -1
    # 파티 전체에 아이템의 사용 효과를 적용
    used = false
    for i in $game_party.actors
    used |= i.item_effect(@item)
    end
    end
    # 타겟이 단체의 경우
    if @target_window.index >= 0
    # 타겟의 액터에게 아이템의 사용 효과를 적용
    target = $game_party.actors[@target_window.index]
    used = target.item_effect(@item)
    end
    # 아이템을 사용했을 경우
    if used
    # 아이템의 사용시 SE 를 연주
    $game_system.se_play(@item.menu_se)
    # 소모품의 경우
    if @item.consumable
    # 사용한 아이템을 1 줄인다
    $game_party.lose_item(@item.id, 1)
    # 아이템 윈도우의 항목을 재묘화
    @item_window.draw_item(@item_window.index)
    end
    # 타겟 윈도우의 내용을 재작성
    @target_window.refresh
    # 전멸의 경우
    if $game_party.all_dead?
    # 게임 오버 화면으로 전환해
    $scene = Scene_Gameover.new
    return
    end
    # 코먼 이벤트 ID 가 유효의 경우
    if @item.common_event_id > 0
    # 코먼 이벤트 호출 예약
    $game_temp.common_event_id = @item.common_event_id
    # 맵 화면으로 전환해
    $scene = Scene_Map.new
    return
    end
    end
    # 아이템을 사용하지 않았던 경우
    unless used
    # 버저 SE 를 연주
    $game_system.se_play($data_system.buzzer_se)
    end
    return
    end
    end
    end
     

     


    넣어주세요.

    이게뭐냐면 원래 아이템창 스크립트의 변형형입니다.
    제가 변형시킨거 ESC를 누를떄 원래 메뉴로가는걸 맵으로 가게 바꿨죠.
    맨위쯤 # 메뉴 화면으로 전환해 쪽 아래 1줄을 바꾼겁니다. 원래 Scene_Item 에서요.



    그리고 이 창은 스크립트로 호출할 수 있어요.

    $scene = Scene_Item2.new

    로 호출이 됩니다.

    그럼 특정 버튼누를때 이 스크립트를 호출되게만 하면 아이템창만 뜨고, 닫으면 그대로 창이 닫히게됩니다.
    꼭 아이템창 아니더라도 다른것도 다 이런식으로 수정해서 사용 가능합니다.

     

    원래의 스크립트에서 제가 수정한것 빨간처리 했으니 잘 보시고 그냥 갖다 붙여쓰시기보다는 내용을 한번 분석해보시면 도움이 될겁니다.

  • profile
    워터프로젝트 2016.01.30 23:14
    오오오오오오오오오오오오오오오오오오오오오오오 감사드립니다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

List of Articles
번호 제목 글쓴이 날짜 조회 수
8488 캐릭터레이더 관련 고수분. if 2007.01.02 1736
8487 알만툴 변수 알고리즘을 잘 모르겠어요. 왜 조건문 실행이 안될까요? 11 참몰랑 2017.04.28 1735
8486 rpg2003 경험치 획득문제 1 file 엘류트 2009.05.29 1735
8485 rpg2000 게임 오류...lmt 2 YellowCake 2009.12.28 1731
8484 이벤트가 이상해요. file Yes-Man 2010.05.05 1726
8483 방탈출 쯔꾸르를 만들려고 하는데요 3 힐레이드 2016.02.04 1724
8482 RPG VX 모바일 실행시 메뉴 글자가 안보입니다. 2 닐니스 2013.12.05 1724
8481 모바일로 쯔꾸르게임받고 했는데 실행 ㄴㄴ..ㅠㅠ 1 걍플레이어 2016.01.22 1721
8480 [VX]병렬처리 좀 가르켜주세요. 1 정의로운녀석! 2009.03.15 1721
8479 이것도 질문이라볼수있나 ? 7 ¿오톰¿ 2013.09.23 1719
8478 게임 패러디작 만들려면 어떻게 해야 하나요? 1 1 file 2012.12.17 1719
8477 rpg vx ace 런타임 질문드립니다 2 Layer 2013.09.19 1716
8476 Rpg Mv 에서 최소데미지 공식과 새로얻은 스킬로 기존 스킬을 대체할수있는 방법이 있나요? 5 비트박 2016.01.27 1715
8475 alert! 오류로 게임 초기에 실행불가 되는건 어떻게 대처해야하죠? 1 금모쿤 2016.02.28 1710
» RPG XP 메뉴창 스크립트 2 워터프로젝트 2016.01.30 1710
8473 형 어디있냐고 게임을 하고 싶은데... 13 형어있 2014.01.24 1710
8472 rpg2000 무게 시스템 만들기 (360크링) 우주쓰레기 2010.11.15 1710
8471 rpg vx ace에 일러스트를 넣고 싶습니다. 3 Keiress 2016.10.13 1708
8470 쯔꾸르 구동오류 2 레카이 2016.06.19 1705
8469 빵돌이의 모험 2 빵졸이 2014.06.01 1705
Board Pagination Prev 1 ... 13 14 15 16 17 18 19 20 21 22 ... 442 Next
/ 442






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

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