Seite 4 von 4 ErsteErste 1234
Ergebnis 61 bis 71 von 71

Thema: [XP] Standardscripte die man haben sollte!

  1. #61

    Users Awaiting Email Confirmation

    @ Goldenpati :
    Wofr ist der "Mode 07" Skript ?

    @Thread :
    Pixelgenaues 8 Wege laufen mit renn skript (leertaste/Enter um zu rennen)
    Der Skript ist zwar nicht von mir ist aber seeeehr ntzlich...musste ihn mal einfgen....

    Code:
    # ‘S•Œƒhƒbƒgˆ“ Ver ƒ+++
    # ”z•zŒEƒTƒ|[ƒgURL
    # http://members.jcom.home.ne.jp/cogwheel/
    
    #==============================================================================
    #  Game_Player
    #------------------------------------------------------------------------------
    # @ƒvƒŒƒCƒ„[‚ˆ‚ƒNƒ‰ƒX‚‚BƒCƒxƒ“ƒg‚‹N“”’‚Aƒ}ƒbƒv‚ƒXƒNƒ[ƒ‹‚‚‚
    # ‹@”\‚Ž‚‚‚‚‚B‚‚ƒNƒ‰ƒX‚ƒCƒ“ƒXƒ^ƒ“ƒX‚ $game_player ‚ŽQ‚‚‚‚B
    #==============================================================================
    
    class Game_Player < Game_Character
      #--------------------------------------------------------------------------
      # œ ’”
      #--------------------------------------------------------------------------
      UP    = 0                   # •Œ‚—]—T(0 <= UP <= 63)
      SIDE  = 0                   # ‰E•Œ‚—]—T(0 <= SIDE <= 63)
      SLANT = false               # ˆ“ƒ‹[ƒg‚Ž‚ˆ“ŽžA‘“xC
      #--------------------------------------------------------------------------
      # œ ŒŠJƒCƒ“ƒXƒ^ƒ“ƒX•ϐ”
      #--------------------------------------------------------------------------
      attr_reader   :walk                     # ƒvƒŒ[ƒ„[ˆ“‘“x
      attr_reader   :event                    # ƒCƒxƒ“ƒgŽžˆ“‘“x
      attr_accessor :move_speed               # ˆ“‘“x
      #--------------------------------------------------------------------------
      # œ ƒIƒuƒWƒFƒNƒg‰Š‰
      #--------------------------------------------------------------------------
      def initialize
        super
        # @walk:•s‘“x @dash:ƒ_ƒbƒVƒ…Žžˆ“‘“x
        # @event:ƒCƒxƒ“ƒgŽžˆ“‘“xi0‚Žž‚́AƒCƒxƒ“ƒgŽž‚‘“x•ύX‚‚‚‚j
        @walk  = 4
        @dash  = 5
        @event = 4
        @dot_m = true
        @revise_x = 0
        @revise_y = 0
        @move == false
      end
      #--------------------------------------------------------------------------
      # œ ƒtƒŒ[ƒ€XV
      #--------------------------------------------------------------------------
      alias :update_original :update
      def update
        #ƒ_ƒbƒVƒ…‹@”\BƒGƒ“ƒ^[ƒL[‚‰Ÿ‚‚‚‚‚ŠԁAˆ“‘“x‚•ύX‚‚B
        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
          # ƒ[ƒJƒ‹•ϐ”‚ˆ“’†‚‚‚‚‚‹L‰
          last_moving = moving?
          # ƒ[ƒJƒ‹•ϐ”‚ɍ•W‚‹L‰
          last_real_x = @real_x
          last_real_y = @real_y
          # •W‚‚‚‚‚‚‡
          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‚–•W‹——distance2‚’
            distance1 = 2 ** @move_speed
            distance2 = Math.sqrt(@revise_x ** 2 + @revise_y ** 2)
            # ˆ“‹——‚–•W‹——‚‰z‚‚‡
            if distance1 > distance2
              # ‹•“I‚•␳•W‚—‚‚‚
              @real_x = @real_x - @revise_x
              @real_y = @real_y - @revise_y
              @revise_x = 0
              @revise_y = 0
              anime_update
            # ˆ“‹——‚–•W‹——‚’B‚‚‚‡
            else
              # ˆ“‹——•–•W‹——‚‹‚‚•
              @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
          # ˆ“’†AƒCƒxƒ“ƒgŽs’†Aˆ“ƒ‹[ƒg‹•’†A
          # ƒƒbƒZ[ƒWƒEƒBƒ“ƒhƒE•\Ž’†‚‚‚‚‚‚‚‚‡
          unless moving? or $game_system.map_interpreter.running? or
                 @move_route_forcing or $game_temp.message_window_showing
            @event_run = false
            # •Œƒ{ƒ^ƒ“‚‰Ÿ‚‚‚‚‚‚΁A‚‚•Œ‚ƒvƒŒƒCƒ„[‚ˆ“
            case Input.dir8
            when 1
              move_lower_left_p
            when 2
              move_down_p
            when 3
              move_lower_right_p
            when 4
              move_left_p
            when 6
              move_right_p
            when 7
              move_upper_left_p
            when 8
              move_up_p
            when 9
              move_upper_right_p
            end
          end
          # ƒ[ƒJƒ‹•ϐ”‚ɍ•W‚‹L‰
          last_real_x = @real_x
          last_real_y = @real_y
          # ˆ“ˆ—
          @real_x = @x * 128 + @revise_x
          @real_y = @y * 128 + @revise_y
          # ƒ[ƒJƒ‹•ϐ”‚ˆ“’†‚‚‚‚‚‹L‰
          last_moving = moving?
          # •WXV
          move_on
          # Œ‚̍•W‚ˆ‘O‚̍•W‚ˆ‚‚‡
          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
            # ƒAƒjƒ[ƒVƒ‡ƒ“‚XV
            anime_update
          elsif @walk_anime
            @pattern = @original_pattern
          end
        end
        # ƒLƒƒƒ‰ƒNƒ^[‚‰‚ˆ“‚A‚‚‰–ʏ‚ˆ’u‚’†‰›‚‚‰‚̏‡
        if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
          # ƒ}ƒbƒv‚‰‚ƒXƒNƒ[ƒ‹
          $game_map.scroll_down(@real_y - last_real_y)
        end
        # ƒLƒƒƒ‰ƒNƒ^[‚‚ˆ“‚A‚‚‰–ʏ‚ˆ’u‚’†‰›‚‚荶‚̏‡
        if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
          # ƒ}ƒbƒv‚‚ƒXƒNƒ[ƒ‹
          $game_map.scroll_left(last_real_x - @real_x)
        end
        # ƒLƒƒƒ‰ƒNƒ^[‚‰E‚ˆ“‚A‚‚‰–ʏ‚ˆ’u‚’†‰›‚‚‰E‚̏‡
        if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
          # ƒ}ƒbƒv‚‰E‚ƒXƒNƒ[ƒ‹
          $game_map.scroll_right(@real_x - last_real_x)
        end
        # ƒLƒƒƒ‰ƒNƒ^[‚‚ˆ“‚A‚‚‰–ʏ‚ˆ’u‚’†‰›‚‚‚̏‡
        if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
          # ƒ}ƒbƒv‚‚ƒXƒNƒ[ƒ‹
          $game_map.scroll_up(last_real_y - @real_y)
        end
        # ‘O‰ƒvƒŒƒCƒ„[‚ˆ“’†‚‚‚‡
        if last_moving
          # “ˆ’u‚ƒCƒxƒ“ƒg‚‚̐ڐG‚‚‚ƒCƒxƒ“ƒg‹N“”’
          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
          # ‹N“‚‚ƒCƒxƒ“ƒg‚‚‚‡
          if result == false
            # ƒfƒoƒbƒOƒ‚[ƒh‚ ON ‚‚ CTRL ƒL[‚‰Ÿ‚‚‚‚‚‡‚œ‚
            unless $DEBUG and Input.press?(Input::CTRL)
              # ƒGƒ“ƒJƒEƒ“ƒg ƒJƒEƒ“ƒgƒ_ƒEƒ“
              if @encounter_count > 0
                @encounter_count -= 1
              end
            end
          end
        end
        # C ƒ{ƒ^ƒ“‚‰Ÿ‚‚‚‡
        if Input.trigger?(Input::C)
          # “ˆ’u‚‚‚ѐ–‚ƒCƒxƒ“ƒg‹N“”’
          check_event_trigger_here([0])
          check_event_trigger_there([0,1,2])
        end
      end
      #--------------------------------------------------------------------------
      # œ ˆ“”’
      #--------------------------------------------------------------------------
      def moving?
        unless @dot_m
          result = super
          return result
        end
        # ‹•ˆ“‚̏‡ƒIƒŠƒWƒiƒ‹‚”’‚‚‚‚
        if @move_route_forcing
          if @move == false
            return false
          end
          super
        # ’ʏŽž‚Œ•W‚Ž•W‚ˆ‚‚‡‚‚ˆ“’†‚”’
        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
      #--------------------------------------------------------------------------
      # œ ƒtƒŒ[ƒ€XV (ƒWƒƒƒ“ƒv)
      #--------------------------------------------------------------------------
      def update_jump
        # ƒWƒƒƒ“ƒvƒJƒEƒ“ƒg‚ 1 Œ‚‚
        @jump_count -= 1
        # V‚‚•W‚ŒvŽZ
        @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
      #--------------------------------------------------------------------------
      # œ ˆ“ƒ^ƒCƒv : ƒJƒXƒ^ƒ€
      #--------------------------------------------------------------------------
      def move_type_custom
        unless @dot_m
          super
          return
        end
        # ’Ž~’†‚‚‚‚‚’†’f
        if jumping? or moving_a?
          return
        end
        # ˆ“ƒRƒ}ƒ“ƒh‚ƒŠƒXƒg‚̍Œ‚“ž’B‚‚‚‚ƒ‹[ƒv
        while @move_route_index < @move_route.list.size
          # ˆ“ƒRƒ}ƒ“ƒh‚Ž“
          command = @move_route.list[@move_route_index]
          # ƒRƒ}ƒ“ƒhƒR[ƒh 0 ” (ƒŠƒXƒg‚̍Œ) ‚̏‡
          if command.code == 0
            # ƒIƒvƒVƒ‡ƒ“ [“‚ŒJ‚•‚] ‚ ON ‚̏‡
            if @move_route.repeat
              # ˆ“ƒ‹[ƒg‚ƒCƒ“ƒfƒbƒNƒX‚ŏ‰‚–‚
              @move_route_index = 0
            end
            # ƒIƒvƒVƒ‡ƒ“ [“‚ŒJ‚•‚] ‚ OFF ‚̏‡
            unless @move_route.repeat
              # ˆ“ƒ‹[ƒg‹•’†‚̏‡
              if @move_route_forcing and not @move_route.repeat
                # ˆ“ƒ‹[ƒg‚‹•‚‰œ
                @move_route_forcing = false
                # ƒIƒŠƒWƒiƒ‹‚ˆ“ƒ‹[ƒg‚•œ‹A
                @move_route = @original_move_route
                @move_route_index = @original_move_route_index
                @original_move_route = nil
              end
              # ’Ž~ƒJƒEƒ“ƒg‚ƒNƒŠƒA
              @stop_count = 0
            end
            return
          end
          # ˆ“ŒnƒRƒ}ƒ“ƒh (‰‚ˆ“`ƒWƒƒƒ“ƒv) ‚̏‡
          if command.code <= 14
            # ƒRƒ}ƒ“ƒhƒR[ƒh‚•Š
            case command.code
            when 1  # ‰‚ˆ“
              move_down
            when 2  # ‚ˆ“
              move_left
            when 3  # ‰E‚ˆ“
              move_right
            when 4  # ‚ˆ“
              move_up
            when 5  # ‰‚ˆ“
              move_lower_left
            when 6  # ‰E‰‚ˆ“
              move_lower_right
            when 7  # ‚ˆ“
              move_upper_left
            when 8  # ‰E‚ˆ“
              move_upper_right
            when 9  # ƒ‰ƒ“ƒ_ƒ€‚ˆ“
              move_random
            when 10  # ƒvƒŒƒCƒ„[‚‹‚‚•
              move_toward_player
            when 11  # ƒvƒŒƒCƒ„[‚‚‰“‚‚‚
              move_away_from_player
            when 12  # ˆ•‘Oi
              move_forward
            when 13  # ˆ•Œ‘
              move_backward
            when 14  # ƒWƒƒƒ“ƒv
              jump(command.parameters[0], command.parameters[1])
            end
            # ƒIƒvƒVƒ‡ƒ“ [ˆ“‚‚‚‚‡‚–Ž‹] ‚ OFF ‚ŁAˆ“Ž”s‚̏‡
            if not @move_route.skippable and not moving? and not jumping?
              return
            end
            @move_route_index += 1
            return
          end
          # ƒEƒFƒCƒg‚̏‡
          if command.code == 15
            # ƒEƒFƒCƒgƒJƒEƒ“ƒg‚’
            @wait_count = command.parameters[0] * 2 - 1
            @move_route_index += 1
            return
          end
          # Œ‚•ύXŒn‚ƒRƒ}ƒ“ƒh‚̏‡
          if command.code >= 16 and command.code <= 26
            # ƒRƒ}ƒ“ƒhƒR[ƒh‚•Š
            case command.code
            when 16  # ‰‚Œ‚•
              turn_down
            when 17  # ‚Œ‚•
              turn_left
            when 18  # ‰E‚Œ‚•
              turn_right
            when 19  # ‚Œ‚•
              turn_up
            when 20  # ‰E‚ 90 “x‰“]
              turn_right_90
            when 21  # ‚ 90 “x‰“]
              turn_left_90
            when 22  # 180 “x‰“]
              turn_180
            when 23  # ‰E‚‚ 90 “x‰“]
              turn_right_or_left_90
            when 24  # ƒ‰ƒ“ƒ_ƒ€‚•Œ“]Š
              turn_random
            when 25  # ƒvƒŒƒCƒ„[‚•‚Œ‚•
              turn_toward_player
            when 26  # ƒvƒŒƒCƒ„[‚‹t‚Œ‚•
              turn_away_from_player
            end
            @move_route_index += 1
            return
          end
          # ‚‚‘‚ƒRƒ}ƒ“ƒh‚̏‡
          if command.code >= 27
            # ƒRƒ}ƒ“ƒhƒR[ƒh‚•Š
            case command.code
            when 27  # ƒXƒCƒbƒ` ON
              $game_switches[command.parameters[0]] = true
              $game_map.need_refresh = true
            when 28  # ƒXƒCƒbƒ` OFF
              $game_switches[command.parameters[0]] = false
              $game_map.need_refresh = true
            when 29  # ˆ“‘“x‚•ύX
              @move_speed = command.parameters[0]
            when 30  # ˆ“•p“x‚•ύX
              @move_frequency = command.parameters[0]
            when 31  # ˆ“ŽžƒAƒjƒ ON
              @walk_anime = true
            when 32  # ˆ“ŽžƒAƒjƒ OFF
              @walk_anime = false
            when 33  # ’Ž~ŽžƒAƒjƒ ON
              @step_anime = true
            when 34  # ’Ž~ŽžƒAƒjƒ 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  # ‘O–‚•\Ž ON
              @always_on_top = true
            when 40  # ‘O–‚•\Ž OFF
              @always_on_top = false
            when 41  # ƒOƒ‰ƒtƒBƒbƒN•ύX
              @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  # •s“–“x‚•ύX
              @opacity = command.parameters[0]
            when 43  # ‡•–@‚•ύX
              @blend_type = command.parameters[0]
            when 44  # SE ‚‰‰‘t
              $game_system.se_play(command.parameters[0])
            when 45  # ƒXƒNƒŠƒvƒg
              result = eval(command.parameters[0])
            end
            @move_route_index += 1
            return
          end
        end
      end
      #--------------------------------------------------------------------------
      # œ ‰‚ˆ“
      #--------------------------------------------------------------------------
      def move_down_p
        # ‰‚Œ‚•
        turn_down
        # ˆ“‹——‚ŽZo
        distance = 2 ** @move_speed
        down1(((@x * 128 + @revise_x) / 128.0).round,
              ((@y * 128 + @revise_y) / 128.0).round, distance, true)
      end
      #--------------------------------------------------------------------------
      # œ ‰‚ˆ“‰”\‚‚‚‚‚”’‚P
      #--------------------------------------------------------------------------
      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
      #--------------------------------------------------------------------------
      # œ ‰‚ˆ“‰”\‚‚‚‚‚”’‚Q
      #--------------------------------------------------------------------------
      def down2(x, y, distance, d = 2)
        if @revise_y + distance > 0
          unless passable?(x, y, d)
            if @revise_y < 0
              @revise_y = 0
            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
      #--------------------------------------------------------------------------
      # œ ‚ˆ“‰”\‚‚‚‚‚”’‚P
      #--------------------------------------------------------------------------
      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
          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 > 0
                @revise_y = 0
              end
            end
            return result
          end
        elsif @revise_y > 0
          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
      #--------------------------------------------------------------------------
      # œ ‚ˆ“‰”\‚‚‚‚‚”’‚Q
      #--------------------------------------------------------------------------
      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
      #--------------------------------------------------------------------------
      # œ ‰E‚ˆ“
      #--------------------------------------------------------------------------
      def move_right_p
          # ‰E‚Œ‚•
          turn_right
        distance = 2 ** @move_speed
        right1(((@x * 128 + @revise_x) / 128.0).round,
                ((@y * 128 + @revise_y) / 128.0).round, distance, true)
      end
      #--------------------------------------------------------------------------
      # œ ‰E‚ˆ“‰”\‚‚‚‚‚”’‚P
      #--------------------------------------------------------------------------
      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
          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 > 0
                @revise_y = 0
              end
            end
            return result
          end
        elsif @revise_y > 0
          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
      #--------------------------------------------------------------------------
      # œ ‰E‚ˆ“‰”\‚‚‚‚‚”’‚Q
      #--------------------------------------------------------------------------
      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
      #--------------------------------------------------------------------------
      # œ ‚ˆ“‰”\‚‚‚‚‚”’‚P
      #--------------------------------------------------------------------------
      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
      #--------------------------------------------------------------------------
      # œ ‚ˆ“‰”\‚‚‚‚‚”’‚Q
      #--------------------------------------------------------------------------
      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
          # ‰EŒ‚‚‚‚‡‚͍‚AŒ‚‚‚‚‡‚‰‚Œ‚•
          @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 > 0 and -UP > @revise_y - distance
              @revise_y = 0
            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
      #--------------------------------------------------------------------------
      # œ ‰E‰‚ˆ“
      #--------------------------------------------------------------------------
      def move_lower_right_p
        # Œ‚Œ’‚‚‚‡
        unless @direction_fix
          # Œ‚‚‚‚‡‚‰E‚AŒ‚‚‚‚‡‚‰‚Œ‚•
          @direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction)
        end
        # ‰E‰‚ˆ“
        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 > 0 and -UP > @revise_y - distance
              @revise_y = 0
            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
          # ‰EŒ‚‚‚‚‡‚͍‚A‰Œ‚‚‚‚‡‚͏‚Œ‚•
          @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 > 0 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
      #--------------------------------------------------------------------------
      # œ ‰E‚ˆ“
      #--------------------------------------------------------------------------
      def move_upper_right_p
        # Œ‚Œ’‚‚‚‡
        unless @direction_fix
          # Œ‚‚‚‚‡‚‰E‚A‰Œ‚‚‚‚‡‚͏‚Œ‚•
          @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction)
        end
        # ‰E‚ˆ“
        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 > 0 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
      #--------------------------------------------------------------------------
      # œ “ˆ’u‚ƒCƒxƒ“ƒg‹N“”’
      #--------------------------------------------------------------------------
      def check_event_trigger_here(triggers, run = true)
        result = false
        # ƒCƒxƒ“ƒgŽs’†‚̏‡
        if $game_system.map_interpreter.running?
          return result
        end
        # ‘SƒCƒxƒ“ƒg‚ƒ‹[ƒv
        for event in $game_map.events.values
          # ƒCƒxƒ“ƒg‚̍•W‚ƒgƒŠƒK[‚ˆ’v‚‚‡
          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)
            # ƒWƒƒƒ“ƒv’†ˆŠO‚ŁA‹N“”’‚“ˆ’u‚ƒCƒxƒ“ƒg‚‚
            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
      #--------------------------------------------------------------------------
      # œ •WC
      #--------------------------------------------------------------------------
      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
      #--------------------------------------------------------------------------
      # œ ƒAƒjƒ[ƒVƒ‡ƒ“ƒAƒbƒvƒf[ƒg
      #--------------------------------------------------------------------------
      def anime_update
        # ˆ“ŽžƒAƒjƒ‚ ON ‚̏‡
        if @walk_anime
          # ƒAƒjƒƒJƒEƒ“ƒg‚ 1.5 ‘‚‚
          @anime_count += 1.5
        # ˆ“ŽžƒAƒjƒ‚ OFF ‚ŁA’Ž~ŽžƒAƒjƒ‚ ON ‚̏‡
        elsif @step_anime
          # ƒAƒjƒƒJƒEƒ“ƒg‚ 1 ‘‚‚
          @anime_count += 1
        end
        # ƒAƒjƒƒJƒEƒ“ƒg‚‘’l‚’‚‚‡
        # ‘’l‚́AŠ–{’l 18 ‚‚ˆ“‘“x * 1 ‚ˆ‚‚’l
        if @anime_count > 18 - @move_speed * 2
          # ’Ž~ŽžƒAƒjƒ‚ OFF ‚‚ ’Ž~’†‚̏‡
          if not @step_anime and @stop_count > 0
            # ƒpƒ^[ƒ“‚ƒIƒŠƒWƒiƒ‹‚–‚
            @pattern = @original_pattern
          # ’Ž~ŽžƒAƒjƒ‚ ON ‚‚‚ ˆ“’†‚̏‡
          else
            # ƒpƒ^[ƒ“‚XV
            @pattern = (@pattern + 1) % 4
          end
          # ƒAƒjƒƒJƒEƒ“ƒg‚ƒNƒŠƒA
          @anime_count = 0
        end
      end
      #--------------------------------------------------------------------------
      # œ Žw’ˆ’u‚ˆ“
      #--------------------------------------------------------------------------
      # ƒIƒŠƒWƒiƒ‹‚ƒCƒxƒ“ƒg‚‰–
      alias :moveto_original :moveto
      def moveto(x, y)
        # •␳•W‚‰Š‰
        @revise_x = 0
        @revise_y = 0
        # ƒIƒŠƒWƒiƒ‹‚ƒCƒxƒ“ƒg‚Œ‚яo‚
        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)
    #------------------------------------------------------------------------------
    # @ƒLƒƒƒ‰ƒNƒ^[‚ˆ‚ƒNƒ‰ƒX‚‚B‚‚ƒNƒ‰ƒX‚ Game_Player ƒNƒ‰ƒX‚ Game_Event
    # ƒNƒ‰ƒX‚ƒX[ƒp[ƒNƒ‰ƒX‚‚‚Žg—p‚‚‚‚B
    #==============================================================================
    
    class Game_Character
      #--------------------------------------------------------------------------
      # œ ‰– X •W‚Ž“
      #--------------------------------------------------------------------------
      def screen_x
        # Ž•W‚ƒ}ƒbƒv‚•\Žˆ’u‚‚‰–ʍ•W‚‹‚‚
        return ((@real_x - $game_map.display_x) / 4).ceil + 16
      end
      #--------------------------------------------------------------------------
      # œ ‰– Y •W‚Ž“
      #--------------------------------------------------------------------------
      def screen_y
        # Ž•W‚ƒ}ƒbƒv‚•\Žˆ’u‚‚‰–ʍ•W‚‹‚‚
        y = ((@real_y - $game_map.display_y) / 4).ceil + 32
        # ƒWƒƒƒ“ƒvƒJƒEƒ“ƒg‚‰ž‚‚ Y •W‚‚‚•‚‚
        if @jump_count >= @jump_peak
          n = @jump_count - @jump_peak
        else
          n = @jump_peak - @jump_count
        end
        return y - (@jump_peak * @jump_peak - n * n) / 2
      end
      #--------------------------------------------------------------------------
      # œ ƒtƒŒ[ƒ€XV (ˆ“)
      #--------------------------------------------------------------------------
      def update_move
        # ˆ“‘“x‚‚ƒ}ƒbƒv•WŒn‚‚ˆ“‹——‚•Š
        distance = 2 ** @move_speed
        if @x * 128 != @real_x and @y * 128 != @real_y and Game_Player::SLANT
          distance /= Math.sqrt(2)
        end
        # ˜_—•W‚Ž•W‚‚‰‚̏‡
        if @y * 128 > @real_y
          # ‰‚ˆ“
          @real_y = [@real_y + distance, @y * 128].min
        end
        # ˜_—•W‚Ž•W‚‚荶‚̏‡
        if @x * 128 < @real_x
          # ‚ˆ“
          @real_x = [@real_x - distance, @x * 128].max
        end
        # ˜_—•W‚Ž•W‚‚‰E‚̏‡
        if @x * 128 > @real_x
          # ‰E‚ˆ“
          @real_x = [@real_x + distance, @x * 128].min
        end
        # ˜_—•W‚Ž•W‚‚‚̏‡
        if @y * 128 < @real_y
          # ‚ˆ“
          @real_y = [@real_y - distance, @y * 128].max
        end
        # ˆ“ŽžƒAƒjƒ‚ ON ‚̏‡
        if @walk_anime
          # ƒAƒjƒƒJƒEƒ“ƒg‚ 1.5 ‘‚‚
          @anime_count += 1.5
        # ˆ“ŽžƒAƒjƒ‚ OFF ‚ŁA’Ž~ŽžƒAƒjƒ‚ ON ‚̏‡
        elsif @step_anime
          # ƒAƒjƒƒJƒEƒ“ƒg‚ 1 ‘‚‚
          @anime_count += 1
        end
      end
    end
    
    #==============================================================================
    #  Game_Event
    #------------------------------------------------------------------------------
    # @ƒCƒxƒ“ƒg‚ˆ‚ƒNƒ‰ƒX‚‚BŒ”’‚‚‚ƒCƒxƒ“ƒgƒy[ƒW‚‘‚‚A•—ˆ—
    # ƒCƒxƒ“ƒgŽs‚‚‚‹@”\‚Ž‚‚‚‚AGame_Map ƒNƒ‰ƒX‚“•”‚Žg—p‚‚‚‚B
    #==============================================================================
    
    class Game_Event < Game_Character
      #--------------------------------------------------------------------------
      # œ ƒCƒxƒ“ƒg‹N“
      #--------------------------------------------------------------------------
      def start
        # Žs“—e‚‹‚‚‚‡
        if @list.size > 1
          # $game_player.event ‚0‚‚‚‡
          if $game_player.event != 0
            # ˆ“‘“x‚ $game_player.event ‚‚‚
            $game_player.move_speed = $game_player.event
          elsif self.trigger == 0
            $game_player.move_speed = $game_player.walk
          end
          @starting = true
        end
      end
    end

  2. #62

    Users Awaiting Email Confirmation

    Wollte mal fragen wie der Ring Menskript funktioniert?
    Bei mir kommt am Ende (Reihe 414) immer ein Syntax Error?
    Habs mit dem Command end versucht aber...naja^^

    Edit :
    Sorry wegen Doppelpost...
    Hab vergessen das ich den letzten Post geschrieben hab^^

  3. #63
    Wenn du ihn posten knntest knnte man dir helfen. Es gibt ja mehrere Ringmen Skripts.

  4. #64

    Users Awaiting Email Confirmation

    Der, der im Post von Jerome_Denis_andre drin is^^

  5. #65
    Markier doch nochmal bitte Line 414 Fett. danke

  6. #66

    Users Awaiting Email Confirmation

    Das is die letzte line^^

  7. #67
    Kann ich dir nicht weiterhelfen... Wende dich doch mal an das RPG-Studio, da kann man dir sicher helfen.

  8. #68
    8-way und Pixel movement = MUST HAVE!

  9. #69
    Gibt es berhaupt Thread-Necro bei einem gepinnten Thread?

    Egal, ich hab jedenfalls die letzten Tage (anstatt fr meine morgige Klausur zu lernen) wieder ein wenig Lust auf Makern bekommen und dabei noch ein altes Skript auf meiner Platte entdeckt. In diesem Fall bin ich tatschlich der Meinung es ist ein "must-have", mMn insbesondere sehr ntzlich wenn man eigene Mens baut oder sonst viele eigene Window-Klassen schreiben muss.
    Zur Anmerkung, das Skript ist nicht von mir, es ist Teil eines Questlog-Skript, das ich als PDF irgendwann mal (kA mehr woher genau) runtergeladen habe. Autor ist ein gewisser Caesar, wie aber auch im Kommentarblock am Anfang des Skriptes angegeben.

    Es handelt sich dabei um eine HTML-Render Engine, wobei das HTML sicher etwas hoch gegriffen ist. Es erlaubt aber auf jedenfall diverse Formatierungen in Form von HTLM-Tags einfach im Text anzugeben. Verwendet wird es relativ einfach, indem man einfach die Funktion Bitmap#draw_html anstatt Bitmap#draw_text verwendet.(Parameter sind die gleichen)
    Das Skript:

    Die Erluterungen aus dem PDF (beinhaltet Liste der untersttzten Tags), da ich hier nur die HTML-Engine poste und nicht das ganze Questlog gibt es dadurch bedingt einige Lcken, also strt euch nicht an der Nummerierung:

  10. #70
    Bei mir klappt das "Titel-berspringen-Skript" nicht :/
    Htte da jemand ein ersatz parat?

  11. #71
    Kann man so einen Thread auch fr den VX und VX Ace machen?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhnge hochladen: Nein
  • Beitrge bearbeiten: Nein
  •