XP 스크립트

#==============================================================================
# ◆하이 데쉬 시스템 ver.1.0
# http://www.ac.cyberhome.ne.jp/~daydream/
#==============================================================================
# 설명
#  버튼을 누르면, 이동 속도가 빨라지게 됩니다.
#  쭉 데쉬 하고 있으면, 더욱 빨라집니다.
#==============================================================================
module DASH
  # ● 사용 키
  DASH_BUTTON = Input::C
  # ● 통상의 이동 속도
  NORMAL_SPEED = 4
  # ● 데쉬시의 이동 속도
  DASH_SPEED = 5
  # ● 하이 데쉬시의 이동 속도
  HIGH_SPEED = 5.5
 
  # ● 하이 데쉬를 사용
  HIGH_DASH = true
  # ● 하이 데쉬 이행 시간(20분의 1초)
  HIGH_TIME = 30
 
  # ● 데쉬 사용 불가 스윗치 ID
  NOT_SWITCH = 1
  # ● 하이 데쉬 사용 불가 스윗치 ID
  HIGH_NOT_SWITCH = 2
end
 
class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # ● 프레임 갱신
  #--------------------------------------------------------------------------
  def update
    @dash = 0        if @dash == nil
    # 로컬 변수에 이동중인지 어떤지를 기억
    last_moving = moving?
    # 이동중, 이벤트 실행중, 이동 루트 강제중,
    # 메세지 윈도우 표시중의 머지않아도 아닌 경우
    unless moving? or $game_system.map_interpreter.running? or
          @move_route_forcing or $game_temp.message_window_showing
      if $game_switches[DASH::NOT_SWITCH] == false
        if Input.press?(DASH::DASH_BUTTON)
          if @move_speed != DASH::DASH_SPEED
            @move_speed = DASH::DASH_SPEED
          end
          if $game_switches[DASH::HIGH_NOT_SWITCH] == false
            @dash += 1
            if @dash >= DASH::HIGH_TIME
              if @move_speed != DASH::HIGH_SPEED
                @move_speed = DASH::HIGH_SPEED
              end
            end
          end
        else
          if @move_speed != DASH::NORMAL_SPEED
            @move_speed = DASH::NORMAL_SPEED
          end
          @dash = 0
        end
      else
        if @move_speed != DASH::NORMAL_SPEED
          @move_speed = DASH::NORMAL_SPEED
        end
      end
      # 방향 버튼이 밀리고 있으면, 그 방향에 플레이어를 이동
      case Input.dir4
      when 2
        move_down
      when 4
        move_left
      when 6
        move_right
      when 8
        move_up
      end
    end
    # 로컬 변수에 좌표를 기억
    last_real_x = @real_x
    last_real_y = @real_y
    super
    # 캐릭터가 아래로 이동해, 한편 화면상의 위치가 중앙에서(보다) 아래의 경우
    if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
      # 맵을 아래에 스크롤
      $game_map.scroll_down(@real_y - last_real_y)
    end
    # 캐릭터가 왼쪽으로 이동해, 한편 화면상의 위치가 중앙에서(보다) 왼쪽의 경우
    if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
      # 맵을 왼쪽으로 스크롤
      $game_map.scroll_left(last_real_x - @real_x)
    end
    # 캐릭터가 오른쪽으로 이동해, 한편 화면상의 위치가 중앙에서(보다) 오른쪽의 경우
    if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
      # 맵을 오른쪽으로 스크롤
      $game_map.scroll_right(@real_x - last_real_x)
    end
    # 캐릭터가 위로 이동해, 한편 화면상의 위치가 중앙에서(보다) 위의 경우
    if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
      # 맵을 위에 스크롤
      $game_map.scroll_up(last_real_y - @real_y)
    end
    # 이동중이 아닌 경우
    unless moving?
      # 전회 플레이어가 이동중이었던 경우
      if last_moving
        # 동위치의 이벤트와의 접촉에 의한 이벤트 기동 판정
        result = check_event_trigger_here([1,2])
        # 기동한 이벤트가 없는 경우
        if result == false
          # 디버그 모드가 ON 한편 CTRL 키가 밀리고 있는 경우를 제외해
          unless $DEBUG and Input.press?(Input::CTRL)
            # 엔카운트카운트다운
            if @encounter_count > 0
              @encounter_count -= 1
            end
          end
        end
      end
      # C 버튼이 밀렸을 경우
      if Input.trigger?(Input::C)
        # 이동위치 및 정면의 이벤트 기동 판정
        check_event_trigger_here([0])
        check_event_trigger_there([0,1,2])
      end
    end
  end
end

# 사용법은 생략. (이걸 사용할 줄 모르시면 정말 어이없는..)

Who's 백호

?

이상혁입니다.

http://elab.kr

Comment '15'

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6202
621 전투 XAS 여러가지버전. 9 §포뇨§ 2010.02.23 4396
620 전투 XAS_Hero_3_6 24 ok하승헌 2010.02.18 2869
619 전투 xas히어로에디션 3.4 14 ps인간 2009.01.04 4044
618 기타 XP 각종 스크립트입니다. 36 file 쿠도신이치 2009.04.26 4272
617 HUD xp대화창에 얼굴, 이름 넣기!! [방법두 있음] 3 백호 2009.02.21 3546
616 영상 XP에서 AVI파일을 지원가능하게 하는 스크립트 2 백호 2009.02.21 1189
615 XP의 느린FPS 빠르게하기 16 주유공근615 2011.02.22 3139
614 메시지 XRXS9 - 메세지 표시 업그레이드 X file Alkaid 2010.09.07 3312
613 저장 [ AutoSave ]오토세이브, 뜻 그대로 자동저장스크립트 17 file 제로스S2 2009.08.06 3699
612 [ 무기 & 방어구 레벨제한 스크립트 ]엄청유용! ㅎ 24 file 제로스S2 2009.08.05 3558
611 기타 [All RGSS] File-Ex file Cheapmunk 2014.12.29 964
610 기타 [All RGSS] FileTest (Unicode) file Cheapmunk 2014.12.29 614
609 기타 [All RGSS] 게임 다중 실행 방지 스크립트 1 file Cheapmunk 2014.05.24 1381
608 기타 [All RGSS] 윈도우 메세지박스 스크립트 (Completed ver) 5 file Cheapmunk 2014.06.22 2186
607 기타 [All RGSS] 윈도우 커서 숨기기/보이기 1 file Cheapmunk 2014.03.02 1963
606 그래픽 [AWS- Advanced Weather System] 이름그대로 강화된 날씨시스템. 11 file 제로스S2 2009.08.02 3993
605 기타 [Game_Actor] 게이지바 표시 스크립트 8 file - 하늘 - 2009.08.03 4174
604 저장 [KCG] 2 Pane Save Scene file 백호 2009.02.22 1128
603 저장 [KCG] 2 Pane Save Scene 번역본 백호 2009.02.22 1118
602 스킬 [KGC] Skill Grouping 백호 2009.02.21 861
Board Pagination Prev 1 ... 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ... 52 Next
/ 52