Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Help with a visual armor system!

Hi, I need to know if there's any sort of visual armor system that works with a caterpillar script? Before I was using an eventing system, but then I went stupid and deleted an event page and now it doesn't work anymore and I don't remember what I did! x_x I know it was something slightly different from normally eventing visual armor though, because I have a caterpillar system and I want visual armor on all the characters like I had before...
 
Wow that really sucks but I bet if you tried and give yourself time you could redo the visual event system you had. Maybe you could make it better a second time around. Just don't give up so easily.
 
Thank you for your support Souloux, but understand that I need an actual solution for this issue and it is not only permanent, but also urgent.

Listen, mods, I understand the bumping rule. Under normal circumstances, I HAVE waited 72 hours when necessary. But I don't have 72 hours. And this probably isn't right in your eyes, because no one member should be treated differently from another. But I promised my friends a finished game on Monday. My game has been thoroughly beta tested and bugs have been worked out, I just cannot solve this tiny detail. So, I would appreciate if someone were to help out as immediately as possible, because it is important to me that I get everyone that I promised a finished game, on Monday, so that I don't come out to be a total liar. I hope that you will understand this and forgive me for my disobedience of your rules.
 
No one knows a visual armor system that works with caterpillar?^^; Well anyway, I changed alot since I deleted that event page, but here's what I have so far.....

http://img401.imageshack.us/img401/5778/eventsex7.png[/img]

Very basic, I know, just... I kept messing around with things hoping I could get it to work again^^; This part is within common events, and I placed the common event on each map in an 'invisible' event, parallel process. Then I had a second event page that I deleted on this invisible event, that was triggered by a switch and had a couple lines of eventing in it but I don't remember what. I deleted the page because one of the visual armors wouldn't work and I somehow thought that would fix it x_x;
 
Here is the caterpillar script:

Code:
class Game_Player
  #--------------------------------------------------------------------------
  # * Move Down
  #     turn_enabled : a flag permits direction change on that spot
  #--------------------------------------------------------------------------
  def move_down(turn_enabled = true)    
    super(turn_enabled)
  end
  #--------------------------------------------------------------------------
  # * Move Left
  #     turn_enabled : a flag permits direction change on that spot
  #--------------------------------------------------------------------------
  def move_left(turn_enabled = true)
    super(turn_enabled)
  end
  #--------------------------------------------------------------------------
  # * Move Right
  #     turn_enabled : a flag permits direction change on that spot
  #--------------------------------------------------------------------------
  def move_right(turn_enabled = true)
    super(turn_enabled)
  end
  #--------------------------------------------------------------------------
  # * Move up
  #     turn_enabled : a flag permits direction change on that spot
  #--------------------------------------------------------------------------
  def move_up(turn_enabled = true)
    super(turn_enabled)
  end
  #--------------------------------------------------------------------------
  # * Move Lower Left
  #--------------------------------------------------------------------------
  def move_lower_left
    super
  end
  #--------------------------------------------------------------------------
  # * Move Lower Right
  #--------------------------------------------------------------------------
  def move_lower_right
    super
  end
  #--------------------------------------------------------------------------
  # * Move Upper Left
  #--------------------------------------------------------------------------
  def move_upper_left
    super
  end
  #--------------------------------------------------------------------------
  # * Move Upper Right
  #--------------------------------------------------------------------------
  def move_upper_right
    super
  end
end

class Game_Follower < Game_Character
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader   :actor
  attr_accessor :move_speed
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(actor)
    super()
    @through = true
    @actor = actor
  end
  #--------------------------------------------------------------------------
  # * Set Actor
  #--------------------------------------------------------------------------
  def actor=(actor)
    @actor = actor
    setup
  end
  #--------------------------------------------------------------------------
  # * Setup
  #--------------------------------------------------------------------------
  def setup
    if @actor != nil      
      @character_name = $game_actors[@actor].character_name
      @character_index = $game_actors[@actor].character_index
    else
      @character_name = ""
      @character_index = 0
    end
    @opacity = 255
    @blend_type = 0
    @priority_type = 0
  end
  
  #--------------------------------------------------------------------------
  # * Screen Z
  #--------------------------------------------------------------------------
  def screen_z
    if $game_player.x == @x and $game_player.y == @y
      return $game_player.screen_z - 1
    end
    super
  end
  #--------------------------------------------------------------------------
  # * Same Position Starting Determinant (Disabled)
  #--------------------------------------------------------------------------
  def check_event_trigger_here(triggers)
    result = false
    return result
  end
  #--------------------------------------------------------------------------
  # * Front Envent Starting Determinant (Disabled)
  #--------------------------------------------------------------------------
  def check_event_trigger_there(triggers)
    result = false
    return result
  end
  #--------------------------------------------------------------------------
  # * Touch Event Starting Determinant (Disabled)
  #--------------------------------------------------------------------------
  def check_event_trigger_touch(x, y)
    result = false
    return result
  end
end

class Spriteset_Map
  alias_method :spriteset_map_create_characters, :create_characters
  def create_characters
    spriteset_map_create_characters
    $game_party.followers.each do |char|
      @character_sprites << Sprite_Character.new(@viewport1, char)
    end
  end
end

class Game_Party
  #--------------------------------------------------------------------------
  # * Constants
  #--------------------------------------------------------------------------
  MAX_SIZE = 8
  CATERPILLAR = 2
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader :followers
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias_method :trick_caterpillar_party_initialize, :initialize
  def initialize
    trick_caterpillar_party_initialize
    @followers = Array.new(MAX_SIZE - 1) {Game_Follower.new(nil)}
    @move_list = []
  end
  #--------------------------------------------------------------------------
  # * Update Followers
  #--------------------------------------------------------------------------
  def update_followers
    flag = $game_player.transparent || $game_switches[CATERPILLAR]
    @followers.each_with_index do |char, i|
      char.actor = @actors[i + 1]
      char.move_speed = $game_player.move_speed
      if $game_player.dash?
        char.move_speed += 1
      end
      char.update
      char.transparent = flag
    end
  end
  #--------------------------------------------------------------------------
  # * Move To Party 
  #--------------------------------------------------------------------------
  def moveto_party(x, y)
    @followers.each {|char| char.moveto(x, y)}
    @move_list.clear
  end
  #--------------------------------------------------------------------------
  # * Move Party 
  #--------------------------------------------------------------------------
  def move_party
    @move_list.each_index do |i|
      if @followers[i] == nil
        @move_list[i...@move_list.size] = nil
        next
      end
      case @move_list[i].type
      when 2
        @followers[i].move_down(*@move_list[i].args)
      when 4
        @followers[i].move_left(*@move_list[i].args)
      when 6
        @followers[i].move_right(*@move_list[i].args)
      when 8
        @followers[i].move_up(*@move_list[i].args)
      when 1
        @followers[i].move_lower_left
      when 3
        @followers[i].move_lower_right
      when 7
        @followers[i].move_upper_left
      when 9
        @followers[i].move_upper_right
      when 5
        @followers[i].jump(*@move_list[i].args)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Add Move List
  #--------------------------------------------------------------------------
  def update_move(type, *args)
    move_party
    @move_list.unshift(Game_MoveListElement.new(type, args))
  end
end

class Game_MoveListElement
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(type, args)
    @type = type
    @args = args
  end
  #--------------------------------------------------------------------------
  # * Type
  #--------------------------------------------------------------------------
  def type
    return @type 
  end
  #--------------------------------------------------------------------------
  # * Args
  #--------------------------------------------------------------------------
  def args
    return @args
  end
end

class Game_Player
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader :move_speed
  
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  alias_method :trick_caterpillar_player_update, :update
  def update
    $game_party.update_followers
    trick_caterpillar_player_update
  end
  #--------------------------------------------------------------------------
  # * Moveto
  #--------------------------------------------------------------------------
  alias_method :trick_caterpillar_player_moveto, :moveto
  def moveto(x, y)
    $game_party.moveto_party(x, y)
    trick_caterpillar_player_moveto(x, y)
  end
  #--------------------------------------------------------------------------
  # * Move Down
  #-------------------------------------------------------------------------- 
  alias_method :trick_caterpillar_player_move_down, :move_down
  def move_down(turn_enabled = true)
    if passable?(@x, @y+1)
      $game_party.update_move(2, turn_enabled)
    end    
    trick_caterpillar_player_move_down(turn_enabled)    
  end
  #--------------------------------------------------------------------------
  # * Move Left
  #--------------------------------------------------------------------------
  alias_method :trick_caterpillar_player_move_left, :move_left
  def move_left(turn_enabled = true)
    if passable?(@x-1, @y)
      $game_party.update_move(4, turn_enabled)
    end
    trick_caterpillar_player_move_left(turn_enabled)
  end
  #--------------------------------------------------------------------------
  # * Move Right
  #--------------------------------------------------------------------------
  alias_method :trick_caterpillar_player_move_right, :move_right
  def move_right(turn_enabled = true)
    if passable?(@x+1, @y)
      $game_party.update_move(6, turn_enabled)
    end
    trick_caterpillar_player_move_right(turn_enabled)
  end
  #--------------------------------------------------------------------------
  # * Move Up
  #--------------------------------------------------------------------------
  alias_method :trick_caterpillar_player_move_up, :move_up
  def move_up(turn_enabled = true)
    if passable?(@x, @y-1)
      $game_party.update_move(8, turn_enabled)
    end
    trick_caterpillar_player_move_up(turn_enabled)
  end
  #--------------------------------------------------------------------------
  # * Move Lower Left
  #--------------------------------------------------------------------------
  alias_method :trick_caterpillar_player_move_lower_left, :move_lower_left
  def move_lower_left
    if passable?(@x - 1, @y) and passable?(@x, @y + 1)
      $game_party.update_move(1)
    end
    trick_caterpillar_player_move_lower_left
  end
  #--------------------------------------------------------------------------
  # * Move Lower Right
  #--------------------------------------------------------------------------
  alias_method :trick_caterpillar_player_move_lower_right, :move_lower_right
  def move_lower_right
    if passable?(@x + 1, @y) and passable?(@x, @y + 1)
      $game_party.update_move(3)
    end
    trick_caterpillar_player_move_lower_right
  end
  #--------------------------------------------------------------------------
  # * Move Upper Left
  #--------------------------------------------------------------------------
  alias_method :trick_caterpillar_player_move_upper_left, :move_upper_left
  def move_upper_left
    if passable?(@x - 1, @y) and passable?(@x, @y - 1)
      $game_party.update_move(7)
    end
    trick_caterpillar_player_move_upper_left
  end
  #--------------------------------------------------------------------------
  # * Move Upper Right
  #--------------------------------------------------------------------------
  alias_method :trick_caterpillar_player_move_upper_right, :move_upper_right
  def move_upper_right
    if passable?(@x + 1, @y) and passable?(@x, @y - 1)
      $game_party.update_move(9)
    end
    trick_caterpillar_player_move_upper_right
  end
  #--------------------------------------------------------------------------
  # * Jump
  #--------------------------------------------------------------------------
  alias_method :trick_caterpillar_player_jump, :jump
  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)
      $game_party.update_move(5, x_plus, y_plus)
    end
    trick_caterpillar_player_jump(x_plus, y_plus)
  end
end###########
###########
###########
 
Well, sorry to say that I'm not an expert at RGSS(2). But I'll move this for you so other scripters can give you a hand. In the meantime, maybe you can try finding another caterpillar script? Or post a demo so we can try to help with the eventing part.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top