// Multi Tool // // This macro does Digs, Mining , Limestone, Dirt, Loom, Hackling Rake. // This macro also does not work on timers and will watch your End, Str and Per // timers. It will do the next action as soon as the timers have expired. // Resolution 1024x768. If you have problems with the macro detecting colors, run // ColorTest. // //INSTRUCTIONS // // I use small action icons in Utility>Interface>Action icons appear in // smaller size. Have not tried with large icons. // ColorTest - Run this if you are having problems with the macro detecting colors. // Once the macro starts, it will ring a bell. You have 5 seconds // to place your mouse pointer over the spot you want to color test. // A bell will ring again when the macro is done. Look in the test // log to retrieve your RGB values for that color. You can use // these values for the Dirt and Limestone proceedures if needed. // // Dig - Pin the "Dig Deeper" window where ever you want it. // Put the mouse pointer over the "Dig Deeper" button. // Alt tab to ACTool(Don't move the mouse) and press F2 // It will then dig whenever the END timer expires. // // Dirt - This one is a bit more automated. // Have a shovel in inventory and stand over dirt. // Start the macro. // This one will find the dirt icon on it's own and dig whenever // the timer is ready. // // Firepit - This one will run 1 firepit. The firepit has to have a certain // orientation so I'll be posting a screenshot on my user page. The // initial pointer position is crucial also. Pin the firepit window to // the top left corner. Place the pointer in the position expained on // my user page. Don't move the mouse and alt tab to ACTool. Press Start // or F2 to start the macro. It will switch to the ATITD client and after // a few seconds will ring a bell. All that is happened so far is that the // mouse position has been stored and the macro is paused. At this point, // put everything you want in your fire, have an iron poker in your // inventory. This is run on a guilded firepit, if you need one for a // personal firepit, chat me and I'll add that feature. Once the fire // starts, Alt tab to ACTool once again and press the resume button // (Next to start button). I'm not claiming this to be 100% but once you // get the pointer in the right spot, it hasn't failed any test so far. // // Hackling Rake - Have rotten flax on hand // Make sure rake is on step 1 // Pin Rake window to top left corner. // Put mouse pointer over step 1 option. // Alt tab to windows (Don't touch mouse) Press F2 // This also will watch the end timer and act when ready. // // Hookah - Simple macro that will smoke the hookah for you. Put the window any place // you want it. Place pointer over the smoke option. It will keep trying to // smoke even when the hookah is empty. I'll add in a safeguard soon. // // Limestone - Simply start this macro. // It will gather limestone when the timer is ready. // // Loom - Load the loom // Pin Loom window to top left corner. // Put the mouse pointer over the item you want to create. // Alt tab to windows (Dont touch mouse) Press F2 // This will work the loom when the End timer is gone. // // Mine - Pin 18 crystals and put the windows stacked on top of each other // in the top left corner. Make sure the mine is empty (no Take // option). If you end up stopping the macro and want to restart // without going through the setup section, uncheck Mine Setup // when able. It will position the windows and randomly pull from a // window whenever the PerStr timers are gone. X Coord Work is there // if your mouse pointer is missing the work button. If the mouse is too // far to the right, decrease the number. // // Anka Include Objects.mac Constants Rounds = 0 YWork = 163 //95 //75 XWork = 89 XOrig = 0 YOrig = 0 AddX = 249 //100 AddY = 63 //95 //63 MouseX = 0 MouseY = 0 FireX = 23 FireY = 93 Fire1 = 423,644 Fire2 = 0 Fire3 = 0 Fire4 = 0 Fire5 = 0 Fire1X = 88 Fire1Y = 32 Fire2X = 74 Fire2Y = 58 Fire3X = 90 Fire3Y = 65 Fire4X = 107 Fire4Y = 58 Fire5X = 105 Fire5Y = 44 Red = 0 Green = 0 Blue = 0 ButtonX = 1010 ButtonY = 32 SubX = 31 Button = 0 Num = 0 First = 0 WinX = 3 WinY = 29 //625 //593 DragX = 3 DragY = 115 //49 //29 NewX = 0 NewY = 0 Minval = 1 Maxval = 18 RanX = 0 RanY = 0 Setup = 0 Guild = 0 Done = 0 SDelay = 100 MDelay = 250 End SetConst MouseX = {MouseX} SetConst MouseY = {MouseY} Form MultiTool, Choose your Job ed1=EditBox:Rounds:1 ed2=Combobox:Which Job?:Dig,Dirt,FirePit,Hackling,Hookah,Limestone,Loom,Mine,ColorTest ed3=Checkbox:Guilded Mine:False ed4=Checkbox:Mine Setup:True ed5=Checkbox:StokeBell:True ed6=Checkbox:Mine Repaired:False ed7=EditBox:X Coord Work:240 end FormLoad MultiTool, MultiTool.frm if ShowForm MultiTool Set Rounds = MultiTool[ed1] Set XWork = MultiTool[ed7] If MultiTool[ed4] = True setConst Setup = 0 else setConst Setup = 1 End else Stop end FormSave MultiTool, MultiTool.frm MousePos 100, 20 Delay 250 LeftClick MousePos 25, 60 Delay 5000 Loop $Rounds Call MultiTool[ed2] Call Checkforlostfocus End Procedure FirePit If $Setup = 0 Bell Asterisk Pause SetConst Setup = 1 End MousePos 100, 20 Delay 250 LeftClick Delay 1000 MousePos 15, 45 Delay 100 Rightclick SetConst Done = 0 If $Button = 0 Compute NewX = $MouseX + $Fire1X Compute NewY = $MouseY + $Fire1Y SetConst Fire1 = $NewX,$NewY Compute NewX = $MouseX + $Fire2X Compute NewY = $MouseY + $Fire2Y SetConst Fire2 = $NewX,$NewY Compute NewX = $MouseX + $Fire3X Compute NewY = $MouseY + $Fire3Y SetConst Fire3 = $NewX,$NewY Compute NewX = $MouseX + $Fire4X Compute NewY = $MouseY + $Fire4Y SetConst Fire4 = $NewX,$NewY Compute NewX = $MouseX + $Fire5X Compute NewY = $MouseY + $Fire5Y SetConst Fire5 = $NewX,$NewY Inc Button End While $Done = 0 Mousepos $Fire1 Delay 100 LoadRGB {mousex},{mousey} IF {RGBGreen} = 255 MousePos $Fire2 Delay 100 LoadRGB {mousex},{mousey} IF {RGBGreen} = 255 MousePos $Fire3 Delay 100 LoadRGB {mousex},{mousey} IF {RGBGreen} = 255 MousePos $Fire4 Delay 100 LoadRGB {mousex},{mousey} IF {RGBGreen} = 255 MousePos $Fire5 Delay 100 LoadRGB {mousex},{mousey} IF {RGBGreen} = 255 //Stoke MousePos 37, 93 Delay 200 Rightclick If MultiTool[ed5] = True bell asterisk End Delay 26000 MousePos 28, 61 Delay 200 Rightclick SetConst Done = 1 End End End End End End End Procedure Dig SetConst Button = 0 While $Button = 0 IsObject Endur at 973, 79 Delay 500 Else SetConst XOrig = {mousex} SetConst YOrig = {mousey} MousePos $MouseX, $MouseY Delay 200 Rightclick Delay 500 End End SetConst Button = 1 End Procedure Hookah SetConst Button = 0 While $Button = 0 IsObject Con at 975, 79 Delay 500 Else SetConst XOrig = {mousex} SetConst YOrig = {mousey} MousePos $MouseX, $MouseY Delay 200 Rightclick End End SetConst Button = 1 End Procedure Hackling Loop Num = 1 to 4 SetConst Button = 0 While $Button = 0 IsObject Endur at 973, 79 Delay 500 Else SetConst XOrig = {mousex} SetConst YOrig = {mousey} MousePos 5, 32 Delay 200 Rightclick Delay 200 If $Num < 2 or $Num > 3 MousePos $MouseX, $MouseY Delay 250 Rightclick Delay 200 Else Compute MouseY = $MouseY + 15 MousePos $MouseX, $MouseY Delay 250 Rightclick Delay 200 Compute MouseY = $MouseY - 15 End Mousepos $XOrig, $YOrig SetConst Button = 1 End End End End Procedure Loom SetConst Button = 0 While $Button = 0 IsObject Endur at 973, 79 Delay 500 Else SetConst XOrig = {mousex} SetConst YOrig = {mousey} MousePos $MouseX, $MouseY Delay 250 Rightclick Delay 200 Mousepos $XOrig, $YOrig SetConst Button = 1 End End End Procedure Mine If $Guild = 0 If MultiTool[ed3] = True Call GuildMine End if MultiTool[ed6] = true Call Guildmine End End If $Setup = 0 Call Minesetup End SetConst Button = 0 While $Button = 0 IsObject PerStr at 924, 80 Delay 500 Else SetConst Num = $Random Timestamp $Num Case When $Num > 15 //12 Compute NewY = $YWork + $AddY * 5 //2 Compute NewX = $AddX * ($Num - 16) + $XWork When $Num > 12 Compute NewY = $YWork + $AddY * 4 Compute NewX = $AddX * ($Num - 13) + $XWork When $Num > 9 Compute NewY = $YWork + $AddY * 3 Compute NewX = $AddX * ($Num - 10) + $XWork When $Num > 6 Compute NewY = $YWork + $AddY * 2 Compute NewX = $AddX * ($Num - 7) + $XWork When $Num > 3 Compute NewY = $YWork + $AddY Compute NewX = $AddX * ($Num - 4) + $XWork Else Compute NewX = $AddX * ($Num - 1) + $XWork Compute NewY = $YWork End MousePos $NewX, $NewY Timestamp $NewX, $NewY Delay 250 Rightclick Delay 2250 SetConst Button = 1 End End End Procedure Limestone If $Button = 0 SetConst Red = 113 SetConst Green = 146 SetConst Blue = 100 Call FindButton End SetConst Button = 1 While $Button = 1 IsObject Endur at 973, 79 Delay 500 Else SetConst XOrig = {mousex} SetConst YOrig = {mousey} MousePos $ButtonX, $ButtonY Delay 250 Rightclick Delay 200 Mousepos $XOrig, $YOrig Delay 10000 SetConst Button = 2 End End End Procedure Dirt If $Button = 0 SetConst Red = 91 //104 SetConst Green = 138 //149 SetConst Blue = 184 //192 Call FindButton End SetConst Button = 1 While $Button = 1 IsObject Endur at 973, 79 Delay 500 Else SetConst XOrig = {mousex} SetConst YOrig = {mousey} MousePos $ButtonX, $ButtonY Delay 250 Rightclick Delay 200 Mousepos $XOrig, $YOrig Delay 10000 SetConst Button = 2 End End End Procedure Pull SetConst XOrig = {MouseX} SetConst YOrig = {MouseY} MousePos $RanX, $RanY Delay 200 Rightclick Delay 100 Compute RanX = $RanX + 14 Compute RanY = $RanY - 3 MousePos $RanX, $RanY Delay 250 Rightclick Delay 100 MousePos $XOrig, $YOrig Delay 100 End Procedure FindButton MousePos $ButtonX, $ButtonY Delay 200 LoadRGB {mousex}, {mousey} While {rgbred} <> $Red and {rgbgreen} <> $Green and {rgbblue} <> $Blue Compute ButtonX = $ButtonX - $SubX MousePos $ButtonX, $ButtonY Delay 200 LoadRGB {mousex}, {mousey} End SetConst ButtonX = {mousex} SetConst ButtonY = {mousey} SetConst Button = 1 End Procedure MineSetup Loop 6 Loop 3 MousePos $WinX, $WinY Delay $MDelay Dragto $DragX, $DragY Compute DragX = $DragX + $AddX Call Checkforlostfocus End SetConst DragX = 3 Compute DragY = $DragY + $AddY End SetConst Setup = 1 End Procedure Generate Compute Minval = $MouseX - 49 Compute Maxval = $MouseX + 50 SetConst RanX = $Random Compute Minval = $MouseY - 57 Compute Maxval = $MouseY + 83 SetConst RanY = $Random End Procedure GuildMine //Compute WinY = $WinY - 16 Compute AddY = $AddY + 16 Compute YWork = $YWork + 16 //Compute DragY = $DragY + 16 Set Guild = 1 End Procedure ColorTest Bell Asterisk Delay 5000 LoadRGB {mousex},{mousey} Timestamp RGB - {rgbred}, {rgbgreen}, {rgbblue} End Procedure CheckforLostFocus if {activewindow} contains eGenesis Exit Else Stop End End Function Random Compute Result = int(($Maxval - $Minval + 1) * rnd(1)) + $Minval End Bell Asterisk //Written with ACTool 5.3.0 by Anka