Group: Member
Posts: 5
Type: None
RM Skill: Beginner
I have a little problem that was probably discussed dozens of times, but I've just never found an answer. Now I'm using the caterpillar script made by Trickster as it seems to be the best working one of all that I can find, even though I think it might be long outdated. The only problem I have is that whenever I add someone new to the party, they aren't added to the line.
I tried it on both maps that were created before and after the script was started, it didn't work. I tried it on saves that were made before and after the script was added, and it didn't work. I removed other scripts to see if it was a compatibility issue. Again, it didn't work. I have even created an entirely new game, and it still didn't work.
The only time new members start following the player seems to be when they join the party on the very same map that the player starts the game on.
I'm using RPGmaker VX. Any help would be appreciated, thank you.
On a side note, I'm brand new to this site. So I apologize in advance if I'm posting in the wrong area.
Group: Local Mod
Posts: 1,250
Type: Event Designer
RM Skill: Masterful
Rev Points: 90
I am using that script as well and do not seem to run into that problem. It may be that you have an older version of the script that I do. I will post the script I'm using here and perhaps this will help you.
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########### ########### ###########
Group: Member
Posts: 5
Type: None
RM Skill: Beginner
It's still not working. Is there any script commands that I should do? I've used "$game_party.update_followers" like I've seen when other people ask about this, but it doesn't do anything.
Group: Member
Posts: 5
Type: None
RM Skill: Beginner
The only other script that I have that affects the party in any way is the integrated reserve party script by modern algebra.
Even so, I already tried to use the caterpillar script on it's own (with no other scripts being used) and I still have the problem. So I'm not sure if it's a compatibility issue.
Group: +Gold Member
Posts: 4,136
Type: Scripter
RM Skill: Undisclosed
Hrmmm... I don't run into the problem upon testing either. Whether the party member begins in the party or is added later, it is displayed. If you keep running into this issue, you need to post a demo with said issue, so we can try to fix it directly.
__________________________
FRACTURE - a SMT inspired game (demo) made by Rhyme, Karsuman and me. Weep and ragequit.