Advertisement
Fomar0153

Fomar0153 - Equipment Skills by Level 1.0

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