Actor Damage Sounds
by: Rinobi
Version History
- 1.00 [12/05/2015] Initial Release
- 1.10 [12/06/2015] ATB Compatability Update
- 1.20 [12/08/2015] Fixed occasional crash when enemy attacks.
- 1.30 [12/09/2015] Fixed crash when unarmored actor is damaged.
-
1.70 [12/10/2015] Major update. Fixed double sound effect bug.
Added sound options for barehanded and unarmored.
Shield armor types now have priority while actor is guarding.
Sensible default settings for making easy distinctions. - 1.80 [01/07/2016] Option to include/exclude weapon SE from skills added.
- 2.00 [08/10/2016] Note tags added. Screen shake options included.
Introduction
This script allows damage sound effects to be assigned for specific weapons and armor types.
Note tags can also be used to give skills unique damage sound and screen-shake effects.
Features
- Weapons and armors can now have their own sound effects.
- Note tags allow skills to have unique sound and screen shake effects.
Screenshots
Spoiler
Script
Spoiler
module RINOBI module ActorSound # DO NOT MODIFY #=============================================================================== # Actor Damage Sounds #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # By: Rinobi #------------------------------------------------------------------------------ # # Damage sound effects can now be assigned for specific weapons and armors. # #============================================================================== # # VERSION HISTORY #------------------------------------------------------------------------------ # @ 1.0 [12/05/2015] Completed # @ 1.1 [12/06/2015] ATB Compatability Update # @ 1.2 [12/08/2015] Fixed occasional crash when enemy attacks. # @ 1.3 [12/09/2015] Fixed crash when actor is damaged without equipped armor. # @ 1.7 [12/10/2015] Major update. Fixed double sound effect bug. # Added sound options for barehanded and no armor. # Shield Armor types have priority while guarding. # Sensible default settings for making easy distinctions. # @ 1.8 [01/07/2016] Option to include/exclude weapon SE from skills added. # @ 2.0 [08/10/2016] Note tags added. Screen shake options included. #============================================================================== # # INSTRUCTIONS #------------------------------------------------------------------------------ # Paste this script below Materials and above Main Process. # See 'SETTINGS' for addtional instructions. #- #------------------------------------------------ # <Sound: file_name, volume, pitch> #------------------------------------------------ # Place within the 'Note' textbox of 'Skills' #- # The sound effect to be played upon dealing # damage to the target with said skill. #- # EX: <Sound: Gun1, 100, 60> #------------------------------------------------ # <Shake: power, speed, duration> #------------------------------------------------ # Place within the 'Note' textbox of 'Skills' #- # The screen shake effect to be used used upon # dealing damage to the target with said skill. #- # EX: <Shake: 5, 10, 20> #============================================================================== # # SETTINGS # ----------------------------------------------------------------------------- # Adjust the below settings to your liking. #- #====================================================================== # >> Armor Slot # --------------------------------------------------------------------- # The slot id for armor. Recommended settins 2 or 3. This controls # which equipment slot actor damage sound effects relate to. #- # Weapon = 0 , Shield = 1 , Head = 2 , Body = 3 , Accessory = 4 #====================================================================== ArmorSlot = 3 # Default 3, Ignored if guarding with a shield. #====================================================================== # >> Guard Slot # --------------------------------------------------------------------- # Allows an alternate sound effect to be played while an actor is # guarding. The armor type of the equipment slot below will take # priority over the above setting. #- # Weapon = 0 , Shield = 1 , Head = 2 , Body = 3 , Accessory = 4 #====================================================================== GuardSlot = 1 # Default 1, Has priority while guarding with a shield. #====================================================================== # >> Skill SE # --------------------------------------------------------------------- # Controls whether or skills other than Attack inherit sound effects # from weapons. Sound effect note tags will always take priority. #- # true or false #====================================================================== Use_Attack_SE = false # Skills use Normal Attack SE by default. #====================================================================== # >> Default Screen Shake # --------------------------------------------------------------------- # Controls the default settings for the screen shake effect. To disable # screen shake for actors or enemies, set either of the below values to # to nil. If disabled, note tags will still trigger screen shake. #- # [Power, Speed, Duration] #====================================================================== Enemy_Screen_Shake = nil # When Enemy Recieves Damage. Actor_Screen_Shake = [5, 5, 10] # When Actor Recieves Damage. #====================================================================== # >> Armor SE Settings # --------------------------------------------------------------------- # Sound effect played when an actor recieves damage. # Sound effect file names found in (Project_Name)/Audio/SE # The below list is ordered by Armor Type IDs, with 0 being the # SE used when no armor is equipped. Addtional armor types may be # added or removed from the list below. #====================================================================== ActorArmor = { # 0 => {:File => "Damage3", :Volume => 99, :Pitch => 100}, # Naked 1 => {:File => "Damage3", :Volume => 95, :Pitch => 120}, # General Armor 2 => {:File => "Damage2", :Volume => 90, :Pitch => 150}, # Magic Armor 3 => {:File => "Damage4", :Volume => 85, :Pitch => 110}, # Light Armor 4 => {:File => "Damage1", :Volume => 80, :Pitch => 150}, # Heavy Armor } # DO NOT MODIFY #====================================================================== # >> Weapon SE Settings # --------------------------------------------------------------------- # Sound effect played when an enemy recieves damage. # Sound effect file names found in (Project_Name)/Audio/SE # The below list is ordered by Weapon Type IDs, with 0 being the # SE used when no weapon is equipped. Addtional weapon types may be # added or removed from the list below. #====================================================================== ActorWeapon = { # 0 => {:File => "Blow3" , :Volume => 87, :Pitch => 125}, # Barehanded 1 => {:File => "Slash1" , :Volume => 99, :Pitch => 95}, # Axe 2 => {:File => "Slash2" , :Volume => 70, :Pitch => 150}, # Claw 3 => {:File => "Slash10", :Volume => 80, :Pitch => 130}, # Spear 4 => {:File => "Sword3" , :Volume => 78, :Pitch => 150}, # Sword 5 => {:File => "Flash2" , :Volume => 85, :Pitch => 150}, # Katana 6 => {:File => "Bow3" , :Volume => 80, :Pitch => 100}, # Bow 7 => {:File => "Slash1" , :Volume => 65, :Pitch => 150}, # Dagger 8 => {:File => "Blow8" , :Volume => 99, :Pitch => 90}, # Hammer 9 => {:File => "Blow3" , :Volume => 72, :Pitch => 125}, # Staff 10 => {:File => "Gun1" , :Volume => 90, :Pitch => 100}, # Gun } # DO NOT MODIFY #============================================================================== # # COMPATIBILITY #------------------------------------------------------------------------------ # Created for use within RPG Maker VX Ace #- # Alias Methods: # @ prepare in Game_Action # @ perform_damage_effect in Game_Actor # @ perform_damage_effect in Game_Enemy #=============================================================================== # ** End of Settings #------------------------------------------------------------------------------- # Editing beyond this line may result in undesirable side-effects. #=============================================================================== #====================================================================== # >> Regexp Module #====================================================================== module Regexp Sound_Override = /<Sound:[ ](.*?),[ ](\d+),[ ](\d+)>/i Shake_Override = /<Shake:[ ](\d+),[ ](\d+),[ ](\d+)>/i end # Regexp end end # DO NOT MODIFY #============================================================================== # ** IMPORT SCRIPT #------------------------------------------------------------------------------ $imported = {} if $imported.nil? $imported[:RIN_ADamageSounds] = true #============================================================================== # ** Game_Action #------------------------------------------------------------------------------ # This class handles battle actions. This class is used within the # Game_Battler class. #============================================================================== class Game_Action #-------------------------------------------------------------------------- # * Alias Method: prepare #-------------------------------------------------------------------------- alias :se_prepare :prepare def prepare ; se_prepare = $acting = @subject end # prepare end # Game_Action #============================================================================== # ** Game_Actor #------------------------------------------------------------------------------ # This class handles actors. It is used within the Game_Actors class # ($game_actors) and is also referenced from the Game_Party class ($game_party). #============================================================================== class Game_Actor < Game_Battler include RINOBI::ActorSound #-------------------------------------------------------------------------- # * Alias Method: Execute Damage Effect #-------------------------------------------------------------------------- alias :rinse_damage_effect :perform_damage_effect def perform_damage_effect return rinse_damage_effect unless $game_party.in_battle if guard? && equips[GuardSlot].is_a?(RPG::Armor) armor = equips[GuardSlot].atype_id elsif equips[ArmorSlot].nil? then armor = 0 else armor = equips[ArmorSlot].atype_id end #-- return rinse_damage_effect unless ActorArmor.include?(armor) file = ActorArmor[armor][:File] volume = ActorArmor[armor][:Volume] pitch = ActorArmor[armor][:Pitch] if $acting.current_action.item.note =~ Regexp::Shake_Override $game_troop.screen.start_shake($1.to_i, $2.to_i, $3.to_i) elsif !Actor_Screen_Shake.nil? ess = Actor_Screen_Shake $game_troop.screen.start_shake(ess[0], ess[0], ess[0]) end #-- @sprite_effect_type = :blink RPG::SE.new(file, volume, pitch).play end # perform_damage_effect end # Game_Actor #============================================================================== # ** Game_Enemy #------------------------------------------------------------------------------ # This class handles enemies. It used within the Game_Troop class # ($game_troop). #============================================================================== class Game_Enemy < Game_Battler include RINOBI::ActorSound #-------------------------------------------------------------------------- # * Alias Method: Execute Damage Effect #-------------------------------------------------------------------------- alias :rinse_damage_effect :perform_damage_effect def perform_damage_effect return rinse_damage_effect unless $acting.is_a?(Game_Actor) if $acting.equips[0].nil? then weapon = 0 else weapon = $acting.equips[0].wtype_id end #-- if $acting.current_action.item.note =~ Regexp::Sound_Override file, volume, pitch = $1, $2.to_i, $3.to_i else unless $acting.current_action.attack? return rinse_damage_effect unless Use_Attack_SE end #-- file = ActorWeapon[weapon][:File] volume = ActorWeapon[weapon][:Volume] pitch = ActorWeapon[weapon][:Pitch] end #-- if $acting.current_action.item.note =~ Regexp::Shake_Override $game_troop.screen.start_shake($1.to_i, $2.to_i, $3.to_i) elsif !Enemy_Screen_Shake.nil? ess = Enemy_Screen_Shake $game_troop.screen.start_shake(ess[0], ess[0], ess[0]) end #-- @sprite_effect_type = :blink RPG::SE.new(file, volume, pitch).play end # perform_damage_effect end # Game_Enemy #============================================================================== # @@@@@ @ @ @@@@ @@@@@ @@@@@ @@@@@ @@@@@ @@@@ @@@@@ @@@@@ @@@@@ # @ @@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ # @@@@@ @ @ @ @ @ @ @ @@@@ @@@@@ @ @@@@ @ @@@@@ @ # @ @ @@ @ @ @ @ @ @ @ @ @ @ @ @ # @@@@@ @ @ @@@@ @@@@@ @ @@@@@ @@@@@ @ @ @@@@@ @ @ #==============================================================================
Latest Version: ActorDamageSounds_20.txt
Previous Version: ActorDamageSounds_18.txt