Advertisement
roninator2

Change Item/Skill Target Scope

Dec 17th, 2024
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 11.32 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Change Item/Skill Scope                ║  Version: 1.00     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║  Alter Item and Skill Scopes                  ║    11 Mar 2023     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: nil                                                      ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║       Change the Skill scope in mid game                           ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║                                                                    ║
  20. # ║    Use script command to change the skill scope                    ║
  21. # ║      change_skill_scope(skill_id, scope)                           ║
  22. # ║      e.g.                                                          ║
  23. # ║      change_skill_scope(14,3)                                      ║
  24. # ║                                                                    ║
  25. # ║    Use script command to change the item scope                     ║
  26. # ║      change_skill_scope(item_id, scope)                            ║
  27. # ║      change_item_scope(1,3)                                        ║
  28. # ║                                                                    ║
  29. # ║    List of scopes:                                                 ║
  30. # ║      0 = none                                                      ║
  31. # ║      1 = one enemy                                                 ║
  32. # ║      2 = all enemies                                               ║
  33. # ║      3 = 1 random enemy                                            ║
  34. # ║      4 = 2 random enemies                                          ║
  35. # ║      5 = 3 random enemies                                          ║
  36. # ║      6 = 4 random enemies                                          ║
  37. # ║      7 = 1 ally                                                    ║
  38. # ║      8 = all allies                                                ║
  39. # ║      9 = 1 ally (dead?)                                            ║
  40. # ║      10 = all allies (dead?)                                       ║
  41. # ║      11 = the user                                                 ║
  42. # ╚════════════════════════════════════════════════════════════════════╝
  43. # ╔════════════════════════════════════════════════════════════════════╗
  44. # ║ Updates:                                                           ║
  45. # ║ 1.00 - 11 Mar 2023 - Script finished                               ║
  46. # ║                                                                    ║
  47. # ╚════════════════════════════════════════════════════════════════════╝
  48. # ╔════════════════════════════════════════════════════════════════════╗
  49. # ║ Credits and Thanks:                                                ║
  50. # ║   Roninator2                                                       ║
  51. # ║                                                                    ║
  52. # ╚════════════════════════════════════════════════════════════════════╝
  53. # ╔════════════════════════════════════════════════════════════════════╗
  54. # ║ Terms of use:                                                      ║
  55. # ║  Follow the original Authors terms of use where applicable         ║
  56. # ║    - When not made by me (Roninator2)                              ║
  57. # ║  Free for all uses in RPG Maker except nudity                      ║
  58. # ║  Anyone using this script in their project before these terms      ║
  59. # ║  were changed are allowed to use this script even if it conflicts  ║
  60. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  61. # ║  No part of this code can be used with AI programs or tools        ║
  62. # ║  Credit must be given                                              ║
  63. # ╚════════════════════════════════════════════════════════════════════╝
  64.  
  65. #==============================================================================
  66. # ** DataManager
  67. #==============================================================================
  68. module DataManager
  69.   #--------------------------------------------------------------------------
  70.   # * Create Save Contents
  71.   #--------------------------------------------------------------------------
  72.   class <<self; alias make_database_save_skill_item make_save_contents; end
  73.   def self.make_save_contents
  74.     $game_player.load_data = true
  75.     contents = make_database_save_skill_item
  76.     contents
  77.   end
  78. end # DataManager
  79.  
  80. #==============================================================================
  81. # ** Game_Temp
  82. #==============================================================================
  83.  
  84. class Game_Player < Game_Character
  85.   #--------------------------------------------------------------------------
  86.   # * Public Instance Variables
  87.   #--------------------------------------------------------------------------
  88.   attr_accessor :skill_scope
  89.   attr_accessor :item_scope
  90.   attr_accessor :load_data
  91.   #--------------------------------------------------------------------------
  92.   # * Object Initialization
  93.   #--------------------------------------------------------------------------
  94.   alias r2_temp_item_skill_scope_init  initialize
  95.   def initialize
  96.     r2_temp_item_skill_scope_init
  97.     @skill_scope = []
  98.     @item_scope = []
  99.     @load_data = false
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # common cache: load_scope_for_item
  103.   #--------------------------------------------------------------------------
  104.   def load_scope_for_item
  105.     @item_scope.each do |i|
  106.       $data_items[i[0]].scope =
  107.       $data_items[i[1]]
  108.       $game_party.items.each do |h|
  109.         if h.id == i[0]
  110.           h.scope = i[1]
  111.         end
  112.       end
  113.     end
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # common cache: load_scope_for_skill
  117.   #--------------------------------------------------------------------------
  118.   def load_scope_for_skill
  119.     @skill_scope.each do |i|
  120.       $data_skills[i[0]].scope =
  121.       $data_skills[i[1]]
  122.       $game_party.members.each do |a|
  123.         a.skills.each do |s|
  124.           if s.id == i[0]
  125.             s.scope = i[1]
  126.           end
  127.         end
  128.       end
  129.     end
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # * Frame Update
  133.   #--------------------------------------------------------------------------
  134.   alias r2_skill_item_scope_update  update
  135.   def update
  136.     r2_skill_item_scope_update
  137.     if @load_data == true
  138.       load_scope_for_item
  139.       load_scope_for_skill
  140.       @load_data = false
  141.     end
  142.   end
  143.   #--------------------------------------------------------------------------
  144.   # common cache: set_scope_for_skill
  145.   #--------------------------------------------------------------------------
  146.   def set_scope_for_skill(skill_id, scope)
  147.     found = false
  148.     id = nil
  149.     for i in 0..@skill_scope.size - 1
  150.       if @skill_scope[i][0] == skill_id
  151.         found = true
  152.         id = i
  153.       end
  154.     end
  155.     if found == true
  156.       @skill_scope[id][1] = scope
  157.     else
  158.       @skill_scope << [skill_id, scope]
  159.     end
  160.   end
  161.   #--------------------------------------------------------------------------
  162.   # common cache: set_scope_for_item
  163.   #--------------------------------------------------------------------------
  164.   def set_scope_for_item(item_id, scope)
  165.     found = false
  166.     id = nil
  167.     for i in 0..@item_scope.size - 1
  168.       if @item_scope[i][0] == item_id
  169.         found = true
  170.         id = i
  171.       end
  172.     end
  173.     if found == true
  174.       @item_scope[id][1] = scope
  175.     else
  176.       @item_scope << [item_id, scope]
  177.     end
  178.   end
  179. end
  180.  
  181. #==============================================================================
  182. # ■ Game Interpreter
  183. #==============================================================================
  184. class Game_Interpreter
  185.   def change_skill_scope(skill_id, scope)
  186.     $data_skills[skill_id].scope = scope
  187.     $game_player.set_scope_for_skill(skill_id, scope)
  188.   end
  189.   def change_item_scope(item_id, scope)
  190.     $data_items[item_id].scope = scope
  191.     $game_player.set_scope_for_item(item_id, scope)
  192.   end
  193.   def show_skill_scope(skill_id)
  194.     p($data_skills[skill_id])
  195.     p($game_player.skill_scope)
  196.   end
  197.   def show_item_scope(item_id)
  198.     p($data_items[item_id])
  199.     p($game_player.item_scope)
  200.   end
  201. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement