Age : 28 Inscrit le : 30/12/2009 Messages : 1067
| Sujet: Train Actor Sam 5 Juin 2010 - 17:51 | |
| Bonjour ! - Spoiler:
- 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 = 1 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) if @followers[0] != nil and $game_player.x == 0 x = $data_system.start_x - 1 y = $data_system.start_y @followers[0].moveto(x, y) end
if @followers[1] != nil and $game_player.x == 0 x = $data_system.start_x y = $data_system.start_y - 1 @followers[1].moveto(x, y) end
if @followers[2] != nil and $game_player.x == 0 x = $data_system.start_x y = $data_system.start_y + 1 @followers[2].moveto(x, y) end
$followers_x = [] if @followers[0].x != nil $followers_x[0] = @followers[0].x elsif @followers[1].x != nil $followers_x[1] = @followers[1].x elsif @followers[2].x != nil $followers_x[2] = @followers[2].x end @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 when 4 @followers[i].move_left when 6 @followers[i].move_right when 8 @followers[i].move_up 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 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) # 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########### ########### ###########
J'ai modifié la position des héros qui nous suivent. Ainsi, au lieu de nous suivre comme des petits chiens, ils se déplacent un peu aléatoirement ! Mais j'ai un problème u_u Plus aucune Practabilité...Ni avec les décors, ni avec les évents O_° Pourrez-vous m'aider ? Merci d'avance, Biward |
|
Poulet carnivore Lv.2
Inscrit le : 26/05/2010 Messages : 23
| Sujet: Re: Train Actor Sam 5 Juin 2010 - 20:04 | |
| Tu as utilisé la balise citation au lieu de la balise code, toute l'indentation s'est tiré, et je suis trop fatigué pour regarder ça de près.
Je pense comprendre qu'à la base ils te suivent à la case près, ce qui veut dire que toute case où ils marchent l'héros est déjà passé dessus, normal qu'il n'y ait pas de vérification de praticabilité. Il va falloir utiliser la méthode passable?(x, y) avant de les faire marcher n'importe où.
Le code que tu as posté, c'est la version originale ? J'ai cherché rand mais ça n'a rien donné. |
|
Age : 28 Inscrit le : 30/12/2009 Messages : 1067
| Sujet: Re: Train Actor Sam 5 Juin 2010 - 20:10 | |
| Non, c'est une version modifiée par moi même xD
Biward |
|
Age : 33 Inscrit le : 27/06/2008 Messages : 10881
| Sujet: Re: Train Actor Mer 9 Juin 2010 - 7:28 | |
| *mode upper ON* Ce problème est-il toujours d'actualité ? Personne pour y répondre ? |
|
Age : 28 Inscrit le : 30/12/2009 Messages : 1067
| Sujet: Re: Train Actor Mer 9 Juin 2010 - 8:42 | |
| Oui, le problème est toujours d'actualité |
|
Admindictatrice
Age : 34 Inscrit le : 27/02/2009 Messages : 2855
| Sujet: Re: Train Actor Lun 19 Juil 2010 - 6:20 | |
| *mode retrouve ses origines de femme de ménage*
Up o/ un scripteur pour aider ? |
|