Características
Possibilidade de criar projetos com mais de 999 mapas.
Possibilidade de interligar mapas entre projetos.
Possibilidade de separar mapas do projeto por pastas.
Como usar
0 - Abra seu projeto.
1 - Cole o script acima de "Main".
2 - O seu projeto principal pode possuir no máximo 999 mapas. Após esse limite se esgotar, você precisará criar um novo projeto, e copiar o arquivo Tileset.rxdata e Scripts.rxdata do seu projeto principal, e colá-los na pasta Data deste novo projeto. Neste novo projeto, você criará os outros mapas restantes do jogo, também num limite de 999. Ao terminar, vá até a pasta Data deste projeto e copie o arquivo MapInfos.rxdata e todos os arquivos de mapa MapXXX.rxdata. Vá até a pasta Data de seu projeto principal e crie uma outra pasta com o nome de "MAP_X", onde X é um número qualquer. Dentro desta pasta, cole os arquivos que você copiou. Pronto, seu projeto principal já incorporou os mapas do outro projeto. Porém, para executar o teleporte entre um mapa do projeto principal e um mapa do novo projeto, você precisará, antes de chamar o comando de teleporte, chamar um comando de script, com "Chamar Script", e inserir o código : $game_system.map_kit = X , onde X é o mesmo número que você usou na nomeação da pasta anterior. Para fazer o contrário, ou seja, teleportar o personagem de um mapa do projeto novo para um mapa do projeto principal, você precisará, ao invés de digitar o número da pasta, digitar "nil", assim : $game_system.map_kit = nil . Por fim, você pode fazer quantos projetos novos quiser, apenas criando sempre uma nova pasta com um novo número e sempre usando o "Chamar Script" quando for fazer o teleporte entre mapas do projeto principal e dos outros projetos.
3 - Salve seu projeto.
Script
- Código:
class Game_System
attr_accessor :map_kit
end
class Game_Map
def setup(map_id)
if @main and @event_id > 0
$game_map.events[@event_id].unlock
end
@map_id = map_id
if $game_system.map_kit
@map = load_data(sprintf("Data/MAP_#$game_system.map_kit/Map%03d.rxdata", @map_id))
else
@map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
end
tileset = $data_tilesets[@map.tileset_id]
@tileset_name = tileset.tileset_name
@autotile_names = tileset.autotile_names
@panorama_name = tileset.panorama_name
@panorama_hue = tileset.panorama_hue
@fog_name = tileset.fog_name
@fog_hue = tileset.fog_hue
@fog_opacity = tileset.fog_opacity
@fog_blend_type = tileset.fog_blend_type
@fog_zoom = tileset.fog_zoom
@fog_sx = tileset.fog_sx
@fog_sy = tileset.fog_sy
@battleback_name = tileset.battleback_name
@passages = tileset.passages
@priorities = tileset.priorities
@terrain_tags = tileset.terrain_tags
@display_x = 0
@display_y = 0
@need_refresh = false
@events = {}
for i in @map.events.keys
@events[i] = Game_Event.new(@map_id, @map.events[i])
end
@common_events = {}
for i in 1...$data_common_events.size
@common_events[i] = Game_CommonEvent.new(i)
end
@fog_ox = 0
@fog_oy = 0
@fog_tone = Tone.new(0, 0, 0, 0)
@fog_tone_target = Tone.new(0, 0, 0, 0)
@fog_tone_duration = 0
@fog_opacity_duration = 0
@fog_opacity_target = 0
@scroll_direction = 2
@scroll_rest = 0
@scroll_speed = 4
end
end
class Scene_Map
def transfer_player
$game_temp.player_transferring = false
$game_map.setup($game_temp.player_new_map_id)
$game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
case $game_temp.player_new_direction
when 2
$game_player.turn_down
when 4
$game_player.turn_left
when 6
$game_player.turn_right
when 8
$game_player.turn_up
end
$game_player.straighten
$game_map.update
@spriteset.dispose
@spriteset = Spriteset_Map.new
if $game_temp.transition_processing
$game_temp.transition_processing = false
Graphics.transition(20)
end
$game_map.autoplay
Graphics.frame_reset
Input.update
end
end
○Feito por Otávio Grunje.
○Agradecimentos a LB (Correção de BUGs)
○Agradecimentos a Atoa (v2.0)