Larryhazard Posted March 19, 2011 Share Posted March 19, 2011 (edited) Ho cercato nel forum il Caterpillar script, ma non sono riuscito a trovarlo.Così l'ho cercato su google, e l'ho trovato in questo sito. Caterpillar Script Autore: Reone662Descrizione: Lo script mostra i personaggi del party nella mappa che seguono il personaggio principale.Istruzioni per l'uso: Aprite una nuova classe sopra il Main e incollate questo # train_actor =begin Caterpillar walking script Copyright © 2005 fukuyama This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA [url="http://www.gnu.org/licenses/lgpl.html"]http://www.gnu.org/licenses/lgpl.html[/url] [url="http://www.opensource.gr.jp/lesser/lgpl.ja.html"]http://www.opensource.gr.jp/lesser/lgpl.ja.html[/url] =end # Config.rb #============================================================================== # ■ Train_Actor::Config #------------------------------------------------------------------------------ # Caterpillar movement of actor is carried out on map #============================================================================== module Train_Actor # ●Switch setup for transparent status # When true, switch control is used # TRANSPARENT_SWITCH = true TRANSPARENT_SWITCH = false # ●Switch number for transparent status # When TRANSPARENT_SWITCH is true, transparency will be activated when the switch of this number is on TRANSPARENT_SWITCHES_INDEX = 20 # ●Maximum number of actors # There will be support for a large number of people in a party in the future... TRAIN_ACTOR_SIZE_MAX = 4 # Constants DOWN_LEFT = 1 DOWN_RIGHT = 3 UP_LEFT = 7 UP_RIGHT = 9 JUMP = 5 end # rgss # Spriteset_Map_Module.rb #============================================================================== # ■ Spriteset_Map_Module #------------------------------------------------------------------------------ # Caterpillar movement of actor is carried out on map #============================================================================== module Train_Actor module Spriteset_Map_Module def setup_actor_character_sprites? return @setup_actor_character_sprites_flag != nil end def setup_actor_character_sprites(characters) if !setup_actor_character_sprites? for character in characters.reverse @character_sprites.unshift( Sprite_Character.new(@viewport1, character) ) end @setup_actor_character_sprites_flag = true end end end end class Spriteset_Map include Train_Actor::Spriteset_Map_Module end # Scene_Map_Module.rb #============================================================================== # ■ Scene_Map_Module #------------------------------------------------------------------------------ # Caterpillar movement of actor is carried out on map #============================================================================== module Train_Actor module Scene_Map_Module def setup_actor_character_sprites(characters) @spriteset.setup_actor_character_sprites(characters) end end end class Scene_Map include Train_Actor::Scene_Map_Module end # Game_Party_Module.rb #============================================================================== # ■ Game_Party_Module #------------------------------------------------------------------------------ # Caterpillar movement of actor is carried out on map #============================================================================== module Train_Actor module Game_Party_Module attr_reader :characters def actors_dead? for actor in actors if actor.dead? return true end end return false end def update_party_order if not actors_dead? return actors end alive_actors = [] dead_actors = [] for actor in actors if actor.dead? dead_actors.push actor else alive_actors.push actor end end return alive_actors + dead_actors end def setup_actor_character_sprites if @characters.nil? @characters = [] for i in 1 ... TRAIN_ACTOR_SIZE_MAX @characters.push(Game_Party_Actor.new) end end setup_actors = update_party_order for i in 1 ... TRAIN_ACTOR_SIZE_MAX @characters[i - 1].setup(setup_actors[i]) end if $scene.class.method_defined?('setup_actor_character_sprites') $scene.setup_actor_character_sprites(@characters) end end def update_party_actors update_party_order setup_actor_character_sprites transparent = $game_player.transparent if transparent == false if TRANSPARENT_SWITCH transparent = $game_switches[TRANSPARENT_SWITCHES_INDEX] end end for character in @characters character.transparent = transparent character.move_speed = $game_player.move_speed character.step_anime = $game_player.step_anime 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 move_list_setup end def move_party_actors if @move_list == nil @move_list = [] move_list_setup 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 move_list_setup for i in 0 .. TRAIN_ACTOR_SIZE_MAX @move_list[i] = nil 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 end class Game_Party include Train_Actor::Game_Party_Module end # Game_Player_Module.rb #============================================================================== # ■ Game_Player_Module #------------------------------------------------------------------------------ # Caterpillar movement of actor is carried out on map #============================================================================== module Train_Actor module Game_Player_Module attr_reader :move_speed attr_reader :step_anime def update_party_actors $game_party.update_party_actors $game_party.actors.each do |actor| if actor.dead? next end @character_name = actor.character_name @character_hue = actor.character_hue break end end def update update_party_actors super end def moveto( x, y ) $game_party.moveto_party_actors( x, y ) super( 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 # When possible to move from down→left or from left→down 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 # When possible to move from down→right or from right→down 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 # When possible to move from up→left or from left→up 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 # When possible to move from up→right or from right→up 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 coordinates are calculated new_x = @x + x_plus new_y = @y + y_plus # When addition values are (0,0), it is possible to jump to the destination 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 end end class Game_Player include Train_Actor::Game_Player_Module end # Game_Event_Module.rb #============================================================================== # ■ Game_Event_Module #------------------------------------------------------------------------------ # Caterpillar movement of actor is carried out on map #============================================================================== module Train_Actor module Game_Event_Module #-------------------------------------------------------------------------- # ● Judgement determined # x : X coordinates # y : Y coordinates # d : Direction (0,2,4,6,8) ※ 0 = Checks if all directions are not able to be passed (for a jump) # return : Passing is impossible (false), possible (true) #-------------------------------------------------------------------------- def passable?(x, y, d) result = super(x, y, d) if result # New coordinates are searched for new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0) new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0) # Loops for actor in train for actor in $game_party.characters # When displayed if not actor.character_name.empty? # When actor's coordinates correspond to the destination if actor.x == new_x and actor.y == new_y # When event if self != $game_player # Passing is impossible return false end end end end end return result end end end class Game_Event include Train_Actor::Game_Event_Module end # Game_Party_Actor.rb #============================================================================== # ■ Game_Party_Actor #------------------------------------------------------------------------------ # Caterpillar movement of actor is carried out on map #============================================================================== module Train_Actor class Game_Party_Actor < Game_Character attr_writer :move_speed attr_writer :step_anime def initialize super() @through = true end def setup(actor) # The file name and hue of the character are set if actor != nil and (not actor.dead?) # When dead, it is erased for the time being... @character_name = actor.character_name @character_hue = actor.character_hue else @character_name = "" @character_hue = 0 end # Opacity and blending method are initialized @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 #-------------------------------------------------------------------------- # ● Move down # turn_enabled : Flag that permits direction change on the spot #-------------------------------------------------------------------------- def move_down(turn_enabled = true) # Face down if turn_enabled turn_down end # When possible to pass if passable?(@x, @y, Input::DOWN) # Face down turn_down # Update coordinates @y += 1 end end #-------------------------------------------------------------------------- # ● Move left # turn_enabled : Flag that permits direction change on the spot #-------------------------------------------------------------------------- def move_left(turn_enabled = true) # Face left if turn_enabled turn_left end # When possible to pass if passable?(@x, @y, Input::LEFT) # Face left turn_left # Update coordinates @x -= 1 end end #-------------------------------------------------------------------------- # ● Move right # turn_enabled : Flag that permits direction change on the spot #-------------------------------------------------------------------------- def move_right(turn_enabled = true) # Face right if turn_enabled turn_right end # When possible to pass if passable?(@x, @y, Input::RIGHT) # Face right turn_right # Update coordinates @x += 1 end end #-------------------------------------------------------------------------- # ● Move up # turn_enabled : Flag that permits direction change on the spot #-------------------------------------------------------------------------- def move_up(turn_enabled = true) # Face up if turn_enabled turn_up end # When possible to pass if passable?(@x, @y, Input::UP) # Face up turn_up # Update coordinates @y -= 1 end end #-------------------------------------------------------------------------- # ● Move lower left #-------------------------------------------------------------------------- def move_lower_left # When no direction fixation unless @direction_fix # Turn left when facing right, turn down when facing up @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction) end # When possible to move from down→left or from left→down 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)) # Update coordinates @x -= 1 @y += 1 end end #-------------------------------------------------------------------------- # ● Move lower right #-------------------------------------------------------------------------- def move_lower_right # When no direction fixation unless @direction_fix # Turn right when facing left, turn down when facing up @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction) end # When possible to move from down→right or from right→down 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)) # Update coordinates @x += 1 @y += 1 end end #-------------------------------------------------------------------------- # ● move upper left #-------------------------------------------------------------------------- def move_upper_left # When no direction fixation unless @direction_fix # Turn left when facing right, turn up when facing down @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction) end # When possible to move from up→left or from left→up 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)) # Update coordinates @x -= 1 @y -= 1 end end #-------------------------------------------------------------------------- # ● move upper right #-------------------------------------------------------------------------- def move_upper_right # When no direction fixation unless @direction_fix # Turn right when facing left, turn up when facing down @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction) end # When possible to move from up→right or from right→up 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)) # Update coordinates @x += 1 @y -= 1 end end end end Bugs e Conflitti Noti: Per quanto ne so, nessuno. Edited April 27, 2013 by Dilos Script monoriga sistemato. Citazioni varie: "Ah, noi del 2000, avevamo Twilight, Justin Bieber, siamo stati i primi su facebook, quanto siamo fighi noi, altro che questi ragazzini del 2020 che si drogano con la realtà virtuale via AmuSphere o usano il teletrasporto invece di andare in motorino come facevamo noi." << Se un uomo è questo il giorno, e la mia ascia.>>Meo Verrocchio <<Not a lot of people know what it feels like to be angry, in your bones. I mean, they understand, foster parents, everybody understands, for awhile. Then they want the angry little kid to do something he knows he can't do, move on. So after awhile they stop understanding.>> «boia ma c'avete una bella faccia a dire che il metal è una truffa! Ma se da un pò di tempo a questa parte non fate altro che rompere il cazzo ai poveri ascoltatori onesti di musica brutta che vorrebbero solo esser lasciati n pace mentre sragionate dello sghoegaze e dei vostri trend da finocchi. A me pare che aa vera truffa sono i nerd che non hanno mai sentito un disco di ozzy osbourne o che fino a l'anno scorso non avevano presente nemmeno una canzone dei black sabbath ma che ora incensano gli earth e i gli sleep perchè va di moda il doom sulle riviste fiche. Questa sì che è gente che mi fa incazzare. I metallari panzoni che ascoltano il viching invece mi fanno al più tenerezza nella loro sfiga.Bravi andate tutti a parlare di come son fenomeni i boris perché fanno i dischi con merzbow e "OH MIO DIO COME SONO SPERIMENTALI\RIBELLICHIC" però mi raccomando continuate a pensare che i death sono doom e che slogun è uno che suona con giuliano palma.Se c'è qualcuno che magari come me con certe cose metal ci è cresciuto spero che detesterà quanto me questa tendenza di trovare gruppi metal giusti da rivalutare perché c'hanno influenze funky\trip hop\ska e quindi sono geni della sperimentazione e tardi panzoni che fanno semplicemente la loro musica e non si meritano nulla visto che non c'hanno la copertina su blow up.L'unica cosa che vi meritate è zingales.» <<It’s bullshit like “Oh man, you’re a geek now, but just bear with it! Once you’re outta high school away from all these jocks you’re gonna RUN SHIT” that makes the veins in my forehead want to be outside of my fucking skin. Most people quickly realize that life is not a movie sometime shortly after high school or college. Many geeky, nerdy people do not because we have Special Snowflake Syndrome. We’re different or told that we’re different and we think that somehow things will balance out cosmically. We’ll get the girl or guy or anime body pillow. We’ll have the money and success. We’ll be the ones who are happy. And that will happen because…well, we had a rough time in the beginning so it will equal out cuz…magic! What you need to do is take off your “The Geek Shall Inherit the Earth” tshirt, put a bar of soap in it, twist it up, and then beat your fucking face in with it. You will not be handed anything because you were awkward and quirky growing up. Well, unless you’re a girl with that highly marketable Felicia Day-quirk… then you might get to date a dickhead for a year or two and more followers on Instagram than your male counterpart of equal or lesser value.>> Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now