Page 1 of 2

Fletching Macro from 1 to 202 (Version 2.5) 8/3/04

Posted: Tue Aug 03, 2004 8:13 pm
by Override
Well, I have decided to start releasing some of my Tradeskills Macros. I have them for pretty much for all tradeskills, but I want to work out a few bugs on some before I release a few. Here is a Link that has all the updated macros:

http://www.soc-music.com/mq2/

Below is the Fletching one I have made. This is to be used in the Abysmal Sea and you will need to have a fletching kit to can go from 1 to 202. Plus BE SURE to place the .inc files into the common directory in your macros directory (if there isn't one.....create it).

fletching.mac

Code: Select all

| 
| fletching.mac
| Takes you from 1 to 202 in Fletching
| Version 2.5
| Date: August 3, 2004
|
| Please be sure to get the lastest updates at http://www.soc-music.com/mq2/index.htm
|
| Before are the settings you need to change for you.
| This Macro can take you up to 202 in fletching. 
| SkillMaxWanted can be change to what skill you want to stop at.
| MerchantName is which merchant you are at.
|
| This Macro works best in the Abysmal Sea since all the components are there.
| You WILL need to be next to the merchant in order for this to work.
|
| Requirements:
| You will need a Fletching Kit (in the last slot).
|
| Disclaimer:
| Code was used from other programers also from the MQ Forums.
| Thanks to El for the update to the combines to make it more cost effective.  
| 


#event CombineError "#*#There was no place to put that#*#" 
#event CombineError "#*#You cannot combine these items in this container type!#*#" 
#event CombineError "#*#did not accept these items#*#" 
#include common/sell.inc
#include common/buy.inc
#include common/packs.inc

Sub Main 
    /declare OldSkill int outer
    /declare SkillMaxWanted int outer
    /declare PackCode string outer 
    /declare Component[10] string outer 
    /declare i int outer
    /declare MerchantName string Outer
    /declare AShafts item outer
    /declare GrooveN item outer
    /declare CFletching item outer
    /declare AHeads item outer
    /declare CombItemName string outer
    /declare ItemTo string outer
    /declare EndingVar int outer
    /declare Levelname int outer
    /varset OldSkill ${Me.Skill[Fletching]}

| ************************************************
| *   Change these settings to what you want.    *
| ************************************************

    /varset MerchantName "Bansama Nysawi"
    /varset SkillMaxWanted 202

| ************************************************
| ************************************************


    :start
    /echo Fletching is at ${Me.Skill[Fletching]}

    /if (${Me.Skill[Fletching]}>=${SkillMaxWanted}) {
      /echo Fletching is at ${SkillMaxWanted}. Quiting!
      /endmacro
    }

   /if (${Me.Skill[Fletching]}>=162 && ${Me.Skill[Fletching]}<202) { 
      /varset AHeads "field point arrowheads" 
      /varset AShafts "bundled wooden arrow shafts" 
      /varset CFletching "set of ceramic arrow vanes" 
      /varset GrooveN "large groove nocks" 
      /varset CombItemName "FWCL" 
      /varset ItemTo "CLASS 6 Wood Point Arrow" 
    } 

    /if (${Me.Skill[Fletching]}>=135 && ${Me.Skill[Fletching]}<162) { 
      /varset AHeads "field point arrowheads" 
      /varset AShafts "bundled wooden arrow shafts" 
      /varset CFletching "set of bone arrow vanes" 
      /varset GrooveN "large groove nocks" 
      /varset CombItemName "FWBL" 
      /varset ItemTo "CLASS 5 Wood Point Arrow" 
    } 

    /if (${Me.Skill[Fletching]}>=122 && ${Me.Skill[Fletching]}<135) { 
      /varset AShafts "bundled ceramic arrow shafts" 
      /varset GrooveN "large groove nocks" 
      /varset CFletching "several round cut fletchings" 
      /varset AHeads "field point arrowheads" 
      /varset CombItemName "FCRL" 
      /varset ItemTo "CLASS 1 Ceramic Point Arrow" 
    } 

    /if (${Me.Skill[Fletching]}>=102 && ${Me.Skill[Fletching]}<122) { 
      /varset AShafts "bundled wooden arrow shafts" 
      /varset GrooveN "large groove nocks" 
      /varset CFletching "set of wooden arrow vanes" 
      /varset AHeads "field point arrowheads" 
      /varset CombItemName "FWWL" 
      /varset ItemTo "CLASS 4 Wood Point Arrow" 
    } 

    /if (${Me.Skill[Fletching]}>=82 && ${Me.Skill[Fletching]}<102) { 
      /varset AShafts "bundled wooden arrow shafts" 
      /varset GrooveN "large groove nocks" 
      /varset CFletching "several round cut fletchings" 
      /varset AHeads "hooked arrowheads" 
      /varset CombItemName "HWSL" 
      /varset ItemTo "CLASS 1 Wood Hooked Arrow" 
    } 

    /if (${Me.Skill[Fletching]}>=68 && ${Me.Skill[Fletching]}<82) { 
      /varset AShafts "bundled wooden arrow shafts" 
      /varset GrooveN "large groove nocks" 
      /varset CFletching "several shield cut fletchings" 
      /varset AHeads "field point arrowheads" 
      /varset CombItemName "FWSL" 
      /varset ItemTo "CLASS 3 Wood Point Arrow" 
    } 

    /if (${Me.Skill[Fletching]}>=56 && ${Me.Skill[Fletching]}<68) { 
      /varset AShafts "bundled bone arrow shafts" 
      /varset GrooveN "large groove nocks" 
      /varset CFletching "several round cut fletchings" 
      /varset AHeads "field point arrowheads" 
      /varset CombItemName "FBRL" 
      /varset ItemTo "CLASS 1 Bone Point Arrow" 
    } 

    /if (${Me.Skill[Fletching]}>=46 && ${Me.Skill[Fletching]}<56) { 
      /varset AShafts "bundled wooden arrow shafts" 
      /varset GrooveN "small groove nocks" 
      /varset CFletching "several round cut fletchings" 
      /varset AHeads "field point arrowheads" 
      /varset CombItemName "FWRS" 
      /varset ItemTo "CLASS 1 Wood Point Arrow" 
    } 

    /if (${Me.Skill[Fletching]}>=36 && ${Me.Skill[Fletching]}<46) { 
      /varset AShafts "bundled wooden arrow shafts" 
      /varset GrooveN "large groove nocks" 
      /varset CFletching "several parabolic cut fletchings" 
      /varset AHeads "field point arrowheads" 
      /varset CombItemName "FWPL" 
      /varset ItemTo "CLASS 2 Wood Point Arrow" 
    } 

    /if (${Me.Skill[Fletching]}>=16 && ${Me.Skill[Fletching]}<36) { 
      /varset AShafts "bundled wooden arrow shafts" 
      /varset GrooveN "medium groove nocks" 
      /varset CFletching "several round cut fletchings" 
      /varset AHeads "field point arrowheads" 
      /varset CombItemName "FWRM" 
      /varset ItemTo "CLASS 1 Wood Point Arrow" 
    } 

    /if (${Me.Skill[Fletching]}>=0 && ${Me.Skill[Fletching]}<16) { 
      /varset AShafts "bundled wooden arrow shafts" 
      /varset GrooveN "large groove nocks" 
      /varset CFletching "several round cut fletchings" 
      /varset AHeads "field point arrowheads" 
      /varset CombItemName "FWRL" 
      /varset ItemTo "CLASS 1 Wood Point Arrow" 
    } 

    /varset EndingVar 1
    /target ${MerchantName}
    /face
    /click right target
    /delay 1s
    /call Buy ${AShafts} 40
    /delay 1s
    /call Buy ${GrooveN} 40
    /delay 1s
    /call Buy ${CFletching} 40
    /delay 1s
    /call Buy ${AHeads} 40
    /delay 1s
    /notify MerchantWnd DoneButton leftmouseup
    /call OpenPacks
    /delay 3s
    /notify TradeskillWnd ExperimentButton leftmousehold
    /notify TradeskillWnd ExperimentButton leftmouseup
    /delay 2s

    /call readIni "${CombItemName}" 
    :Begin 
       /if (${EndingVar}==1) /call ClearCursor 
       /for i 1 to 10 
             /if (${EndingVar}==1) /call AddComp "${Component[${i}]}" ${i} 
       /next i 
       /if (${EndingVar}==1) /call DoCombine 
       /if (${EndingVar}==1) /goto :Begin
 
    /delay 1s
    /call ClosePacks
    /keypress esc
    /keypress esc
    /target ${MerchantName}
    /face
    /click right target
    /delay 1s
    /call OpenPacks
    /delay 2s
    /call Sell ${ItemTo}
    /delay 1s
    /call ClosePacks
    /keypress esc
    /keypress esc

    /goto :start

    /return

Sub readIni(RecipeName) 
    /declare Container string 

    /echo Running ${RecipeName} recipe, which makes ${ItemTo}. 

   /if (${Ini["fletching.ini","${RecipeName}",-1,"NOTFOUND"].Equal["NOTFOUND"]}) { 
        /echo Recipe ${RecipeName} not found 
        /endmacro 
    } 

   /varset Container ${Ini[fletching.ini,${RecipeName},Cont,Enviro]} 

   /if (${Container.Equal[Enviro]}) { 
        /varset PackCode Enviro 
   } else { 
        /varset PackCode ${FindItem[=${Container}].InvSlot} 
       
      /if (${PackCode.Equal[NULL]}) { 
         /echo Could not find container ${Container} 
         /varset EndingVar 2
         /return
      } 
      | pack1 = 22, ... , pack8 = 29 
      /varset PackCode pack${Math.Calc[${PackCode}-21].Int} 
   }  

    /for i 1 to 10 
        /varset Component[${i}] ${Ini[fletching.ini,${RecipeName},Comp${Math.Calc[${i}-1].Int},NOTFOUND]} 
    /next i 
    /return 

sub ClearCursor 
    :Loop 
      /if (!${Cursor.ID}) /return 
      /autoinv 
|      /destroy	
      /delay 5 
      /doevents 
      /goto :Loop 
    /return 

sub DoCombine 
    :Loop 
      /combine ${PackCode} 
      /delay 1s 
      /if (${PackCode.Equal[Enviro]}) /delay 1s 
       /doevents 
      /if (${InvSlot[${PackCode}].Item.Items}) /goto :Loop 
      /delay 5 
      /if (${Me.Skill[Fletching]}>${OldSkill}) {
        /echo Your Fletching Went Up!! It's now ${Me.Skill[Fletching]}!
        /varset OldSkill ${Me.Skill[Fletching]}
      }
    /return 

sub AddComp(CompName, PackSlot) 
   /if (${CompName.Equal[NOTFOUND]}) /return 

   /if (!${FindItem[=${CompName}].ID}) { 
      /echo Could not find ${CompName} in inventory 
      /beep 
      /varset EndingVar 2
      /return 
    } 

   :Loop 
      /ctrl /itemnotify ${FindItem[=${CompName}].InvSlot} leftmouseup 

      /if (!${Cursor.ID}) { 
         /delay 1 
         /goto :Loop 
      } 

   /if (${PackCode.Equal[Enviro]}) { 
      /itemnotify ${InvSlot[enviro${PackSlot}]} leftmouseup 
   } else { 
      /itemnotify in ${PackCode} ${PackSlot} leftmouseup 
   }    
   /return 

Sub Event_CombineError 
    /varset EndingVar 2
/return 
fletching.ini

Code: Select all

[FWCL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled wooden arrow shafts 
Comp2=field point arrowheads 
Comp3=set of ceramic arrow vanes 

[FWBL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled wooden arrow shafts 
Comp2=field point arrowheads 
Comp3=set of bone arrow vanes 

[HCPL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled ceramic arrow shafts 
Comp2=hooked arrowheads 
Comp3=several parabolic cut fletchings 

[SCPL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled ceramic arrow shafts 
Comp2=silver tipped arrowheads 
Comp3=several parabolic cut fletchings 

[FWBL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled wooden arrow shafts 
Comp2=field point arrowheads 
Comp3=set of bone arrow vanes 

[FCRL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled ceramic arrow shafts 
Comp2=field point arrowheads 
Comp3=several round cut fletchings 

[FWWL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled wooden arrow shafts 
Comp2=field point arrowheads 
Comp3=set of wooden arrow vanes 

[HWSL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled wooden arrow shafts 
Comp2=hooked arrowheads 
Comp3=several round cut fletchings 

[FWSL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled wooden arrow shafts 
Comp2=field point arrowheads 
Comp3=several shield cut fletchings 

[FBRL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled bone arrow shafts 
Comp2=field point arrowheads 
Comp3=several round cut fletchings 

[FWRS] 
Cont=Fletching Kit 
Comp0=small groove nocks 
Comp1=bundled wooden arrow shafts 
Comp2=field point arrowheads 
Comp3=several round cut fletchings 

[FWPL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled wooden arrow shafts 
Comp2=field point arrowheads 
Comp3=several parabolic cut fletchings 

[FWRM] 
Cont=Fletching Kit 
Comp0=medium groove nocks 
Comp1=bundled wooden arrow shafts 
Comp2=field point arrowheads 
Comp3=several round cut fletchings 

[FWRL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled wooden arrow shafts 
Comp2=field point arrowheads 
Comp3=several round cut fletchings 

[SSPL] 
Cont=Fletching Kit 
Comp0=large groove nocks 
Comp1=bundled steel arrow shafts 
Comp2=silver tipped arrowheads 
Comp3=several parabolic cut fletchings 
buy.inc

Code: Select all

| 
| buy.inc
| Buy Include File needed for macros
| Version 1.3
| Date: August 1, 2004
|
| Please be sure to get the lastest updates at http://www.soc-music.com/mq2/index.htm
|
| These file MUST be in the common directory in your macros directory.
|
| Disclaimer:
| Code was used from other programers also from the MQ Forums.
| 


#event Broke "#*#can't afford to buy them#*#" 

Sub Buy(item ItemToBuy, int amount)

/echo Buying ${ItemToBuy}

/declare TotalMItems int Inner
/varset TotalMItems ${Merchant.Items}
/declare x int Inner
/declare ItemSlotNum int Inner
/varset ItemSlotNum 0

/for x 1 to ${TotalMItems}
  /if (${ItemToBuy.Equal[${Merchant.Item[${x}]}]}) {
    /varset ItemSlotNum ${x}
  }
/next x

/if (${ItemSlotNum}==0) {
  /echo Not on Merchant
  /return
}

/itemnotify merchant${ItemSlotNum} leftmouseup


:Buy 
   /if (${FindItemCount[=${SelectedItem}]}>=${amount}) {
     /echo Done!
     /return
   }        

:StackLoop 
   /if (${Math.Calc[${amount}-${FindItemCount[=${SelectedItem}]}]}<=20) /goto :RegLoop 
   /buyitem ${If[${SelectedItem.Stackable},20,1]} 
   /delay 5 
   /doevents 
   /goto :StackLoop 

:RegLoop 
   /if (${Math.Calc[${amount}-${FindItemCount[=${SelectedItem}]}]}<=0) {
     /echo Done!
     /return
   }        
   /buyitem ${If[${SelectedItem.Stackable},${Math.Calc[${amount}-${FindItemCount[=${SelectedItem}]}]},1]} 
   /delay 5 
   /doevents 
   /goto :RegLoop 

/return

Sub Event_Broke 
   /echo Error: You are out of money! 
   /beep
   /endmacro
/return 
packs.inc

Code: Select all

| 
| packs.inc
| Open and Close Packs Include File needed for macros
| Version 1.1
| Date: August 1, 2004
|
| Please be sure to get the lastest updates at http://www.soc-music.com/mq2/index.htm
|
| These file MUST be in the common directory in your macros directory.
|
| Disclaimer:
| Code was used from other programers also from the MQ Forums.
| 

Sub OpenPacks 
   /declare bag int local 0 

   /newif (!${Window[InventoryWindow].Open}) /keypress inventory 
   /delay 1 
   /for bag 1 to 8 step 1 
      /newif (!${Window[pack${bag}].Open}) /itemnotify pack${bag} rightmouseup 
   /next bag 
   /delay 1 
/return 

Sub ClosePacks 
   /declare bag int local 0 
|   /newif (!${Window[InventoryWindow].Open}} /keypress inventory 
   /delay 1 
   /for bag 1 to 8 step 1 
      /newif (${Window[pack${bag}].Open}) /itemnotify pack${bag} rightmouseup 
   /next bag 
   /delay 1 
/return 
sell.inc

Code: Select all

| 
| sell.inc
| Selling Include File needed for macros
| Version 1.2
| Date: August 1, 2004
|
| Please be sure to get the lastest updates at http://www.soc-music.com/mq2/index.htm
|
| These file MUST be in the common directory in your macros directory.
|
| Disclaimer:
| Code was used from other programers also from the MQ Forums.
| 


Sub Sell(string ItemToSell)
   /declare OldMoney int Inner    
   /declare NewMoney int Inner
 
   /autoinv 

   /if (${ItemToSell.Equal[NULL]}) {
     /echo Usage: /macro sell "Item"
     /return
   }

   :Finding 
      /if (${FindItemCount[=${ItemToSell}]}==0) /goto :Done 
      /itemnotify ${FindItem[=${ItemToSell}].InvSlot} leftmouseup 

   :WaitFind 
      /if (${Bool[${SelectedItem}]}==FALSE) /goto :WaitFind 

   :Selling
      /delay 1s 
      /varset OldMoney ${Me.Cash} 
      /shift /notify MerchantWnd MW_Sell_Button leftmouseup 

   :WaitSell 
      /varset NewMoney $(Me.Cash} 
      /if (${NewMoney}==${OldMoney}) /goto :WaitSell 
      /goto :Finding 

   :Done 
      /echo No more ${ItemToSell} to sell!!!      
/return 

Posted: Tue Aug 03, 2004 9:44 pm
by Sparr
why stop at 202?

Posted: Tue Aug 03, 2004 10:30 pm
by Override
That is the highest you can get from vendor bought items, after that you need drops.

Posted: Wed Aug 04, 2004 12:45 am
by fantum409
I wish I had never even looked at TSs before now, because this is the only way to do it... all in one night, all toons, all skills, no clicking. LoL

Working very smoothly for me

Posted: Wed Aug 04, 2004 3:10 am
by Sparr
erm, you can get to 250 with vendor items, it just gets more expensive when you have to start making bows.

Posted: Wed Aug 04, 2004 4:30 am
by loadingpleasewait
aye, make bows above 202.. just gets WAY more expensive..

Posted: Wed Aug 04, 2004 5:53 pm
by Override
Ok, I will look into that, i just used Nightmare Bows to get past 202 and never looked at any of the other options. I may add it in if I find some more all vendor routes.

Posted: Thu Aug 05, 2004 1:25 pm
by El
Ugh, bows are hugely more expensive. I would give the option of doing arrows if you have the materials.

Posted: Thu Aug 05, 2004 2:10 pm
by The Overmind
Question is, is there a specific vendor who has all the materials. Or 2 vendors close to each other with all the materials to make bows?

Posted: Thu Aug 05, 2004 3:02 pm
by masacist
Are there any pre-GoD ways of doing this at all for any of these macros or are they all based in Abysmal Sea?

i'm just curious, i'm awaiting on GoD to arrive in a day or so, so its not much of a problem to me. (didnt rush to get it bcoz of the problems).

but a few friends of mine are not GoD enabled as of yet so wondered what alternatives there are and i could prolly piece together a macro or two for them.

thnx in advance...

TS question

Posted: Thu Aug 05, 2004 3:31 pm
by Axo959
I've been using these macro's with great success. I had a TS question though in case anyone here knows already, can you have multiple tradeskills above 200? The reason I ask if after 18 hours of running brewing and 6 hours of fletching, I have not budged off the 200 mark. (I am 250 in JC) The 18 and 6 hours do not include getting to 200, which just getting to plain ole 200 was remarkably fast and inexpensive fore the most part. :D

Thanks

Posted: Thu Aug 05, 2004 3:37 pm
by Mimatas
ouch... that's a painful question to answer.

Yes, you can go above 250.. but not without spending 3aa per skill. Hate to be the one to break that news.. but since JC is over 200, you need to get the New Tanaan crafting AA to raise another skill above 200.

Posted: Thu Aug 05, 2004 6:33 pm
by Override
masacist wrote:Are there any pre-GoD ways of doing this at all for any of these macros or are they all based in Abysmal Sea?

i'm just curious, i'm awaiting on GoD to arrive in a day or so, so its not much of a problem to me. (didnt rush to get it bcoz of the problems).

but a few friends of mine are not GoD enabled as of yet so wondered what alternatives there are and i could prolly piece together a macro or two for them.

thnx in advance...
The flethcing and the jewelrycrafting macros can be used at any merchant that has all the components in it. The brewing, baking, and smithing has to be used in the abysmal sea because it walks from merchant to merchant by locs.

Re: TS question

Posted: Thu Aug 05, 2004 6:36 pm
by Override
Axo959 wrote:I've been using these macro's with great success. I had a TS question though in case anyone here knows already, can you have multiple tradeskills above 200? The reason I ask if after 18 hours of running brewing and 6 hours of fletching, I have not budged off the 200 mark. (I am 250 in JC) The 18 and 6 hours do not include getting to 200, which just getting to plain ole 200 was remarkably fast and inexpensive fore the most part. :D

Thanks

Well, this is a VERY expensive question to ask since you have already gone over 24 hours trying to get above 200. But you can only go over 200 in one tradeskill unless you have done the Tanaan Mastery AAs. That lets you go over 200 in more then one tradeskill.

Thanks for help

Posted: Thu Aug 05, 2004 10:41 pm
by Axo959
Thanks mimatas and override for the responses, I know it wasnt the best forum to ask in. I havent trade skilled since '99 when I was trying to make my first TrueShot LongBow. I have never done any tradeskills since then so I'm a little out of the loop.

I figured something was up with no skill increases. Thanks for the help.

Chris