SHARE
TWEET

xinput-vibration

Holy87 Dec 20th, 2016 (edited) 110 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #===============================================================================
  2. # Vibrazione in battaglia di Holy87
  3. # Difficoltà utente: ★
  4. # Versione 1.1
  5. # Licenza: CC. Chiunque può scaricare, modificare, distribuire e utilizzare
  6. # lo script nei propri progetti, sia amatoriali che commerciali. Vietata
  7. # l'attribuzione impropria.
  8. #===============================================================================
  9. # Questo script farà vibrare automaticamente il controller con attacchi critici
  10. # in battaglia o attraverso animazioni con un determinato timing.
  11. #===============================================================================
  12. # Istruzioni: inserire lo script sotto Materials prima del Main.
  13. #
  14. # Se si vuole assegnare un effetto speciale all'animazione, aggiungere una
  15. # nuova voce in Tempismo SE e Flash dell'animazione, selezionare il frame
  16. # desiderato, impostare flash su bersaglio e COLORE ROSSO A 1.
  17. # Quindi, modificare Forza (del colore) per modificare la forza della vibrazione
  18. # e durata per la durata.
  19. # Novità della versione 1.1:
  20. # Puoi impostare separatamente la forza della vibrazione destra o sinistra!
  21. # Regola il colore verde nell'FX per la vibrazione sinistra e il colore blu
  22. # per la vibrazione destra!
  23. #
  24. # Sotto è possibile configurare i testi per le voci e i comandi personalizzabili.
  25. #===============================================================================
  26.  
  27.  
  28. #===============================================================================
  29. # ** IMPOSTAZIONI SCRIPT
  30. #===============================================================================
  31. module VibrationConfig
  32.   # Vibrazione con critico su nemico | Forza SX | Forza DX | Durata
  33.   CRITICAL_ENEMY                  = [    100,       100,       30   ]
  34.   # Vibrazione con critico su alleato
  35.   CRITICAL_ALLY                   = [     75,        75,       30   ]
  36.   #--------------------------------------------------------------------------
  37.   # * Valore di rosso che determinerà il timing della vibrazione nella
  38.   #   sequenza di animazione
  39.   #--------------------------------------------------------------------------
  40.   VIBRATION_ACTIVATE = 1
  41. end
  42.  
  43. #===============================================================================
  44. # ** ATTENZIONE: NON MODIFICARE SOTTO QUESTO SCRIPT SE NON SAI COSA TOCCARE! **
  45. #===============================================================================
  46.  
  47.  
  48.  
  49. $imported = {} if $imported == nil
  50. $imported['H87-Vibration'] = 1.1
  51. #===============================================================================
  52. # ** RPG::Animation
  53. #-------------------------------------------------------------------------------
  54. # Vibration info
  55. #===============================================================================
  56. module RPG
  57.   class Animation
  58.     #===============================================================================
  59.     # ** RPG::Animation::Vibration_Info
  60.     #-------------------------------------------------------------------------------
  61.     # Vibration info
  62.     #===============================================================================
  63.     class Vibration_Info
  64.       attr_accessor :left_force
  65.       attr_accessor :right_force
  66.       attr_accessor :neutral_force
  67.       #---------------------------------------------------------------------
  68.       # * Object initialization
  69.       # @param [Color] color
  70.       #---------------------------------------------------------------------
  71.       def initialize(color = nil)
  72.         @left_force = 0
  73.         @right_force = 0
  74.         @neutral_force = 0
  75.         set_vibration(color) if color
  76.       end
  77.       #---------------------------------------------------------------------
  78.       # * Set vibration info
  79.       # @param [Color] color
  80.       #---------------------------------------------------------------------
  81.       def set_vibration(color)
  82.         self.left_force = color.green * 100 / 255
  83.         self.right_force = color.blue * 100 / 255
  84.         self.neutral_force = color.alpha * 100 / 255
  85.       end
  86.       #---------------------------------------------------------------------
  87.       # * Returns the total amount of vibration
  88.       #---------------------------------------------------------------------
  89.       def total_vibration; @right_force + @left_force + @neutral_force; end
  90.     end
  91.  
  92.     #===============================================================================
  93.     # ** RPG::Animation::Timing
  94.     #-------------------------------------------------------------------------------
  95.     # adding vibration method
  96.     #===============================================================================
  97.     class Timing
  98.       #---------------------------------------------------------------------
  99.       # * Returns vibration strenght and cancels the flash target
  100.       # @return [Vibration_Info]
  101.       #---------------------------------------------------------------------
  102.       def vibration
  103.         if @vibration.nil?
  104.           @vibration = Vibration_Info.new
  105.           if @flash_scope == 1 && @flash_color.red == VibrationConfig::VIBRATION_ACTIVATE
  106.             @vibration.set_vibration(@flash_color)
  107.             @flash_scope = 0
  108.           end
  109.         end
  110.         @vibration
  111.       end
  112.     end
  113.   end
  114. end
  115.  
  116. #===============================================================================
  117. # ** Game_Battler
  118. #-------------------------------------------------------------------------------
  119. # Vibration on critical damage
  120. #===============================================================================
  121. class Game_Battler < Game_BattlerBase
  122.   alias h87vib_apply_critical apply_critical unless $@
  123.   #--------------------------------------------------------------------------
  124.   # * Apply critical
  125.   #--------------------------------------------------------------------------
  126.   def apply_critical(damage)
  127.     apply_vibration
  128.     h87vib_apply_critical(damage)
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # * Apply vibration on critical damage
  132.   #--------------------------------------------------------------------------
  133.   def apply_vibration
  134.     str = actor? ? VibrationConfig::CRITICAL_ALLY : VibrationConfig::CRITICAL_ENEMY
  135.     Input.vibrate(str[0], str[1], str[2])
  136.   end
  137. end
  138.  
  139. #===============================================================================
  140. # ** Sprite_Base
  141. #-------------------------------------------------------------------------------
  142. # Vibration on animation timing
  143. #===============================================================================
  144. class Sprite_Base < Sprite
  145.   alias h87vibr_apt animation_process_timing unless $@
  146.   #--------------------------------------------------------------------------
  147.   # * Adds vibration check to the animation
  148.   # @param [RPG::Animation::Timing] timing
  149.   #--------------------------------------------------------------------------
  150.   def animation_process_timing(timing)
  151.     if timing && timing.vibration.total_vibration > 0
  152.       left_v = timing.vibration.left_force + timing.vibration.neutral_force
  153.       right_v = timing.vibration.right_force + timing.vibration.neutral_force
  154.       left_v, right_v = right_v, left_v if @ani_mirror
  155.       Input.vibrate(left_v, right_v, timing.flash_duration * @ani_rate)
  156.     end
  157.     h87vibr_apt(timing)
  158.   end
  159. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top