Code: |
#============================================================================== # ■ Follow Me Pokémon # par Brendan75,modifié par Isomir #----------------------------------------------------------------------------- # Rend le premier pokémon de l'équipe visible sur la map. #============================================================================== PKM_TRANSPARENT_SWITCHES = 50 # Index de l'interrupteur pour rendre invisible PKM_SURF_SWITCHES = 51 # Index de l'interrupteur à activer quand vous surfez class Follower_Pkm < Game_Character include POKEMON_S def initialize super() @through = true @step_anime = true @id = 0 @shiney = false @type = false end def update if $pokemon_party.size != 0 @id = $pokemon_party.actors[0].id @shiney = $pokemon_party.actors[0].shiny if @shiney if $game_switches[PKM_SURF_SWITCHES] == false if $data_pokemon[@id][7][4].include?(12) string = "" else #if @id == 72 or @id == 73 or @id == 86 or @id == 87 or @id == 116 or @id == 117 or @id == 118 or @id == 119 or @id == 120 or @id == 121 or @id == 129 or @id == 130 or @id == 131 or @id == 170 or @id == 171 or @id == 211 or @id == 222 or @id == 223 or @id == 318 or @id == 319 or @id == 320 or @id == 321 or @id == 349 or @id == 350 or @id == 363 or @id == 364 or @id == 365 or @id == 366 or @id == 367 or @id == 368 or @id == 369 or @id == 370 or @id == 382 or @id == 456 or @id == 457 or @id == 458 # #else string = "PKMN/{sprintf('%03d', @id)}s_0.png" end else if $data_pokemon[@id][7][4].include?(2) #if @id == 72 or @id == 73 or @id == 86 or @id == 87 or @id == 116 or @id == 117 or @id == 118 or @id == 119 or @id == 120 or @id == 121 or @id == 129 or @id == 130 or @id == 131 or @id == 170 or @id == 171 or @id == 211 or @id == 222 or @id == 223 or @id == 318 or @id == 319 or @id == 320 or @id == 321 or @id == 349 or @id == 350 or @id == 363 or @id == 364 or @id == 365 or @id == 366 or @id == 367 or @id == 368 or @id == 369 or @id == 370 or @id == 382 or @id == 456 or @id == 457 or @id == 458 string = "PKMN/#{sprintf('%03d', @id)}s_0.png" else string = "" end end else if $game_switches[PKM_SURF_SWITCHES] == false if $data_pokemon[@id][7][4].include?(12) string = "" else #if @id == 72 or @id == 73 or @id == 86 or @id == 87 or @id == 116 or @id == 117 or @id == 118 or @id == 119 or @id == 120 or @id == 121 or @id == 129 or @id == 130 or @id == 131 or @id == 170 or @id == 171 or @id == 211 or @id == 222 or @id == 223 or @id == 318 or @id == 319 or @id == 320 or @id == 321 or @id == 349 or @id == 350 or @id == 363 or @id == 364 or @id == 365 or @id == 366 or @id == 367 or @id == 368 or @id == 369 or @id == 370 or @id == 382 or @id == 456 or @id == 457 or @id == 458 # #else string = "PKMN/#{sprintf('%03d', @id)}_0.png" end else if $data_pokemon[@id][7][4].include?(2) #if @id == 72 or @id == 73 or @id == 86 or @id == 87 or @id == 116 or @id == 117 or @id == 118 or @id == 119 or @id == 120 or @id == 121 or @id == 129 or @id == 130 or @id == 131 or @id == 170 or @id == 171 or @id == 211 or @id == 222 or @id == 223 or @id == 318 or @id == 319 or @id == 320 or @id == 321 or @id == 349 or @id == 350 or @id == 363 or @id == 364 or @id == 365 or @id == 366 or @id == 367 or @id == 368 or @id == 369 or @id == 370 or @id == 382 or @id == 456 or @id == 457 or @id == 458 string = "PKMN/#{sprintf('%03d', @id)}_0.png" else string = "" end end end if @character_name != string @character_name = string @character_hue = 0 @opacity = 255 @blend_type = 0 end if @opacity != ($game_switches[PKM_TRANSPARENT_SWITCHES] ? 0 : 255) @opacity = ($game_switches[PKM_TRANSPARENT_SWITCHES] ? 0 : 255) end else @character_name = "" end self.move_speed = $game_player.move_speed super 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 def check_event_trigger_touch(x, y) end def passable?(x, y, d) new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 1) new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 1) unless $game_map.valid?(new_x, new_y) return false end if @through return true end unless $game_map.passable?(x, y, d, self) return false end unless $game_map.passable?(new_x, new_y, 10 - d) return false end for event in $game_map.events.values if event.x == new_x and event.y == new_y unless event.through if self != $game_player return false end if event.character_name != "" return false end end end end return true end end #----------------------------------------------------------------------------- # ● Spriteset Map #----------------------------------------------------------------------------- class Spriteset_Map alias follow_me_initialize initialize def initialize follow_me_initialize @character_sprites.push(Sprite_Character.new(@viewport1, $game_party.follower_pkm)) update end end #----------------------------------------------------------------------------- # ● Scene Map #----------------------------------------------------------------------------- class Scene_Map alias follow_me_transfer_player transfer_player def transfer_player $game_party.erase_moves follow_me_transfer_player end alias follow_me_update update def update follow_me_update $game_party.follower_pkm.update end end #----------------------------------------------------------------------------- # ● Game Player #----------------------------------------------------------------------------- class Game_Player alias follow_me_moveto moveto def moveto(x, y) follow_me_moveto(x, y) $game_party.follower_pkm.moveto(x, y) end def move_down(turn_enabled = true) if passable?(@x, @y, 2) $game_party.move_party_actors $game_party.add_move_list(Input::DOWN, turn_enabled) end super(turn_enabled) end def move_left(turn_enabled = true) if passable?(@x, @y, 4) $game_party.move_party_actors $game_party.add_move_list(Input::LEFT, turn_enabled) end super(turn_enabled) end def move_right(turn_enabled = true) if passable?(@x, @y, 6) $game_party.move_party_actors $game_party.add_move_list(Input::RIGHT, turn_enabled) end super(turn_enabled) end def move_up(turn_enabled = true) if passable?(@x, @y, 8) $game_party.move_party_actors $game_party.add_move_list(Input::UP, turn_enabled) end super(turn_enabled) end end #----------------------------------------------------------------------------- # ● Game Party #----------------------------------------------------------------------------- class Game_Party include POKEMON_S attr_accessor :follower_pkm alias follow_me_initialize initialize def initialize follow_me_initialize @follower_pkm = Follower_Pkm.new @next_move = nil end def move_party_actors case @next_move.type when Input::DOWN @follower_pkm.move_down(@next_move.turn_enabled) when Input::LEFT @follower_pkm.move_left(@next_move.turn_enabled) when Input::RIGHT @follower_pkm.move_right(@next_move.turn_enabled) when Input::UP @follower_pkm.move_up(@next_move.turn_enabled) else return end erase_moves end def add_move_list(type, turn_enabled) @next_move = Move_List_Element.new(type, turn_enabled) end def erase_moves @next_move = nil end end #----------------------------------------------------------------------------- # ● Move List Element #----------------------------------------------------------------------------- class Move_List_Element attr_reader :type attr_reader :turn_enabled def initialize(type, turn_enabled) @type = type @turn_enabled = turn_enabled end end |