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.

Actors on top of Character

INN0

Member

Hello guys

So I gonna need a script for my upcoming game that gets the actors in your party to follow you like in the caterpillar script but be on top of you :) It has to be Actor 2, Actor 3, and Actor 4 and ONLY them.

I did try myself, but I couldnt really do it :(

Hope your guys can help me, I believe that it will only be an edited version of the Caterpillar script? :crazy:

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###########

###########

###########

I hope that someone can help me and i will me really grateful (?) if you help me :biggrin:
 

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