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 6159
1001 ABM(액알)+Jindow(진도우) 3 WMN 2008.04.06 5116
1000 전투 ABP 액알 (Action Battle Player) 14 file 백호 2009.02.22 4557
999 스킬 ABP액알 v1.2 스킬추가, 버그수정판 36 file 백호 2009.02.22 6920
998 기타 ABS 몬스터 HP 게이지 바 11 백호 2009.02.22 2485
997 전투 ABS_v3액션 알피지 46 file 알피지GM 2010.03.07 5806
996 기타 Activation_system file 백호 2009.02.22 775
995 전투 Active Time Battle 2.57 by パラ犬 6 file 백호 2009.02.22 2371
994 전투 Active Time Battle 2.62 by パラ犬 file Alkaid 2010.09.06 1655
993 액터 Actor Customization 6.0.2 by Synthesize 4 file Alkaid 2010.09.17 1912
992 아이템 Additional Item Drop by SephirothSpawn (SDK호환) 1 백호 2009.02.22 891
991 메뉴 Advanced Command Windows by Tsunokiette file 백호 2009.02.22 1307
990 이름입력 Advanced Enter Hero Name Window by RPG Advocate 백호 2009.02.22 1168
989 장비 Advanced Equip Window 백호 2009.02.22 806
988 기타 Advanced Gold display by Dubealex 1 백호 2009.02.22 761
987 기타 Advanced Gold Display by Dubealex (돈 액수를 세자리씩 끊어 표기) 2 Alkaid 2010.11.18 1559
986 HUD Advanced HUD Script 3 file 백호 2009.02.22 1341
985 전투 Advanced Individual Battle Command v2.1 by Trickster@rmxp.org (SDK호환) 1 file 백호 2009.02.22 1189
984 전투 Advanced Limit Breaks (KGC스크립트를 SDK호환용으로 손질한 것) 백호 2009.02.22 1214
983 스킬 Advanced Mission Skills/Shop/Manager by trickster 3 file 백호 2009.02.22 1601
982 이동 및 탈것 Advanced Player Movement by SephirothSpawn (SDK호환) 1 file 백호 2009.02.22 801
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 52 Next
/ 52