조회 수 1723 추천 수 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
번호 제목 글쓴이 날짜 조회 수
8247 지금 인텔xdk로 빌드 시도 중입니다만... 1 1324의남자 2016.02.02 1629
8246 엔딩 클리어 시 타이틀 변경 1 자연퐁 2016.02.02 1654
8245 rpg maker mv apk build 오류관련 질문 6 file 구만쓸전제작자 2016.02.01 1792
8244 게임제작 완료 후 특정 맵에서 캐릭터들이 움직이지 않습니다. 1 1324의남자 2016.02.01 1538
8243 mv 타이머 자동실행오류 3 1324의남자 2016.01.31 1517
8242 레벨제한 질문 3 하느른 2016.01.31 3662
8241 게임제작자료실에 있는 도트 사용해도 돼나요? 3 은행 2016.01.30 1530
8240 게임 실행이 안됩니다 1 file 빌리와오니 2016.01.30 1563
» RPG XP 메뉴창 스크립트 2 워터프로젝트 2016.01.30 1723
8238 RPGXP 다운 질문 2 자몽123 2016.01.30 1742
8237 RPGXP질문 1 카카롯트 2016.01.30 1504
8236 RPGXP질문 1 카카롯트 2016.01.30 1484
8235 아오오니게임 2 마법사 2016.01.29 2160
8234 문에 자꾸 끼어요.. 카카롯트 2016.01.29 379
8233 전투애니 연속 붙이기에 관하여 1 팡소리 2016.01.29 1504
8232 게임 만드는법 2 검은악몽 2016.01.29 1611
8231 rpg vx 추적 이벤트 질문합니다! 3 file 머리큰두두 2016.01.28 1569
8230 MV에서 오오라 스킬을 만들고 싶은데 방법을 모르겠네요. 2 정의오타쿠 2016.01.28 1612
8229 VX스크립트 관련 질문입니다. 슈토 2016.01.27 377
8228 Rpg Mv 에서 최소데미지 공식과 새로얻은 스킬로 기존 스킬을 대체할수있는 방법이 있나요? 5 비트박 2016.01.27 1722
Board Pagination Prev 1 ... 25 26 27 28 29 30 31 32 33 34 ... 442 Next
/ 442


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

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