O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

M+ Save Event Infos

Iniciado por M3T, 31/07/2014 às 14:48

31/07/2014 às 14:48 Última edição: 31/07/2014 às 14:50 por M3T

M+ Save Event Infos
v1.0


Compativel com: RMVXAce/XP
Compatibilidade: boa
Facilidade de uso: fácil
Lag gerado: nulo



Introdução e Características
Este 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.



Imagens
Script 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
  def setup_events
    if $game_events[@map_id] != nil && !SaveEventInfos_Exceptions.include?(@map_id)
      @events = $game_events[@map_id]
    else
      @events = {}
      @map.events.each do |i, event|
        @events[i] = Game_Event.new(@map_id, event)
      end
    end
    @common_events = parallel_common_events.collect do |common_event|
      Game_CommonEvent.new(common_event.id)
    end
    refresh_tile_events
  end
end

class Scene_Map < Scene_Base
  alias m_pf_transfer perform_transfer
  def perform_transfer
    $game_events[$game_map.map_id] = $game_map.events
    m_pf_transfer
  end
end

class Scene_End < Scene_MenuBase
  alias m_comm_to_title command_to_title
  def command_to_title
    m_comm_to_title
    $game_events = {}
  end
end

module DataManager
  def self.make_save_contents
    contents = {}
    contents[:system]        = $game_system
    contents[:timer]         = $game_timer
    contents[:message]       = $game_message
    contents[:switches]      = $game_switches
    contents[:variables]     = $game_variables
    contents[:self_switches] = $game_self_switches
    contents[:actors]        = $game_actors
    contents[:party]         = $game_party
    contents[:troop]         = $game_troop
    contents[:map]           = $game_map
    contents[:player]        = $game_player
    contents[:events]        = $game_events
    contents
  end
  def self.extract_save_contents(contents)
    $game_system        = contents[:system]
    $game_timer         = contents[:timer]
    $game_message       = contents[:message]
    $game_switches      = contents[:switches]
    $game_variables     = contents[:variables]
    $game_self_switches = contents[:self_switches]
    $game_actors        = contents[:actors]
    $game_party         = contents[:party]
    $game_troop         = contents[:troop]
    $game_map           = contents[:map]
    $game_player        = contents[:player]
    $game_events        = contents[:events]
  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.

Por exemplo: se eu estou em um mapa e resolvo ir para outro e desse outro eu passo para outro mapa, passei em 2 mapas, se eu voltar para o primeiro mapa o script tera salvado as posições dele ou só salva as informações do mapa anterior.   :será:   
:hmm:

Citação de: Mestre R. online 31/07/2014 às 16:59
Por exemplo: se eu estou em um mapa e resolvo ir para outro e desse outro eu passo para outro mapa, passei em 2 mapas, se eu voltar para o primeiro mapa o script tera salvado as posições dele ou só salva as informações do mapa anterior.   :será:

Ele salva de todos os mapas, então sim, ele terá salvado os eventos do primeiro mapa. E se depois você voltar para o segundo ele também terá lá salvo os eventos.

cara criei uma conta aqui só para te agradecer pelo scprit kk salvou minha vida,estava fazendo muitas ganbiarras para que os eventos não voltassem a posição original mas esse scprit me poupa muito tempo
valeu msm  :wow: