The Wiki for Tale 5 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:Thanatic/Macros/CC

From ATITD5
Jump to navigationJump to search

anka's CC macro, altered to work with ovens too

if this works for you, please chat thanatic in game, I need help testing values to fine tune it

if this doesn't work, chat thanatic for help :)


//Charcoal Hearth (or oven)
//
// Setup:  This handles from 1 to 8 charcoal hearths 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 200
//         wood per hearth and a normally hold about 150 water jugs.
//         All hearths are slightly different but I suggest that you put your
//         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.
//
//  Known Issues:  You will see it add some wood during the snuff process.  It's
//                 not much wood but I'm looking into it.
//
//  ENJOY! :)  Come acro me in LE :) 780, 6956
//  Anka
//
Constants
 //User Definable variables
 Hearths = 3       //Number of Hearths you are running. 1-8
 HeatX = 168       //Threshold for Heat bar, increase or decrease as needed.
 WoodX = 115      //Wood threshold, adds wood/round up to this point.
 WaterX = 76      //Alowable water level, not much play here.. dont lower more than 2
 DangerX = 164   //Threshold for Danger bar, increase or decrease as needed.
 RGBBlue = 220    //Threshold for detecting the color blue.  Some video cards
 //                   are having problems with this.  I will add a color test soon to
 //                   help.  If you are having problems. Run just 1 hearth 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 :(
 Guild = 1       // 1 for Guilded or public hearths, 0 for Personal hearths
 Oven = 1     //1 for Ovens, 0 for hearths
 //End User variables
 AddX = 226
 Add2X = 15
 Add1Y = 65
 Add2Y = 17
 Add3Y = 250
 RegX = 47
 RegY = 74
 BeginX = 111
 BeginY = 245
 NewX = 0
 New2X = 0
 New2Y = 0
 NewY = 0
 Heat = 0
 Wood = 0
 Water = 0
 Danger = 0
 Status = 0
 HeatY = 156
 OxyY = 168
 WoodY = 180
 
 WaterY = 192
 
 DangerY = 204
 StatusX = 167
 StatusY = 216
 WoodBX = 35
 WoodBY = 250
 WaterBX = 85
 Num = 0
 Jump = 5
 JumpM = 0
 Jumped = 0
 Used = 0
 
 MDelay = 50
 SDelay = 50
 S1Delay = 50
 Count = 0
 CountM = 0
 MouseX = 0
 MouseY = 0
 
End

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

If $Guild = 1
  Call Guild
End

If $Oven = 1
 Call Oven
End

If $Oven = 0
  Call SetReg
End

SetConst NewX = $BeginX
SetConst NewY = $BeginY
SetConst Count = 1
Loop $Hearths
 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
 Loop $Hearths
   If $CountM = $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 1000
   End
   Compute CountM = $CountM + 1
   SetConst Status = 0
 End
End

Procedure CheckBars
 MousePos $HeatX, $HeatY
 Delay $SDelay
 LoadRGB {MouseX}, {MouseY}
 if {RGBBlue} > $RGBBlue
   SetConst Heat = 1
 Else
   SetConst Heat = 0
 End
 MousePos $WoodX, $WoodY
 Delay $S1Delay
 LoadRGB {mousex}, {mousey}
 if {RGBBlue} > $RGBBlue
   SetConst Wood = 1
 Else
   SetConst Wood = 0
 End
 MousePos $WaterX, $WaterY
 Delay $S1Delay
 LoadRGB {mousex}, {mousey}
 if {RGBBlue} > $RGBBlue
   SetConst Water = 1
 Else
   SetConst Water = 0
 End
 MousePos $DangerX, $DangerY
 Delay $S1Delay
 LoadRGB {MouseX}, {MouseY}
 if {RGBBlue} > $RGBBlue
   SetConst Danger = 1
 Else
   SetConst Danger = 0
 End
 MousePos $StatusX, $StatusY
 LoadRGB {MouseX}, {MouseY}
 //if {RGBRed} = 6 and {RGBGreen} = 254 and {RGBBlue} = 5
 if {RGBGreen} > 220 and {RGBBlue} < 100
   SetConst Status = 1
 Else
   SetConst Status = 0
 End
End

Procedure Water
 SetConst NewX = $WaterBX
 SetConst NewY = $WoodBY
 Loop $Hearths
   IF {loopno} = $Jump
     SetConst NewX = $WaterBX
     Compute NewY = $WoodBY + $Add3Y
   End
   If {loopno} > $Used
     MousePos $NewX, $NewY
     Delay $SDelay
     Rightclick
     Delay $SDelay
   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} = $Jump
     SetConst New2X = $WaterBX
     Compute New2Y = $WoodBY + $Add3Y
   End
   If {loopno} = $Num
     MousePos $New2X, $New2Y
     Loop 8
       Rightclick
     End
   End
   Compute New2X = $New2X + $AddX
 End
End

Procedure Wood
 SetConst NewX = $WoodBX
 SetConst NewY = $WoodBY
 Loop $Hearths
   IF {loopno} = $Jump
     SetConst NewX = $WoodBX
     Compute NewY = $WoodBY + $Add3Y
   End
   If {loopno} > $Used
     MousePos $NewX, $NewY
     Delay $SDelay
     Rightclick
     Delay $SDelay
   End
   Compute NewX = $NewX + $AddX
 End
 SetConst NewX = $WoodBX
End

Procedure SetReg
 SetConst NewX = $RegX
 SetConst Count = 1
 Loop $Hearths
   If $Count = 5
     SetConst NewX = $RegX
     Compute RegY = $RegY + $Add3Y
   End
   MousePos $NewX, $RegY
   Delay $MDelay
   Rightclick
   Compute NewX = $NewX + $Add2X
   If $Count > 4
     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
End

Procedure Oven
 Compute BeginX = $BeginX - 0
 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
End
//Written with ACTool 5.3.0 by Anka
Bell Asterisk