Jump to content
Rpg²S Forum

Gli Script di Moghunter - uno per uno


lupius
 Share

Recommended Posts

Apro questo topic in cui raccolgo gli script, uno per uno, contenuti nella mega-demo di Moghunter (per la discussione sulla demo andate qui: http://www.rpg2s.net/forum/index.php?showtopic=16291). Per ogni script cercherò di mettere anche le immagini (o alcune, perlomeno) della demo.

 

Mano a mano aggiornerò questo messaggio coi nuovi script estrapolati, poi magari farò una raccolta in .rar per chi li vuole tutti insieme.

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Script Effetti Grafici

 

 

1) Weather EX V1.6

 

Autore: Moghunter

 

Descrizione:

Permette di creare effetti climatici. Tramite la ripetizione di piccole immagini, e a vari effetti di movimento delle stesse, permette di creare piogge torrenziali o piogge di fuoco, graziose foglie volanti o deboli nevicate romantiche... per non parlare della splendida pioggia lenta di lumini, il sogno degli innamorati XD

 

Istruzioni:

Per iniziare un effetto climatico richiamare lo script scrivendo

 

weather(TYPE, POWER, IMAGE_FILE)

 

dove TYPE va da 0 a 6 e POWER da 1 a 10, mentre IMAGE_FILE è il nome dell'immagine che volete richiamare. Es: weather(1, 5, "Rain_01A"). Le immagini da usare per questo script andranno messe in una sottocartella di Graphics denominata Weather (che dovrete crearvi). Non usate immagini troppo grosse o vi aspetta un lag da panico...

Per istruzioni su ogni comando guardate all'interno dello script (che è in portoghese ma si capisce benissimo).

Ah, si può usare anche nelle battaglie :)

 

RACCOMANDAZIONE!: ho scoperto un piccolo bug. Se provate a far partire l'effetto in processo parallelo o in automatico impazzisce. Cercate quindi di farlo partire in un altro modo (per esempio posizionandolo sulla posizione di arrivo di un teletrasporto e settandolo su "a contatto con l'eroe")

 

Screen: una bella pioggia di lumini

 

 

 

 

Le immagini originali di Moghunter sono piccole e ripetute in sequenza più e più volte dallo script, con un effetto continuato, il che rende un ottimo risultato. Qui trovate tutta la raccolta delle immagini della sua demo

 

http://www.mediafire...2q1ix4ublcc6u82.

 

Grazie a Mithos per l'upload.

 

Script

 

 

 

#==============================================================================
# +++ MOG - Weather EX (v1.6) +++
#==============================================================================
# By Moghunter 
# http://www.atelier-rgss.com/
#==============================================================================
# Sistema de clima com efeitos animados.
#==============================================================================
# As imagens usadas pelo sistema do clima devem ser gravadas na pasta
#
# GRAPHICS/WEATHER/
#
#==============================================================================
# UTILIZAÇÃO
# 
# Use o comando abaixo através da função chamar script.*(Evento)
#
# weather(TYPE, POWER, IMAGE_FILE)
#
# TYPE - Tipo de clima. (de 0 a 6)
# POWER - Quantidade de partículas na tela. (de 1 a 10)
# IMAGE_FILE - Nome da imagem.
#
# Exemplo (Eg)
#
# weather(0, 5, "Leaf")
#
#==============================================================================
# Tipos de Clima.
#
# O sistema vem com 7 climas pré-configurados, que podem ser testados na demo
# que vem com esse script.
#
# 0 - (Rain)  
# 1 - (Wind)
# 2 - (Fog)  
# 3 - (Light)
# 4 - (Snow)
# 5 - (Spark)
# 6 - (Random)
#
#==============================================================================
# NOTA
#
# Evite de usar imagens muito pesadas ou de tamanho grande, caso for usar
# diminua o poder do clima para evitar lag.
#
#==============================================================================
#==============================================================================
# Para parar o clima use o comando abaixo.
#
# weather_stop
#
#==============================================================================
# Para parar reativar o clima com as caracteríticas préviamente usadas use o
# comando abaixo.
#
# weather_restore
#==============================================================================
# Se você precisar ativar um novo clima mas deseja gravar as caracteríticas 
# do clima atual para ser reativado depois use os códigos abaixo.
#
# weather_store
# weather_restore_store
#
#==============================================================================

#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v 1.6 - Correção na ordem de dispose do Viewport o que causava Crash em 
#         alguns projetos (Problemas de compatibilidade).
# v 1.5 - Correção definitiva para erro de Crash randômico. 
# v 1.4 - Melhoria no sistema de dispose. * (Para quem estiver tendo problema 
#         com crashes randômicos.)
# v 1.3 - Adição do comando weather_store e weather_recover_store
# v 1.2 - Melhor codificação e compatibilidade.
# v 1.1 - Correção do Bug de salvar através do evento.
# v 1.0 - Weather EX ativo na batalha.
#       - Função restore/pause que permite reativar o clima com as
#         caracteríticas previamente usadas, ou seja, dá uma pausa no clima.
# v 0.9 - Melhoria no sistema de dispose.
#==============================================================================
module MOG_WEATHER_EX
  #Prioridade do clima na tela.
  WEATHER_SCREEN_Z = 50 
  #Definição da eficiência do poder do clima.
  #NOTA -  Um valor muito alto pode causar lag, dependendo do tipo de clima e
  #        imagem usada.
  WEATHER_POWER_EFIC = 5
  #Ativar o clima no sistema de batalha.
  WEATHER_BATTLE = true
end

#==============================================================================
# ■ Cache
#==============================================================================
module Cache
  
  #--------------------------------------------------------------------------
  # ● Weather
  #--------------------------------------------------------------------------
  def self.weather(filename)
      load_bitmap("Graphics/Weather/", filename)
  end
  
end

#==============================================================================
# ■ Game System
#==============================================================================
class Game_System
  
  attr_accessor :weather
  attr_accessor :weather_restore
  attr_accessor :weather_record_set
  attr_accessor :weather_temp
  
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------  
  alias weather_ex_initialize initialize  
  def initialize
      @weather = [-1,0,""]
      @weather_restore = [-1,0,""]
      @weather_temp = [-1,0,""]
      @weather_record_set = [-1,0,""]
      weather_ex_initialize 
  end  
  
end  

#==============================================================================
# ■ Game Temp
#==============================================================================
class Game_Temp

  attr_accessor :weather_ex_set
  attr_accessor :weather_fade
  
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------  
  alias mog_weather_ex_temp_initialize initialize
  def initialize
      @weather_ex_set = []
      @weather_fade = false
      mog_weather_ex_temp_initialize
  end  
  
end

#==============================================================================
# ■ Game Interpreter
#==============================================================================
class Game_Interpreter
  
  #--------------------------------------------------------------------------
  # ● Weather
  #--------------------------------------------------------------------------    
  def weather(type = -1, power = 0, image = "")
      $game_temp.weather_fade = false
      $game_system.weather.clear
      $game_system.weather = [type,power,image]
  end
  
  #--------------------------------------------------------------------------
  # ● Weather Stop
  #--------------------------------------------------------------------------     
  def weather_stop
      $game_temp.weather_fade = false
      $game_system.weather.clear
      $game_system.weather = [-1,0,""]
      $game_system.weather_restore  = [-1,0,""]
      $game_system.weather_temp = [-1,0,""]      
  end
  
  #--------------------------------------------------------------------------
  # ● Weather Restore
  #--------------------------------------------------------------------------       
  def weather_restore
      $game_temp.weather_fade = false
      if $game_system.weather[0] != -1
         w = $game_system.weather
         $game_system.weather_restore = [w[0],w[1],w[2]] 
         $game_system.weather.clear
         $game_system.weather = [-1,0,""]
         return
      end
      w = $game_system.weather_restore 
      weather(w[0],w[1],w[2])
  end
  
  #--------------------------------------------------------------------------
  # ● Weather Fade
  #--------------------------------------------------------------------------         
  def weather_fade(value)
      $game_temp.weather_fade = value
  end
  
  #--------------------------------------------------------------------------
  # ● Weather Store
  #--------------------------------------------------------------------------           
  def weather_store
      w = $game_system.weather 
      $game_system.weather_record_set = [w[0],w[1],w[2]]
  end  
  
  #--------------------------------------------------------------------------
  # ● Weather Restore Store
  #--------------------------------------------------------------------------           
  def weather_restore_store
      w = $game_system.weather_record_set
      weather(w[0],w[1],w[2])      
  end    
  
end  

#==============================================================================
# ■ Weather_EX
#==============================================================================
class Weather_EX < Sprite
  
  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------  
  def initialize(viewport = nil ,type = 0, image_name = "",index = 0,nx,ny)
      super(viewport)
      self.bitmap = Cache.weather(image_name.to_s)
      self.opacity = 0
      @cw = self.bitmap.width
      @ch = self.bitmap.height
      @angle_speed = 0
      @x_speed = 0
      @y_speed = 0
      @zoom_speed = 0
      @opacity_speed = 0
      @type = type
      @index = index
      @old_nx = nx
      @old_ny = ny
      type_setup(nx,ny)
  end
  
  #--------------------------------------------------------------------------
  # ● Dispose
  #--------------------------------------------------------------------------    
  def dispose
      dispose_sprite_weather_ex
      super
  end

  #--------------------------------------------------------------------------
  # ● Dispose Sprite Weather EX
  #--------------------------------------------------------------------------      
  def dispose_sprite_weather_ex
      return if self.bitmap == nil
      self.bitmap.dispose
      self.bitmap = nil
  end
  
  #--------------------------------------------------------------------------
  # ● Pre Values
  #--------------------------------------------------------------------------    
  def pre_values(index)
      return if  $game_temp.weather_ex_set[index] == nil
      self.x = $game_temp.weather_ex_set[index][0]
      self.y = $game_temp.weather_ex_set[index][1]
      self.opacity = $game_temp.weather_ex_set[index][2]
      self.angle = $game_temp.weather_ex_set[index][3]
      self.zoom_x = $game_temp.weather_ex_set[index][4]
      self.zoom_y = $game_temp.weather_ex_set[index][4]
      $game_temp.weather_ex_set[index].clear
      $game_temp.weather_ex_set[index] = nil
  end  
  
  #--------------------------------------------------------------------------
  # ● Type Setup
  #--------------------------------------------------------------------------      
  def type_setup(nx = 0, ny = 0)
      @cw2 = [(672 + @cw) + nx, -(96 + @cw) + nx]
      @ch2 = [(576 + @ch) + ny, -(96 + @ch) + ny]
      check_weather_type
      pre_values(@index)
      @opacity_speed = -1 if $game_temp.weather_fade
  end
  
  #--------------------------------------------------------------------------
  # ● Update
  #--------------------------------------------------------------------------    
  def update_weather(nx = 0, ny = 0)
      self.x += @x_speed
      self.y += @y_speed
      self.opacity += @opacity_speed
      self.angle += @angle_speed
      self.zoom_x += @zoom_speed
      self.zoom_y += @zoom_speed
      check_loop_map(nx,ny)
      type_setup(nx,ny) if can_reset_setup?
  end  

  #--------------------------------------------------------------------------
  # ● Check Loop Map
  #--------------------------------------------------------------------------        
  def check_loop_map(nx,ny)
      if (@old_nx - nx).abs > 32
         @cw2 = [(672 + @cw) + nx, -(96 + @cw) + nx]
         self.x += nx
         self.x -= @old_nx if nx == 0
      end   
      if (@old_ny - ny).abs > 32
         @ch2 = [(576 + @ch) + ny, -(96 + @ch) + ny]
         self.y += ny
         self.y -= @old_ny if ny == 0
      end         
      @old_nx = nx
      @old_ny = ny    
  end  
    
  #--------------------------------------------------------------------------
  # ● Can Reset Setup
  #--------------------------------------------------------------------------      
  def can_reset_setup?
      return true if self.x > @cw2[0] or self.x <  @cw2[1]
      return true if self.y > @ch2[0]  or self.y < @ch2[1] 
      return true if self.opacity == 0
      return true if self.zoom_x > 2.0 or self.zoom_x < 0.5 
      return false
  end
  
 #--------------------------------------------------------------------------
 # ● Check Weather Type
 #--------------------------------------------------------------------------                         
 def check_weather_type 
     case @type
         when 0;   rain
         when 1;   wind   
         when 2;   fog
         when 3;   light
         when 4;   snow
         when 5;   spark
         when 6;   random                  
      end
 end
    
 #--------------------------------------------------------------------------
 # ● Snow
 #--------------------------------------------------------------------------                          
 def snow
     self.angle = rand(360)
     self.x = rand(@cw2[0])
     self.y = rand(@ch2[0])
     self.opacity = 1
     self.zoom_x = (rand(100) + 50) / 100.0
     self.zoom_y = self.zoom_x
     @y_speed = [[rand(5), 1].max, 5].min
     @opacity_speed = 5
     @angle_speed = rand(3)
 end   
 
 #--------------------------------------------------------------------------
 # ● Spark
 #--------------------------------------------------------------------------                           
 def spark
     self.angle = rand(360)
     self.x = rand(@cw2[0])
     self.y = rand(@ch2[0])
     self.opacity = 1
     self.zoom_x = (rand(100) + 100) / 100.0
     self.zoom_y = self.zoom_x
     self.blend_type = 1     
     @opacity_speed = 10
     @zoom_speed = -0.01
 end
 
 #--------------------------------------------------------------------------
 # ● Rain
 #--------------------------------------------------------------------------                          
 def rain
     self.x = rand(@cw2[0])       
     if @start == nil
        self.y = rand(@ch2[0]) 
        @start = true
     else
        self.y = @ch2[1]        
     end   
     self.opacity = 1
     self.zoom_y = (rand(50) + 100) / 100.0
     self.zoom_x = (rand(25) + 100) / 100.0
     @y_speed = [[rand(10) + 10, 10].max, 20].min
     @opacity_speed = 10
 end    
 
 #--------------------------------------------------------------------------
 # ● Fog
 #--------------------------------------------------------------------------                            
 def fog
     rand_angle = rand(2)
     self.angle = rand_angle == 1 ? 180 : 0
     self.x = rand(@cw2[0])
     self.y = rand(@ch2[0])
     self.opacity = 1
     self.zoom_x = (rand(100) + 50) / 100.0
     self.zoom_y = self.zoom_x
     @x_speed = [[rand(10), 1].max, 10].min
     @opacity_speed = 10
 end
 
 #--------------------------------------------------------------------------
 # ● Light
 #--------------------------------------------------------------------------                           
 def light 
     self.angle = rand(360)
     self.x = rand(@cw2[0])
     self.y = rand(@ch2[0])
     self.opacity = 1
     self.zoom_x = (rand(100) + 50) / 100.0
     self.zoom_y = self.zoom_x
     self.blend_type = 1
     @angle_speed = [[rand(3), 1].max, 3].min
     @y_speed = -[[rand(10), 1].max, 10].min
     @opacity_speed = 2
 end
 
 #--------------------------------------------------------------------------
 # ● Wind
 #--------------------------------------------------------------------------                          
 def wind
     self.angle = rand(360)
     self.x = rand(@cw2[0])
     self.y = rand(@ch2[0])
     self.opacity = 1
     self.zoom_x = (rand(100) + 50) / 100.0
     self.zoom_y = self.zoom_x
     @x_speed = [[rand(10), 1].max, 10].min
     @y_speed = [[rand(10), 1].max, 10].min
     @opacity_speed = 10
 end   
      
 #--------------------------------------------------------------------------
 # ● Random
 #--------------------------------------------------------------------------                          
 def random
     self.angle = rand(360)
     self.x = rand(@cw2[0])
     self.y = rand(@ch2[0])
     self.opacity = 1
     self.zoom_x = (rand(100) + 50) / 100.0
     self.zoom_y = self.zoom_x
     x_s = [[rand(10), 1].max, 10].min
     y_s = [[rand(10), 1].max, 10].min
     rand_x = rand(2)
     rand_y = rand(2)
     @x_speed = rand_x == 1 ? x_s : -x_s
     @y_speed = rand_y == 1 ? y_s : -y_s      
     @opacity_speed = 10
 end    
 
end

#==============================================================================
# ■ Module Weather EX
#==============================================================================
module Module_Weather_EX
  
 #--------------------------------------------------------------------------
 # ● Create Weather EX
 #--------------------------------------------------------------------------                   
  def create_weather_ex
      dispose_weather_ex
      create_weather_viewport
      create_weather_sprite     
  end
  
 #--------------------------------------------------------------------------
 # ● Dispose Wheater EX
 #--------------------------------------------------------------------------                     
  def dispose_weather_ex
      dispose_weather_ex_sprite
      dispose_weather_ex_viewport
  end  
 
 #--------------------------------------------------------------------------
 # ● Create Weather Viewport
 #--------------------------------------------------------------------------                     
  def create_weather_viewport
      dispose_weather_ex_viewport
      @viewport_weather_ex = Viewport.new(-32, -32, 576, 448)
      @viewport_weather_ex.z = MOG_WEATHER_EX::WEATHER_SCREEN_Z
      @viewport_weather_ex.ox = ($game_map.display_x * 32)
      @viewport_weather_ex.oy = ($game_map.display_y * 32)      
  end  

 #--------------------------------------------------------------------------
 # ● Create Weather Sprite
 #--------------------------------------------------------------------------                       
  def create_weather_sprite
      dispose_weather_ex_sprite
      @old_weather = $game_system.weather
      return if $game_system.weather == [] or $game_system.weather[0] == -1
      @weather_ex = []
      index = 0
      power_efic = MOG_WEATHER_EX::WEATHER_POWER_EFIC
      power_efic = 1 if power_efic < 1
      power = [[$game_system.weather[1] * power_efic, power_efic].max, 999].min
      for i in 0...power
          @weather_ex.push(Weather_EX.new(@viewport_weather_ex,$game_system.weather[0],$game_system.weather[2],index, @viewport_weather_ex.ox, @viewport_weather_ex.oy))
          index += 1
      end            
  end

 #--------------------------------------------------------------------------
 # ● Dispose Weather EX Viewport 
 #--------------------------------------------------------------------------                       
  def dispose_weather_ex_viewport
      return if @viewport_weather_ex == nil 
      @viewport_weather_ex.dispose
  end  
  
 #--------------------------------------------------------------------------
 # ● Dispose Weather EX
 #--------------------------------------------------------------------------                   
  def dispose_weather_ex_sprite
      return if @weather_ex == nil
      index = 0
      for i in @weather_ex
          $game_temp.weather_ex_set[index] = [] if $game_temp.weather_ex_set[index] == nil
          $game_temp.weather_ex_set[index].push(i.x,i.y,i.opacity,i.angle,i.zoom_x)
          i.dispose
          index += 1
      end
      @weather_ex.each {|sprite| sprite.dispose}  
      @weather_ex.clear
      @weather_ex = nil
  end
  
 #--------------------------------------------------------------------------
 # ● Dispose Refresh
 #--------------------------------------------------------------------------                    
  def dispose_refresh
      $game_temp.weather_ex_set.clear
      return if @weather_ex == nil
      @weather_ex.each {|sprite| sprite.dispose}
      @weather_ex.clear
      @weather_ex = nil
  end  
  
 #--------------------------------------------------------------------------
 # ● Update Weather EX
 #--------------------------------------------------------------------------                   
  def update_weather_ex
      refresh_weather_ex
      update_weather_ex_viewport
      return if @weather_ex == nil
      @weather_ex.each {|sprite| sprite.update_weather(@viewport_weather_ex.ox,@viewport_weather_ex.oy)} 
  end
  
 #--------------------------------------------------------------------------
 # ● Update Weather Ex Viewport
 #--------------------------------------------------------------------------                     
  def update_weather_ex_viewport
      return if @viewport_weather_ex == nil
      @viewport_weather_ex.ox = ($game_map.display_x * 32)
      @viewport_weather_ex.oy = ($game_map.display_y * 32)
  end
 
 #--------------------------------------------------------------------------
 # ● Refresh Weather EX
 #--------------------------------------------------------------------------                     
  def refresh_weather_ex
      return if @old_weather == nil
      return if @old_weather == $game_system.weather
      dispose_refresh
      create_weather_sprite
  end  
end  

#==============================================================================
# ■ Spriteset Map
#==============================================================================
class Spriteset_Map 
   include Module_Weather_EX  
   
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------                   
  alias mog_weather_ex_initialize initialize 
  def initialize          
      dispose_weather_ex    
      mog_weather_ex_initialize
      create_weather_ex
  end

 #--------------------------------------------------------------------------
 # ● Dispose
 #--------------------------------------------------------------------------                   
  alias mog_weather_ex_dispose dispose
  def dispose
      dispose_weather_ex    
      mog_weather_ex_dispose
  end  

 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------                   
  alias mog_weather_ex_update update
  def update
      mog_weather_ex_update
      update_weather_ex
  end  
    
end



if MOG_WEATHER_EX::WEATHER_BATTLE 
#==============================================================================
# ■ Spriteset Battle
#==============================================================================
class Spriteset_Battle  
  
   include Module_Weather_EX  
   
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------                   
  alias mog_weather_ex_initialize initialize 
  def initialize          
      dispose_weather_ex    
      mog_weather_ex_initialize
      create_weather_ex
  end

 #--------------------------------------------------------------------------
 # ● Dispose
 #--------------------------------------------------------------------------                   
  alias mog_weather_ex_dispose dispose
  def dispose
      dispose_weather_ex    
      mog_weather_ex_dispose
  end  

 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------                   
  alias mog_weather_ex_update update
  def update
      mog_weather_ex_update
      update_weather_ex
  end   
    
end

end

#=============================================================================
# ■ Scene Base
#=============================================================================
class Scene_Base
  
  #--------------------------------------------------------------------------
  # ● Weather Recover Data
  #--------------------------------------------------------------------------  
  def weather_recover_data
      if $game_system.weather.empty? or 
          $game_system.weather[0] == -1 
          if !$game_system.weather_restore.empty? and 
             $game_system.weather_restore[0] != -1
             v = $game_system.weather_restore
             $game_system.weather = [v[0],v[1],v[2]]
          end
      end         
  end
  
  #--------------------------------------------------------------------------
  # ● Weather Restore
  #--------------------------------------------------------------------------       
  def weather_recover_scene
      return if $game_system.weather_temp.empty?
      return if $game_system.weather_temp[0] == -1
      w = $game_system.weather_temp
      $game_system.weather = [w[0],w[1],w[2]]
      $game_system.weather_temp.clear
      $game_system.weather_temp = [-1,0,""]
  end  
 
  #--------------------------------------------------------------------------
  # ● Main
  #--------------------------------------------------------------------------         
  alias mog_weather_ex_main main
  def main
      dispose_weather_ex_base
      weather_recover_scene if can_recover_weather_scene?
      mog_weather_ex_main
  end    
  
  #--------------------------------------------------------------------------
  # ● Can Recover Weather Scene
  #--------------------------------------------------------------------------         
  def can_recover_weather_scene?
      return true if SceneManager.scene_is?(Scene_Map)
      return true if SceneManager.scene_is?(Scene_Battle)
      return false
  end  
  
  #--------------------------------------------------------------------------
  # ● terminate
  #--------------------------------------------------------------------------         
  alias mog_weather_ex_terminate_base terminate
  def terminate
      mog_weather_ex_terminate_base
      dispose_weather_ex_base      
  end  

  #--------------------------------------------------------------------------
  # ● Dispose Weather EX Base
  #--------------------------------------------------------------------------           
  def dispose_weather_ex_base
      return if @spriteset == nil
      @spriteset.dispose_weather_ex rescue nil
  end        
  
end

#=============================================================================
# ■ Scene Load
#=============================================================================
class Scene_Load < Scene_File
  
  #--------------------------------------------------------------------------
  # ● On Load Success
  #--------------------------------------------------------------------------
  alias mog_weather_ex_on_load_success on_load_success
  def on_load_success
      mog_weather_ex_on_load_success
      weather_recover_data
  end
end

#=============================================================================
# ■ Scene Manager
#=============================================================================
class << SceneManager
  
  #--------------------------------------------------------------------------
  # ● Call
  #--------------------------------------------------------------------------         
  alias mog_weather_ex_call call
  def call(scene_class)
      weather_dispose
      mog_weather_ex_call(scene_class)
  end
  
  #--------------------------------------------------------------------------
  # ● Weather Restore
  #--------------------------------------------------------------------------       
  def weather_dispose
      return if $game_system.weather.empty?
      return if $game_system.weather[0] == -1
      w = $game_system.weather
      $game_system.weather_temp = [w[0],w[1],w[2]]
      $game_system.weather.clear
      $game_system.weather = [-1,0,""]
  end    
  
end

$mog_rgss3_weather_ex = true

 

 

 

 

 

2) Touhou Map Name V1.3

 

Descrizione:

Permette di visualizzare il nome della mappa in stile Touhou, con un'animazione.

 

Istruzioni:

Avviate lanciando lo script con $game_temp.mapname = true. Importate in Graphics/System le immagini che volete utilizzare, chiamandole "Map_Name_Layout" e "Map_Name_Particle". Purtroppo non ho capito come modificare il font... I Particle sono le foglioline in trasparenza che vedete andare dal basso verso l'alto sulla scritta.

 

TIP 1: Per evitare che l'effetto si ripeta istericamente, piazzate uno switch locale dopo l'evento, poi create una seconda pagina evento con lo switch attivato. Olè!

TIP 2 (suggerito da KenzoMe92): se insieme all'effetto dovesse essere visualizzato normalmente il nome della mappa, andate nello script editor--->Scene_Map (quello di Ace)---> all'inizio della linea 143 aggiungete #.

 

Screen:

 

 

 

Script:

 

 

#==============================================================================
# +++ MOG - Touhou Map Name (v1.3) +++
#==============================================================================
# By Moghunter 
# http://www.atelier-rgss.com/
#==============================================================================
# Sistema animado que apresenta o nome do mapa no estilo Touhou.
#==============================================================================
# Serão necessários as seguintes imagens na pasta Graphics/System/
#
# Map_Name_Particle.png
# Map_Name_Layout.png
#
#==============================================================================
# Use o código abaixo para ativar o script.
#
# $game_temp.mapname = true
#
#==============================================================================
#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v 1.3 - Melhor velocidade no sistema de animação.
# v 1.2 - Melhoria no sistema de dispose de imagens.
# v 1.1 - Nome do mapa somente é visível na cena de mapa, para evitar 
# a imagem da hud sobrepor outras scenes.
#==============================================================================

module MOG_TOUHOU_MAP_NAME
  # Posição geral da hud.
  MAP_NAME_POSITION = [272,192]
  # Posição das letras.
  MAP_NAME_WORD_POSITION = [-30,18]
  # Posição das particulas.
  MAP_NAME_PARTICLE_POSITION = [-100,-50]
  # Prioridade da hud.
  MAP_NAME_Z = 50
  # Ativar o nome do mapa automaticamente.
  MAP_NAME_AUTOMATIC = false
end

#==============================================================================
# ■ Game Temp
#==============================================================================
class Game_Temp

 attr_accessor :mapname_conf
 attr_accessor :mapname_layout_conf
 attr_accessor :mapname_duration
 attr_accessor :mapname
 
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------                   
  alias mog_map_name_initialize initialize
  def initialize
      @mapname_conf = [] 
      @mapname_layout_conf = []
      @mapname_duration = [false,-1,2]
      @mapname = false
      mog_map_name_initialize
  end  
end

#==============================================================================
# ■ Game Player
#==============================================================================
class Game_Player < Game_Character  

 #--------------------------------------------------------------------------
 # ● Perform Transfer
 #--------------------------------------------------------------------------                     
  alias mog_touhou_map_name_perform_transfer perform_transfer
  def perform_transfer
      m_id = $game_map.map_id
      mog_touhou_map_name_perform_transfer
      if MOG_TOUHOU_MAP_NAME::MAP_NAME_AUTOMATIC
         if m_id != $game_map.map_id and $game_map.display_name != ""
            $game_temp.mapname = true
         end
      end    
  end

end  

#==============================================================================
# ■ Map Name
#==============================================================================
class Map_Name < Sprite
  include MOG_TOUHOU_MAP_NAME
  
  attr_reader   :letter
  attr_reader   :turn
  attr_reader   :animation_duration
  attr_reader   :text_duration
  attr_reader   :duration

 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------                 
  def initialize(letter,x,y, zoom, opac,duration, animation_dutation, text_duration,turn, center_x, viewport = nil)      
      super(viewport)
      @letter = letter
      @turn = turn
      @duration = duration
      @animation_duration = animation_dutation
      @animation_duration2 = animation_dutation
      @text_duration = text_duration
      self.bitmap = Bitmap.new(32,32)
      self.bitmap.font.size = 32
      self.bitmap.font.bold = true
      self.bitmap.font.italic = true
      self.bitmap.draw_text(0,0, 32, 32, @letter.to_s,0)
      self.z = 999
      self.zoom_x = zoom
      self.zoom_y = zoom
      self.ox =  -100
      self.oy =  -100
      self.x = x 
      self.y = y
      self.z = MAP_NAME_Z + 2
      self.opacity = opac
  end  
  
 #--------------------------------------------------------------------------
 # ● Dispose
 #--------------------------------------------------------------------------               
  def dispose
      super
      if self.bitmap != nil
         self.bitmap.dispose
      end
  end  
  
 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------               
  def update
      super
      update_animation
  end
      
 #--------------------------------------------------------------------------
 # ● Update Animation
 #--------------------------------------------------------------------------                 
  def update_animation
      @animation_duration -= 1 if @animation_duration > 0
      return if @animation_duration > 0 
      if self.zoom_x > 1
         self.zoom_x -= 0.06
         self.x += 5
         self.y += 6        
         self.opacity += 35
         self.zoom_y = self.zoom_x
         if self.zoom_x <= 1
            self.zoom_x = 1
            self.zoom_y = self.zoom_x
            self.opacity = 255
            @text_duration = @duration - @animation_duration2
         end       
       else
          @text_duration -= 1
       end
  end
      
end

#==============================================================================
# ■ Particle_Name_Map
#==============================================================================
class Particle_Name_Map < Sprite
  
  include MOG_TOUHOU_MAP_NAME
  
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------             
  def initialize(viewport = nil,x,y,ax,ay)
      super(viewport)
      self.bitmap = Cache.system("Map_Name_Particle")
      @pos = [x + self.bitmap.width,y - self.bitmap.height]
      @area = [ax - (self.bitmap.width * 4),ay - self.bitmap.height]
      reset_setting
  end  
  
 #--------------------------------------------------------------------------
 # ● Reset Setting
 #--------------------------------------------------------------------------               
  def reset_setting
      zoom = (50 + rand(100)) / 100.1
      self.zoom_x = zoom
      self.zoom_y = zoom
      self.x = @pos[0] + rand(@area[0])
      self.y = @pos[1] + rand(@area[1])
      self.z = MAP_NAME_Z + 1
      self.opacity = 0
      self.angle = rand(360)
      self.blend_type = 0
      @speed_x = 0
      @speed_y = [[rand(4), 4].min, 1].max
      @speed_a = rand(3)
      @fade_y = @pos[1] + 32
  end
  
 #--------------------------------------------------------------------------
 # ● Dispose
 #--------------------------------------------------------------------------               
  def dispose
      super
      self.bitmap.dispose
  end  
  
 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------               
  def update
      super
      self.y -= @speed_y
      self.opacity -= self.y > @fade_y ? -8 : 5
      reset_setting if self.y < 0
  end  
  
 #--------------------------------------------------------------------------
 # ● Update Fade
 #--------------------------------------------------------------------------               
  def update_fade
      self.y -= @speed_y
      self.opacity -= 5
  end    
  
end

#==============================================================================
# ■ Spriteset Map
#==============================================================================
class Spriteset_Map
 include MOG_TOUHOU_MAP_NAME
 
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------                 
  alias mog_mapname_initialize initialize
  def initialize
      @vis_time = 0
      @vis = map_name_visible?
      dispose_map_name
      create_map_name
      create_map_namelayout
      create_light      
      mog_mapname_initialize
  end
  
 #--------------------------------------------------------------------------
 # ● Create Map Name
 #--------------------------------------------------------------------------                 
  def create_map_name
      return if $game_temp.mapname_duration[2] > 0
      @map_name.each {|sprite| sprite.dispose} if @map_name != nil
      @map_name = [] 
      mapname = $game_map.display_name
      m_name = mapname.to_s.split(//)
      index = 0
      turn = 0
      duration = 20 * mapname.size      
      center_x = 10 * mapname.size
      $game_temp.mapname_duration[1] = (duration) + 64 if $game_temp.mapname_duration[1] <= 0
      x2 = (-170 + MAP_NAME_POSITION[0] + MAP_NAME_WORD_POSITION[0]) - center_x
      y2 = -170 + MAP_NAME_POSITION[1] + MAP_NAME_WORD_POSITION[1]
      if $game_temp.mapname_conf == [] 
         for i in m_name
             @map_name.push(Map_Name.new(i[0],(index * 20) + x2,y2,1.8,0,duration, 20 * index,0,turn,center_x))
             index += 1
             turn = turn == 0 ? 1 : 0
         end 
      else
         c = $game_temp.mapname_conf   
         for i in 0...c.size
             @map_name.push(Map_Name.new(c[index][0],c[index][1],c[index][2],c[index][3],c[index][4],c[index][5],c[index][6],c[index][7],turn,0))
             index += 1
             turn = turn == 0 ? 1 : 0 
         end        
      end
  end
  
 #--------------------------------------------------------------------------
 # ● Create Map Name Layout
 #--------------------------------------------------------------------------                   
 def create_map_namelayout
     return if $game_temp.mapname_duration[2] > 1
     if @map_name_layout != nil
        @map_name_layout.bitmap.dispose
        @map_name_layout.dispose
        @map_name_layout = nil
     end  
     @map_name_layout = Sprite.new
     @map_name_layout.bitmap = Cache.system("Map_Name_Layout.png")
     @map_name_layout.z = MAP_NAME_Z
     @map_name_org_position = [MAP_NAME_POSITION[0] - (@map_name_layout.bitmap.width / 2),MAP_NAME_POSITION[1] - (@map_name_layout.bitmap.height / 2)]
     if $game_temp.mapname_layout_conf == []
        @map_name_layout.x = @map_name_org_position[0] + 100
        @map_name_layout.y = @map_name_org_position[1]
        @map_name_layout.opacity = 0
     else
        @map_name_layout.x = $game_temp.mapname_layout_conf[0]
        @map_name_layout.y = $game_temp.mapname_layout_conf[1]
        @map_name_layout.opacity = $game_temp.mapname_layout_conf[2]
     end
 end  
 
  #--------------------------------------------------------------------------
  # ● Create Light
  #--------------------------------------------------------------------------  
  def create_light
      return if $game_temp.mapname_duration[2] > 1    
      x = MAP_NAME_POSITION[0] + MAP_NAME_PARTICLE_POSITION[0]
      y = MAP_NAME_POSITION[1] + MAP_NAME_PARTICLE_POSITION[1]    
      @particle_name =[]
      ax = @map_name_layout.bitmap.width - 32
      ay = @map_name_layout.bitmap.height - 32
      for i in 0...15
          @particle_name.push(Particle_Name_Map.new(nil,x,y,ax,ay))
      end  
  end 
 
 #--------------------------------------------------------------------------
 # ● Map Name Clear
 #--------------------------------------------------------------------------                   
 def map_name_clear
     @map_name.each {|sprite| sprite.dispose} if @map_name != nil
     @map_name = nil
     $game_temp.mapname_duration[0] = false
     $game_temp.mapname_duration[1] = -1
     $game_temp.mapname_conf.clear
     $game_temp.mapname_layout_conf.clear     
 end   
 
 #--------------------------------------------------------------------------
 # ● Layout Clear
 #--------------------------------------------------------------------------                         
  def layout_clear
      return if @map_name_layout == nil
      @map_name_layout.bitmap.dispose
      @map_name_layout.dispose
      @map_name_layout = nil
      $game_temp.mapname_layout_conf.clear
  end 
   
 #--------------------------------------------------------------------------
 # ● Dispose
 #--------------------------------------------------------------------------                 
  alias mog_mapname_dispose dispose 
  def dispose
      mog_mapname_dispose
      dispose_map_name
  end  
  
 #--------------------------------------------------------------------------
 # ● Dispose Map Mame
 #--------------------------------------------------------------------------                   
  def dispose_map_name
      dispose_map_name_word
      dispose_map_name_layout
      dispose_map_name_particle
 end
 
 #--------------------------------------------------------------------------
 # ● Dispose Map Mame Layout
 #--------------------------------------------------------------------------                     
 def dispose_map_name_layout
     return if @map_name_layout == nil
     $game_temp.mapname_layout_conf[0] = @map_name_layout.x
     $game_temp.mapname_layout_conf[1] = @map_name_layout.y
     $game_temp.mapname_layout_conf[2] = @map_name_layout.opacity
     @map_name_layout.bitmap.dispose
     @map_name_layout.dispose
 end      
     
 #--------------------------------------------------------------------------
 # ● Particle_Name Clear
 #--------------------------------------------------------------------------                         
  def dispose_map_name_particle
      return if @particle_name == nil
      @particle_name.each {|sprite| sprite.dispose} 
      @particle_name = nil         
  end 
 
 #--------------------------------------------------------------------------
 # ● Dispose Map Mame Word
 #--------------------------------------------------------------------------                     
 def dispose_map_name_word
     return if @map_name == nil
     index = 0
     for i in @map_name
         if $game_temp.mapname_conf[index] == nil
            $game_temp.mapname_conf[index] = ["",0,0,0,0,0,0,0,0]
         end  
         $game_temp.mapname_conf[index][0] = i.letter
         $game_temp.mapname_conf[index][1] = i.x
         $game_temp.mapname_conf[index][2] = i.y
         $game_temp.mapname_conf[index][3] = i.zoom_x
         $game_temp.mapname_conf[index][4] = i.opacity           
         $game_temp.mapname_conf[index][5] = i.duration  
         $game_temp.mapname_conf[index][6] = i.animation_duration
         $game_temp.mapname_conf[index][7] = i.text_duration
         i.dispose
         index += 1
     end
 end
      
 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------                 
  alias mog_mapname_update update
  def update
      mog_mapname_update
      update_map_name
  end  
  
 #--------------------------------------------------------------------------
 # ● Map Name Visible?
 #--------------------------------------------------------------------------                    
  def map_name_visible?
      return false if !SceneManager.scene_is?(Scene_Map)
      return false if @vis_time > 0
      return true
  end
  
 #--------------------------------------------------------------------------
 # ● Refresh Map Name
 #--------------------------------------------------------------------------                   
  def refresh_map_name
      return unless $game_temp.mapname
      $game_temp.mapname = false
      map_name_clear
      layout_clear
      dispose_map_name_particle
      $game_temp.mapname_duration[2] = 0      
      create_map_name
      create_map_namelayout
      create_light
  end  
  
 #--------------------------------------------------------------------------
 # ● Update Map Name
 #--------------------------------------------------------------------------                   
  def update_map_name
      refresh_map_name 
      dispose_map_name_time
      update_word
      update_map_name_layout
  end 
  
 #--------------------------------------------------------------------------
 # ● Update Light
 #--------------------------------------------------------------------------              
 def update_light
     return if @particle_name == nil
     for sprite in @particle_name
         sprite.update
         sprite.visible = @vis
     end  
 end
      
 #--------------------------------------------------------------------------
 # ● Update Fade ight
 #--------------------------------------------------------------------------              
 def update_fade_light
     return if @particle_name == nil
     @particle_name.each {|sprite| sprite.update_fade}      
 end  
 
 #--------------------------------------------------------------------------
 # ● Update Map Name Layout
 #--------------------------------------------------------------------------                     
  def update_map_name_layout
      return if @map_name_layout == nil
      @vis = map_name_visible?
      if !@vis
         @vis_time = 1
      else
         @vis_time -= 1 if @vis_time > 0
      end  
      @map_name_layout.visible = @vis
      if @map_name != nil
         @map_name_layout.opacity += 5
         update_light
         if @map_name_layout.x > @map_name_org_position[0]
            @map_name_layout.x -= 1
         end  
      else
         @map_name_layout.x -= 2 
         @map_name_layout.opacity -= 8
         update_fade_light
         if @map_name_layout.opacity <= 0
            layout_clear 
            dispose_map_name_particle
            $game_temp.mapname_duration[2] = 2
         end   
      end
  end
  
 #--------------------------------------------------------------------------
 # ● Update Word
 #--------------------------------------------------------------------------                     
  def update_word
      return if @map_name == nil       
      for map_sprite in @map_name
          map_sprite.update 
          map_sprite.visible = @vis
      end  
  end  
  
 #--------------------------------------------------------------------------
 # ● Dispose Map Name Time
 #--------------------------------------------------------------------------                       
  def dispose_map_name_time
      if $game_temp.mapname_duration[1] > 0
         $game_temp.mapname_duration[1] -= 1 
         return
      end   
      return if $game_temp.mapname_duration[1] < 0
      map_name_clear
      $game_temp.mapname_duration[2] = 1
  end  
    
end

$mog_rgss3_touhou_map_name = true

 

 

 

 

 

 

3) Event Text Popup V1.0

 

Descrizione:

Permette di visualizzare un commento in popup sulla mappa, come il nome dell mappa in cui si andrà se si prende una certa direzione o la descrizione di un oggetto sulla mappa.

 

Istruzioni:

Create un evento e dentro scrivete un commento contenente <Text = X> dove "X" è il testo che volete far comparire. Nelle istruzioni contenute nello script dice di usare il simpbolo " - " per staccare X da Text. Non è vero, bisogna usare "=". Burlone... Le istruzioni per il cambio font e il colore le trovate all'inizio dello script.

 

Screen: è senza dubbio un cristallo verde

 

 

 

Script:

 

 

#==============================================================================
# +++ MOG - Event Text Popup (v1.0) +++
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com
#==============================================================================
# Apresenta o um texto em cima do evento.
#==============================================================================
# Para ativa basta colocar um comentário com o prefixo:
#
# <Text - X>
#
# X - Texto apresentado no evento.
#
# Exemplo
#
# <Text - Teleport>
# <Text - Save Point>
#
#==============================================================================
module MOG_EVENT_TEXT_POPUP
  #Definição da fonte.
  FONT_NAME = "Arial"
  FONT_SIZE = 16
  FONT_BOLD = true
  FONT_COLOR = Color.new(255,255,255)
  #Definição da prioridade do Texto
  SCREEN_Z = 1
end  

#==============================================================================
# ■ Game CharacterBase
#==============================================================================
class Game_CharacterBase  
  attr_accessor :text
  attr_accessor :opacity
  attr_accessor :erased
end

#==============================================================================
# ■ Game Event
#==============================================================================
class Game_Event < Game_Character  
  
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------                     
  alias mog_event_text_initialize initialize
  def initialize(map_id, event)
      mog_event_text_initialize(map_id, event)
  end  
  
 #--------------------------------------------------------------------------
 # ● Setup Page Setting
 #--------------------------------------------------------------------------                     
  alias mog_event_text_setup_page_settings setup_page_settings
  def setup_page_settings
      mog_event_text_setup_page_settings
      setup_event_text
  end
    
 #--------------------------------------------------------------------------
 # ● Setup Event Text
 #--------------------------------------------------------------------------                       
  def setup_event_text
      return if @list == nil
      for command in @list
      if command.code == 108
         if command.parameters[0] =~ /<Text = ([^>]*)>/
            @text = $1
         end  
       end
      end 
  end
end  

#==============================================================================
# ■ Sprite Character Text
#==============================================================================
class Sprite_Character_Text < Sprite_Base
  
  include MOG_EVENT_TEXT_POPUP
  
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------                     
  def initialize(viewport = nil,character,sprite)
      super(viewport)
      text_size = character.text.to_s.split(//)
      w = 32 + (FONT_SIZE / 2) * text_size.size rescue nil
      w = 32 if w == nil or w < 32
      self.bitmap = Bitmap.new(w,32)
      self.bitmap.font.name = FONT_NAME
      self.bitmap.font.size = FONT_SIZE
      self.bitmap.font.bold = FONT_BOLD
      self.bitmap.font.color = FONT_COLOR
      self.bitmap.draw_text(0,0,self.width,self.height,character.text.to_s,1) rescue nil
      update_position(character,sprite) 
  end
  
 #--------------------------------------------------------------------------
 # ● Dispose
 #--------------------------------------------------------------------------                     
  def dispose
      super
      self.bitmap.dispose
  end  
 
 #--------------------------------------------------------------------------
 # ● Update Position
 #--------------------------------------------------------------------------                     
  def update_position(character,sprite)
      if character.erased
         self.visible = false
         return
      end  
      self.x = character.screen_x - self.width / 2
      self.y = character.screen_y - (sprite.height + self.height)
      self.z = character.screen_z + SCREEN_Z
      self.visible = character.transparent == true ? false : true
      self.opacity = character.opacity
  end 
  
end

#==============================================================================
# ■ Sprite Character
#==============================================================================
class Sprite_Character < Sprite_Base

 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------                    
  alias mog_event_text_initialize initialize
  def initialize(viewport, character = nil)
      mog_event_text_initialize(viewport, character)
      @character_text = ""
      create_event_text
  end  
  
 #--------------------------------------------------------------------------
 # ● Create Event Text
 #--------------------------------------------------------------------------                     
  def create_event_text
      return if @character == nil
      return if @character.text == nil
      return if @character.text == @character_text
      dispose_event_text
      @event_text = Sprite_Character_Text.new(viewport,@character,self)
      @character_text = @character.text
  end

 #--------------------------------------------------------------------------
 # ● Dispose
 #--------------------------------------------------------------------------                   
  alias mog_event_text_dispose dispose
  def dispose
      mog_event_text_dispose
      dispose_event_text
  end  
  
 #--------------------------------------------------------------------------
 # ● Dispose Event Text
 #--------------------------------------------------------------------------                     
  def dispose_event_text
      return if @event_text == nil
      @event_text.dispose
      @event_text = nil
  end
  
 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------                     
  alias mog_event_text_update update
  def update
      mog_event_text_update
      create_event_text
      update_event_text
  end  
  
 #--------------------------------------------------------------------------
 # ● Update Event Text
 #--------------------------------------------------------------------------                     
  def update_event_text
      return if @event_text == nil
      @event_text.update_position(@character,self)
  end
    
end 

$mog_rgss3_event_text_popup = true

 

 

 

 

4) CHARACTER EX V1.2

Descrizione:

Script piuttosto divertente, in realtà. Vi permette di poter giocare coi vostri chara, scegliendo di farli camminare basculando, o dargli un effetto tipo fantasma, di farli roteare come se fossero presi da una tromba d'aria o di farli diventare dei nanetti (e tante altre cose XD). Potete inoltre scegliere se far partire queste "trasformazioni" in automatico oppure scatenarle a seguito di un evento o toccando qualcosa. In parole povere, potete fare in modo che Alice mangi un fungo e diventi piccola... o che sia già piccola quando la incontrate! XD

 

Istruzioni:

Se volete che l'effetto parta in automatico appena entrate nella mappa, create un evento con la grafica del personaggio che desiderate e poi lanciate un commento con su scritto <Effects = EFFECT_TYPE> (dove EFFECT_TYPE è il tipo di effetto voluto).

 

Se invece volete che l'effetto parta a seguito di un evento o di un'azione da parte dell'eroe, richiamate lo script scrivendo char_effect(EVENT_ID, EFFECT_TYPE) (dove EVENT_ID e l'ID dell'evento che volete modificare, ivi inclusi i vostri eroi).

Tutti i tipi di variazioni disponibili sono all'inizo dello script. Sfogatevi!

Screen: aberrazioni...

 


Script:

 

 

#==============================================================================
# +++ MOG - Character EX (v1.2) +++
#==============================================================================
# By Moghunter 
# http://www.atelier-rgss.com/
#==============================================================================
# Adiciona vários efeitos visuais animados nos characters.
#==============================================================================

#==============================================================================
# ■ AUTO MODE (Animated Effects)
#==============================================================================
# Os efeitos começam automaticamente, coloque no evento os sequintes
# comentários para ativar os efeitos.
#
# <Effects = EFFECT_TYPE> 
#
# EX
#
# <Effects = Breath>
# <Effects = Ghost>
# <Effects = Clear>   
#
#  <--- EFFECT_TYPE --->
# 
# ●   Breath 
# Ativa o efeito de respiração. (LOOP EFFECT)
#
# ●   Big Breath
# Ativa o efeito de loop de zoom in e out. (LOOP EFFECT)
#
# ●   Ghost
# Ativa o efeito de desaparecer e aparecer. (LOOP EFFECT)
#
# ●   Swing
# Ativa o efeito do character balançar para os lados.
#
# ●   Swing Loop
# Ativa o efeito do character balançar para os lados. (LOOP EFFECT)
#
# ●  Spin
# Faz o character girar em 360 graus
#
# ●  Spin Loop 
# Faz o character girar em 360 graus. (LOOP EFFECT)
#
# ●  Slime Breath
# Ativa o efeito de movimento semelhante ao de um slime. (LOOP EFFECT)
#
# ●  Crazy
# 
# Faz o character virar para esquerda e direita rapidamente. (LOOP EFFECT)
#
# ●  Appear
# Ativa o efeito de aparição.
#
# ●  Disappear
# Ativa o efeito de desaparecer.
#
# ●  Dwarf
# Deixa o character anão.
#
# ●  Giant
# Deixa o character gigante.
#
# ●  Normal
# Faz o character voltar ao normal de forma gradual.
#
# ●  Clear
# Cancela todos os efeitos.
#
#==============================================================================

#==============================================================================
# ■ MANUAL MODE (Animated Effects)
#==============================================================================
# Use o código abaixo através do comando chamar script. 
#
# char_effect(EVENT_ID, EFFECT_TYPE)
#
# EX -    char_effect( 10,"Breath")
#         char_effect( 0, "Dwarf")     
#
# ● EVENT_ID
# - Maior que 0 para definir as IDs dos eventos no mapa.
# - Iguál a 0 para ativar os efeitos no personagem principal (Leader).
# - Menor que 0 para definir as IDs dos sequidores.
#
# ● EFFECT_TYPE
# - Use os mesmos nomes dos efeitos da ativação automática.
# 
#==============================================================================

#==============================================================================
# ■ EXTRA EFFECTS (Fix Values)
#==============================================================================
#
# ●     <Zoom = X> 
#   
# ●     <Opacity = X> 
#
# ●     <Blend Type = X>   
#    
# ●     <Mirror = X>   
#
#==============================================================================

#==============================================================================
# ■ CANCEL EFFECTS        (Loop Effects)
#==============================================================================
#
# ●     char_effect(EVENT_ID, "Clear")
# EX -  char_effect(15, "Clear") 
#
# Para cancelar um evento(Personagem) especifico.
#
# ●     clear_all_events_effects
# Para cancelar todos os efeitos dos eventos no mapa.
#
# ●     clear_all_party_effects     
# Para cancelar todos os efeitos do grupo(Personagem).
#
# ●     clear_all_ex_effects
# Para cancelar tudo.
#
#==============================================================================


#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v 1.2 - Adição dos comandos para definir valores fixos nos characters.
# v 1.1 - Correção na definição da ID dos personagens aliados.
#==============================================================================

#==============================================================================
# ■ Game_CharacterBase
#==============================================================================
class Game_CharacterBase
  
  attr_accessor :effects
  attr_accessor :opacity
  attr_accessor :erased
  attr_accessor :zoom_x
  attr_accessor :zoom_y
  attr_accessor :mirror
  attr_accessor :angle
  attr_accessor :blend_type
  
  #--------------------------------------------------------------------------
  # ● initialize
  #--------------------------------------------------------------------------  
  alias mog_character_effects_initialize initialize
  def initialize
      @effects = ["",0,false]
      @zoom_x = 1.00
      @zoom_y = 1.00
      @mirror = false
      @angle = 0
      mog_character_effects_initialize
  end
  
  #--------------------------------------------------------------------------
  # ● Clear Effects
  #--------------------------------------------------------------------------      
  def clear_effects
      @effects = ["",0,false]
      @zoom_x = 1.00
      @zoom_y = 1.00
      @mirror = false
      @angle = 0
      @opacity = 255
      @blend_type = 0
  end  
  
  #--------------------------------------------------------------------------
  # ● update
  #--------------------------------------------------------------------------    
  alias mog_character_ex_effects_update update
  def update
      mog_character_ex_effects_update
      update_character_ex_effects
  end  
  
  #--------------------------------------------------------------------------
  # ● Update Character EX Effects
  #--------------------------------------------------------------------------      
  def update_character_ex_effects
      return if @erased or @effects[0] == ""
      check_new_effect if @effects[2]
      case @effects[0] 
         when "Breath";        update_breath_effect
         when "Ghost";         update_ghost_effect           
         when "Big Breath";    update_big_breath_effect
         when "Slime Breath";  update_slime_breath_effect               
         when "Spin Loop";     update_spin_loop_effect           
         when "Swing Loop";    update_swing_loop_effect
         when "Crazy";         update_crazy_effect           
         when "Appear";        update_appear_effect
         when "Disappear";     update_disappear_effect
         when "Swing";         update_swing_effect
         when "Spin";          update_spin_effect
         when "Dwarf";         update_dwarf_effect
         when "Giant";         update_giant_effect
         when "Normal";         update_normal_effect  
      end
  end
  
  #--------------------------------------------------------------------------
  # ● Check New Effect
  #--------------------------------------------------------------------------        
  def check_new_effect
      @effects[2] = false
      @effects[1] = 0
      unless @effects[0] == "Normal"
             @opacity = 255
             @angle = 0
             @mirror = false
             unless (@effects[0] == "Dwarf" or @effects[0] == "Giant") 
                  @zoom_x = 1.00
                  @zoom_y = 1.00
             end                   
      end     
      case @effects[0] 
         when "Breath"
            @effects[1] = rand(60)
         when "Appear"
            @zoom_x = 0.1
            @zoom_y = 3.5
            @opacity = 0
         when "Ghost"
            @opacity = rand(255)
         when "Swing Loop"
            @angle = 20
            @effects[1] = rand(60)
         when "Spin Loop"
            @angle = rand(360)
         when "Slime Breath"
            @effects[1] = rand(60)
         when "Big Breath"
            @effects[1] = rand(60)
         when "Normal"
            pre_angle = 360 * (@angle / 360).truncate
            @angle = @angle - pre_angle
            @angle = 0 if @angle < 0
      end
  end  
  
  #--------------------------------------------------------------------------
  # ● Check New Effect
  #--------------------------------------------------------------------------          
  def update_breath_effect
      @effects[1] += 1
      case @effects[1]
         when 0..25
           @zoom_y += 0.005
           if @zoom_y > 1.12
              @zoom_y = 1.12
              @effects[1] = 26
           end  
         when 26..50
           @zoom_y -= 0.005
           if @zoom_y < 1.0 
              @zoom_y = 1.0
              @effects[1] = 51
           end           
         else
           @zoom_x = 1
           @zoom_y = 1
           @effects[1] = 0 
      end
  end
  
  #--------------------------------------------------------------------------
  # ● Update Ghost Effect
  #--------------------------------------------------------------------------            
  def update_ghost_effect
      @effects[1] += 1
      case @effects[1]
         when 0..55
             @opacity += 5
             @effects[1] = 56 if @opacity >= 255
         when 56..120
             @opacity -= 5
             @effects[1] = 121 if @opacity <= 0
         else
            @opacity = 0
            @effects[1] = 0
      end 
  end  

  #--------------------------------------------------------------------------
  # ● Update Swing Loop Effect
  #--------------------------------------------------------------------------              
  def update_swing_loop_effect
      @effects[1] += 1
      case @effects[1]
         when 0..40
            @angle -= 1
            if @angle < -19
               @angle = -19
               @effects[1] = 41
            end  
         when 41..80 
            @angle += 1
            if @angle > 19
               @angle = 19
               @effects[1] = 81
            end   
         else
            @angle = 20
            @effects[1] = 0
       end
  end  

  #--------------------------------------------------------------------------
  # ● Update Swing Effect
  #--------------------------------------------------------------------------              
  def update_swing_effect
      @effects[1] += 1
      case @effects[1]
         when 0..20
            @angle -= 1
         when 21..60 
            @angle += 1
         when 61..80  
            @angle -= 1
         else
            clear_effects
      end     
  end  
    
  #--------------------------------------------------------------------------
  # ● Update Spin Loop Effect
  #--------------------------------------------------------------------------                
  def update_spin_loop_effect
      @angle += 3
  end  
  
  #--------------------------------------------------------------------------
  # ● Update Spin Effect
  #--------------------------------------------------------------------------                
  def update_spin_effect
      @angle += 10
      clear_effects if @angle >= 360
  end    
  
  #--------------------------------------------------------------------------
  # ● Update Slime Breath Effect
  #--------------------------------------------------------------------------          
  def update_slime_breath_effect
      @effects[1] += 1
      case @effects[1]
         when 0..30
           @zoom_x += 0.005
           @zoom_y -= 0.005
           if @zoom_x > 1.145 
              @zoom_x = 1.145
              @zoom_y = 0.855
              @effects[1] = 31
           end             
         when 31..60
           @zoom_x -= 0.005
           @zoom_y += 0.005    
           if @zoom_x < 1.0
              @zoom_x = 1.0
              @zoom_y = 1.0
              @effects[1] = 61
           end             
         else
           @zoom_x = 1
           @zoom_y = 1.0
           @effects[1] = 0 
      end
  end  
 
  #--------------------------------------------------------------------------
  # ● Update Big Breath Effect
  #--------------------------------------------------------------------------          
  def update_big_breath_effect
      @effects[1] += 1
      case @effects[1]
         when 0..30
           @zoom_x += 0.02
           @zoom_y = @zoom_x 
           if @zoom_x > 1.6   
              @zoom_x = 1.6         
              @zoom_y = @zoom_x 
              @effects[1] = 31
           end
         when 31..60
           @zoom_x -= 0.02
           @zoom_y = @zoom_x 
           if @zoom_x < 1.0    
              @zoom_x = 1.0
              @zoom_y = @zoom_x 
              @effects[1] = 61 
           end   
         else
           @zoom_x = 1
           @zoom_y = 1
           @effects[1] = 0 
      end
  end    
  
  #--------------------------------------------------------------------------
  # ● Update Disappear Effect
  #--------------------------------------------------------------------------            
  def update_disappear_effect
      @zoom_x -= 0.01
      @zoom_y += 0.05
      @opacity -= 3      
  end
  
  #--------------------------------------------------------------------------
  # ● Update Appear Effect
  #--------------------------------------------------------------------------            
  def update_appear_effect
      @zoom_x += 0.02
      @zoom_x = 1.0 if @zoom_x > 1.0
      @zoom_y -= 0.05
      @zoom_y = 1.0 if @zoom_y < 1.0
      @opacity += 3
      clear_effects if @opacity >= 255
  end  

  #--------------------------------------------------------------------------
  # ● Update Crazy Effect
  #--------------------------------------------------------------------------              
  def update_crazy_effect
      @effects[1] += 1
      case @effects[1]
         when 1..5
           @mirror = false
         when 6..10
           @mirror = true
         else
           @mirror = false
           @effects[1] = 0 
      end      
  end  
  
  #--------------------------------------------------------------------------
  # ● Update Dwarf Effect
  #--------------------------------------------------------------------------                
  def update_dwarf_effect
      if @zoom_x > 0.5
         @zoom_x -= 0.01
         @zoom_y -= 0.01
      end       
  end
  
  #--------------------------------------------------------------------------
  # ● Update Giant Effect
  #--------------------------------------------------------------------------                
  def update_giant_effect
      if @zoom_x < 1.8
         @zoom_x += 0.01
         @zoom_y += 0.01
      end       
  end   
  
  #--------------------------------------------------------------------------
  # ● Update Normal
  #--------------------------------------------------------------------------                  
  def update_normal_effect  
      if @zoom_x > 1.0 
         @zoom_x -= 0.01
         @zoom_x = 1.0 if @zoom_x < 1.0  
      elsif @zoom_x < 1.0 
         @zoom_x += 0.01
         @zoom_x = 1.0 if @zoom_x > 1.0              
      end
      if @zoom_y > 1.0 
         @zoom_y -= 0.01
         @zoom_y = 1.0 if @zoom_y < 1.0  
      elsif @zoom_y < 1.0 
         @zoom_y += 0.01
         @zoom_y = 1.0 if @zoom_y > 1.0              
     end        
     if @opacity < 255
        @opacity += 2 
        @opacity = 255 if @opacity > 255
     end
     if @angle > 0 
        @angle -= 5 
        @angle = 0 if @angle < 0
     end   
     if (@zoom_x == 1.0 and @zoom_y == 1.0 and @opacity == 255 and @angle == 0)
        clear_effects
     end  
  end  
  
end

#==============================================================================
# ■ Game Event
#==============================================================================
class Game_Event < Game_Character  
  
 #--------------------------------------------------------------------------
 # ● Setup Page Setting
 #--------------------------------------------------------------------------                     
  alias mog_character_effects_setup_page_settings setup_page_settings
  def setup_page_settings
      mog_character_effects_setup_page_settings
      setup_character_ex_effects
  end
    
 #--------------------------------------------------------------------------
 # ● Setup Character Effects
 #--------------------------------------------------------------------------                       
  def setup_character_ex_effects
      return if @list == nil
      for command in @list
      if command.code == 108
         if command.parameters[0] =~ /<Effects = ([^>]*)>/
            @effects = [$1,0,true]
         end   
         if command.parameters[0] =~ /<Zoom = (\d+)>/i 
            @zoom_x = $1.to_i
            @zoom_y = @zoom_x
         end   
         if command.parameters[0] =~ /<Opacity = (\d+)>/i 
            @opacity = $1.to_i
         end   
         if command.parameters[0] =~ /<Blend Type = (\d+)>/i   
            @blend_type = $1.to_i           
         end 
         if command.parameters[0] =~ /<Mirror = (\w+)>/i
            @mirror = $1
         end            
       end
      end 
  end
end  

#==============================================================================
# ■ Sprite Character
#==============================================================================
class Sprite_Character < Sprite_Base
  
  #--------------------------------------------------------------------------
  # ● Update Other
  #--------------------------------------------------------------------------    
  alias mog_character_ex_effects_update_other update_other
  def update_other
      mog_character_ex_effects_update_other
      update_other_ex
  end  

  #--------------------------------------------------------------------------
  # ● Update_other_EX
  #--------------------------------------------------------------------------      
  def update_other_ex
      self.zoom_x = @character.zoom_x
      self.zoom_y = @character.zoom_y
      self.mirror = @character.mirror
      self.angle = @character.angle    
  end  
  
end

#==============================================================================
# ■ CHARCTER EX EFFECTS COMMAND
#==============================================================================
module CHARACTER_EX_EFFECTS_COMMAND
  
  #--------------------------------------------------------------------------
  # ● Char Effect
  #--------------------------------------------------------------------------      
  def char_effect(event_id = 0, effect_type = "Breath")
      if event_id < 0
         target = $game_player.followers[event_id.abs - 1] rescue nil
      elsif event_id == 0
         target = $game_player rescue nil
      else  
         target = $game_map.events[event_id] rescue nil
      end
      execute_char_effect(target,effect_type) if target != nil
 end  
      
  #--------------------------------------------------------------------------
  # ● Execute Char Effect
  #--------------------------------------------------------------------------        
  def execute_char_effect(target,effect_type)
      if effect_type == "Clear"
         target.clear_effects rescue nil
         return
      end           
      target.effects[0] = effect_type.to_s rescue nil
      target.effects[2] = true rescue nil
  end
  
  #--------------------------------------------------------------------------
  # ● Clear_All_Events Effects
  #--------------------------------------------------------------------------            
  def clear_all_events_effects
      for event in $game_map.events.values
          event.clear_effects
      end  
  end

  #--------------------------------------------------------------------------
  # ● Clear_All_Party Effects
  #--------------------------------------------------------------------------              
  def clear_all_party_effects
      $game_player.clear_effects
      for folower in $game_player.followers
          folower.clear_effects
      end
  end
    
  #--------------------------------------------------------------------------
  # ● Clear_All_Char_Effects
  #--------------------------------------------------------------------------          
  def clear_all_ex_effects
      clear_all_events_effects
      clear_all_party_effects
  end
  
end  

#==============================================================================
# ■ Game Interpreter
#==============================================================================
class Game_Interpreter
   include CHARACTER_EX_EFFECTS_COMMAND
end  

#==============================================================================
# ■ Game_CharacterBase
#==============================================================================
class Game_CharacterBase
    include CHARACTER_EX_EFFECTS_COMMAND
end

$mog_rgss3_character_ex = true

 

 

Edited by lupius

"Lo trasformerò in una pulce. Un'innocua, piccola pulce. Poi metterò la pulce in una scatola; e la scatola dentro un'altra scatola! Quindi spedirò la scatola a me stessa e quando arriverà.... HAHAHAHA!! LA SPIACCICHERO' CON UN MARTELLO! E' una splendida, splendida idea, geniale direi!! .......... No.... Troppi francobolli..."

 

- Izma - "Le follie dell'imperatore"

Link to comment
Share on other sites

Molto utile postarli divisi, per chi non vuole necessariamente usarli tutti o non è capace a ripparli^^

http://s18.postimg.org/k4vemzo51/logoc3.png

 

http://s22.postimg.org/ndw7yqdi5/BANNER01.png

 

"Temi il buio perchè non sei conscio dei segreti che esso nasconde..."

KURAI - Stealth Rpg, Progetto per l'RTP Game Contest

Status - |||||||||| 10%

Link to comment
Share on other sites

Già ma adesso mi si pone un altro problema... sono più di 20, viene fuori un messaggio chilometrico!

"Lo trasformerò in una pulce. Un'innocua, piccola pulce. Poi metterò la pulce in una scatola; e la scatola dentro un'altra scatola! Quindi spedirò la scatola a me stessa e quando arriverà.... HAHAHAHA!! LA SPIACCICHERO' CON UN MARTELLO! E' una splendida, splendida idea, geniale direi!! .......... No.... Troppi francobolli..."

 

- Izma - "Le follie dell'imperatore"

Link to comment
Share on other sites

Come detto puoi pure postarli sfusi in più topic cercando prima se sono stati postati già i singoli! ^ ^

 

Comunque ricorda di descrivere per bene e mettere qualche screen di anteprima ^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

Come detto puoi pure postarli sfusi in più topic cercando prima se sono stati postati già i singoli! ^ ^

 

Comunque ricorda di descrivere per bene e mettere qualche screen di anteprima ^ ^

 

Ok, grazie. Devo farci la mano col layout ^^

 

EDIT: aggiunto gli script per visualizzazione animata del nome della mappa in stile Touhou e per i testi di descrizione in popupXD

Edited by lupius

"Lo trasformerò in una pulce. Un'innocua, piccola pulce. Poi metterò la pulce in una scatola; e la scatola dentro un'altra scatola! Quindi spedirò la scatola a me stessa e quando arriverà.... HAHAHAHA!! LA SPIACCICHERO' CON UN MARTELLO! E' una splendida, splendida idea, geniale direi!! .......... No.... Troppi francobolli..."

 

- Izma - "Le follie dell'imperatore"

Link to comment
Share on other sites

per il Touhou Map Name ho visto che visualizzava due volte il nome della mappa, quindi ho commentato la linea 143 dello Scene_Map risolvendo il problema e visualizzando solo quello dello script di moghunter.

Nuovi progetti:

 


w43ztoqv1klp55a6g.jpg

11764.png

 

bpc40hzhbo2xzd76g.jpg

 

00oVI6.gif gifnatale1.pngSvsJAL.pngvgnoJt.png YT3YHP.png fcCbvW.png

Script:

 

 

KZM - MZ Engine (solo core e party per ora)
KZM - MV Core
KZM - Engine Ace


Tutorial

 


Spoiler da guardare se vi interessano

 



Progetti in corso

 

Avanzamento Le Cronache di Arshes - La Strana Sopravvivenza
|||||||||||||||||||| 10% Restart imminente

Avanzamento Undead
|||||||||||||||||||| 15%

Avanzamento Le Cronache di Arshes - La Storia Continua
|||||||||||||||||||| 20% Restart Imminente

ZQ68dC.png rescue-fantasy&size=160x160


Adozioni...

 


AdottinoJudgementDragon.png
(\__/)
( ^^ )
(< >)


Screen Contests

 

q9m.gif

 


MANIFESTO DEL MAKING ITALIANO

 


SALVIAMO IL MAKING ITALIANO!!
Dopo un test dei nostri esperti (Alato, Blake e havana24) abbiamo scoperto che ad interesse risponde interesse: cioè se voi dimostrate di essere interessati a ciò che creano gli altri, questi saranno stimolati a continuare a creare! E' un concetto semplice ma estremamente sottovalutato, basta vedere quanti topic di bei giochi sono caduti nel dimenticatoio e sono stati cagati solo da poche persone (prendiamo per esempio il fantastico gioco di Vech che vi invito a vedere nella sezione RM2k).
Perciò quello che dobbiamo fare è: leggere, leggere, leggere, postare,8 postare, postare! E questo non significa postare a caso, ma leggere per bene il progetto di qualcuno, le domande poste, le creazioni grafiche e musicali, e fare dei post in cui si propongano miglioramenti, si critichino le brutture, si esaltino le bellezze, si aiutino gli oppressi etc etc
BASTA AL MAKING ITALIANO CHE VA A ROTOLI! DIAMOCI UNA SVEGLIATA!!
Per dimostrarvi ciò che sto esponendo vi riporto che la volta in cui abbiamo provato (Alato, Blake e havana24) a fare una cosa di questo genere, c'è costata un pomeriggio ma il giorno dopo abbiamo ottenuto il numero massimo di utenti online mai raggiunto!!! Ma soprattutto ciò significa che l'interesse riguardo al making era stato, almeno momentaneamente, risvegliato!!
Voi pensate che eravamo solo in 3 a cercare tutti i topic e ravvivarli (con sincerità e senza i soliti falsi "Oh che bello.", ma anche con critiche per lavori incompleti o assurdi) e abbiamo ottenuto quel grande risultato: se lo facessimo tutti non sarebbe una cosa potentissima?!?
BASTA ALLE SOLITE BANALI DISCUSSIONI SULLA DECADENZA DEI GIOCHI!! FACCIAMOLI STI GIOCHI!!!
Chi è contrario a questa cosa, può pure continuare così ma è una persona che col making non ha nulla a che fare, ma chi crede nel making inizi ora, immediatamente a seguire questa linea di pensiero!

Ma chi è d'accordo, chi davvero ci tiene al making, incolli questo Manifesto nella propria firma!! Mettete anche voi questa firma!!


Come allegare immagini al forum Bottega Rise of The Hero
5545.png 869.png250d-79e61bdc7724a730c12102387964d19e04arol.gif1321.png

Link to comment
Share on other sites

per il Touhou Map Name ho visto che visualizzava due volte il nome della mappa, quindi ho commentato la linea 143 dello Scene_Map risolvendo il problema e visualizzando solo quello dello script di moghunter.

 

Non ho capito... Qual era il problema? Io (in effetti ho dimenticato di dirlo) ho riscontrato un problema di ripetizione isterica ma ho risolto mettendo uno switch locale... Tu invece?

"Lo trasformerò in una pulce. Un'innocua, piccola pulce. Poi metterò la pulce in una scatola; e la scatola dentro un'altra scatola! Quindi spedirò la scatola a me stessa e quando arriverà.... HAHAHAHA!! LA SPIACCICHERO' CON UN MARTELLO! E' una splendida, splendida idea, geniale direi!! .......... No.... Troppi francobolli..."

 

- Izma - "Le follie dell'imperatore"

Link to comment
Share on other sites

in poche parole senza la modifica che ho fatto, visualizza anche il nome della mappa come farebbe normalmente.

Nuovi progetti:

 


w43ztoqv1klp55a6g.jpg

11764.png

 

bpc40hzhbo2xzd76g.jpg

 

00oVI6.gif gifnatale1.pngSvsJAL.pngvgnoJt.png YT3YHP.png fcCbvW.png

Script:

 

 

KZM - MZ Engine (solo core e party per ora)
KZM - MV Core
KZM - Engine Ace


Tutorial

 


Spoiler da guardare se vi interessano

 



Progetti in corso

 

Avanzamento Le Cronache di Arshes - La Strana Sopravvivenza
|||||||||||||||||||| 10% Restart imminente

Avanzamento Undead
|||||||||||||||||||| 15%

Avanzamento Le Cronache di Arshes - La Storia Continua
|||||||||||||||||||| 20% Restart Imminente

ZQ68dC.png rescue-fantasy&size=160x160


Adozioni...

 


AdottinoJudgementDragon.png
(\__/)
( ^^ )
(< >)


Screen Contests

 

q9m.gif

 


MANIFESTO DEL MAKING ITALIANO

 


SALVIAMO IL MAKING ITALIANO!!
Dopo un test dei nostri esperti (Alato, Blake e havana24) abbiamo scoperto che ad interesse risponde interesse: cioè se voi dimostrate di essere interessati a ciò che creano gli altri, questi saranno stimolati a continuare a creare! E' un concetto semplice ma estremamente sottovalutato, basta vedere quanti topic di bei giochi sono caduti nel dimenticatoio e sono stati cagati solo da poche persone (prendiamo per esempio il fantastico gioco di Vech che vi invito a vedere nella sezione RM2k).
Perciò quello che dobbiamo fare è: leggere, leggere, leggere, postare,8 postare, postare! E questo non significa postare a caso, ma leggere per bene il progetto di qualcuno, le domande poste, le creazioni grafiche e musicali, e fare dei post in cui si propongano miglioramenti, si critichino le brutture, si esaltino le bellezze, si aiutino gli oppressi etc etc
BASTA AL MAKING ITALIANO CHE VA A ROTOLI! DIAMOCI UNA SVEGLIATA!!
Per dimostrarvi ciò che sto esponendo vi riporto che la volta in cui abbiamo provato (Alato, Blake e havana24) a fare una cosa di questo genere, c'è costata un pomeriggio ma il giorno dopo abbiamo ottenuto il numero massimo di utenti online mai raggiunto!!! Ma soprattutto ciò significa che l'interesse riguardo al making era stato, almeno momentaneamente, risvegliato!!
Voi pensate che eravamo solo in 3 a cercare tutti i topic e ravvivarli (con sincerità e senza i soliti falsi "Oh che bello.", ma anche con critiche per lavori incompleti o assurdi) e abbiamo ottenuto quel grande risultato: se lo facessimo tutti non sarebbe una cosa potentissima?!?
BASTA ALLE SOLITE BANALI DISCUSSIONI SULLA DECADENZA DEI GIOCHI!! FACCIAMOLI STI GIOCHI!!!
Chi è contrario a questa cosa, può pure continuare così ma è una persona che col making non ha nulla a che fare, ma chi crede nel making inizi ora, immediatamente a seguire questa linea di pensiero!

Ma chi è d'accordo, chi davvero ci tiene al making, incolli questo Manifesto nella propria firma!! Mettete anche voi questa firma!!


Come allegare immagini al forum Bottega Rise of The Hero
5545.png 869.png250d-79e61bdc7724a730c12102387964d19e04arol.gif1321.png

Link to comment
Share on other sites

in poche parole senza la modifica che ho fatto, visualizza anche il nome della mappa come farebbe normalmente.

 

Che strano, a me questa cosa non succede... Mi potresti dire di preciso che modifica hai fatto così la metto nelle istruzioni? Almeno se capita a qualcun altro sa come risolvere...

"Lo trasformerò in una pulce. Un'innocua, piccola pulce. Poi metterò la pulce in una scatola; e la scatola dentro un'altra scatola! Quindi spedirò la scatola a me stessa e quando arriverà.... HAHAHAHA!! LA SPIACCICHERO' CON UN MARTELLO! E' una splendida, splendida idea, geniale direi!! .......... No.... Troppi francobolli..."

 

- Izma - "Le follie dell'imperatore"

Link to comment
Share on other sites

ho aggiunto il # all'inizio della linea 143 dello Scene_Map classico di rpg maker vx ace.

Nuovi progetti:

 


w43ztoqv1klp55a6g.jpg

11764.png

 

bpc40hzhbo2xzd76g.jpg

 

00oVI6.gif gifnatale1.pngSvsJAL.pngvgnoJt.png YT3YHP.png fcCbvW.png

Script:

 

 

KZM - MZ Engine (solo core e party per ora)
KZM - MV Core
KZM - Engine Ace


Tutorial

 


Spoiler da guardare se vi interessano

 



Progetti in corso

 

Avanzamento Le Cronache di Arshes - La Strana Sopravvivenza
|||||||||||||||||||| 10% Restart imminente

Avanzamento Undead
|||||||||||||||||||| 15%

Avanzamento Le Cronache di Arshes - La Storia Continua
|||||||||||||||||||| 20% Restart Imminente

ZQ68dC.png rescue-fantasy&size=160x160


Adozioni...

 


AdottinoJudgementDragon.png
(\__/)
( ^^ )
(< >)


Screen Contests

 

q9m.gif

 


MANIFESTO DEL MAKING ITALIANO

 


SALVIAMO IL MAKING ITALIANO!!
Dopo un test dei nostri esperti (Alato, Blake e havana24) abbiamo scoperto che ad interesse risponde interesse: cioè se voi dimostrate di essere interessati a ciò che creano gli altri, questi saranno stimolati a continuare a creare! E' un concetto semplice ma estremamente sottovalutato, basta vedere quanti topic di bei giochi sono caduti nel dimenticatoio e sono stati cagati solo da poche persone (prendiamo per esempio il fantastico gioco di Vech che vi invito a vedere nella sezione RM2k).
Perciò quello che dobbiamo fare è: leggere, leggere, leggere, postare,8 postare, postare! E questo non significa postare a caso, ma leggere per bene il progetto di qualcuno, le domande poste, le creazioni grafiche e musicali, e fare dei post in cui si propongano miglioramenti, si critichino le brutture, si esaltino le bellezze, si aiutino gli oppressi etc etc
BASTA AL MAKING ITALIANO CHE VA A ROTOLI! DIAMOCI UNA SVEGLIATA!!
Per dimostrarvi ciò che sto esponendo vi riporto che la volta in cui abbiamo provato (Alato, Blake e havana24) a fare una cosa di questo genere, c'è costata un pomeriggio ma il giorno dopo abbiamo ottenuto il numero massimo di utenti online mai raggiunto!!! Ma soprattutto ciò significa che l'interesse riguardo al making era stato, almeno momentaneamente, risvegliato!!
Voi pensate che eravamo solo in 3 a cercare tutti i topic e ravvivarli (con sincerità e senza i soliti falsi "Oh che bello.", ma anche con critiche per lavori incompleti o assurdi) e abbiamo ottenuto quel grande risultato: se lo facessimo tutti non sarebbe una cosa potentissima?!?
BASTA ALLE SOLITE BANALI DISCUSSIONI SULLA DECADENZA DEI GIOCHI!! FACCIAMOLI STI GIOCHI!!!
Chi è contrario a questa cosa, può pure continuare così ma è una persona che col making non ha nulla a che fare, ma chi crede nel making inizi ora, immediatamente a seguire questa linea di pensiero!

Ma chi è d'accordo, chi davvero ci tiene al making, incolli questo Manifesto nella propria firma!! Mettete anche voi questa firma!!


Come allegare immagini al forum Bottega Rise of The Hero
5545.png 869.png250d-79e61bdc7724a730c12102387964d19e04arol.gif1321.png

Link to comment
Share on other sites

Grassie! Ho aggiunto il tuo suggerimento. Ma sarà strano che succeda a te o che non succeda a me? XD

"Lo trasformerò in una pulce. Un'innocua, piccola pulce. Poi metterò la pulce in una scatola; e la scatola dentro un'altra scatola! Quindi spedirò la scatola a me stessa e quando arriverà.... HAHAHAHA!! LA SPIACCICHERO' CON UN MARTELLO! E' una splendida, splendida idea, geniale direi!! .......... No.... Troppi francobolli..."

 

- Izma - "Le follie dell'imperatore"

Link to comment
Share on other sites

boh, io penso che rpg maker vx ace sia pieno di misteri fino all'orlo.

Nuovi progetti:

 


w43ztoqv1klp55a6g.jpg

11764.png

 

bpc40hzhbo2xzd76g.jpg

 

00oVI6.gif gifnatale1.pngSvsJAL.pngvgnoJt.png YT3YHP.png fcCbvW.png

Script:

 

 

KZM - MZ Engine (solo core e party per ora)
KZM - MV Core
KZM - Engine Ace


Tutorial

 


Spoiler da guardare se vi interessano

 



Progetti in corso

 

Avanzamento Le Cronache di Arshes - La Strana Sopravvivenza
|||||||||||||||||||| 10% Restart imminente

Avanzamento Undead
|||||||||||||||||||| 15%

Avanzamento Le Cronache di Arshes - La Storia Continua
|||||||||||||||||||| 20% Restart Imminente

ZQ68dC.png rescue-fantasy&size=160x160


Adozioni...

 


AdottinoJudgementDragon.png
(\__/)
( ^^ )
(< >)


Screen Contests

 

q9m.gif

 


MANIFESTO DEL MAKING ITALIANO

 


SALVIAMO IL MAKING ITALIANO!!
Dopo un test dei nostri esperti (Alato, Blake e havana24) abbiamo scoperto che ad interesse risponde interesse: cioè se voi dimostrate di essere interessati a ciò che creano gli altri, questi saranno stimolati a continuare a creare! E' un concetto semplice ma estremamente sottovalutato, basta vedere quanti topic di bei giochi sono caduti nel dimenticatoio e sono stati cagati solo da poche persone (prendiamo per esempio il fantastico gioco di Vech che vi invito a vedere nella sezione RM2k).
Perciò quello che dobbiamo fare è: leggere, leggere, leggere, postare,8 postare, postare! E questo non significa postare a caso, ma leggere per bene il progetto di qualcuno, le domande poste, le creazioni grafiche e musicali, e fare dei post in cui si propongano miglioramenti, si critichino le brutture, si esaltino le bellezze, si aiutino gli oppressi etc etc
BASTA AL MAKING ITALIANO CHE VA A ROTOLI! DIAMOCI UNA SVEGLIATA!!
Per dimostrarvi ciò che sto esponendo vi riporto che la volta in cui abbiamo provato (Alato, Blake e havana24) a fare una cosa di questo genere, c'è costata un pomeriggio ma il giorno dopo abbiamo ottenuto il numero massimo di utenti online mai raggiunto!!! Ma soprattutto ciò significa che l'interesse riguardo al making era stato, almeno momentaneamente, risvegliato!!
Voi pensate che eravamo solo in 3 a cercare tutti i topic e ravvivarli (con sincerità e senza i soliti falsi "Oh che bello.", ma anche con critiche per lavori incompleti o assurdi) e abbiamo ottenuto quel grande risultato: se lo facessimo tutti non sarebbe una cosa potentissima?!?
BASTA ALLE SOLITE BANALI DISCUSSIONI SULLA DECADENZA DEI GIOCHI!! FACCIAMOLI STI GIOCHI!!!
Chi è contrario a questa cosa, può pure continuare così ma è una persona che col making non ha nulla a che fare, ma chi crede nel making inizi ora, immediatamente a seguire questa linea di pensiero!

Ma chi è d'accordo, chi davvero ci tiene al making, incolli questo Manifesto nella propria firma!! Mettete anche voi questa firma!!


Come allegare immagini al forum Bottega Rise of The Hero
5545.png 869.png250d-79e61bdc7724a730c12102387964d19e04arol.gif1321.png

Link to comment
Share on other sites

Ma te lo fa su un nuovo progetto? ^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

si. nel progetto però ho messo tutti gli script della demo di moghunter. Edited by KenzoMe92

Nuovi progetti:

 


w43ztoqv1klp55a6g.jpg

11764.png

 

bpc40hzhbo2xzd76g.jpg

 

00oVI6.gif gifnatale1.pngSvsJAL.pngvgnoJt.png YT3YHP.png fcCbvW.png

Script:

 

 

KZM - MZ Engine (solo core e party per ora)
KZM - MV Core
KZM - Engine Ace


Tutorial

 


Spoiler da guardare se vi interessano

 



Progetti in corso

 

Avanzamento Le Cronache di Arshes - La Strana Sopravvivenza
|||||||||||||||||||| 10% Restart imminente

Avanzamento Undead
|||||||||||||||||||| 15%

Avanzamento Le Cronache di Arshes - La Storia Continua
|||||||||||||||||||| 20% Restart Imminente

ZQ68dC.png rescue-fantasy&size=160x160


Adozioni...

 


AdottinoJudgementDragon.png
(\__/)
( ^^ )
(< >)


Screen Contests

 

q9m.gif

 


MANIFESTO DEL MAKING ITALIANO

 


SALVIAMO IL MAKING ITALIANO!!
Dopo un test dei nostri esperti (Alato, Blake e havana24) abbiamo scoperto che ad interesse risponde interesse: cioè se voi dimostrate di essere interessati a ciò che creano gli altri, questi saranno stimolati a continuare a creare! E' un concetto semplice ma estremamente sottovalutato, basta vedere quanti topic di bei giochi sono caduti nel dimenticatoio e sono stati cagati solo da poche persone (prendiamo per esempio il fantastico gioco di Vech che vi invito a vedere nella sezione RM2k).
Perciò quello che dobbiamo fare è: leggere, leggere, leggere, postare,8 postare, postare! E questo non significa postare a caso, ma leggere per bene il progetto di qualcuno, le domande poste, le creazioni grafiche e musicali, e fare dei post in cui si propongano miglioramenti, si critichino le brutture, si esaltino le bellezze, si aiutino gli oppressi etc etc
BASTA AL MAKING ITALIANO CHE VA A ROTOLI! DIAMOCI UNA SVEGLIATA!!
Per dimostrarvi ciò che sto esponendo vi riporto che la volta in cui abbiamo provato (Alato, Blake e havana24) a fare una cosa di questo genere, c'è costata un pomeriggio ma il giorno dopo abbiamo ottenuto il numero massimo di utenti online mai raggiunto!!! Ma soprattutto ciò significa che l'interesse riguardo al making era stato, almeno momentaneamente, risvegliato!!
Voi pensate che eravamo solo in 3 a cercare tutti i topic e ravvivarli (con sincerità e senza i soliti falsi "Oh che bello.", ma anche con critiche per lavori incompleti o assurdi) e abbiamo ottenuto quel grande risultato: se lo facessimo tutti non sarebbe una cosa potentissima?!?
BASTA ALLE SOLITE BANALI DISCUSSIONI SULLA DECADENZA DEI GIOCHI!! FACCIAMOLI STI GIOCHI!!!
Chi è contrario a questa cosa, può pure continuare così ma è una persona che col making non ha nulla a che fare, ma chi crede nel making inizi ora, immediatamente a seguire questa linea di pensiero!

Ma chi è d'accordo, chi davvero ci tiene al making, incolli questo Manifesto nella propria firma!! Mettete anche voi questa firma!!


Come allegare immagini al forum Bottega Rise of The Hero
5545.png 869.png250d-79e61bdc7724a730c12102387964d19e04arol.gif1321.png

Link to comment
Share on other sites

Mentre aspettiamo di far luce su questo mistero, ho inserito il quarto script, un simpatico manipolatore di chara XD

Edited by lupius

"Lo trasformerò in una pulce. Un'innocua, piccola pulce. Poi metterò la pulce in una scatola; e la scatola dentro un'altra scatola! Quindi spedirò la scatola a me stessa e quando arriverà.... HAHAHAHA!! LA SPIACCICHERO' CON UN MARTELLO! E' una splendida, splendida idea, geniale direi!! .......... No.... Troppi francobolli..."

 

- Izma - "Le follie dell'imperatore"

Link to comment
Share on other sites

Se vuoi aggiungerlo al topic principale, questo è il link alle immagini per la cartella Weather, da incollare nella cartella Graphic per lo script del meteo.

 

http://www.mediafire.com/?2q1ix4ublcc6u82

 

Auguri per il lavorone!

Grazie! Oggi butterò su ancora qualcosa... La menata è che è tutto in portoghese e, soprattutto, che spesso le istruzioni negli script hanno degli errori... uff... Grazie del link, lo implemento al messaggio!!

 

EDIT:

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Script per il Gameplay

1) Moghunter Chain Commands V1.4

 

Descrizione:

Questo script permette di applicare una combinazione di tasti da immettere, in un lasso limitato di tempo, per raggiungere uno scopo. Possiamo quindi far immettere una combinazione di tasti per aprire un baule, sbloccare una porta o con qualsiasi altra cosa si possa interagire sulla mappa. Nello screen qua sotto, per esempio, bisogna immettere la sequenza per poter aprire la porta

Screen:

 

Istruzioni:

Per modificare, aggiungere e togliere switch di comandi (ovvero gli "slot" a cui assegnate le combinazioni di comandi) andate alla linea 54

Il resto delle istruzioni le trovate comodamente all'inizio dello script.

Le immagini originali di Moghunter potete trovarle qui: http://www.mediafire.com/download.php?m29ejyo691w6k5l

 

Script:

 

 

 

#===============================================================================
# +++ MOG - Chain Commands (v1.4) +++
#===============================================================================
# By Moghunter                                                                
# http://www.atelier-rgss.com                      
#===============================================================================
# Sistema de sequência de botões para ativar switchs. 
# 
# Serão necessárias as seguintes imagens. (Graphics/System)
#
# Chain_Cursor.png
# Chain_Command.png
# Chain_Layout.png
# Chain_Timer_Layout.png
# Chain_Timer_Meter.png
#
#===============================================================================
#
# Para ativar o script use o comando abaixo.  (*Call Script)
#
# chain_commands(ID)
#
# ID - Id da switch.
#
#===============================================================================

#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v 1.4 - Correção do crash aleatório.
# v 1.3 - Melhoria no sistema de dispose
# v 1.2 - Melhoria na codificação e correção de alguns glitches.
# v 1.1 - Animação de fade ao sair da cena de chain.
#       - Opção de definir a prioridade da hud na tela.
#==============================================================================

module MOG_CHAIN_COMMANDS 
 #==============================================================================
 # CHAIN_COMMAND = { SWITCH_ID => [COMMAND] }
 #
 # SWITCH_ID = ID da switch 
 # COMMANDS = Defina aqui a sequência de botões. 
 #            (Para fazer a sequência use os comandos abaixo)   
 #  
 # "Down" ,"Up" ,"Left" ,"Right" ,"Shift" ,"D" ,"S" ,"A" ,"Z" ,"X" ,"Q" ,"W"
 # 
 # Exemplo de utilização
 #
 # CHAIN_SWITCH_COMMAND = { 
 # 25=>["Down","D","S","Right"],
 # 59=>["Down","Up","Left","Right","Shift","D","S","A","Z","X","Q","W"],
 # 80=>["Shift","D"]
 # } 
 #==============================================================================
 CHAIN_SWITCH_COMMAND = {
 5=>["X","Right","Left","Z","Z"], 
 6=>["Left","Right","Left","Right","Left","Right","Q","Z","Up","A","S",
      "Down","D","Z","Right","Up","Up","Z","W","Left","Down","D","A","W"],
 8=>["Up","Down","Left","Right","Z"]
 }
 #Duração para colocar os comandos. (A duração é multiplicado pela quantidade
 #de comandos) *60 = 1 sec
 CHAIN_INPUT_DURATION = 30 
 #Som ao acertar. 
 CHAIN_RIGHT_SE = "Chime1"
 #Som ao errar.
 CHAIN_WRONG_SE = "Buzzer1"
 #Switch que ativa o modo automático.
 CHAIN_AUTOMATIC_MODE_SWITCH_ID = 20
 #Definição da prioridade da hud na tela
 CHAIN_HUD_Z = 300
end


#===============================================================================
# ■ Chain Commands
#===============================================================================
class Chain_Commands 
   include MOG_CHAIN_COMMANDS 
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------       
  def initialize
      @action_id = $game_temp.chain_switch_id
      @chain_command = CHAIN_SWITCH_COMMAND[@action_id]
      @chain_command = ["?"] if @chain_command == nil  
      duration = [[CHAIN_INPUT_DURATION, 1].max, 9999].min
      @timer_max = duration * @chain_command.size
      @timer = @timer_max
      @slide_time = [[60 / duration, 10].max, 60].min
      @change_time = 0
      if $game_switches[CHAIN_AUTOMATIC_MODE_SWITCH_ID] 
         @auto = true
      else
         @auto = false
      end
      @com = 0  
  end    
  
 #--------------------------------------------------------------------------
 # ● Main
 #--------------------------------------------------------------------------     
 def main
     dispose
     @background_sprite = Sprite.new
     @background_sprite.bitmap = SceneManager.background_bitmap2
     create_chain_command
     create_cusrsor
     create_layout
     create_meter
     create_text
     create_number 
     Graphics.transition
     loop do
          Graphics.update
           Input.update
           update
           break if SceneManager.scene != self
     end
     dispose
 end  
      
 #--------------------------------------------------------------------------
 # ● Create Cursor
 #--------------------------------------------------------------------------             
 def create_cusrsor
     @fy_time = 0
     @fy = 0
     @com_index = 0
     @cursor = Sprite.new
     @cursor.bitmap = Cache.system("Chain_Cursor")
     @cursor.z = 4 + CHAIN_HUD_Z
     @cursor_space = ((@bitmap_cw + 5) * @chain_command.size) / 2
     if @chain_command.size <= 20
        @cursor.x = (544 / 2) - @cursor_space + @cursor_space * @com_index 
     else   
        @cursor.x = (544 / 2)
     end  
     @cursor.y = (416 / 2) + 30    
 end 
 
 #--------------------------------------------------------------------------
 # ● Create Chain Command
 #--------------------------------------------------------------------------       
 def create_chain_command
     @image = Cache.system("Chain_Command")     
     width_max = ((@image.width / 13) + 5) * @chain_command.size
     @bitmap = Bitmap.new(width_max,@image.height * 2)
     @bitmap_cw = @image.width / 13
     @bitmap_ch = @image.height  
     index = 0
     for i in @chain_command
         command_list_check(i) 
         bitmap_src_rect = Rect.new(@com * @bitmap_cw, 0, @bitmap_cw, @bitmap_ch)
         if index == 0
            @bitmap.blt(index * (@bitmap_cw + 5) , 0, @image, bitmap_src_rect)
         else
            @bitmap.blt(index * (@bitmap_cw + 5) , @bitmap_ch, @image, bitmap_src_rect)
         end
         index += 1
     end
     @sprite = Sprite.new
     @sprite.bitmap = @bitmap
     if @chain_command.size <= 15
        @sprite.x = (544 / 2) - ((@bitmap_cw + 5) * @chain_command.size) / 2
        @new_x = 0
     else   
        @sprite.x = (544 / 2)
        @new_x = @sprite.x 
     end   
     @sprite.y = (416 / 2) + 30  - @bitmap_ch  - 15
     @sprite.z = 3 + CHAIN_HUD_Z
     @sprite.zoom_x = 1.5
     @sprite.zoom_y = 1.5
 end
 
 #--------------------------------------------------------------------------
 # * create_layout
 #--------------------------------------------------------------------------  
 def create_layout
     @back = Plane.new
     @back.bitmap = Cache.system("Chain_Layout")
     @back.z = 0
     @layout = Sprite.new
     @layout.bitmap = Cache.system("Chain_Timer_Layout")
     @layout.z = 1 + CHAIN_HUD_Z
     @layout.x = 160
     @layout.y = 150
  end

 #--------------------------------------------------------------------------
 # * create_meter
 #--------------------------------------------------------------------------  
 def create_meter
     @meter_flow = 0
     @meter_image = Cache.system("Chain_Timer_Meter")
     @meter_bitmap = Bitmap.new(@meter_image.width,@meter_image.height)
     @meter_range = @meter_image.width / 3
     @meter_width = @meter_range * @timer / @timer_max
     @meter_height = @meter_image.height
     @meter_src_rect = Rect.new(@meter_range, 0, @meter_width, @meter_height)
     @meter_bitmap.blt(0,0, @meter_image, @meter_src_rect) 
     @meter_sprite = Sprite.new
     @meter_sprite.bitmap = @meter_bitmap
     @meter_sprite.z = 2 + CHAIN_HUD_Z
     @meter_sprite.x = 220
     @meter_sprite.y = 159
     update_flow
 end  
 
 #--------------------------------------------------------------------------
 # ● Create Text
 #--------------------------------------------------------------------------        
 def create_text 
     @text = Sprite.new
     @text.bitmap = Bitmap.new(200,32)
     @text.z = 2 + CHAIN_HUD_Z
     @text.bitmap.font.name = "Georgia"
     @text.bitmap.font.size = 25
     @text.bitmap.font.bold = true
     @text.bitmap.font.italic = true
     @text.bitmap.font.color.set(255, 255, 255,220)
     @text.x = 230
     @text.y = 100
 end
 
 #--------------------------------------------------------------------------
 # ● Create Number
 #--------------------------------------------------------------------------        
 def create_number 
     @combo = 0
     @number = Sprite.new
     @number.bitmap = Bitmap.new(200,64)
     @number.z = 2 + CHAIN_HUD_Z
     @number.bitmap.font.name = "Arial"
     @number.bitmap.font.size = 24
     @number.bitmap.font.bold = true
     @number.bitmap.font.color.set(0, 255, 255,200)
     @number.bitmap.draw_text(0, 0, 200, 32, "Ready",1)         
     @number.x = 30
     @number.y = 100
 end 
 
 #--------------------------------------------------------------------------
 # ● Pre Dispose
 #--------------------------------------------------------------------------       
 def exit
     loop do 
         Graphics.update
         @sprite.x += 5 
         @layout.x -= 5
         @meter_sprite.x -= 5
         @text.x -= 2
         @text.opacity -= 5
         @sprite.opacity -= 5
         @layout.opacity -= 5
         @meter_sprite.opacity -= 5 
         @number.opacity -= 5
         @back.opacity -= 5
         @cursor.visible = false    
         break if @sprite.opacity == 0
     end
     SceneManager.call(Scene_Map)
 end
   
 #--------------------------------------------------------------------------
 # ● Dispose
 #--------------------------------------------------------------------------      
 def dispose
     return if @layout == nil
     Graphics.freeze
     @background_sprite.bitmap.dispose
     @background_sprite.dispose
     @bitmap.dispose
     @sprite.bitmap.dispose
     @sprite.dispose
     @cursor.bitmap.dispose
     @cursor.dispose  
     @meter_image.dispose
     @meter_bitmap.dispose
     @meter_sprite.bitmap.dispose
     @meter_sprite.dispose
     @layout.bitmap.dispose  
     @layout.dispose
     @layout = nil
     @back.bitmap.dispose
     @back.dispose
     @text.bitmap.dispose
     @text.dispose
     @number.bitmap.dispose
     @number.dispose
     @image.dispose 
 end
 
 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------      
 def update
     update_command
     update_cursor_slide
     update_flow
     update_change_time
 end
 
 #--------------------------------------------------------------------------
 # ● Change_Time
 #--------------------------------------------------------------------------        
 def update_change_time
     return unless @auto
     @change_time += 1
     check_command(-1) if @change_time >= CHAIN_INPUT_DURATION - 1
 end
 
 #--------------------------------------------------------------------------
 # ● Update Flow
 #--------------------------------------------------------------------------       
 def update_flow
     @timer -= 1
     @meter_sprite.bitmap.clear
     @meter_width = @meter_range * @timer / @timer_max
     @meter_src_rect = Rect.new(@meter_flow, 0, @meter_width, @meter_height)
     @meter_bitmap.blt(0,0, @meter_image, @meter_src_rect)  
     @meter_flow += 20 
     @meter_flow = 0 if @meter_flow >= @meter_image.width - @meter_range       
     wrong_command if @timer == 0 and @auto == false
  end  
   
 #--------------------------------------------------------------------------
 # ● Update Command
 #--------------------------------------------------------------------------       
 def update_command
     return if @auto
     if Input.trigger?(Input::X)
        check_command(0)
     elsif Input.trigger?(Input::Z)  
        check_command(1)
     elsif Input.trigger?(Input::Y)  
        check_command(2)
     elsif Input.trigger?(Input::A)    
        check_command(3)
     elsif Input.trigger?(Input::C)           
        check_command(4)
     elsif Input.trigger?(Input::B)        
        check_command(5)
     elsif Input.trigger?(Input::L)        
        check_command(6)
     elsif Input.trigger?(Input::R)        
        check_command(7)        
     elsif Input.trigger?(Input::RIGHT)      
        check_command(8)
     elsif Input.trigger?(Input::LEFT)
        check_command(9)
     elsif Input.trigger?(Input::DOWN)
        check_command(10)
     elsif Input.trigger?(Input::UP)  
        check_command(11)
     end   
 end  
   
 #--------------------------------------------------------------------------
 # ● command_list_check
 #--------------------------------------------------------------------------       
 def command_list_check(command) 
     case command
         when "A"
            @com = 0  
         when "D"
            @com = 1  
         when "S"
            @com = 2
         when "Shift"
            @com = 3
         when "Z" 
            @com = 4
         when "X"
            @com = 5
         when "Q"
            @com = 6
         when "W"
            @com = 7            
         when "Right"
            @com = 8
         when "Left"
            @com = 9
         when "Down"
            @com = 10
         when "Up"  
            @com = 11
         else   
            @com = 12           
     end 
 end   
 
 #--------------------------------------------------------------------------
 # ● check_command
 #--------------------------------------------------------------------------            
 def check_command(com)
     index = 0
     if com != -1
        right_input = false
        for i in @chain_command
           if index == @com_index
              command_list_check(i) 
              right_input = true if @com == com
           end  
          index += 1  
       end  
     else  
       command_list_check(@com_index)
       @change_time = 0
       right_input = true
     end  
     if right_input 
        refresh_number
        next_command
     else  
        wrong_command
     end  
 end  
   
 #--------------------------------------------------------------------------
 # ● Next Command
 #--------------------------------------------------------------------------            
 def next_command   
     @com_index += 1   
     Audio.se_play("Audio/SE/" + CHAIN_RIGHT_SE, 100, 100)
     if @com_index == @chain_command.size
        $game_switches[@action_id] = true
        exit
        $game_map.need_refresh = true
     end  
     refresh_command 
     refresh_text(0) 
 end     
 
 #--------------------------------------------------------------------------
 # ● wrong_command
 #--------------------------------------------------------------------------              
 def wrong_command
     Audio.se_play("Audio/SE/" + CHAIN_WRONG_SE, 100, 100)
     refresh_text(1)
     exit
     $game_player.jump(0,0)
 end
   
 #--------------------------------------------------------------------------
 # ● Refresh Command
 #--------------------------------------------------------------------------                
 def refresh_command
     @sprite.bitmap.clear
     index = 0
     for i in @chain_command
         command_list_check(i) 
         bitmap_src_rect = Rect.new(@com * @bitmap_cw, 0, @bitmap_cw, @bitmap_ch)
         if @com_index == index
            @bitmap.blt(index * (@bitmap_cw + 5) , 0, @image, bitmap_src_rect)
         else
            @bitmap.blt(index * (@bitmap_cw + 5) , @bitmap_ch, @image, bitmap_src_rect)
         end
         index += 1
       end
     if @chain_command.size > 15  
        @new_x = (544 / 2) - ((@bitmap_cw + 5) * @com_index)
     else   
        @cursor.x = (544 / 2) - @cursor_space + ((@bitmap_cw + 5) * @com_index)
     end
 end  
 
 #--------------------------------------------------------------------------
 # ● Refresh Text
 #--------------------------------------------------------------------------               
 def refresh_text(type)
     @text.bitmap.clear
     if type == 0
        if @com_index == @chain_command.size
           @text.bitmap.font.color.set(55, 255, 55,220)
           @text.bitmap.draw_text(0, 0, 200, 32, "Perfect!",1)              
        else  
           @text.bitmap.font.color.set(55, 155, 255,220)
           @text.bitmap.draw_text(0, 0, 200, 32, "Success!",1)              
        end
     else
        @text.bitmap.font.color.set(255, 155, 55,220)
        if @timer == 0
           @text.bitmap.draw_text(0, 0, 200, 32, "Time Limit!",1)  
        else  
           @text.bitmap.draw_text(0, 0, 200, 32, "Fail!",1)   
        end
     end  
     @text.x = 230   
     @text.opacity = 255 
 end
 
 #--------------------------------------------------------------------------
 # ● Refresh Number
 #--------------------------------------------------------------------------               
 def refresh_number
     @combo += 1
     @number.bitmap.clear
     @number.bitmap.font.size = 34
     @number.bitmap.draw_text(0, 0, 200, 32, @combo.to_s,1)          
     @number.opacity = 255 
     @number.zoom_x = 2
     @number.zoom_y = 2
 end 
 
 #--------------------------------------------------------------------------
 # ● Update Cursor Slide
 #--------------------------------------------------------------------------           
 def update_cursor_slide    
     @sprite.zoom_x -= 0.1 if @sprite.zoom_x > 1
     @sprite.zoom_y -= 0.1 if @sprite.zoom_y > 1
     @text.x -= 2 if @text.x > 210 
     @text.opacity -= 5 if @text.opacity > 0
     @sprite.x -= @slide_time if @sprite.x > @new_x and @chain_command.size > 15
     if @number.zoom_x > 1
        @number.zoom_x -= 0.1
        @number.zoom_y -= 0.1
     end
     if @fy_time > 15
        @fy += 1
     elsif @fy_time > 0
        @fy -= 1
     else   
        @fy = 0
        @fy_time = 30
     end  
     @fy_time -= 1 
     @cursor.oy = @fy     
 end  
end

#==============================================================================
# ■ Game Temp
#==============================================================================
class Game_Temp

 attr_accessor :chain_switch_id
 
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------         
  alias mog_chain_commands_initialize initialize
  def initialize
      @chain_switch_id = 0
      mog_chain_commands_initialize
  end  
    
end

#==============================================================================
# ■ Game_Interpreter
#==============================================================================
class Game_Interpreter
  
 #--------------------------------------------------------------------------
 # ● Chain Commands
 #--------------------------------------------------------------------------           
  def chain_commands(switch_id = 0)
      return if switch_id <= 0
      $game_temp.chain_switch_id = switch_id
      SceneManager.call(Chain_Commands)
      wait(1)
  end
  
end

#===============================================================================
# ■ SceneManager
#===============================================================================
class << SceneManager
  @background_bitmap2 = nil
  
  #--------------------------------------------------------------------------
  # ● Snapshot For Background2
  #--------------------------------------------------------------------------
  def snapshot_for_background2
      @background_bitmap2.dispose if @background_bitmap2
      @background_bitmap2 = Graphics.snap_to_bitmap
  end
  
  #--------------------------------------------------------------------------
  # ● Background Bitmap2
  #--------------------------------------------------------------------------
  def background_bitmap2
      @background_bitmap2
  end
  
end

#===============================================================================
# ■ Scene Map
#===============================================================================
class Scene_Map < Scene_Base
  
  #--------------------------------------------------------------------------
  # ● Terminate
  #--------------------------------------------------------------------------  
  alias mog_chain_commands_terminate terminate
  def terminate
      SceneManager.snapshot_for_background2
      mog_chain_commands_terminate      
  end
  
end  

$mog_rgss3_chain_commands = true

 

 

Edited by lupius

"Lo trasformerò in una pulce. Un'innocua, piccola pulce. Poi metterò la pulce in una scatola; e la scatola dentro un'altra scatola! Quindi spedirò la scatola a me stessa e quando arriverà.... HAHAHAHA!! LA SPIACCICHERO' CON UN MARTELLO! E' una splendida, splendida idea, geniale direi!! .......... No.... Troppi francobolli..."

 

- Izma - "Le follie dell'imperatore"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...