Advertisement
Vlue

Basic Message SE

Sep 26th, 2013 (edited)
2,812
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.01 KB | None | 0 0
  1. #Basic Message SE v1.3
  2. #----------#
  3. #Features: Let's you have a sound effect play every so-so letters while a
  4. #           message is being displayed. Fancy!
  5. #
  6. #Usage:    Plug and play, script calls to change details in game:
  7. #
  8. #           message_freq(value)      - changes the frequency of the se
  9. #           message_se("string")     - name of the se to play
  10. #           message_volume(value)    - volume of the se to play
  11. #           message_pitch([min,max]) - pitch variance between min and max
  12. #           message_set(se,volume,pitch) - sets them all at once
  13. #           message_set(se,volume,pitch,freq) - same as above but with freq
  14. #
  15. #----------#
  16. #-- Script by: Vlue
  17. #
  18. #- Questions or comments can be:
  19. #    given by email: sumptuaryspade@live.ca
  20. #    provided on facebook: http://www.facebook.com/DaimoniousTailsGames
  21. #   All my other scripts and projects can be found here: http://daimonioustails.weebly.com/
  22. #
  23. #- Free to use in any project with credit given, donations always welcome!
  24.  
  25. module MESSAGE_SE
  26. #["Face Filename"], face_index, frequency, se_name, volume, [min pitch, max]],
  27.   FACE_SPECIFIC_SOUNDS = [
  28.     ["Actor1", 0, 5, "Cancel2", 75, [75,125]],
  29.     ["Actor1", 1, 5, "Cancel1", 75, [75,125]]
  30.   ]
  31. end
  32.  
  33.  
  34.  
  35. class Window_Message < Window_Base
  36.  
  37.   DEFAULT_SE_FREQ = 5
  38.   DEFAULT_AUDIO_SOUND = "Cancel2"
  39.   DEFAULT_AUDIO_VOLUME = 75
  40.   DEFAULT_AUDIO_PITCH = [75,125]
  41.  
  42.   DISABLE_SOUND_SWITCH = 29
  43.  
  44.   attr_accessor  :se
  45.   attr_accessor  :freq
  46.   attr_accessor  :volume
  47.   attr_accessor  :pitch
  48.  
  49.   alias mse_clear_instance_variables clear_instance_variables
  50.   def clear_instance_variables
  51.     mse_clear_instance_variables
  52.     @key_timer = 0
  53.   end
  54.   alias mse_new_page new_page
  55.   def new_page(text, pos)
  56.     check_for_face_se
  57.     mse_new_page(text, pos)
  58.   end
  59.   def check_for_face_se
  60.     _face_name = $game_message.face_name
  61.     _face_index = $game_message.face_index
  62.     MESSAGE_SE::FACE_SPECIFIC_SOUNDS.each do |arr|
  63.       if arr[0] == _face_name && arr[1] == _face_index
  64.         $game_party.message_set(arr[3], arr[4], arr[5], arr[2])
  65.       end
  66.     end
  67.   end
  68.   def process_normal_character(c, pos)
  69.     super
  70.     if !$game_options.nil?
  71.       return wait_for_one_character unless $game_options.message_se
  72.     end
  73.     return wait_for_one_character if $game_switches[DISABLE_SOUND_SWITCH]
  74.       se_det = $game_party.message_se_details
  75.     if @key_timer % se_det[:freq] == 0
  76.       Audio.se_play("Audio/SE/" + se_det[:se], se_det[:volume], rand(se_det[:pitch][1]-se_det[:pitch][0]) + se_det[:pitch][0])
  77.     end
  78.     @key_timer += 1
  79.     wait_for_one_character
  80.   end
  81. end
  82.  
  83. class Game_Party
  84.     attr_accessor   :message_se_details
  85.     def message_se_details
  86.         reset_se_details unless @message_se_details
  87.         @message_se_details
  88.     end
  89.     def reset_se_details
  90.         @message_se_details = {
  91.       :se => Window_Message::DEFAULT_AUDIO_SOUND,
  92.       :freq => Window_Message::DEFAULT_SE_FREQ,
  93.       :volume => Window_Message::DEFAULT_AUDIO_VOLUME,
  94.       :pitch => Window_Message::DEFAULT_AUDIO_PITCH
  95.     }
  96.     end
  97.   def message_freq(value)
  98.     message_se_details[:freq] = value
  99.   end
  100.   def message_se(string)
  101.     message_se_details[:se] = string
  102.   end
  103.   def message_pitch(array)
  104.     message_se_details[:pitch] = array
  105.   end
  106.   def message_volume(value)
  107.     message_se_details[:volume] = value
  108.   end
  109.   def message_set(string, value, array, freq = -1)
  110.     message_se(string)
  111.     message_volume(value)
  112.     message_pitch(array)
  113.     message_freq(freq) if freq >= 0
  114.   end
  115. end
  116.  
  117. class Game_Interpreter
  118.   def message_set(string, value, array, freq = -1)
  119.     message_se(string)
  120.     message_volume(value)
  121.     message_pitch(array)
  122.     message_freq(freq) if freq >= 0
  123.   end
  124.   def message_freq(value)
  125.     $game_party.message_freq(value)
  126.   end
  127.   def message_se(string)
  128.     $game_party.message_se(string)
  129.   end
  130.   def message_pitch(array)
  131.     $game_party.message_pitch(array)
  132.   end
  133.   def message_volume(value)
  134.     $game_party.message_volume(value)
  135.   end
  136.   def message_reset
  137.     $game_party.reset_se_details
  138.   end
  139. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement