Holy87

Critical Light

Mar 12th, 2016
99
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #===============================================================================
  2. # Lampeggiamento Critico di Holy87
  3. # Versione 1.01
  4. #===============================================================================
  5. # Questo script permette di far lampeggiare un alone rosso quando i tuoi eroi
  6. # sono in una situazione critica, con intensità differenti a seconda della
  7. # gravità della situazione.
  8. #
  9. # INSTALLAZIONE:
  10. # Inserire lo script sotto Materials, prima del Main. Inserire l'immagine che
  11. # verrà usata come alone nella cartella Graphics\Pictures del progetto.
  12. #===============================================================================
  13. # CONFIGURAZIONE
  14. #===============================================================================
  15. module Holy_Setup
  16.   # Imposta la percentuale minima di HP al di sotto della quale lampeggerà.
  17.   LimiteHP = 25
  18.   # Imposta la velocità di fade
  19.   Velocita = 4
  20.   # File di grafica dell'alone
  21.   Grafica = "Critical"
  22. end
  23. #===============================================================================
  24. # ATTENZIONE: Modificare al di sotto dello script potrebbe compromettere il
  25. # corretto funzionamento di quest'ultimo!
  26. #===============================================================================
  27.  
  28. #===============================================================================
  29. # Classe Scene_Battle
  30. #===============================================================================
  31. class Scene_Battle < Scene_Base
  32.   include Holy_Setup
  33.   #-----------------------------------------------------------------------------
  34.   # *Alias di Start
  35.   #-----------------------------------------------------------------------------
  36.   alias metti_immagine start unless $@
  37.   def start
  38.     metti_immagine
  39.     crea_immagine_critica
  40.     @crit_fade = false
  41.     @lampeggiamento = controlla_hp
  42.   end
  43.   #-----------------------------------------------------------------------------
  44.   # *Creazione dell'immagine (Blend a 1)
  45.   #-----------------------------------------------------------------------------
  46.   def crea_immagine_critica
  47.     @immagine_critica = Sprite.new
  48.     @immagine_critica.bitmap = Cache.picture(Grafica)
  49.     @immagine_critica.opacity = 0
  50.     @immagine_critica.z = 99
  51.     @immagine_critica.blend_type = 1
  52.     @immagine_critica.zoom_x = Graphics.width.to_f/@immagine_critica.width.to_f
  53.     @immagine_critica.zoom_y = Graphics.height.to_f/@immagine_critica.height.to_f
  54.   end
  55.   #-----------------------------------------------------------------------------
  56.   # *Alias Fine Turno
  57.   #-----------------------------------------------------------------------------
  58.   alias controlla_fine_turno turn_end unless $@
  59.   def turn_end
  60.     controlla_fine_turno
  61.     @lampeggiamento = controlla_hp
  62.   end
  63.   #-----------------------------------------------------------------------------
  64.   # *Controlla la media della % degli HP del gruppo
  65.   #-----------------------------------------------------------------------------
  66.   def controlla_hp
  67.     perc = 0 #percentuale
  68.     mul = 1 #divisore
  69.     for member in $game_party.members
  70.       perc += member.hp*100/member.mhp
  71.       mul += 1 if member.hp == 0 #aumenta il divisore per ogni eroe morto
  72.       #eroi morti fanno apparire l'allarme prima!
  73.     end
  74.     return perc/mul/$game_party.members.size
  75.   end
  76.   #-----------------------------------------------------------------------------
  77.   # *Alias Aggiornamento
  78.   #-----------------------------------------------------------------------------
  79.   alias lampeggia_update update_basic unless $@
  80.   def update_basic
  81.     lampeggia_update
  82.     lampeggia_sangue
  83.   end
  84.   #-----------------------------------------------------------------------------
  85.   # *Alias Termina
  86.   #-----------------------------------------------------------------------------
  87.   alias lampeggia_terminate terminate unless $@
  88.   def terminate
  89.     lampeggia_terminate
  90.     @immagine_critica.dispose
  91.   end
  92.   #-----------------------------------------------------------------------------
  93.   # *Animazione di fade
  94.   # La trasparenza è in base alla percentuale di HP
  95.   #-----------------------------------------------------------------------------
  96.   def lampeggia_sangue
  97.     if @lampeggiamento < LimiteHP
  98.       max_trasp = 250-(@lampeggiamento*7)
  99.       if @crit_fade == true
  100.         @immagine_critica.opacity -= Velocita
  101.         @crit_fade = false if @immagine_critica.opacity <= max_trasp/4
  102.       else
  103.         @immagine_critica.opacity += Velocita
  104.         @crit_fade = true if @immagine_critica.opacity >= max_trasp
  105.       end
  106.     else
  107.       @immagine_critica.opacity -= Velocita
  108.     end
  109.   end
  110. end # Scene_Battle
RAW Paste Data