Page 1 of 1

Smith bods turn in (reset)

Posted: April 16th, 2017, 9:35 am
by suiris
The macro is made to use in Luna, Vendor and trash already configured. It will navigate to the vendor and the trash if needed (sometimes the NPC is not close enough).
Throws away any pickaxes sturdy tools and gloves of mining, keeps gold and PoF (if any) in bank.
Make sure all bods are visible in the book.

Loop checkbox should be on.

Code: Select all

//========== init phase =============
if not findalias 'initialize'
  if not findalias 'BSsource'
    promptalias 'BSsource'
  endif
  if not findalias 'BSdest'
    promptalias 'BSdest'
  endif
  if not listexists 'trashitems'
    createlist 'trashitems'
    @pushlist 'trashitems' 0xf39
    @pushlist 'trashitems' 0xe86
    @pushlist 'trashitems' 0xfb4
    @pushlist 'trashitems' 0x13d5
    @pushlist 'trashitems' 0x13c6
  endif
endif
//======= end of init phase ==========
//====================================
if not findalias 'BSvendor'
  @setalias 'BSvendor' 0x4102e
endif
if not findalias 'bstrash'
  @setalias 'bstrash' 0x4040a418
endif
if property 'Deeds in Book: 0' 'BSsource'
  @unsetalias 'initialize'
  @unsetalias 'BSsource'
  @unsetalias 'BSdest'
  clearignorelist
  msg 'bank'
  pause 500
  @movetype 0xeed 'backpack' 'bank'
  pause 500
  while @findtype 0x1006 2419 'backpack' 'any'
    @moveitem 'found' 'bank'
    pause 500
    @ignoreobject 'found'
  endwhile
  pause 400
  for 0 to 'trashitems'
    while @findtype trashitems[] 'any' 'backpack' 'any'
      @moveitem 'found' 'bstrash'
      pause 600
    endwhile
  endfor
  stop
endif
while not @inrange 'BSvendor' 1
  if @x 'BSvendor' > x 'self' and @y 'BSvendor' > y 'self'
    walk 'Southeast'
  elseif @x 'BSvendor' < x 'self' and @y 'BSvendor' > y 'self'
    walk 'Southwest'
  elseif @x 'BSvendor' > x 'self' and @y 'BSvendor' < y 'self'
    walk 'Northeast'
  elseif @x 'BSvendor' < x 'self' and @y 'BSvendor' < y 'self'
    walk 'Northwest'
  elseif @x 'BSvendor' > x 'self' and @y 'BSvendor' == y 'self'
    walk 'East'
  elseif @x 'BSvendor' < x 'self' and @y 'BSvendor' == y 'self'
    walk 'West'
  elseif @x 'BSvendor' == x 'self' and @y 'BSvendor' > y 'self'
    walk 'South'
  elseif @x 'BSvendor' == x 'self' and @y 'BSvendor' < y 'self'
    walk 'North'
  endif
  msg 'Betty'
endwhile
waitforcontext 'BSvendor' 1 1500
pause 800
if @injournal 'An offer may be available'
  sysmsg 'try later'
  @clearjournal
else
  pause 800
  @replygump 0x9bade6ea 1
  @replygump 0xbe0dad1e 1
  pause 800
  while @findtype 0x2258 1102 'backpack'
    @moveitem 'found' 'BSdest'
    pause 450
    @ignoreobject 'found'
  endwhile
endif
pause 800
@useobject 'BSsource'
waitforgump 0x54f555df 1500
@replygump 0x54f555df 5
waitforgump 0x54f555df 1500
@replygump 0x54f555df 0
pause 800
if @findtype 0x2258 1102 'backpack'
  @setalias 'bod' 'found'
  pause 400
  while @findobject 'bod' 'any' 'backpack'
    @moveitem 'bod' 'BSvendor'
    pause 400
    if @injournal 'You have not completed'
      pause 3000
      @clearjournal
      @moveitem 'bod' 'BSdest'
      @ignoreobject 'bod'
      pause 500
      break
    endif
  endwhile
endif
if @property 'Contents' 'backpack' > 122 or weight > 400
  while not @inrange 'bstrash' 1
    if @x 'bstrash' > x 'self' and @y 'bstrash' > y 'self'
      walk 'Southeast'
    elseif @x 'bstrash' < x 'self' and @y 'bstrash' > y 'self'
      walk 'Southwest'
    elseif @x 'bstrash' > x 'self' and @y 'bstrash' < y 'self'
      walk 'Northeast'
    elseif @x 'bstrash' < x 'self' and @y 'bstrash' < y 'self'
      walk 'Northwest'
    elseif @x 'bstrash' > x 'self' and @y 'bstrash' == y 'self'
      walk 'East'
    elseif @x 'bstrash' < x 'self' and @y 'bstrash' == y 'self'
      walk 'West'
    elseif @x 'bstrash' == x 'self' and @y 'bstrash' > y 'self'
      walk 'South'
    elseif @x 'bstrash' == x 'self' and @y 'bstrash' < y 'self'
      walk 'North'
    endif
  endwhile
  pause 1000
  msg 'bank'
  pause 500
  @movetype 0xeed 'backpack' 'bank'
  pause 500
  while @findtype 0x1006 2419 'backpack' 'any'
    @moveitem 'found' 'bank'
    pause 500
    @ignoreobject 'found'
  endwhile
  pause 400
  for 0 to 'trashitems'
    while @findtype trashitems[] 'any' 'backpack' 'any'
      @moveitem 'found' 'bstrash'
      pause 600
    endwhile
  endfor
endif
pause 1000
pause 1000
Edit: fixed few things.

Re: Smith bods turn in (reset)

Posted: April 18th, 2017, 7:17 am
by Gra_la
I recommend for blacksmith dropping all the large iron bods in the trash as you get them rather than in the sorting phase, it saves a whole lot of time.
Also might want to include Ringmail gloves 0x13eb and Pickaxe 0xe85 in your trash.

Re: Smith bods turn in (reset)

Posted: September 4th, 2017, 3:25 am
by hrs024
can anybody help me to add gargoyle pickaxes to the trash list, i cant get it to work when i modify it. thank you

Re: Smith bods turn in (reset)

Posted: September 4th, 2017, 8:06 pm
by Haswell
hrs024 wrote:can anybody help me to add gargoyle pickaxes to the trash list, i cant get it to work when i modify it. thank you
after editing the list type in-game: -removelist 'trashitems'
or go to the Macros tab -> click the "Active Objects" button -> Clear All or remove that specific list

Re: Smith bods turn in (reset)

Posted: September 4th, 2017, 9:36 pm
by hrs024
ah okay il try that out thanks alot!

Re: Smith bods turn in (reset)

Posted: January 19th, 2018, 9:36 am
by scatman
is there a way to modify this macro to sorting bods instantly? There is not enough room in backpack to turn in more than 5 bods, lol.