Magic Recycler like Sorter v3 (Wildlands update) by special_sy
Description from the author:
# Script by [DoS] Chumbeer
# It basicly works like the item recycler trimmed down to upper options
# !! Items have to be identified unless you got 120 item id !!
# It will sort trash to your backpack to recycle
# It will auto recycle with a sewing kit on full
# Set source and good item container and let it run
# Settings are configured to how i run it aka what is sellable ;)
# >info your container and set the IDs!
@setvar container_magicSorter_source 0x405C38C2
@setvar container_magicSorter_keep 0x53ABC5F0
# Settings
@setvar verbose_recycle 1
@setvar verbose_keep 1
@setvar auto_recycle 1
# Set to 1 what to keep
@setvar weapons_slayer_lesser 0
@setvar weapons_slayer_regular 0
@setvar weapons_slayer_greater 1
@setvar weapons_damage_force 0
@setvar weapons_damage_power 0
@setvar weapons_damage_vanq 1
@setvar weapons_accuracy_eminently 0
@setvar weapons_accuracy_exceedingly 0
@setvar weapons_accuracy_supremely 1
@setvar armor_protection_hardening 0
@setvar armor_protection_fortification 0
@setvar armor_protection_invul 1
@setvar book_potency_eminently 0
@setvar book_potency_exceedingly 1
@setvar book_potency_supremely 1
@setvar book_damage_force 0
@setvar book_damage_power 0
@setvar book_damage_vanq 1
@setvar instrument_slayer_lesser 0
@setvar instrument_slayer_regular 1
@setvar instrument_slayer_greater 1
@setvar instrument_artistry_eminently 0
@setvar instrument_artistry_exceedginly 0
@setvar instrument_artistry_supremely 1
dclick container_magicSorter_source
wait 500
# --- CONFIG END ---
if not listexists goodItems
createlist goodItems
else
clearlist goodItems
endif
if not listexists recycleItems
createlist recycleItems
else
clearlist recycleItems
endif
@clearignore
@clearsysmsg
@setvar container_magicSorter_recycle 'backpack'
if skill 'Item Identification' = 120
overhead "Item Id on container..." 88
useskill 'itemid'
wft 1000
target container_magicSorter_source
wait 1000
endif
#weapons
overhead "Checking Weapons" 88
while 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
getlabel item itemLabel
if 'unidentified' in itemLabel
overhead "Skipping {{itemLabel}}"
@ignore item
continue
endif
@setvar keepItem 0
# Decide what to keep
if 'lesser slaying' in itemLabel and weapons_slayer_lesser = 1
pushlist goodItems item
elseif 'greater slaying' in itemLabel and weapons_slayer_greater = 1
pushlist goodItems item
elseif 'slaying' in itemLabel and weapons_slayer_regular = 1
pushlist goodItems item
elseif 'force' in itemLabel and weapons_damage_force = 1
pushlist goodItems item
elseif 'power' in itemLabel and weapons_damage_power = 1
pushlist goodItems item
elseif 'vanquishing' in itemLabel and weapons_damage_vanq = 1
pushlist goodItems item
elseif 'eminently accurate' in itemLabel and weapons_accuracy_eminently = 1
pushlist goodItems item
elseif 'exceedingly accurate' in itemLabel and weapons_accuracy_exceedingly = 1
pushlist goodItems item
elseif 'supremely accurate' in itemLabel and weapons_accuracy_supremely = 1
pushlist goodItems item
else
pushlist recycleItems item
endif
@ignore item
endwhile
#armor
overhead "Checking Armor" 88
while 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
getlabel item itemLabel
if 'unidentified' in itemLabel
overhead "Skipping {{itemLabel}}"
@ignore item
continue
endif
@setvar keepItem 0
# Decide what to keep
if 'hardening' in itemLabel and armor_protection_hardening = 1
pushlist goodItems item
elseif 'fortification' in itemLabel and armor_protection_fortification = 1
pushlist goodItems item
elseif 'invulnerability' in itemLabel and armor_protection_invul = 1
pushlist goodItems item
else
pushlist recycleItems item
endif
@ignore item
endwhile
#book
overhead "Checking spellbooks" 88
while findtype 'spellbook' container_magicSorter_source 2606 as item
getlabel item itemLabel
@setvar keepItem 0
if 'unidentified' in itemLabel
overhead "Skipping {{itemLabel}}"
@ignore item
continue
endif
# Decide what to keep
if 'eminently potent' in itemLabel and book_potency_eminently = 1
pushlist goodItems item
elseif 'exceedingly potent' in itemLabel and book_potency_exceedingly = 1
pushlist goodItems item
elseif 'supremely potent' in itemLabel and book_potency_supremely = 1
pushlist goodItems item
elseif 'force' in itemLabel and book_damage_force = 1
pushlist goodItems item
elseif 'power' in itemLabel and book_damage_power = 1
pushlist goodItems item
elseif 'vanquishing' in itemLabel and book_damage_vanq = 1
pushlist goodItems item
else
pushlist recycleItems item
endif
@ignore item
endwhile
#instruments
overhead "Checking instruments" 88
while findtype 3740|3742|3762|3763|10245|20006|20008|20010|20012|20014|20016 container_magicSorter_source as item
getlabel item itemLabel
@setvar keepItem 0
if 'unidentified' in itemLabel
overhead "Unidentified {{itemLabel}}"
@ignore item
continue
endif
# Decide what to keep
if 'lesser slaying' in itemLabel and instrument_slayer_lesser = 1
pushlist goodItems item
elseif 'greater slaying' in itemLabel and instrument_slayer_greater = 1
pushlist goodItems item
elseif 'slaying' in itemLabel and instrument_slayer_regular = 1
pushlist goodItems item
elseif 'eminently' in itemLabel and instrument_artistry_eminently = 1
pushlist goodItems item
elseif 'exceedingly' in itemLabel and instrument_artistry_exceedingly = 1
pushlist goodItems item
elseif 'supremely' in itemLabel and instrument_artistry_supremely = 1
pushlist goodItems item
else
pushlist recycleItems item
endif
@ignore item
endwhile
overhead "Storing good items..."
foreach item in goodItems
getlabel item itemLabel
overhead "Keeping {{itemLabel}}" 88
lift item
wait 250
drop container_magicSorter_keep -1 -1 -1
wait 250
endfor
overhead "Taking the junk..."
foreach item in recycleItems
getlabel item itemLabel
overhead "Trashing {{itemLabel}}" 243
lift item
wait 250
drop backpack -1 -1 -1
wait 250
while diffweight < 10 or insysmsg 'That container cannot hold'
if auto_recycle = 1
if findtype "sewing kit" 'backpack' as tool
overhead "Recycling via sewing kit!" 88
dclick tool
waitforgump 949095101
while not ingump 'Recycle All Magical'
gumpresponse 2
waitforgump 949095101
endwhile
gumpresponse 3
wft 500
target self
wait 500
else
overhead "Cannot find any sewing kits, stopping!" 32
stop
endif
else
overhead "Please recycle, you are full" 88
wait 5000
endif
endwhile
endfor
# recycle at the end
if auto_recycle = 1
if findtype "sewing kit" 'backpack' as tool
overhead "Recycling via sewing kit!" 88
dclick tool
waitforgump 949095101
while not ingump 'Recycle All Magical'
gumpresponse 2
waitforgump 949095101
endwhile
gumpresponse 3
wft 500
target self
wait 500
waitforgump 949095101
gumpclose
endif
endif
overhead "All done, thanks for using!" 88This script scans all the items first and THEN sorts them, so be patient once it's started :)