Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

 
Reply to this topicStart new topic
> How do you disable a script temporarily? (I want to temp. disable Pixel Platformer)
mariofan12
post Sep 23 2011, 01:29 PM
Post #1


Level 6
Group Icon

Group: Member
Posts: 83
Type: Artist
RM Skill: Intermediate




Hello. I'm using the Pixel Platformer Script, specifically a script where you can jump and have gravity. But the bad thing about it is, that during a cutscene, you are able to jump...So is there a way to temporarily disable a (this) script?


__________________________
A special RPG Maker VX tip!: (scroll down)
Go to the top of the page
 
+Quote Post
   
supercow
post Sep 23 2011, 03:55 PM
Post #2


Level 15
Group Icon

Group: Revolutionary
Posts: 280
Type: Artist
RM Skill: Undisclosed




you dont need to disable it, just dont let the jump ocur when window open / autostart .
somewhere on the line where theres jump_press (or something like that) put:

if $game_system.map_interpreter.running? or
$game_temp.message_window_showing
return false
end

i think thats about right happy.gif not know for sure..
Go to the top of the page
 
+Quote Post
   
mariofan12
post Sep 23 2011, 05:52 PM
Post #3


Level 6
Group Icon

Group: Member
Posts: 83
Type: Artist
RM Skill: Intermediate




I'm not really a script-er, so I'll just show you the script:

CODE
#===============================================================================
# Pixel Platformer v1.1 by G@MeF@Ce 7/10/2011 "GPLAT 1 of 2" http://www.gameface101.com
#-------------------------------------------------------------------------------
# Original Pixel Movement Script by Cogwheel from 66rpg.com
# special thanks to mr_wiggles and moghunter for RGSS support
#
# *free to use, must give credit, do not post on any other site
#==============================================================================

module G101_GPLAT
  #--------------------------------------------------------------------------
  # * configure settings
  #--------------------------------------------------------------------------

  GPLAT_DISABLE_SWITCH = 2         # switch ID to disable gravity switch
  #
  PIXEL_MOVE = true                # pixel movement & jump
  
  #SPRITE settings
  UP    = 32                       #default 32 (0 < UP < 64)
  DOWN  = 0                        #default 16 (0 < DOWN <64)
  SIDE  = 32                       #default 32 (0 < SIDE <64)
  
  #SPEED settings
  DASH_BUTTON = Input::C           # dash button
  WALK_SPEED = 4.8                 # set the walk speed
  DASH_SPEED = 5.5                 # set the dash speed
  
  #JUMP settings
  JUMP_BUTTON = Input::A           # jump button
  JUMP_SPRITE = "_jump"            # jump graphic character name suffix
  JUMP_ANIMATION_ID  = 0           # animation ID when jump
  JUMP_MAX = 100                    # power of jump
  JUMP_ADD = 4                     # height of single jump
  JUMP_SOUND = "smb_jump-small"    # Play Sound when jump
  JUMP_VOLUME = 70                 # set volume for jump sound
  JUMP_PITCH = 100                 # set the pitch for jump sound

  #AIR JUMP settings
  AIR_JUMP_VAR = 1                 # variable ID to set value for air jumps
  AIR_JUMP_ANIMATION_ID = 0        # aniamtion ID when air jump
  
end

#==============================================================================
# Game_Player
#==============================================================================
class Game_Player < Game_Character
  
  include G101_GPLAT
                    
  #--------------------------------------------------------------------------
  # ● public instance variables
  #--------------------------------------------------------------------------
  attr_reader   :event                    
  attr_accessor :move_speed              
  #--------------------------------------------------------------------------
  # ● update
  #--------------------------------------------------------------------------
  alias :update_original :update
  def update

    @walk  = WALK_SPEED
    @dash  = DASH_SPEED
    @event = 4
    @dot_m = PIXEL_MOVE

    unless moving? or $game_system.map_interpreter.running? or
            @move_route_forcing or $game_temp.message_window_showing
      if @walk != @dash
        if Input.press?(DASH_BUTTON)
          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 = 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
          $game_switches[GPLAT_DISABLE_SWITCH] ? move_lower_left_p : move_left_p
        when 2
          move_down_p if $game_switches[GPLAT_DISABLE_SWITCH]
        when 3
         $game_switches[GPLAT_DISABLE_SWITCH] ? move_lower_right_p : move_right_p
        when 4
          move_left_p
        when 6
          move_right_p
        when 7
         $game_switches[GPLAT_DISABLE_SWITCH] ? move_upper_left_p : move_left_p
        when 8
         move_up_p if $game_switches[GPLAT_DISABLE_SWITCH]
        when 9
         $game_switches[GPLAT_DISABLE_SWITCH] ? 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
        unless $DEBUG and Input.press?(Input::CTRL)
          if @encounter_count > 0
            @encounter_count -= 1
          end
        end
      end
    end
#-------------------------------------------------------------------------------

    if Input.press?(JUMP_BUTTON) and not $game_switches[GPLAT_DISABLE_SWITCH]
      @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 <= $game_variables[AIR_JUMP_VAR]
        
        if @twojump > 0
           $game_player.animation_id = AIR_JUMP_ANIMATION_ID
         elsif
           $game_player.animation_id = JUMP_ANIMATION_ID
         end

        @apassed = true
        @jumpnow = JUMP_MAX
        @twojump += 1

   $game_system.se_play(RPG::AudioFile.new(JUMP_SOUND, JUMP_VOLUME, JUMP_PITCH))
      else
        @jumpnow += 3        
      end
    else
      @apassed = false
    end
#-------------------------------------------------------------------------------
    if not $game_switches[GPLAT_DISABLE_SWITCH]
      @jumpnow -= 10
      if @jumpnow < 0
        actor = $game_party.actors[0]
        @character_name = actor.character_name #change graphic back to normal
        @jumpnow = [@jumpnow, -JUMP_MAX].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
        actor = $game_party.actors[0]
        @character_name = actor.character_name + JUMP_SPRITE#change to jump graphic
        @jumpnow = [@jumpnow, JUMP_MAX].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
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------
  def initialize
    @jumpnow = 0
    @twojump = 0
    @apassed = false
    @revise_x = 0
    @revise_y = 0
    @move == false
    super
  end
  #--------------------------------------------------------------------------
  # ● moving?
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● moving_a?
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● update (jump)
  #--------------------------------------------------------------------------
  def update_jump

    @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
  #--------------------------------------------------------------------------
  # ● move_type custom
  #--------------------------------------------------------------------------
  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]

      if command.code == 0
        if @move_route.repeat
          @move_route_index = 0
        end

        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

        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  
          turn_right_90
        when 21  
          turn_left_90
        when 22  
          turn_180
        when 23  
          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  
          $game_switches[command.parameters[0]] = true
          $game_map.need_refresh = true
        when 28  
          $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  
          @walk_anime = true
        when 32  
          @walk_anime = false
        when 33  
          @step_anime = true
        when 34  
          @step_anime = false
        when 35  
          @direction_fix = true
        when 36  
          @direction_fix = false
        when 37  
          @through = true
        when 38  
          @through = false
        when 39  
          @always_on_top = true
        when 40  
          @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  
          $game_system.se_play(command.parameters[0])
        when 45  
          result = eval(command.parameters[0])
        end
        @move_route_index += 1
        return
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● move_down platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● move_down aaaagq
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● down1
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● down2
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● move_left platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● left1
  #--------------------------------------------------------------------------
  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 $game_switches[GPLAT_DISABLE_SWITCH]
      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 $game_switches[GPLAT_DISABLE_SWITCH]
      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
  #--------------------------------------------------------------------------
  # ● left2
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● move_right platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● right1
  #--------------------------------------------------------------------------
  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 $game_switches[GPLAT_DISABLE_SWITCH]
      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 $game_switches[GPLAT_DISABLE_SWITCH]
      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
  #--------------------------------------------------------------------------
  # ● right2
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● move_up platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● move_up_aaaagq
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● up1
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● up2
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● low_left platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● low_right platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● up_left platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● up_right platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● check event here
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● move_on
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # ● update (anime)
  #--------------------------------------------------------------------------
  def anime_update
    if @walk_anime
      @anime_count += 1.5
    elsif @step_anime
      @anime_count += 1
    end
    if @anime_count > 18 - @move_speed * 2 #@event = 4?
      if not @step_anime and @stop_count > 0
        @pattern = @original_pattern
      else
        @pattern = (@pattern + 1) % 4
      end
      @anime_count = 0
    end
  end
  #--------------------------------------------------------------------------
  # ● moveto (x,y)
  #--------------------------------------------------------------------------
  alias :moveto_original :moveto
  def moveto(x, y)
    @revise_x = 0
    @revise_y = 0
    moveto_original(x, y)
  end
  #--------------------------------------------------------------------------
  # ● last move?
  #--------------------------------------------------------------------------
  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
#==============================================================================

class Game_Character
  
    include G101_GPLAT

  def update_move
    distance = 2 ** @move_speed
    if @x * 128 != @real_x and @y * 128 != @real_y
      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
    if @walk_anime
      @anime_count += 1.5
    elsif @step_anime
      @anime_count += 1
    end
  end
end

#==============================================================================
# Game_Event
#==============================================================================

class Game_Event < Game_Character
  def start
    if @list.size > 1
      if $game_player.event != 0
        $game_player.move_speed = $game_player.event
      end
      @starting = true
    end
  end
end
#end of script ^,^


__________________________
A special RPG Maker VX tip!: (scroll down)
Go to the top of the page
 
+Quote Post
   
Tsukihime
post Sep 24 2011, 04:55 PM
Post #4


Level 25
Group Icon

Group: Revolutionary
Posts: 560
Type: None
RM Skill: Undisclosed
Rev Points: 25




CODE
PIXEL_MOVE = true                # pixel movement & jump


I guess you have to figure out how to turn that to False.
I don't know how to access that variable though.

This post has been edited by Tsukihime: Sep 24 2011, 05:03 PM


__________________________
My Scripts
Go to the top of the page
 
+Quote Post
   
Night_Runner
post Sep 25 2011, 04:47 AM
Post #5


Level 50
Group Icon

Group: +Gold Member
Posts: 1,523
Type: Scripter
RM Skill: Undisclosed




I've tweaked the code (it only took 2 lines) so that the PIXEL_MOVE line Tsukihime mentioned now refers to a switch (default to switch #1). When that switch is true, the platformer is active, and when it is false... it's supposed to stop, but I've found that the pixel movement is still active...

CODE
#===============================================================================
# Pixel Platformer v1.1 by G@MeF@Ce 7/10/2011 "GPLAT 1 of 2" http://www.gameface101.com
#-------------------------------------------------------------------------------
# Original Pixel Movement Script by Cogwheel from 66rpg.com
# special thanks to mr_wiggles and moghunter for RGSS support
#
# *free to use, must give credit, do not post on any other site
#==============================================================================

module G101_GPLAT
  #--------------------------------------------------------------------------
  # * configure settings
  #--------------------------------------------------------------------------
  
  DISABLE_SWITCH = 1    # switch ID to disable the pixel platform

  GPLAT_DISABLE_SWITCH = 2         # switch ID to disable gravity switch
  
  PIXEL_MOVE = 1                     # pixel movement & jump
  
  #SPRITE settings
  UP    = 32                       #default 32 (0 < UP < 64)
  DOWN  = 0                        #default 16 (0 < DOWN <64)
  SIDE  = 32                       #default 32 (0 < SIDE <64)
  
  #SPEED settings
  DASH_BUTTON = Input::C           # dash button
  WALK_SPEED = 4.8                 # set the walk speed
  DASH_SPEED = 5.5                 # set the dash speed
  
  #JUMP settings
  JUMP_BUTTON = Input::A           # jump button
  JUMP_SPRITE = "_jump"            # jump graphic character name suffix
  JUMP_ANIMATION_ID  = 0           # animation ID when jump
  JUMP_MAX = 100                    # power of jump
  JUMP_ADD = 4                     # height of single jump
  JUMP_SOUND = "smb_jump-small"    # Play Sound when jump
  JUMP_VOLUME = 70                 # set volume for jump sound
  JUMP_PITCH = 100                 # set the pitch for jump sound

  #AIR JUMP settings
  AIR_JUMP_VAR = 1                 # variable ID to set value for air jumps
  AIR_JUMP_ANIMATION_ID = 0        # aniamtion ID when air jump
  
end

#==============================================================================
# Game_Player
#==============================================================================
class Game_Player < Game_Character
  
  include G101_GPLAT
                    
  #--------------------------------------------------------------------------
  # — public instance variables
  #--------------------------------------------------------------------------
  attr_reader   :event                    
  attr_accessor :move_speed              
  #--------------------------------------------------------------------------
  # — update
  #--------------------------------------------------------------------------
  alias :update_original :update
  def update

    @walk  = WALK_SPEED
    @dash  = DASH_SPEED
    @event = 4
    @dot_m = PIXEL_MOVE

    unless moving? or $game_system.map_interpreter.running? or
            @move_route_forcing or $game_temp.message_window_showing
      if @walk != @dash
        if Input.press?(DASH_BUTTON)
          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 $game_switches[@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 = 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
          $game_switches[GPLAT_DISABLE_SWITCH] ? move_lower_left_p : move_left_p
        when 2
          move_down_p if $game_switches[GPLAT_DISABLE_SWITCH]
        when 3
         $game_switches[GPLAT_DISABLE_SWITCH] ? move_lower_right_p : move_right_p
        when 4
          move_left_p
        when 6
          move_right_p
        when 7
         $game_switches[GPLAT_DISABLE_SWITCH] ? move_upper_left_p : move_left_p
        when 8
         move_up_p if $game_switches[GPLAT_DISABLE_SWITCH]
        when 9
         $game_switches[GPLAT_DISABLE_SWITCH] ? 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
        unless $DEBUG and Input.press?(Input::CTRL)
          if @encounter_count > 0
            @encounter_count -= 1
          end
        end
      end
    end
#-------------------------------------------------------------------------------

    if Input.press?(JUMP_BUTTON) and not $game_switches[GPLAT_DISABLE_SWITCH]
      @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 <= $game_variables[AIR_JUMP_VAR]
        
        if @twojump > 0
           $game_player.animation_id = AIR_JUMP_ANIMATION_ID
         elsif
           $game_player.animation_id = JUMP_ANIMATION_ID
         end

        @apassed = true
        @jumpnow = JUMP_MAX
        @twojump += 1

   $game_system.se_play(RPG::AudioFile.new(JUMP_SOUND, JUMP_VOLUME, JUMP_PITCH))
      else
        @jumpnow += 3        
      end
    else
      @apassed = false
    end
#-------------------------------------------------------------------------------
    if not $game_switches[GPLAT_DISABLE_SWITCH]
      @jumpnow -= 10
      if @jumpnow < 0
        actor = $game_party.actors[0]
        @character_name = actor.character_name #change graphic back to normal
        @jumpnow = [@jumpnow, -JUMP_MAX].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
        actor = $game_party.actors[0]
        @character_name = actor.character_name + JUMP_SPRITE#change to jump graphic
        @jumpnow = [@jumpnow, JUMP_MAX].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
  #--------------------------------------------------------------------------
  # — Initialize
  #--------------------------------------------------------------------------
  def initialize
    @jumpnow = 0
    @twojump = 0
    @apassed = false
    @revise_x = 0
    @revise_y = 0
    @move == false
    super
  end
  #--------------------------------------------------------------------------
  # — moving?
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — moving_a?
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — update (jump)
  #--------------------------------------------------------------------------
  def update_jump

    @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
  #--------------------------------------------------------------------------
  # — move_type custom
  #--------------------------------------------------------------------------
  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]

      if command.code == 0
        if @move_route.repeat
          @move_route_index = 0
        end

        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

        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  
          turn_right_90
        when 21  
          turn_left_90
        when 22  
          turn_180
        when 23  
          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  
          $game_switches[command.parameters[0]] = true
          $game_map.need_refresh = true
        when 28  
          $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  
          @walk_anime = true
        when 32  
          @walk_anime = false
        when 33  
          @step_anime = true
        when 34  
          @step_anime = false
        when 35  
          @direction_fix = true
        when 36  
          @direction_fix = false
        when 37  
          @through = true
        when 38  
          @through = false
        when 39  
          @always_on_top = true
        when 40  
          @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  
          $game_system.se_play(command.parameters[0])
        when 45  
          result = eval(command.parameters[0])
        end
        @move_route_index += 1
        return
      end
    end
  end
  #--------------------------------------------------------------------------
  # — move_down platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — move_down aaaagq
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — down1
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — down2
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — move_left platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — left1
  #--------------------------------------------------------------------------
  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 $game_switches[GPLAT_DISABLE_SWITCH]
      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 $game_switches[GPLAT_DISABLE_SWITCH]
      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
  #--------------------------------------------------------------------------
  # — left2
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — move_right platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — right1
  #--------------------------------------------------------------------------
  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 $game_switches[GPLAT_DISABLE_SWITCH]
      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 $game_switches[GPLAT_DISABLE_SWITCH]
      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
  #--------------------------------------------------------------------------
  # — right2
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — move_up platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — move_up_aaaagq
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — up1
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — up2
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — low_left platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — low_right platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — up_left platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — up_right platform
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — check event here
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — move_on
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # — update (anime)
  #--------------------------------------------------------------------------
  def anime_update
    if @walk_anime
      @anime_count += 1.5
    elsif @step_anime
      @anime_count += 1
    end
    if @anime_count > 18 - @move_speed * 2 #@event = 4?
      if not @step_anime and @stop_count > 0
        @pattern = @original_pattern
      else
        @pattern = (@pattern + 1) % 4
      end
      @anime_count = 0
    end
  end
  #--------------------------------------------------------------------------
  # — moveto (x,y)
  #--------------------------------------------------------------------------
  alias :moveto_original :moveto
  def moveto(x, y)
    @revise_x = 0
    @revise_y = 0
    moveto_original(x, y)
  end
  #--------------------------------------------------------------------------
  # — last move?
  #--------------------------------------------------------------------------
  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
#==============================================================================

class Game_Character
  
    include G101_GPLAT

  def update_move
    distance = 2 ** @move_speed
    if @x * 128 != @real_x and @y * 128 != @real_y
      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
    if @walk_anime
      @anime_count += 1.5
    elsif @step_anime
      @anime_count += 1
    end
  end
end

#==============================================================================
# Game_Event
#==============================================================================

class Game_Event < Game_Character
  def start
    if @list.size > 1
      if $game_player.event != 0
        $game_player.move_speed = $game_player.event
      end
      @starting = true
    end
  end
end
#end of script ^,^


__________________________
K.I.S.S.
Want help with your scripting problems? Upload a demo! Or at the very least; provide links to the scripts in question.

Most important guide ever: Newbie's Guide to Switches
Go to the top of the page
 
+Quote Post
   
supercow
post Sep 25 2011, 02:41 PM
Post #6


Level 15
Group Icon

Group: Revolutionary
Posts: 280
Type: Artist
RM Skill: Undisclosed




i thought just put
CODE
if $game_system.map_interpreter.running? or
$game_temp.message_window_showing
return false
end

below the
if Input.press?(JUMP_BUTTON)
but i may be wrong laugh.gif

so is the problem solved yet? if not you can ask gameface himself in his website, im there most of the time happy.gif
Go to the top of the page
 
+Quote Post
   
mariofan12
post Sep 26 2011, 02:36 PM
Post #7


Level 6
Group Icon

Group: Member
Posts: 83
Type: Artist
RM Skill: Intermediate




QUOTE (supercow @ Sep 25 2011, 03:41 PM) *
i thought just put
CODE
if $game_system.map_interpreter.running? or
$game_temp.message_window_showing
return false
end

below the
if Input.press?(JUMP_BUTTON)
but i may be wrong laugh.gif

so is the problem solved yet? if not you can ask gameface himself in his website, im there most of the time happy.gif


Thanks.It works.

EDIT: During the cutscene the player doesn't jump, but after it's over, the player jumps automatically....

This post has been edited by mariofan12: Sep 26 2011, 03:34 PM


__________________________
A special RPG Maker VX tip!: (scroll down)
Go to the top of the page
 
+Quote Post
   
supercow
post Sep 26 2011, 05:43 PM
Post #8


Level 15
Group Icon

Group: Revolutionary
Posts: 280
Type: Artist
RM Skill: Undisclosed




how about a different approach .
put :
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
else
return false
end

below the
if Input.press?(JUMP_BUTTON)
it should work yes.gif
Go to the top of the page
 
+Quote Post
   
mariofan12
post Sep 27 2011, 12:51 PM
Post #9


Level 6
Group Icon

Group: Member
Posts: 83
Type: Artist
RM Skill: Intermediate




QUOTE (supercow @ Sep 26 2011, 06:43 PM) *
how about a different approach .
put :
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
else
return false
end

below the
if Input.press?(JUMP_BUTTON)
it should work yes.gif


Don't mean to bother you, but it's not working....If you press Z or SHIFT the player does not jump during text, but after the the text, the player auto-jumps.


__________________________
A special RPG Maker VX tip!: (scroll down)
Go to the top of the page
 
+Quote Post
   
supercow
post Sep 27 2011, 06:02 PM
Post #10


Level 15
Group Icon

Group: Revolutionary
Posts: 280
Type: Artist
RM Skill: Undisclosed




thats weird, i used it on supermockup and it doesnt auto jump i was sure about it huh.gif
the only bug thing was when i talk/text come out and i keep pressing jump then when the text/event finished it would jump provided i still keep pressing jump.
Go to the top of the page
 
+Quote Post
   

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 22nd May 2013 - 05:02 PM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker