Code: |
#============================================================================== # ■ MAP # Pokemon Script Project - Krosk # 21/08/08 #----------------------------------------------------------------------------- # Scène à ne pas modifier de préférence #----------------------------------------------------------------------------- # Gestion de carte du jeu #----------------------------------------------------------------------------- # Englobe les fonctions de carte du jeu, de CS Vol, et de localisation Pokédex #----------------------------------------------------------------------------- class Game_Temp attr_accessor :map_temp attr_accessor :back_calling attr_accessor :world_map_event_checking def fly_mode return @map_temp[0] == "FLY" end end class Game_Character attr_reader :step_anime def set_map_character(character_name = self.character_name, character_hue = self.character_hue) @character_name = character_name @character_hue = character_hue end def set_through(state = true) @through = state end def set_step_anime(state = true) @step_anime = state end def set_opacity(value) @opacity = value end def set_direction_fix @direction_fix = true end def set_move_speed(value) @move_speed = value end def set_direction(value = 2) @direction = value end end class Game_Player < Game_Character def check_world_map unless moving? or $game_map.map_id != POKEMON_S::_WMAPID if $game_temp.world_map_event_checking $scene.clear_map_window $game_temp.world_map_event_checking = false for event in $game_map.events.values if event.x == @x and event.y == @y $scene.refresh_map_window(event) end end end end end end class Scene_Map def initialize_map_window @map_window = Window_Base.new(320, 385, 300, 76) @map_window.active = true @map_window.visible = true @map_window.contents = Bitmap.new(300-32, 76-32) @map_window.contents.font.name = $fontface @map_window.contents.font.size = $fontsize @map_window.contents.font.color = Color.new(0, 0, 0) @map_window.z = 50000 clear_map_window $game_temp.world_map_event_checking = true end def refresh_map_window(event) #clear_map_window map_zone = event.event.name.split('/')[0].to_i if $data_zone[map_zone] != nil zone_name = $data_zone[map_zone][0] else zone_name = "" end if $game_player.screen_x > 288 and $game_player.screen_y > 353 @map_window.y = 20 else @map_window.y = 385 end @map_window.visible = true @map_window.contents.draw_text(0, 0, 300-32, 76-32, zone_name, 1) @map_window.update end def clear_map_window if @map_window != nil @map_window.visible = false @map_window.contents.clear @map_window.update end end def call_back_world_map Graphics.freeze $game_player.straighten @map_window.dispose $game_temp.back_calling = false $game_system.se_play($data_system.cancel_se) $game_temp.player_new_map_id = $game_temp.map_temp[2] $game_temp.player_new_x = $game_temp.map_temp[3] $game_temp.player_new_y = $game_temp.map_temp[4] $game_temp.player_new_direction = $game_temp.map_temp[5] $game_player.set_map_character($game_temp.map_temp[6], $game_temp.map_temp[7]) $game_player.set_step_anime($game_temp.map_temp[8]) $game_system.menu_disabled = $game_temp.map_temp[9] POKEMON_S::_MAPLINK = $game_temp.map_temp[10] $game_map.setup($game_temp.player_new_map_id) $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y) $game_player.set_direction($game_temp.player_new_direction) #$game_temp.player_transferring = true #$game_temp.transition_processing = true #$game_temp.transition_name = "" if $game_temp.map_temp[0] == "VIEW" or $game_temp.map_temp[0] == "FLY" $game_map.autoplay $game_map.update $scene = Scene_Map.new elsif $game_temp.map_temp[0] == "PKDX" $scene = POKEMON_S::Pokemon_Detail.new($game_temp.map_temp[11], $game_temp.map_temp[12], 1) end end def initialize_world_map if $game_temp.map_temp[2] return end $game_temp.map_temp[1] = true map_id = $game_temp.map_temp[2] map_zone = $data_mapzone[map_id][0] $game_system.menu_disabled = true found = false if $game_temp.map_temp[0] == "VIEW" or $game_temp.map_temp[0] == "FLY" for element in $game_map.events.values # Pre-process array_tag = element.event.name.split('/') # Position du joueur if array_tag.include?(map_zone.to_s) and not array_tag.include?("*") found = [element.x, element.y] end # Character dummy du joueur if array_tag.include?('~') actor_character = element end element.set_through end end # --------------------------------------------------------- if $game_temp.map_temp[0] == "PKDX" pokemon_id = $game_temp.map_temp[11] for element in $game_map.events.values # Pre-process array_tag = element.event.name.split('/') element.set_through # Position du joueur if array_tag.include?(map_zone.to_s) and not array_tag.include?("*") found = [element.x, element.y] end # Character dummy du joueur if array_tag.include?('~') actor_character = element end # Pokédex if POKEMON_S::Pokemon_Info.where(pokemon_id).include?(array_tag[0].to_i) element.set_opacity(255) element.set_direction_fix element.set_step_anime element.set_move_speed(6) end end end if found actor_character.set_map_character($game_player.character_name, $game_player.character_hue) actor_character.moveto(found[0], found[1]) actor_character.set_through $game_player.moveto(found[0], found[1]) end initialize_map_window $game_player.set_step_anime $game_player.set_map_character("MAP.PNG", 0) end end class Interpreter def call_world_map(mode = "VIEW") $game_temp.map_temp = [mode, false, $game_map.map_id, $game_player.x, $game_player.y, $game_player.direction, $game_player.character_name, $game_player.character_hue, $game_player.step_anime, $game_system.menu_disabled, POKEMON_S::_MAPLINK] $game_temp.player_new_map_id = POKEMON_S::_WMAPID $game_temp.player_transferring = true Graphics.freeze $game_temp.transition_processing = true $game_temp.transition_name = "" POKEMON_S::_MAPLINK = false end alias carte_du_monde call_world_map def call_back_world_map $scene.call_back_world_map end alias retour call_back_world_map end |
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 = "Pkm #{sprintf('%03d', @id)}.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 = "Pkm #{sprintf('%03d', @id)}.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 : 0) new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0) 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 |