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

Event State Recorder [RGSS3]

Iniciado por Lotmaker, 11/03/2014 às 17:43

Event State Recorder
por .:Fênix:.



Descrição



Decora o estado dos eventos ao sair do mapa e ao retornar ao mesmo, esses estados são carregados. Por exemplo: se um evento se move aleatóriamente, ao você sair do mapa, a sua última posição será armazenada, e quando você retornar ela irá ser carregada. Mas não é somente a posição que é guardada, mas sim qualquer característica do evento, visível ou invisível.



Compatibilidade



RPG Maker XP e RPG Maker VX/VXA


Script



Spoiler
#===============================================================#
# * Event State Recorder                                        #
#---------------------------------------------------------------#
#   - Versão: 1.0                                               #
#   - Data  : 24 / 7 / 2011                                     #
#   - Autor : .:Fênix:.                                         #
#   - MSN   : bmotamer@hotmail.com                              #
#---------------------------------------------------------------#
#   - Descrição:                                                #
#     Decora o estado dos eventos ao sair do mapa e ao retornar #
#     ao mesmo, esses estados são carregados. Por exemplo: se um#
#     evento se move aleatóriamente, ao você sair do mapa, a sua#
#     última posição será armazenada, e quando você retornar ela#
#     irá ser carregada. Mas não é somente a posição que é guar-#
#     dada, mas sim qualquer característica do evento, visível  #
#     ou invisível                                              #
#---------------------------------------------------------------#
#   - Compatibilidade:                                          #
#     RPG Maker XP e RPG Maker VX                               #
#===============================================================#

module Event_State_Recorder
  # Ativar o script? (true / false)
  Activate = true
  # Automaticamente gravar todos os eventos, com exceção dos que
  # que tiverem o comentário abaixo (true) ou fazer o contrário:
  # não gravar nada, somente os que tiverem o comentário abaixo
  # (false)
  Automatic = true
  # Comentário que faz o que foi dito acima
  Comment = "ESR"
end

if Event_State_Recorder::Activate
  
  class Game_System
    
    attr_accessor :event_state
    
    alias event_state_recorder_1 initialize unless $@
    
    def initialize
      event_state_recorder_1
      @event_state = {}
    end
    
  end
  
  class Game_Map
    
    alias event_state_recorder_2 setup unless $@
    
    def setup(map_id)
      if @map_id != 0
        automatic = Event_State_Recorder::Automatic
        comment   = Event_State_Recorder::Comment
        events    = automatic ? @events : {}
        for i in @events.keys
          for item in @events[i].list
            if item.code == 108 && item.parameters[0] == comment
              if automatic
                events.delete(i)
              else
                events[i] = @events[i]
              end
              break
            end
          end
        end
        $game_system.event_state[@map_id] = events.empty? ? nil : Marshal.dump(events)
      end
      event_state_recorder_2(map_id)
      if $game_system.event_state[map_id] != nil
        events = Marshal.load($game_system.event_state[map_id])
        for i in events.keys
          @events[i] = events[i]
        end
      end
    end
    
  end
  
end
[close]



Instruções



No início do scripts, há um módulo que guarda configurações que você quer no script.

Activate = Ativar o script? (true / false)
Automatic = Automaticamente gravar todos os eventos, com exceção dos que que tiverem o comentário abaixo (true) ou fazer o contrário: não gravar nada, somente os que tiverem o comentário abaixo (false)
Comment = Comentário que faz o que foi dito acima

Conteúdos novos sempre, o trem nunca para.


Zombie  Misty!

By:Zombie

Bom bem legal, testei aqui e funciona show :).
Acho que inclusive ficou levemente melhor que o meu, pela sacada de colocar comentários para desativar certos eventos, deveria ter pensado isso antes, enfim está sendo participativo Lot, legalz :)