Group: Member
Posts: 16
Type: Mapper
RM Skill: Advanced
QUOTE (Fain @ Feb 13 2010, 12:58 PM)
Hey, how do you make that actors following you can do stuff in an event?
As in can you make someone do something in an event then when it's done keeping following you?
Anytime i do "scenes" (i guess you could call them), i usually use a separate map.
So, (since ill now be using this script) here's what i would do:
do a fadout and remove everyone from your party (but the main character, obviously) then transport your character to the cutscene that's going to take place. dont forget to fade in as well. when i do a scene, i use events to make the other character npcs, obviously. once the scene is over, follow the same steps (fade out, add your characters back to the party, transport back to the 'normal' map and fade back in)
it sounds like more work than it needs to be, i realize, but tha's just the way i do it. *shrug*
Group: Member
Posts: 1
Type: None
RM Skill: Skilled
Um i need help...I have the caterpillar script and when i add a member to my party They do get added to my party but they don't show up in the caterpillar Any Help?
Group: Member
Posts: 3
Type: Mapper
RM Skill: Beginner
When I inserted the script and playtested my game it said "Script 'Caterpillar' line 129: NoMethodError occured . undefined method each' for nil:NilClass"
Group: Member
Posts: 91
Type: Developer
RM Skill: Masterful
Try using Wortana's caterpillar script. It is better than Tricksters, but it does have a bug if you save then load the caterpillar characters they will not dispose. I will post it up here later with a fix probably.
This post has been edited by Helladen: Jul 15 2010, 03:58 PM
Group: Member
Posts: 2
Type: None
RM Skill: Beginner
QUOTE (Helladen @ Jul 15 2010, 07:58 PM)
Try using Wortana's caterpillar script. It is better than Tricksters, but it does have a bug if you save then load the caterpillar characters they will not dispose. I will post it up here later with a fix probably.
I tried using that script, too. It also told me that I had an 'undefined superclass', being my game character.
I'm just not sure why exactly the character is undefined.
This post has been edited by air_con23: Jul 16 2010, 07:37 AM
I really love this script, but there is a problem that I am not sure if you can fix. If you walk through the tall grass tile in the RTP the main character will be slightly covered with it like they are supposed to be, but all of the others aren't. Is there a way to fix that? Thanks.
Group: Member
Posts: 23
Type: Event Designer
RM Skill: Skilled
HI guys,
I'm having a problem with this script and Anaryus AntiLag Script.
When I put the Caterpillar script above main it's working fine but something odd happens: after I get transfered into another map the the square where I appear is "occupied" and I can't step a second time on it (like there is a invisible event with the same priority as the player) which is pretty annoying because I can't go back if the path is only 1 square wide.
ANd if I put the AntiLag Script above Main then the Caterpillar doesn't work.
Is there a way to turn them off ? Like if you talk to someone inportant in the game I dont want the other characters behind you, is there a way to make them be like next to you something? I have that problem always that's why I don't use caterpillar scripts
Group: Member
Posts: 23
Type: Event Designer
RM Skill: Skilled
@ elfyelf
I have solved it like this:
- turn the caterpillarswitch on (makes follower disapear) - turn a another switch on (for example "important talk #1") - make empty events somewhere you like it which will change the grafic once "important talk #1" is on - when the talk is over do the reverse
This post has been edited by AlyxO: Aug 2 2010, 02:48 PM
- turn the caterpillarswitch on (makes follower disapear) - turn a another switch on (for example "important talk #1") - make empty events somewhere you like it which will change the grafic once "important talk #1" is on - when the talk is over do the reverse
I am trying to do the same thing, but I am not sure what caterpillar switch you are talking about. I ended up just making a blank event and when I want the cutscene to happen, I change the graphic for the event to the character in your party.
Group: Member
Posts: 23
Type: Event Designer
RM Skill: Skilled
@PJammaz
its the right way to start but then you will probably end up having your partymembers twice on the screen. one from the caterpillar and one from the new blank event. therefore you'll have to turn the caterpillar off. And turning on and off happens trough the the switch which you have assigned the caterpillar to. normally it should be "control switch 2". if youre not sure which one to turn on or off then look inside the script. it should be written in the first couple of lines. If this switch is off then the partymembers are visible If its on then the caterpillar is not visible.
Group: Member
Posts: 1
Type: Event Designer
RM Skill: Beginner
I... have a problem... when ever I add a new party member, they dont show up. As in, when I use this, when I add a member to my party, they dont follow me on screen
This post has been edited by sonicspeed22: Aug 19 2010, 06:00 PM
Group: Member
Posts: 7
Type: Developer
RM Skill: Intermediate
QUOTE (Frousteleous @ Feb 14 2010, 10:44 PM)
QUOTE (Fain @ Feb 13 2010, 12:58 PM)
Hey, how do you make that actors following you can do stuff in an event?
As in can you make someone do something in an event then when it's done keeping following you?
Anytime i do "scenes" (i guess you could call them), i usually use a separate map.
So, (since ill now be using this script) here's what i would do:
do a fadout and remove everyone from your party (but the main character, obviously) then transport your character to the cutscene that's going to take place. dont forget to fade in as well. when i do a scene, i use events to make the other character npcs, obviously. once the scene is over, follow the same steps (fade out, add your characters back to the party, transport back to the 'normal' map and fade back in)
it sounds like more work than it needs to be, i realize, but tha's just the way i do it. *shrug*
Have you tried turning off the switch that it uses? i'm only just getting to grips with this script but by far it is incredibly good. from what i've read through (i read every, yes every post other then the meaningless ones, just to be sure) when the switch its using is ON the catapillar effect is on, what happens when the switch is OFF?
currently im just too busy trying to fix a bug so i cant test my theory at the moment but otherwise please tell me the results. and if this is a mojor bump please forgive me
Group: Member
Posts: 3
Type: Mapper
RM Skill: Beginner
QUOTE (Diedrupo @ Jan 19 2008, 02:55 PM)
This is a quick modification of Trickster's caterpillar script to make it work in RMVX. Just copy and paste and add somewhere above Main. UPDATE: I have updated the script to fix the dash problem.
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########### ########### ###########
Posted with Trickster's permission. Please give him credit if you use this script (even though I made the RMVX modifications, it is still his work).
Screenshot of it in action:
NOTE: I noticed that the CODEBOX tag messed the formatting of the script up, so I uploaded a text file attachment with the script as well.
I got an error on line 137 :NoMethodError occured. undefined method 'each' for nil: nilClass What should i do?
Group: Member
Posts: 37
Type: None
RM Skill: Beginner
Wonderful script! I'm having no troubles with it ^-^
QUOTE (Shibuyah @ May 3 2008, 11:49 AM)
Hi, before I say anything, I'm going to let you know that this isn't a complaint.^^ I was just curious if it's possible to make the other party members have a reflection in the water with 'TDS Sprite reflect' script? Thanks in advance!^^
I was actually wondering this too, and I see he didn't really get a response.
I found other reflection script that is compatible with Trickster Caterpillar, but it was made for XP and I'm having trouble using it: http://save-point.org/showthread.php?tid=2766