Advertisement
roninator2

Mr Trivel Crafting Simple - super items

Nov 19th, 2024
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 8.16 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Mr Trivel Crafting Simple - addon      ║  Version: 1.00     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║   Specify super items that are not consumed   ║    11 Jun 2019     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: Mr. Trivel - Crafting Simple                             ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║   Adds returning of items if they are specified in the note tag    ║
  16. # ║   Essentially making it so that you do not lose the tagged item    ║
  17. # ╚════════════════════════════════════════════════════════════════════╝
  18. # ╔════════════════════════════════════════════════════════════════════╗
  19. # ║ Instructions:                                                      ║
  20. # ║   I designed this for my own game Path of Life                     ║
  21. # ║   The concept is that you can have items that are 'super' items    ║
  22. # ║   which will not be lost and replace other items in the recipe     ║
  23. # ║                                                                    ║
  24. # ║   The tagged item must be in your inventory                        ║
  25. # ║   Can only substitute items for items, weapons for weapons etc     ║
  26. # ║                                                                    ║
  27. # ║   Place the note tag                                               ║
  28. # ║         <swap craft: X>                                            ║
  29. # ║   on the item, weapon, armor you wish to be recovered              ║
  30. # ║   in the item that would normally get consumed                     ║
  31. # ║   So on item 15 you say <swap craft: 20>                           ║
  32. # ║   The recipe needs item 15, but it gets substituted for item 20    ║
  33. # ║   When you craft the item, item 20 is not lost, neither is item 15 ║
  34. # ║                                                                    ║
  35. # ╚════════════════════════════════════════════════════════════════════╝
  36. # ╔════════════════════════════════════════════════════════════════════╗
  37. # ║ Updates:                                                           ║
  38. # ║ 1.00 - 22 Nov 2024 - Script finished                               ║
  39. # ║                                                                    ║
  40. # ╚════════════════════════════════════════════════════════════════════╝
  41. # ╔════════════════════════════════════════════════════════════════════╗
  42. # ║ Credits and Thanks:                                                ║
  43. # ║   Roninator2                                                       ║
  44. # ║   Mr. Trivel                                                       ║
  45. # ╚════════════════════════════════════════════════════════════════════╝
  46. # ╔════════════════════════════════════════════════════════════════════╗
  47. # ║ Terms of use:                                                      ║
  48. # ║  Follow the original Authors terms of use where applicable         ║
  49. # ║    - When not made by me (Roninator2)                              ║
  50. # ║  Free for all uses in RPG Maker except nudity                      ║
  51. # ║  Anyone using this script in their project before these terms      ║
  52. # ║  were changed are allowed to use this script even if it conflicts  ║
  53. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  54. # ║  No part of this code can be used with AI programs or tools        ║
  55. # ║  Credit must be given                                              ║
  56. # ╚════════════════════════════════════════════════════════════════════╝
  57.  
  58. module R2
  59.   module Trivel_Craft
  60.     Regex = /<swap[-_ ]craft:[-_ ]\s*(\d+)\s*>/imx
  61.   end
  62. end
  63.  
  64. class MrTS_Requirements_Window < Window_Base
  65.  
  66.   def set_recipe(item)
  67.     return unless item
  68.     @recipe = item
  69.     @item_list = []
  70.     @saveitem = []
  71.     MrTS::Crafting::RECIPES[@recipe][:ingredients].each { |i|
  72.       type = i[0].to_i
  73.       if type == 0
  74.         item = $data_items[i[1]]
  75.         results = item.note.scan(R2::Trivel_Craft::Regex)
  76.         results.each do |res|
  77.           repitem = res[0].to_i
  78.           if $game_party.has_item?($data_items[repitem], false)
  79.             @item_list.delete(i)
  80.             i = [type, repitem, 1]
  81.             @saveitem << i
  82.             @saveitem.uniq!
  83.           end
  84.         end
  85.       end
  86.       if type == 1
  87.         item = $data_weapons[i[1]]
  88.         results = item.note.scan(R2::Trivel_Craft::Regex)
  89.         results.each do |res|
  90.           repitem = res[0].to_i
  91.           if $game_party.has_item?($data_weapons[repitem], false)
  92.             @item_list.delete(i)
  93.             i = [type, repitem, 1]
  94.             @saveitem << i
  95.             @saveitem.uniq!
  96.           end
  97.         end
  98.       end
  99.       if type == 2
  100.         item = $data_armors[i[1]]
  101.         results = item.note.scan(R2::Trivel_Craft::Regex)
  102.         results.each do |res|
  103.           repitem = res[0].to_i
  104.           if $game_party.has_item?($data_armors[repitem], false)
  105.             @item_list.delete(i)
  106.             i = [type, repitem, 1]
  107.             @saveitem << i
  108.             @saveitem.uniq!
  109.           end
  110.         end
  111.       end
  112.       @item_list.push(get_true_item(i))
  113.       @item_list.uniq!
  114.     }
  115.     refresh
  116.   end
  117.  
  118.   alias r2_trivel_craft_item_83v    craft_item
  119.   def craft_item
  120.     r2_trivel_craft_item_83v
  121.     @saveitem.each do |il|
  122.       keep = get_true_item(il)
  123.       $game_party.gain_item(keep[0], keep[1])
  124.     end
  125.   end
  126.  
  127. end
  128.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement