Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
482
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 30.41 KB | None | 0 0
  1. #-------------------------------------------------------------------------------
  2. # Synthesis Shop v1.1
  3. # by: Cylindrical
  4. #
  5. # ~~~~~ EPIC ~~~~~
  6. # ~~~~~ AWESOME ~~~~~
  7. # ~~~~~ BEASTING ~~~~~
  8. # ~~~~~ HUGE ~~~~~
  9. # ~~~~~ ALOT OF STOOF ~~~~~
  10. # ~~~~~ REMAKE by RjayCoelho ~~~~~
  11. #
  12. # May 25, 2010
  13. #-------------------------------------------------------------------------------
  14. # What is it?
  15. # This script copies Final Fantasy IX's Synth Shops where the player is
  16. # allowed to create new items using different materials.
  17. #
  18. # How to use
  19. # Place above Main. Before you open the synthesize shop, you need to define
  20. # the shop items. In the SETUP part, you can create arrays to add in your shop.
  21. # This is the format:
  22. #
  23. #            Result Item       Requirement 1     Requirement 2
  24. # NAME = [ ["<type>", <id>], ["<type>", <id>], ["<type>", <id>] ]
  25. #
  26. # Where: NAME is what you call it. Should be relevant but unique. Must be ALLCAPS
  27. #        <type> is either "WEAPON", "ARMOR", or "ITEM"
  28. #        <id> is the item ID
  29. # If you would like to use more than two requirements add another requirement
  30. # as so: (You may have up to 4)
  31. #  
  32. #            Result Item       Requirement 1     Requirement 2    Requirement 3
  33. # NAME = [ ["<type>", <id>], ["<type>", <id>], ["<type>", <id>], ["<type>", <id>] ]
  34. #
  35. # You can also add activate a SWITCH via Requirement by typing
  36. #
  37. #           Result Item       Requirement 1     Requirement 2    Requirement 3
  38. # NAME = [ ["SWITCH", <switchid>], ["<type>", <id>], ["<type>", <id>], ["<type>", <id>] ]
  39. #
  40. # WARNING: You must have an item with the cooresponding switch ID or the game
  41. # will crash upon opening the shop.
  42. #
  43. # Then, using $synth_items, put in the items you want to synth. It can be as
  44. # many as you like.
  45. #
  46. # $synth_items = [NAME1, NAME2, ... , NAMEn]
  47. #
  48. # To open the shop window, use the 'Script' command in an event and put it
  49. # this piece of code:
  50. #
  51. #    $scene = Scene_SynthShop.new
  52. #
  53. # Notes
  54. #  * Make sure you fill in $synth_items first before opening the shop.
  55. #  * You MUST GIVE ME CREDIT if you used this in your game.
  56. #  * Free to use for commercial games, as long as you give credit to me.
  57. #  * This is my first script so don't expect too much glamore. I still
  58. #    consider myself a beginner.
  59. #-------------------------------------------------------------------------------
  60. # Special Thanks
  61. #   Raukue for his KGCYanflyPLUS Base Demo
  62. #   RPGI for his help with Window_SynthReq and check_required_item
  63. #-------------------------------------------------------------------------------
  64.  
  65. #-------------------------------------------------------------------------------
  66. # SETUP START
  67. #-------------------------------------------------------------------------------
  68.  
  69.   # Welcome Message
  70.   SYNTH_WELCOME = "What would you like to create?"
  71.  
  72.   # Replace 'Synthesize' with this.
  73.   SYNTH_COMMAND = "Create"
  74.  
  75.   # Replace 'Requirements' with this.
  76.   SYNTH_REQUIREMENTS = "Requirements"
  77.  
  78.   # Synth-able Items Database - Follow the format. Spaces doesn't really matter.
  79.   #                             The numbers here MUST exist in the database.
  80.  
  81.   SWITCH_TEST    = [ ["SWITCH", 100], ["ITEM",   22], ["ITEM",  22] ]
  82.   COPPER_BAR    = [ ["ITEM",   34], ["ITEM",   22], ["ITEM",  22] ]
  83.   IRON_BAR      = [ ["ITEM",   35], ["ITEM",   23], ["ITEM",  23] ]
  84.   STEEL_BAR     = [ ["ITEM",   36], ["ITEM",   23], ["ITEM",  24] ]
  85.   MITHRIL_BAR   = [ ["ITEM",   37], ["ITEM",   25], ["ITEM",  26] ]
  86.   HARD_MITHRIL = [ ["ITEM",  38], ["ITEM",  26], ["ITEM",   26] ]
  87.   MONOGRINDER = [ ["ITEM",  39], ["ITEM",  26], ["ITEM",   27] ]
  88.   DIGRINDER = [ ["ITEM",  40], ["ITEM",  27], ["ITEM",   28] ]
  89.   TRIGRINDER = [ ["ITEM",  41], ["ITEM",  28], ["ITEM",   28] ]
  90.   QUADGRINDER = [ ["ITEM",  42], ["ITEM",  28], ["ITEM",   29] ]
  91.   PHOTON_CRYSTAL = [ ["ITEM",  43], ["ITEM",  29], ["ITEM",   29] ]
  92.   SARDINE = [ ["ITEM",  56], ["ITEM",  67], ["ITEM",   45] ]
  93.   HERRING = [ ["ITEM",  57], ["ITEM",  68], ["ITEM",   46] ]
  94.   SQUID = [ ["ITEM",  58], ["ITEM",  69], ["ITEM",   47] ]
  95.   TROUT = [ ["ITEM",  59], ["ITEM",  70], ["ITEM",   48] ]
  96.   SALMON = [ ["ITEM",  60], ["ITEM",  71], ["ITEM",   49] ]
  97.   TUNA = [ ["ITEM",  61], ["ITEM",  72], ["ITEM",   50] ]
  98.   SWORDFISH = [ ["ITEM",  62], ["ITEM",  73], ["ITEM",   51] ]
  99.   LOBSTER = [ ["ITEM",  63], ["ITEM",  74], ["ITEM",   52] ]
  100.   SHARK = [ ["ITEM",  64], ["ITEM",  75], ["ITEM",   53] ]
  101.   WHITESHARK = [ ["ITEM",  65], ["ITEM",  76], ["ITEM",   54] ]
  102.   LEATHER_SHIELD_1 = [ ["ARMOR",  32], ["ARMOR",  01], ["ITEM",   34] ]
  103.   LEATHER_SHIELD_2 = [ ["ARMOR",  33], ["ARMOR",  32], ["ITEM",   35] ]
  104.   LEATHER_SHIELD_3 = [ ["ARMOR",  34], ["ARMOR",  33], ["ITEM",   36] ]
  105.   LEATHER_SHIELD_4 = [ ["ARMOR",  35], ["ARMOR",  34], ["ITEM",   37] ]
  106.   LEATHER_SHIELD_5 = [ ["ARMOR",  36], ["ARMOR",  35], ["ITEM",   38] ]
  107.   LEATHER_SHIELD_6 = [ ["ARMOR",  37], ["ARMOR",  36], ["ITEM",   39] ]
  108.   LEATHER_SHIELD_7 = [ ["ARMOR",  38], ["ARMOR",  37], ["ITEM",   40] ]
  109.   LEATHER_SHIELD_8 = [ ["ARMOR",  39], ["ARMOR",  38], ["ITEM",   41] ]
  110.   LEATHER_SHIELD_9 = [ ["ARMOR",  40], ["ARMOR",  39], ["ITEM",   42] ]
  111.   LEATHER_SHIELD_S = [ ["ARMOR",  41], ["ARMOR",  40], ["ITEM",   43] ]
  112.   FRAME_SHIELD_1 = [ ["ARMOR",  43], ["ARMOR",  3], ["ITEM",   34] ]
  113.   FRAME_SHIELD_2 = [ ["ARMOR",  44], ["ARMOR",  43], ["ITEM",   35] ]
  114.   FRAME_SHIELD_3 = [ ["ARMOR",  45], ["ARMOR",  44], ["ITEM",   36] ]
  115.   FRAME_SHIELD_4 = [ ["ARMOR",  46], ["ARMOR",  45], ["ITEM",   37] ]
  116.   FRAME_SHIELD_5 = [ ["ARMOR",  47], ["ARMOR",  46], ["ITEM",   38] ]
  117.   FRAME_SHIELD_6 = [ ["ARMOR",  48], ["ARMOR",  47], ["ITEM",   39] ]
  118.   FRAME_SHIELD_7 = [ ["ARMOR",  49], ["ARMOR",  48], ["ITEM",   40] ]
  119.   FRAME_SHIELD_8 = [ ["ARMOR",  50], ["ARMOR",  49], ["ITEM",   41] ]
  120.   FRAME_SHIELD_9 = [ ["ARMOR",  51], ["ARMOR",  50], ["ITEM",   42] ]
  121.   FRAME_SHIELD_S = [ ["ARMOR",  52], ["ARMOR",  51], ["ITEM",   43] ]
  122.   CHAIN_COIF_1 = [ ["ARMOR",  54], ["ARMOR",  8], ["ITEM",   34] ]
  123.   CHAIN_COIF_2 = [ ["ARMOR",  55], ["ARMOR",  54], ["ITEM",   35] ]
  124.   CHAIN_COIF_3 = [ ["ARMOR",  56], ["ARMOR",  55], ["ITEM",   36] ]
  125.   CHAIN_COIF_4 = [ ["ARMOR",  57], ["ARMOR",  56], ["ITEM",   37] ]
  126.   CHAIN_COIF_5 = [ ["ARMOR",  58], ["ARMOR",  57], ["ITEM",   38] ]
  127.   CHAIN_COIF_6 = [ ["ARMOR",  59], ["ARMOR",  58], ["ITEM",   39] ]
  128.   CHAIN_COIF_7 = [ ["ARMOR",  60], ["ARMOR",  59], ["ITEM",   40] ]
  129.   CHAIN_COIF_8 = [ ["ARMOR",  61], ["ARMOR",  60], ["ITEM",   41] ]
  130.   CHAIN_COIF_9 = [ ["ARMOR",  62], ["ARMOR",  61], ["ITEM",   42] ]
  131.   CHAIN_COIF_S = [ ["ARMOR",  63], ["ARMOR",  62], ["ITEM",   43] ]
  132.   HAT_1 = [ ["ARMOR",  109], ["ARMOR",  7], ["ITEM",   34] ]
  133.   HAT_2 = [ ["ARMOR",  110], ["ARMOR",  109], ["ITEM",   35] ]
  134.   HAT_3 = [ ["ARMOR",  111], ["ARMOR",  110], ["ITEM",   36] ]
  135.   HAT_4 = [ ["ARMOR",  112], ["ARMOR",  111], ["ITEM",   37] ]
  136.   HAT_5 = [ ["ARMOR",  113], ["ARMOR",  112], ["ITEM",   38] ]
  137.   HAT_6 = [ ["ARMOR",  114], ["ARMOR",  113], ["ITEM",   39] ]
  138.   HAT_7 = [ ["ARMOR",  115], ["ARMOR",  114], ["ITEM",   40] ]
  139.   HAT_8 = [ ["ARMOR",  116], ["ARMOR",  115], ["ITEM",   41] ]
  140.   HAT_9 = [ ["ARMOR",  117], ["ARMOR",  116], ["ITEM",   42] ]
  141.   HAT_S = [ ["ARMOR",  118], ["ARMOR",  117], ["ITEM",   43] ]
  142.   METAL_HELM_1 = [ ["ARMOR",  65], ["ARMOR",  9], ["ITEM",   34] ]
  143.   METAL_HELM_2 = [ ["ARMOR",  66], ["ARMOR",  65], ["ITEM",   35] ]
  144.   METAL_HELM_3 = [ ["ARMOR",  67], ["ARMOR",  66], ["ITEM",   36] ]
  145.   METAL_HELM_4 = [ ["ARMOR",  68], ["ARMOR",  67], ["ITEM",   37] ]
  146.   METAL_HELM_5 = [ ["ARMOR",  69], ["ARMOR",  68], ["ITEM",   38] ]
  147.   METAL_HELM_6 = [ ["ARMOR",  70], ["ARMOR",  69], ["ITEM",   39] ]
  148.   METAL_HELM_7 = [ ["ARMOR",  71], ["ARMOR",  70], ["ITEM",   40] ]
  149.   METAL_HELM_8 = [ ["ARMOR",  72], ["ARMOR",  71], ["ITEM",   41] ]
  150.   METAL_HELM_9 = [ ["ARMOR",  73], ["ARMOR",  72], ["ITEM",   42] ]
  151.   METAL_HELM_S = [ ["ARMOR",  74], ["ARMOR",  73], ["ITEM",   43] ]
  152.   ROBE_1 = [ ["ARMOR",  98], ["ARMOR",  13], ["ITEM",   34] ]
  153.   ROBE_2 = [ ["ARMOR",  99], ["ARMOR",  98], ["ITEM",   35] ]
  154.   ROBE_3 = [ ["ARMOR",  100], ["ARMOR",  99], ["ITEM",   36] ]
  155.   ROBE_4 = [ ["ARMOR",  101], ["ARMOR",  100], ["ITEM",   37] ]
  156.   ROBE_5 = [ ["ARMOR",  102], ["ARMOR",  101], ["ITEM",   38] ]
  157.   ROBE_6 = [ ["ARMOR",  103], ["ARMOR",  102], ["ITEM",   39] ]
  158.   ROBE_7 = [ ["ARMOR",  104], ["ARMOR",  103], ["ITEM",   40] ]
  159.   ROBE_8 = [ ["ARMOR",  105], ["ARMOR",  104], ["ITEM",   41] ]
  160.   ROBE_9 = [ ["ARMOR",  106], ["ARMOR",  105], ["ITEM",   42] ]
  161.   ROBE_S = [ ["ARMOR",  107], ["ARMOR",  106], ["ITEM",   43] ]
  162.   LEATHER_PLATE_1 = [ ["ARMOR",  87], ["ARMOR",  14], ["ITEM",   34] ]
  163.   LEATHER_PLATE_2 = [ ["ARMOR",  88], ["ARMOR",  87], ["ITEM",   35] ]
  164.   LEATHER_PLATE_3 = [ ["ARMOR",  89], ["ARMOR",  88], ["ITEM",   36] ]
  165.   LEATHER_PLATE_4 = [ ["ARMOR",  90], ["ARMOR",  89], ["ITEM",   37] ]
  166.   LEATHER_PLATE_5 = [ ["ARMOR",  91], ["ARMOR",  90], ["ITEM",   38] ]
  167.   LEATHER_PLATE_6 = [ ["ARMOR",  92], ["ARMOR",  91], ["ITEM",   39] ]
  168.   LEATHER_PLATE_7 = [ ["ARMOR",  93], ["ARMOR",  92], ["ITEM",   40] ]
  169.   LEATHER_PLATE_8 = [ ["ARMOR",  94], ["ARMOR",  93], ["ITEM",   41] ]
  170.   LEATHER_PLATE_9 = [ ["ARMOR",  95], ["ARMOR",  94], ["ITEM",   42] ]
  171.   LEATHER_PLATE_S = [ ["ARMOR",  96], ["ARMOR",  95], ["ITEM",   43] ]
  172.   RING_MAIL_1 = [ ["ARMOR",  76], ["ARMOR",  15], ["ITEM",   34] ]
  173.   RING_MAIL_2 = [ ["ARMOR",  77], ["ARMOR",  76], ["ITEM",   35] ]
  174.   RING_MAIL_3 = [ ["ARMOR",  78], ["ARMOR",  77], ["ITEM",   36] ]
  175.   RING_MAIL_4 = [ ["ARMOR",  79], ["ARMOR",  78], ["ITEM",   37] ]
  176.   RING_MAIL_5 = [ ["ARMOR",  80], ["ARMOR",  79], ["ITEM",   38] ]
  177.   RING_MAIL_6 = [ ["ARMOR",  81], ["ARMOR",  80], ["ITEM",   39] ]
  178.   RING_MAIL_7 = [ ["ARMOR",  82], ["ARMOR",  81], ["ITEM",   40] ]
  179.   RING_MAIL_8 = [ ["ARMOR",  83], ["ARMOR",  82], ["ITEM",   41] ]
  180.   RING_MAIL_9 = [ ["ARMOR",  84], ["ARMOR",  83], ["ITEM",   42] ]
  181.   RING_MAIL_S = [ ["ARMOR",  85], ["ARMOR",  84], ["ITEM",   43] ]
  182.   WAR_BRACE_1 = [ ["ARMOR",  120], ["ARMOR",  25], ["ITEM",   34] ]
  183.   WAR_BRACE_2 = [ ["ARMOR",  121], ["ARMOR",  120], ["ITEM",   35] ]
  184.   WAR_BRACE_3 = [ ["ARMOR",  122], ["ARMOR",  121], ["ITEM",   36] ]
  185.   WAR_BRACE_4 = [ ["ARMOR",  123], ["ARMOR",  122], ["ITEM",   37] ]
  186.   WAR_BRACE_5 = [ ["ARMOR",  124], ["ARMOR",  123], ["ITEM",   38] ]
  187.   WAR_BRACE_6 = [ ["ARMOR",  125], ["ARMOR",  124], ["ITEM",   39] ]
  188.   WAR_BRACE_7 = [ ["ARMOR",  126], ["ARMOR",  125], ["ITEM",   40] ]
  189.   WAR_BRACE_8 = [ ["ARMOR",  127], ["ARMOR",  126], ["ITEM",   41] ]
  190.   WAR_BRACE_9 = [ ["ARMOR",  128], ["ARMOR",  127], ["ITEM",   42] ]
  191.   WAR_BRACE_S = [ ["ARMOR",  129], ["ARMOR",  128], ["ITEM",   43] ]
  192.   MAG_BRACE_1 = [ ["ARMOR",  131], ["ARMOR",  26], ["ITEM",   34] ]
  193.   MAG_BRACE_2 = [ ["ARMOR",  132], ["ARMOR",  131], ["ITEM",   35] ]
  194.   MAG_BRACE_3 = [ ["ARMOR",  133], ["ARMOR",  132], ["ITEM",   36] ]
  195.   MAG_BRACE_4 = [ ["ARMOR",  134], ["ARMOR",  133], ["ITEM",   37] ]
  196.   MAG_BRACE_5 = [ ["ARMOR",  135], ["ARMOR",  134], ["ITEM",   38] ]
  197.   MAG_BRACE_6 = [ ["ARMOR",  136], ["ARMOR",  135], ["ITEM",   39] ]
  198.   MAG_BRACE_7 = [ ["ARMOR",  137], ["ARMOR",  136], ["ITEM",   40] ]
  199.   MAG_BRACE_8 = [ ["ARMOR",  138], ["ARMOR",  137], ["ITEM",   41] ]
  200.   MAG_BRACE_9 = [ ["ARMOR",  139], ["ARMOR",  138], ["ITEM",   42] ]
  201.   MAG_BRACE_S = [ ["ARMOR",  140], ["ARMOR",  139], ["ITEM",   43] ]
  202.   FAIRY_SHOES_1 = [ ["ARMOR",  142], ["ARMOR",  28], ["ITEM",   34] ]
  203.   FAIRY_SHOES_2 = [ ["ARMOR",  143], ["ARMOR",  142], ["ITEM",   35] ]
  204.   FAIRY_SHOES_3 = [ ["ARMOR",  144], ["ARMOR",  143], ["ITEM",   36] ]
  205.   FAIRY_SHOES_4 = [ ["ARMOR",  145], ["ARMOR",  144], ["ITEM",   37] ]
  206.   FAIRY_SHOES_5 = [ ["ARMOR",  146], ["ARMOR",  145], ["ITEM",   38] ]
  207.   FAIRY_SHOES_6 = [ ["ARMOR",  147], ["ARMOR",  146], ["ITEM",   39] ]
  208.   FAIRY_SHOES_7 = [ ["ARMOR",  148], ["ARMOR",  147], ["ITEM",   40] ]
  209.   FAIRY_SHOES_8 = [ ["ARMOR",  149], ["ARMOR",  148], ["ITEM",   41] ]
  210.   FAIRY_SHOES_9 = [ ["ARMOR",  150], ["ARMOR",  149], ["ITEM",   42] ]
  211.   FAIRY_SHOES_S = [ ["ARMOR",  151], ["ARMOR",  150], ["ITEM",   43] ]
  212.   GAUNTLETS_1 = [ ["ARMOR",  154], ["ARMOR",  153], ["ITEM",   34] ]
  213.   GAUNTLETS_2 = [ ["ARMOR",  155], ["ARMOR",  154], ["ITEM",   35] ]
  214.   GAUNTLETS_3 = [ ["ARMOR",  156], ["ARMOR",  155], ["ITEM",   36] ]
  215.   GAUNTLETS_4 = [ ["ARMOR",  157], ["ARMOR",  156], ["ITEM",   37] ]
  216.   GAUNTLETS_5 = [ ["ARMOR",  158], ["ARMOR",  157], ["ITEM",   38] ]
  217.   GAUNTLETS_6 = [ ["ARMOR",  159], ["ARMOR",  158], ["ITEM",   39] ]
  218.   GAUNTLETS_7 = [ ["ARMOR",  160], ["ARMOR",  159], ["ITEM",   40] ]
  219.   GAUNTLETS_8 = [ ["ARMOR",  161], ["ARMOR",  160], ["ITEM",   41] ]
  220.   GAUNTLETS_9 = [ ["ARMOR",  162], ["ARMOR",  161], ["ITEM",   42] ]
  221.   GAUNTLETS_S = [ ["ARMOR",  163], ["ARMOR",  162], ["ITEM",   43] ]
  222.   LONG_SWORD_1 = [ ["WEAPON",  43], ["WEAPON",  2], ["ITEM",   34] ]
  223.   LONG_SWORD_2 = [ ["WEAPON",  44], ["WEAPON",  43], ["ITEM",   35] ]
  224.   LONG_SWORD_3 = [ ["WEAPON",  45], ["WEAPON",  44], ["ITEM",   36] ]
  225.   LONG_SWORD_4 = [ ["WEAPON",  46], ["WEAPON",  45], ["ITEM",   37] ]
  226.   LONG_SWORD_5 = [ ["WEAPON",  47], ["WEAPON",  46], ["ITEM",   38] ]
  227.   LONG_SWORD_6 = [ ["WEAPON",  48], ["WEAPON",  47], ["ITEM",   39] ]
  228.   LONG_SWORD_7 = [ ["WEAPON",  49], ["WEAPON",  48], ["ITEM",   40] ]
  229.   LONG_SWORD_8 = [ ["WEAPON",  50], ["WEAPON",  49], ["ITEM",   41] ]
  230.   LONG_SWORD_9 = [ ["WEAPON",  51], ["WEAPON",  50], ["ITEM",   42] ]
  231.   LONG_SWORD_S = [ ["WEAPON",  52], ["WEAPON",  51], ["ITEM",   43] ]
  232.   LONG_SPEAR_1 = [ ["WEAPON",  54], ["WEAPON",  3], ["ITEM",   34] ]
  233.   LONG_SPEAR_2 = [ ["WEAPON",  55], ["WEAPON",  54], ["ITEM",   35] ]
  234.   LONG_SPEAR_3 = [ ["WEAPON",  56], ["WEAPON",  55], ["ITEM",   36] ]
  235.   LONG_SPEAR_4 = [ ["WEAPON",  57], ["WEAPON",  56], ["ITEM",   37] ]
  236.   LONG_SPEAR_5 = [ ["WEAPON",  58], ["WEAPON",  57], ["ITEM",   38] ]
  237.   LONG_SPEAR_6 = [ ["WEAPON",  59], ["WEAPON",  58], ["ITEM",   39] ]
  238.   LONG_SPEAR_7 = [ ["WEAPON",  60], ["WEAPON",  59], ["ITEM",   40] ]
  239.   LONG_SPEAR_8 = [ ["WEAPON",  61], ["WEAPON",  60], ["ITEM",   41] ]
  240.   LONG_SPEAR_9 = [ ["WEAPON",  62], ["WEAPON",  61], ["ITEM",   42] ]
  241.   LONG_SPEAR_S = [ ["WEAPON",  63], ["WEAPON",  62], ["ITEM",   43] ]
  242.   LONG_BOW_1 = [ ["WEAPON",  65], ["WEAPON",  4], ["ITEM",   34] ]
  243.   LONG_BOW_2 = [ ["WEAPON",  66], ["WEAPON",  65], ["ITEM",   35] ]
  244.   LONG_BOW_3 = [ ["WEAPON",  67], ["WEAPON",  66], ["ITEM",   36] ]
  245.   LONG_BOW_4 = [ ["WEAPON",  68], ["WEAPON",  67], ["ITEM",   37] ]
  246.   LONG_BOW_5 = [ ["WEAPON",  69], ["WEAPON",  68], ["ITEM",   38] ]
  247.   LONG_BOW_6 = [ ["WEAPON",  70], ["WEAPON",  69], ["ITEM",   39] ]
  248.   LONG_BOW_7 = [ ["WEAPON",  71], ["WEAPON",  70], ["ITEM",   40] ]
  249.   LONG_BOW_8 = [ ["WEAPON",  72], ["WEAPON",  71], ["ITEM",   41] ]
  250.   LONG_BOW_9 = [ ["WEAPON",  73], ["WEAPON",  72], ["ITEM",   42] ]
  251.   LONG_BOW_S = [ ["WEAPON",  74], ["WEAPON",  73], ["ITEM",   43] ]
  252.   CHAIN_WHIP_1 = [ ["WEAPON",  76], ["WEAPON",  5], ["ITEM",   34] ]
  253.   CHAIN_WHIP_2 = [ ["WEAPON",  77], ["WEAPON",  76], ["ITEM",   35] ]
  254.   CHAIN_WHIP_3 = [ ["WEAPON",  78], ["WEAPON",  77], ["ITEM",   36] ]
  255.   CHAIN_WHIP_4 = [ ["WEAPON",  79], ["WEAPON",  78], ["ITEM",   37] ]
  256.   CHAIN_WHIP_5 = [ ["WEAPON",  80], ["WEAPON",  79], ["ITEM",   38] ]
  257.   CHAIN_WHIP_6 = [ ["WEAPON",  81], ["WEAPON",  80], ["ITEM",   39] ]
  258.   CHAIN_WHIP_7 = [ ["WEAPON",  82], ["WEAPON",  81], ["ITEM",   40] ]
  259.   CHAIN_WHIP_8 = [ ["WEAPON",  83], ["WEAPON",  82], ["ITEM",   41] ]
  260.   CHAIN_WHIP_9 = [ ["WEAPON",  84], ["WEAPON",  83], ["ITEM",   42] ]
  261.   CHAIN_WHIP_S = [ ["WEAPON",  85], ["WEAPON",  84], ["ITEM",   43] ]
  262.   BROADSWORD_1 = [ ["WEAPON",  87], ["WEAPON",  6], ["ITEM",   34] ]
  263.   BROADSWORD_2 = [ ["WEAPON",  88], ["WEAPON",  87], ["ITEM",   35] ]
  264.   BROADSWORD_3 = [ ["WEAPON",  89], ["WEAPON",  88], ["ITEM",   36] ]
  265.   BROADSWORD_4 = [ ["WEAPON",  90], ["WEAPON",  89], ["ITEM",   37] ]
  266.   BROADSWORD_5 = [ ["WEAPON",  91], ["WEAPON",  90], ["ITEM",   38] ]
  267.   BROADSWORD_6 = [ ["WEAPON",  92], ["WEAPON",  91], ["ITEM",   39] ]
  268.   BROADSWORD_7 = [ ["WEAPON",  93], ["WEAPON",  92], ["ITEM",   40] ]
  269.   BROADSWORD_8 = [ ["WEAPON",  94], ["WEAPON",  93], ["ITEM",   41] ]
  270.   BROADSWORD_9 = [ ["WEAPON",  95], ["WEAPON",  94], ["ITEM",   42] ]
  271.   BROADSWORD_S = [ ["WEAPON",  96], ["WEAPON",  95], ["ITEM",   43] ]
  272.   CLAW_1 = [ ["WEAPON",  98], ["WEAPON",  7], ["ITEM",   34] ]
  273.   CLAW_2 = [ ["WEAPON",  99], ["WEAPON",  98], ["ITEM",   35] ]
  274.   CLAW_3 = [ ["WEAPON",  100], ["WEAPON",  99], ["ITEM",   36] ]
  275.   CLAW_4 = [ ["WEAPON",  101], ["WEAPON",  100], ["ITEM",   37] ]
  276.   CLAW_5 = [ ["WEAPON",  102], ["WEAPON",  101], ["ITEM",   38] ]
  277.   CLAW_6 = [ ["WEAPON",  103], ["WEAPON",  102], ["ITEM",   39] ]
  278.   CLAW_7 = [ ["WEAPON",  104], ["WEAPON",  103], ["ITEM",   40] ]
  279.   CLAW_8 = [ ["WEAPON",  105], ["WEAPON",  104], ["ITEM",   41] ]
  280.   CLAW_9 = [ ["WEAPON",  106], ["WEAPON",  105], ["ITEM",   42] ]
  281.   CLAW_S = [ ["WEAPON",  107], ["WEAPON",  106], ["ITEM",   43] ]
  282.   MACE_1 = [ ["WEAPON",  32], ["WEAPON",  8], ["ITEM",   34] ]
  283.   MACE_2 = [ ["WEAPON",  33], ["WEAPON",  32], ["ITEM",   35] ]
  284.   MACE_3 = [ ["WEAPON",  34], ["WEAPON",  33], ["ITEM",   36] ]
  285.   MACE_4 = [ ["WEAPON",  35], ["WEAPON",  34], ["ITEM",   37] ]
  286.   MACE_5 = [ ["WEAPON",  36], ["WEAPON",  35], ["ITEM",   38] ]
  287.   MACE_6 = [ ["WEAPON",  37], ["WEAPON",  36], ["ITEM",   39] ]
  288.   MACE_7 = [ ["WEAPON",  38], ["WEAPON",  37], ["ITEM",   40] ]
  289.   MACE_8 = [ ["WEAPON",  39], ["WEAPON",  38], ["ITEM",   41] ]
  290.   MACE_9 = [ ["WEAPON",  40], ["WEAPON",  39], ["ITEM",   42] ]
  291.   MACE_S = [ ["WEAPON",  41], ["WEAPON",  40], ["ITEM",   43] ]
  292.  
  293. #-------------------------------------------------------------------------------
  294. # SETUP END - Do not touch anything beyond this point unless you know what you
  295. #             are doing.
  296. #-------------------------------------------------------------------------------
  297.  
  298. #===============================================================================
  299. # ** Scene_SynthShop
  300. #-------------------------------------------------------------------------------
  301. #  This class performs the synthesis shop processing.
  302. #===============================================================================
  303. class Scene_SynthShop < Scene_Base
  304.   #-----------------------------------------------------------------------------
  305.   # * Start Processing
  306.   #-----------------------------------------------------------------------------
  307.   def start
  308.     super
  309.     @synth_items = []
  310.     @item_index = 0
  311.     @sold_item = nil
  312.     @checking = []
  313.     create_menu_background
  314.     create_command_window
  315.     @help_window = Window_Help.new
  316.     @dummy_window = Window_Base.new(0, 112, 544, 304)
  317.     @synth_window = Window_Synth.new(0, 112)
  318.     @synth_window.active = false
  319.     @synth_window.visible = false
  320.     @status_window = Window_ShopStatus.new(304, 112)
  321.     @status_window.visible = false
  322.     @requirements_window = Window_SynthReq.new(0, 264, @item_index)
  323.     @requirements_window.visible = false
  324.     @synth_window.index = 0
  325.     @help_window.set_text(SYNTH_WELCOME)
  326.   end
  327.   #-----------------------------------------------------------------------------
  328.   # * Terminate Process
  329.   #-----------------------------------------------------------------------------
  330.   def terminate
  331.     super
  332.     dispose_menu_background
  333.     dispose_command_window
  334.     @help_window.dispose
  335.     @dummy_window.dispose
  336.     @synth_window.dispose
  337.     @status_window.dispose
  338.     @requirements_window.dispose
  339.   end
  340.   #-----------------------------------------------------------------------------
  341.   # * Frame Update
  342.   #-----------------------------------------------------------------------------
  343.   def update
  344.     super
  345.     update_menu_background
  346.     @help_window.update
  347.     @command_window.update
  348.     @dummy_window.update
  349.     @synth_window.update
  350.     @status_window.update
  351.     @requirements_window.update(@item_index)
  352.     if @command_window.active
  353.       update_command_selection
  354.     elsif @synth_window.active
  355.       update_synth_selection
  356.     end
  357.     update_help
  358.   end
  359.   #-----------------------------------------------------------------------------
  360.   # * Create Command Window
  361.   #-----------------------------------------------------------------------------
  362.   def create_command_window
  363.     s1 = SYNTH_COMMAND
  364.     s2 = Vocab::ShopCancel
  365.     @command_window = Window_Command.new(544, [s1, s2], 3)
  366.     @command_window.y = 56
  367.   end
  368.   #-----------------------------------------------------------------------------
  369.   # * Dispose Command Window
  370.   #-----------------------------------------------------------------------------
  371.   def dispose_command_window
  372.     @command_window.dispose
  373.   end
  374.   #-----------------------------------------------------------------------------
  375.   # * Update Command Selection
  376.   #-----------------------------------------------------------------------------
  377.   def update_command_selection
  378.     if Input.trigger?(Input::B)
  379.       Sound.play_cancel
  380.       $scene = Scene_Map.new
  381.     elsif Input.trigger?(Input::C)
  382.       case @command_window.index
  383.       when 0 # Synth
  384.         Sound.play_decision
  385.         @command_window.active = false
  386.         @dummy_window.visible = false
  387.         @synth_window.active = true
  388.         @synth_window.visible = true
  389.         @synth_window.refresh
  390.         @status_window.visible = true
  391.         @requirements_window.visible = true
  392.         @synth_window.index = 0
  393.       when 1
  394.         Sound.play_decision
  395.         $scene = Scene_Map.new
  396.       end
  397.     end
  398.   end
  399.   #-----------------------------------------------------------------------------
  400.   # * Update Synthesize Selection
  401.   #-----------------------------------------------------------------------------
  402.   def update_synth_selection
  403.     @status_window.item = @synth_window.item
  404.     @item = @synth_window.item
  405.     update_help
  406.     @item_index = @synth_window.index
  407.     if Input.trigger?(Input::B)
  408.       Sound.play_cancel
  409.       @item = nil
  410.       @command_window.active = true
  411.       @dummy_window.visible = true
  412.       @synth_window.active = false
  413.       @synth_window.visible = false
  414.       @status_window.visible = false
  415.       @status_window.item = nil
  416.       @help_window.set_text(SYNTH_WELCOME)
  417.       @requirements_window.visible = false
  418.       return
  419.     end
  420.     if Input.trigger?(Input::C)
  421.       e = check_required_item(@synth_window.index)
  422.       number = $game_party.item_number(@item)
  423.       if @item == nil or number == 99 or !e
  424.         Sound.play_buzzer
  425.       else
  426.         idx = @synth_window.index
  427.         get_result_item(@synth_window.index)
  428.         for i in 0...5
  429.           if @checking[i] != nil
  430.              $game_party.lose_item(@checking[i], 1)
  431.           end
  432.         end
  433.         if @sold_item == "SWITCH"
  434.           $game_switches[$synth_items[@synth_window.index][0][1]] = true
  435.         else
  436.           $game_party.gain_item(@sold_item, 1)
  437.         end
  438.         Sound.play_shop
  439.         @status_window.refresh
  440.         @synth_window.refresh
  441.         @synth_window.index = idx
  442.       end
  443.     end
  444.   end
  445.   #-----------------------------------------------------------------------------
  446.   # * Check Required Item
  447.   #     item_index : Index of item selected
  448.   #-----------------------------------------------------------------------------
  449.   def check_required_item(item_index)
  450.     @checking.clear
  451.     @index = item_index
  452.     base = $synth_items[@index]
  453.     for i in 1..5
  454.       if base[i] != nil
  455.         case base[i][0]
  456.         when "ITEM"
  457.           p = $data_items[base[i][1]]
  458.         when "WEAPON"
  459.           p = $data_weapons[base[i][1]]
  460.         when "ARMOR"
  461.           p = $data_armors[base[i][1]]
  462.         end
  463.         @checking.push(p)
  464.       end
  465.     end
  466.     valid = true
  467.     for i in 0...5
  468.         if @checking[i] != nil
  469.             amount = 0;
  470.             for l in 0...5
  471.               if @checking[i] == @checking[l]
  472.                 amount += 1;
  473.               end
  474.             end
  475.             if $game_party.item_number(@checking[i]) < amount
  476.               valid = false
  477.             end
  478.         end
  479.       end
  480.     return valid
  481.   end
  482.   #-----------------------------------------------------------------------------
  483.   # * Get Resulting Item
  484.   #     i : Item index
  485.   #-----------------------------------------------------------------------------
  486.   def get_result_item(i)
  487.       base = $synth_items[i]
  488.       sub = base[0]
  489.       case sub[0]
  490.       when "ITEM"
  491.         p = $data_items[sub[1]]
  492.       when "WEAPON"
  493.         p = $data_weapons[sub[1]]
  494.       when "ARMOR"
  495.         p = $data_armors[sub[1]]
  496.       when "SWITCH"
  497.         p = "SWITCH"
  498.       end
  499.       @sold_item = p
  500.     end
  501.   #-----------------------------------------------------------------------------
  502.   # * Update Help Window
  503.   #-----------------------------------------------------------------------------
  504.   def update_help
  505.     @help_window.set_text(@item == nil ? SYNTH_WELCOME : @item.description)
  506.   end
  507.  
  508. end
  509.  
  510. #===============================================================================
  511. # ** Window_Synth
  512. #-------------------------------------------------------------------------------
  513. #  This window shows the synth-able items defined by $synth_items.
  514. #===============================================================================
  515. class Window_Synth < Window_Selectable
  516.   #-----------------------------------------------------------------------------
  517.   # * Object Initialization
  518.   #-----------------------------------------------------------------------------
  519.   def initialize(x, y)
  520.     super(x, y, 304, 152)
  521.     @checking = []
  522.     @synth_items = []
  523.     refresh
  524.     self.index = 0
  525.   end
  526.   #-----------------------------------------------------------------------------
  527.   # * Get Item
  528.   #-----------------------------------------------------------------------------
  529.   def item
  530.     return @data[self.index]
  531.   end
  532.   #-----------------------------------------------------------------------------
  533.   # * Refresh
  534.   #-----------------------------------------------------------------------------
  535.   def refresh
  536.     @data = []
  537.     @synth_items.clear
  538.     get_result_item
  539.     for x in 0...@synth_items.size
  540.       item = @synth_items[x]
  541.       if item != nil
  542.         @data.push(item)
  543.       end
  544.     end
  545.     @item_max = @data.size
  546.     create_contents
  547.     for i in 0...@item_max
  548.       e = check_required_item(i)
  549.       draw_item(i, e)
  550.     end
  551.   end
  552.   #-----------------------------------------------------------------------------
  553.   # * Draw Item
  554.   #     index : Item number
  555.   #     valid : enabled or disabled?
  556.   #-----------------------------------------------------------------------------
  557.   def draw_item(index, valid)
  558.     item = @data[index]
  559.     number = $game_party.item_number(item)
  560.     enabled = (number < 99 and valid)
  561.     rect = item_rect(index)
  562.     self.contents.clear_rect(rect)
  563.     draw_item_name(item, rect.x, rect.y, enabled)
  564.     rect.width -= 4
  565.   end
  566.   #-----------------------------------------------------------------------------
  567.   # * Get Result Item
  568.   #-----------------------------------------------------------------------------
  569.   def get_result_item
  570.     for i in 0...$synth_items.size
  571.       base = $synth_items[i]
  572.       sub = base[0]
  573.       case sub[0]
  574.       when "ITEM"
  575.         p = $data_items[sub[1]]
  576.       when "WEAPON"
  577.         p = $data_weapons[sub[1]]
  578.       when "ARMOR"
  579.         p = $data_armors[sub[1]]
  580.       when "SWITCH"
  581.         p = $data_items[sub[1]]
  582.       end
  583.       @synth_items.push(p)
  584.     end
  585.   end
  586.   #-----------------------------------------------------------------------------
  587.   # * Check Required Item
  588.   #     item_index : Item number
  589.   #-----------------------------------------------------------------------------
  590.   def check_required_item(item_index)
  591.     @checking.clear
  592.     @index = item_index
  593.     base = $synth_items[@index]
  594.     for i in 1..5
  595.       if base[i] != nil
  596.         case base[i][0]
  597.         when "ITEM"
  598.           p = $data_items[base[i][1]]
  599.         when "WEAPON"
  600.           p = $data_weapons[base[i][1]]
  601.         when "ARMOR"
  602.           p = $data_armors[base[i][1]]
  603.         end
  604.         @checking.push(p)
  605.       end
  606.     end
  607.     valid = true
  608.     for i in 0...5
  609.         if @checking[i] != nil
  610.           amount = 0;
  611.           for l in 0...5
  612.             if @checking[i] == @checking[l]
  613.               amount+= 1;
  614.             end
  615.           end
  616.           if $game_party.item_number(@checking[i]) < amount
  617.             valid = false
  618.           end
  619.         end
  620.       end
  621.     return valid
  622.   end
  623. end
  624.  
  625. #===============================================================================
  626. # ** Window_SynthReq
  627. #-------------------------------------------------------------------------------
  628. #  This window shows the required items needed for synthesis.
  629. #===============================================================================
  630. class Window_SynthReq < Window_Base
  631.   #-----------------------------------------------------------------------------
  632.   # * Object Initialization
  633.   #-----------------------------------------------------------------------------
  634.   def initialize (x, y, index)
  635.     super(x, y, 304, 152)
  636.     @req = []
  637.     refresh
  638.   end
  639.   #-----------------------------------------------------------------------------
  640.   # * Frame Update
  641.   #     req_item_index : Required item number
  642.   #-----------------------------------------------------------------------------
  643.   def update(req_item_index)
  644.     get_required_item(req_item_index)
  645.     refresh
  646.   end
  647.   #-----------------------------------------------------------------------------
  648.   # * Refresh
  649.   #-----------------------------------------------------------------------------
  650.   def refresh
  651.     self.contents.clear
  652.     self.contents.font.color = system_color
  653.     self.contents.draw_text(4, 0, 200, WLH, SYNTH_REQUIREMENTS)
  654.     if @req != nil
  655.       self.contents.font.color = normal_color
  656.       req_x = 0
  657.       req_y = WLH
  658.       for i in 0...5
  659.         if @req[i] != nil
  660.           amount = 0;
  661.           for l in 0...i+1
  662.             if @req[i] == @req[l]
  663.               amount += 1
  664.             end
  665.           end
  666.           enabled =  $game_party.item_number(@req[i]) >= amount;
  667.           draw_item_name(@req[i], req_x, req_y, enabled)
  668.           req_y += WLH
  669.         end
  670.       end
  671.     end
  672.   end
  673.   #-----------------------------------------------------------------------------
  674.   # * Get Required Item
  675.   #     item_index : Item number
  676.   #-----------------------------------------------------------------------------
  677.   def get_required_item(item_index)
  678.     @req.clear
  679.     @index = item_index
  680.     base = $synth_items[@index]
  681.     for i in 1..5
  682.       if base[i] != nil
  683.         case base[i][0]
  684.         when "ITEM"
  685.           p = $data_items[base[i][1]]
  686.         when "WEAPON"
  687.           p = $data_weapons[base[i][1]]
  688.         when "ARMOR"
  689.           p = $data_armors[base[i][1]]
  690.         end
  691.         @req.push(p)
  692.       end
  693.     end
  694.   end
  695. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement