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

Multiplos Climas

Iniciado por Raizen, 22/02/2013 às 15:13

Multiplos Climas

Compativel com: RMVXAce
Compatibilidade :bom
Facilidade de uso: fácil
Lag gerado: baixo
[box class=titlebg]
Condições de Uso
[/box]
  Não especificado pelo autor

[box class=titlebg]
Para que serve o script
[/box]

  Permite usar vários climas diferentes simultaneamente

[box class=titlebg]
Script.
[/box]

#==============================================================================
#                        [RGSS2] Multiplos Climas                             
#------------------------------------------------------------------------------
# $RafiScripts.by = Rafidelis(Rafis)                                           
# $RafiScripts.version = 1.0                                                   
# $RafiScripts.release_date = 20/03/10(d/m/y)                                 
# $RafiScripts.email = Rafa_Fidelis@hotmail.com or Rafa_Fidelis@yahoo.com.br   
# $RafiScripts.website = www.ReinoRPG.com  or www.ReinoRPG.com/forum           
#==============================================================================
# [** $RafiScripts.desc **]  // Sobre o Script / About Script                 
#------------------------------------------------------------------------------
# Este script possibilita o uso de infinitos climas em um mesmo mapa.       
#==============================================================================
# [** $RafiScripts.instr ] // Instruções / Instructions:                       
#------------------------------------------------------------------------------
# 1° Colar acima do Main                                                       
# 2° Editar a constante Max_Add_Weathers,e definir o numero maximo de climas   
#    adicionais para o jogo.                                                   
# 3° De acordo com o numero de climas definido na Constante Max_Add_Weathers, 
#    no comando chamar script você deve usar:   
#
#     set_weather(id,tipo,[força],[duração])                                 
#
#    id = Começa em 1 e vai até o valor armazenado em Max_Add_Weathers,exemplo:
#    Se a Constante Max_Add_Weathers tiver o valor 10,'id' valera de 1 a 10.   
#    Lembre-se,se você tiver configurado por exemplo,o maximo de 10 climas na 
#    Constante Max_Add_Weathers,e tentar usar um id acima de 10,ira gerar um
#    erro.(Porem não irá fechar o jogo).
#    Se a constante Print_Errors_Messages estiver com o valor 'true'
#    você será avisado do erro,caso não esteja você não será alertado. 
#==============================================================================
#    tipo = Tipo do efeito de Clima:[Padrões]                                 
#       0 - Nada(Remove o clima atual)                                         
#       1 - Chuva                                                             
#       2 - Tempestade                                                         
#       3 - Neve         
#==============================================================================
#   força = Intensidade do tipo de efeito,você deve usar um valor entre 1 e 9.
#           Essa opção é opcional,e o valor padrão é 5.
#==============================================================================
#   duração = Tempo em frames para a troca do clima.Esse valor é opcional.
#==============================================================================
# Exemplo de criação de climas:                                               
# set_weather(1,3) - Nesse exemplo o clima de id 1 é usado,e configurado para 
#   ter o efeito de neve.(Tipo 3)                                             
# set_weather(4,2,20,6) - O clima de ID 4 foi usado,e configurado para ter o   
#   efeito tempestade,com força 6 e 1 segundo(60 frames) de espera para troca.
# set_weather(9,2,1) - Nesse exemplo o clima de id 9 é usado,e configurado para
#   ter o efeito de Tempestade.(Tipo 2) e com a força 1.
#==============================================================================
#        [ ** Modulo necessarios para salvar e carregar os scripts ** ]     
#==============================================================================
module Rafidelis
#==============================================================================
# Rafidelis.add_script 
#------------------------------------------------------------------------------
  def self.add_script(name,version)
    $RafiScripts = [] if $RafiScripts.nil?
    $RafiScripts.push("Name : #{name} - Version: #{version}")
    $RafiScripts.compact!
  end
#==============================================================================
# Rafidelis.script_exist?
#------------------------------------------------------------------------------
  def self.script_exist?(name,version)
    $RafiScripts = [] if $RafiScripts.nil?
    return $RafiScripts.include?("Name : #{name} - Version: #{version}")
  end
#==============================================================================
# Rafidelis.scripts     
#------------------------------------------------------------------------------
  def self.scripts
    print $RafiScripts
  end
#==============================================================================
# Rafidelis.create_txt
#------------------------------------------------------------------------------
  def self.create_txt(filename="RafideliScripts")
    file = File.open("#{filename}.txt","wb")
    for i in 0...$RafiScripts.size
      file.write("#{$RafiScripts[i]}\r\n")
    end
  end
  #===========================================================================
  # Modulo de Opções para o sistema de Multiplos Climas                     
  #===========================================================================
  module Multiples_Weathers
    # Adicionando o Script no Sistema.Não modificar ou Apagar
    name = "Multiples Weathers"
    version = "1.0"
    Rafidelis.add_script(name,version)
    # Script Adicionado.
   
    # Maximo de climas 'Extras' a serem adicionados ao jogos.
    Max_Add_Weathers = 5
    # Exibir as mensagens erros de configuração do script,quando acontecerem.
    Print_Errors_Messages = false
  end
end

name = "Multiples Weathers"
version = "1.0"
if Rafidelis.script_exist?(name,version)
#==============================================================================
# Spriteset_Map
#------------------------------------------------------------------------------
# Classe responsável pela compilação dos sprites utilizados nos mapas.
# Esta classe é utilizada dentro da classe Scene_Map.
# Aliases : create_weather,update_weather,dispose_weather
#==============================================================================
class Spriteset_Map
  #--------------------------------------------------------------------------
  # Aliases
  #--------------------------------------------------------------------------
  alias rafidelis_multiples_weather_update_weather update_weather
  alias rafidelis_multiples_weather_dispose_weather dispose_weather
  alias rafidelis_multiples_weather_create_weather create_weather
 
  include Rafidelis
  #--------------------------------------------------------------------------
  # Criação do clima
  #--------------------------------------------------------------------------
  def create_weather
    rafidelis_multiples_weather_create_weather
    for i in 1..Multiples_Weathers::Max_Add_Weathers
      eval("@weather#{i} = Spriteset_Weather.new(@viewport2)")
    end
  end
  #--------------------------------------------------------------------------
  # Atualização do clima
  #--------------------------------------------------------------------------
  def update_weather
    rafidelis_multiples_weather_update_weather
    for i in 1..Multiples_Weathers::Max_Add_Weathers
      eval("@weather#{i}.type = $game_map.screen.weather#{i}_type")
      eval("@weather#{i}.max = $game_map.screen.weather#{i}_max")
      eval("@weather#{i}.ox = $game_map.display_x / 8")
      eval("@weather#{i}.oy = $game_map.display_y / 8")
      eval("@weather#{i}.update if @weather#{i}.type != 0")
    end
  end
  #--------------------------------------------------------------------------
  # Dispose dos climas
  #--------------------------------------------------------------------------
  def dispose_weather
    rafidelis_multiples_weather_dispose_weather
    for i in 1..Multiples_Weathers::Max_Add_Weathers
      eval("@weather#{i}.dispose")
    end
  end
end
#==============================================================================
# Game_Screen
#------------------------------------------------------------------------------
# Classe que gerencia os efeitos da tela em geral, como tonalidade, flashes,
# terremotos e etc. Esta classe é utilizada dentro das classes Game_Map e
# Game_Troop.
# Aliases: clear
#==============================================================================
class Game_Screen
  alias rafidelis_multiple_weather_clear clear
  #--------------------------------------------------------------------------
  # Variáveis públicas
  #--------------------------------------------------------------------------
  for i in 1..Rafidelis::Multiples_Weathers::Max_Add_Weathers
    eval("attr_accessor :weather#{i}_type")
    eval("attr_accessor :weather#{i}_max")
  end
  #--------------------------------------------------------------------------
  # Limpar
  #--------------------------------------------------------------------------
  def clear
    rafidelis_multiple_weather_clear
    for i in 1..Rafidelis::Multiples_Weathers::Max_Add_Weathers
      eval("@weather#{i}_type = 0")
      eval("@weather#{i}_max = 0.0")
    end
  end
end
#==============================================================================
# Game_Interpreter
#------------------------------------------------------------------------------
# Esta classe interpreta os comandos de evento e os transforma no código da
# engine do RPG Maker. As classes Game_Map, Game_Troop, Game_Event são usadas.
#==============================================================================
class Game_Interpreter
  #--------------------------------------------------------------------------
  # Definir Clima
  #--------------------------------------------------------------------------
  def set_weather(weather_id,type,power=5,duration=0)
    power = [(power + 1) * 4.0,40].min
    eval("screen.weather#{weather_id}_type = #{type}") rescue print_weather_message(weather_id)
    eval("screen.weather#{weather_id}_max = #{power}") rescue return
    @wait_count = duration if duration > 0
  end
  #--------------------------------------------------------------------------
  # Mostrar Mensagem de Erro quando o id do clima não existir
  #--------------------------------------------------------------------------
  def print_weather_message(id)
     if Rafidelis::Multiples_Weathers::Print_Errors_Messages
       max = Rafidelis::Multiples_Weathers::Max_Add_Weathers.to_s
       print "   O clima com o id \'#{id}\' não existe.
       O maximo de climas que você pode usar é #{max}.Por favor,configure o script
       \'Multiples Weathers\' para que não ocorram erros durante o jogo."
     end
   end
  end
end


[box class=titlebg]
Imagens
[/box]



[box class=titlebg]
Download
[/box]

Não necessário

[box class=titlebg]
Créditos e Avisos
[/box]
Rafidelis