roninator2

Hime Dynamic Equip Slots - Addon

Nov 21st, 2024
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 9.02 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: HIME's Dynamic Equip Slots - Add-on    ║  Version: 1.02     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║   Alter Slot Additions                        ║    18 Aug 2019     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: HIME's Dynamic Equip Slots                               ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║       Created notetag to add slots by level                        ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║   Notetag actors as many times as you require with the following:  ║
  20. # ║     * <add slot: Level, etype_id>                                  ║
  21. # ║     * e.g. <add slot: 5, 4>                                        ║
  22. # ║   This will add a slot type 4 to the actor when reaching level 5   ║
  23. # ║                                                                    ║
  24. # ║   Where `etype_id` is the equip type ID.                           ║
  25. # ║   By default, they are as follows:                                 ║
  26. # ║         0 - weapon                                                 ║
  27. # ║         1 - shield                                                 ║
  28. # ║         2 - headgear                                               ║
  29. # ║         3 - bodygear                                               ║
  30. # ║         4 - accessory                                              ║
  31. # ║                                                                    ║
  32. # ╚════════════════════════════════════════════════════════════════════╝
  33. # ╔════════════════════════════════════════════════════════════════════╗
  34. # ║ Updates:                                                           ║
  35. # ║ 1.00 - 18 Aug 2019 - Script finished                               ║
  36. # ║ 1.00 - 22 Aug 2019 - Added Features                                ║
  37. # ║                                                                    ║
  38. # ╚════════════════════════════════════════════════════════════════════╝
  39. # ╔════════════════════════════════════════════════════════════════════╗
  40. # ║ Credits and Thanks:                                                ║
  41. # ║   Roninator2                                                       ║
  42. # ║   Tsukihime                                                        ║
  43. # ╚════════════════════════════════════════════════════════════════════╝
  44. # ╔════════════════════════════════════════════════════════════════════╗
  45. # ║ Terms of use:                                                      ║
  46. # ║  Follow the original Authors terms of use where applicable         ║
  47. # ║    - When not made by me (Roninator2)                              ║
  48. # ║  Free for all uses in RPG Maker except nudity                      ║
  49. # ║  Anyone using this script in their project before these terms      ║
  50. # ║  were changed are allowed to use this script even if it conflicts  ║
  51. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  52. # ║  No part of this code can be used with AI programs or tools        ║
  53. # ║  Credit must be given                                              ║
  54. # ╚════════════════════════════════════════════════════════════════════╝
  55.  
  56. module TH
  57.   module Dynamic_Equip_Slots
  58.     Regexlevel = /<add[-_ ]slot:[-_ ](\d+*)\,*.*?(\d+*)>/i
  59.     PlayCustSnd = true
  60.     PlaySnd = true
  61.     Equip_sound_effect  = ["Chime2", 80, 115]
  62.     Gained_Slot_Text     = "%s has gained an equipment slot!"
  63.     Showtxt = true
  64.   end
  65. end
  66.  
  67. # ╔════════════════════════════════════════════════════════════════════╗
  68. # ║                      End of editable region                        ║
  69. # ╚════════════════════════════════════════════════════════════════════╝
  70.  
  71. module R2_slot_script
  72.   #--------------------------------------------------------------------------
  73.   # * required
  74.   #   This method checks for the existance of the basic module and other
  75.   #   VE scripts required for this script to work, don't edit this
  76.   #--------------------------------------------------------------------------
  77.   def self.required(name, req, type = nil)
  78.     if !$imported["TH_DynamicEquipSlots"]
  79.       msg = "The script '%s' requires the script\n"
  80.       msg += "'HIME Dynamic Equip Slots' above to work properly"
  81.       msgbox(sprintf(msg, self.script_name(name)))
  82.       exit
  83.     end
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # * script_name
  87.   #   Get the script name base on the imported value, don't edit this
  88.   #--------------------------------------------------------------------------
  89.   def self.script_name(name, ext = nil)
  90.     name = name.to_s.gsub("_", " ").upcase.split
  91.     name.collect! {|char| char == ext ? "#{char} -" : char.capitalize }
  92.     name.join(" ")
  93.   end
  94. end
  95.  
  96. $imported = {} if $imported.nil?
  97. $imported["TH_DynamicEquipSlots_Level_Addon"] = true
  98. R2_slot_script.required("TH_DynamicEquipSlots_Level_Addon", "TH_DynamicEquipSlots", :above)
  99.  
  100. module RPG
  101.   class Actor
  102.     attr_reader :level
  103.     def load_notetag_level_equip_slots
  104.       results = self.note.scan(TH::Dynamic_Equip_Slots::Regexlevel)
  105.       results.each do |res|
  106.         if $game_actors[@id].level == res[0].to_i
  107.           $game_actors[@id].add_equip_slot(res[1].to_i)
  108.           if TH::Dynamic_Equip_Slots::PlayCustSnd
  109.             RPG::SE.new(*TH::Dynamic_Equip_Slots::Equip_sound_effect).play
  110.           elsif TH::Dynamic_Equip_Slots::PlaySnd
  111.             Sound.play_equip
  112.           end
  113.           if TH::Dynamic_Equip_Slots::Showtxt
  114.             $game_message.add(sprintf(TH::Dynamic_Equip_Slots::Gained_Slot_Text, @name))
  115.           end
  116.         end
  117.       end
  118.     end
  119.   end
  120. end
  121.  
  122. class Game_Actor < Game_Battler
  123.   alias :r2_level_up_97bfu  :level_up
  124.   def level_up
  125.     r2_level_up_97bfu
  126.     actor.load_notetag_level_equip_slots
  127.   end
  128. end
Add Comment
Please, Sign In to add comment