Page 1 of 2

UOS - Blacksmith BOD Filler

Posted: October 4th, 2016, 7:50 pm
by Haswell
Check the "Loop" option.

Configure:
- "Bulk Source": the BOD book full of BODs you wanna fill;
- "Bulk Destination": an empty BOD book you'll place filled BODs;
- "Restock" container with ingots and tongs (or smith hammers);
- "Trash BODs Destination": it can be an empty container the macro will place BODs it could not fill for a reason;
- "Trash Barrel": select your house's trash barrel.

Important:
- Your character must be nearby all selected/required containers.
- If you have configured something wrong you can just go to the Macros tab, click the "Active Objects" -> "Clear All" button and play the macro again.

Code: Select all

// Author: Kraz
// Description: Blacksmith BOD Filler
// v2.0: (1) easier to update, read and edit craft info, (2) search, recycle and combine existing items before crafting, (3) faster crafting due to gump category swap improvements, (4) added resource handler
if not @findobject 'Bulk Source'
  promptalias 'Bulk Source'
endif
if not @findobject 'Bulk Destination'
  promptalias 'Bulk Destination'
endif
if not @findobject 'Restock'
  promptalias 'Restock'
endif
if not @findobject 'Trash BODs Destination'
  promptalias 'Trash BODs Destination'
endif
if not @findobject 'Trash Barrel'
  promptalias 'Trash Barrel'
endif
// Craft info placeholder
if not listexists 'Craft'
  @createlist 'Craft'
  // 0: Category, 1: Button, 2: Graphic, 3: Resource Button, 4: Resource Color
endif
// Search for a BOD to fill
if @findtype 0x2258 0x44E 'backpack' and @property 'small' 'found'
  // Reset craft state
  @clearlist 'Craft'
  @unsetalias 'crafting'
  // Define and open new BOD
  @setalias 'bod' 'found'
  useobject! 'bod'
  waitforgump 0x5afbd742 15000
  // Combine items
  if not targetexists 'server'
    replygump 0x5afbd742 2
    waitforgump 0x5afbd742 15000
    waitfortarget 5000
  endif
  // Check for tools
  if @findtype 0xfbb 0 'backpack' or @findtype 0x13e3 0 'backpack'
    pause 1500
    @setalias 'tool' 'found'
    useobject! 'tool'
    waitforgump 0x38920abd 15000
    // Craft
    while targetexists 'server'
      if not @findalias 'crafting'
        // Ringmail
        if @ingump 0x5afbd742 'ringmail gloves'
          @pushlist 'Craft' 1
          @pushlist 'Craft' 2
          @pushlist 'Craft' 0x13eb
        elseif @ingump 0x5afbd742 'ringmail leggings'
          @pushlist 'Craft' 1
          @pushlist 'Craft' 9
          @pushlist 'Craft' 0x13f0
        elseif @ingump 0x5afbd742 'ringmail sleeves'
          @pushlist 'Craft' 1
          @pushlist 'Craft' 16
          @pushlist 'Craft' 0x13ee
        elseif @ingump 0x5afbd742 'ringmail tunic'
          @pushlist 'Craft' 1
          @pushlist 'Craft' 23
          @pushlist 'Craft' 0x13ec
          // Chainmail
        elseif @ingump 0x5afbd742 'chainmail coif'
          @pushlist 'Craft' 8
          @pushlist 'Craft' 2
          @pushlist 'Craft' 0x13bb
        elseif @ingump 0x5afbd742 'chainmail leggings'
          @pushlist 'Craft' 8
          @pushlist 'Craft' 9
          @pushlist 'Craft' 0x13be
        elseif @ingump 0x5afbd742 'chainmail tunic'
          @pushlist 'Craft' 8
          @pushlist 'Craft' 16
          @pushlist 'Craft' 0x13bf
          // Platemail
        elseif @ingump 0x5afbd742 'platemail arms'
          @pushlist 'Craft' 15
          @pushlist 'Craft' 2
          @pushlist 'Craft' 0x1410
        elseif @ingump 0x5afbd742 'platemail gloves'
          @pushlist 'Craft' 15
          @pushlist 'Craft' 9
          @pushlist 'Craft' 0x1414
        elseif @ingump 0x5afbd742 'platemail gorget'
          @pushlist 'Craft' 15
          @pushlist 'Craft' 16
          @pushlist 'Craft' 0x1413
        elseif @ingump 0x5afbd742 'platemail legs'
          @pushlist 'Craft' 15
          @pushlist 'Craft' 23
          @pushlist 'Craft' 0x1411
        elseif @ingump 0x5afbd742 'platemail tunic'
          @pushlist 'Craft' 15
          @pushlist 'Craft' 30
          @pushlist 'Craft' 0x1415
        elseif @ingump 0x5afbd742 'female plate'
          @pushlist 'Craft' 15
          @pushlist 'Craft' 37
          @pushlist 'Craft' 0x1c04
          // Helmets
        elseif @ingump 0x5afbd742 'bascinet'
          @pushlist 'Craft' 22
          @pushlist 'Craft' 2
          @pushlist 'Craft' 0x140c
        elseif @ingump 0x5afbd742 'close helmet'
          @pushlist 'Craft' 22
          @pushlist 'Craft' 9
          @pushlist 'Craft' 0x1408
        elseif @ingump 0x5afbd742 'helmet'
          @pushlist 'Craft' 22
          @pushlist 'Craft' 16
          @pushlist 'Craft' 0x140a
        elseif @ingump 0x5afbd742 'norse helm'
          @pushlist 'Craft' 22
          @pushlist 'Craft' 23
          @pushlist 'Craft' 0x140e
        elseif @ingump 0x5afbd742 'plate helm'
          @pushlist 'Craft' 22
          @pushlist 'Craft' 30
          @pushlist 'Craft' 0x1412
          // Shields
        elseif @ingump 0x5afbd742 'buckler'
          @pushlist 'Craft' 29
          @pushlist 'Craft' 2
          @pushlist 'Craft' 0x1b73
        elseif @ingump 0x5afbd742 'bronze shield'
          @pushlist 'Craft' 29
          @pushlist 'Craft' 9
          @pushlist 'Craft' 0x1b72
        elseif @ingump 0x5afbd742 'heater shield'
          @pushlist 'Craft' 29
          @pushlist 'Craft' 16
          @pushlist 'Craft' 0x1b76
        elseif @ingump 0x5afbd742 'metal shield'
          @pushlist 'Craft' 29
          @pushlist 'Craft' 23
          @pushlist 'Craft' 0x1b7b
        elseif @ingump 0x5afbd742 'metal kite shield'
          @pushlist 'Craft' 29
          @pushlist 'Craft' 30
          @pushlist 'Craft' 0x1b74
        elseif @ingump 0x5afbd742 'tear kite shield'
          @pushlist 'Craft' 29
          @pushlist 'Craft' 37
          @pushlist 'Craft' 0x1b79
          // Bladed
        elseif @ingump 0x5afbd742 'broadsword'
          @pushlist 'Craft' 36
          @pushlist 'Craft' 9
          @pushlist 'Craft' 0xf5e
        elseif @ingump 0x5afbd742 'cutlass'
          @pushlist 'Craft' 36
          @pushlist 'Craft' 23
          @pushlist 'Craft' 0x1441
        elseif @ingump 0x5afbd742 'dagger'
          @pushlist 'Craft' 36
          @pushlist 'Craft' 30
          @pushlist 'Craft' 0xf52
        elseif @ingump 0x5afbd742 'katana'
          @pushlist 'Craft' 36
          @pushlist 'Craft' 37
          @pushlist 'Craft' 0x13ff
        elseif @ingump 0x5afbd742 'kryss'
          @pushlist 'Craft' 36
          @pushlist 'Craft' 44
          @pushlist 'Craft' 0x1401
        elseif @ingump 0x5afbd742 'longsword'
          @pushlist 'Craft' 36
          @pushlist 'Craft' 51
          @pushlist 'Craft' 0xf61
        elseif @ingump 0x5afbd742 'scimitar'
          @pushlist 'Craft' 36
          @pushlist 'Craft' 58
          @pushlist 'Craft' 0x13b6
        elseif @ingump 0x5afbd742 'viking sword'
          @pushlist 'Craft' 36
          @pushlist 'Craft' 65
          @pushlist 'Craft' 0x13b9
          // Axes
        elseif @ingump 0x5afbd742 'large battle axe'
          @pushlist 'Craft' 43
          @pushlist 'Craft' 30
          @pushlist 'Craft' 0x13fb
        elseif @ingump 0x5afbd742 'double axe'
          @pushlist 'Craft' 43
          @pushlist 'Craft' 16
          @pushlist 'Craft' 0xf4b
        elseif @ingump 0x5afbd742 "executioner's axe"
          @pushlist 'Craft' 43
          @pushlist 'Craft' 23
          @pushlist 'Craft' 0xf45
        elseif @ingump 0x5afbd742 'battle axe'
          @pushlist 'Craft' 43
          @pushlist 'Craft' 9
          @pushlist 'Craft' 0xf47
        elseif @ingump 0x5afbd742 'two handed axe'
          @pushlist 'Craft' 43
          @pushlist 'Craft' 37
          @pushlist 'Craft' 0x1443
        elseif @ingump 0x5afbd742 'war axe'
          @pushlist 'Craft' 43
          @pushlist 'Craft' 44
          @pushlist 'Craft' 0x13b0
        elseif @ingump 0x5afbd742 'axe'
          @pushlist 'Craft' 43
          @pushlist 'Craft' 2
          @pushlist 'Craft' 0xf49
          // Polearms
        elseif @ingump 0x5afbd742 'bardiche'
          @pushlist 'Craft' 50
          @pushlist 'Craft' 2
          @pushlist 'Craft' 0xf4d
        elseif @ingump 0x5afbd742 'halberd'
          @pushlist 'Craft' 50
          @pushlist 'Craft' 23
          @pushlist 'Craft' 0x143e
        elseif @ingump 0x5afbd742 'short spear'
          @pushlist 'Craft' 50
          @pushlist 'Craft' 44
          @pushlist 'Craft' 0x1403
        elseif @ingump 0x5afbd742 'spear'
          @pushlist 'Craft' 50
          @pushlist 'Craft' 58
          @pushlist 'Craft' 0xf62
        elseif @ingump 0x5afbd742 'war fork'
          @pushlist 'Craft' 50
          @pushlist 'Craft' 65
          @pushlist 'Craft' 0x1405
          // Bashing
        elseif @ingump 0x5afbd742 'war mace'
          @pushlist 'Craft' 57
          @pushlist 'Craft' 30
          @pushlist 'Craft' 0x1407
        elseif @ingump 0x5afbd742 'hammer pick'
          @pushlist 'Craft' 57
          @pushlist 'Craft' 2
          @pushlist 'Craft' 0x143d
        elseif @ingump 0x5afbd742 'mace'
          @pushlist 'Craft' 57
          @pushlist 'Craft' 9
          @pushlist 'Craft' 0xf5c
        elseif @ingump 0x5afbd742 'maul'
          @pushlist 'Craft' 57
          @pushlist 'Craft' 16
          @pushlist 'Craft' 0x143b
        elseif @ingump 0x5afbd742 'war hammer'
          @pushlist 'Craft' 57
          @pushlist 'Craft' 37
          @pushlist 'Craft' 0x1439
        else
          break
        endif
        // Define resource
        if @ingump 0x5afbd742 'valorite'
          @pushlist 'Craft' 62
          @pushlist 'Craft' 2219
        elseif @ingump 0x5afbd742 'verite'
          @pushlist 'Craft' 55
          @pushlist 'Craft' 2207
        elseif @ingump 0x5afbd742 'agapite'
          @pushlist 'Craft' 48
          @pushlist 'Craft' 2425
        elseif @ingump 0x5afbd742 'gold'
          @pushlist 'Craft' 41
          @pushlist 'Craft' 2213
        elseif @ingump 0x5afbd742 'bronze ingots'
          @pushlist 'Craft' 34
          @pushlist 'Craft' 2418
        elseif @ingump 0x5afbd742 'shadow iron'
          @pushlist 'Craft' 20
          @pushlist 'Craft' 2406
        elseif @ingump 0x5afbd742 'dull copper'
          @pushlist 'Craft' 13
          @pushlist 'Craft' 2419
        elseif @ingump 0x5afbd742 'copper'
          @pushlist 'Craft' 27
          @pushlist 'Craft' 2413
        else
          @pushlist 'Craft' 6
          @pushlist 'Craft' 0
        endif
      endif
      // Check for ingots
      if @counttype 0x1bf2 Craft[4] 'backpack' < 50
        while @movetype 0x1bf2 'backpack' 'Restock'
          pause 1500
        endwhile
        if @movetype 0x1bf2 'Restock' 'backpack' 0 0 0 Craft[4] 100
          pause 1500
        else
          sysmsg 'Out of ingots!' 25
          @canceltarget
          stop
        endif
      endif
      // Search for existing items
      while @findtype Craft[2] Craft[4] 'backpack'
        target! 'found'
        waitfortarget 5000
        if not targetexists 'server' and @injournal 'must be exceptional' 'system'
          // Recycle this item
          replygump 0x38920abd 14
          waitfortarget 5000
          target! 'found'
          pause 1500
          // Unable to recycle, trash item
          if @findobject 'found'
            @moveitem! 'found' 'Trash Barrel'
            pause 1500
          endif
          replygump 0x5afbd742 2
          waitforgump 0x5afbd742 15000
          waitfortarget 5000
          clearjournal
        endif
      endwhile
      // Craft new items if necessary
      if targetexists 'server'
        // Check tool before craft
        if not @findobject 'tool'
          break
        endif
        // Swap resource and category only once per BOD
        if not @findobject 'crafting' 'any' 'backpack'
          @setalias 'crafting' 'bod'
          // Resource
          if list 'Craft' == 5
            replygump 0x38920abd 7
            waitforgump 0x38920abd 5000
            replygump 0x38920abd Craft[3]
            waitforgump 0x38920abd 5000
          endif
          // Category
          replygump 0x38920abd Craft[0]
          waitforgump 0x38920abd 5000
        endif
        replygump 0x38920abd Craft[1]
        waitforgump 0x38920abd 5000
        pause 250
      endif
    endwhile
    // BOD is complete, move to destination
    if not targetexists 'server'
      @moveitem 'bod' 'Bulk Destination'
      // Trash BOD or missing definitions
    elseif not @findalias 'crafting'
      @moveitem 'bod' 'Trash BODs Destination'
    endif
    // Out of tools
  elseif not @movetype 0xfbb 'Restock' 'backpack' and not @movetype 0x13e3 'Restock' 'backpack'
    sysmsg 'Out of tongs and smith hammers!' 25
    @canceltarget
    stop
  endif
  pause 1500
elseif not property 'Deeds In Book: 0' 'Bulk Source'
  useobject! 'Bulk Source'
  waitforgump 0x54f555df 15000
  replygump 0x54f555df 5
  pause 1500
else
  sysmsg 'Unable to find BODs to fill.' 64
  @canceltarget
  stop
endif

Re: UOS - Blacksmith BOD Filler

Posted: April 28th, 2017, 9:08 am
by hrs024
this script is amazing thank you very much

Re: UOS - Blacksmith BOD Filler

Posted: September 4th, 2017, 3:24 am
by hrs024
can anybody modify this to craft the tongs needed??

Re: UOS - Blacksmith BOD Filler

Posted: December 11th, 2017, 9:11 pm
by Tanya
hrs024 wrote:can anybody modify this to craft the tongs needed??

Code: Select all

//check tinker tools and tongs
if counttype '0x1eb8' 'any' 'backpack' < '2'
  usetype 0x1eb8
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 8
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 23
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 0
  pause 1000
endif
if counttype '0xfbb' 'any' 'backpack' < '2'
  usetype 0x1eb8
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 8
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 86
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 0
  pause 1000
endif

Re: UOS - Blacksmith BOD Filler

Posted: December 11th, 2017, 10:29 pm
by The Silvertiger
Hint: check my signature.

Re: UOS - Blacksmith BOD Filler

Posted: December 12th, 2017, 3:12 am
by hrs024
Tanya wrote:
hrs024 wrote:can anybody modify this to craft the tongs needed??

Code: Select all

//check tinker tools and tongs
if counttype '0x1eb8' 'any' 'backpack' < '2'
  usetype 0x1eb8
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 8
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 23
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 0
  pause 1000
endif
if counttype '0xfbb' 'any' 'backpack' < '2'
  usetype 0x1eb8
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 8
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 86
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 0
  pause 1000
endif
tyvm tanya as always :D

Re: UOS - Blacksmith BOD Filler

Posted: December 23rd, 2017, 11:11 pm
by one of millions
Tanya wrote:
hrs024 wrote:can anybody modify this to craft the tongs needed??

Code: Select all

//check tinker tools and tongs
if counttype '0x1eb8' 'any' 'backpack' < '2'
  usetype 0x1eb8
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 8
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 23
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 0
  pause 1000
endif
if counttype '0xfbb' 'any' 'backpack' < '2'
  usetype 0x1eb8
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 8
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 86
  waitforgump 0x38920abd 15000
  replygump 0x38920abd 0
  pause 1000
endif

this only works if you fill iron bods. if you fill colored deeds, is there no iron in the packbag.

Re: UOS - Blacksmith BOD Filler

Posted: December 23rd, 2017, 11:21 pm
by hrs024
do i just put this in the front of the macro or something? im not good with scripts at all, thanks for the help =]

Re: UOS - Blacksmith BOD Filler

Posted: December 23rd, 2017, 11:53 pm
by one of millions
does not matter. but only for iron bods. otherwise it put the iron back in the restock chest.

Re: UOS - Blacksmith BOD Filler

Posted: December 23rd, 2017, 11:57 pm
by one of millions
only in case you have no tong in the backpack. if you put it on the end it will stop the script before it produce one.

Re: UOS - Blacksmith BOD Filler

Posted: December 23rd, 2017, 11:58 pm
by one of millions
// Out of tools
elseif not @movetype 0xfbb 'Restock' 'backpack' and not @movetype 0x13e3 'Restock' 'backpack'
sysmsg 'Out of tongs and smith hammers!' 25
@canceltarget
stop
endif

3 last part

Re: UOS - Blacksmith BOD Filler

Posted: December 24th, 2017, 12:29 am
by hrs024
thank you, il test it out once somebody sells me ingots lol

Re: UOS - Blacksmith BOD Filler

Posted: December 24th, 2017, 12:34 am
by one of millions
of course the npc vendor will do it all the time :lol:

Re: UOS - Blacksmith BOD Filler

Posted: December 24th, 2017, 4:13 am
by The Silvertiger
My suggestion would be copying duck bodding part 1 & 2 from my signature into a uos profile (there's a how-to in my signature as well.) Then figure out how it works. This is the same profile that Hz uses to pump out hammers and kits. GL HF

Re: UOS - Blacksmith BOD Filler

Posted: December 24th, 2017, 8:58 am
by Tanya
Thanks for all the macros Tiger. The filling macro in duck bodding part 1 & 2 works perfect.