I decided to create a sample of a script using AUO, that will help people getting used with syntax and functions.
Instructions:
1. Reward Box should not be a regular backpack, choose a wooden box or another container;
2. You may need to edit a few values such as waitforcontext entry on Restock beetle, gump data, etc depending on your shard.
// Author: Kraz
// Description: Lethal Darts Quest Maker
if not listexists 'Recipes'
@createlist 'Recipes'
@pushlist 'Recipes' 'Night Reaper'
@pushlist 'Recipes' 'Mischief Maker'
endif
if not listexists 'Talismans'
@createlist 'Talismans'
@pushlist 'Talismans' 0x2f58
@pushlist 'Talismans' 0x2f59
@pushlist 'Talismans' 0x2f5a
@pushlist 'Talismans' 0x2f5b
endif
if not listexists 'Skills'
@createlist 'Skills'
@pushlist 'Skills' 'Alchemy Bonus'
@pushlist 'Skills' 'Blacksmithing Bonus'
@pushlist 'Skills' 'Carpentry Bonus'
@pushlist 'Skills' 'Inscription Bonus'
@pushlist 'Skills' 'Tailoring Bonus'
@pushlist 'Skills' 'Tinkering Bonus'
endif
if not @findobject 'Quest Giver'
promptalias 'Quest Giver'
endif
if not @findobject 'Restock'
promptalias 'Restock'
// Always open restock backpack once
waitforcontext 'Restock' 9 5000
else
if serial 'Restock' != serial 'self'
if not timerexists 'feedPet'
createtimer 'feedPet'
endif
// Hourly feed pet
if timer 'feedPet' >= 3600000
feed 'Restock' 'Meat'
pause 1000
settimer 'feedPet' 0
endif
endif
endif
if not @findobject 'Reward Box'
promptalias 'Reward Box'
endif
if not @findobject 'Trash Barrel'
promptalias 'Trash Barrel'
endif
if @findtype 0x1bfb 'any' 'backpack' 10
if @useobject 'Quest Giver'
waitforgump 0x88bc0b07 5000
if @ingump 0x88bc0b07 'Lethal Darts'
replygump 0x88bc0b07 4
if color 'found' == 0
waitforcontext 'self' 5 5000
waitfortarget 5000
@target! 'found'
waitfortarget 5000
@canceltarget
endif
@useobject 'Quest Giver'
waitforgump 0x88bc0b07 5000
replygump 0x88bc0b07 8
waitforgump 0x88bc0b07 5000
replygump 0x88bc0b07 5
pause 1000
// Handle reward bags
while @findtype 0xe75 'any' 'backpack'
@setalias 'trash' 'found'
@useobject! 'trash'
pause 1000
// Runics
while @findtype 0x1022 'any' 'trash'
@moveitem! 'found' 'Reward Box'
pause 1000
endwhile
// Recipes
while @findtype 0x2831 0 'trash'
for 0 to 'Recipes'
if @property Recipes[] 'found'
@moveitem! 'found' 'Reward Box' 80
pause 1000
break
endif
endfor
@ignoreobject 'found'
endwhile
// Talismans
for 0 to 'Talismans'
while @findtype Talismans[] 0 'trash'
if @property 'Exceptional Bonus' 'found' >= 25
for 0 to 'Skills'
if @property Skills[] 'found' >= 25
@moveitem! 'found' 'Reward Box' 160
pause 1000
break
endif
endfor
endif
@ignoreobject 'found'
endwhile
endfor
@moveitem! 'trash' 'Trash Barrel'
pause 1000
endwhile
else
replygump 0x88bc0b07 2
endif
endif
pause 500
elseif @movetype 0x1bfb 'Restock' 'backpack' 0 0 0 0 200
pause 1000
else
sysmsg 'Out of bolts!' 25
stop
endif
@clearignorelist