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

Slow Motion Effect

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

22/02/2013 às 15:11 Última edição: 22/02/2013 às 15:27 por King Gerar
Slow Motion Effect

Compativel com: RMVX
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]

Exibe um efeito bem estiloso em câmera lenta, veja o vídeo para entender melhor.

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

#==============================================================================#
#                      [RGSS/RGSS2] Slow Motion Versão 1.0                     #
#------------------------------------------------------------------------------#
# $RafiScripts.by = Rafidelis(Rafis)                                           #
# $RafiScripts.version = 1.0                                                   #
# $RafiScripts.release_date = 28/12/09 (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 foi primeiramente criado por Fênix,então crêditos a ele tambem.  #
# Na versão criada pelo Fenix,o script somente deixava a tela lenta e não      #
# exibia os'rastros dos sprites' dos eventos e do jogador na telas.            #
# Funciona no RPGMaker VX e no RPGMaker XP                                     #
#==============================================================================#
# [** $RafiScripts.instr ] // Instruções / Instructions:                       #
#------------------------------------------------------------------------------#
# ? 1° - Colar acima do Main                                                   #
# ? 2° - Edite a opção Effect_Only_In_Visible_Events na Linha 38 se desejar.   #
# ? 3° - Para ativar o efeito de slow_motion use no comando chamar script:     #
#         $game_temp.slow_motion = true                                        #
# E para desativar o Efeito de slow motion quando ele estiver habilitado,use:  #
#         $game_temp.slow_motion = false                                       #
# ? 4° - Para definir se o sprite do personagem jogavel vai sofrer o efeito do #
#        'slow' motion,use:                                                    #
#         $game_temp.slow_motion_effect_in_player = valor                      #
#         valor deve ser true ou false,true ativa o efeito,e false desliga     #
#   5° - Para mudar o tempo de atualização da tela,durante o slow motion use:  #                                                                  #
#        $game_temp.slow_motion_time = valor                                   #
#        valor deve ser um numero inteiro maior que 0,padrão = 4               #
#==============================================================================#
#==============================================================================#
# [ ** Modulo necessarios para usar os Scripts Criados por Rafidelis ** ]      #
#==============================================================================#
module Rafidelis
#==============================================================================#
# Rafidelis.add_script - Name : Name of Script - Version : Version of Script   #
#------------------------------------------------------------------------------#
  def self.add_script(name,version)
    $RafiScripts = [] if $RafiScripts.nil?
    $RafiScripts.push("Name : #{name} - Version: #{version}")
    $RafiScripts.compact!
  end
#==============================================================================#
# Rafidelis.script_exist? - Name : Name of Script - Version : Version of Script#
#------------------------------------------------------------------------------#
  def self.script_exist?(name,version)
    $RafiScripts = [] if $RafiScripts.nil?
    return $RafiScripts.include?("Name : #{name} - Version: #{version}")
  end
#==============================================================================#
# Rafidelis.scripts - Return all scripts create by Rafidelis(RafiScripts)      #
#------------------------------------------------------------------------------#
  def self.scripts
    print $RafiScripts
  end
#==============================================================================#
# Rafidelis.create_txt - Create a .txt with all Rafidelis(RafiScripts) scripts #
#------------------------------------------------------------------------------#
  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 com Opções do Script de Slow Motion                                   #
#------------------------------------------------------------------------------#
  module Slow_Motion
    # Adicionando o Script ao Sistema.Não Modificar
    name = "Fenix Slow Motion - Edit"
    version = "1.0"
    Rafidelis.add_script(name,version)
    # Script adicionado ao Sistema.
   
    #===========================================================================
    # Defina abaixo se o efeito de slow motion,terá efeito somente nos eventos
    # visiveis no mapa,ou se todos os eventos sofrerão o efeito de slow motion
    # false = todos os eventos sofrerão o efeito
    # true = somente os eventos viseveis no mapa sofrerão efeito
    # Recomendado deixar em true
    #===========================================================================
    Effect_Only_In_Visible_Events = true
   
    #===========================================================================
    # Tempo de 'Recriação dos Sprites'
    #===========================================================================
    Time = 4
  end
end
#==============================================================================#
# Verificando se o script esta incluso no sistema                              #
#==============================================================================#
name = "Fenix Slow Motion - Edit"
version = "1.0"
if Rafidelis.script_exist?(name,version)
  class Game_Temp
  attr_accessor :slow_motion
  attr_accessor :slow_motion_time
  attr_accessor :slow_motion_effect_in_player
  #--------------------------------------------------------------------------
  # Processamento Principal
  #--------------------------------------------------------------------------
  alias slow_motion_initialize initialize
  def initialize
    @slow_motion = false
    @slow_motion_time = Rafidelis::Slow_Motion::Time
    @slow_motion_effect_in_player = true
    slow_motion_initialize
  end
  #--------------------------------------------------------------------------
  # Slow Motion xD
  #--------------------------------------------------------------------------
  def slow_motion=(valor)
    return if @slow_motion == valor
    @slow_motion = valor
    $scene = Scene_Map.new if valor.is_a?(FalseClass)
  end
end
#==============================================================================
# Scene_Map
#------------------------------------------------------------------------------
# Esta classe processa a tela de Mapa
# Aliases:
# * main
# * update
#==============================================================================
class Scene_Map
  include Rafidelis::Slow_Motion
  #--------------------------------------------------------------------------
  # Processamento Principal
  #--------------------------------------------------------------------------
  alias slow_motion_main main
  def main
    @sprites_slow_motion = []
    @slow_motion_time = 0
    slow_motion_main
    for sprite in @sprites_slow_motion
      next if sprite.disposed?
      sprite.opacity = 0
      sprite.dispose
    end
  end
  #--------------------------------------------------------------------------
  # Atualização do Frame
  #--------------------------------------------------------------------------
  alias slow_motion_update update
  def update
    # Se o efeito estiver ligado
    if $game_temp.slow_motion
      # Se já chegou ao tempo limite
      if @slow_motion_time >= $game_temp.slow_motion_time
        Graphics.transition
        Graphics.freeze
        events = $game_map.events
        for i in events.keys
          if Effect_Only_In_Visible_Events and event_in_screen?(events[i])
            sprite = Sprite_Character.new(nil, events[i])
            @sprites_slow_motion.push(sprite)
          else
            sprite = Sprite_Character.new(nil, events[i])
            @sprites_slow_motion.push(sprite)
          end
        end
        # Criando Sprite do Jogador
        @sprites_slow_motion.push(Sprite_Character.new(nil, $game_player)) if $game_temp.slow_motion_effect_in_player
        # Resetando o tempo
        @slow_motion_time = 0
        # Deletando todos os sprites
        for sprite in @sprites_slow_motion
          next if sprite.disposed?
          sprite.opacity -= 100
          sprite.dispose if sprite.opacity <= 0
        end
      # Se ainda não deu o tempo
      else
        sprite = @sprites_slow_motion
        for i in 0...sprite.size
          next if sprite[i].nil?
          if sprite[i].disposed?
            sprite.delete_at(i)
          end
        end
        # Adicionando mais um ao tempo
        @slow_motion_time += 1
      end
    else
      # Recriando a variavel
      @sprites_slow_motion = [] if @sprites_slow_motion != []
    end
    slow_motion_update
  end
  #--------------------------------------------------------------------------
  # Verificação se o evento esta na tela
  #--------------------------------------------------------------------------
  def event_in_screen?(event)
    if event.screen_x >= 0 and event.screen_x <= 640 and
      event.screen_y >= 0 and event.screen_y <= 480
      return true
    end
    return false
   end
 end
end


[box class=titlebg]
Videos
[/box]



[box class=titlebg]
Download
[/box]

Não necessário

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

Rafidelis & Fenix