- $ud_ok = false #上下失效 
- $airjump = 0  #空中连跳 
- #============================================================================== 
- # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 
- #==============================================================================  
-   
- # ———————————————————————————————————— 
- # 全方向ドット移動 Ver ε 
- # 配布元・サポートURL 
- # [url]http://members.jcom.home.ne.jp/cogwheel/[/url]$game_system.se_play($data_system.cancel_se) 
-   
- #============================================================================== 
- # ■ Game_Player 
- #------------------------------------------------------------------------------ 
- #  プレイヤーを扱うクラスです。イベントの起動判定や、マップのスクロールなどの 
- # 機能を持っています。このクラスのインスタンスは $game_player で参照されます。 
- #============================================================================== 
- class Game_Player < Game_Character 
-   #-------------------------------------------------------------------------- 
-   # ● 定数 
-   #-------------------------------------------------------------------------- 
-   UP    = 48                  # 上方向の余裕(0 < UP < 63) 
-   DOWN  = 16                  # 下方向の余裕(0 < DOWN <63) 
-   SIDE  = 32                  # 左右方向の余裕(0 < SIDE <63) 
-   SLANT = false               # 移動ルートの斜め移動時、速度修正 
-   JUMPMAX = 100               
-   JUMPADD = 10               
-   #-------------------------------------------------------------------------- 
-   # ● 公開インスタンス変数 
-   #-------------------------------------------------------------------------- 
-   attr_reader   :event                    # イベント時移動速度 
-   attr_accessor :move_speed               # 移動速度 
-   #-------------------------------------------------------------------------- 
-   # ● フレーム更新 
-   #-------------------------------------------------------------------------- 
-   alias :update_original :update 
-   def update 
-     # @walk:歩行速度 @dash:ダッシュ時移動速度 
-     # @event:イベント時移動速度(0の時は、イベント時に速度変更をしない) 
-     @walk  = $game_variables[52] 
-     @dash  = $game_variables[52]+1 
-     @event = 4 
-     @dot_m = true 
-     #ダッシュ機能。エンターキーが押されている間、移動速度を変更する。 
-     unless moving? or $game_system.map_interpreter.running? or 
-             @move_route_forcing or $game_temp.message_window_showing 
-       if @walk != @dash 
-         if Input.press?(Input::C) 
-           if @move_speed != @dash 
-             @move_speed = @dash 
-           end 
-         else 
-           if @move_speed != @walk 
-             @move_speed = @walk 
-           end 
-         end 
-       end 
-     end 
-     if @revise_x == nil and @revise_y == nil 
-       @revise_x = 0 
-       @revise_y = 0 
-     end 
-     unless @dot_m 
-       update_original 
-       return 
-     end 
-     if @move_route_forcing 
-       # ローカル変数に移動中かどうかを記憶 
-       last_moving = moving? 
-       # ローカル変数に座標を記憶 
-       last_real_x = @real_x 
-       last_real_y = @real_y 
-       # 座標がずれている場合 
-       if (@revise_x != 0 or @revise_y != 0) and not jumping? and @move == true 
-         if @revise_x != @real_x - @x * 128 or @revise_y != @real_y - @y * 128 
-           @revise_x = @real_x - @x * 128 
-           @revise_y = @real_y - @y * 128 
-         end 
-         # 移動距離distance1と目標距離distance2を設定 
-         distance1 = 2 ** @move_speed 
-         distance2 = Math.sqrt(@revise_x ** 2 + @revise_y ** 2) 
-         # 移動距離が目標距離を越えた場合 
-         if distance1 > distance2 
-           # 強制的に補正座標を零にする 
-           @real_x = @real_x - @revise_x 
-           @real_y = @real_y - @revise_y 
-           @revise_x = 0 
-           @revise_y = 0 
-           anime_update 
-         # 移動距離が目標距離に達しない場合 
-         else 
-           # 移動距離分目標距離に近づく 
-           @real_x -= (distance1 * @revise_x / distance2).round 
-           @real_y -= (distance1 * @revise_y / distance2).round 
-           @revise_x = @real_x - @x * 128 
-           @revise_y = @real_y - @y * 128 
-           anime_update 
-         end 
-       else 
-         super 
-       end 
-     else 
-       @move = false 
-       # 移動中、イベント実行中、移動ルート強制中、 
-       # メッセージウィンドウ表示中のいずれでもない場合 
-       unless moving? or $game_system.map_interpreter.running? or 
-              @move_route_forcing or $game_temp.message_window_showing 
-         @event_run = false 
-         # 方向ボタンが押されていれば、その方向へプレイヤーを移動 
- #---------------------------上下失效----------------------------------------- 
-       case Input.dir8 
-         when 1 
-           $ud_ok ? move_lower_left_p : move_left_p 
-         when 2 
- #          $ud_ok ? move_down_p : move_down_aaaagq  
-           move_down_p if $ud_ok  
-         when 3 
-          $ud_ok ? move_lower_right_p : move_right_p 
-         when 4 
-           move_left_p 
-         when 6 
-           move_right_p 
-         when 7 
-          $ud_ok ? move_upper_left_p : move_left_p 
-         when 8 
- #         $ud_ok ? move_up_p : move_up_aaaagq 
-          move_up_p if $ud_ok  
-         when 9 
-          $ud_ok ? move_upper_right_p : move_right_p 
-         end 
-       end 
-       # ローカル変数に座標を記憶 
-       last_real_x = @real_x 
-       last_real_y = @real_y 
-       # 移動処理 
-       @real_x = @x * 128 + @revise_x 
-       @real_y = @y * 128 + @revise_y 
-       # ローカル変数に移動中かどうかを記憶 
-       last_moving = moving? 
-       # 座標更新 
-       move_on 
-       # 現在の座標と以前の座標が異なる場合 
-       if (last_real_x != @real_x or last_real_y != @real_y) 
-         @move_distance = 0 if @move_distance == nil 
-         @move_distance += Math.sqrt((last_real_x - @real_x) ** 2 + 
-                                       (last_real_y - @real_y) ** 2) 
-         if @move_distance >= 128 
-           @move_distance %= 128 
-           increase_steps 
-         end 
-         # アニメーションを更新 
-         anime_update 
-       else 
-         @pattern = 0 
-       end 
-     end 
-     # キャラクターが下に移動し、かつ画面上の位置が中央より下の場合 
-     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 
-     # 前回プレイヤーが移動中だった場合 
-     if last_moving 
-       # 同位置のイベントとの接触によるイベント起動判定 
-       result = check_event_trigger_here([1,2]) 
-       if result == true 
-         if (last_real_x / 128.0).round != @x and 
-             (last_real_y / 128.0).round != @y 
-           if @direction == 2 or @direction == 8 
-             if (last_real_x / 128.0).round > @x 
-               turn_left 
-             else 
-               turn_right 
-             end 
-           else 
-             if (last_real_y / 128.0).round > @y 
-               turn_up 
-             else 
-               turn_down 
-             end 
-           end 
-         elsif (last_real_x / 128.0).round > @x 
-           turn_left 
-         elsif (last_real_x / 128.0).round < @x 
-           turn_right 
-         elsif (last_real_y / 128.0).round > @y 
-           turn_up 
-         elsif (last_real_y / 128.0).round < @y 
-           turn_down 
-         end 
-       end 
-       # 起動したイベントがない場合 
-       if result == false 
-         # デバッグモードが ON かつ CTRL キーが押されている場合を除き 
-         unless $DEBUG and Input.press?(Input::CTRL) 
-           # エンカウント カウントダウン 
-           if @encounter_count > 0 
-             @encounter_count -= 1 
-           end 
-         end 
-       end 
-     end 
- #-----------------------按跳跃----------------------------------------------- 
- # A ボタンが押された場合 
-     if Input.press?(Input::A) and not $ud_ok 
-       @twojump = 1 if @twojump == 0 and down1(((@x * 128 + @revise_x) / 128.0).round, 
-           ((@y * 128 + @revise_y) / 128.0).round, 5, true) 
-       if (not @apassed) and @twojump <= $airjump 
-         @apassed = true 
-         $game_system.se_play($data_system.cancel_se) 
-         @jumpnow = JUMPMAX  
-         @twojump += 1 
-       else 
-         @jumpnow += 3         
-       end 
-     else 
-       @apassed = false 
-     end 
- #----------------------自由落体-------------------------------- 
-     if not $ud_ok 
-       @jumpnow -= 10  
-       if @jumpnow < 0 
-         @jumpnow = [@jumpnow, -JUMPMAX].max  
-         if not down1(((@x * 128 + @revise_x) / 128.0).round, 
-           ((@y * 128 + @revise_y) / 128.0).round, -@jumpnow, true) 
-           @jumpnow = 0 
-           @twojump = 0 
-         end 
-       elsif @jumpnow > 0 
-         @jumpnow = [@jumpnow, JUMPMAX].min 
-         if not up1(((@x * 128 + @revise_x) / 128.0).round, 
-           ((@y * 128 + @revise_y) / 128.0).round, @jumpnow, true) 
-           @jumpnow = 0 
-         end 
-       end 
-     end 
-     if Input.trigger?(Input::C) 
-       # 同位置および正面のイベント起動判定 
-       check_event_trigger_here([0]) 
-       check_event_trigger_there([0,1,2]) 
-     end 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● オブジェクト初期化 
-   #-------------------------------------------------------------------------- 
-   def initialize 
-     @jumpnow = 0  
-     @twojump = 0 
-     @apassed = false 
-     @revise_x = 0 
-     @revise_y = 0 
-     @move == false 
-     super 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 移動判定 
-   #-------------------------------------------------------------------------- 
-   def moving? 
-     unless @dot_m 
-       result = super 
-       return result 
-     end 
-     # 強制移動の場合オリジナルの判定をさせる 
-     if @move_route_forcing 
-       if @move == false 
-         return false 
-       end 
-       super 
-     # 通常時は現座標が実座標と異なる場合のみ移動中と判定 
-     else 
-       return (@x != (@real_x / 128.0).round or @y != (@real_y / 128.0).round) 
-     end 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 移動判定 
-   #-------------------------------------------------------------------------- 
-   def moving_a? 
-     if @move == false 
-       if (@move_route.list[@move_route_index].code <= 14 or 
-           @move_route.list[@move_route_index].code == 25) 
-         @move = true 
-       end 
-       return false 
-     end 
-     moving? 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● フレーム更新 (ジャンプ) 
-   #-------------------------------------------------------------------------- 
-   def update_jump 
-     # ジャンプカウントを 1 減らす 
-     @jump_count -= 1 
-     # 新しい座標を計算 
-     @real_x = (@real_x * @jump_count + @x * 128) / (@jump_count + 1) 
-     @real_y = (@real_y * @jump_count + @y * 128) / (@jump_count + 1) 
-     if @jump_count == 0 
-       @revise_x = 0 
-       @revise_y = 0 
-     end 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 移動タイプ : カスタム 
-   #-------------------------------------------------------------------------- 
-   def move_type_custom 
-     unless @dot_m 
-       super 
-       return 
-     end 
-     # 停止中でなければ中断 
-     if jumping? or moving_a? 
-       return 
-     end 
-     # 移動コマンドのリストの最後に到達するまでループ 
-     while @move_route_index < @move_route.list.size 
-       # 移動コマンドを取得 
-       command = @move_route.list[@move_route_index] 
-       # コマンドコード 0 番 (リストの最後) の場合 
-       if command.code == 0 
-         # オプション [動作を繰り返す] が ON の場合 
-         if @move_route.repeat 
-           # 移動ルートのインデックスを最初に戻す 
-           @move_route_index = 0 
-         end 
-         # オプション [動作を繰り返す] が OFF の場合 
-         unless @move_route.repeat 
-           # 移動ルート強制中の場合 
-           if @move_route_forcing and not @move_route.repeat 
-             # 移動ルートの強制を解除 
-             @move_route_forcing = false 
-             # オリジナルの移動ルートを復帰 
-             @move_route = @original_move_route 
-             @move_route_index = @original_move_route_index 
-             @original_move_route = nil 
-           end 
-           # 停止カウントをクリア 
-           @stop_count = 0 
-         end 
-         return 
-       end 
-       # 移動系コマンド (下に移動~ジャンプ) の場合 
-       if command.code <= 14 
-         # コマンドコードで分岐 
-         case command.code 
-         when 1  # 下に移動 
-           move_down 
-         when 2  # 左に移動 
-           move_left 
-         when 3  # 右に移動 
-           move_right 
-         when 4  # 上に移動 
-           move_up 
-         when 5  # 左下に移動 
-           move_lower_left 
-         when 6  # 右下に移動 
-           move_lower_right 
-         when 7  # 左上に移動 
-           move_upper_left 
-         when 8  # 右上に移動 
-           move_upper_right 
-         when 9  # ランダムに移動 
-           move_random 
-         when 10  # プレイヤーに近づく 
-           move_toward_player 
-         when 11  # プレイヤーから遠ざかる 
-           move_away_from_player 
-         when 12  # 一歩前進 
-           move_forward 
-         when 13  # 一歩後退 
-           move_backward 
-         when 14  # ジャンプ 
-           jump(command.parameters[0], command.parameters[1]) 
-         end 
-         # オプション [移動できない場合は無視] が OFF で、移動失敗の場合 
-         if not @move_route.skippable and not moving? and not jumping? 
-           return 
-         end 
-         @move_route_index += 1 
-         return 
-       end 
-       # ウェイトの場合 
-       if command.code == 15 
-         # ウェイトカウントを設定 
-         @wait_count = command.parameters[0] * 2 - 1 
-         @move_route_index += 1 
-         return 
-       end 
-       # 向き変更系のコマンドの場合 
-       if command.code >= 16 and command.code <= 26 
-         # コマンドコードで分岐 
-         case command.code 
-         when 16  # 下を向く 
-           turn_down 
-         when 17  # 左を向く 
-           turn_left 
-         when 18  # 右を向く 
-           turn_right 
-         when 19  # 上を向く 
-           turn_up 
-         when 20  # 右に 90 度回転 
-           turn_right_90 
-         when 21  # 左に 90 度回転 
-           turn_left_90 
-         when 22  # 180 度回転 
-           turn_180 
-         when 23  # 右か左に 90 度回転 
-           turn_right_or_left_90 
-         when 24  # ランダムに方向転換 
-           turn_random 
-         when 25  # プレイヤーの方を向く 
-           turn_toward_player 
-         when 26  # プレイヤーの逆を向く 
-           turn_away_from_player 
-         end 
-         @move_route_index += 1 
-         return 
-       end 
-       # その他のコマンドの場合 
-       if command.code >= 27 
-         # コマンドコードで分岐 
-         case command.code 
-         when 27  # スイッチ ON 
-           $game_switches[command.parameters[0]] = true 
-           $game_map.need_refresh = true 
-         when 28  # スイッチ OFF 
-           $game_switches[command.parameters[0]] = false 
-           $game_map.need_refresh = true 
-         when 29  # 移動速度の変更 
-           @move_speed = command.parameters[0] 
-         when 30  # 移動頻度の変更 
-           @move_frequency = command.parameters[0] 
-         when 31  # 移動時アニメ ON 
-           @walk_anime = true 
-         when 32  # 移動時アニメ OFF 
-           @walk_anime = false 
-         when 33  # 停止時アニメ ON 
-           @step_anime = true 
-         when 34  # 停止時アニメ OFF 
-           @step_anime = false 
-         when 35  # 向き固定 ON 
-           @direction_fix = true 
-         when 36  # 向き固定 OFF 
-           @direction_fix = false 
-         when 37  # すり抜け ON 
-           @through = true 
-         when 38  # すり抜け OFF 
-           @through = false 
-         when 39  # 最前面に表示 ON 
-           @always_on_top = true 
-         when 40  # 最前面に表示 OFF 
-           @always_on_top = false 
-         when 41  # グラフィック変更 
-           @tile_id = 0 
-           @character_name = command.parameters[0] 
-           @character_hue = command.parameters[1] 
-           if @original_direction != command.parameters[2] 
-             @direction = command.parameters[2] 
-             @original_direction = @direction 
-             @prelock_direction = 0 
-           end 
-           if @original_pattern != command.parameters[3] 
-             @pattern = command.parameters[3] 
-             @original_pattern = @pattern 
-           end 
-         when 42  # 不透明度の変更 
-           @opacity = command.parameters[0] 
-         when 43  # 合成方法の変更 
-           @blend_type = command.parameters[0] 
-         when 44  # SE の演奏 
-           $game_system.se_play(command.parameters[0]) 
-         when 45  # スクリプト 
-           result = eval(command.parameters[0]) 
-         end 
-         @move_route_index += 1 
-         return 
-       end 
-     end 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 下に移動 
-   #-------------------------------------------------------------------------- 
-   def move_down_p 
-     # 下を向く 
-     turn_down 
-     # 移動距離を算出 
-     distance = 2 ** @move_speed 
-     down1(((@x * 128 + @revise_x) / 128.0).round, 
-           ((@y * 128 + @revise_y) / 128.0).round, distance, true) 
-   end 
-   def move_down_aaaagq 
-     distance = 2 ** @move_speed 
-     down1(((@x * 128 + @revise_x) / 128.0).round, 
-           ((@y * 128 + @revise_y) / 128.0).round, distance, true) 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 下に移動可能かどうかの判定1 
-   #-------------------------------------------------------------------------- 
-   def down1(x, y, distance, down = false) 
-     result = down2(x, y, distance) 
-     if result == false 
-       @event_run = check_event_trigger_touch(x, y+1) 
-       return result 
-     end 
-     if @revise_x < -SIDE 
-       result = down2(x, y + 1, distance, 4) 
-       result &= down2(x - 1, y, distance) 
-       if result == false 
-         if down 
-           move_lower_right_p 
-           if @revise_x > SIDE 
-             @revise_x = SIDE 
-           end 
-         end 
-         return result 
-       end 
-     elsif @revise_x > SIDE 
-       result = down2(x, y + 1, distance, 6) 
-       result &= down2(x + 1, y, distance) 
-       if result == false 
-         if down 
-           move_lower_left_p 
-           if @revise_x < -SIDE 
-             @revise_x = -SIDE 
-           end 
-         end 
-         return result 
-       end 
-     end 
-     # 下に移動可能ならば距離分移動 
-     @revise_y += distance 
-     return result 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 下に移動可能かどうかの判定2 
-   #-------------------------------------------------------------------------- 
-   def down2(x, y, distance, d = 2) 
-     if @revise_y + distance > DOWN 
-       unless passable?(x, y, d) 
-         if @revise_y < DOWN 
-           @revise_y = DOWN 
-         end 
-         return false 
-       end 
-     end 
-     return true 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 左に移動 
-   #-------------------------------------------------------------------------- 
-   def move_left_p 
-     # 左を向く 
-     turn_left 
-     distance = 2 ** @move_speed 
-     left1(((@x * 128 + @revise_x) / 128.0).round, 
-           ((@y * 128 + @revise_y) / 128.0).round, distance, true) 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 左に移動可能かどうかの判定1 
-   #-------------------------------------------------------------------------- 
-   def left1(x, y, distance, left = false) 
-     result = left2(x, y, distance) 
-     if result == false 
-       @event_run = check_event_trigger_touch(x-1, y) 
-       return result 
-     end 
-     if @revise_y < -UP and $ud_ok 
-       result = left2(x - 1, y, distance, 8) 
-       result &= left2(x, y - 1, distance) 
-       if result == false 
-         if left 
-           move_lower_left_p 
-           if @revise_y > DOWN 
-             @revise_y = DOWN 
-           end 
-         end 
-         return result 
-       end 
-     elsif @revise_y > DOWN and $ud_ok 
-       result = left2(x - 1, y, distance, 2) 
-       result &= left2(x, y + 1, distance) 
-       if result == false 
-         if left 
-           move_upper_left_p 
-           if @revise_y < -UP 
-             @revise_y = -UP 
-           end 
-         end 
-         return result 
-       end 
-     end 
-     @revise_x -= distance 
-     return result 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 左に移動可能かどうかの判定2 
-   #-------------------------------------------------------------------------- 
-   def left2(x, y, distance, d = 4) 
-     if @revise_x - distance < -SIDE 
-       unless passable?(x, y, d) 
-         if @revise_x > -SIDE 
-           @revise_x = -SIDE 
-         end 
-         return false 
-       end 
-     end 
-     return true 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 右に移動 
-   #-------------------------------------------------------------------------- 
-   def move_right_p 
-       # 右を向く 
-       turn_right 
-     distance = 2 ** @move_speed 
-     right1(((@x * 128 + @revise_x) / 128.0).round, 
-             ((@y * 128 + @revise_y) / 128.0).round, distance, true) 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 右に移動可能かどうかの判定1 
-   #-------------------------------------------------------------------------- 
-   def right1(x, y, distance, right = false) 
-     result = right2(x, y, distance) 
-     if result == false 
-       @event_run = check_event_trigger_touch(x+1, y) 
-       return result 
-     end 
-     if @revise_y < -UP and $ud_ok 
-       result = right2(x + 1, y, distance, 8) 
-       result &= right2(x, y - 1, distance) 
-       if result == false 
-         if right 
-           move_lower_right_p 
-           if @revise_y > DOWN 
-             @revise_y = DOWN 
-           end 
-         end 
-         return result 
-       end 
-     elsif @revise_y > DOWN and $ud_ok 
-       result = right2(x + 1, y, distance, 2) 
-       result &= right2(x, y + 1, distance) 
-       if result == false 
-         if right 
-           move_upper_right_p 
-           if @revise_y < -UP 
-             @revise_y = -UP 
-           end 
-         end 
-         return result 
-       end 
-     end 
-     @revise_x += distance 
-     return result 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 右に移動可能かどうかの判定2 
-   #-------------------------------------------------------------------------- 
-   def right2(x, y, distance, d = 6) 
-     if @revise_x + distance > SIDE 
-       unless passable?(x, y, d) 
-         if @revise_x < SIDE 
-           @revise_x = SIDE 
-         end 
-         return false 
-       end 
-     end 
-     return true 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 上に移動 
-   #-------------------------------------------------------------------------- 
-   def move_up_p 
-     # 上を向く 
-     turn_up 
-     # 下に移動 
-     distance = 2 ** @move_speed 
-     up1(((@x * 128 + @revise_x) / 128.0).round, 
-         ((@y * 128 + @revise_y) / 128.0).round, distance, true) 
-   end 
-   def move_up_aaaagq 
-     distance = 2 ** @move_speed 
-     up1(((@x * 128 + @revise_x) / 128.0).round, 
-         ((@y * 128 + @revise_y) / 128.0).round, distance, true) 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 上に移動可能かどうかの判定1 
-   #-------------------------------------------------------------------------- 
-   def up1(x, y, distance, up = false) 
-     result = up2(x, y, distance) 
-     if result == false 
-       @event_run = check_event_trigger_touch(x, y-1) 
-       return result 
-     end 
-     if @revise_x < -SIDE 
-       result = up2(x, y - 1, distance, 4) 
-       result &= up2(x - 1, y, distance) 
-       if result == false 
-         if up 
-           move_upper_right_p 
-           if @revise_x > SIDE 
-             @revise_x = SIDE 
-           end 
-         end 
-         return result 
-       end 
-     elsif @revise_x > SIDE 
-       result = up2(x, y - 1, distance, 6) 
-       result &= up2(x + 1, y, distance) 
-       if result == false 
-         if up 
-           move_upper_left_p 
-           if @revise_x < -SIDE 
-             @revise_x = -SIDE 
-           end 
-         end 
-         return result 
-       end 
-     end 
-     @revise_y -= distance 
-     return result 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 上に移動可能かどうかの判定2 
-   #-------------------------------------------------------------------------- 
-   def up2(x, y, distance, d = 8) 
-     if @revise_y - distance < -UP 
-       unless passable?(x, y, d) 
-         if @revise_y > -UP 
-           @revise_y = -UP 
-         end 
-         return false 
-       end 
-     end 
-     return true 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 左下に移動 
-   #-------------------------------------------------------------------------- 
-   def move_lower_left_p 
-     # 向き固定でない場合 
-     unless @direction_fix 
-       # 右向きだった場合は左を、上向きだった場合は下を向く 
-       @direction = (@direction == 6 ? 4 : @direction == 8 ? 2 : @direction) 
-     end 
-     # 左下に移動 
-     distance = (2 ** @move_speed) / Math.sqrt(2) 
-     if @direction == 2 
-       turn_left unless down1(((@x * 128 + @revise_x) / 128.0).round, 
-                               ((@y * 128 + @revise_y) / 128.0).round, distance) 
-       turn_down if @event_run 
-       unless @event_run 
-         if last_move?(@real_x, @real_y, 2, distance) 
-           result = check_event_trigger_here([1,2], false) 
-           if result == true 
-             return 
-           end 
-         end 
-         move_on 
-         if @revise_y > DOWN and -UP > @revise_y - distance 
-           @revise_y = DOWN 
-         end 
-         turn_down unless left1(((@x * 128 + @revise_x) / 128.0).round, 
-                               ((@y * 128 + @revise_y) / 128.0).round, distance) 
-         turn_left if @event_run 
-       end 
-     else 
-       turn_down unless left1(((@x * 128 + @revise_x) / 128.0).round, 
-                               ((@y * 128 + @revise_y) / 128.0).round, distance) 
-       turn_left if @event_run 
-       unless @event_run 
-         if last_move?(@real_x, @real_y, 4, distance) 
-           result = check_event_trigger_here([1,2], false) 
-           if result == true 
-             return 
-           end 
-         end 
-         move_on 
-         if  @revise_x + distance> SIDE and -SIDE > @revise_x 
-           @revise_x = -SIDE 
-         end 
-         turn_left unless down1(((@x * 128 + @revise_x) / 128.0).round, 
-                               ((@y * 128 + @revise_y) / 128.0).round, distance) 
-         turn_down if @event_run 
-       end 
-     end 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 右下に移動 
-   #-------------------------------------------------------------------------- 
-   def move_lower_right_p 
-     # 向き固定でない場合 
-     unless @direction_fix 
-       # 左向きだった場合は右を、上向きだった場合は下を向く 
-       @direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction) 
-     end 
-     # 右下に移動 
-     distance = (2 ** @move_speed) / Math.sqrt(2) 
-     if @direction == 2 
-       turn_right unless down1(((@x * 128 + @revise_x) / 128.0).round, 
-                               ((@y * 128 + @revise_y) / 128.0).round, distance) 
-       turn_down if @event_run 
-       unless @event_run 
-         if last_move?(@real_x, @real_y, 2, distance) 
-           result = check_event_trigger_here([1,2], false) 
-           if result == true 
-             return 
-           end 
-         end 
-         move_on 
-         if @revise_y > DOWN and -UP > @revise_y - distance 
-           @revise_y = DOWN 
-         end 
-         turn_down unless right1(((@x * 128 + @revise_x) / 128.0).round, 
-                               ((@y * 128 + @revise_y) / 128.0).round, distance) 
-         turn_right if @event_run 
-       end 
-     else 
-       turn_down unless right1(((@x * 128 + @revise_x) / 128.0).round, 
-                               ((@y * 128 + @revise_y) / 128.0).round, distance) 
-       turn_right if @event_run 
-       unless @event_run 
-         if last_move?(@real_x, @real_y, 6, distance) 
-           result = check_event_trigger_here([1,2], false) 
-           if result == true 
-             return 
-           end 
-         end 
-         move_on 
-         if @revise_x > SIDE and -SIDE > @revise_x - distance 
-           @revise_x = SIDE 
-         end 
-         turn_right unless down1(((@x * 128 + @revise_x) / 128.0).round, 
-                               ((@y * 128 + @revise_y) / 128.0).round, distance) 
-         turn_down if @event_run 
-       end 
-     end 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 左上に移動 
-   #-------------------------------------------------------------------------- 
-   def move_upper_left_p 
-     # 向き固定でない場合 
-     unless @direction_fix 
-       # 右向きだった場合は左を、下向きだった場合は上を向く 
-       @direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction) 
-     end 
-     # 左上に移動 
-     distance = (2 ** @move_speed) / Math.sqrt(2) 
-     if @direction == 8 
-       turn_left unless up1(((@x * 128 + @revise_x) / 128.0).round, 
-                             ((@y * 128 + @revise_y) / 128.0).round, distance) 
-       turn_up if @event_run 
-       unless @event_run 
-         if last_move?(@real_x, @real_y, 8, distance) 
-           result = check_event_trigger_here([1,2], false) 
-           if result == true 
-             return 
-           end 
-         end 
-         move_on 
-         if @revise_y + distance > DOWN and -UP > @revise_y 
-           @revise_y = -UP 
-         end 
-         turn_up unless left1(((@x * 128 + @revise_x) / 128.0).round, 
-                               ((@y * 128 + @revise_y) / 128.0).round, distance) 
-         turn_left if @event_run 
-       end 
-     else 
-       turn_up unless left1(((@x * 128 + @revise_x) / 128.0).round, 
-                             ((@y * 128 + @revise_y) / 128.0).round, distance) 
-       turn_left if @event_run 
-       unless @event_run 
-         if last_move?(@real_x, @real_y, 4, distance) 
-           result = check_event_trigger_here([1,2], false) 
-           if result == true 
-             return 
-           end 
-         end 
-         move_on 
-         if @revise_x > SIDE and -SIDE > @revise_x - distance 
-           @revise_x = SIDE 
-         end 
-         turn_left unless up1(((@x * 128 + @revise_x) / 128.0).round, 
-                               ((@y * 128 + @revise_y) / 128.0).round, distance) 
-         turn_up if @event_run 
-       end 
-     end 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 右上に移動 
-   #-------------------------------------------------------------------------- 
-   def move_upper_right_p 
-     # 向き固定でない場合 
-     unless @direction_fix 
-       # 左向きだった場合は右を、下向きだった場合は上を向く 
-       @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction) 
-     end 
-     # 右上に移動 
-     distance = (2 ** @move_speed) / Math.sqrt(2) 
-     if @direction == 8 
-       turn_right unless up1(((@x * 128 + @revise_x) / 128.0).round, 
-                             ((@y * 128 + @revise_y) / 128.0).round, distance) 
-       turn_up if @event_run 
-       unless @event_run 
-         if last_move?(@real_x, @real_y, 8, distance) 
-           result = check_event_trigger_here([1,2], false) 
-           if result == true 
-             return 
-           end 
-         end 
-         move_on 
-         if @revise_y + distance > DOWN and -UP > @revise_y 
-           @revise_y = -UP 
-         end 
-         turn_up unless right1(((@x * 128 + @revise_x) / 128.0).round, 
-                               ((@y * 128 + @revise_y) / 128.0).round, distance) 
-         turn_right if @event_run 
-       end 
-     else 
-       turn_up unless right1(((@x * 128 + @revise_x) / 128.0).round, 
-                             ((@y * 128 + @revise_y) / 128.0).round, distance) 
-       turn_right if @event_run 
-       unless @event_run 
-         if last_move?(@real_x, @real_y, 6, distance) 
-           result = check_event_trigger_here([1,2], false) 
-           if result == true 
-             return 
-           end 
-         end 
-         move_on 
-         if @revise_x > SIDE and -SIDE > @revise_x - distance 
-           @revise_x = SIDE 
-         end 
-         turn_right unless up1(((@x * 128 + @revise_x) / 128.0).round, 
-                               ((@y * 128 + @revise_y) / 128.0).round, distance) 
-         turn_up if @event_run 
-       end 
-     end 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 同位置のイベント起動判定 
-   #-------------------------------------------------------------------------- 
-   def check_event_trigger_here(triggers, run = true) 
-     result = false 
-     # イベント実行中の場合 
-     if $game_system.map_interpreter.running? 
-       return result 
-     end 
-     # 全イベントのループ 
-     for event in $game_map.events.values 
-       # イベントの座標とトリガーが一致した場合 
-       if event.x == ((@x * 128 + @revise_x) / 128.0).round and 
-           event.y == ((@y * 128 + @revise_y) / 128.0).round and 
-           triggers.include?(event.trigger) 
-         # ジャンプ中以外で、起動判定が同位置のイベントなら 
-         if not event.jumping? and event.over_trigger? 
-           if event.list.size > 1 
-             if run == true 
-               event.start 
-             end 
-             result = true 
-           end 
-         end 
-       end 
-     end 
-     return result 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 座標修正 
-   #-------------------------------------------------------------------------- 
-   def move_on 
-     if @y < (@y + @revise_y / 128.0).round 
-       @y += 1 
-       @revise_y -= 128 
-     end 
-     if @x > (@x + @revise_x / 128.0).round 
-       @x -= 1 
-       @revise_x += 128 
-     end 
-     if @x < (@x + @revise_x / 128.0).round 
-       @x += 1 
-       @revise_x -= 128 
-     end 
-     if @y > (@y + @revise_y / 128.0).round 
-       @y -= 1 
-       @revise_y += 128 
-     end 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● アニメーションアップデート 
-   #-------------------------------------------------------------------------- 
-   def anime_update 
-     # 移動時アニメが ON の場合 
-     if @walk_anime 
-       # アニメカウントを 1.5 増やす 
-       @anime_count += 1.5 
-     # 移動時アニメが OFF で、停止時アニメが ON の場合 
-     elsif @step_anime 
-       # アニメカウントを 1 増やす 
-       @anime_count += 1 
-     end 
-     # アニメカウントが最大値を超えた場合 
-     # ※最大値は、基本値 18 から移動速度 * 1 を引いた値 
-     if @anime_count > 18 - @move_speed * 2 
-       # 停止時アニメが OFF かつ 停止中の場合 
-       if not @step_anime and @stop_count > 0 
-         # パターンをオリジナルに戻す 
-         @pattern = @original_pattern 
-       # 停止時アニメが ON または 移動中の場合 
-       else 
-         # パターンを更新 
-         @pattern = (@pattern + 1) % 4 
-       end 
-       # アニメカウントをクリア 
-       @anime_count = 0 
-     end 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 指定位置に移動 
-   #-------------------------------------------------------------------------- 
-   # オリジナルのイベントを改名 
-   alias :moveto_original :moveto 
-   def moveto(x, y) 
-     # 補正座標を初期化 
-     @revise_x = 0 
-     @revise_y = 0 
-     # オリジナルのイベントを呼び出し 
-     moveto_original(x, y) 
-   end 
-   #-------------------------------------------------------------------------- 
-   # ● 移動したかどうかの判定 
-   #-------------------------------------------------------------------------- 
-   def last_move?(x, y, direction, distance) 
-     if direction == 2 or direction == 6 
-       distance *= -1 
-     end 
-     if (direction == 2 or direction == 8) and 
-         (y / 128.0).round != ((y - distance) / 128.0).round 
-       return true 
-     end 
-     if (direction == 4 or direction == 6) and 
-         (x / 128.0).round != ((x - distance) / 128.0).round 
-       return true 
-     end 
-     return false 
-   end 
- end 
-   
- #============================================================================== 
- # ■ Game_Character (分割定義 1) 
- #------------------------------------------------------------------------------ 
- #  キャラクターを扱うクラスです。このクラスは Game_Player クラスと Game_Event 
- # クラスのスーパークラスとして使用されます。 
- #============================================================================== 
-   
- class Game_Character 
-   #-------------------------------------------------------------------------- 
-   # ● フレーム更新 (移動) 
-   #-------------------------------------------------------------------------- 
-   def update_move 
-     # 移動速度からマップ座標系での移動距離に変換 
-     distance = 2 ** @move_speed 
-     if @x * 128 != @real_x and @y * 128 != @real_y and Game_Player::SLANT 
-       distance /= Math.sqrt(2) 
-     end 
-     # 論理座標が実座標より下の場合 
-     if @y * 128 > @real_y 
-       # 下に移動 
-       @real_y = [@real_y + distance, @y * 128].min 
-     end 
-     # 論理座標が実座標より左の場合 
-     if @x * 128 < @real_x 
-       # 左に移動 
-       @real_x = [@real_x - distance, @x * 128].max 
-     end 
-     # 論理座標が実座標より右の場合 
-     if @x * 128 > @real_x 
-       # 右に移動 
-       @real_x = [@real_x + distance, @x * 128].min 
-     end 
-     # 論理座標が実座標より上の場合 
-     if @y * 128 < @real_y 
-       # 上に移動 
-       @real_y = [@real_y - distance, @y * 128].max 
-     end 
-     # 移動時アニメが ON の場合 
-     if @walk_anime 
-       # アニメカウントを 1.5 増やす 
-       @anime_count += 1.5 
-     # 移動時アニメが OFF で、停止時アニメが ON の場合 
-     elsif @step_anime 
-       # アニメカウントを 1 増やす 
-       @anime_count += 1 
-     end 
-   end 
- end 
-   
- #============================================================================== 
- # ■ Game_Event 
- #------------------------------------------------------------------------------ 
- #  イベントを扱うクラスです。条件判定によるイベントページ切り替えや、並列処理 
- # イベント実行などの機能を持っており、Game_Map クラスの内部で使用されます。 
- #============================================================================== 
-   
- class Game_Event < Game_Character 
-   #-------------------------------------------------------------------------- 
-   # ● イベント起動 
-   #-------------------------------------------------------------------------- 
-   def start 
-     # 実行内容が空でない場合 
-     if @list.size > 1 
-       # $game_player.event が0でない場合 
-       if $game_player.event != 0 
-         # 移動速度を $game_player.event にする 
-         $game_player.move_speed = $game_player.event 
-       end 
-       @starting = true 
-     end 
-   end 
- end 
-   
- #============================================================================== 
- # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息 
- #==============================================================================