set %isElf #false
set %high_only #false
set %DigWait 3s
gosub wield_pickaxe
gosub mountDismount #CHARID
gosub calculate_maxWeight
gosub mine
stop
sub wield_pickaxe
finditem QPF C
set %pickaxe #findid
return
sub mine
gosub wield_pickaxe
ignoreitem reset veinIgnored
while #true
{
gosub vein_search %low_only
msg %vein_found
if %vein_id = RGH
{
ignoreitem %vein_id veinIgnored_xgh
continue
}
if %vein_found = 0
{
event PathFind %vein_x %vein_y
for %w 1 15
{
wait 1
set %jstart #jindex + 1
set %jend #jindex
for %j %jstart %jend
{
scanjournal %j
set %cont #false
if Can't_get_there in #journal
{
ignoreitem %vein_id veinIgnored
set %cont #true
goto next_vein
}
}
wait 1s
finditem %vein_id G_2
if #findcnt > 0
break
}
next_vein:
if %cont = #true
continue
}
else
{
wait 1s
break
}
gosub mine_spot
if #weight > %maxWeight - 50
{
break
}
}
}
return
sub mine_spot
gosub wield_pickaxe
sub wield_pickaxe
finditem LSF_FSF C_
set %pickaxe #findID
set #lobjectid %pickaxe
event macro 13 21 ;use hiding !
wait 1 ;;;;
for %dign 1 5
{
finditem %vein_id G_2
if #findcnt < 1
{
return
}
event macro 17 0
target
set #ltargetid %vein_id
set #ltargetkind 1
event macro 25 0
wait 2
event macro 22 0
wait 2
set %jstart #jindex + 1
set %jend #jindex
for %j %jstart %jend
{
scanjournal %j
if Target_cannot in #journal
{
ignoreitem %vein_id ;;;;;;;;;
return
}
}
wait %DigWait
}
sub vein_search
set %vein_found -1
finditem EUE_OUE_UUE_OUE_RTE_VUE_FUE_MUE_CUE G_12
if #findcnt = 0
{
return
}
for #findindex 1 #findcnt
{
if #findcol = 1153 ;frostwood
{
set %vein_x #findx
set %vein_y #findy
set %vein_id #findid
set %vein_found 0
return
}
}
for #findindex 1 #findcnt
{
if #findcol = 37 ;bloowdwood
{
set %vein_x #findx
set %vein_y #findy
set %vein_id #findid
set %vein_found 0
return
}
}
for #findindex 1 #findcnt
{
if #findcol = 114 ;hearthwood
{
set %vein_x #findx
set %vein_y #findy
set %vein_id #findid
set %vein_found 0
return
}
}
for #findindex 1 #findcnt
{
if #findcol = 1152 ;bamboo
{
set %vein_x #findx
set %vein_y #findy
set %vein_id #findid
set %vein_found 0
return
}
}
for #findindex 1 #findcnt
{
if #findcol = 43 ;ebony
{
set %vein_x #findx
set %vein_y #findy
set %vein_id #findid
set %vein_found 0
return
}
}
for #findindex 1 #findcnt
{
if #findcol = 1271 ;zirconet
{
set %vein_x #findx
set %vein_y #findy
set %vein_id #findid
set %vein_found 0
return
}
}
for #findindex 1 #findcnt
{
if #findcol = 355 ;mahagony
{
set %vein_x #findx
set %vein_y #findy
set %vein_id #findid
set %vein_found 0
return
}
}
for #findindex 1 #findcnt
{
if #findcol = 488 ;oak
{
set %vein_x #findx
set %vein_y #findy
set %vein_id #findid
set %vein_found 0
return
}
}
for #findindex 1 #findcnt
{
if #findcol = 1281 ;yew
{
set %vein_x #findx
set %vein_y #findy
set %vein_id #findid
set %vein_found 0
return
}
}
for #findindex 1 #findcnt
{
if #findcol = 961 ;ash
{
set %vein_x #findx
set %vein_y #findy
set %vein_id #findid
set %vein_found 0
return
}
}
for #findindex 1 #findcnt
{
if #findcol = 1262 ; pine
{
set %vein_x #findx
set %vein_y #findy
set %vein_id #findid
set %vein_found 0
return
}
}
set #findindex 1
if #findcnt > 0
{
set %vein_x #findx
set %vein_y #findy
set %vein_id #findid
set %vein_found 0
return
}
return
sub calculate_maxWeight
set %MaxWeight #maxweight
if %isElf = #false
{
set %maxWeight %maxWeight + 60
}
return
sub mountDismount
set #LOBJECTID %1
wait 1
event macro 17 0
return