• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

MISTLETOE.mac

armysoldier

Well-known member
Joined
Jun 26, 2005
RedCents
101¢
the long awaited ....

mistletoe.mac


PLEASE SEE VARIOUS TS thread stickied above

DL the ZIP file

Rich (BB code):
| 
| Mistletoe.mac
| Trivial is 335
|
| Written by ArmySoldier
|
|
| You must have the tunare dust and mistletoe on your toon before you start
|
|
| Blessed dust of tunare is created with imbued emerald / Celestial essence and a jar of acid
|
| Mistletoe can be bought at several places.. I use Mirao Frostpouch @ -88, -210 in POK
|
|
| I suggest Running brewing.mac first and get your skill up to 200
|
| You also need a mixing bowl in LAST slot and the rest need to be empty 10 slot bags.. 
|
| of course some of those slots will be taken with the mistletoe and dust.  And your smithy hammer!!!!!
| 
| This MAcro needs 120 Dusts and 120 Mistletoes on your toon in any bag BUT 1
| And another 120 of each in the bank (bag1 and first 2 slots of bag 2)
|
| This Macro works best in the Abysmal Sea since all the components are there.
| You WILL need to be by Uiyaniv Tu`Vrozix @ -191,229,96 for this macro to work.
|
| This macro is set to swap bank bag 1&2 with bag 1&2 in inventory Which is where u need to have your extra stuff
| Ensure BANK BAGS 3-6 are empty for sickle transfer
|
|   BANK SLOTS            Inventory
| _________________        _______
|| 1 | 5 | 9  | 13 |      | 1 | 5 |
||___|___|____|____|      |___|___|
|| 2 | 6 | 10 | 14 |      | 2 | 6 |
||___|___|____|____|      |___|___|
|| 3 | 7 | 11 | 15 |      | 3 | 7 |
||___|___|____|____|      |___|___|
|| 4 | 8 | 12 | 16 |      | 4 | 8 |
||___|___|____|____|      |___|___|
|
| ENSURE they are 10 slot .. and only have mistletoe and tunare dust for 40 more combines
|
| IF you do not want it to automatically swap bags.. or maybe use a mule .. then REM out the /call BagSwap line
|
| /echo pause and /echo unpause .... self explainatory

#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#*#" 
#event ContUsed "#*#Someone else is using that#*#"
#event End "#*#can not afford#*#"
#event Pause "[MQ2] pause"
#event Unpause "[MQ2] unpause"

#include common/sell.inc
#include common/buy.inc
#include common/packs.inc
#include common/cleanpacks.inc

Sub Main

    /declare PackCode string outer 
    /declare Component[10] string outer 
    /declare i int outer
    /declare MerchantNameA string Outer
    /declare MerchantNameB string Outer
    /declare MerchantNameC string Outer
    /declare CompA item outer
    /declare CompB item outer
    /declare CompC item outer
    /declare CompD item outer
    /declare CompE item outer
    /declare CompF item outer
    /declare CompG item outer
    /declare CombItemName string outer
    /declare ItemTo string outer
    /declare EndingVar int outer
    /declare EndIt int outer
    /declare PauseIt int outer
    /declare Cnt int outer
    /declare Cnt2 int outer
    /declare runs int outer
    /declare OldSkill int outer
    /declare DelayMult int outer
    /varset OldSkill ${Me.Skill[Blacksmithing]}
    /varset i 1
    /varset runs 1
    /varset DelayMult 1
    /varset EndIt 1
    /varset PauseIt 1


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Begin 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    :start
    /if (${FindItemCount[=Blessed Dust of Tunare]}<3) /call Ending
    /varset CompB "Celestial Solvent"
    /varset CompC "The Scent of Marr"
    /varset CombItemName "CE"
    /varset ItemTo "Celestial Essence"

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Buy CE components 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /varset EndingVar 1
    /varset Cnt ${FindItemCount[=Celestial Essence]}
    /varset Cnt2 ${FindItemCount[=Mistletoe Temper]}
    /echo ${Cnt} CE on hand
    /echo ${Cnt2}
    /varset Cnt2 ${Math.Calc[240-${Cnt2}]}
    /echo ${Cnt2}
    /delay ${Math.Calc[${DelayMult}*1]}s
    /target Uiyaniv
    /face
    /delay ${Math.Calc[${DelayMult}*1]}s
    /nomodkey /click right target
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call OpenPacks
    /call Buy ${CompB} ${Math.Calc[${Cnt2}-${Cnt}]}
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call Buy ${CompC} ${Math.Calc[${Cnt2}-${Cnt}]}
    /call ClosePacks
    /keypress esc
    /delay ${Math.Calc[${DelayMult}*2]}s

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| MAKE CE
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /itemnotify pack8 rightmouseup

    /if  (${Window[TradeskillWnd].Open}) {
         /nomodkey /notify TradeskillWnd ExperimentButton leftmousehold
         /nomodkey /notify TradeskillWnd ExperimentButton leftmouseup
	 }
   
    /call OpenPacks
    /delay ${Math.Calc[${DelayMult}*2]}s
    /call CombineSubs

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Buy wine and make Mistletoe Temper
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    :Nextrun
    /varset EndingVar 1
    /varset CompB "Elven Wine"
    /varset CombItemName "MT"
    /varset ItemTo "Mistletoe Temper"
    /varset Cnt ${FindItemCount[=Mistletoe]}
    /echo ${Cnt} Mistletoe On Hand
    /look
    /call GoToMerchantB
    /target Dray
    /face
    /delay ${Math.Calc[${DelayMult}*1]}s
    /nomodkey /click right target
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call Buy ${CompB} ${Cnt}
    /keypress esc
    /keypress esc

    /look
    /call GoToBarrel
    /look
    /delay ${Math.Calc[${DelayMult}*1]}s
    /nomodkey /click left item
    /doevents
    /delay ${Math.Calc[${DelayMult}*2]}s
    /click left item
    /doevents
    /click left item
    /doevents
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call OpenPacks
    /delay ${Math.Calc[${DelayMult}*2]}s
    /call CombineSubs

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Buy Molds and sheets
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /varset EndingVar 1
    /varset CompA "Curved Blade Mold"
    /varset CompB "Hilt Mold"
    /varset CompC "Pommel Mold"
    /varset CompD "Ruby"
    /varset CompE "Emerald"
    /varset CompF "Sapphire"
    /varset CompG "Sheet Metal"

    /call GoToMerchantC

    /target Esunta
    /face
    /delay ${Math.Calc[${DelayMult}*1]}s
    /nomodkey /click right target
    /delay ${Math.Calc[${DelayMult}*1]}s
    /varset Cnt ${FindItemCount[=Blessed Sickle Blade]}
    /echo ${Cnt} Blades on hand
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call Buy ${CompA} ${Math.Calc[10-${Cnt}]}
    /delay ${Math.Calc[${DelayMult}*1]}s
    /varset Cnt ${FindItemCount[=Blessed Sickle Hilt]}
    /echo ${Cnt} Hilts On Hand
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call Buy ${CompB} ${Math.Calc[10-${Cnt}]}
    /delay ${Math.Calc[${DelayMult}*1]}s
    /varset Cnt ${FindItemCount[=Blessed Sickle Pommel]}
    /echo ${Cnt} Pommels on hand
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call Buy ${CompC} ${Math.Calc[10-${Cnt}]}
    /delay ${Math.Calc[${DelayMult}*1]}s
    /keypress esc
    /keypress esc

    /call GoToMerchantD
    /target Snokin
    /face
    /delay ${Math.Calc[${DelayMult}*1]}s
    /nomodkey /click right target
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call Buy ${CompG} 30
    /delay ${Math.Calc[${DelayMult}*1]}s
    /keypress esc
    /keypress esc

    /call GoToMerchantE
    /target Glirina Morningbloom
    /face
    /delay ${Math.Calc[${DelayMult}*1]}s
    /nomodkey /click right target
/delay ${Math.Calc[${DelayMult}*1]}s
    /varset Cnt ${FindItemCount[=Blessed Sickle Blade]}
    /echo ${Cnt} Blades on Hand
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call Buy ${CompE} ${Math.Calc[10-${Cnt}]}
    /delay ${Math.Calc[${DelayMult}*1]}s
    /varset Cnt ${FindItemCount[=Blessed Sickle Hilt]}
    /echo ${Cnt} Hilts On hand
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call Buy ${CompD} ${Math.Calc[10-${Cnt}]}
    /delay ${Math.Calc[${DelayMult}*1]}s
    /varset Cnt ${FindItemCount[=Blessed Sickle Pommel]}
    /echo ${Cnt} Pommels On Hand
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call Buy ${CompF} ${Math.Calc[10-${Cnt}]}
    /delay ${Math.Calc[${DelayMult}*1]}s
    /keypress esc
    /keypress esc

    /call GoToForge

    /look
    /delay ${Math.Calc[${DelayMult}*1]}s
    /nomodkey /click left item
    /doevents
    /delay ${Math.Calc[${DelayMult}*2]}s
    /click left item
    /doevents
    /click left item
    /doevents
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call OpenPacks
    /delay ${Math.Calc[${DelayMult}*2]}s

    /varset CombItemName "Hilt"
    /varset ItemTo "Blessed Sickle Hilt" 
    /call Combine
    /delay ${Math.Calc[${DelayMult}*2]}s
    
    /varset CombItemName "Blade"
    /varset ItemTo "Blessed Sickle Blade" 
    /delay ${Math.Calc[${DelayMult}*2]}s
    /call Combine
    /delay ${Math.Calc[${DelayMult}*2]}s

    /varset CombItemName "Pommel"
    /varset ItemTo "Blessed Sickle Pommel" 
    /delay ${Math.Calc[${DelayMult}*2]}s
    /call Combine
    /delay ${Math.Calc[${DelayMult}*2]}s

    /varset CombItemName "Sickle"
    /varset ItemTo "Mistletoe Cutting Sickle" 
    /delay ${Math.Calc[${DelayMult}*2]}s
    /call Combine
    /delay ${Math.Calc[${DelayMult}*2]}s
    /call ClosePacks
    /nomodkey /keypress esc
    /delay ${Math.Calc[${DelayMult}*2]}s
    /call GoTomerchA
    /varset runs ${Math.Calc[${runs}+1]}
    /echo Round ${runs} --- WOOO HOOO
    /if (${runs}<=5) /goto :Nextrun

    
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Goto bank and swap bags 1 and move sickles to bank
|Bags 3-6 in bank need to be empty except for bag 1 which has next set of combine items
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    /if (${EndIt}==2) /EndMAcro
    /call GoToBanker2
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call Bagswap
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call GoToMerchantA

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Goto Merch A and start over
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /call GoToMerchantA
    /goto :start
/return


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Read Ini file
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub readIni(RecipeName) 
    /declare Container string 

    /echo Running ${RecipeName} recipe 

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

   /varset Container ${Ini[smithing.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} 
   }  

   /call cleanPack "${Container}"

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

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub CombineSubs
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub CombineSubs

    /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 DoCombineSubs
       /if (${EndingVar}==1) /goto :Begin
 
    /delay ${Math.Calc[${DelayMult}*1]}s
    /call ClosePacks
    /nomodkey /keypress esc
    /varset EndingVar 1
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Combine
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Combine

    /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 ${Math.Calc[${DelayMult}*1]}s
    /varset EndingVar 1
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Clear Cursor
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub ClearCursor 
    :Loop 
      /if (!${Cursor.ID}) /return 
      /autoinv 
|      /destroy	
      /delay ${Math.Calc[${DelayMult}*5]}s
      /doevents 
      /goto :Loop 
    /return 


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub DoCombine for subs
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub DoCombineSubs
    :Loop 
      /combine ${PackCode} 
      /delay ${Math.Calc[${DelayMult}*1]}s
      /if (${PackCode.Equal[Enviro]}) /delay ${Math.Calc[${DelayMult}*1]}s 
      /doevents 
      /if (${InvSlot[${PackCode}].Item.Items}) /goto :Loop 
      /delay 5 
    /return 

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

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub add Components
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 
      /nomodkey /ctrl /itemnotify ${FindItem[=${CompName}].InvSlot} leftmouseup 

      /if (!${Cursor.ID}) { 
         /delay ${Math.Calc[${DelayMult}*1]}s
         /goto :Loop 
      } 

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

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event Combine error
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_CombineError 
    /Call Ending
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event Container is being used
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_ContUsed
    /echo Container in use. Waiting 30 seconds and trying again.
    /delay 30s
    /itemtarget "Forge"
    /delay ${Math.Calc[${DelayMult}*1]}s
    /nomodkey /click left item
    /delay ${Math.Calc[${DelayMult}*2]}s
    /doevents
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event End
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub Event_End
    /call Ending
/return

Sub Ending
    /echo macro ending
    /camp desktop
    /end 
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event Pause
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub Event_Pause
    :Pauseloop
    /doevents
    /echo Macro Is Paused due to Users command
    /if (${PauseIt}==2) {
    /varset PauseIt 1
    /echo Your wish is our command.. Starting macro back up
    /return
    }
    /delay 15s
    /goto :Pauseloop
/return


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event Unpause
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub Event_Unpause
    /varset PauseIt 2

/return




|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Bag Swap
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub Bagswap
    /declare Packnumber item inner
    /doevents
    /click right target
    /delay 3s
    /call OpenPacks
    /delay 3s
    /varset Packnumber 3
    /doevents
    /itemnotify pack1 leftmouseup
    /itemnotify bank1 leftmouseup
    /itemnotify pack1 leftmouseup
    /itemnotify pack2 leftmouseup
    /itemnotify bank2 leftmouseup
    /itemnotify pack2 leftmouseup
    :swap 
    /doevents 
    /nomodkey /ctrl /itemnotify ${FindItem[=Mistletoe Cutting Sickle].InvSlot} leftmouseup 
    /if (${Cursor.ID}) {
    /notify BigBankWND BIGB_AutoButton LeftMouseUP
    /goto :swap
    }
    /varset EndIt 2
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub MOVEMENT SUBS - Merchants
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Merch A - Uiyaniv
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub GoToMerchantA
  /echo Going to Uiyaniv Tu`Vrozix.
  :PullMoveLoopa
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -70.09,174.24
  /if (${Math.Distance[-70.09,174.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-70.09,174.24]}<=2) {
    /nomodkey /keypress forward
    /doevents
    /goto :PullMoveLoopb
  }
  /goto :PullMoveLoopa
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoopb
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -10.89,173.86
  /if (${Math.Distance[-10.89,173.86]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-10.89,173.86]}<=2) {
    /nomodkey /keypress forward
    /doevents
    /goto :PullMoveLoopc
  }
  /goto :PullMoveLoopb
  :PullMoveLoopc
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -9.49,261.22
  /if (${Math.Distance[-9.49,261.22]}>2) {
    /nomodkey /keypress forward hold
    /nomodkey /keypress USE
    /nomodkey /keypress USE
  }
  /if (${Math.Distance[-9.49,261.22]}<=2) {
    /nomodkey /keypress forward
    /doevents
    /goto :PullMoveLoopd
  }
    /doevents
  /goto :PullMoveLoopc
  /delay ${Math.Calc[${DelayMult}*1]}s
 :PullMoveLoopd
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -219.45,256.35
  /if (${Math.Distance[-219.45,256.35]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-219.45,256.35]}<=2) {
    /nomodkey /keypress forward
    /doevents
    /goto :Merch
  }
    /doevents
  /goto :PullMoveLoopd
  /delay ${Math.Calc[${DelayMult}*1]}s
  :Merch
  /target Uiyaniv
  /if (${Me.State.Equal[SIT]}) /stand
  /face
  /if (${Target.Distance}>10) /nomodkey /keypress forward hold 
  /if (${Target.Distance}<=10) {
    /nomodkey /keypress forward
    /doevents
    /goto :end
  }
    /doevents
  /goto :Merch
  :end
    /doevents
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Merch B - Dray
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub GoToMerchantB
  /echo Going to Dray Cuves
  :PullMoveLoopa
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -210.45,247.35
  /if (${Math.Distance[-210.45,247.35]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-210.45,247.35]}<=2) {
    /nomodkey /keypress forward
    /doevents
    /goto :PullMoveLoopb
  }
    /doevents
  /goto :PullMoveLoopa
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoopb
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -232.21,260.29
  /if (${Math.Distance[-232.21,260.29]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-232.21,260.29]}<=2) {
    /nomodkey /keypress forward
    /doevents
    /goto :PullMoveLoopc
  }
    /doevents
  /goto :PullMoveLoopb
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoopc
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -330.40,264.40
  /if (${Math.Distance[-330.40,264.40]}>2) {
    /nomodkey /keypress forward hold
    /nomodkey /keypress USE
  }
  /if (${Math.Distance[-330.40,264.40]}<=2) {
    /nomodkey /keypress forward
    /doevents
    /goto :PullMoveLoopd
}
    /doevents
  /goto :PullMoveLoopc
  :PullMoveLoopd
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -304.40,286.40
  /if (${Math.Distance[-304.40,286.40]}>2) {
    /nomodkey /keypress forward hold
    /nomodkey /keypress USE
  }
  /if (${Math.Distance[-304.40,286.40]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoope
    /doevents
}
    /doevents 
 /goto :PullMoveLoopd
:PullMoveLoope
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -240.09,285.24
  /if (${Math.Distance[-240.09,285.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-240.09,285.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopf
    /doevents
  }
    /doevents
  /goto :PullMoveLoope
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoopf
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -242.62,215.95
  /if (${Math.Distance[-242.62,215.95]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-242.62,215.95]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopg
    /doevents
  }
    /doevents
  /goto :PullMoveLoopf
/delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoopg
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -221.62,215.95
  /if (${Math.Distance[-221.62,215.95]}>2) {
	/nomodkey /keypress forward hold 
	/nomodkey /keypress USE
}
  /if (${Math.Distance[-221.62,215.95]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLooph
    /doevents
  }
    /doevents
  /goto :PullMoveLoopg
  :PullMoveLooph
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -220.54,176.45
  /if (${Math.Distance[-220.54,176.45]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-220.54,176.45]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopi
    /doevents
  }
    /doevents
  /goto :PullMoveLooph
  :PullMoveLoopi
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -155.54,172.52
  /if (${Math.Distance[-155.54,172.52]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-155.54,172.52]}<=2) {
    /nomodkey /keypress forward
    /goto :end
    /doevents
  }
    /doevents
  /goto :PullMoveLoopi
  :end
 /return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Merch C - Esunta
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub GoToMerchantC
  /echo Going to Esunta.
  :PullMoveLoopb
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -220.54,176.45
  /if (${Math.Distance[-220.54,176.45]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-220.54,176.45]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopc
    /doevents
  }
    /doevents
  /goto :PullMoveLoopb
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoopc
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -215.14,215.85
  /if (${Math.Distance[-215.14,215.85]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-215.14,215.85]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopd
    /doevents
  }
    /doevents
  /goto :PullMoveLoopc
  :PullMoveLoopd
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -242.62,215.95
  /if (${Math.Distance[-242.62,215.95]}>2) {
    /nomodkey /keypress forward hold
    /nomodkey /keypress USE
  }
  /if (${Math.Distance[-242.62,215.95]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoope
    /doevents
  }
    /doevents
  /goto :PullMoveLoopd
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoope
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -240.09,285.24
  /if (${Math.Distance[-240.09,285.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-240.09,285.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopf
    /doevents
  }
    /doevents
  /goto :PullMoveLoope
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoopf
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -56.90,285.24
  /if (${Math.Distance[-56.90,285.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-56.90,285.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopg
    /doevents
  }
    /doevents
  /goto :PullMoveLoopf
  :PullMoveLoopg
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc 18.59,221.98
  /if (${Math.Distance[18.59,221.98]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[18.59,221.98]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLooph
    /doevents
  }
    /doevents
  /goto :PullMoveLoopg
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLooph
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc 126.89,236.86
  /if (${Math.Distance[126.89,236.86]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[126.89,236.86]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopi
    /doevents
  }
    /doevents
  /goto :PullMoveLooph
  :PullMoveLoopi
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc 130.49,259.22
  /if (${Math.Distance[130.49,259.22]}>2) {
    /nomodkey /keypress forward hold
    /nomodkey /keypress USE
    /nomodkey /keypress USE
  }
  /if (${Math.Distance[130.49,259.22]}<=2) {
    /nomodkey /keypress forward
    /goto :end
    /doevents
  }
    /doevents
  /goto :PullMoveLoopi
  :end
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Merch D - Snokin
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub GoToMerchantD
  
  /echo Going to Snokin.
  :PullMoveLoopa
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc 92.71,259.21
  /if (${Math.Distance[92.71,259.21]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[92.71,259.21]}<=2) {
    /nomodkey /keypress forward
    /goto :end
    /doevents
  }
    /doevents
  /goto :PullMoveLoopa
  :end
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Merch E - Glirina
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub GoToMerchantE
  /echo Going to Glirina.
  :PullMoveLoopa
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc 130.49,259.22
  /if (${Math.Distance[130.49,259.22]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[130.49,259.22]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopb
    /doevents
  }
    /doevents
  /goto :PullMoveLoopa
  :PullMoveLoopb
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc 129.65,235.06
  /if (${Math.Distance[129.65,235.06]}>2) {
    /nomodkey /keypress forward hold 
    /nomodkey /keypress USE
  }
  /if (${Math.Distance[129.65,235.06]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopc
    /doevents
  }
    /doevents
  /goto :PullMoveLoopb
  :PullMoveLoopc
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc 35.36,235.70
  /if (${Math.Distance[35.36,235.70]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[35.36,235.70]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopd
    /doevents
  }
    /doevents
  /goto :PullMoveLoopc
  :PullMoveLoopd
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -17.97,282.28
  /if (${Math.Distance[-17.97,282.28]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-17.97,282.28]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopf
    /doevents
  }
    /doevents
  /goto :PullMoveLoopd
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoopf
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -240.09,285.24
  /if (${Math.Distance[-240.09,285.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-240.09,285.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopg
    /doevents
  }
    /doevents
  /goto :PullMoveLoopf
  :PullMoveLoopg
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -314.09,285.24
  /if (${Math.Distance[-314.09,285.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-314.09,285.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLooph
    /doevents
  }
    /doevents
  /goto :PullMoveLoopg
  :PullMoveLooph
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -295.09,262.24
  /if (${Math.Distance[-295.09,262.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-295.09,262.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopi
    /doevents
  }
    /doevents
  /goto :PullMoveLooph
  :PullMoveLoopi
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -240.09,262.24
  /if (${Math.Distance[-240.09,262.24]}>2) {
	/nomodkey /keypress forward hold 
	/nomodkey /keypress USE
}
  /if (${Math.Distance[-240.09,262.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopj
     /doevents
  }
    /doevents
  /goto :PullMoveLoopi
  :PullMoveLoopj
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -174.09,262.24
  /if (${Math.Distance[-174.09,262.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-174.09,262.24]}<=2) {
    /nomodkey /keypress forward
    /goto :Merch
     /doevents
  }
    /doevents
  /goto :PullMoveLoopj
  :Merch
  /target Glirina
  /if (${Me.State.Equal[SIT]}) /stand
  /face
  /if (${Target.Distance}>10) /nomodkey /keypress forward hold 
  /if (${Target.Distance}<=10) {
    /nomodkey /keypress forward
    /goto :end
    /doevents
  }
    /doevents
  /goto :Merch
:end
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub move to forge
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub GoToForge
  /echo Going to Forge.
  :PullMoveLoopa
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -174.09,262.24
  /if (${Math.Distance[-174.09,262.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-174.09,262.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopb
    /doevents
  }
    /doevents
  /goto :PullMoveLoopa
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoopb
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -240.09,262.24
  /if (${Math.Distance[-240.09,262.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-240.09,262.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopc
    /doevents
  }
    /doevents
  /goto :PullMoveLoopb
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoopc
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -295.09,262.24
  /if (${Math.Distance[-295.09,262.24]}>2) {
    /nomodkey /keypress forward hold
    /nomodkey /keypress USE
    /doevents
  }
    /doevents
  /if (${Math.Distance[-295.09,262.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopd
    /doevents
  }
    /doevents
  /goto :PullMoveLoopc
  :PullMoveLoopd
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -314.09,285.24
  /if (${Math.Distance[-314.09,285.24]}>2) /nomodkey /keypress forward hold 
    /if (${Math.Distance[-314.09,285.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoope
    /doevents
  }
    /doevents
  /goto :PullMoveLoopd
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoope
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -240.09,285.24
  /if (${Math.Distance[-240.09,285.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-240.09,285.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopf
    /doevents
  }
    /doevents
  /goto :PullMoveLoope
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoopf
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -56.90,285.24
  /if (${Math.Distance[-56.90,285.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-56.90,285.24]}<=2) {
    /nomodkey /keypress forward
    /goto :forge
    /doevents
  }
    /doevents
  /goto :PullMoveLoopf
  :forge
  /if (${Me.State.Equal[SIT]}) /stand
  /face nolook loc 62.90,293.24
  /if (${Math.Distance[62.90,293.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[62.90,293.24]}<=2) {
    /nomodkey /keypress forward
    /goto :end
    /doevents
  }
    /doevents
/goto :forge
  :end
  /itemtarget "Forge"
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub move to Barrel
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sub GoToBarrel 
  /echo Going to Brewing Barrel. 
  /itemtarget "Brew Barrel" 
  /face loc -215, 170
  :Barrel 
  /if (${Me.State.Equal[SIT]}) /stand 
/if (${Math.Distance[-215, 170]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-215, 170]}<=2) {
    /nomodkey /keypress forward
    /return
    /doevents
  }
    /doevents
  /goto :Barrel 
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub move to MErch A from Forge
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub GoToMerchA
  /echo Going to Uiyaniv.
  :PullMoveLoopa
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -56.90,285.24
  /if (${Math.Distance[-56.90,285.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-56.90,285.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopc
    /doevents
  }
    /doevents
  /goto :PullMoveLoopa
  
  :PullMoveLoopc
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -314.09,285.24
  /if (${Math.Distance[-314.09,285.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-314.09,285.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopd
    /doevents
  }
    /doevents
  /goto :PullMoveLoopc
  :PullMoveLoopd
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -295.09,262.24
  /if (${Math.Distance[-295.09,262.24]}>2) /nomodkey /keypress forward hold 
    /if (${Math.Distance[-295.09,262.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoope
    /doevents
  }
    /doevents
  /goto :PullMoveLoopd
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoope
  /face nolook loc -240.09,262.24
  /if (${Math.Distance[-240.09,262.24]}>2) {
	/nomodkey /keypress forward hold 
	/nomodkey /keypress USE
    /doevents
  }
    /doevents
  /if (${Math.Distance[-240.09,262.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopg
    /doevents
  }
    /doevents
  /goto :PullMoveLoope
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoopg
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -213.09,251.24
  /if (${Math.Distance[-213.09,251.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-213.09,251.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLooph
    /doevents
  }
    /doevents
  /goto :PullMoveLoopg
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLooph
  /target Uiyaniv
  /if (${Me.State.Equal[SIT]}) /stand
  /face
  /if (${Target.Distance}>10) /nomodkey /keypress forward hold 
  /if (${Target.Distance}<=10) {
    /nomodkey /keypress forward
    /goto :end
    /doevents
  }
    /doevents
  /goto :PullMoveLooph
  :end
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub move to Banker from Merch A
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub GoToBanker2
  /echo Going to Bank.
  :PullMoveLoopa
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -219.90,255.24
  /if (${Math.Distance[-219.90,255.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-219.90,255.24]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopc
    /doevents
  }
    /doevents
  /goto :PullMoveLoopa
  
  :PullMoveLoopc
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -9.49,261.22
  /if (${Math.Distance[-9.49,261.22]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-9.49,261.22]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoopd
    /doevents
  }
    /doevents
  /goto :PullMoveLoopc
  :PullMoveLoopd
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -10.89,173.86
  /if (${Math.Distance[-10.89,173.86]}>2) {
    /nomodkey /keypress forward hold
    /nomodkey /keypress USE
    /nomodkey /keypress USE
    /doevents
  }
    /doevents
    /if (${Math.Distance[-10.89,173.86]}<=2) {
    /nomodkey /keypress forward
    /goto :PullMoveLoope
    /doevents
  }
    /doevents
  /goto :PullMoveLoopd
  /delay ${Math.Calc[${DelayMult}*1]}s
  :PullMoveLoope
  /if (${Me.State.Equal[SIT]}) /stand 
  /face nolook loc -65.09,173.24
  /if (${Math.Distance[-65.09,173.24]}>2) /nomodkey /keypress forward hold 
  /if (${Math.Distance[-65.09,173.24]}<=2) {
    /nomodkey /keypress forward
    /goto :Banker
    /doevents
  }
    /doevents
  /goto :PullMoveLoope
  /delay ${Math.Calc[${DelayMult}*1]}s
  :Banker
  /target Reladia
  /if (${Me.State.Equal[SIT]}) /stand
  /face
  /if (${Target.Distance}>10) /nomodkey /keypress forward hold 
  /if (${Target.Distance}<=10) {
    /nomodkey /keypress forward
    /goto :end
    /doevents
  }
    /doevents
  /goto :Banker
  :end
/return

posting by itself .. so maybe .. it won't get missed.. and just maybe i can win an ipod..


adding to TS thread.. and to zip
 
Last edited:
Army, I really look forward to testing it out. I will admit that I'm really tired atm, but at first look it seems like the setup is a bit complicated. I'll sit down with it later this morning and give it a shot.

Maybe I'll see if I can't give you a Red Cent for every day I use it ;-)
 
Army,

I found a problem with Mistletoe.mac, right now I'm trying to write a way to fix it. The problem occurs if you have the salvage skill. If you fail a combine, but manage to save some components, those components will remain in the tradeskill container. The macro will carry on and keep on putting the same quantity required for the item being made into the tradeskill container, and will attempt to combine. The result is you get spammed out with a lot of popup windows telling you that you cannot do a combine with stacks of a material in a container.

What I think would fix this is if you made another event for when salvage fires. When the event is triggered, it will clear out the enviro container, then resume with crafting. I personally think this would be the easiest way.

Another way, which I don't think is very viable, is to make the macro support the new tradeskill UI. The major downfall to this is that you have to craft each of the items on your own first before it will work.

Here's the text I got when Salvage fired, so we know what to put into event parser:

"You failed the combine, but you managed to recover #*#"


I hope this helps.
 
First of all - good job army!
Second, Moonspell is right, all your scripts so far have been unusable by my characters who have crafting AAs, I believe what Moonspell proposed is the easiest way to deal with the problem, if the event firest, try to clear and resume.

Thanks for your work.
 
easy fix... will use that text and add
#event Salvage "You failed the combine, but you managed to recover #*#"

Sub Event_Salvage
/call cleancontainer
/return

Will update all macs.. and post when done
 
MISTLETOE.MAC has a pause function... I would like some feedback on it..

is it helpful or not..

/echo pause

/echo unpause


If you all find it useful ... i think i am gonna add it to all the TS macros


8-)


Lemme know how the salvage function works out


Army
 
When salvaging does the returned item(s) appear on cursor or stay in container? If cursor just call /autoinventory with the event...if container, yours is best :)
 
i honestly have no clue .. i don't have salvage

I was going off of the stuff posted above...

but from what i gathered from the posts.. it leaves it sitting int he TS container..


IF not .. i can add a /call clearcursor to the sub event

8-)
 
ok then .. lemme know how the salvage event works out..


and

ANYone with feed back on the pause function .. would be great

8-)
 
hmm never saw that.. lol

ok will not add to any macros then .. he he

thanks 007
 
I just ran the macro and it failed to open the brew barrel, when I opened it manually it worked fine, the same thing happened to forge.

Also just failed a combine but recovered mistletoe, macro did the following:
cleaning NULL container
could not find container
container name = NULL
endmacro
 
hmmm only time i have ever seen container=null is when ini is not being read...

the ini tells the macro what type of container it is for the combine and the ingredients..

I just checked the zip and the ini is there and right...


and i have used this macro several times in testing phase and after i posted it...

so you really have me stumped
 
I see :)
Don't know what to tell you, do you set container type and then do combines? The problem is obviously on salvage, is your container type a global variable with scope accessible to cleanbags?
I didn't really look at mac much, doing lots of preparation for NY.
 
yes .. cleanbags is a function that was already there... it does it before it starts a set of normal combines...

salvage i just added another cleanbags .. when triggered by the slavage text

have you tried any of the other macros .. since i added the salvage?
 
ok instead of doing this I just looked into the macro :)
it's exactly what I thought it was, container variable is not global, it's outside of Event_Salvage scope so it's NULL.

this is untested but if I'm correct you should erase this:
/declare Container string
and add this:
/declare Container string outer
to your Main declarations
 
damn .. i don't have salvage... but i guess i could trick the macro into thinking the event was triggered... will try to get to it today
 
ok decided to do some testing (just int time actually :)
first of all this thing is using string TLO:
/if (${String[${PackNumber}].Equal[e]}) {

second, what I said did work, no more NULL container but it still did not clean up the container (it might be because of TLO, didn't look into details yet).

So it didn't clear the container but kept going with ingridients, just kept adding and obviously failing to do anything.

Also the delay on forge combines seems to be VERY long, is there a reason?
 
orverride had a very laggy computer.. i think ..

i left delays as is ..




as for the clean container code... that code works when its part of the original code...

maybe .. i should just call the clean container after each combine...

it would seriously slow down the macro .. but then again .. its not about speed .. its abouthands free combines

8-)

what do you think?
 
do you use a precompile? string TLO has been removed a long time ago so the code you have there is not correct for new versions of MQ2 (unless you manually put string TLO back).
don't put clean container after every combine it won't solve the problem of string TLO.

To fix the problems do what I said before about making container an outer variable and to fix cleanpack problems change:
/if (${String[${PackNumber}].Equal[e]}) {
to
/if (${PackNumber.Equal[e]}) {

also this will help:
Sub Event_Salvage
/call ClearCursor
/call cleanPack "${Container}"
/return

and this is the SLOW sucker:
sub ClearCursor
:Loop
/if (!${Cursor.ID}) /return
/autoinv
| /destroy
/delay ${Math.Calc[${DelayMult}*5]}s
/doevents
/goto :Loop
/return
change that *5 to *1 or *2 and it will be a lot faster.

and another thing - with run5 pathing screws up all the time.
 
Last edited:
someone with salvage .. pls try this

change

Rich (BB code):
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event Salvage
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub Event_Salvage
     /call cleanPack "${Container}"
/return


to
Rich (BB code):
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Sub Event Salvage
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub Event_Salvage
         /call readIni "${CombItemName}"
/return

my thought behind this is ... cleaning the container works when the macros run normally ... and before salvage became a problem .. it is called in the read ini sub...

SO why not just call it again .. to ensue the container is cleaned properly


let me know what happens

if this doesn't work .. then a custom clean function will be build just for salvage

as for the RUN5 messing with pathing.. have the toon walk ... thats what i do
 
If you didn't fix the string TLO as I showed you are still going to have a problem.
What I explained above works 100%.
 
go to tradeskill thread stickied above

all the TS in the zip file work

i have not posted the new code on these threads.. been working other macros









Go to zip file in Tradeskills thread stickied up top .. new code posted for this
 
Thanks, I'll give it a try...making a run from around 225 to 300 on smithing :/
 
Anyone give me an questament of about how much plat it would take running this from 238 to 300? I'm willing to blew about 200k onit but don't want to find out the hard way that 200k might only get me to say 258
 
Ok, I took my BS from 227 to 263 right now. It cost me about 235k. I am selling the sickles at a discount to just get rid of them but I am thinking it is going to cost about 750k till I am done. Plus, I think I am getting unlucky with skill ups, lol. I dont know any other way of getting it up to 300.


Army,

Having some trouble with this Macro. When I goto switch bags in the bank, one sickle gets stuck on my pointer.... Not sure what the fix is or where the problem is... Just letting you know.

Thanks,

Iceman.
 
MISTLETOE.mac

Users who are viewing this thread

Back
Top
Cart