TheoAllen

Theo - Inventory Secure

Feb 20th, 2013
1,056
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 11.03 KB | None | 0 0
  1. # =============================================================================
  2. # ♫ ~ Inventory Secure by TheoAllen ~ ♫
  3. # Version : 1.2
  4. # Contact : www.rpgmakerid.com
  5. # =============================================================================
  6. # Requires : N/A
  7. # Rewrites method : N/A
  8. # Alliases method : Game_Party initialize
  9. # =============================================================================
  10. # ♫ UPDATES :
  11. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  12. # 2013.02.23 - Fixed bugs in inventory check
  13. #            - Secure inventory now also secure gold
  14. # 2013.02.21 - Added merge secured inventory and secured inventory check
  15. #            - Fixed some typos and bugs
  16. # 2013.02.20 - Started and Finished script
  17. #
  18. # =============================================================================
  19. # ♫ DESCRIPTION :
  20. # This script allow you to save current party's inventory when you're going to
  21. # switch party members into another team members for storytelling purposes.
  22. #
  23. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  24. # ♫ INSTRUCTION :
  25. # Put this script below material but above main in script editor. Don't forget
  26. # to save.
  27. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  28. # ♫ HOW TO USE :
  29. # Type these all in script call
  30. # - secure_inv(n)       = Secure party's inventory which "n" is an index where  
  31. #                         you put the secured inventory.
  32. # - get_inv(n)          = Get inventory from "n" index. It replaces the current
  33. #                         party's inventory.
  34. # - merge_inv(n)        = Merge secured inventory from "n" index to party's
  35. #                         inventory.
  36. # - inventory_exist?(n) = check avalaibility of secured inventory. can be used
  37. #                         in conditional branch through script call
  38. # =============================================================================
  39. # ♫ TERMS OF USE :
  40. # - Credit me, TheoAllen.
  41. # - You may use and edit this script both for commercial and non-commercial or
  42. #   even adult game as long as u don't claim it yours.
  43. # - I'll be glad if you give me a free copy of your game if you use this script
  44. #   in your commercial project.
  45. # =============================================================================
  46. #
  47. # =============================================================================
  48. # ♫ No custom configuration avalaible ~ ♫
  49. # ♫ Do not edit unless you know what to do ~ ♫
  50. # =============================================================================
  51.  
  52. class Game_Party < Game_Unit
  53.   #--------------------------------------------------------------------------
  54.   # ♫ Aliased initialize ~
  55.   #--------------------------------------------------------------------------  
  56.    alias theo_inv_secure_init initialize
  57.    def initialize
  58.      theo_inv_secure_init
  59.      init_all_bags
  60.    end
  61.   #--------------------------------------------------------------------------
  62.   # ♫ Initialize all bags ~
  63.   #--------------------------------------------------------------------------
  64.    def init_all_bags
  65.      @item_bags = []
  66.      @weapon_bags = []
  67.      @armor_bags = []
  68.      @gold_bags = []
  69.    end
  70.   #--------------------------------------------------------------------------
  71.   # ♫ Secure all inventories ~
  72.   #--------------------------------------------------------------------------
  73.    def secure_all(index)
  74.      secure_items(index)
  75.      secure_weapons(index)
  76.      secure_armors(index)
  77.      secure_gold(index)
  78.    end
  79.   #--------------------------------------------------------------------------
  80.   # ♫ Secure items ~
  81.   #--------------------------------------------------------------------------
  82.    def secure_items(index)
  83.      @item_bags[index] = @items.clone
  84.      @items.clear
  85.    end
  86.   #--------------------------------------------------------------------------
  87.   # ♫ Secure weapons ~
  88.   #--------------------------------------------------------------------------
  89.    def secure_weapons(index)
  90.      @weapon_bags[index] = @weapons.clone
  91.      @weapons.clear
  92.    end
  93.   #--------------------------------------------------------------------------
  94.   # ♫ Secure armors ~
  95.   #--------------------------------------------------------------------------
  96.    def secure_armors(index)
  97.      @armor_bags[index] = @armors.clone
  98.      @armors.clear
  99.    end
  100.   #--------------------------------------------------------------------------
  101.   # ♫ Secure gold ~
  102.   #--------------------------------------------------------------------------
  103.    def secure_gold(index)
  104.      @gold_bags[index] = @gold
  105.      @gold = 0
  106.    end  
  107.   #--------------------------------------------------------------------------
  108.   # ♫ Get all secured inventories ~
  109.   #--------------------------------------------------------------------------
  110.    def get_all(index)
  111.      get_items(index)
  112.      get_weapons(index)
  113.      get_armors(index)
  114.      get_gold(index)
  115.    end
  116.   #--------------------------------------------------------------------------
  117.   # ♫ Get secured items ~
  118.   #--------------------------------------------------------------------------
  119.    def get_items(index)
  120.      item_bags_exist?(index) ? @items = @item_bags[index].dup : @items = {}
  121.      @item_bags[index].clear
  122.    end
  123.   #--------------------------------------------------------------------------
  124.   # ♫ Get secured weapons ~
  125.   #--------------------------------------------------------------------------
  126.    def get_weapons(index)
  127.      weapon_bags_exist?(index) ? @weapons = @weapon_bags[index].dup : @weapons = {}
  128.      @weapon_bags[index].clear
  129.    end
  130.   #--------------------------------------------------------------------------
  131.   # ♫ Get secured armors ~
  132.   #--------------------------------------------------------------------------
  133.    def get_armors(index)
  134.      armor_bags_exist?(index) ? @armors = @armor_bags[index].dup : @armors = {}
  135.      @armor_bags[index].clear
  136.    end
  137.   #--------------------------------------------------------------------------
  138.   # ♫ Get secured gold ~
  139.   #--------------------------------------------------------------------------
  140.   def get_gold(index)
  141.     gold_bags_exist?(index) ? @gold = @gold_bags[index] : @gold = 0
  142.     @gold_bags[index] = 0
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ♫ Merge secured inventories to current inventories ~
  146.   #--------------------------------------------------------------------------
  147.    def merge_all(index)
  148.      merge_items(index)
  149.      merge_weapons(index)
  150.      merge_armors(index)
  151.      merge_gold(index)
  152.    end
  153.   #--------------------------------------------------------------------------
  154.   # ♫ Merge secured items ~
  155.   #--------------------------------------------------------------------------
  156.    def merge_items(index)
  157.      @item_bags[index].each_key do |id|
  158.        gain_item($data_items[id], @item_bags[index][id]) if item_bags_exist?(index)
  159.      end
  160.      @item_bags[index] = {}
  161.    end
  162.   #--------------------------------------------------------------------------
  163.   # ♫ Merge secured weapons ~
  164.   #--------------------------------------------------------------------------
  165.    def merge_weapons(index)
  166.      @weapon_bags[index].each_key do |id|
  167.        gain_item($data_weapons[id], @weapon_bags[index][id])if weapon_bags_exist?(index)
  168.      end
  169.      @weapon_bags[index] = {}
  170.    end
  171.   #--------------------------------------------------------------------------
  172.   # ♫ Merge secured armors ~
  173.   #--------------------------------------------------------------------------
  174.    def merge_armors(index)
  175.      @armor_bags[index].each_key do |id|
  176.        gain_item($data_armors[id], @armor_bags[index][id]) if armor_bags_exist?(index)
  177.      end
  178.      @armor_bags[index] = {}
  179.    end
  180.   #--------------------------------------------------------------------------
  181.   # ♫ Merge secured gold ~
  182.   #--------------------------------------------------------------------------
  183.    def merge_gold(index)
  184.      gain_gold(@gold_bags[index]) if gold_bags_exist?(index)
  185.      @gold_bags[index] = 0
  186.    end
  187.   #--------------------------------------------------------------------------
  188.   # ♫ Return true if secured inventory is avalaible
  189.   #--------------------------------------------------------------------------
  190.    def inventory_exist?(index)
  191.      return true if item_bags_exist?(index) ||
  192.      weapon_bags_exist?(index) ||
  193.      armor_bags_exist?(index)
  194.      return false
  195.    end
  196.   #--------------------------------------------------------------------------
  197.   # ♫ Return true if secured item is avalaible
  198.   #--------------------------------------------------------------------------
  199.    def item_bags_exist?(index)
  200.      return true if index <= @item_bags.size-1 && !@item_bags[index].nil? && check_values(@item_bags[index])
  201.      return false
  202.    end
  203.   #--------------------------------------------------------------------------
  204.   # ♫ Return true if secured weapon is avalaible
  205.   #--------------------------------------------------------------------------
  206.    def weapon_bags_exist?(index)
  207.      return true if index <= @weapon_bags.size-1 && !@weapon_bags[index].nil? && check_values(@weapon_bags[index])
  208.      return false
  209.    end
  210.   #--------------------------------------------------------------------------
  211.   # ♫ Return true if secured armor is avalaible
  212.   #--------------------------------------------------------------------------
  213.    def armor_bags_exist?(index)
  214.      return true if index <= @armor_bags.size-1 && !@armor_bags[index].nil? && check_values(@armor_bags[index])
  215.      return false
  216.    end
  217.   #--------------------------------------------------------------------------
  218.   # ♫ Return true if secured gold is avalaible ~
  219.   #--------------------------------------------------------------------------
  220.    def gold_bags_exist?(index)
  221.      return true if index <= @gold_bags.size-1 && !@gold_bags[index].nil? && @gold_bags[index] > 0
  222.      return false
  223.    end
  224.   #--------------------------------------------------------------------------
  225.   # ♫ Check avalaible items. Returns FALSE if all items are 0
  226.   #--------------------------------------------------------------------------  
  227.    def check_values(bags)
  228.      values = bags.values
  229.      return values.any? {|value| value > 0}
  230.    end
  231.  end
  232. # =============================================================================
  233. # ♫ End of Game_Party class ♫
  234. # =============================================================================
  235. #
  236. # These methods are to simplify script call
  237. #
  238. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  239.  def secure_inv(index)
  240.    $game_party.secure_all(convert_index(index))
  241.  end
  242.  
  243.  def get_inv(index)
  244.    $game_party.get_all(convert_index(index))
  245.  end
  246.  
  247.  def merge_inv(index)
  248.    $game_party.merge_all(convert_index(index))
  249.  end
  250.  
  251.  def inventory_exist?(index)
  252.    $game_party.inventory_exist?(convert_index(index))
  253.  end
  254.  
  255.  def convert_index(index)
  256.    return 0 if index < 0
  257.    return index
  258.  end
  259. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Advertisement
Add Comment
Please, Sign In to add comment