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:Blethezar/Macros/CCH-1024x768"

From A Tale in the Desert
Jump to navigationJump to search
Line 1: Line 1:
=Charcoal Hearth Macro for small screens=
+
=Charcoal Hearth Macro for big screens=
 
<pre>
 
<pre>
 
//Charcoal Hearth
 
//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:  This handles from 1 to 8 charcoal hearths at a time.  Pin the windows
+
// Setup:  I've added a setup routine to the macro.  Pin the windows on top of each
//        in 2 rows of 4 starting in top left corner.  But them up together but
+
//        other in the top left corner.  I suggest at least 200 wood per hearth
//        Don't overlap them at all.  I suggest at least 200
+
//        and about 15 water per hearth to be safe. All hearths are slightly
//        wood per hearth and a normally hold about 150 water jugs.
+
//        different but I suggest that you put your fastest burning hearths first
//        All hearths are slightly different but I suggest that you put your
+
//        in line.  You can tweak the settings in the built in menu.
//        fastest burning hearths first in line.  The current settings are set
 
//        for guilded hearths but its a bit more efficient atm with personal
 
//        hearths.  You can tweak the settings below to alter Heat, Wood, Water
 
//        and danger thresholds.  The macro doesn't watch Oxygen.  If your oxygen
 
//        is getting too high, lower this by increasing WoodX in constants since
 
//        adding wood lowers oxygen.
 
 
//
 
//
//  If you see anything odd, /chat me.
+
//         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.
 
//
 
//
//  Known Issues: You will see it add some wood during the snuff processIt's
+
//         The macro doesn't watch Oxygen. I was going to add a vent option but this
//                 not much wood but I'm looking into it.
+
//        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! :) Come acro me in LE :) 780, 6956
+
//  ENJOY! :)
 
//  Anka
 
//  Anka
 
//
 
//
 
Constants
 
Constants
 
   //User Definable variables
 
   //User Definable variables
   Hearths = 2       //Number of Hearths you are running. 1-8
+
   Hearths = 2
   HeatX = 168       //Threshold for Heat bar, increase or decrease as needed.
+
   HeatX = 168
   WoodX = 107     //Wood threshold, adds wood/round up to this point.
+
   WoodX = 107
   WaterX = 76     //Alowable water level, not much play here.. dont lower more than 2
+
  WaterX = 76
   DangerX = 164   //Threshold for Danger bar, increase or decrease as needed.
+
  DangerX = 164
   RGBBlue = 220   //Threshold for detecting the color blue.  Some video cards
+
  RGBBlue = 220
   //                   are having problems with this.  I will add a color test soon to
+
  RGBGreen = 220
   //                   help.  If you are having problems. Run just 1 hearth and try
+
  Guild = 0
   //                   lowering this number by 10 at a time.  It's hard for me to see
+
 
   //                   what is going on without using your pc :(
+
  // Y Coordinates - Don't change unless you are having a problem.
   Guild = 1      // 1 for Guilded or public hearths, 0 for Personal hearths
+
   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
 
   //End User variables
 +
 
 +
  Hrow = 0
 +
  Hrow1 = 0
 
   AddX = 226
 
   AddX = 226
 
   Add2X = 15
 
   Add2X = 15
Line 43: Line 93:
 
   Add3Y = 250
 
   Add3Y = 250
 
   RegX = 47
 
   RegX = 47
  RegY = 74
 
 
   BeginX = 111
 
   BeginX = 111
  BeginY = 245
 
 
   NewX = 0
 
   NewX = 0
 
   New2X = 0
 
   New2X = 0
Line 55: Line 103:
 
   Danger = 0
 
   Danger = 0
 
   Status = 0
 
   Status = 0
  HeatY = 156
 
 
   OxyY = 168
 
   OxyY = 168
  WoodY = 180
 
 
 
  WaterY = 192
 
 
 
  DangerY = 204
 
 
   StatusX = 167
 
   StatusX = 167
  StatusY = 216
 
 
   WoodBX = 35
 
   WoodBX = 35
  WoodBY = 250
 
 
   WaterBX = 85
 
   WaterBX = 85
 
   Num = 0
 
   Num = 0
Line 72: Line 112:
 
   Jumped = 0
 
   Jumped = 0
 
   Used = 0
 
   Used = 0
 
+
   MDelay = 250
   MDelay = 50
+
   SDelay = 200
   SDelay = 50
+
   S1Delay = 100
   S1Delay = 50
 
 
   Count = 0
 
   Count = 0
 
   CountM = 0
 
   CountM = 0
 
   MouseX = 0
 
   MouseX = 0
 
   MouseY = 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
  
MousePos 100, 20 //Activates eGenesis window.. Don't run ACTool maximized.
+
Form ccHearth, Settings
Delay $MDelay
+
  ed1=Combobox:Hearths:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
LeftClick
+
  ed13=Editbox:Hearths Across:4
Delay 2000
+
  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:220
 +
  ed9=Editbox:RGBBlue:240
 +
  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
 
If $Guild = 1
 
If $Guild = 1
 
   Call Guild
 
   Call Guild
 +
End
 +
if ccHearth[ed16] = True
 +
  Call HearthTest
 +
End
 +
If ccHearth[ed14] = True
 +
  Call Setup
 
End
 
End
  
Line 97: Line 195:
 
SetConst Count = 1
 
SetConst Count = 1
 
Loop $Hearths
 
Loop $Hearths
   If $Count = $Jump
+
   If $Count = $HRow1 //$Jump
 
     SetConst NewX = $BeginX
 
     SetConst NewX = $BeginX
 
     Compute NewY = $BeginY + $Add3Y
 
     Compute NewY = $BeginY + $Add3Y
Line 110: Line 208:
 
SetConst NewX = $BeginX  //Dont remember why this is here :)
 
SetConst NewX = $BeginX  //Dont remember why this is here :)
 
Call Main
 
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
 
Procedure Main
 
   SetConst CountM = 1
 
   SetConst CountM = 1
 
   SetConst Status = 0
 
   SetConst Status = 0
   Compute JumpM = $Jump - 1
+
   Compute JumpM = $HRow1 - 1 //$Jump - 1
 
   Loop $Hearths
 
   Loop $Hearths
     If $CountM = $Jump
+
     If $CountM = $HRow1 //$Jump
 
       // may have to use New Newx and newy variables in Main
 
       // may have to use New Newx and newy variables in Main
 
       SetConst NewX = $StatusX
 
       SetConst NewX = $StatusX
Line 167: Line 280:
 
       End
 
       End
 
        
 
        
       Delay 1000
+
       Delay $CheckDelay
 
     End
 
     End
 
     Compute CountM = $CountM + 1
 
     Compute CountM = $CountM + 1
Line 175: Line 288:
  
 
Procedure CheckBars
 
Procedure CheckBars
   MousePos $HeatX, $HeatY
+
   If $Mouse = 1
  Delay $SDelay
+
    MousePos $HeatX, $HeatY
   LoadRGB {MouseX}, {MouseY}
+
    Delay $SDelay
 +
  end
 +
   LoadRGB $HeatX, $HeatY
 
   if {RGBBlue} > $RGBBlue
 
   if {RGBBlue} > $RGBBlue
 
     SetConst Heat = 1
 
     SetConst Heat = 1
Line 183: Line 298:
 
     SetConst Heat = 0
 
     SetConst Heat = 0
 
   End
 
   End
   MousePos $WoodX, $WoodY
+
   If $Mouse = 1
  Delay $S1Delay
+
    MousePos $WoodX, $WoodY
   LoadRGB {mousex}, {mousey}
+
    Delay $S1Delay
 +
  end
 +
   LoadRGB $WoodX, $WoodY
 
   if {RGBBlue} > $RGBBlue
 
   if {RGBBlue} > $RGBBlue
 
     SetConst Wood = 1
 
     SetConst Wood = 1
Line 191: Line 308:
 
     SetConst Wood = 0
 
     SetConst Wood = 0
 
   End
 
   End
   MousePos $WaterX, $WaterY
+
   If $Mouse = 1
  Delay $S1Delay
+
    MousePos $WaterX, $WaterY
   LoadRGB {mousex}, {mousey}
+
    Delay $S1Delay
 +
  End
 +
   LoadRGB $WaterX, $WaterY
 
   if {RGBBlue} > $RGBBlue
 
   if {RGBBlue} > $RGBBlue
 
     SetConst Water = 1
 
     SetConst Water = 1
Line 199: Line 318:
 
     SetConst Water = 0
 
     SetConst Water = 0
 
   End
 
   End
   MousePos $DangerX, $DangerY
+
   If $Mouse = 1
  Delay $S1Delay
+
    MousePos $DangerX, $DangerY
   LoadRGB {MouseX}, {MouseY}
+
    Delay $S1Delay
 +
  End
 +
   LoadRGB $DangerX, $DangerY
 
   if {RGBBlue} > $RGBBlue
 
   if {RGBBlue} > $RGBBlue
 
     SetConst Danger = 1
 
     SetConst Danger = 1
Line 207: Line 328:
 
     SetConst Danger = 0
 
     SetConst Danger = 0
 
   End
 
   End
   MousePos $StatusX, $StatusY
+
   If $Mouse = 1
   LoadRGB {MouseX}, {MouseY}
+
    MousePos $StatusX, $StatusY
   if {RGBRed} = 6 and {RGBGreen} = 254 and {RGBBlue} = 5
+
  End
 +
   LoadRGB $StatusX, $StatusY
 +
   if {RGBGreen} > $RGBGreen
 
     SetConst Status = 1
 
     SetConst Status = 1
 
   Else
 
   Else
Line 220: Line 343:
 
   SetConst NewY = $WoodBY
 
   SetConst NewY = $WoodBY
 
   Loop $Hearths
 
   Loop $Hearths
     IF {loopno} = $Jump
+
     IF {loopno} = $HRow1 //$Jump
 
       SetConst NewX = $WaterBX
 
       SetConst NewX = $WaterBX
 
       Compute NewY = $WoodBY + $Add3Y
 
       Compute NewY = $WoodBY + $Add3Y
 
     End
 
     End
 
     If {loopno} > $Used
 
     If {loopno} > $Used
 +
      If $Mouse = 0
 +
        Set OrigX = {mousex}
 +
        Set OrigY = {mousey}
 +
      End
 
       MousePos $NewX, $NewY
 
       MousePos $NewX, $NewY
 
       Delay $SDelay
 
       Delay $SDelay
 
       Rightclick
 
       Rightclick
 
       Delay $SDelay
 
       Delay $SDelay
 +
      If $Mouse = 0
 +
        Mousepos $OrigX, $OrigY
 +
      End
 
     End
 
     End
 
     Compute NewX = $NewX + $AddX
 
     Compute NewX = $NewX + $AddX
Line 240: Line 370:
 
   Compute Num = $Used + 1
 
   Compute Num = $Used + 1
 
   Loop $Hearths
 
   Loop $Hearths
     IF {loopno} = $Jump
+
     IF {loopno} = $Hrow1 //$Jump
 
       SetConst New2X = $WaterBX
 
       SetConst New2X = $WaterBX
 
       Compute New2Y = $WoodBY + $Add3Y
 
       Compute New2Y = $WoodBY + $Add3Y
 
     End
 
     End
 
     If {loopno} = $Num
 
     If {loopno} = $Num
 +
      If $Mouse = 0
 +
        Set OrigX = {mousex}
 +
        Set OrigY = {mousey}
 +
      End
 
       MousePos $New2X, $New2Y
 
       MousePos $New2X, $New2Y
 
       Loop 8
 
       Loop 8
 
         Rightclick
 
         Rightclick
 +
      End
 +
      If $Mouse = 0
 +
        Mousepos $OrigX, $OrigY
 
       End
 
       End
 
     End
 
     End
Line 258: Line 395:
 
   SetConst NewY = $WoodBY
 
   SetConst NewY = $WoodBY
 
   Loop $Hearths
 
   Loop $Hearths
     IF {loopno} = $Jump
+
     IF {loopno} = $HRow1 //$Jump
 
       SetConst NewX = $WoodBX
 
       SetConst NewX = $WoodBX
 
       Compute NewY = $WoodBY + $Add3Y
 
       Compute NewY = $WoodBY + $Add3Y
 
     End
 
     End
 
     If {loopno} > $Used
 
     If {loopno} > $Used
 +
      If $Mouse = 0
 +
        Set OrigX = {mousex}
 +
        Set OrigY = {mousey}
 +
      End
 
       MousePos $NewX, $NewY
 
       MousePos $NewX, $NewY
 
       Delay $SDelay
 
       Delay $SDelay
 
       Rightclick
 
       Rightclick
 
       Delay $SDelay
 
       Delay $SDelay
 +
      If $Mouse = 0
 +
        MousePos $OrigX, $OrigY
 +
      End
 
     End
 
     End
 
     Compute NewX = $NewX + $AddX
 
     Compute NewX = $NewX + $AddX
Line 277: Line 421:
 
   SetConst Count = 1
 
   SetConst Count = 1
 
   Loop $Hearths
 
   Loop $Hearths
     If $Count = 5
+
     If $Count = $HRow1
 
       SetConst NewX = $RegX
 
       SetConst NewX = $RegX
 
       Compute RegY = $RegY + $Add3Y
 
       Compute RegY = $RegY + $Add3Y
Line 285: Line 429:
 
     Rightclick
 
     Rightclick
 
     Compute NewX = $NewX + $Add2X
 
     Compute NewX = $NewX + $Add2X
     If $Count > 4
+
     If $Count > $HRow
 
       Compute NewY = $RegY + $Add2Y
 
       Compute NewY = $RegY + $Add2Y
 
     else
 
     else
Line 319: Line 463:
 
   Compute StatusX = $StatusX - 5
 
   Compute StatusX = $StatusX - 5
 
   Compute StatusY = $StatusY + 16
 
   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
 
End
 
//Written with ACTool 5.3.0 by Anka
 
//Written with ACTool 5.3.0 by Anka
 
Bell Asterisk
 
Bell Asterisk
 +
 
</pre>
 
</pre>

Revision as of 03:18, 1 November 2009

Charcoal Hearth Macro for big screens

//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 = 2
  HeatX = 168
  WoodX = 107
  WaterX = 76
  DangerX = 164
  RGBBlue = 220
  RGBGreen = 220
  Guild = 0

  // 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:220
  ed9=Editbox:RGBBlue:240
  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
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