Advertisement
roninator2

Non Combat Actor

Dec 11th, 2024
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 7.11 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Non Combat Actor                       ║  Version: 1.01     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║ Specify actors to never be in combat          ║    03 Jul 2021     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: nil                                                      ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║       Have Actors that do not fight                                ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║ Place note tag on actor note box. <non combat>                     ║
  20. # ║ Change number below to Max battle members                          ║
  21. # ║                                                                    ║
  22. # ╚════════════════════════════════════════════════════════════════════╝
  23. # ╔════════════════════════════════════════════════════════════════════╗
  24. # ║ Updates:                                                           ║
  25. # ║ 1.00 - 03 Jul 2021 - Script finished                               ║
  26. # ║ 1.01 - 04 Jul 2021 - updated                                       ║
  27. # ║                                                                    ║
  28. # ╚════════════════════════════════════════════════════════════════════╝
  29. # ╔════════════════════════════════════════════════════════════════════╗
  30. # ║ Credits and Thanks:                                                ║
  31. # ║   Roninator2                                                       ║
  32. # ║                                                                    ║
  33. # ╚════════════════════════════════════════════════════════════════════╝
  34. # ╔════════════════════════════════════════════════════════════════════╗
  35. # ║ Terms of use:                                                      ║
  36. # ║  Follow the original Authors terms of use where applicable         ║
  37. # ║    - When not made by me (Roninator2)                              ║
  38. # ║  Free for all uses in RPG Maker except nudity                      ║
  39. # ║  Anyone using this script in their project before these terms      ║
  40. # ║  were changed are allowed to use this script even if it conflicts  ║
  41. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  42. # ║  No part of this code can be used with AI programs or tools        ║
  43. # ║  Credit must be given                                              ║
  44. # ╚════════════════════════════════════════════════════════════════════╝
  45.  
  46. module R2_Max_Battle_members
  47.   MAX = 4
  48. end
  49.  
  50. # ╔══════════════════════════════════════════════════════════╗
  51. # ║      No more editing                                     ║
  52. # ╚══════════════════════════════════════════════════════════╝
  53. class Game_Followers
  54.   def initialize(leader)
  55.     @visible = $data_system.opt_followers
  56.     @gathering = false
  57.     @data = []
  58.     @data.push(Game_Follower.new(1, leader))
  59.     if SceneManager.scene_is?(Scene_Title)
  60.       (2...R2_Max_Battle_members::MAX).each do |index|
  61.         @data.push(Game_Follower.new(index, @data[-1]))
  62.       end
  63.     else
  64.       (2...$game_party.max_battle_members).each do |index|
  65.         @data.push(Game_Follower.new(index, @data[-1]))
  66.       end
  67.     end
  68.   end
  69. end
  70.  
  71. class Game_Party < Game_Unit
  72.   attr_accessor :btlact
  73.    
  74.   def battle_members
  75.     ptybtlmem = []
  76.     @actors[0, max_battle_members].select {|id|
  77.       chkact = @btlact
  78.       nonact = $data_actors[id]
  79.       next if nonact.note =~ /<non combat>/i
  80.       actor = $game_actors[id]
  81.       next if !actor.exist?
  82.       chkact -= 1
  83.       ptybtlmem << actor
  84.       break if chkact == 0
  85.       }
  86.     return ptybtlmem
  87.   end
  88.  
  89.   def max_battle_members
  90.     count = 0
  91.     @btlact = 0
  92.     @actors.each do |i|
  93.       actor = $game_actors[i]
  94.       count += 1
  95.       nonact = $data_actors[actor.id]
  96.       next if nonact.note =~ /<non combat>/i
  97.       @btlact += 1
  98.       return count if @btlact == R2_Max_Battle_members::MAX
  99.     end
  100.     return count
  101.   end
  102. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement