SHOW:
|
|
- or go back to the newest paste.
1 | =begin | |
2 | Equipment Skills by Level | |
3 | by Fomar0153 | |
4 | - | Version 1.0 |
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 | - | return unless trade_item_with_party(item, equips[slot_id]) |
43 | + | |
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 |