RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
Heres Caterpillar System Script

0 Members and 1 Guest are viewing this topic.

**
Rep: +0/-0Level 88
Making Warrior's Path RPG [5%]
Code: [Select]
TRAIN_ACTOR_TRANSPARENT_SWITCH = true
TRAIN_ACTOR_TRANSPARENT_SWITCHES_INDEX = 20
# ------------------------------------
DOWN_LEFT  = 1
DOWN_RIGHT = 3
UP_LEFT    = 7
UP_RIGHT  = 9
JUMP      = 5
# ------------------------------------
class Game_Party_Actor < Game_Character
# ------------------------------------
  def initialize
    super()
    @through = true
  end
# ------------------------------------
  def setup(actor)
    if actor != nil
      @character_name = actor.character_name
      @character_hue = actor.character_hue
    else
      @character_name = ""
      @character_hue = 0
    end
    @opacity = 255
    @blend_type = 0
  end
# ------------------------------------
  def screen_z(height = 0)
    if $game_player.x == @x and $game_player.y == @y
      return $game_player.screen_z(height) - 1
    end
    super(height)
  end
# ------------------------------------ 
  def move_down(turn_enabled = true)
    if turn_enabled
      turn_down
    end
    if passable?(@x, @y, Input::DOWN)
      turn_down
      @y += 1
    end
  end
# ------------------------------------
  def move_left(turn_enabled = true)
    if turn_enabled
      turn_left
    end
    if passable?(@x, @y, Input::LEFT)
      turn_left
      @x -= 1
    end
  end
# ------------------------------------
  def move_right(turn_enabled = true)
    if turn_enabled
      turn_right
    end
    if passable?(@x, @y, Input::RIGHT)
      turn_right
      @x += 1
    end
  end
# ------------------------------------
  def move_up(turn_enabled = true)
    if turn_enabled
      turn_up
    end
    if passable?(@x, @y, Input::UP)
      turn_up
      @y -= 1
    end
  end
# ------------------------------------
  def move_lower_left
    unless @direction_fix
      @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction)
    end
    if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
      (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
      @x -= 1
      @y += 1
    end
  end
# ------------------------------------
  def move_lower_right
    unless @direction_fix
      @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction)
    end
    if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
      (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
      @x += 1
      @y += 1
    end
  end
# ------------------------------------
  def move_upper_left
    unless @direction_fix
      @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction)
    end
    if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
      (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
      @x -= 1
      @y -= 1
    end
  end
# ------------------------------------
  def move_upper_right
    unless @direction_fix
      @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction)
    end
    if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
      (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
      @x += 1
      @y -= 1
    end
  end
# ------------------------------------
  def set_move_speed(move_speed)
    @move_speed = move_speed
  end
end

 


class Spriteset_Map
# ------------------------------------
  def setup_actor_character_sprites?
    return @setup_actor_character_sprites_flag != nil
  end
# ------------------------------------
  def setup_actor_character_sprites(characters)
    if !setup_actor_character_sprites?
      index_game_player = 0
      @character_sprites.each_index do |i|
        if @character_sprites[i].character.instance_of?(Game_Player)
          index_game_player = i
          break
        end
      end
      for character in characters.reverse
        @character_sprites.unshift(
          Sprite_Character.new(@viewport1, character)
        )
      end
      @setup_actor_character_sprites_flag = true
    end
  end
end

 


class Scene_Map
# ------------------------------------
  def setup_actor_character_sprites(characters)
    @spriteset.setup_actor_character_sprites(characters)
  end
end

 


class Game_Party
# ------------------------------------
  def set_transparent_actors(transparent)
    @transparent = transparent
  end
# ------------------------------------
  def setup_actor_character_sprites
    if @characters == nil
      @characters = []
      for i in 1 .. 4
        @characters.push(Game_Party_Actor.new)
      end
    end
    if @actors_chach == nil
      @actors_chach = []
    end
    if @actors_chach != @actors
      @actors_chach = @actors.clone
      for i in 1 .. 4
        @characters[i - 1].setup(actors[i])
      end
    end
    if $scene.instance_of?(Scene_Map)
      $scene.setup_actor_character_sprites(@characters)
    end
  end
# ------------------------------------
  def update_party_actors
    setup_actor_character_sprites
    transparent = $game_player.transparent
    if transparent == false
      if TRAIN_ACTOR_TRANSPARENT_SWITCH
        transparent = $game_switches[TRAIN_ACTOR_TRANSPARENT_SWITCHES_INDEX]
      else
        transparent = $game_player.transparent
      end
    end
    for character in @characters
      character.transparent = transparent
      character.set_move_speed($game_player.get_move_speed)
      character.update
    end
  end
# ------------------------------------
  def moveto_party_actors( x, y )
    setup_actor_character_sprites
    for character in @characters
      character.moveto( x, y )
    end
    if @move_list == nil
      @move_list = []
    end
    for i in 0 .. 10
      @move_list[i] = nil
    end
  end
  def move_party_actors
    if @move_list == nil
      @move_list = []
      for i in 0 .. 10
        @move_list[i] = nil
      end
    end
    @move_list.each_index do |i|
      if @characters[i] != nil
        case @move_list[i].type
          when Input::DOWN
            @characters[i].move_down(@move_list[i].args[0])
          when Input::LEFT
            @characters[i].move_left(@move_list[i].args[0])
          when Input::RIGHT
            @characters[i].move_right(@move_list[i].args[0])
          when Input::UP
            @characters[i].move_up(@move_list[i].args[0])
          when DOWN_LEFT
            @characters[i].move_lower_left
          when DOWN_RIGHT
            @characters[i].move_lower_right
          when UP_LEFT
            @characters[i].move_upper_left
          when UP_RIGHT
            @characters[i].move_upper_right
          when JUMP
            @characters[i].jump(@move_list[i].args[0],@move_list[i].args[1])
        end
      end
    end
  end

 


 class Move_List_Element
# ------------------------------------
    def initialize(type,args)
      @type = type
      @args = args
    end
    def type() return @type end
    def args() return @args end
  end
# ------------------------------------
  def add_move_list(type,*args)
    @move_list.unshift(Move_List_Element.new(type,args)).pop
  end
# ------------------------------------
  def move_down_party_actors(turn_enabled = true)
    move_party_actors
    add_move_list(Input::DOWN,turn_enabled)
  end
# ------------------------------------
  def move_left_party_actors(turn_enabled = true)
    move_party_actors
    add_move_list(Input::LEFT,turn_enabled)
  end
# ------------------------------------
  def move_right_party_actors(turn_enabled = true)
    move_party_actors
    add_move_list(Input::RIGHT,turn_enabled)
  end
# ------------------------------------
  def move_up_party_actors(turn_enabled = true)
    move_party_actors
    add_move_list(Input::UP,turn_enabled)
  end
# ------------------------------------
  def move_lower_left_party_actors
    move_party_actors
    add_move_list(DOWN_LEFT)
  end
# ------------------------------------
  def move_lower_right_party_actors
    move_party_actors
    add_move_list(DOWN_RIGHT)
  end
# ------------------------------------
  def move_upper_left_party_actors
    move_party_actors
    add_move_list(UP_LEFT)
  end
# ------------------------------------
  def move_upper_right_party_actors
    move_party_actors
    add_move_list(UP_RIGHT)
  end
# ------------------------------------
  def jump_party_actors(x_plus, y_plus)
    move_party_actors
    add_move_list(JUMP,x_plus, y_plus)
  end
end

 


module Game_Player_Module
# ------------------------------------
  def update
    $game_party.update_party_actors
    super
  end
# ------------------------------------
  def moveto( x, y )
    super
    $game_party.moveto_party_actors( x, y )
  end
# ------------------------------------
  def move_down(turn_enabled = true)
    if passable?(@x, @y, Input::DOWN)
      $game_party.move_down_party_actors(turn_enabled)
    end
    super(turn_enabled)
  end
# ------------------------------------
  def move_left(turn_enabled = true)
    if passable?(@x, @y, Input::LEFT)
      $game_party.move_left_party_actors(turn_enabled)
    end
    super(turn_enabled)
  end
# ------------------------------------
  def move_right(turn_enabled = true)
    if passable?(@x, @y, Input::RIGHT)
      $game_party.move_right_party_actors(turn_enabled)
    end
    super(turn_enabled)
  end
# ------------------------------------
  def move_up(turn_enabled = true)
    if passable?(@x, @y, Input::UP)
      $game_party.move_up_party_actors(turn_enabled)
    end
    super(turn_enabled)
  end
# ------------------------------------
  def move_lower_left
    if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
      (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
      $game_party.move_lower_left_party_actors
    end
    super
  end
# ------------------------------------
  def move_lower_right
    if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
      (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
      $game_party.move_lower_right_party_actors
    end
    super
  end
# ------------------------------------
  def move_upper_left
    if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
      (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
      $game_party.move_upper_left_party_actors
    end
    super
  end
# ------------------------------------
  def move_upper_right
    if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
      (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
      $game_party.move_upper_right_party_actors
    end
    super
  end
# ------------------------------------
  def jump(x_plus, y_plus)
    new_x = @x + x_plus
    new_y = @y + y_plus
    if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
      $game_party.jump_party_actors(x_plus, y_plus)
    end
    super(x_plus, y_plus)
  end
# ------------------------------------
 def get_move_speed
    return @move_speed
  end
end

 


class Game_Player
  include Game_Player_Module
end

 






*
Rep:
Level 102
2014 Biggest Narcissist Award2014 Biggest Forum Potato2014 Best Non-RM Creator2013 Best Game Creator (Non-RM)2013 Best IRC ChatterboxParticipant - GIAW 112012 Most Successful Troll2012 Funniest Member2012 Best Use Of Avatar and Signature space2012 Best IRC ChatterboxSecret Santa 2012 ParticipantProject of the Month winner for November 2009For being a noted contributor to the RMRK Wiki2010 Most Successful Troll2010 Biggest Forum Couch Potato2010 Best IRC Chatterbox
Blizzard posted this in the script database a long time ago.

**
Rep: +0/-0Level 88
Making Warrior's Path RPG [5%]
I couldnt find it ?.?  ;8






********
EXA
Rep:
Level 92
Pikachu on a toilet
Project of the Month winner for April 2007
This must be the "earlier" version of the caterpillar. I'll lock this topic, since the newer version is in the scripts database.

http://rmrk.net/index.php/topic,9869.0.html

You can also find a list of available scripts on this forum here:

http://rmrk.net/index.php/topic,8799.0.html

Get King of Booze for Android, for iOS, for OUYA or for Windows!
Visit our website.
You can also love/hate us on Facebook or the game itself.


Get DropBox, the best free file syncing service there is!