roninator2

Actor Default Equipment

Dec 18th, 2024
13
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 10.61 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Actor Equip Default                    ║  Version: 1.00     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║   Equip basic equipment on actor              ║    18 Sep 2021     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: nil                                                      ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║   When an actor has a slot unequipped, this will                   ║
  16. # ║   automatically equip a base item for that slot.                   ║
  17. # ╚════════════════════════════════════════════════════════════════════╝
  18. # ╔════════════════════════════════════════════════════════════════════╗
  19. # ║ Instructions:                                                      ║
  20. # ║   Specify the equipment for each actor                             ║
  21. # ║      {  # actor 1                                                  ║
  22. # ║    :slot1 => [1,1],   # short sword                                ║
  23. # ║  0 = items, 1 = weapons, 2 = armour : item number                  ║
  24. # ║  items are included in case you have items equippable              ║
  25. # ║    :slot2 => [2,46],   # wood shield                               ║
  26. # ║    :slot3 => [2,3],   # metal plate                                ║
  27. # ║    :slot4 => [2,6],   # bandana                                    ║
  28. # ║    :slot5 => [2,51],  # amulet                                     ║
  29. # ║  },                                                                ║
  30. # ║                                                                    ║
  31. # ║  Add or remove slots to accomdate your game.                       ║
  32. # ║  Add or remove sections to accomdate your game.                    ║
  33. # ║                                                                    ║
  34. # ║  Always remember the comma after each closing                      ║
  35. # ║  curly bracket                                                     ║
  36. # ║                                                                    ║
  37. # ║  You are responsible for making sure the actor can equip           ║
  38. # ║  the item, otherwise the slot will be blank when                   ║
  39. # ║  removing the item in the current slot.                            ║
  40. # ║                                                                    ║
  41. # ║  Due to the nature of equipping items, it is recommended           ║
  42. # ║  that you use items the player cannot sell, and cannot             ║
  43. # ║  obtain anywhere. That way the default items are not               ║
  44. # ║  saved in the inventory.                                           ║
  45. # ║                                                                    ║
  46. # ║  This script will delete items from the party inventory            ║
  47. # ║  if the player tries to remove the item intended to be             ║
  48. # ║  a base item. This is to prevent someone from simply               ║
  49. # ║  trying to remove the item to an empty slot and gaining            ║
  50. # ║  the base items for free, since this script does not               ║
  51. # ║  party inventory.                                                  ║
  52. # ╚════════════════════════════════════════════════════════════════════╝
  53. # ╔════════════════════════════════════════════════════════════════════╗
  54. # ║ Updates:                                                           ║
  55. # ║ 1.00 - 18 Sep 2021 - Script finished                               ║
  56. # ║                                                                    ║
  57. # ╚════════════════════════════════════════════════════════════════════╝
  58. # ╔════════════════════════════════════════════════════════════════════╗
  59. # ║ Credits and Thanks:                                                ║
  60. # ║   Roninator2                                                       ║
  61. # ║                                                                    ║
  62. # ╚════════════════════════════════════════════════════════════════════╝
  63. # ╔════════════════════════════════════════════════════════════════════╗
  64. # ║ Terms of use:                                                      ║
  65. # ║  Follow the original Authors terms of use where applicable         ║
  66. # ║    - When not made by me (Roninator2)                              ║
  67. # ║  Free for all uses in RPG Maker except nudity                      ║
  68. # ║  Anyone using this script in their project before these terms      ║
  69. # ║  were changed are allowed to use this script even if it conflicts  ║
  70. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  71. # ║  No part of this code can be used with AI programs or tools        ║
  72. # ║  Credit must be given                                              ║
  73. # ╚════════════════════════════════════════════════════════════════════╝
  74.  
  75. module R2_Equip_defaults
  76.   # actors 1-10 included here
  77.        ACTORS = [
  78.       { # actor 1
  79.     :slot0 => [1,1],   # short sword
  80.     :slot1 => [2,46],  # wood shield
  81.     :slot2 => [2,6],   # bandana
  82.     :slot3 => [2,1],   # casual clothes
  83.     :slot4 => [2,51],  # amulet
  84.     },
  85.       { # actor 2
  86.     :slot0 => [1,1],
  87.     :slot1 => [2,46],
  88.     :slot2 => [2,6],
  89.     :slot3 => [2,1],
  90.     :slot4 => [2,51],
  91.     },
  92.       { # actor 3
  93.     :slot0 => [1,1],
  94.     :slot1 => [2,46],
  95.     :slot2 => [2,6],
  96.     :slot3 => [2,1],
  97.     :slot4 => [2,51],
  98.     },
  99.       { # actor 4
  100.     :slot0 => [1,1],
  101.     :slot1 => [2,46],
  102.     :slot2 => [2,6],
  103.     :slot3 => [2,1],
  104.     :slot4 => [2,51],
  105.     },
  106.       { # actor 5
  107.     :slot0 => [1,1],
  108.     :slot1 => [2,46],
  109.     :slot2 => [2,6],
  110.     :slot3 => [2,1],
  111.     :slot4 => [2,51],
  112.     },
  113.       { # actor 6
  114.     :slot0 => [1,1],
  115.     :slot1 => [2,46],
  116.     :slot2 => [2,6],
  117.     :slot3 => [2,1],
  118.     :slot4 => [2,51],
  119.     },
  120.       { # actor 7
  121.     :slot0 => [1,1],
  122.     :slot1 => [2,46],
  123.     :slot2 => [2,6],
  124.     :slot3 => [2,1],
  125.     :slot4 => [2,51],
  126.     },
  127.       { # actor 8
  128.     :slot0 => [1,1],
  129.     :slot1 => [2,46],
  130.     :slot2 => [2,6],
  131.     :slot3 => [2,1],
  132.     :slot4 => [2,51],
  133.     },
  134.       { # actor 9
  135.     :slot0 => [1,1],
  136.     :slot1 => [2,46],
  137.     :slot2 => [2,6],
  138.     :slot3 => [2,1],
  139.     :slot4 => [2,51],
  140.     },
  141.       { # actor 10
  142.     :slot0 => [1,1],
  143.     :slot1 => [2,46],
  144.     :slot2 => [2,6],
  145.     :slot3 => [2,1],
  146.     :slot4 => [2,51],
  147.     },
  148.     ]
  149. end
  150.  
  151. # ╔════════════════════════════════════════════════════════════════════╗
  152. # ║                      End of editable region                        ║
  153. # ╚════════════════════════════════════════════════════════════════════╝
  154.  
  155. class Game_Actor < Game_Battler
  156.   def change_equip(slot_id, item)
  157.     return unless trade_item_with_party(item, equips[slot_id])
  158.     return if item && equip_slots[slot_id] != item.etype_id
  159.     @equips[slot_id].object = item
  160.       eslot = R2_Equip_defaults::ACTORS[id - 1]
  161.       case slot_id
  162.       when 0
  163.         data = eslot[:slot0]
  164.       when 1
  165.         data = eslot[:slot1]
  166.       when 2
  167.         data = eslot[:slot2]
  168.       when 3
  169.         data = eslot[:slot3]
  170.       when 4
  171.         data = eslot[:slot4]
  172.       end
  173.       slottype = data[0]
  174.       case slottype
  175.       when 0
  176.         item2 = $data_items[data[1]]
  177.       when 1
  178.         item2 = $data_weapons[data[1]]
  179.       when 2
  180.         item2 = $data_armors[data[1]]
  181.       end
  182.     if item == nil
  183.       @equips[slot_id].object = item2
  184.       $game_party.lose_item(item2, 1, false) if $game_party.has_item?(item2, false)
  185.     end
  186.     if $game_party.has_item?(item2, false)
  187.       $game_party.lose_item(item2, 1, false)
  188.     end
  189.     refresh
  190.   end
  191. end
Add Comment
Please, Sign In to add comment