The Wiki for Tale 6 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.

User:Justin/Macros

From ATITD6
Jump to navigationJump to search

CC Macro.

I use the following CC Macro (see after for settings) - it's been tweaked a bit, and seems to work pretty well. the hardest bit, and the bit you need to get right, is positioning the pinned CCoven menus in the top left of the screen, if using Vista, leave a small gap (about the same distance as the righthand edge of the arrow of the mouse pointer) between the top of the CCOven window and the top bar of the Client window. I may get round to amending this, I may not.

// Charcoal Oven - modified Ver 2.2
//
// Setup:  This handles from 1 to 8 charcoal ovens at a time.  Pin the windows
//         in 2 rows of 4 starting in top left corner.  But them up together but
//         Don't overlap them at all.  I suggest at least 300
//         wood per oven and a normally hold about 150 water jugs (for 8 ovens).
//         All ovens are slightly different but I suggest that you put your
//         fastest burning oven first in line.  You can tweak the settings
//         to your liking in the new GUI window.  Your settings will be saved.
//				 SETUP ADDENUM BELOW
//
//  If you see anything odd, /chat me.
//
//  ENJOY! :)
//  Anka
//
//  This version has been modified by rwindmtg
//
// 	Follow setup as writen by anka and adust the check bars interval acording to
//  the number of ovens used (more ovens less time)
//
// 	Settings provided are those for 4 ovens and have done 3 whole runs without probs for me
//
//  ineterval increace on the menu will increce the wait between checks delay
//  when an oven finishes. hopefully this will keep the chk interval for each
//  oven the same.
//  if win setup is checked place all the windows in the top left corner on top of eachother
//
//	The modifications are to allow the macro to moniter each oven indervidually
//

Constants
  // User Definable variables
  Ovens = 4       // Number of Ovens you are running. 1-8
  HeatMinX = 129
  HeatX = 157      // Threshold for Heat bar, increase or decrease as needed.
  HeatMaxX = 178
  Oxy1X = 90
  Oxy2X = 133
  WoodX = 109      // Wood threshold, adds wood/round up to this point.
  WaterX = 76      // Alowable water level, not much play here.. dont lower more than 2
  DangerX = 162    // Threshold for Danger bar, increase or decrease as needed.
  DangerMaxX = 170 // maximum danger lvl
  RGBBlue = 220    //Threshold for detecting the color blue.
  RGBGreen = 250   //Threshold for detecting the color green.  Some video cards
  //                 are having problems with this.  If you are having problems, run
  //                 just 1 oven and try lowering this number by 10 at a time.  It's
  //                 hard for me to see what is going on without using your pc :(
  //                 This method is used for RGBBlue and RGBGreen.
  CheckDelay = 1100
  Guild = 0       // 1 for Guilded or public ovens, 0 for Personal ovens
  // End User variables
  AddX = 215      // 215-Personal   212-Guilded
  Add2X = 15
  Add1Y = 65
  Add2Y = 17
  Add3Y = 233
  HeatMin = 0
  HeatMax = 0
  maxwoodx = 160
  maxwood = 0
  DangerMax = 0
  BeginX = 106
  BeginY = 234
  NewX = 0
  New2X = 0
  New3X = 0
  New2Y = 0
  NewY = 0
  Heat = 0
  Oxy = 0
  Wood = 0
  Water = 0
  Danger = 0
  Status = 0
  HeatY = 149
  OxyY = 161
  WoodY = 173
  WaterY = 185
  DangerY = 197
  StatusX = 172
  StatusY = 209
  WoodBX = 35
  WoodBY = 243
  WaterBX = 85
  Vent0 = 130
  Vent1 = 155
  Vent2 = 180
  VentBX = 0
  Num = 0
  Jump = 5 // should be 5
  JumpM = 0
  Jumped = 0
  Used = 0
  MDelay = 50
  SDelay = 50 // 200
  S1Delay = 50 // 100
  Count = 0
  CountM = 0
  MouseX = 0
  MouseY = 0
  // oven stas chks
  oven1 = 0
  oven2 = 0
  oven3 = 0
  oven4 = 0
  oven5 = 0
  oven6 = 0
  oven7 = 0
  oven8 = 0
  curentoven = 1
  looped = 1
  sHeatMinX = 0
  sHeatX = 0
  sHeatMaxX = 0
  sHeatY = 0
  sOxy1X = 0
  sOxy2X = 0
  sOxyY = 0
  sWoodX = 0
  sWoodY = 0
  sWaterX = 0
  sWaterY = 0
  sDangerY = 0
  sStatusX = 0
  sStatusY = 0
  sDangerX = 0
  sDangermaxX = 0
  smaxwoodx = 0
  amaxwood = 0
  ovenfinidhed = 0
  OldVent1 = 1
  OldVent2 = 1
  OldVent3 = 1
  OldVent4 = 1
  OldVent5 = 1
  OldVent6 = 1
  OldVent7 = 1
  OldVent8 = 1
  WoodNum1 = 0
  WoodNum2 = 0
  WoodNum3 = 0
  WoodNum4 = 0
  WoodNum5 = 0
  WoodNum6 = 0
  WoodNum7 = 0
  WoodNum8 = 0
  interval = 0
  ovendone = 0
  setup = 0
  WinX = 3
  WinY = 29
  dragX = 3
  dragY = 115
  m = 1
 End

// safty message
ShowMessage m = Infomation, OK:Cancel, Do not Leave Macros running unatended!
if $m = 2
  stop
 end

Form ccOven, Settings // settings listed here are for 4 ovens
  ed1=Combobox:Ovens:1, 2, 3, 4, 5, 6, 7, 8
  ed2=CheckBox:Guilded?:True
  ed16=checkbox:Window Setup :True
  ed3=Editbox:Heat                  (75-188):162
  ed10=Editbox:HeatMin            (75-188):116
  ed11=Editbox:HeatMax           (75-188):174
  ed4=Editbox:Low Oxy            (75-188):95
  ed5=Editbox:High Oxy           (75-188):134
  ed6=Editbox:Wood                (75-188):104
  ed7=Editbox:Water                (75-188):77
  ed13=Editbox:Danger              (75-188):160 // now used
  ed15=Editbox:Max Danger					(75-188):170	// companion value
  ed8=Editbox:RGBGreen:240
  ed9=Editbox:RGBBlue:220
  ed12=Editbox:Check Bars Interval  (miliseconds):1100
  ed14=Editbox:Interval Increace    (miliseconds):150
end

FormLoad ccOven, ccOvenall.frm

if ShowForm ccOven
  SetConst Ovens = ccOven[ed1]
  If ccOven[ed2] = True
    SetConst Guild = 1
  Else
    SetConst Guild = 0
  End
  If ccOven[ed16] = True
    Setconst setup = 1
  Else
    Setconst setup = 0
  End
  SetConst HeatX = ccOven[ed3]
  SetConst Oxy1X = ccOven[ed4]
  SetConst Oxy2X = ccOven[ed5]
  SetConst WoodX = ccOven[ed6]
  SetConst WaterX = ccOven[ed7]
  Setconst DangerX = ccOven[ed13]
  setconst DangerMaxX = ccOven[ed15]
  SetConst RGBGreen = ccOven[ed8]
  SetConst RGBBlue = ccOven[ed9]
  SetConst HeatMin = ccOven[ed10]
  SetConst HeatMax = ccOven[ed11]
  SetConst CheckDelay = ccOven[ed12]
  Setconst interval = ccOven[ed14]
else
  Stop
end

FormSave ccOven, ccOvenall.frm

MousePos 100, 20  // Activates eGenesis window.. Don't run ACTool maximized.
Delay $MDelay
LeftClick
Delay 2000

If $Guild = 1
  Call Guild
End

If $setup = 1
  call WindowSetup
end

Procedure WindowSetup
  SetConst DragX = $winx
  setconst Dragy = $winy
  setconst count = 1
  Loop $ovens
    if $count = $jump
      Compute DragX = $DragX - (($count - 1) * $AddX)
      Compute DragY = $DragY + $Add3Y
    End
    MousePos $WinX, $WinY
    Delay $MDelay
    Dragto $DragX, $DragY
    Compute DragX = $DragX + $AddX
    compute count = $count + 1
  End
End

SetConst NewX = $BeginX
SetConst NewY = $BeginY
SetConst Count = 1
Loop $Ovens
  If $Count = $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 Main
  SetConst CountM = 1
  SetConst Status = 0
  Compute JumpM = $Jump - 1
  
  // rwinds ver
  // stores some vars
  setconst sHeatMinX = $HeatMinX
  setconst sHeatX = $HeatX
  setconst sHeatMaxX = $HeatMaxX
  setconst sHeatY = $HeatY
  setconst sOxy1X = $Oxy1X
  setconst sOxy2X = $Oxy2X
  setconst sOxyY = $OxyY
  setconst sWoodX = $WoodX
  setconst sWoodY = $WoodY
  setconst sWaterX = $WaterX
  setconst sWaterY = $WaterY
  setconst sDangerY = $DangerY
  setconst sStatusX = $StatusX
  setconst sStatusY = $StatusY
  setconst sDangerX = $DangerX
  setconst sDangermaxX = $DangermaxX
  setconst smaxwoodx = $maxwoodx
  
  While $Status < $Ovens
    Loop $Ovens
      setconst curentoven = {loopno}
      If $CountM = $Jump
        SetConst NewX = $StatusX
        Compute NewY = $StatusY + $Add3Y
        SetConst New2X = $WaterBX
        Compute New2Y = $WoodBY + $Add3Y
      End
      // next 8 ifs determine if current oven has finished
      If $curentoven = 1 and $oven1 = 1
        setconst ovenfinidhed = 1
      End
      If $curentoven = 2 and $oven2 = 1
        setconst ovenfinidhed = 1
      End
      If $curentoven = 3 and $oven3 = 1
        setconst ovenfinidhed = 1
      End
      If $curentoven = 4 and $oven4 = 1
        setconst ovenfinidhed = 1
      End
      If $curentoven = 5 and $oven5 = 1
        setconst ovenfinidhed = 1
      End
      If $curentoven = 6 and $oven6 = 1
        setconst ovenfinidhed = 1
      End
      If $curentoven = 7 and $oven7 = 1
        setconst ovenfinidhed = 1
      End
      If $curentoven = 8 and $oven8 = 1
        setconst ovenfinidhed = 1
      End
      
      If $ovenfinidhed = 0 // skips if set to 1
        Call CheckBars
        
        if $curentoven = 1
          Case
          When $HeatMin = 1
            Call Wood
            Set WoodNum1 = 1
          Else
            If $Heat = 0 and $Danger = 0
              If $WoodNum1 = 0  and $Wood = 0
                Call Wood
                Set WoodNum1 = 1
              else
                Set WoodNum1 = 0
              End
            Else
              If $Heat = 1 or $Danger = 1
                If $Water = 0 or $HeatMax = 1 or $DangerMax = 1
                  Call Water
                End
              End
            End
          End
        End
        if $curentoven = 2
          Case
          When $HeatMin = 1
            Call Wood
            Set WoodNum2 = 1
          Else
            If $Heat = 0 and $Danger = 0
              If $WoodNum2 = 0  and $Wood = 0
                Call Wood
                Set WoodNum2 = 1
              else
                Set WoodNum2 = 0
              End
            Else
              If $Heat = 1 or $Danger = 1
                If $Water = 0 or $HeatMax = 1 or $DangerMax = 1
                  Call Water
                End
              End
            End
          End
        End
        if $curentoven = 3
          Case
          When $HeatMin = 1
            Call Wood
            Set WoodNum3 = 1
          Else
            If $Heat = 0 and $Danger = 0
              If $WoodNum3 = 0  and $Wood = 0
                Call Wood
                Set WoodNum3 = 1
              else
                Set WoodNum3 = 0
              End
            Else
              If $Heat = 1 or $Danger = 1
                If $Water = 0 or $HeatMax = 1 or $DangerMax = 1
                  Call Water
                End
              End
            End
          End
        End
        if $curentoven = 4
          Case
          When $HeatMin = 1
            Call Wood
            Set WoodNum4 = 1
          Else
            If $Heat = 0 and $Danger = 0
              If $WoodNum4 = 0  and $Wood = 0
                Call Wood
                Set WoodNum4 = 1
              else
                Set WoodNum4 = 0
              End
            Else
              If $Heat = 1 or $Danger = 1
                If $Water = 0 or $HeatMax = 1 or $DangerMax = 1
                  Call Water
                End
              End
            End
          End
        End
        if $curentoven = 5
          Case
          When $HeatMin = 1
            Call Wood
            Set WoodNum5 = 1
          Else
            If $Heat = 0 and $Danger = 0
              If $WoodNum5 = 0  and $Wood = 0
                Call Wood
                Set WoodNum5 = 1
              else
                Set WoodNum5 = 0
              End
            Else
              If $Heat = 1 or $Danger = 1
                If $Water = 0 or $HeatMax = 1 or $DangerMax = 1
                  Call Water
                End
              End
            End
          End
        End
        if $curentoven = 6
          Case
          When $HeatMin = 1
            Call Wood
            Set WoodNum6 = 1
          Else
            If $Heat = 0 and $Danger = 0
              If $WoodNum6 = 0  and $Wood = 0
                Call Wood
                Set WoodNum6 = 1
              else
                Set WoodNum6 = 0
              End
            Else
              If $Heat = 1 or $Danger = 1
                If $Water = 0 or $HeatMax = 1 or $DangerMax = 1
                  Call Water
                End
              End
            End
          End
        End
        if $curentoven = 7
          Case
          When $HeatMin = 1
            Call Wood
            Set WoodNum7 = 1
          Else
            If $Heat = 0 and $Danger = 0
              If $WoodNum7 = 0  and $Wood = 0
                Call Wood
                Set WoodNum7 = 1
              else
                Set WoodNum7 = 0
              End
            Else
              If $Heat = 1 or $Danger = 1
                If $Water = 0 or $HeatMax = 1 or $DangerMax = 1
                  Call Water
                End
              End
            End
          End
        End
        if $curentoven = 8
          Case
          When $HeatMin = 1
            Call Wood
            Set WoodNum8 = 1
          Else
            If $Heat = 0 and $Danger = 0
              If $WoodNum8 = 0  and $Wood = 0
                Call Wood
                Set WoodNum8 = 1
              else
                Set WoodNum8 = 0
              End
            Else
              If $Heat = 1 or $Danger = 1
                If $Water = 0 or $HeatMax = 1 or $DangerMax = 1
                  Call Water
                End
              End
            End
          End
        End
        
        If $looped > 3
          
          if $curentoven = 1// Work in progress .......................... isolate ovens vents
            Case
            When $Oxy = 0
              // Open vent full
              If $OldVent1 <> $Oxy
                SetConst VentBX = $Vent2
                Call Vent
                SetConst OldVent1 = 0
                Delay 20
              End
            When $Oxy = 1
              // Oxy set normal
              If $OldVent1 <> $Oxy
                SetConst VentBX = $Vent1
                Call Vent
                SetConst OldVent1 = 1
                Delay 20
              End
            When $Oxy = 2
              // Close vent
              If $OldVent1 <> $Oxy
                SetConst VentBX = $Vent0
                Call Vent
                SetConst OldVent1 = 2
                Delay 20
              End
            End
          End // Work in progresss ...............
          if $curentoven = 2// Work in progress .......................... isolate ovens vents
            Case
            When $Oxy = 0
              // Open vent full
              If $OldVent2 <> $Oxy
                SetConst VentBX = $Vent2
                Call Vent
                SetConst OldVent2 = 0
                Delay 20
              End
            When $Oxy = 1
              // Oxy set normal
              If $OldVent2 <> $Oxy
                SetConst VentBX = $Vent1
                Call Vent
                SetConst OldVent2 = 1
                Delay 20
              End
            When $Oxy = 2
              // Close vent
              If $OldVent2 <> $Oxy
                SetConst VentBX = $Vent0
                Call Vent
                SetConst OldVent2 = 2
                Delay 20
              End
            End
          End // Work in progresss ...............
          if $curentoven = 3// Work in progress .......................... isolate ovens vents
            Case
            When $Oxy = 0
              // Open vent full
              If $OldVent3 <> $Oxy
                SetConst VentBX = $Vent2
                Call Vent
                SetConst OldVent3 = 0
                Delay 120
              End
            When $Oxy = 1
              // Oxy set normal
              If $OldVent3 <> $Oxy
                SetConst VentBX = $Vent1
                Call Vent
                SetConst OldVent3 = 1
                Delay 20
              End
            When $Oxy = 2
              // Close vent
              If $OldVent3 <> $Oxy
                SetConst VentBX = $Vent0
                Call Vent
                SetConst OldVent3 = 2
                Delay 20
              End
            End
          End // Work in progresss ...............
          if $curentoven = 4// Work in progress .......................... isolate ovens vents
            Case
            When $Oxy = 0
              // Open vent full
              If $OldVent4 <> $Oxy
                SetConst VentBX = $Vent2
                Call Vent
                SetConst OldVent4 = 0
                Delay 20
              End
            When $Oxy = 1
              // Oxy set normal
              If $OldVent4 <> $Oxy
                SetConst VentBX = $Vent1
                Call Vent
                SetConst OldVent4 = 1
                Delay 20
              End
            When $Oxy = 2
              // Close vent
              If $OldVent4 <> $Oxy
                SetConst VentBX = $Vent0
                Call Vent
                SetConst OldVent4 = 2
                Delay 20
              End
            End
          End // Work in progresss ...............
          if $curentoven = 5// Work in progress .......................... isolate ovens vents
            Case
            When $Oxy = 0
              // Open vent full
              If $OldVent5 <> $Oxy
                SetConst VentBX = $Vent2
                Call Vent
                SetConst OldVent5 = 0
                Delay 20
              End
            When $Oxy = 1
              // Oxy set normal
              If $OldVent5 <> $Oxy
                SetConst VentBX = $Vent1
                Call Vent
                SetConst OldVent5 = 1
                Delay 20
              End
            When $Oxy = 2
              // Close vent
              If $OldVent5 <> $Oxy
                SetConst VentBX = $Vent0
                Call Vent
                SetConst OldVent5 = 2
                Delay 20
              End
            End
          End // Work in progresss ...............
          if $curentoven = 6// Work in progress .......................... isolate ovens vents
            Case
            When $Oxy = 0
              // Open vent full
              If $OldVent6 <> $Oxy
                SetConst VentBX = $Vent2
                Call Vent
                SetConst OldVent6 = 0
                Delay 20
              End
            When $Oxy = 1
              // Oxy set normal
              If $OldVent6 <> $Oxy
                SetConst VentBX = $Vent1
                Call Vent
                SetConst OldVent6 = 1
                Delay 20
              End
            When $Oxy = 2
              // Close vent
              If $OldVent6 <> $Oxy
                SetConst VentBX = $Vent0
                Call Vent
                SetConst OldVent6 = 2
                Delay 20
              End
            End
          End // Work in progresss ...............
          if $curentoven = 7// Work in progress .......................... isolate ovens vents
            Case
            When $Oxy = 0
              // Open vent full
              If $OldVent7 <> $Oxy
                SetConst VentBX = $Vent2
                Call Vent
                SetConst OldVent7 = 0
                Delay 20
              End
            When $Oxy = 1
              // Oxy set normal
              If $OldVent7 <> $Oxy
                SetConst VentBX = $Vent1
                Call Vent
                SetConst OldVent7 = 1
                Delay 20
              End
            When $Oxy = 2
              // Close vent
              If $OldVent7 <> $Oxy
                SetConst VentBX = $Vent0
                Call Vent
                SetConst OldVent7 = 2
                Delay 20
              End
            End
          End // Work in progresss ...............
          if $curentoven = 8// Work in progress .......................... isolate ovens vents
            Case
            When $Oxy = 0
              // Open vent full
              If $OldVent8 <> $Oxy
                SetConst VentBX = $Vent2
                Call Vent
                SetConst OldVent8 = 0
                Delay 20
              End
            When $Oxy = 1
              // Oxy set normal
              If $OldVent8 <> $Oxy
                SetConst VentBX = $Vent1
                Call Vent
                SetConst OldVent8 = 1
                Delay 20
              End
            When $Oxy = 2
              // Close vent
              If $OldVent8 <> $Oxy
                SetConst VentBX = $Vent0
                Call Vent
                SetConst OldVent8 = 2
                Delay 20
              End
            End
          End // Work in progresss ...............
          
        End
      End
      if $ovendone = 1
        setconst ovendone = 0
        call snuff
      End
      // nxt oven
      setconst ovenfinidhed = 0
      Compute Used = $Used + 1
      If $Used = $JumpM
        Compute HeatMinX = $HeatMinX - (($Used - 1) * $AddX)
        Compute HeatX = $HeatX - (($Used - 1) * $AddX)
        Compute HeatMaxX = $HeatMaxX - (($Used - 1) * $AddX)
        Compute HeatY = $HeatY + $Add3Y
        Compute Oxy1X = $Oxy1X - (($Used - 1) * $AddX)
        Compute Oxy2X = $Oxy2X - (($Used - 1) * $AddX)
        Compute OxyY = $OxyY + $Add3Y
        Compute WoodX = $WoodX - (($Used - 1) * $AddX)
        Compute maxwoodx = $maxwoodx - (($Used - 1) * $AddX)
        Compute WoodY = $WoodY + $Add3Y
        Compute WaterX = $WaterX - (($Used - 1) * $AddX)
        Compute WaterY = $WaterY + $Add3Y
        Compute DangerX = $DangerX - (($Used - 1) * $AddX)
        Compute DangermaxX = $DangermaxX - (($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 HeatMinX = $HeatMinX + $AddX
        Compute HeatX = $HeatX + $AddX
        Compute HeatMaxX = $HeatMaxX + $AddX
        Compute Oxy1X = $Oxy1X + $AddX
        Compute Oxy2X = $Oxy2X + $AddX
        Compute WoodX = $WoodX + $AddX
        Compute maxwoodx = $maxwoodx + $AddX
        Compute WaterX = $WaterX + $AddX
        Compute DangerX = $DangerX + $AddX
        Compute DangermaxX = $DangermaxX + $AddX
        Compute StatusX = $StatusX + $AddX
        // Compute WaterBX = $WaterBX + $AddX
        // Compute WoodBX = $WoodBX + $AddX
      End
      Continue
    End
    // resets positions
    Compute Used = 0
    Compute HeatMinX = $sHeatMinX
    Compute HeatX = $sHeatX
    Compute HeatMaxX = $sHeatMaxX
    Compute HeatY = $sHeatY
    Compute Oxy1X = $sOxy1X
    Compute Oxy2X = $sOxy2X
    Compute OxyY = $sOxyY
    Compute WoodX = $sWoodX
    Compute WoodY = $sWoodY
    Compute WaterX = $sWaterX
    Compute WaterY = $sWaterY
    Compute DangerY = $sDangerY
    Compute StatusX = $sStatusX
    Compute StatusY = $sStatusY
    compute DangerX = $sDangerX
    compute DangermaxX = $sDangermaxX
    compute maxwoodx = $smaxwoodx
    Delay $CheckDelay
    compute looped = $looped +1 // incremts loop for vent enable
  End
End
// end rwinds ver

Procedure CheckBars	// reads the data
  MousePos $HeatMinX, $HeatY	// heat min
  Delay $SDelay
  LoadRGB {MouseX}, {MouseY}
  if {RGBBlue} < $RGBBlue
    SetConst HeatMin = 1
  else
    Set HeatMin = 0
  End
  
  MousePos $HeatX, $HeatY		// heat target
  Delay $SDelay
  LoadRGB {MouseX}, {MouseY}
  if {RGBBlue} > $RGBBlue
    SetConst Heat = 1
  Else
    SetConst Heat = 0
  End
  
  MousePos $HeatMaxX, $HeatY // heat max
  Delay $SDelay
  LoadRGB {MouseX}, {MouseY}
  if {RGBBlue} > $RGBBlue
    SetConst HeatMax = 1
  Else
    SetConst HeatMax = 0
  End
  
  MousePos $Oxy1X, $OxyY	// oxy min
  Delay $SDelay
  LoadRGB {MouseX}, {MouseY}
  if {RGBBlue} > $RGBBlue
    SetConst Oxy = 1
  Else
    SetConst Oxy = 0
  End
  
  MousePos $Oxy2X, $OxyY // oxy max
  Delay $SDelay
  LoadRGB {MouseX}, {MouseY}
  if {RGBBlue} > $RGBBlue
    SetConst Oxy = 2
  End
  
  MousePos $WoodX, $WoodY // wood target
  Delay $S1Delay
  LoadRGB {mousex}, {mousey}
  if {RGBBlue} > $RGBBlue
    SetConst Wood = 1
  Else
    SetConst Wood = 0
  End
  
  MousePos $maxwoodx, $WoodY // maxwood target
  Delay $S1Delay
  LoadRGB {mousex}, {mousey}
  if {RGBBlue} > $RGBBlue
    SetConst maxwood = 1
  Else
    SetConst maxwood = 0
  End
  
  MousePos $WaterX, $WaterY // water max
  Delay $S1Delay
  LoadRGB {mousex}, {mousey}
  if {RGBBlue} > $RGBBlue
    SetConst Water = 1
  Else
    SetConst Water = 0
  End
  
  MousePos $DangerX, $DangerY // danger warn??
  Delay $S1Delay
  LoadRGB {MouseX}, {MouseY}
  if {RGBBlue} > $RGBBlue
    SetConst Danger = 1
  Else
    SetConst Danger = 0
  End
  
  MousePos $DangerMaxX, $DangerY // danger out of controll??
  Delay $S1Delay
  LoadRGB {MouseX}, {MouseY}
  if {RGBBlue} > $RGBBlue
    SetConst DangerMax = 1
  Else
    SetConst DangerMax = 0
  End
  
  MousePos $StatusX, $StatusY  // checks to see if it is done
  LoadRGB {MouseX}, {MouseY}
  if {RGBGreen} > $RGBGreen
    // if {RGBRed} = 6 and {RGBGreen} = 254 and {RGBBlue} = 5
    compute Status = $Status + 1
    // say  yes // debuging code
    setconst ovendone = 1
    compute $CheckDelay = $CheckDelay + $interval
    If $curentoven = 1
      setconst oven1 = 1
    End
    If $curentoven = 2
      setconst oven2 = 1
    End
    If $curentoven = 3
      setconst oven3 = 1
    End
    If $curentoven = 4
      setconst oven4 = 1
    End
    If $curentoven = 5
      setconst oven5 = 1
    End
    If $curentoven = 6
      setconst oven6 = 1
    End
    If $curentoven = 7
      setconst oven7 = 1
    End
    If $curentoven = 8
      setconst oven8 = 1
    End
    
  Else
    // SetConst Status = 0
    compute Status = $Status + 0 // dummy line
    // say  no // debuging code
  End
End

Procedure Water	// adds water
  SetConst NewX = $WaterBX
  SetConst NewY = $WoodBY
  Loop $Ovens
    IF {loopno} = $Jump
      SetConst NewX = $WaterBX
      Compute NewY = $WoodBY + $Add3Y
    End
    If {loopno} = $curentoven
      MousePos $NewX, $NewY
      Delay $SDelay
      Rightclick
      Delay $SDelay
    End
    Compute NewX = $NewX + $AddX
  End
  SetConst NewX = $WaterBX
End

Procedure Vent	// sets vent
  SetConst NewX = $VentBX
  SetConst NewY = $WoodBY
  Loop $Ovens
    IF {loopno} = $Jump
      SetConst NewX = $VentBX
      Compute NewY = $WoodBY + $Add3Y
    End
    If {loopno} = $curentoven
      MousePos $NewX, $NewY
      Delay $SDelay
      Rightclick
      Delay $SDelay
    End
    Compute NewX = $NewX + $AddX
  End
  SetConst NewX = $VentBX
End

Procedure Snuff // kills the oven
  SetConst New2X = $WaterBX
  SetConst New3X = $Vent2
  SetConst New2Y = $WoodBY
  Compute Num = $Used + 1
  Loop $Ovens
    IF {loopno} = $Jump
      SetConst New2X = $WaterBX
      SetConst New3X = $Vent2
      Compute New2Y = $WoodBY + $Add3Y
    End
    If {loopno} = $Num
      MousePos $New2X, $New2Y
      Loop 10
        Rightclick
      End
      MousePos $New3X, $WoodBY
      Delay 50
      Rightclick
    End
    Compute New2X = $New2X + $AddX
    Compute New3X = $New3X + $AddX
  End
End

Procedure Wood	// adds some wood
if $ovendone = 0
  if $maxwood = 0
    SetConst NewX = $WoodBX
    SetConst NewY = $WoodBY
    Loop $Ovens
      IF {loopno} = $Jump
        SetConst NewX = $WoodBX
        Compute NewY = $WoodBY + $Add3Y
      End
      If {loopno} = $curentoven
        MousePos $NewX, $NewY
        Delay $SDelay
        Rightclick
        Delay $SDelay
      End
      Compute NewX = $NewX + $AddX
    End
    SetConst NewX = $WoodBX
  End
end
end

Procedure Guild	// adjusts positions for guilded ovens
  // Compute BeginX = $BeginX - 7
  Compute BeginY = $BeginY + 16
  Compute AddX = $AddX - 3
  Compute Add3Y = $Add3Y + 16
  Compute Add1Y = $Add1Y - 16
  Compute WoodBY = $WoodBY + 16
  // Compute HeatX = $HeatX - 4
  Compute HeatY = $HeatY + 16
  // Compute Oxy1X = $Oxy1X
  // Compute Oxy2X =
  Compute OxyY = $OxyY + 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
End
// Written with ACTool 5.3.0 by Anka
// Modified with ACTool 5.4.0 by rwindmtg
// Modified Further with ACTool 5.4.0 for personal use by Justin
Bell Asterisk

Settings: Note these work well for me for 2 CCovens at once. for 4 ovens, reduce the Check Bars Interval to a value of 900.

Ovens = 2

Guilded? = checked

Window Setup = unchecked

Heat = 162

HeatMin = 128

HeatMax = 174

Low Oxy = 93

High Oxy = 134

Wood = 104

Water = 77

Danger = 160

MaxDanger = 170

RGBGreen = 240

RGBBlue = 220

Check Bars Interval = 1200

Interval Increase = 500