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.
User:Oni/Hearth
From A Tale in the Desert
< User:Oni
Jump to navigationJump to search- FULL credit for this goes to ANKA - I did not write this, just edited it slightly.
- Slightly edited - sped up to make more reliable.
- 1024x768 goodness :)
//Charcoal Hearth
//
// 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 = 107 //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
//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
Call SetReg
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
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
//Written with ACTool 5.3.0 by Anka
Bell Asterisk