Fletching Quests

Share your guides, how-tos, FAQs, and so forth. This is not for support -- post questions in General Discussion.
Post Reply
User avatar
The Silvertiger
Posts: 4469

Fletching Quests

Post by The Silvertiger »

Only Fletching quests not carpentry... Posting for another person...

Code: Select all

@setalias 'FletcherDropoff' '0x40324389'
@setalias 'beetle''0x1bc49d'
@setalias 'FletcherRunebook' '0x43981306'
//^^^set these 3 to yours
@removelist 'woodhue'
@removelist 'magechiv'
@removelist 'magechiv2'
@removelist 'bond'
@createlist 'woodhue'
@createlist 'magechiv'
@createlist 'magechiv2'
@createlist 'bond'
//plain=0, oak=2010, ash=1191 | mage=5,11 chiv = 7,13 | bond = 10, unbond = 9
@pushlist 'woodhue' 0
@pushlist 'magechiv' 5
@pushlist 'magechiv2' 11
@pushlist 'bond' 10
//1. Character needs Fletching and Tinkering, a Fletching Bonus talisman saves resources
//2. FletcherDropoff container needs bolts, ingots, boards in it
//3. FletcherRunebook needs 1st rune to be Dropoff location and 2nd rune near Heartwood entrance
//4. Start in Heartwood with a beetle full of only boards. Have crafted tinker tools, 40 ingots, and 200 bolts in your pack or start at your Dropoff location to restock these items
//5. Have meat in your pack to feed beetle, 1 meat used per hour
//6. If multiple stacks of boards at your dropoff, script will begin encountering errors when one of the stacks drop below 1600, combine them before this happens
@setalias 'Fletching Quest Giver' 0x114
@setalias 'Trash Barrel'0x40053f97
if not listexists 'Talismans'
  @createlist 'Talismans'
  @pushlist 'Talismans' 0x2f58
  @pushlist 'Talismans' 0x2f59
  @pushlist 'Talismans' 0x2f5a
  @pushlist 'Talismans' 0x2f5b
endif
if not listexists 'Slayers'
  @createlist 'Slayers'
  @pushlist 'Slayers' 'Ice Slayer'
  @pushlist 'Slayers' 'Flame Slayer'
  @pushlist 'Slayers' 'Vermin Slayer'
  @pushlist 'Slayers' 'Mage Slayer'
  @pushlist 'Slayers' 'Bird Slayer'
endif
if not listexists 'Killers'
  @createlist 'Killers'
  @pushlist 'Killers' 'Yamandon Killer'
  @pushlist 'Killers' 'Lich Killer'
  @pushlist 'Killers' 'Lich Lord Killer'
  @pushlist 'Killers' 'Dread Spider Killer'
  @pushlist 'Killers' 'Ice Fiend Killer'
  @pushlist 'Killers' 'Eagle Killer'
endif
if not listexists 'Protection'
  @createlist 'Protection'
  @pushlist 'Protection' 'Yamandon Protection'
  @pushlist 'Protection' 'Lich Protection'
  @pushlist 'Protection' 'Lich Lord Protection'
  @pushlist 'Protection' 'Dread Spider Protection'
  //@pushlist 'Protection' 'Giant Black Widow Protection'
  @pushlist 'Protection' 'Silver Serpent Protection'
  @pushlist 'Protection' 'Eagle Protection'
endif
if not listexists 'Jewelry'
  @createlist 'Jewelry'
  @pushlist 'Jewelry' 0x108a
  @pushlist 'Jewelry' 0x1f09
  @pushlist 'Jewelry' 0x1086
  @pushlist 'Jewelry' 0x1f06
endif
if not timerexists 'feedPet'
  createtimer 'feedPet'
endif
//stop if you lack skills
if skill 'Tinkering' < 45
  sysmsg 'You need 50+ tinkering to run this macro effectively.' 34
  stop
elseif skill 'Bowcraft' < 90
  sysmsg 'You need at least 90 (preferrably 100) bowcrafting to run this macro. You will also want a Fletching bonus talisman' 34
  stop
endif
//stop macro if you forgot to restock bolts or ingots or have no tinker tools
if counttype 0x1bf2 0 'backpack' == 0 and not @inrange 'FletcherDropoff' 2
  sysmsg 'Restock ingots before starting!' 33
  stop
endif
if counttype 0x1bfb 0 'backpack' == 0 and counttype 0x1bfb 1258 'backpack' == 0
  if not @inrange 'FletcherDropoff' 2
    sysmsg 'Restock bolts before starting!' 33
    stop
  endif
endif
if @counttype 0x1eb8 0 'backpack' == 0
  sysmsg 'Get crafted tinker tools (0x1eb8) before starting!' 33
  stop
endif
// make tinker tools
while @counttype 0x1eb8 0 'backpack' < 2
  usetype! 0x1eb8
  waitforgump 0x38920abd 3000
  replygump 0x38920abd 8
  waitforgump 0x38920abd 3000
  replygump 0x38920abd 23
endwhile
// make plain fletcher kits
while @counttype 0x1022 0 'backpack' < 3
  usetype! 0x1eb8
  waitforgump 0x38920abd 3000
  replygump 0x38920abd 8
  waitforgump 0x38920abd 3000
  replygump 0x38920abd 142
endwhile
for 0 to 'magechiv'
  for 0 to 'magechiv2'
    for 0 to 'bond'
      for 0 to 'woodhue'
        //if starting macro from Dropoff location, then go through that same process as above to restock and navigate to Heartwood
        if @inrange 'FletcherDropoff' 2
          //open containers
          useobject 'self'
          pause 1000
          useobject 'FletcherDropoff'
          pause 1000
          waitforcontext 'beetle' bond[] 15000
          pause 1000
          //unload jewels
          while counttype 0x108a 'any' 'backpack' > 0
            movetype 0x108a 'backpack' 'FletcherDropoff'
            pause 500
          endwhile
          while counttype 0x1f09 'any' 'backpack' > 0
            movetype 0x1f09 'backpack' 'FletcherDropoff'
            pause 500
          endwhile
          while counttype 0x1f06 'any' 'backpack' > 0
            movetype 0x1f06 'backpack' 'FletcherDropoff'
            pause 500
          endwhile
          while counttype 0x1086 'any' 'backpack' > 0
            movetype 0x1086 'backpack' 'FletcherDropoff'
            pause 500
          endwhile
          //unload kits
          while counttype 0x1022 1191 'backpack' > 0
            movetype 0x1022 'backpack' 'FletcherDropoff' (0 0 0) 1191 1
            pause 500
          endwhile
          while counttype 0x1022 2010 'backpack' > 0
            movetype 0x1022 'backpack' 'FletcherDropoff' (0 0 0) 2010 1
            pause 500
          endwhile
          while counttype 0x1022 1192 'backpack' > 0
            movetype 0x1022 'backpack' 'FletcherDropoff' (0 0 0) 1192 1
            pause 500
          endwhile
          while counttype 0x1022 1193 'backpack' > 0
            movetype 0x1022 'backpack' 'FletcherDropoff' (0 0 0) 1193 1
            pause 500
          endwhile
          //unload talismans
          while counttype 0x2f58 0 'backpack' > 0
            movetype 0x2f58 'backpack' 'FletcherDropoff' (0 0 0) 0 1
            pause 500
          endwhile
          while counttype 0x2f59 0 'backpack' > 0
            movetype 0x2f59 'backpack' 'FletcherDropoff' (0 0 0) 0 1
            pause 500
          endwhile
          while counttype 0x2f5a 0 'backpack' > 0
            movetype 0x2f5a 'backpack' 'FletcherDropoff' (0 0 0) 0 1
            pause 500
          endwhile
          while counttype 0x2f5b 0 'backpack' > 0
            movetype 0x2f5b 'backpack' 'FletcherDropoff' (0 0 0) 0 1
            pause 500
          endwhile
          //get more bolts
          if counttype 0x1bfb 0 'backpack' < 130
            if counttype 0x1bfb 0 'FletcherDropoff' < 200
              sysmsg 'Out of Bolts!' 33
              useobject 'beetle'
              stop
            endif
            movetype 0x1bfb 'FletcherDropoff' 'backpack' (0 0 0) 0 200
            pause 1000
          endif
          // get ingots if low
          if counttype 0x1bf2 0 'backpack' < 20
            if counttype 0x1bf2 0 'FletcherDropoff' < 40
              sysmsg 'Out of Ingots!' 33
              useobject 'beetle'
              stop
            endif
            movetype 0x1bf2 'FletcherDropoff' 'backpack' (0 0 0) 0 40
            pause 1000
          endif
          //get boards on beetle and self
          //first make sure beetle is empty, sometimes UOS won't pull 200 boards and you end up with odd number left behind
          if counttype 0x1bd7 'any' 'beetle' > 0
            while counttype 0x1bd7 'any' 'beetle' > 1599
              movetype 0x1bd7 'beetle' 'FletcherDropoff' [(0 0 0)] 'any' 1600
              pause 500
            endwhile
            while counttype 0x1bd7 'any' 'beetle' > 499
              movetype 0x1bd7 'beetle' 'FletcherDropoff' [(0 0 0)] 'any' 500
              pause 500
            endwhile
            while counttype 0x1bd7 'any' 'beetle' > 99
              movetype 0x1bd7 'beetle' 'FletcherDropoff' [(0 0 0)] 'any' 100
              pause 500
            endwhile
            while counttype 0x1bd7 'any' 'beetle' > 24
              movetype 0x1bd7 'beetle' 'FletcherDropoff' [(0 0 0)] 'any' 25
              pause 500
            endwhile
            while counttype 0x1bd7 'any' 'beetle' > 4
              movetype 0x1bd7 'beetle' 'FletcherDropoff' [(0 0 0)] 'any' 5
              pause 500
            endwhile
            while counttype 0x1bd7 'any' 'beetle' > 0
              movetype 0x1bd7 'beetle' 'FletcherDropoff' [(0 0 0)] 'any' 1
              pause 500
            endwhile
          endif
          //stop if FletcherDropoff is out of boards
          pause 1000
          useobject 'FletcherDropoff'
          pause 1000
          if counttype 0x1bd7 woodhue[] 'FletcherDropoff' < 1900
            sysmsg 'Out of Boards!' 33
            useobject 'beetle'
            @playmacro 'Lumberjacking'
            while counttype 0x1bd7 woodhue[] 'FletcherDropoff' < 1900
              pause 20000
            endwhile
          endif
          //fill beetle with boards
          if mounted 'self'
            pause 550
            useobject 'self'
            pause 1000
            waitforcontext 'beetle' bond[] 15000
          endif
          movetype 0x1bd7 'FletcherDropoff' 'beetle' (0 0 0) woodhue[] 1600
          pause 1000
          //move boards to your pack based on how low your pack is
          //max weight minus 350
          if weight < 175
            movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[] 350
            pause 1000
            //max weight minus 300
          elseif weight < 225
            movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[] 300
            pause 1000
            //max weight minus 250
          elseif weight < 275
            movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[] 250
            pause 1000
            //max weight minus 200
          elseif weight < 325
            movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[] 200
            pause 1000
            //max weight minus 150
          elseif weight < 375
            movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[] 150
            pause 1000
            //max weight minus 100
          elseif weight < 425
            movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[] 100
            pause 1000
          elseif counttype 0x1bd7 woodhue[] 'backpack' < 1
            movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[] 1
            pause 1000
          endif
          //set fletching kits to correct wood type
          if @findtype 0x1bd7 0 'backpack'
            pause 550
            usetype! 0x1022
            waitforgump 0x38920abd 1000
            @replygump 0x38920abd 7
            waitforgump 0x38920abd 1000
            @replygump 0x38920abd 6
            waitforgump 0x38920abd 1000
            pause 550
            //warn if other color boards or bows in pack
            if @findtype 0x1bd7 2010 'backpack' or @findtype 0x1bd7 1191 'backpack'
              sysmsg 'You have two types of boards in your pack. Fix before starting macro.' 34
              stop
            endif
            if @findtype 0x13b2 2010 'backpack' or @findtype 0x13b2 1191 'backpack'
              sysmsg 'Delete the different hued bows from the wood type you are trying to use before starting macro.' 34
              stop
            endif
            if @findtype 0xf50 2010 'backpack' or @findtype 0xf50 1191 'backpack'
              sysmsg 'Delete the different hued crossbows from the wood type you are trying to use before starting macro.' 34
              stop
            endif
            if @findtype 0x13fd 2010 'backpack' or @findtype 0x13fd 1191 'backpack'
              sysmsg 'Delete the different hued heavy crossbows from the wood type you are trying to use before starting macro.' 34
              stop
            endif
            if @findtype 0x26c3 2010 'backpack' or @findtype 0x26c3 1191 'backpack'
              sysmsg 'Delete the different hued repeating crossbows from the wood type you are trying to use before starting macro.' 34
              stop
            endif
          elseif @findtype 0x1bd7 2010 'backpack'
            pause 550
            usetype! 0x1022
            waitforgump 0x38920abd 1000
            @replygump 0x38920abd 7
            waitforgump 0x38920abd 1000
            @replygump 0x38920abd 13
            waitforgump 0x38920abd 1000
            pause 550
            //warn if other color boards, bows, stools in place
            if @findtype 0x1bd7 0 'backpack' or @findtype 0x1bd7 1191 'backpack'
              sysmsg 'You have two types of boards in your pack. Fix before starting macro.' 34
              stop
            endif
            if @findtype 0x13b2 0 'backpack' or @findtype 0x13b2 1191 'backpack'
              sysmsg 'Delete the different hued bows from the wood type you are trying to use before starting macro.' 34
              stop
            endif
            if @findtype 0xf50 0 'backpack' or @findtype 0xf50 1191 'backpack'
              sysmsg 'Delete the different hued crossbows from the wood type you are trying to use before starting macro.' 34
              stop
            endif
            if @findtype 0x13fd 0 'backpack' or @findtype 0x13fd 1191 'backpack'
              sysmsg 'Delete the different hued heavy crossbows from the wood type you are trying to use before starting macro.' 34
              stop
            endif
            if @findtype 0x26c3 0 'backpack' or @findtype 0x26c3 1191 'backpack'
              sysmsg 'Delete the different hued repeating crossbows from the wood type you are trying to use before starting macro.' 34
              stop
            endif
          elseif @findtype 0x1bd7 1191 'backpack'
            pause 550
            usetype! 0x1022
            waitforgump 0x38920abd 2000
            @replygump 0x38920abd 7
            waitforgump 0x38920abd 2000
            @replygump 0x38920abd 20
            waitforgump 0x38920abd 2000
            pause 550
            //warn if other color boards, bows, stools in place
            if @findtype 0x1bd7 2010 'backpack' or @findtype 0x1bd7 0 'backpack'
              sysmsg 'You have two types of boards in your pack. Fix before starting macro.' 34
              stop
            endif
            if @findtype 0x13b2 2010 'backpack' or @findtype 0x13b2 0 'backpack'
              sysmsg 'Delete the different hued bows from the wood type you are trying to use before starting macro.' 34
              stop
            endif
            if @findtype 0xf50 2010 'backpack' or @findtype 0xf50 0 'backpack'
              sysmsg 'Delete the different hued crossbows from the wood type you are trying to use before starting macro.' 34
              stop
            endif
            if @findtype 0x13fd 2010 'backpack' or @findtype 0x13fd 0 'backpack'
              sysmsg 'Delete the different hued heavy crossbows from the wood type you are trying to use before starting macro.' 34
              stop
            endif
            if @findtype 0x26c3 2010 'backpack' or @findtype 0x26c3 0 'backpack'
              sysmsg 'Delete the different hued repeating crossbows from the wood type you are trying to use before starting macro.' 34
              stop
            endif
          endif
          //mount beetle and recall back to heartwood
          pause 1000
          useobject 'beetle'
          pause 2000
          if @injournal 'world will save'
            while not @injournal 'world save complete'
            endwhile
            @clearjournal
          endif
          useobject 'FletcherRunebook'
          waitforgump 0x554b87f3 30000
          replygump 0x554b87f3 magechiv2[]
          pause 2000
          //if the rune is blocked, pause 2 min to give time for NPCs to move, this prevents the character from running across the world from your dropoff
          if injournal 'blocked' 'system'
            sysmsg 'Rune blocked, trying again in 2 minutes' 33
            pause 120000
            clearjournal
            useobject 'FletcherRunebook'
            waitforgump 0x554b87f3 30000
            replygump 0x554b87f3 magechiv2[]
            pause 2000
            //if it's still blocked, stop macro
            if injournal 'blocked' 'system'
              sysmsg 'Rune still blocked, stopping macro' 33
              clearjournal
              stop
            endif
          endif
          //navigate to heartwood entrance
          while y != 992 and y > 400
            for 2
              if y > 992
                walk 'north'
              endif
              pause 250
              if y < 992
                walk 'south'
              endif
              pause 250
            endfor
          endwhile
          if x > 535 and x < 1000
            while x > 535 and x < 1000
              run 'west'
              pause 100
            endwhile
          endif
          if x < 537
            while x < 537
              run 'east'
              pause 100
            endwhile
          endif
          //navigate through heartwood to quest area
          while y < 377
            run 'southeast'
          endwhile
          pause 500
          while y > 378
            walk 'north'
            pause 500
          endwhile
          while y < 378
            walk 'south'
            pause 500
          endwhile
          while x < 7037
            run 'east'
          endwhile
          //dismount
          pause 500
          useobject 'self'
          pause 700
          useobject 'Trash Barrel'
          pause 700
          waitforcontext 'beetle' bond[] 3000
          pause 700
          if counttype 0x1bd7 woodhue[] 'backpack' < 150
            movetype 0x1bd7 'beetle' 'backpack' [(0 0 0)] woodhue[] 200
            pause 2000
          endif
          //restock boards from beetle
        elseif counttype 0x1bd7 woodhue[] 'backpack' < 150
          if counttype 0x1bd7 woodhue[] 'beetle' > 199
            movetype 0x1bd7 'beetle' 'backpack' [(0 0 0)] woodhue[] 200
            pause 2000
            //if beetle empty, leave heartwood
          else
            msg 'Celine is the Queen of Demise!' 33
            useobject 'beetle'
            pause 1000
            msg 'Long live the Queen!' 33
            while x > 7028
              run 'west'
            endwhile
            pause 300
            while y > 342
              run "Northwest"
              pause 100
            endwhile
            while x < 6987
              walk 'east'
              pause 150
            endwhile
            while x > 6987
              walk 'west'
              pause 150
            endwhile
            while y != 338 and y < 600
              for 5
                if y > 338 and y < 600
                  walk 'north'
                  pause 250
                endif
                if y < 338 and y < 600
                  walk 'south'
                  pause 250
                endif
              endfor
            endwhile
            while x > 1000
              while y > 338 and y < 600
                turn 'north'
                walk 'north'
                pause 250
              endwhile
              while y < 338 and y < 600
                turn 'south'
                walk 'south'
                pause 250
              endwhile
              run 'west'
            endwhile
            if @injournal 'world will save'
              while not @injournal 'world save complete'
              endwhile
              @clearjournal
            endif
            //recall home
            useobject 'FletcherRunebook'
            waitforgump 0x554b87f3 30000
            replygump 0x554b87f3 magechiv[]
            pause 2000
          endif
        elseif @inrange 'Trash Barrel' 2
          //dismount if not when macro started
          if mounted
            useobject 'self'
            pause 1000
            waitforcontext 'beetle' bond[] 15000
            pause 1000
            useobject 'Trash Barrel'
            pause 1000
          endif
          // Hourly feed pet
          if timer 'feedPet' >= 3600000
            feed 'beetle' 'Meat' 'any' 1
            pause 500
            if injournal 'happier'
              settimer 'feedPet' 0
              sysmsg 'Pet Fed' 33
              clearjournal
            else
              sysmsg 'Out of Meat!' 33
              useobject 'beetle'
              clearjournal
              stop
            endif
          endif
          //get a quest
          @useobject 'Fletching Quest Giver'
          waitforgump 0x19bc4061 2000
          //SimpleBow
          if @ingump 0x19bc4061 'crafted in the human style'
            replygump 0x19bc4061 1
            pause 550
            while counttype 0x13b2 'any' 'backpack' < 10
              usetype 0x1022 0 'backpack'
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 15
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 2
              waitforgump 0x38920abd 5000
            endwhile
            waitforcontext 'self' 4 5000
            waitfortarget 5000
            settimer 'toggletimeout' 0
            while @counttype 0x13b2 0x4ea 'backpack' != 10 and timer 'toggletimeout' < 5000
              @targettype 0x13b2 woodhue[]
              pause 150
            endwhile
            @canceltarget
            pause 500
            @useobject! 'Fletching Quest Giver'
            waitforgump 0xdf31ecf8 3000
            replygump 0xdf31ecf8 4
            waitforgump 0x96626c6e 3000
            replygump 0x96626c6e 1
            pause 1000
            //SimpleBow already in progress
          elseif @ingump 0xa8b319c6 'debt if you bring me bows'
            while counttype 0x13b2 'any' 'backpack' < 10
              usetype 0x1022 0 'backpack'
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 15
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 2
              waitforgump 0x38920abd 5000
            endwhile
            waitforcontext 'self' 4 5000
            waitfortarget 5000
            settimer 'toggletimeout' 0
            while @counttype 0x13b2 0x4ea 'backpack' != 10 and timer 'toggletimeout' < 5000
              @targettype 0x13b2 woodhue[]
              pause 150
            endwhile
            @canceltarget
            pause 500
            @useobject! 'Fletching Quest Giver'
            waitforgump 0xdf31ecf8 3000
            replygump 0xdf31ecf8 4
            waitforgump 0x96626c6e 3000
            replygump 0x96626c6e 1
            pause 1000
            //Ingenious I
          elseif @ingump 0x19bc4061 'such an instrument for me?'
            replygump 0x19bc4061 1
            pause 550
            while counttype 0xf50 'any' 'backpack' < 10
              usetype 0x1022 0 'backpack'
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 15
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 9
              waitforgump 0x38920abd 5000
            endwhile
            waitforcontext 'self' 4 5000
            waitfortarget 5000
            settimer 'toggletimeout' 0
            while @counttype 0xf50 0x4ea 'backpack' != 10 and timer 'toggletimeout' < 5000
              @targettype 0xf50 woodhue[]
              pause 150
            endwhile
            @canceltarget
            pause 500
            @useobject! 'Fletching Quest Giver'
            waitforgump 0xdf31ecf8 3000
            replygump 0xdf31ecf8 4
            waitforgump 0x96626c6e 3000
            replygump 0x96626c6e 1
            pause 1000
            //Ingenious I already in progress
          elseif @ingump 0xa8b319c6 'debt if you bring me crossbows'
            while counttype 0xf50 'any' 'backpack' < 10
              usetype 0x1022 0 'backpack'
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 15
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 9
              waitforgump 0x38920abd 5000
            endwhile
            waitforcontext 'self' 4 5000
            waitfortarget 5000
            settimer 'toggletimeout' 0
            while @counttype 0xf50 0x4ea 'backpack' != 10 and timer 'toggletimeout' < 5000
              @targettype 0xf50 woodhue[]
              pause 150
            endwhile
            @canceltarget
            pause 500
            @useobject! 'Fletching Quest Giver'
            waitforgump 0xdf31ecf8 3000
            replygump 0xdf31ecf8 4
            waitforgump 0x96626c6e 3000
            replygump 0x96626c6e 1
            pause 1000
            //Ingenious 2
          elseif @ingump 0x19bc4061 'remarkable instrument of war'
            replygump 0x19bc4061 1
            pause 550
            while counttype 0x13fd 'any' 'backpack' < 8
              usetype 0x1022 0 'backpack'
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 15
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 16
              waitforgump 0x38920abd 5000
            endwhile
            waitforcontext 'self' 4 5000
            waitfortarget 5000
            settimer 'toggletimeout' 0
            while @counttype 0x13fd 0x4ea 'backpack' != 8 and timer 'toggletimeout' < 5000
              @targettype 0x13fd woodhue[]
              pause 150
            endwhile
            @canceltarget
            pause 500
            @useobject! 'Fletching Quest Giver'
            waitforgump 0xdf31ecf8 3000
            replygump 0xdf31ecf8 4
            waitforgump 0x96626c6e 3000
            replygump 0x96626c6e 1
            pause 1000
            //Ingenious 2 already in progress
          elseif @ingump 0xa8b319c6 'debt if you bring me heavy crossbows'
            while counttype 0x13fd 'any' 'backpack' < 8
              usetype 0x1022 0 'backpack'
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 15
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 16
              waitforgump 0x38920abd 5000
            endwhile
            waitforcontext 'self' 4 5000
            waitfortarget 5000
            settimer 'toggletimeout' 0
            while @counttype 0x13fd 0x4ea 'backpack' != 8 and timer 'toggletimeout' < 5000
              @targettype 0x13fd woodhue[]
              pause 150
            endwhile
            @canceltarget
            pause 500
            @useobject! 'Fletching Quest Giver'
            waitforgump 0xdf31ecf8 3000
            replygump 0xdf31ecf8 4
            waitforgump 0x96626c6e 3000
            replygump 0x96626c6e 1
            pause 1000
            //Ingenious 3
          elseif @ingump 0x19bc4061 'remarkable human ingenuity'
            replygump 0x19bc4061 1
            pause 550
            while counttype 0x26c3 'any' 'backpack' < 10
              usetype 0x1022 0 'backpack'
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 15
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 30
              waitforgump 0x38920abd 5000
            endwhile
            waitforcontext 'self' 4 5000
            waitfortarget 5000
            settimer 'toggletimeout' 0
            while @counttype 0x26c3 0x4ea 'backpack' != 10 and timer 'toggletimeout' < 5000
              @targettype 0x26c3 woodhue[]
              pause 150
            endwhile
            @canceltarget
            pause 500
            @useobject! 'Fletching Quest Giver'
            waitforgump 0xdf31ecf8 3000
            replygump 0xdf31ecf8 4
            waitforgump 0x96626c6e 3000
            replygump 0x96626c6e 1
            pause 1000
            //Ingenious 3 already in progress
          elseif @ingump 0xa8b319c6 'debt if you bring me repeating crossbows'
            while counttype 0x26c3 'any' 'backpack' < 10
              usetype 0x1022 0 'backpack'
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 15
              waitforgump 0x38920abd 5000
              replygump 0x38920abd 30
              waitforgump 0x38920abd 5000
            endwhile
            waitforcontext 'self' 4 5000
            waitfortarget 5000
            settimer 'toggletimeout' 0
            while @counttype 0x26c3 0x4ea 'backpack' != 10 and timer 'toggletimeout' < 5000
              @targettype 0x26c3 woodhue[]
              pause 150
            endwhile
            @canceltarget
            pause 500
            @useobject! 'Fletching Quest Giver'
            waitforgump 0xdf31ecf8 3000
            replygump 0xdf31ecf8 4
            waitforgump 0x96626c6e 3000
            replygump 0x96626c6e 1
            pause 1000
            //LethalDart
          elseif @ingump 0x19bc4061 'deadly crossbow bolt'
            if @findtype 0x1bfb 'any' 'backpack' 10
              replygump 0x19bc4061 1
              pause 550
              pause 300
              if color 'found' == 0
                waitforcontext 'self' 4 5000
                waitfortarget 5000
                Target! 'found'
                waitfortarget 5000
              endif
            endif
            @canceltarget
            pause 500
            @useobject! 'Fletching Quest Giver'
            waitforgump 0xdf31ecf8 3000
            replygump 0xdf31ecf8 4
            waitforgump 0x96626c6e 3000
            replygump 0x96626c6e 1
            pause 1000
            //LethalDart in progress
          elseif @ingump 0xa8b319c6 'debt if you bring me crossbow bolts'
            if @findtype 0x1bfb 'any' 'backpack' 10
              pause 300
              if color 'found' == 0
                waitforcontext 'self' 4 5000
                waitfortarget 5000
                Target! 'found'
                waitfortarget 5000
              endif
            endif
            @canceltarget
            pause 500
            @useobject! 'Fletching Quest Giver'
            waitforgump 0xdf31ecf8 3000
            replygump 0xdf31ecf8 4
            waitforgump 0x96626c6e 3000
            replygump 0x96626c6e 1
            pause 1000
            //quest done except for talking to quest giver again
          elseif @ingump 0xdf31ecf8 'My thanks'
            replygump 0xdf31ecf8 4
            waitforgump 0x96626c6e 3000
            replygump 0x96626c6e 1
            //refuse Harp quest so not obscuring screen
          elseif @ingump 0x19bc4061 'melodious of music'
            replygump 0x19bc4061 2
            waitforgump 0xa8b319c6 3000
            replygump 0xa8b319c6 3
          endif
          // Handle reward bags
          while @findtype 0xe75 'any' 'backpack'
            pause 550
            @setalias 'trash' 'found'
            @useobject! 'trash'
            pause 550
            // fletcher Runics
            while @findtype 0x1022 'any' 'trash'
              @moveitem! 'found' 'backpack'
              pause 1000
              if color 'found' == 2010
                //uncomment this next line to throw Oak kits on the ground
                moveitemoffset 'found' 'ground' (0 2 0)
                pause 550
              elseif color 'found' == 1191
                //uncomment this next line to throw Ash kits on the ground
                //moveitemoffset 'found' 'ground' (0 2 0)
                pause 550
              elseif color 'found' == 1192
                msg 'Nice, a Yew kit' 33
              elseif color 'found' == 1193
                msg 'Woohoo! Heartwood!' 63
              endif
              ignoreobject 'found'
            endwhile
            // Talismans
            for 0 to 'Talismans'
              while @findtype Talismans[] 0 'trash'
                waitforproperties 'found' 15000
                //crafting bonus and exceptional bonus talismans
                if @property 'Tinkering Exceptional Bonus' 'found' >= 20 and @property 'Tinkering Bonus' 'found' >= 20
                  @moveitem! 'found' 'backpack'
                  pause 1000
                  break
                elseif @property 'Alchemy Bonus' 'found' >= 29 or @property 'Fletching Bonus' 'found' >= 29
                  @moveitem! 'found' 'backpack'
                  pause 1000
                  break
                elseif @property 'Fletching Exceptional Bonus' 'found' >= 20 and @property 'Fletching Bonus' 'found' >= 20
                  @moveitem! 'found' 'backpack'
                  pause 1000
                  break
                elseif @property 'Tailoring Exceptional Bonus' 'found' >= 20 and @property 'Tailoring Bonus' 'found' >= 20
                  @moveitem! 'found' 'backpack'
                  pause 1000
                  break
                elseif @property 'Carpentry Exceptional Bonus' 'found' >= 20 and @property 'Carpentry Bonus' 'found' >= 20
                  @moveitem! 'found' 'backpack'
                  pause 1000
                  break
                elseif @property 'Inscription Bonus' 'found' >= 29 or @property 'Cooking Bonus' 'found' >= 29
                  @moveitem! 'found' 'backpack'
                  pause 1000
                  break
                elseif @property 'Blacksmithing Exceptional Bonus' 'found' >= 20 and @property 'Blacksmithing Bonus' 'found' >= 20
                  @moveitem! 'found' 'backpack'
                  pause 1000
                  break
                endif
                //get slayers
                for 0 to 'Slayers'
                  if @property Slayers[] 'found'
                    @moveitem! 'found' 'backpack'
                    pause 1000
                    break
                  endif
                endfor
                //get killers
                for 0 to 'Killers'
                  if @property Killers[] 'found' >= 90
                    @moveitem! 'found' 'backpack'
                    pause 1000
                    break
                  endif
                endfor
                //get protections
                for 0 to 'Protection'
                  if @property Protection[] 'found' >= 50
                    @moveitem! 'found' 'backpack'
                    pause 1000
                    break
                  endif
                endfor
                ignoreobject 'found'
              endwhile
            endfor
            //Jewels
            for 0 to 'Jewelry'
              while @findtype Jewelry[] 0 'trash'
                waitforproperties 'found' 15000
                //EP DI jewels
                if @property 'Enhance Potions' 'found' >= 15 and @property 'Damage Increase' 'found' >= 15
                  @moveitem! 'found' 'backpack'
                  pause 1000
                  break
                endif
                if @property 'Faster Cast Recovery' 'found' == 3
                  @moveitem! 'found' 'backpack'
                  pause 1000
                  break
                endif
                //save 1/2 and 1/1
                if @property 'Faster Cast Recovery' 'found' > 0 and @property 'Faster Casting' 'found'
                  @moveitem! 'found' 'backpack'
                  pause 1000
                  break
                endif
                //hci and dci jewels, other usable hci dci jewels will be captured by above
                if @property 'Defense chance increase' 'found' >= 10 and @property 'Hit chance increase' 'found' >= 5
                  @moveitem! 'found' 'backpack'
                  pause 1000
                  break
                endif
                if @property 'Hit chance increase' 'found' >= 12
                  @moveitem! 'found' 'backpack'
                  pause 1000
                  break
                endif
                ignoreobject 'found'
              endwhile
            endfor
            clearignorelist
            @moveitem! 'trash' 'Trash Barrel'
            pause 550
          endwhile
        else
          // if you're not at Trash Barrel or FletcherDropoff, then stop
          sysmsg 'You need to be next to the Trash Barrel or your FletcherDropoff container when starting this macro' 33
          stop
        endif
      endfor
    endfor
  endfor
endfor
Never forget June 4th 1989!
Selling List & Vendor

"Screenshots will never be used as evidence but more of a reference tool for us to help in our investigations."
Janky likes this.
Top
Post Reply