Announcement

Collapse
No announcement yet.

Heartwood Runic Quest Script

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Heartwood Runic Quest Script

    It works great, excpet for the part where it keeps throwing all the runic rewards in the thrash.
    Anyone know why it keeps throwing everything away?



    //1. Character needs Fletching, Carpentry 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. First time you are setting alias for new beetle, play macro while dismounted.

    @setalias 'FletcherDropoff'

    @setalias 'beetle'

    @setalias 'FletcherRunebook'

    @removelist 'woodhue'

    @removelist 'magechiv'

    @createlist 'woodhue'

    @createlist 'magechiv'

    //plain=0, oak=2010, ash=1191 | mage=5,11 chiv = 7,13 | bond = 10, unbond = 9

    @pushlist 'woodhue' 0

    @pushlist 'magechiv' 5

    @pushlist 'magechiv' 11

    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' 'Giant Black Widow 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 'Recipes'

    @createlist 'Recipes'

    //@pushlist 'Recipes' 'Acid Proof Rope'

    //@pushlist 'Recipes' 'Ancient Wild Staff'

    //@pushlist 'Recipes' 'Arcane Bookshelf'

    //@pushlist 'Recipes' "Arcanist's Wild Staff"

    //@pushlist 'Recipes' 'Bramble Coat'

    //@pushlist 'Recipes' 'Elven Armoire'

    //@pushlist 'Recipes' 'Elven Dresser'

    //@pushlist 'Recipes' 'Hardened Wild Staff'

    //@pushlist 'Recipes' 'Ironwood Crown'

    //@pushlist 'Recipes' 'Ornate Elven Chair'

    //@pushlist 'Recipes' 'Ornate Elven Chest'

    //@pushlist 'Recipes' 'Phantom Staff'

    //@pushlist 'Recipes' 'Squirrel Statue'

    //@pushlist 'Recipes' 'Tall Elven Bed'

    //@pushlist 'Recipes' 'Thorned Wild Staff'

    //@pushlist 'Recipes' 'Warrior Statue'

    //@pushlist 'Recipes' "Assassin's Shortbow"

    //@pushlist 'Recipes' 'Barbed Longbow'

    //@pushlist 'Recipes' 'Blight Gripped Longbow'

    //@pushlist 'Recipes' 'Faerie Fire'

    //@pushlist 'Recipes' 'Frozen Longbow'

    //@pushlist 'Recipes' 'Lightweight Shortbow'

    //@pushlist 'Recipes' 'Longbow of Might'

    //@pushlist 'Recipes' 'Mischief Maker'

    //@pushlist 'Recipes' 'Mystical Shortbow'

    //@pushlist 'Recipes' "Ranger's Shortbow"

    //@pushlist 'Recipes' "Silvani's Feywood Bow"

    //@pushlist 'Recipes' 'Slayer Longbow'

    //@pushlist 'Recipes' 'The Night Reaper'

    endif

    if not listexists 'Talismans'

    @createlist 'Talismans'

    @pushlist 'Talismans' 0x2f58

    @pushlist 'Talismans' 0x2f59

    @pushlist 'Talismans' 0x2f5a

    @pushlist 'Talismans' 0x2f5b

    endif

    if not listexists 'Jewelry'

    @createlist 'Jewelry'

    @pushlist 'Jewelry' 0x108a

    @pushlist 'Jewelry' 0x1f09

    @pushlist 'Jewelry' 0x1086

    @pushlist 'Jewelry' 0x1f06

    endif

    if not timerexists 'Carpentry'

    createtimer 'Carpentry'

    endif

    if not timerexists 'carptry'

    createtimer 'carptry'

    endif

    if not timerexists 'toggletimeout'

    createtimer 'toggletimeout'

    endif

    //stop if you lack skills

    if skill 'Carpentry' < 30 or skill 'Tinkering' < 45

    sysmsg 'You need 36 Carpentry and 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 before starting!' 33

    stop

    endif

    clearignorelist

    // make tinker tools

    if @counttype 0x1eb8 0 'backpack' < 2 and not @inrange 'FletcherDropoff' 2

    pause 550

    while @counttype 0x1eb8 0 'backpack' < 2

    usetype! 0x1eb8

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 23

    endwhile

    endif

    //make saws

    if @counttype 0x1034 0 'backpack' < 3 and not @inrange 'FletcherDropoff' 2

    while @counttype 0x1034 0 'backpack' < 3

    pause 550

    usetype! 0x1eb8

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 51

    waitforgump 0x38920abd 2000

    endwhile

    endif

    // make plain fletcher kits

    if @counttype 0x1022 0 'backpack' < 3 and not @inrange 'FletcherDropoff' 2

    while @counttype 0x1022 0 'backpack' < 3

    pause 550

    usetype! 0x1eb8

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 142

    endwhile

    endif

    if @findtype 0xe75 'any' 'backpack' and not @inrange 'FletcherDropoff' 2

    if @injournal 'The world will save in 10 seconds.' 'system'

    while not @injournal 'world save complete' 'system'

    endwhile

    @clearjournal

    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 in the trash

    //@moveitem! 'found' 'Trash Barrel'

    pause 550

    elseif color 'found' == 1191

    //uncomment this next line to throw Ash kits in the trash

    //@moveitem! 'found' 'Trash Barrel'

    pause 550

    elseif color 'found' == 1192

    sysmsg 'Nice, a Yew kit' 33

    elseif color 'found' == 1193

    for 10

    sysmsg 'Woohoo! Heartwood!' 63

    endfor

    endif

    ignoreobject 'found'

    endwhile

    //runic saws

    while @findtype 0x1028 'any' 'trash'

    @moveitem! 'found' 'backpack'

    pause 1000

    if color 'found' == 2010

    //uncomment this next line to throw Oak saws in the trash

    //@moveitem! 'found' 'Trash Barrel'

    pause 550

    elseif color 'found' == 1191

    //uncomment this next line to throw Ash saws in the trash

    //@moveitem! 'found' 'Trash Barrel'

    pause 550

    elseif color 'found' == 1192

    sysmsg 'Nice, a Yew saw' 33

    elseif color 'found' == 1193

    for 10

    sysmsg 'Woohoo! Heartwood!' 63

    endfor

    endif

    ignoreobject 'found'

    endwhile

    //recipes

    while @findtype 0x2831 0 'trash'

    waitforproperties 'found' 15000

    for 0 to 'Recipes'

    if @property Recipes[] 'found'

    @moveitem! 'found' 'backpack'

    pause 1000

    break

    endif

    endfor

    ignoreobject 'found'

    endwhile

    // Talismans

    for 0 to 'Talismans'

    while @findtype Talismans[] 0 'trash'

    waitforproperties 'found' 15000

    //crafting bonus and exceptional bonus talismans, set to your liking

    if @property 'Tinkering Exceptional Bonus' 'found' >= 23 and @property 'Tinkering Bonus' 'found' >= 23

    @moveitem! 'found' 'backpack'

    pause 1000

    break

    elseif @property 'Alchemy Bonus' 'found' >= 30 or @property 'Fletching Bonus' 'found' >= 30

    @moveitem! 'found' 'backpack'

    pause 1000

    break

    elseif @property 'Fletching Exceptional Bonus' 'found' >= 23 and @property 'Fletching Bonus' 'found' >= 23

    @moveitem! 'found' 'backpack'

    pause 1000

    break

    elseif @property 'Tailoring Exceptional Bonus' 'found' >= 23 and @property 'Tailoring Bonus' 'found' >= 23

    @moveitem! 'found' 'backpack'

    pause 1000

    break

    elseif @property 'Carpentry Exceptional Bonus' 'found' >= 23 and @property 'Carpentry Bonus' 'found' >= 23

    @moveitem! 'found' 'backpack'

    pause 1000

    break

    elseif @property 'Inscription Bonus' 'found' >= 30 or @property 'Cooking Bonus' 'found' >= 30

    @moveitem! 'found' 'backpack'

    pause 1000

    break

    elseif @property 'Blacksmithing Exceptional Bonus' 'found' >= 23 and @property 'Blacksmithing Bonus' 'found' >= 23

    @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' >= 98

    @moveitem! 'found' 'backpack'

    pause 1000

    break

    endif

    endfor

    //get protections

    for 0 to 'Protection'

    if @property Protection[] 'found' >= 59

    @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' >= 10 and @property 'Defense chance increase' 'found' >= 5

    @moveitem! 'found' 'backpack'

    pause 1000

    break

    endif

    ignoreobject 'found'

    endwhile

    endfor

    //clear the ignore list so it doesn't skip items at dropoff

    clearignorelist

    if @inrange 'Trash Barrel' 2

    @moveitem! 'trash' 'Trash Barrel'

    pause 550

    else

    @unsetalias 'dump'

    while @findtype 0xe75 'any' 'ground' 1 2 and not @findalias 'dump'

    waitforproperties 'found' 5000

    if @property 'items' 'found' < 115

    @setalias 'dump' 'found'

    else

    @ignoreobject 'found'

    endif

    endwhile

    if @findalias 'dump'

    @moveitem 'trash' 'dump'

    pause 550

    else

    moveitemoffset 'trash' 'ground' [(0 1 0)]

    pause 550

    endif

    endwhile

    endif

    //if at home, unload and restock

    elseif @inrange 'FletcherDropoff' 2

    //open containers

    useobject 'self'

    pause 1000

    useobject 'FletcherDropoff'

    pause 1000

    waitforproperties 'beetle' 5000

    if @property 'bonded' 'beetle'

    waitforcontext 'beetle' 10 15000

    else

    waitforcontext 'beetle' 9 15000

    endif

    pause 1000

    //unload jewels and talismans

    for 0 to 'Talismans'

    for 0 to 'Jewelry'

    if @findtype Jewelry[] 'any' 'backpack' or @findtype Talismans[] 'any' 'backpack'

    moveitem 'found' 'FletcherDropoff'

    pause 500

    endif

    endfor

    endfor

    //unload saws and kits

    clearignorelist

    while @findtype 0x1028 'any' 'backpack' or @findtype 0x1022 'any' 'backpack'

    if color 'found' == 0

    ignoreobject 'found'

    else

    moveitem 'found' 'FletcherDropoff'

    pause 500

    endif

    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

    if counttype 0x1bd7 woodhue[0] 'FletcherDropoff' < 1900

    sysmsg 'Out of Boards!' 33

    useobject 'beetle'

    //@playmacro 'Lumberjacking'

    while counttype 0x1bd7 woodhue[0] 'FletcherDropoff' < 1900

    pause 20000

    endwhile

    endif

    //fill beetle with boards

    if mounted 'self'

    pause 550

    useobject 'self'

    pause 1000

    waitforproperties 'beetle' 5000

    if @property 'bonded' 'beetle'

    waitforcontext 'beetle' 10 15000

    else

    waitforcontext 'beetle' 9 15000

    endif

    endif

    if @movetype 0x1bd7 'FletcherDropoff' 'beetle' 0 0 0 woodhue[0] 1600

    pause 750

    else

    useobject 'FletcherDropoff'

    pause 550

    waitforcontents 'FletcherDropoff' 5000

    for 4

    if @movetype 0x1bd7 'FletcherDropoff' 'backpack' 0 0 0 woodhue[0] 400 and @property 'Stones' 'beetle' < 1600

    pause 750

    endif

    endfor

    for 4

    if @movetype 0x1bd7 'FletcherDropoff' 'backpack' 0 0 0 woodhue[0] 100 and @property 'Stones' 'beetle' < 1600

    pause 750

    endif

    endfor

    for 4

    if @movetype 0x1bd7 'FletcherDropoff' 'backpack' 0 0 0 woodhue[0] 25 and @property 'Stones' 'beetle' < 1600

    pause 750

    endif

    endfor

    for 5

    if @movetype 0x1bd7 'FletcherDropoff' 'backpack' 0 0 0 woodhue[0] 5 and @property 'Stones' 'beetle' < 1600

    pause 750

    endif

    endfor

    for 5

    if @movetype 0x1bd7 'FletcherDropoff' 'backpack' 0 0 0 woodhue[0] 1 and @property 'Stones' 'beetle' < 1600

    pause 750

    endif

    endfor

    @canceltarget

    endif

    //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[0] 350

    pause 1000

    //max weight minus 300

    elseif weight < 225

    movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[0] 300

    pause 1000

    //max weight minus 250

    elseif weight < 275

    movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[0] 250

    pause 1000

    //max weight minus 200

    elseif weight < 325

    movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[0] 200

    pause 1000

    //max weight minus 150

    elseif weight < 375

    movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[0] 150

    pause 1000

    //max weight minus 100

    elseif weight < 425

    movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[0] 100

    pause 1000

    elseif counttype 0x1bd7 woodhue[0] 'backpack' < 1

    movetype 0x1bd7 'FletcherDropoff' 'backpack' (0 0 0) woodhue[0] 1

    pause 1000

    endif

    //set fletching kits and saws 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

    usetype! 0x1034

    waitforgump 0x38920abd 1000

    @replygump 0x38920abd 7

    waitforgump 0x38920abd 1000

    @replygump 0x38920abd 6

    waitforgump 0x38920abd 1000

    pause 550

    //warn if other color boards, bows, stools in place

    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'

    if skill 'Carpentry' < 65

    sysmsg 'You need 65 Carpentry to craft with Oak' 33

    stop

    else

    pause 550

    usetype! 0x1022

    waitforgump 0x38920abd 1000

    @replygump 0x38920abd 7

    waitforgump 0x38920abd 1000

    @replygump 0x38920abd 13

    waitforgump 0x38920abd 1000

    pause 550

    usetype! 0x1034

    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

    endif

    elseif @findtype 0x1bd7 1191 'backpack'

    if skill 'Carpentry' < 80

    sysmsg 'You need 80 Carpentry to craft with Ash' 33

    stop

    else

    pause 550

    usetype! 0x1022

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 7

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 20

    waitforgump 0x38920abd 2000

    pause 550

    usetype! 0x1034

    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

    endif

    //mount beetle and recall back to heartwood

    if @injournal 'The world will save in 10 seconds.' 'system'

    while not @injournal 'world save complete' 'system'

    endwhile

    @clearjournal

    endif

    useobject 'beetle'

    pause 2000

    @unsetalias 'restockyes'

    while @inrange 'FletcherDropoff' 5

    clearjournal

    useobject 'FletcherRunebook'

    waitforgump 0x554b87f3 15000

    @replygump 0x554b87f3 magechiv[1]

    pause 2000

    if @injournal 'blocked' 'system'

    sysmsg 'Rune blocked, trying again in 30 sec' 33

    pause 30000

    endif

    endwhile

    //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 < 372

    run 'southeast'

    //crafting while running southeast

    if @findalias 'bowquesting' and not @findalias 'bowsdone'

    if @gumpexists 0x38920abd and not @ingump 0x38920abd 'Faerie Fire'

    pause 550

    usetype 0x1022 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 15

    waitforgump 0x38920abd 2000

    endif

    endif

    if @gumpexists 0x38920abd

    if @ingump 0x38920abd 'Faerie Fire'

    if @findalias 'simplebow' and counttype 0x13b2 'any' 'backpack' < 10

    @replygump 0x38920abd 2

    elseif @findalias 'ingenious1' and counttype 0xf50 'any' 'backpack' < 10

    @replygump 0x38920abd 9

    elseif @findalias 'ingenious2' and counttype 0x13fd 'any' 'backpack' < 8

    @replygump 0x38920abd 16

    elseif @findalias 'ingenious3' and counttype 0x26c3 'any' 'backpack' < 10

    @replygump 0x38920abd 30

    elseif not @findalias 'bowsdone' and @findalias 'bowquesting'

    if @findalias 'simplebow' and counttype 0x13b2 'any' 'backpack' > 9

    @setalias 'bowsdone' 'self'

    elseif @findalias 'ingenious1' and counttype 0xf50 'any' 'backpack' > 9

    @setalias 'bowsdone' 'self'

    elseif @findalias 'ingenious2' and counttype 0x13fd 'any' 'backpack' > 7

    @setalias 'bowsdone' 'self'

    elseif @findalias 'ingenious3' and counttype 0x26c3 'any' 'backpack' > 9

    @setalias 'bowsdone' 'self'

    endif

    elseif counttype 0xb5e 'any' 'backpack' < 10

    pause 550

    usetype 0x1034 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    endif

    elseif counttype 0xb5e 'any' 'backpack' < 10 and @ingump 0x38920abd 'Magincia-style'

    @replygump 0x38920abd 2

    elseif counttype 0xb5e 'any' 'backpack' < 10

    if x > 7026

    pause 550

    endif

    usetype 0x1034 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    endif

    endif

    endwhile

    while y < 377

    run 'southwest'

    endwhile

    pause 250

    for 10

    while y < 378

    walk 'south'

    pause 300

    endwhile

    while y > 378

    walk 'north'

    pause 300

    endwhile

    endfor

    if timer 'Carpentry' > 30000

    while x > 7000

    run 'west'

    endwhile

    else

    while x < 7036

    run 'east'

    endwhile

    endif

    elseif @findalias 'restockyes' and counttype 0x1bd7 woodhue[0] 'backpack' < 10

    //leave heartwood

    if not mounted 'self'

    useobject 'beetle'

    pause 1000

    endif

    while x < 7024

    run 'east'

    endwhile

    while x > 7028

    run 'west'

    endwhile

    pause 300

    while y > 343

    run "Northwest"

    endwhile

    while x < 6989

    walk 'east'

    pause 150

    endwhile

    while x > 6989

    walk 'west'

    pause 150

    endwhile

    while y != 338 and y < 600

    for 10

    if y > 338 and y < 600

    walk 'north'

    pause 250

    endif

    if y < 338 and y < 600

    walk 'south'

    pause 250

    endif

    if x > 6989

    turn 'west'

    walk 'west'

    elseif x < 6989

    turn 'east'

    walk 'east'

    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

    //recall home

    if @injournal 'The world will save in 10 seconds.' 'system'

    while not @injournal 'world save complete' 'system'

    endwhile

    @clearjournal

    endif

    useobject 'FletcherRunebook'

    waitforgump 0x554b87f3 15000

    @replygump 0x554b87f3 magechiv[0]

    pause 2000

    while y == 994

    endwhile

    elseif counttype 0x1bd7 woodhue[0] 'backpack' < 10

    //get 200 boards from beetle

    if mounted 'self'

    pause 550

    useobject 'self'

    pause 1000

    endif

    waitforproperties 'beetle' 5000

    if @property 'bonded' 'beetle'

    waitforcontext 'beetle' 10 15000

    else

    waitforcontext 'beetle' 9 15000

    endif

    movetype 0x1bd7 'beetle' 'backpack' [(0 0 0)] woodhue[0] 200

    pause 1000

    if counttype 0x1bd7 woodhue[0] 'beetle' < 200

    @setalias 'restockyes' 'self'

    endif

    useobject 'beetle'

    pause 1000

    elseif x < 7038 and x > 7035

    clearignorelist

    if not @inrange 'A Trash Barrel' 2

    while @findtype 0xe7f 'any' 'ground' 'any' 2

    if @property 'A Trash Barrel' 'found'

    @setalias 'Trash Barrel' 'found'

    endif

    ignoreobject 'found'

    endwhile

    endif

    //wipe aliases if it thinks you're on two quests

    if @findalias 'simplebow' and @findalias 'ingenious1'

    @unsetalias 'bowquesting'

    @unsetalias 'simplebow'

    @unsetalias 'ingenious1'

    @unsetalias 'ingenious2'

    @unsetalias 'ingenious3'

    @unsetalias 'bowsdone'

    elseif @findalias 'simplebow' and @findalias 'ingenious2'

    @unsetalias 'bowquesting'

    @unsetalias 'simplebow'

    @unsetalias 'ingenious1'

    @unsetalias 'ingenious2'

    @unsetalias 'ingenious3'

    @unsetalias 'bowsdone'

    elseif @findalias 'simplebow' and @findalias 'ingenious3'

    @unsetalias 'bowquesting'

    @unsetalias 'simplebow'

    @unsetalias 'ingenious1'

    @unsetalias 'ingenious2'

    @unsetalias 'ingenious3'

    @unsetalias 'bowsdone'

    elseif @findalias 'ingenious1' and @findalias 'ingenious2'

    @unsetalias 'bowquesting'

    @unsetalias 'simplebow'

    @unsetalias 'ingenious1'

    @unsetalias 'ingenious2'

    @unsetalias 'ingenious3'

    @unsetalias 'bowsdone'

    elseif @findalias 'ingenious1' and @findalias 'ingenious3'

    @unsetalias 'bowquesting'

    @unsetalias 'simplebow'

    @unsetalias 'ingenious1'

    @unsetalias 'ingenious2'

    @unsetalias 'ingenious3'

    @unsetalias 'bowsdone'

    elseif @findalias 'ingenious2' and @findalias 'ingenious3'

    @unsetalias 'bowquesting'

    @unsetalias 'simplebow'

    @unsetalias 'ingenious1'

    @unsetalias 'ingenious2'

    @unsetalias 'ingenious3'

    @unsetalias 'bowsdone'

    endif

    //get a quest if not on one

    if not findalias 'bowquesting'

    if not @inrange 'Fletching Quest Giver' 10

    if not listexists 'npcbodies'

    @createlist 'npcbodies'

    //@pushlist 'npcbodies' 0x190

    // @pushlist 'npcbodies' 0x191

    @pushlist 'npcbodies' 0x25e

    @pushlist 'npcbodies' 0x25d

    endif

    clearignorelist

    for 0 to 'npcbodies'

    while @findtype npcbodies[] 'any' 'ground' 1 18

    waitforproperties 'found' 5000

    if not @property ',' 'found'

    if @property 'Jusae the bowcrafter' 'found' or @property 'Cillitha the bowcrafter' 'found'

    @setalias 'Fletching Quest Giver' 'found'

    endif

    endif

    ignoreobject 'found'

    endwhile

    endfor

    if not @inrange 'Fletching Quest Giver' 18

    sysmsg 'Fletching Quest Giver not found, please target' 34

    promptalias 'Fletching Quest Giver'

    endif

    endif

    @useobject 'Fletching Quest Giver'

    waitforgump 0x19bc4061 1000

    if @ingump 0x19bc4061 'crafted in the human style' or @ingump 0xa8b319c6 'debt if you bring me bows'

    if @gumpexists 0x19bc4061

    @replygump 0x19bc4061 1

    endif

    @setalias 'simplebow' 'self'

    @setalias 'bowquesting' 'self'

    pause 550

    elseif @ingump 0x19bc4061 'such an instrument for me?' or @ingump 0xa8b319c6 'debt if you bring me crossbows'

    if @gumpexists 0x19bc4061

    @replygump 0x19bc4061 1

    endif

    @setalias 'ingenious1' 'self'

    @setalias 'bowquesting' 'self'

    pause 550

    elseif @ingump 0x19bc4061 'remarkable instrument of war' or @ingump 0xa8b319c6 'debt if you bring me heavy crossbows'

    if @gumpexists 0x19bc4061

    @replygump 0x19bc4061 1

    endif

    @setalias 'ingenious2' 'self'

    @setalias 'bowquesting' 'self'

    pause 550

    elseif @ingump 0x19bc4061 'remarkable human ingenuity' or @ingump 0xa8b319c6 'debt if you bring me repeating crossbows'

    if @gumpexists 0x19bc4061

    @replygump 0x19bc4061 1

    endif

    @setalias 'ingenious3' 'self'

    @setalias 'bowquesting' 'self'

    pause 550

    elseif @ingump 0x19bc4061 'deadly crossbow bolt' or @ingump 0xa8b319c6 'debt if you bring me crossbow bolts'

    if @findtype 0x1bfb 'any' 'backpack' 10

    @replygump 0x19bc4061 1

    pause 550

    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 5000

    @replygump 0xdf31ecf8 4

    waitforgump 0x96626c6e 15000

    @replygump 0x96626c6e 1

    elseif @ingump 0xdf31ecf8 'My thanks'

    replygump 0xdf31ecf8 4

    waitforgump 0x96626c6e 3000

    replygump 0x96626c6e 1

    elseif @gumpexists 0x96626c6e

    replygump 0x96626c6e 1

    elseif @ingump 0x19bc4061 'melodious of muisc'

    @replygump 0x19bc4061 2

    waitforgump 0xa8b319c6 15000

    @replygump 0xa8b319c6 3

    endif

    endif

    //trigger to go check stool quest every 30 seconds, quests are available again every rand(1-5)*30sec

    if timer 'Carpentry' > 146000

    setalias 'checkcarp' 'self'

    sysmsg '150' 34

    elseif timer 'Carpentry' > 118000 and not @findalias '120no'

    setalias 'checkcarp' 'self'

    sysmsg '120' 34

    elseif timer 'Carpentry' > 88000 and not @findalias '90no'

    setalias 'checkcarp' 'self'

    sysmsg '90' 34

    elseif timer 'Carpentry' > 58000 and not @findalias '60no'

    setalias 'checkcarp' 'self'

    sysmsg '60' 34

    elseif timer 'Carpentry' > 28000 and not @findalias '30no'

    setalias 'checkcarp' 'self'

    sysmsg '30' 34

    endif

    if @gumpexists 0xa8b319c6

    @replygump 0xa8b319c6 3

    endif

    //complete quests if you have enough bows crafted

    if counttype 0x13b2 'any' 'backpack' > 9 and @findalias 'simplebow'

    waitforcontext 'self' 4 5000

    waitfortarget 5000

    settimer 'toggletimeout' 0

    while @counttype 0x13b2 0x4ea 'backpack' != 10 and timer 'toggletimeout' < 5000

    @targettype 0x13b2 woodhue[0]

    pause 150

    endwhile

    @canceltarget

    pause 500

    @useobject! 'Fletching Quest Giver'

    waitforgump 0xdf31ecf8 2000

    @replygump 0xdf31ecf8 4

    waitforgump 0x96626c6e 2000

    @replygump 0x96626c6e 1

    @unsetalias 'simplebow'

    @unsetalias 'bowquesting'

    @unsetalias 'bowsdone'

    pause 1000

    elseif counttype 0xf50 'any' 'backpack' > 9 and @findalias 'ingenious1'

    waitforcontext 'self' 4 5000

    waitfortarget 5000

    settimer 'toggletimeout' 0

    while @counttype 0xf50 0x4ea 'backpack' != 10 and timer 'toggletimeout' < 5000

    @targettype 0xf50 woodhue[0]

    pause 150

    endwhile

    @canceltarget

    pause 500

    @useobject! 'Fletching Quest Giver'

    waitforgump 0xdf31ecf8 2000

    @replygump 0xdf31ecf8 4

    waitforgump 0x96626c6e 2000

    @replygump 0x96626c6e 1

    @unsetalias 'ingenious1'

    @unsetalias 'bowquesting'

    @unsetalias 'bowsdone'

    pause 1000

    elseif counttype 0x13fd 'any' 'backpack' > 7 and @findalias 'ingenious2'

    waitforcontext 'self' 4 5000

    waitfortarget 5000

    settimer 'toggletimeout' 0

    while @counttype 0x13fd 0x4ea 'backpack' != 8 and timer 'toggletimeout' < 5000

    @targettype 0x13fd woodhue[0]

    pause 150

    endwhile

    @canceltarget

    pause 500

    @useobject! 'Fletching Quest Giver'

    waitforgump 0xdf31ecf8 2000

    @replygump 0xdf31ecf8 4

    waitforgump 0x96626c6e 2000

    @replygump 0x96626c6e 1

    @unsetalias 'ingenious2'

    @unsetalias 'bowquesting'

    @unsetalias 'bowsdone'

    pause 1000

    elseif counttype 0x26c3 'any' 'backpack' > 9 and @findalias 'ingenious3'

    waitforcontext 'self' 4 5000

    waitfortarget 5000

    settimer 'toggletimeout' 0

    while @counttype 0x26c3 0x4ea 'backpack' != 10 and timer 'toggletimeout' < 5000

    @targettype 0x26c3 woodhue[0]

    pause 150

    endwhile

    @canceltarget

    pause 500

    @useobject! 'Fletching Quest Giver'

    waitforgump 0xdf31ecf8 2000

    @replygump 0xdf31ecf8 4

    waitforgump 0x96626c6e 2000

    @replygump 0x96626c6e 1

    @unsetalias 'ingenious3'

    @unsetalias 'bowquesting'

    @unsetalias 'bowsdone'

    pause 1000

    //if you have trigger to go check carpentry, run west

    elseif @findalias 'checkcarp' and timer 'Carpentry' > 25000

    while @findtype '0x1bd7' woodhue[0] 'ground' 30 2 and counttype '0x1bd7' woodhue[0] 'backpack' < 190

    moveitem 'found' 'backpack'

    pause 550

    endwhile

    if counttype 0x1bd7 woodhue[0] 'backpack' < 50 and not @findalias 'restockyes'

    //get 200 boards from beetle

    if mounted 'self'

    pause 550

    useobject 'self'

    pause 1000

    endif

    waitforproperties 'beetle' 5000

    if @property 'bonded' 'beetle'

    waitforcontext 'beetle' 10 15000

    else

    waitforcontext 'beetle' 9 15000

    endif

    movetype 0x1bd7 'beetle' 'backpack' [(0 0 0)] woodhue[0] 200

    pause 1000

    if counttype 0x1bd7 woodhue[0] 'beetle' < 200

    @setalias 'restockyes' 'self'

    endif

    useobject 'beetle'

    pause 1000

    endif

    if @gumpexists 0x19bc4061

    @replygump 0x19bc4061 2

    waitforgump 0xa8b319c6 1000

    @replygump 0xa8b319c6 3

    endif

    while maxweight < weight

    movetypeoffset 0x1bd7 'backpack' 'ground' [(0 2 0)] woodhue[0] 30

    pause 550

    endwhile

    while x > 7000

    run 'west'

    //craft while running west

    if @findalias 'bowquesting' and not @findalias 'bowsdone'

    if @gumpexists 0x38920abd and not @ingump 0x38920abd 'Faerie Fire'

    pause 550

    usetype 0x1022 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 15

    waitforgump 0x38920abd 2000

    endif

    endif

    if @gumpexists 0x38920abd

    if @ingump 0x38920abd 'Faerie Fire'

    if @findalias 'simplebow' and counttype 0x13b2 'any' 'backpack' < 10

    @replygump 0x38920abd 2

    elseif @findalias 'ingenious1' and counttype 0xf50 'any' 'backpack' < 10

    @replygump 0x38920abd 9

    elseif @findalias 'ingenious2' and counttype 0x13fd 'any' 'backpack' < 8

    @replygump 0x38920abd 16

    elseif @findalias 'ingenious3' and counttype 0x26c3 'any' 'backpack' < 10

    @replygump 0x38920abd 30

    elseif not @findalias 'bowsdone' and @findalias 'bowquesting'

    if @findalias 'simplebow' and counttype 0x13b2 'any' 'backpack' > 9

    @setalias 'bowsdone' 'self'

    elseif @findalias 'ingenious1' and counttype 0xf50 'any' 'backpack' > 9

    @setalias 'bowsdone' 'self'

    elseif @findalias 'ingenious2' and counttype 0x13fd 'any' 'backpack' > 7

    @setalias 'bowsdone' 'self'

    elseif @findalias 'ingenious3' and counttype 0x26c3 'any' 'backpack' > 9

    @setalias 'bowsdone' 'self'

    endif

    elseif counttype 0xb5e 'any' 'backpack' < 10

    if x > 7026

    pause 550

    endif

    usetype 0x1034 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    endif

    elseif counttype 0xb5e 'any' 'backpack' < 10 and @ingump 0x38920abd 'Magincia-style'

    @replygump 0x38920abd 2

    elseif counttype 0xb5e 'any' 'backpack' < 10

    if x > 7026

    pause 550

    endif

    usetype 0x1034 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    endif

    endif

    endwhile

    else //at fletcher and not time for carp, craft bows

    if @findalias 'simplebow' and counttype 0x13b2 'any' 'backpack' < 10

    if not @gumpexists 0x38920abd

    usetype 0x1022 0 'backpack'

    waitforgump 0x38920abd 2000

    endif

    if @gumpexists 0x38920abd and not @ingump 0x38920abd 'Faerie Fire'

    usetype 0x1022 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 15

    waitforgump 0x38920abd 2000

    endif

    @replygump 0x38920abd 2

    waitforgump 0x38920abd 2000

    elseif @findalias 'ingenious1' and counttype 0xf50 'any' 'backpack' < 10

    if not @gumpexists 0x38920abd

    usetype 0x1022 0 'backpack'

    waitforgump 0x38920abd 2000

    endif

    if @gumpexists 0x38920abd and not @ingump 0x38920abd 'Faerie Fire'

    usetype 0x1022 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 15

    waitforgump 0x38920abd 2000

    endif

    @replygump 0x38920abd 9

    waitforgump 0x38920abd 2000

    elseif @findalias 'ingenious2' and counttype 0x13fd 'any' 'backpack' < 8

    if not @gumpexists 0x38920abd

    usetype 0x1022 0 'backpack'

    waitforgump 0x38920abd 2000

    endif

    if @gumpexists 0x38920abd and not @ingump 0x38920abd 'Faerie Fire'

    usetype 0x1022 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 15

    waitforgump 0x38920abd 2000

    endif

    @replygump 0x38920abd 16

    waitforgump 0x38920abd 2000

    elseif @findalias 'ingenious3' and counttype 0x26c3 'any' 'backpack' < 10

    if not @gumpexists 0x38920abd

    usetype 0x1022 0 'backpack'

    waitforgump 0x38920abd 2000

    endif

    if @gumpexists 0x38920abd and not @ingump 0x38920abd 'Faerie Fire'

    usetype 0x1022 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 15

    waitforgump 0x38920abd 2000

    endif

    @replygump 0x38920abd 30

    waitforgump 0x38920abd 2000

    elseif counttype 0xb5e 'any' 'backpack' < 10 and @ingump 0x38920abd 'Magincia-style'

    @replygump 0x38920abd 2

    waitforgump 0x38920abd 2000

    elseif counttype 0xb5e 'any' 'backpack' < 10

    pause 550

    usetype 0x1034 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    endif

    endif

    elseif x < 7009 and x > 6993

    if not @inrange 'Carpentry Quest Giver' 10

    if not listexists 'npcbodies'

    @createlist 'npcbodies'

    //@pushlist 'npcbodies' 0x190

    // @pushlist 'npcbodies' 0x191

    @pushlist 'npcbodies' 0x25e

    @pushlist 'npcbodies' 0x25d

    endif

    clearignorelist

    for 0 to 'npcbodies'

    while @findtype npcbodies[] 'any' 'ground' 1 18

    waitforproperties 'found' 5000

    if not @property ',' 'found'

    if @property 'Waelian the Trinket Weaver' 'found' or @property 'Sleen the Trinket Qeaver' 'found'

    @setalias 'Carpentry Quest Giver' 'found'

    endif

    endif

    ignoreobject 'found'

    endwhile

    endfor

    if not @inrange 'Carpentry Quest Giver' 10

    sysmsg 'Carpentry Quest Giver not found, please target' 34

    promptalias 'Carpentry Quest Giver'

    endif

    endif

    if timer 'Carpentry' > 30000

    settimer 'carptry' 0

    @unsetalias 'checkcarp'

    usetype 0x1022 0 'backpack'

    //try to get footstools for 5 seconds

    while timer 'carptry' < 5000 and not @ingump 0x19bc4061 'foot stools'

    if @gumpexists 0xa8b319c6

    settimer 'carptry' 5500

    endif

    @useobject 'Carpentry Quest Giver'

    //craft while trying quest

    if @gumpexists 0xdf31ecf8

    replygump 0xdf31ecf8 4

    waitforgump 0x96626c6e 5000

    replygump 0x96626c6e 1

    endif

    if @findalias 'bowquesting' and not @findalias 'bowsdone'

    if @gumpexists 0x38920abd and not @ingump 0x38920abd 'Faerie Fire'

    pause 550

    usetype 0x1022 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 15

    waitforgump 0x38920abd 2000

    endif

    endif

    if @gumpexists 0x38920abd

    if @ingump 0x38920abd 'Faerie Fire'

    if @findalias 'simplebow' and counttype 0x13b2 'any' 'backpack' < 10

    @replygump 0x38920abd 2

    elseif @findalias 'ingenious1' and counttype 0xf50 'any' 'backpack' < 10

    @replygump 0x38920abd 9

    elseif @findalias 'ingenious2' and counttype 0x13fd 'any' 'backpack' < 8

    @replygump 0x38920abd 16

    elseif @findalias 'ingenious3' and counttype 0x26c3 'any' 'backpack' < 10

    @replygump 0x38920abd 30

    elseif not @findalias 'bowsdone' and @findalias 'bowquesting'

    if @findalias 'simplebow' and counttype 0x13b2 'any' 'backpack' > 9

    @setalias 'bowsdone' 'self'

    elseif @findalias 'ingenious1' and counttype 0xf50 'any' 'backpack' > 9

    @setalias 'bowsdone' 'self'

    elseif @findalias 'ingenious2' and counttype 0x13fd 'any' 'backpack' > 7

    @setalias 'bowsdone' 'self'

    elseif @findalias 'ingenious3' and counttype 0x26c3 'any' 'backpack' > 9

    @setalias 'bowsdone' 'self'

    endif

    elseif counttype 0xb5e 'any' 'backpack' < 10

    waitforgump 0x38920abd 2000

    pause 550

    usetype 0x1034 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    endif

    elseif counttype 0xb5e 'any' 'backpack' < 10 and @ingump 0x38920abd 'Magincia-style'

    @replygump 0x38920abd 2

    elseif counttype 0xb5e 'any' 'backpack' < 10

    pause 550

    usetype 0x1034 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    endif

    endif

    endwhile

    if timer 'Carpentry' > 150000 and not @gumpexists 0xa8b319c6

    while not @ingump 0x19bc4061 'foot stools' and not @ingump 0xdf31ecf8 'my thanks'

    @useobject 'Carpentry Quest Giver'

    if timer 'carptry' > 20000

    break

    endif

    endwhile

    endif

    if @gumpexists 0xdf31ecf8

    replygump 0xdf31ecf8 4

    waitforgump 0x96626c6e 5000

    replygump 0x96626c6e 1

    elseif @gumpexists 0x96626c6e

    replygump 0x96626c6e 1

    endif

    if @gumpexists 0xa8b319c6 or @ingump 0x19bc4061 'just for weary toes'

    if @gumpexists 0x19bc4061 and @ingump 0x19bc4061 'just for weary toes'

    @replygump 0x19bc4061 1

    endif

    if not @findalias 'restockyes'

    while @counttype 0xb5e 'any' 'backpack' < 10

    //get 200 boards from beetle if needed

    while counttype 0x1bd7 woodhue[0] 'backpack' < 10 and not @findalias 'restockyes'

    if mounted 'self'

    pause 550

    useobject 'self'

    pause 1000

    endif

    waitforproperties 'beetle' 5000

    if @property 'bonded' 'beetle'

    waitforcontext 'beetle' 10 15000

    else

    waitforcontext 'beetle' 9 15000

    endif

    movetype 0x1bd7 'beetle' 'backpack' [(0 0 0)] woodhue[0] 200

    pause 1000

    if counttype 0x1bd7 woodhue[0] 'beetle' < 200

    @setalias 'restockyes' 'self'

    endif

    useobject 'beetle'

    pause 1000

    endwhile

    if @gumpexists 0x38920abd and @ingump 0x38920abd 'Magincia-style'

    @replygump 0x38920abd 2

    waitforgump 0x38920abd 2000

    else

    waitforgump 0x38920abd 2000

    pause 550

    usetype 0x1034 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    endif

    endwhile

    waitforcontext 'self' 4 5000

    waitfortarget 5000

    settimer 'toggletimeout' 0

    while @counttype 0xb5e 1258 'backpack' != 10 and timer 'toggletimeout' < 5000

    @targettype 0xb5e 0

    @targettype 0xb5e 2010

    @targettype 0xb5e 1191

    pause 150

    endwhile

    @canceltarget

    pause 500

    @useobject! 'Carpentry Quest Giver'

    waitforgump 0xdf31ecf8 5000

    @replygump 0xdf31ecf8 4

    waitforgump 0x96626c6e 5000

    @replygump 0x96626c6e 1

    pause 300

    settimer 'Carpentry' 0

    @unsetalias '30no'

    @unsetalias '60no'

    @unsetalias '90no'

    @unsetalias '120no'

    else //if not enough boards then craft til you're out

    while @counttype 0x1bd7 woodhue[0] 'backpack' > 9 and @counttype 0xb5e 'any' 'backpack' < 10

    usetype 0x1034 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 2

    waitforgump 0x38920abd 2000

    endwhile

    if @counttype 0xb5e 'any' 'backpack' > 9

    waitforcontext 'self' 4 5000

    waitfortarget 5000

    settimer 'toggletimeout' 0

    while @counttype 0xb5e 1258 'backpack' != 10 and timer 'toggletimeout' < 5000

    @targettype 0xb5e 0

    @targettype 0xb5e 2010

    @targettype 0xb5e 1191

    pause 150

    endwhile

    @canceltarget

    pause 500

    @useobject! 'Carpentry Quest Giver'

    waitforgump 0xdf31ecf8 5000

    @replygump 0xdf31ecf8 4

    waitforgump 0x96626c6e 5000

    @replygump 0x96626c6e 1

    pause 300

    settimer 'Carpentry' 0

    @unsetalias '30no'

    @unsetalias '60no'

    @unsetalias '90no'

    @unsetalias '120no'

    endif

    endif

    else //if no quest yet, mark that time as no

    if timer 'Carpentry' > 120000

    setalias '120no' 'self'

    @setalias '90no' 'self'

    @setalias '60no' 'self'

    @setalias '30no' 'self'

    elseif timer 'Carpentry' > 90000

    setalias '90no' 'self'

    @setalias '60no' 'self'

    @setalias '30no' 'self'

    elseif timer 'Carpentry' > 60000

    setalias '60no' 'self'

    @setalias '30no' 'self'

    elseif timer 'Carpentry' > 30000

    setalias '30no' 'self'

    endif

    endif

    endif

    if @gumpexists 0x19bc4061

    @replygump 0x19bc4061 2

    waitforgump 0xa8b319c6 1000

    @replygump 0xa8b319c6 3

    endif

    while @findtype '0x1bd7' woodhue[0] 'ground' 30 2 and counttype '0x1bd7' woodhue[0] 'backpack' < 190

    moveitem 'found' 'backpack'

    pause 550

    endwhile

    if counttype 0x1bd7 woodhue[0] 'backpack' < 50 and not @findalias 'restockyes'

    //get 200 boards from beetle

    if mounted 'self'

    pause 550

    useobject 'self'

    pause 1000

    endif

    waitforproperties 'beetle' 5000

    if @property 'bonded' 'beetle'

    waitforcontext 'beetle' 10 15000

    else

    waitforcontext 'beetle' 9 15000

    endif

    movetype 0x1bd7 'beetle' 'backpack' [(0 0 0)] woodhue[0] 200

    pause 1000

    if counttype 0x1bd7 woodhue[0] 'beetle' < 200

    @setalias 'restockyes' 'self'

    endif

    useobject 'beetle'

    pause 1000

    endif

    //if dont need to restock, run east to fletcher and craft while doing it

    while maxweight < weight

    movetypeoffset 0x1bd7 'backpack' 'ground' [(0 1 0)] woodhue[0] 30

    pause 550

    endwhile

    while x < 7036

    run 'east'

    if @findalias 'bowquesting' and not @findalias 'bowsdone'

    if @gumpexists 0x38920abd and not @ingump 0x38920abd 'Faerie Fire'

    pause 550

    usetype 0x1022 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 15

    waitforgump 0x38920abd 2000

    endif

    endif

    if @gumpexists 0x38920abd

    if @ingump 0x38920abd 'Faerie Fire'

    if @findalias 'simplebow' and counttype 0x13b2 'any' 'backpack' < 10

    @replygump 0x38920abd 2

    elseif @findalias 'ingenious1' and counttype 0xf50 'any' 'backpack' < 10

    @replygump 0x38920abd 9

    elseif @findalias 'ingenious2' and counttype 0x13fd 'any' 'backpack' < 8

    @replygump 0x38920abd 16

    elseif @findalias 'ingenious3' and counttype 0x26c3 'any' 'backpack' < 10

    @replygump 0x38920abd 30

    elseif not @findalias 'bowsdone' and @findalias 'bowquesting'

    if @findalias 'simplebow' and counttype 0x13b2 'any' 'backpack' > 9

    @setalias 'bowsdone' 'self'

    elseif @findalias 'ingenious1' and counttype 0xf50 'any' 'backpack' > 9

    @setalias 'bowsdone' 'self'

    elseif @findalias 'ingenious2' and counttype 0x13fd 'any' 'backpack' > 7

    @setalias 'bowsdone' 'self'

    elseif @findalias 'ingenious3' and counttype 0x26c3 'any' 'backpack' > 9

    @setalias 'bowsdone' 'self'

    endif

    elseif counttype 0xb5e 'any' 'backpack' < 10

    if x < 7013

    pause 550

    endif

    usetype 0x1034 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    endif

    elseif counttype 0xb5e 'any' 'backpack' < 10 and @ingump 0x38920abd 'Magincia-style'

    @replygump 0x38920abd 2

    elseif counttype 0xb5e 'any' 'backpack' < 10

    if x < 7013

    pause 550

    endif

    usetype 0x1034 0 'backpack'

    waitforgump 0x38920abd 2000

    @replygump 0x38920abd 8

    waitforgump 0x38920abd 2000

    endif

    endif

    endwhile

    elseif y == 378

    while x > 7000

    run 'west'

    endwhile

    else

    sysmsg 'You need to be near dropoff, carpentry area or fletching trash when starting this macro' 34

    stop

    endif



    Last edited by Athanas; 01-30-2019, 06:59 PM.
Working...
X