The Wiki for Tale 4 is in read-only mode and is available for archival and reference purposes only. Please visit the current Tale 11 Wiki in the meantime.
If you have any issues with this Wiki, please post in #wiki-editing on Discord or contact Brad in-game.
Difference between revisions of "User:Galagah"
From A Tale in the Desert
Jump to navigationJump to searchLine 25: | Line 25: | ||
Delay 2700 | Delay 2700 | ||
Call Clicky | Call Clicky | ||
+ | |||
+ | '''Anka's CC Hearth Macro readjusted to run at 1680x1050 resolution , uses ACTool''' | ||
+ | |||
+ | //Charcoal Hearth | ||
+ | // this is Anka's CC hearth Macro from T3 | ||
+ | // I've re-adjusted this macro to run in 1680x1050 resolution , only tried it with 4 hearths so far , but works fine. | ||
+ | // Not lost a batch yet ( Galagah) | ||
+ | // | ||
+ | // Setup: I've added a setup routine to the macro. Pin the windows on top of each | ||
+ | // other in the top left corner. I suggest at least 200 wood per hearth | ||
+ | // and about 15 water per hearth to be safe. All hearths are slightly | ||
+ | // different but I suggest that you put your fastest burning hearths first | ||
+ | // in line. You can tweak the settings in the built in menu. | ||
+ | // | ||
+ | // Hearths: Total number of hearths you are running. | ||
+ | // Hearths Across: How many Hearths on the top row of windows. Make sure | ||
+ | // you set this each time even if you are running 1 hearth. | ||
+ | // Variables in the macro are set off of this number. | ||
+ | // Guilded?: Check this box if you are using guilded hearths. | ||
+ | // Need Setup?: Check this box if you need the macro to position your | ||
+ | // windows that are stacked in top left corner. This is | ||
+ | // usefull if you run another round on the hearths and your | ||
+ | // windows are set up already. Check if needed or not. | ||
+ | // Stealth Mouse: Check this if you don't want to see the mouse move around | ||
+ | // on the hearth windows. When checked, it will save your | ||
+ | // mouse position, move to the spot it needs, perform its | ||
+ | // action then return the pointer to where it started. Alows | ||
+ | // you to change chat windows are dig in chest while the | ||
+ | // macro is running :) | ||
+ | // Heat: Threshold for Heat bar, increase or decrease as needed. If heat | ||
+ | // reaches this lvl, water will be added. | ||
+ | // Wood: Wood threshold, adds wood up to this point. | ||
+ | // Water: Alowable water level, not much play here. If the water lvl is above | ||
+ | // this lvl, water will not be added. Prevents drowning the hearth. | ||
+ | // RGBGreen: Used to detect completion bar. If the macro adds a bunch of water | ||
+ | // before the macro is done then moves to the next hearth, increase | ||
+ | // this number. Or lower it if it doesnt see green. | ||
+ | // RGBBlue: Works just like RGBGreen but for blue bars. If the macro keeps | ||
+ | // adding wood till the hearth is full, it's not seeing blue. If | ||
+ | // this happens, lower this number. Other problem may be that the | ||
+ | // mouse pointer is not lining up over the bar correctly. Run the | ||
+ | // Mouse Test. | ||
+ | // Check Bars Interval: This is the pause time between bar checks. The | ||
+ | // default value of 4000 works well for 1-8 hearths | ||
+ | // but you may need to decrease this number if you | ||
+ | // are running more than 8. | ||
+ | // Mouse Test: This is to test if the mouse pointer is lining up correctly | ||
+ | // with your windows. Run 1 hearth manually and start the macro | ||
+ | // with this option checked. You don't need to worry about any | ||
+ | // other option. It will move over the Heat, Wood, Water, Danger, | ||
+ | // and Status bar then over the Wood and Water buttons 10 times | ||
+ | // before it stops. If these positions are off a bit, you can | ||
+ | // change the Y coordinates below in the constants section. | ||
+ | // | ||
+ | // The macro doesn't watch Oxygen. I was going to add a vent option but this | ||
+ | // macro runs very well and never fails for me. If your oxygen is getting too | ||
+ | // high, try adding more wood. But, by adding more wood, you add more heat | ||
+ | // which may require you adding more water. A small amount of water in the | ||
+ | // presence of heat evaporates producing more Oxygen. :) Find the balance | ||
+ | // you want. | ||
+ | // | ||
+ | // ENJOY! :) | ||
+ | // Anka | ||
+ | // | ||
+ | Constants | ||
+ | //User Definable variables | ||
+ | Hearths = 4 | ||
+ | HeatX = 165 | ||
+ | WoodX = 107 | ||
+ | WaterX = 76 | ||
+ | DangerX = 165 | ||
+ | RGBBlue = 220 | ||
+ | RGBGreen = 240 | ||
+ | Guild = 1 | ||
+ | |||
+ | // Y Coordinates - Don't change unless you are having a problem. | ||
+ | RegY = 74 // Y coord for Regulator button | ||
+ | BeginY = 245 // Y coord for Begin Button | ||
+ | HeatY = 156 // Y coord for Heat Bar | ||
+ | WoodY = 180 // Y coord for Wood Bar | ||
+ | WaterY = 192 // Y coord for Water Bar | ||
+ | DangerY = 204 // Y coord for Danger Bar | ||
+ | StatusY = 216 // Y coord for Status Bar | ||
+ | WoodBY = 250 // Y coord for Wood and Water buttons | ||
+ | //End User variables | ||
+ | |||
+ | Hrow = 0 | ||
+ | Hrow1 = 0 | ||
+ | AddX = 226 | ||
+ | Add2X = 15 | ||
+ | Add1Y = 65 | ||
+ | Add2Y = 17 | ||
+ | Add3Y = 250 | ||
+ | RegX = 47 | ||
+ | BeginX = 111 | ||
+ | NewX = 0 | ||
+ | New2X = 0 | ||
+ | New2Y = 0 | ||
+ | NewY = 0 | ||
+ | Heat = 0 | ||
+ | Wood = 0 | ||
+ | Water = 0 | ||
+ | Danger = 0 | ||
+ | Status = 0 | ||
+ | OxyY = 168 | ||
+ | StatusX = 167 | ||
+ | WoodBX = 35 | ||
+ | WaterBX = 85 | ||
+ | Num = 0 | ||
+ | Jump = 5 | ||
+ | JumpM = 0 | ||
+ | Jumped = 0 | ||
+ | Used = 0 | ||
+ | MDelay = 250 | ||
+ | SDelay = 200 | ||
+ | S1Delay = 100 | ||
+ | Count = 0 | ||
+ | CountM = 0 | ||
+ | MouseX = 0 | ||
+ | MouseY = 0 | ||
+ | CheckDelay = 0 | ||
+ | Setup = 0 | ||
+ | SetX = 10 | ||
+ | SetY = 40 | ||
+ | SetAddX = 227 | ||
+ | SetAddY = 250 | ||
+ | SetLoop = 0 | ||
+ | Mouse = 1 | ||
+ | OrigX = 0 | ||
+ | OrigY = 0 | ||
End | End | ||
+ | |||
+ | Form ccHearth, Settings | ||
+ | ed1=Combobox:Hearths:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 | ||
+ | ed13=Editbox:Hearths Across:4 | ||
+ | ed2=CheckBox:Guilded?:True | ||
+ | ed14=Checkbox:Need Setup?:True | ||
+ | ed15=Checkbox:Stealth Mouse:True | ||
+ | ed3=Editbox:Heat (75-188):165 | ||
+ | //ed10=Editbox:HeatMin (75-188):116 | ||
+ | //ed11=Editbox:HeatMax (75-188):184 | ||
+ | //ed4=Editbox:Low Oxy (75-188):82 | ||
+ | //ed5=Editbox:High Oxy (75-188):134 | ||
+ | ed6=Editbox:Wood (75-188):107 | ||
+ | ed7=Editbox:Water (75-188):76 | ||
+ | ed8=Editbox:RGBGreen:240 | ||
+ | ed9=Editbox:RGBBlue:220 | ||
+ | ed12=Editbox:Check Bars Interval (miliseconds):4000 | ||
+ | ed16=Checkbox:Mouse Check:False | ||
+ | end | ||
+ | |||
+ | FormLoad ccHearth, ccHearth.frm | ||
+ | |||
+ | if ShowForm ccHearth | ||
+ | SetConst Hearths = ccHearth[ed1] | ||
+ | If ccHearth[ed2] = True | ||
+ | SetConst Guild = 1 | ||
+ | Else | ||
+ | SetConst Guild = 0 | ||
+ | End | ||
+ | SetConst HeatX = ccHearth[ed3] | ||
+ | //SetConst Oxy1X = ccHearth[ed4] | ||
+ | //SetConst Oxy2X = ccHearth[ed5] | ||
+ | SetConst WoodX = ccHearth[ed6] | ||
+ | SetConst WaterX = ccHearth[ed7] | ||
+ | SetConst RGBGreen = ccHearth[ed8] | ||
+ | SetConst RGBBlue = ccHearth[ed9] | ||
+ | //SetConst HeatMin = ccHearth[ed10] | ||
+ | //SetConst HeatMax = ccHearth[ed11] | ||
+ | SetConst CheckDelay = ccHearth[ed12] | ||
+ | Set HRow = ccHearth[ed13] | ||
+ | Compute SetLoop = $Hearths - 1 | ||
+ | Compute HRow1 = $Hrow + 1 | ||
+ | If ccHearth[ed15] = True | ||
+ | Set Mouse = 0 | ||
+ | End | ||
+ | else | ||
+ | Stop | ||
+ | end | ||
+ | |||
+ | FormSave ccHearth, ccHearth.frm | ||
+ | |||
+ | MousePos 100, 20 //Activates eGenesis window.. Don't run ACTool maximized. | ||
+ | Delay $MDelay | ||
+ | LeftClick | ||
+ | Delay 2000 | ||
+ | |||
+ | If $Guild = 1 | ||
+ | Call Guild | ||
+ | End | ||
+ | if ccHearth[ed16] = True | ||
+ | Call HearthTest | ||
+ | End | ||
+ | If ccHearth[ed14] = True | ||
+ | Call Setup | ||
+ | End | ||
+ | |||
+ | Call SetReg | ||
+ | SetConst NewX = $BeginX | ||
+ | SetConst NewY = $BeginY | ||
+ | SetConst Count = 1 | ||
+ | Loop $Hearths | ||
+ | If $Count = $HRow1 //$Jump | ||
+ | SetConst NewX = $BeginX | ||
+ | Compute NewY = $BeginY + $Add3Y | ||
+ | End | ||
+ | MousePos $NewX, $NewY | ||
+ | Delay $MDelay | ||
+ | Rightclick | ||
+ | Delay $MDelay | ||
+ | Compute NewX = $NewX + $AddX | ||
+ | Compute Count = $Count + 1 | ||
+ | End | ||
+ | SetConst NewX = $BeginX //Dont remember why this is here :) | ||
+ | Call Main | ||
+ | |||
+ | Procedure Setup | ||
+ | Set NewX = $SetX | ||
+ | Set NewY = $SetY | ||
+ | Loop $SetLoop | ||
+ | Mousepos $SetX, $SetY | ||
+ | if {loopno} = $HRow | ||
+ | Set NewX = $SetX | ||
+ | Compute NewY = $SetY + $SetAddY | ||
+ | else | ||
+ | Compute NewX = $NewX + $SetAddX | ||
+ | End | ||
+ | Dragto $NewX, $NewY | ||
+ | End | ||
+ | End | ||
+ | |||
+ | Procedure Main | ||
+ | SetConst CountM = 1 | ||
+ | SetConst Status = 0 | ||
+ | Compute JumpM = $HRow1 - 1 //$Jump - 1 | ||
+ | Loop $Hearths | ||
+ | If $CountM = $HRow1 //$Jump | ||
+ | // may have to use New Newx and newy variables in Main | ||
+ | SetConst NewX = $StatusX | ||
+ | Compute NewY = $StatusY + $Add3Y | ||
+ | SetConst New2X = $WaterBX | ||
+ | Compute New2Y = $WoodBY + $Add3Y | ||
+ | End | ||
+ | |||
+ | While $Status = 0 | ||
+ | Call CheckBars | ||
+ | If $Status = 1 | ||
+ | Call Snuff | ||
+ | //code to advance to next hearth | ||
+ | Compute Used = $Used + 1 | ||
+ | If $Used = $JumpM | ||
+ | Compute HeatX = $HeatX - (($Used - 1) * $AddX) | ||
+ | Compute HeatY = $HeatY + $Add3Y | ||
+ | Compute WoodX = $WoodX - (($Used - 1) * $AddX) | ||
+ | Compute WoodY = $WoodY + $Add3Y | ||
+ | Compute WaterX = $WaterX - (($Used - 1) * $AddX) | ||
+ | Compute WaterY = $WaterY + $Add3Y | ||
+ | Compute DangerX = $DangerX - (($Used - 1) * $AddX) | ||
+ | Compute DangerY = $DangerY + $Add3Y | ||
+ | Compute StatusX = $StatusX - (($Used - 1) * $AddX) | ||
+ | Compute StatusY = $StatusY + $Add3Y | ||
+ | //Compute WaterBX = $WaterBX - (($Used -1) * $AddX) | ||
+ | //Compute WoodBX = $WoodBX - (($Used - 1 ) * $AddX) | ||
+ | //Compute WoodBY = $WoodBY + $Add3Y | ||
+ | SetConst Jumped = 1 | ||
+ | Continue | ||
+ | Else | ||
+ | Compute HeatX = $HeatX + $AddX | ||
+ | Compute WoodX = $WoodX + $AddX | ||
+ | Compute WaterX = $WaterX + $AddX | ||
+ | Compute DangerX = $DangerX + $AddX | ||
+ | Compute StatusX = $StatusX + $AddX | ||
+ | //Compute WaterBX = $WaterBX + $AddX | ||
+ | //Compute WoodBX = $WoodBX + $AddX | ||
+ | End | ||
+ | Continue | ||
+ | End | ||
+ | If $Heat = 0 and $Danger = 0 and $Wood = 0 | ||
+ | Call Wood | ||
+ | Else | ||
+ | If $Heat = 1 or $Danger = 1 | ||
+ | If $Water = 0 | ||
+ | Call Water | ||
+ | End | ||
+ | End | ||
+ | End | ||
+ | |||
+ | Delay $CheckDelay | ||
+ | End | ||
+ | Compute CountM = $CountM + 1 | ||
+ | SetConst Status = 0 | ||
+ | End | ||
+ | End | ||
+ | |||
+ | Procedure CheckBars | ||
+ | If $Mouse = 1 | ||
+ | MousePos $HeatX, $HeatY | ||
+ | Delay $SDelay | ||
+ | end | ||
+ | LoadRGB $HeatX, $HeatY | ||
+ | if {RGBBlue} > $RGBBlue | ||
+ | SetConst Heat = 1 | ||
+ | Else | ||
+ | SetConst Heat = 0 | ||
+ | End | ||
+ | If $Mouse = 1 | ||
+ | MousePos $WoodX, $WoodY | ||
+ | Delay $S1Delay | ||
+ | end | ||
+ | LoadRGB $WoodX, $WoodY | ||
+ | if {RGBBlue} > $RGBBlue | ||
+ | SetConst Wood = 1 | ||
+ | Else | ||
+ | SetConst Wood = 0 | ||
+ | End | ||
+ | If $Mouse = 1 | ||
+ | MousePos $WaterX, $WaterY | ||
+ | Delay $S1Delay | ||
+ | End | ||
+ | LoadRGB $WaterX, $WaterY | ||
+ | if {RGBBlue} > $RGBBlue | ||
+ | SetConst Water = 1 | ||
+ | Else | ||
+ | SetConst Water = 0 | ||
+ | End | ||
+ | If $Mouse = 1 | ||
+ | MousePos $DangerX, $DangerY | ||
+ | Delay $S1Delay | ||
+ | End | ||
+ | LoadRGB $DangerX, $DangerY | ||
+ | if {RGBBlue} > $RGBBlue | ||
+ | SetConst Danger = 1 | ||
+ | Else | ||
+ | SetConst Danger = 0 | ||
+ | End | ||
+ | If $Mouse = 1 | ||
+ | MousePos $StatusX, $StatusY | ||
+ | End | ||
+ | LoadRGB $StatusX, $StatusY | ||
+ | if {RGBGreen} > $RGBGreen | ||
+ | SetConst Status = 1 | ||
+ | Else | ||
+ | SetConst Status = 0 | ||
+ | End | ||
+ | End | ||
+ | |||
+ | Procedure Water | ||
+ | SetConst NewX = $WaterBX | ||
+ | SetConst NewY = $WoodBY | ||
+ | Loop $Hearths | ||
+ | IF {loopno} = $HRow1 //$Jump | ||
+ | SetConst NewX = $WaterBX | ||
+ | Compute NewY = $WoodBY + $Add3Y | ||
+ | End | ||
+ | If {loopno} > $Used | ||
+ | If $Mouse = 0 | ||
+ | Set OrigX = {mousex} | ||
+ | Set OrigY = {mousey} | ||
+ | End | ||
+ | MousePos $NewX, $NewY | ||
+ | Delay $SDelay | ||
+ | Rightclick | ||
+ | Delay $SDelay | ||
+ | If $Mouse = 0 | ||
+ | Mousepos $OrigX, $OrigY | ||
+ | End | ||
+ | End | ||
+ | Compute NewX = $NewX + $AddX | ||
+ | End | ||
+ | SetConst NewX = $WaterBX | ||
+ | End | ||
+ | |||
+ | Procedure Snuff | ||
+ | SetConst New2X = $WaterBX | ||
+ | SetConst New2Y = $WoodBY | ||
+ | Compute Num = $Used + 1 | ||
+ | Loop $Hearths | ||
+ | IF {loopno} = $Hrow1 //$Jump | ||
+ | SetConst New2X = $WaterBX | ||
+ | Compute New2Y = $WoodBY + $Add3Y | ||
+ | End | ||
+ | If {loopno} = $Num | ||
+ | If $Mouse = 0 | ||
+ | Set OrigX = {mousex} | ||
+ | Set OrigY = {mousey} | ||
+ | End | ||
+ | MousePos $New2X, $New2Y | ||
+ | Loop 8 | ||
+ | Rightclick | ||
+ | End | ||
+ | If $Mouse = 0 | ||
+ | Mousepos $OrigX, $OrigY | ||
+ | End | ||
+ | End | ||
+ | Compute New2X = $New2X + $AddX | ||
+ | End | ||
+ | End | ||
+ | |||
+ | Procedure Wood | ||
+ | SetConst NewX = $WoodBX | ||
+ | SetConst NewY = $WoodBY | ||
+ | Loop $Hearths | ||
+ | IF {loopno} = $HRow1 //$Jump | ||
+ | SetConst NewX = $WoodBX | ||
+ | Compute NewY = $WoodBY + $Add3Y | ||
+ | End | ||
+ | If {loopno} > $Used | ||
+ | If $Mouse = 0 | ||
+ | Set OrigX = {mousex} | ||
+ | Set OrigY = {mousey} | ||
+ | End | ||
+ | MousePos $NewX, $NewY | ||
+ | Delay $SDelay | ||
+ | Rightclick | ||
+ | Delay $SDelay | ||
+ | If $Mouse = 0 | ||
+ | MousePos $OrigX, $OrigY | ||
+ | End | ||
+ | End | ||
+ | Compute NewX = $NewX + $AddX | ||
+ | End | ||
+ | SetConst NewX = $WoodBX | ||
+ | End | ||
+ | |||
+ | Procedure SetReg | ||
+ | SetConst NewX = $RegX | ||
+ | SetConst Count = 1 | ||
+ | Loop $Hearths | ||
+ | If $Count = $HRow1 | ||
+ | SetConst NewX = $RegX | ||
+ | Compute RegY = $RegY + $Add3Y | ||
+ | End | ||
+ | MousePos $NewX, $RegY | ||
+ | Delay $MDelay | ||
+ | Rightclick | ||
+ | Compute NewX = $NewX + $Add2X | ||
+ | If $Count > $HRow | ||
+ | Compute NewY = $RegY + $Add2Y | ||
+ | else | ||
+ | Compute NewY = $RegY + $Add1Y | ||
+ | end | ||
+ | MousePos $NewX, $NewY | ||
+ | Delay $MDelay | ||
+ | Rightclick | ||
+ | Delay $MDelay | ||
+ | Compute NewX = $NewX + $AddX | ||
+ | Compute Count = $Count + 1 | ||
+ | End | ||
+ | SetConst NewX = $RegX | ||
+ | SetConst Count = 1 | ||
+ | End | ||
+ | |||
+ | Procedure Guild | ||
+ | Compute BeginX = $BeginX - 7 | ||
+ | Compute BeginY = $BeginY + 16 | ||
+ | Compute RegY = $RegY + 16 | ||
+ | Compute RegX = $RegX - 14 | ||
+ | Compute AddX = $AddX - 15 | ||
+ | Compute Add3Y = $Add3Y + 16 | ||
+ | Compute Add1Y = $Add1Y - 16 | ||
+ | Compute WoodBY = $WoodBY + 16 | ||
+ | Compute HeatX = $HeatX - 4 | ||
+ | Compute HeatY = $HeatY + 16 | ||
+ | Compute WoodX = $WoodX - 1 | ||
+ | Compute WoodY = $WoodY + 16 | ||
+ | Compute WaterY = $WaterY + 16 | ||
+ | Compute DangerX = $DangerX - 4 | ||
+ | Compute DangerY = $DangerY + 16 | ||
+ | Compute StatusX = $StatusX - 5 | ||
+ | Compute StatusY = $StatusY + 16 | ||
+ | Set SetAddX = 212 | ||
+ | Set SetAddY = 266 | ||
+ | End | ||
+ | |||
+ | Procedure HearthTest | ||
+ | Loop 10 | ||
+ | MousePos $HeatX, $HeatY | ||
+ | Delay 2000 | ||
+ | |||
+ | MousePos $WoodX, $WoodY | ||
+ | Delay 2000 | ||
+ | |||
+ | MousePos $WaterX, $WaterY | ||
+ | Delay 2000 | ||
+ | |||
+ | MousePos $DangerX, $DangerY | ||
+ | Delay 2000 | ||
+ | |||
+ | MousePos $StatusX, $StatusY | ||
+ | Delay 2000 | ||
+ | |||
+ | MousePos $WoodBX, $WoodBY | ||
+ | Delay 2000 | ||
+ | |||
+ | MousePos $WaterBX, $WoodBY | ||
+ | Delay 2000 | ||
+ | end | ||
+ | Stop | ||
+ | End | ||
+ | //Written with ACTool 5.3.0 by Anka | ||
+ | Bell Asterisk | ||
+ | |||
+ | |||
+ | End |
Latest revision as of 12:29, 17 January 2009
Elder in Lost Souls
Simple Grass macro using ACTool , works on vista and xp ( vista run as administrator ). Resolution of 1440x900
// Grass gather macro -- 1440x900 resolution // Set camera to cartographer view (F8 twice) // and zoom all the way in making sure you have a full screen of grass // Set line 13 to the total grass you want to collect // Remember to divide total grass by amount per pick ( ie 1/3 @ RS 7 with scythe and basket) // Action icons are large , if you use small , change line 9 to correct position Procedure Clicky MousePos 1339, 84|100 Leftclick | 200 End Loop 75 // change this to the amount you want Call Clicky MousePos 923, 469|550 LeftClick Delay 2700 Call Clicky MousePos 498, 469|550 LeftClick Delay 2700 Call Clicky
Anka's CC Hearth Macro readjusted to run at 1680x1050 resolution , uses ACTool
//Charcoal Hearth // this is Anka's CC hearth Macro from T3 // I've re-adjusted this macro to run in 1680x1050 resolution , only tried it with 4 hearths so far , but works fine. // Not lost a batch yet ( Galagah) // // Setup: I've added a setup routine to the macro. Pin the windows on top of each // other in the top left corner. I suggest at least 200 wood per hearth // and about 15 water per hearth to be safe. All hearths are slightly // different but I suggest that you put your fastest burning hearths first // in line. You can tweak the settings in the built in menu. // // Hearths: Total number of hearths you are running. // Hearths Across: How many Hearths on the top row of windows. Make sure // you set this each time even if you are running 1 hearth. // Variables in the macro are set off of this number. // Guilded?: Check this box if you are using guilded hearths. // Need Setup?: Check this box if you need the macro to position your // windows that are stacked in top left corner. This is // usefull if you run another round on the hearths and your // windows are set up already. Check if needed or not. // Stealth Mouse: Check this if you don't want to see the mouse move around // on the hearth windows. When checked, it will save your // mouse position, move to the spot it needs, perform its // action then return the pointer to where it started. Alows // you to change chat windows are dig in chest while the // macro is running :) // Heat: Threshold for Heat bar, increase or decrease as needed. If heat // reaches this lvl, water will be added. // Wood: Wood threshold, adds wood up to this point. // Water: Alowable water level, not much play here. If the water lvl is above // this lvl, water will not be added. Prevents drowning the hearth. // RGBGreen: Used to detect completion bar. If the macro adds a bunch of water // before the macro is done then moves to the next hearth, increase // this number. Or lower it if it doesnt see green. // RGBBlue: Works just like RGBGreen but for blue bars. If the macro keeps // adding wood till the hearth is full, it's not seeing blue. If // this happens, lower this number. Other problem may be that the // mouse pointer is not lining up over the bar correctly. Run the // Mouse Test. // Check Bars Interval: This is the pause time between bar checks. The // default value of 4000 works well for 1-8 hearths // but you may need to decrease this number if you // are running more than 8. // Mouse Test: This is to test if the mouse pointer is lining up correctly // with your windows. Run 1 hearth manually and start the macro // with this option checked. You don't need to worry about any // other option. It will move over the Heat, Wood, Water, Danger, // and Status bar then over the Wood and Water buttons 10 times // before it stops. If these positions are off a bit, you can // change the Y coordinates below in the constants section. // // The macro doesn't watch Oxygen. I was going to add a vent option but this // macro runs very well and never fails for me. If your oxygen is getting too // high, try adding more wood. But, by adding more wood, you add more heat // which may require you adding more water. A small amount of water in the // presence of heat evaporates producing more Oxygen. :) Find the balance // you want. // // ENJOY! :) // Anka // Constants //User Definable variables Hearths = 4 HeatX = 165 WoodX = 107 WaterX = 76 DangerX = 165 RGBBlue = 220 RGBGreen = 240 Guild = 1 // Y Coordinates - Don't change unless you are having a problem. RegY = 74 // Y coord for Regulator button BeginY = 245 // Y coord for Begin Button HeatY = 156 // Y coord for Heat Bar WoodY = 180 // Y coord for Wood Bar WaterY = 192 // Y coord for Water Bar DangerY = 204 // Y coord for Danger Bar StatusY = 216 // Y coord for Status Bar WoodBY = 250 // Y coord for Wood and Water buttons //End User variables Hrow = 0 Hrow1 = 0 AddX = 226 Add2X = 15 Add1Y = 65 Add2Y = 17 Add3Y = 250 RegX = 47 BeginX = 111 NewX = 0 New2X = 0 New2Y = 0 NewY = 0 Heat = 0 Wood = 0 Water = 0 Danger = 0 Status = 0 OxyY = 168 StatusX = 167 WoodBX = 35 WaterBX = 85 Num = 0 Jump = 5 JumpM = 0 Jumped = 0 Used = 0 MDelay = 250 SDelay = 200 S1Delay = 100 Count = 0 CountM = 0 MouseX = 0 MouseY = 0 CheckDelay = 0 Setup = 0 SetX = 10 SetY = 40 SetAddX = 227 SetAddY = 250 SetLoop = 0 Mouse = 1 OrigX = 0 OrigY = 0 End Form ccHearth, Settings ed1=Combobox:Hearths:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ed13=Editbox:Hearths Across:4 ed2=CheckBox:Guilded?:True ed14=Checkbox:Need Setup?:True ed15=Checkbox:Stealth Mouse:True ed3=Editbox:Heat (75-188):165 //ed10=Editbox:HeatMin (75-188):116 //ed11=Editbox:HeatMax (75-188):184 //ed4=Editbox:Low Oxy (75-188):82 //ed5=Editbox:High Oxy (75-188):134 ed6=Editbox:Wood (75-188):107 ed7=Editbox:Water (75-188):76 ed8=Editbox:RGBGreen:240 ed9=Editbox:RGBBlue:220 ed12=Editbox:Check Bars Interval (miliseconds):4000 ed16=Checkbox:Mouse Check:False end FormLoad ccHearth, ccHearth.frm if ShowForm ccHearth SetConst Hearths = ccHearth[ed1] If ccHearth[ed2] = True SetConst Guild = 1 Else SetConst Guild = 0 End SetConst HeatX = ccHearth[ed3] //SetConst Oxy1X = ccHearth[ed4] //SetConst Oxy2X = ccHearth[ed5] SetConst WoodX = ccHearth[ed6] SetConst WaterX = ccHearth[ed7] SetConst RGBGreen = ccHearth[ed8] SetConst RGBBlue = ccHearth[ed9] //SetConst HeatMin = ccHearth[ed10] //SetConst HeatMax = ccHearth[ed11] SetConst CheckDelay = ccHearth[ed12] Set HRow = ccHearth[ed13] Compute SetLoop = $Hearths - 1 Compute HRow1 = $Hrow + 1 If ccHearth[ed15] = True Set Mouse = 0 End else Stop end FormSave ccHearth, ccHearth.frm MousePos 100, 20 //Activates eGenesis window.. Don't run ACTool maximized. Delay $MDelay LeftClick Delay 2000 If $Guild = 1 Call Guild End if ccHearth[ed16] = True Call HearthTest End If ccHearth[ed14] = True Call Setup End Call SetReg SetConst NewX = $BeginX SetConst NewY = $BeginY SetConst Count = 1 Loop $Hearths If $Count = $HRow1 //$Jump SetConst NewX = $BeginX Compute NewY = $BeginY + $Add3Y End MousePos $NewX, $NewY Delay $MDelay Rightclick Delay $MDelay Compute NewX = $NewX + $AddX Compute Count = $Count + 1 End SetConst NewX = $BeginX //Dont remember why this is here :) Call Main Procedure Setup Set NewX = $SetX Set NewY = $SetY Loop $SetLoop Mousepos $SetX, $SetY if {loopno} = $HRow Set NewX = $SetX Compute NewY = $SetY + $SetAddY else Compute NewX = $NewX + $SetAddX End Dragto $NewX, $NewY End End Procedure Main SetConst CountM = 1 SetConst Status = 0 Compute JumpM = $HRow1 - 1 //$Jump - 1 Loop $Hearths If $CountM = $HRow1 //$Jump // may have to use New Newx and newy variables in Main SetConst NewX = $StatusX Compute NewY = $StatusY + $Add3Y SetConst New2X = $WaterBX Compute New2Y = $WoodBY + $Add3Y End While $Status = 0 Call CheckBars If $Status = 1 Call Snuff //code to advance to next hearth Compute Used = $Used + 1 If $Used = $JumpM Compute HeatX = $HeatX - (($Used - 1) * $AddX) Compute HeatY = $HeatY + $Add3Y Compute WoodX = $WoodX - (($Used - 1) * $AddX) Compute WoodY = $WoodY + $Add3Y Compute WaterX = $WaterX - (($Used - 1) * $AddX) Compute WaterY = $WaterY + $Add3Y Compute DangerX = $DangerX - (($Used - 1) * $AddX) Compute DangerY = $DangerY + $Add3Y Compute StatusX = $StatusX - (($Used - 1) * $AddX) Compute StatusY = $StatusY + $Add3Y //Compute WaterBX = $WaterBX - (($Used -1) * $AddX) //Compute WoodBX = $WoodBX - (($Used - 1 ) * $AddX) //Compute WoodBY = $WoodBY + $Add3Y SetConst Jumped = 1 Continue Else Compute HeatX = $HeatX + $AddX Compute WoodX = $WoodX + $AddX Compute WaterX = $WaterX + $AddX Compute DangerX = $DangerX + $AddX Compute StatusX = $StatusX + $AddX //Compute WaterBX = $WaterBX + $AddX //Compute WoodBX = $WoodBX + $AddX End Continue End If $Heat = 0 and $Danger = 0 and $Wood = 0 Call Wood Else If $Heat = 1 or $Danger = 1 If $Water = 0 Call Water End End End Delay $CheckDelay End Compute CountM = $CountM + 1 SetConst Status = 0 End End Procedure CheckBars If $Mouse = 1 MousePos $HeatX, $HeatY Delay $SDelay end LoadRGB $HeatX, $HeatY if {RGBBlue} > $RGBBlue SetConst Heat = 1 Else SetConst Heat = 0 End If $Mouse = 1 MousePos $WoodX, $WoodY Delay $S1Delay end LoadRGB $WoodX, $WoodY if {RGBBlue} > $RGBBlue SetConst Wood = 1 Else SetConst Wood = 0 End If $Mouse = 1 MousePos $WaterX, $WaterY Delay $S1Delay End LoadRGB $WaterX, $WaterY if {RGBBlue} > $RGBBlue SetConst Water = 1 Else SetConst Water = 0 End If $Mouse = 1 MousePos $DangerX, $DangerY Delay $S1Delay End LoadRGB $DangerX, $DangerY if {RGBBlue} > $RGBBlue SetConst Danger = 1 Else SetConst Danger = 0 End If $Mouse = 1 MousePos $StatusX, $StatusY End LoadRGB $StatusX, $StatusY if {RGBGreen} > $RGBGreen SetConst Status = 1 Else SetConst Status = 0 End End Procedure Water SetConst NewX = $WaterBX SetConst NewY = $WoodBY Loop $Hearths IF {loopno} = $HRow1 //$Jump SetConst NewX = $WaterBX Compute NewY = $WoodBY + $Add3Y End If {loopno} > $Used If $Mouse = 0 Set OrigX = {mousex} Set OrigY = {mousey} End MousePos $NewX, $NewY Delay $SDelay Rightclick Delay $SDelay If $Mouse = 0 Mousepos $OrigX, $OrigY End End Compute NewX = $NewX + $AddX End SetConst NewX = $WaterBX End Procedure Snuff SetConst New2X = $WaterBX SetConst New2Y = $WoodBY Compute Num = $Used + 1 Loop $Hearths IF {loopno} = $Hrow1 //$Jump SetConst New2X = $WaterBX Compute New2Y = $WoodBY + $Add3Y End If {loopno} = $Num If $Mouse = 0 Set OrigX = {mousex} Set OrigY = {mousey} End MousePos $New2X, $New2Y Loop 8 Rightclick End If $Mouse = 0 Mousepos $OrigX, $OrigY End End Compute New2X = $New2X + $AddX End End Procedure Wood SetConst NewX = $WoodBX SetConst NewY = $WoodBY Loop $Hearths IF {loopno} = $HRow1 //$Jump SetConst NewX = $WoodBX Compute NewY = $WoodBY + $Add3Y End If {loopno} > $Used If $Mouse = 0 Set OrigX = {mousex} Set OrigY = {mousey} End MousePos $NewX, $NewY Delay $SDelay Rightclick Delay $SDelay If $Mouse = 0 MousePos $OrigX, $OrigY End End Compute NewX = $NewX + $AddX End SetConst NewX = $WoodBX End Procedure SetReg SetConst NewX = $RegX SetConst Count = 1 Loop $Hearths If $Count = $HRow1 SetConst NewX = $RegX Compute RegY = $RegY + $Add3Y End MousePos $NewX, $RegY Delay $MDelay Rightclick Compute NewX = $NewX + $Add2X If $Count > $HRow Compute NewY = $RegY + $Add2Y else Compute NewY = $RegY + $Add1Y end MousePos $NewX, $NewY Delay $MDelay Rightclick Delay $MDelay Compute NewX = $NewX + $AddX Compute Count = $Count + 1 End SetConst NewX = $RegX SetConst Count = 1 End Procedure Guild Compute BeginX = $BeginX - 7 Compute BeginY = $BeginY + 16 Compute RegY = $RegY + 16 Compute RegX = $RegX - 14 Compute AddX = $AddX - 15 Compute Add3Y = $Add3Y + 16 Compute Add1Y = $Add1Y - 16 Compute WoodBY = $WoodBY + 16 Compute HeatX = $HeatX - 4 Compute HeatY = $HeatY + 16 Compute WoodX = $WoodX - 1 Compute WoodY = $WoodY + 16 Compute WaterY = $WaterY + 16 Compute DangerX = $DangerX - 4 Compute DangerY = $DangerY + 16 Compute StatusX = $StatusX - 5 Compute StatusY = $StatusY + 16 Set SetAddX = 212 Set SetAddY = 266 End Procedure HearthTest Loop 10 MousePos $HeatX, $HeatY Delay 2000 MousePos $WoodX, $WoodY Delay 2000 MousePos $WaterX, $WaterY Delay 2000 MousePos $DangerX, $DangerY Delay 2000 MousePos $StatusX, $StatusY Delay 2000 MousePos $WoodBX, $WoodBY Delay 2000 MousePos $WaterBX, $WoodBY Delay 2000 end Stop End //Written with ACTool 5.3.0 by Anka Bell Asterisk End