Magic Recycler like Sorter v3 (Wildlands update) by special_sy
Description: This script scans all the items first and THEN sorts them, so be patient once it's started :)
1# Script by [DoS] Chumbeer
2# It basicly works like the item recycler trimmed down to upper options
3# !! Items have to be identified unless you got 120 item id !!
4# It will sort trash to your backpack to recycle
5# It will auto recycle with a sewing kit on full
6# Set source and good item container and let it run
7# Settings are configured to how i run it aka what is sellable ;)
8
9# >info your container and set the IDs!
10@setvar container_magicSorter_source 0x405C38C2
11@setvar container_magicSorter_keep 0x53ABC5F0
12
13# Settings
14@setvar verbose_recycle 1
15@setvar verbose_keep 1
16@setvar auto_recycle 1
17
18# Set to 1 what to keep
19@setvar weapons_slayer_lesser 0
20@setvar weapons_slayer_regular 0
21@setvar weapons_slayer_greater 1
22@setvar weapons_damage_force 0
23@setvar weapons_damage_power 0
24@setvar weapons_damage_vanq 1
25@setvar weapons_accuracy_eminently 0
26@setvar weapons_accuracy_exceedingly 0
27@setvar weapons_accuracy_supremely 1
28
29@setvar armor_protection_hardening 0
30@setvar armor_protection_fortification 0
31@setvar armor_protection_invul 1
32
33@setvar book_potency_eminently 0
34@setvar book_potency_exceedingly 1
35@setvar book_potency_supremely 1
36@setvar book_damage_force 0
37@setvar book_damage_power 0
38@setvar book_damage_vanq 1
39
40@setvar instrument_slayer_lesser 0
41@setvar instrument_slayer_regular 1
42@setvar instrument_slayer_greater 1
43@setvar instrument_artistry_eminently 0
44@setvar instrument_artistry_exceedginly 0
45@setvar instrument_artistry_supremely 1
46
47dclick container_magicSorter_source
48wait 500
49
50# --- CONFIG END ---
51
52if not listexists goodItems
53 createlist goodItems
54else
55 clearlist goodItems
56endif
57
58if not listexists recycleItems
59 createlist recycleItems
60else
61 clearlist recycleItems
62endif
63
64@clearignore
65@clearsysmsg
66@setvar container_magicSorter_recycle 'backpack'
67
68if skill 'Item Identification' = 120
69 overhead "Item Id on container..." 88
70 useskill 'itemid'
71 wft 1000
72 target container_magicSorter_source
73 wait 1000
74endif
75
76#weapons
77overhead "Checking Weapons" 88
78while findtype 30999|31169|3568|3570|3571|3572|3573|3713|3719|3721|3740|3742|3762|3763|3834|3909|3911|3913|3915|3917|3920|3922|3932|3934|3937|3938|5040|5042|5044|5046|5049|5112|5115|5117|5119|5121|5123|5125|5127|5177|5179|5181|5182|5185|5187|7026|7027|7029|7031|7033|7034|7035|7107|7109|9917|10245|22187|30988|30989|30990|30992|30993|30994|30995|30996|30997|30998|31128|31141|31142|31176|31184|31186|31188|31190 container_magicSorter_source as item
79 getlabel item itemLabel
80 if 'unidentified' in itemLabel
81 overhead "Skipping {{itemLabel}}"
82 @ignore item
83 continue
84 endif
85 @setvar keepItem 0
86
87 # Decide what to keep
88 if 'lesser slaying' in itemLabel and weapons_slayer_lesser = 1
89 pushlist goodItems item
90 elseif 'greater slaying' in itemLabel and weapons_slayer_greater = 1
91 pushlist goodItems item
92 elseif 'slaying' in itemLabel and weapons_slayer_regular = 1
93 pushlist goodItems item
94 elseif 'force' in itemLabel and weapons_damage_force = 1
95 pushlist goodItems item
96 elseif 'power' in itemLabel and weapons_damage_power = 1
97 pushlist goodItems item
98 elseif 'vanquishing' in itemLabel and weapons_damage_vanq = 1
99 pushlist goodItems item
100 elseif 'eminently accurate' in itemLabel and weapons_accuracy_eminently = 1
101 pushlist goodItems item
102 elseif 'exceedingly accurate' in itemLabel and weapons_accuracy_exceedingly = 1
103 pushlist goodItems item
104 elseif 'supremely accurate' in itemLabel and weapons_accuracy_supremely = 1
105 pushlist goodItems item
106 else
107 pushlist recycleItems item
108 endif
109 @ignore item
110endwhile
111
112#armor
113overhead "Checking Armor" 88
114while findtype 7026|7027|7029|7031|7033|7034|7035|7107|7109|31002|31130|5056|5059|5060|5061|5063|5070|5074|5075|5076|5078|5085|5089|5090|5101|5103|5105|5106|5129|5131|5132|5135|5138|5139|5142|5143|5144|5146|5201|5203|5204|5205|5207|7169|7170|7173|7175|7177|7179|7181|7610|7947|31003|31004|31005|31006|31007|31008|31009|31010|31011|31012|31015|31191 container_magicSorter_source as item
115 getlabel item itemLabel
116 if 'unidentified' in itemLabel
117 overhead "Skipping {{itemLabel}}"
118 @ignore item
119 continue
120 endif
121 @setvar keepItem 0
122
123 # Decide what to keep
124 if 'hardening' in itemLabel and armor_protection_hardening = 1
125 pushlist goodItems item
126 elseif 'fortification' in itemLabel and armor_protection_fortification = 1
127 pushlist goodItems item
128 elseif 'invulnerability' in itemLabel and armor_protection_invul = 1
129 pushlist goodItems item
130 else
131 pushlist recycleItems item
132 endif
133 @ignore item
134endwhile
135
136#book
137overhead "Checking spellbooks" 88
138while findtype 'spellbook' container_magicSorter_source 2606 as item
139 getlabel item itemLabel
140 @setvar keepItem 0
141 if 'unidentified' in itemLabel
142 overhead "Skipping {{itemLabel}}"
143 @ignore item
144 continue
145 endif
146
147 # Decide what to keep
148 if 'eminently potent' in itemLabel and book_potency_eminently = 1
149 pushlist goodItems item
150 elseif 'exceedingly potent' in itemLabel and book_potency_exceedingly = 1
151 pushlist goodItems item
152 elseif 'supremely potent' in itemLabel and book_potency_supremely = 1
153 pushlist goodItems item
154 elseif 'force' in itemLabel and book_damage_force = 1
155 pushlist goodItems item
156 elseif 'power' in itemLabel and book_damage_power = 1
157 pushlist goodItems item
158 elseif 'vanquishing' in itemLabel and book_damage_vanq = 1
159 pushlist goodItems item
160 else
161 pushlist recycleItems item
162 endif
163 @ignore item
164endwhile
165
166#instruments
167overhead "Checking instruments" 88
168while findtype 3740|3742|3762|3763|10245|20006|20008|20010|20012|20014|20016 container_magicSorter_source as item
169 getlabel item itemLabel
170 @setvar keepItem 0
171 if 'unidentified' in itemLabel
172 overhead "Unidentified {{itemLabel}}"
173 @ignore item
174 continue
175 endif
176
177 # Decide what to keep
178 if 'lesser slaying' in itemLabel and instrument_slayer_lesser = 1
179 pushlist goodItems item
180 elseif 'greater slaying' in itemLabel and instrument_slayer_greater = 1
181 pushlist goodItems item
182 elseif 'slaying' in itemLabel and instrument_slayer_regular = 1
183 pushlist goodItems item
184 elseif 'eminently' in itemLabel and instrument_artistry_eminently = 1
185 pushlist goodItems item
186 elseif 'exceedingly' in itemLabel and instrument_artistry_exceedingly = 1
187 pushlist goodItems item
188 elseif 'supremely' in itemLabel and instrument_artistry_supremely = 1
189 pushlist goodItems item
190 else
191 pushlist recycleItems item
192 endif
193 @ignore item
194endwhile
195
196overhead "Storing good items..."
197foreach item in goodItems
198 getlabel item itemLabel
199 overhead "Keeping {{itemLabel}}" 88
200 lift item
201 wait 250
202 drop container_magicSorter_keep -1 -1 -1
203 wait 250
204endfor
205
206overhead "Taking the junk..."
207foreach item in recycleItems
208 getlabel item itemLabel
209 overhead "Trashing {{itemLabel}}" 243
210 lift item
211 wait 250
212 drop backpack -1 -1 -1
213 wait 250
214 while diffweight < 10 or insysmsg 'That container cannot hold'
215 if auto_recycle = 1
216 if findtype "sewing kit" 'backpack' as tool
217 overhead "Recycling via sewing kit!" 88
218 dclick tool
219 waitforgump 949095101
220 while not ingump 'Recycle All Magical'
221 gumpresponse 2
222 waitforgump 949095101
223 endwhile
224 gumpresponse 3
225 wft 500
226 target self
227 wait 500
228 else
229 overhead "Cannot find any sewing kits, stopping!" 32
230 stop
231 endif
232 else
233 overhead "Please recycle, you are full" 88
234 wait 5000
235 endif
236 endwhile
237endfor
238
239# recycle at the end
240if auto_recycle = 1
241 if findtype "sewing kit" 'backpack' as tool
242 overhead "Recycling via sewing kit!" 88
243 dclick tool
244 waitforgump 949095101
245 while not ingump 'Recycle All Magical'
246 gumpresponse 2
247 waitforgump 949095101
248 endwhile
249 gumpresponse 3
250 wft 500
251 target self
252 wait 500
253 waitforgump 949095101
254 gumpclose
255 endif
256endif
257overhead "All done, thanks for using!" 88