Advertisement
Fomar0153

Fomar0153 - Equipment Skills by Level 1.1

Jul 25th, 2012
495
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. =begin
  2. Equipment Skills by Level
  3. by Fomar0153
  4. Version 1.1
  5. ----------------------
  6. Notes
  7. ----------------------
  8. Requires an AP System if you want characters to
  9. learn skills pernamently.
  10. Scripts should be in this order
  11. Individual Equipment
  12. Equipment Levels Up
  13. Equipment Skills
  14. Equipment Skills by Level
  15. If using an AP script it should be above this script.
  16. ----------------------
  17. Instructions
  18. ----------------------
  19. Follow the instructions in all the other script and then
  20. edit the Equipment_Skills module below to suit your needs.
  21. ----------------------
  22. Change Log
  23. ----------------------
  24. 1.0 -> 1.1 Added a single character (@) to fix a bug where you
  25.            created new equipment when changing equipment.
  26. ----------------------
  27. Known bugs
  28. ----------------------
  29. None
  30. =end
  31. module Equipment_Skills
  32.  
  33.   Weapons = []
  34.   # Add weapon skills in this format
  35.   # Weapons[weapon_id, level] = [[level,skillid], [level,skillid]]
  36.   Weapons[1] = [[1,8],[5,9]]
  37.  
  38.   Armors = []
  39.   # Add weapon skills in this format
  40.   # Armors[armor_id, level] = [[level,skillid],[level,skillid]]
  41.   Armors[1] = [[1,10]]
  42.  
  43. end
  44.  
  45. class Game_Actor
  46.  
  47.   def change_equip(slot_id, item)
  48.     return unless trade_item_with_party(item, @equips[slot_id])
  49.     if equips[slot_id].is_a?(RPG::Weapon)
  50.       unless Equipment_Skills::Weapons[equips[slot_id].id] == nil
  51.         for skill in Equipment_Skills::Weapons[equips[slot_id].id]
  52.           if Equipment_Skills::Learn_Skills
  53.             if @ap[skill[1]] == nil
  54.               @ap[skill[1]] = 0
  55.             end
  56.             unless @ap[skill[1]] >= Equipment_Skills.get_ap_cost(skill[1])
  57.               forget_skill(skill[1])
  58.             end
  59.           else
  60.             forget_skill(skill[1])
  61.           end
  62.         end
  63.       end
  64.     end
  65.     if equips[slot_id].is_a?(RPG::Armor)
  66.       unless Equipment_Skills::Armors[equips[slot_id].id] == nil
  67.         for skill in Equipment_Skills::Armors[equips[slot_id].id]
  68.           if Equipment_Skills::Learn_Skills
  69.             if @ap[skill[1]] == nil
  70.               @ap[skill[1]] = 0
  71.             end
  72.             unless @ap[skill[1]] >= Equipment_Skills.get_ap_cost(skill[1])
  73.               forget_skill(skill[1])
  74.             end
  75.           else
  76.             forget_skill(skill[1])
  77.           end
  78.         end
  79.       end
  80.     end
  81.     return if item && equip_slots[slot_id] != item.etype_id
  82.     if item.nil?
  83.       @equips[slot_id] = Game_CustomEquip.new
  84.     else
  85.       @equips[slot_id] = item
  86.     end
  87.     refresh
  88.   end
  89.  
  90.   def gain_ap(ap)
  91.     if Equipment_Skills::Learn_Skills
  92.       for item in @equips
  93.         if item.is_weapon?
  94.           unless Equipment_Skills::Weapons[item.id] == nil
  95.             for skill in Equipment_Skills::Weapons[item.id]
  96.               if @ap[skill[1]] == nil
  97.                 @ap[skill[1]] = 0
  98.               end
  99.               last_ap = @ap[skill[1]]
  100.               @ap[skill[1]] += ap if skill[0] <= item.level
  101.               if last_ap < Equipment_Skills.get_ap_cost(skill[1]) and Equipment_Skills.get_ap_cost(skill[1]) <= @ap[skill[1]]
  102.                 SceneManager.scene.add_message(actor.name + " learns " + $data_skills[skill[1]].name + ".")
  103.               end
  104.             end
  105.           end
  106.         end
  107.         if item.is_armor?
  108.           unless Equipment_Skills::Armors[item.id] == nil
  109.             for skill in Equipment_Skills::Armors[item.id]
  110.               if @ap[skill[1]] == nil
  111.                 @ap[skill[1]] = 0
  112.               end
  113.               last_ap = @ap[skill[1]]
  114.               @ap[skill[1]] += ap if skill[0] <= item.level
  115.               if last_ap < Equipment_Skills.get_ap_cost(skill[1]) and Equipment_Skills.get_ap_cost(skill[1]) <= @ap[skill[1]]
  116.                 SceneManager.scene.add_message(actor.name + " learns " + $data_skills[skill[1]].name + ".")
  117.               end
  118.             end
  119.           end
  120.         end
  121.       end
  122.     end
  123.   end
  124.  
  125.   def refresh
  126.     eqskills_refresh
  127.     for item in @equips
  128.       if item.is_weapon?
  129.         unless Equipment_Skills::Weapons[item.id] == nil
  130.           for skill in Equipment_Skills::Weapons[item.id]
  131.             learn_skill(skill[1]) if skill[0] <= item.level
  132.           end
  133.         end
  134.       end
  135.       if item.is_armor?
  136.         unless Equipment_Skills::Armors[item.id] == nil
  137.           for skill in Equipment_Skills::Armors[item.id]
  138.             learn_skill(skill[1]) if skill[0] <= item.level
  139.           end
  140.         end
  141.       end
  142.     end
  143.     # relearn any class skills you may have forgotten
  144.     self.class.learnings.each do |learning|
  145.       learn_skill(learning.skill_id) if learning.level <= @level
  146.     end
  147.   end
  148.  
  149. end
  150.  
  151. class Game_CustomEquip < Game_BaseItem
  152.  
  153.   def level
  154.     return @level
  155.   end
  156.  
  157. end
  158.  
  159.  
  160. class Window_EquipStatus < Window_Base
  161.  
  162.   def refresh(item = nil)
  163.     eqskills_refresh
  164.     contents.clear
  165.     draw_actor_name(@actor, 4, 0) if @actor
  166.     6.times {|i| draw_item(0, line_height * (1 + i), 2 + i) }
  167.       unless item == nil
  168.       if item.is_a?(RPG::Weapon)
  169.         unless Equipment_Skills::Weapons[item.id] == nil
  170.           skills = Equipment_Skills::Weapons[item.id]
  171.         end
  172.       end
  173.       if item.is_a?(RPG::Armor)
  174.         unless Equipment_Skills::Armors[item.id] == nil
  175.           skills = Equipment_Skills::Armors[item.id]
  176.         end
  177.       end
  178.       unless skills == nil
  179.         change_color(normal_color)
  180.         draw_text(4, 168, width, line_height, "Equipment Skills")
  181.         change_color(system_color)
  182.         i = 1
  183.         for skill in skills
  184.           draw_text(4, 168 + 24 * i, width, line_height, $data_skills[skill[1]].name + " (" + skill[0].to_s + ")")
  185.           if Equipment_Skills::Learn_Skills and @actor.ap[skill[1]] == nil
  186.             @actor.ap[skill[1]] = 0
  187.           end
  188.           i = i + 1
  189.           if Equipment_Skills::Learn_Skills
  190.             draw_current_and_max_values(4, 168 + 24 * i, width - 50, [@actor.ap[skill[1]],Equipment_Skills.get_ap_cost(skill[1])].min, Equipment_Skills.get_ap_cost(skill[1]), system_color, system_color)
  191.             i = i + 1
  192.           end
  193.         end
  194.       end
  195.     end
  196.   end
  197.  
  198. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement