(http://i.imgur.com/nQkTWYU.png)
M+ Save Event Infos
v1.0
Compativel com: RMVXAce (http://centrorpg.com/rgss3/m-save-event-infos)/XP
Compatibilidade: boa
Facilidade de uso: fácil
Lag gerado: nulo
Introdução e CaracterísticasEste script faz com que, ao trocar de mapa, todas as informações dos eventos dele sejam salvas. Assim, os eventos não voltarão para a posição original quando você voltar ao mesmo mapa. Ele também salva no arquivo de Save. Você também pode configurar os mapas que não serão afetados pelo script, assim todos os eventos estarão na posição original quando você voltar para ele.
Instruções de uso- Crie um novo script na seção "Scripts Adicionais" e cole o script abaixo lá
- Configure, se necessário, os mapas que não serão afetados pelo script. Exemplo:
SaveEventInfos_Exceptions = [1, 2, 3]
Assim, os mapas de ID 1, 2 e 3 não serão afetados pelo script.
ImagensScript não perceptível por imagens.
Script
#==============================================================================
# M+ Save Event Infos - 1.0
# Por M3T
# (31/07/2014)
#------------------------------------------------------------------------------
# Este script possibilita que as informações como posição dos eventos sejam
# salvas, e quando você sair e voltar ao mapa que estava, os eventos estarão
# do jeito que você deixou quando saiu do mapa.
#==============================================================================
module MPlus
# Coloque aqui os IDs dos mapas que não serão afetados pelo script
SaveEventInfos_Exceptions = []
end
#==============================================================================
$game_events = {}
class Game_Map
include MPlus
alias m_se_map_setup setup
def setup(map_id)
m_se_map_setup(map_id)
if $game_events[map_id] != nil && !SaveEventInfos_Exceptions.include?(map_id)
@events = $game_events[map_id]
end
end
end
class Scene_Map
alias m_transfer_player transfer_player
def transfer_player
$game_events[$game_map.map_id] = $game_map.events
m_transfer_player
end
end
class Scene_End
alias m_comm_to_title command_to_title
def command_to_title
m_comm_to_title
$game_events = {}
end
end
class Scene_Save < Scene_File
def write_save_data(file)
# Criar desenho dos Heróis para salvar
characters = []
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
characters.push([actor.character_name, actor.character_hue])
end
# Gravar desenho dos Heróis para salvar
Marshal.dump(characters, file)
# Gravar contador de Tempo de Jogo
Marshal.dump(Graphics.frame_count, file)
# Acrescentar 1 em contador de saves
$game_system.save_count += 1
# Salvar número da Magia
# Um número aleatório será selecionado cada vez que você salvar
$game_system.magic_number = $data_system.magic_number
# Gravar cada tipo de objeto do jogo
Marshal.dump($game_events, file)
Marshal.dump($game_system, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
end
end
class Scene_Load < Scene_File
def read_save_data(file)
# Ler dados dos Heróis para desenhar o arquivo de save
characters = Marshal.load(file)
# Ler o contador de Frames para obter o tempo de jogo
Graphics.frame_count = Marshal.load(file)
# Ler cada tipo de objeto do jogo
$game_events = Marshal.load(file)
$game_system = Marshal.load(file)
$game_switches = Marshal.load(file)
$game_variables = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_screen = Marshal.load(file)
$game_actors = Marshal.load(file)
$game_party = Marshal.load(file)
$game_troop = Marshal.load(file)
$game_map = Marshal.load(file)
$game_player = Marshal.load(file)
# Se o número mágico for diferente ao de quando foi salvo
# (Se uma edição foi adicionada por um editor)
if $game_system.magic_number != $data_system.magic_number
# Carregar mapa
$game_map.setup($game_map.map_id)
$game_player.center($game_player.x, $game_player.y)
end
# Atualizar membros do grupo
$game_party.refresh
end
end
Notas- Arquivos de Save antigos não funcionarão mais ao colocar esse script.
- Caso tenha mais um script que modifica o modo que o jogo salva os arquivos e estiver dando problema, me contate aqui neste tópico que eu faço os dois funcionarem juntos.