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:TamBlack/Macros
From A Tale in the Desert
Jump to navigationJump to search//Charcoal Hearth // // Make sure TAKE is NOT an option!! Only use SETUP option ONCE!! // // I've made some improvements to the Hearth macro. Depending on your resolution, // the macro will run up to 12 guilded hearths. I've tested it in 1280x960 // resolution without any need to change values. It may work in other resolutions // also but I have not been able to test it. If you are using personal hearths, // it will run up to 10 in 1280x960. Maximum number in 1024x768 is 8. // // 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! :) Come visit me in LE :) 780, 6956 I have a large bar with tasting // tables and hookahs. // Anka // Constants //User Definable variables Hearths = 4 HeatX = 165 WoodX = 107 WaterX = 76 DangerX = 164 RGBBlue = 220 RGBGreen = 240 Guild = 1 // Y Coordinates - Don't change unless you are having a problem. RegY = 69//74 // Y coord for Regulator button BeginY = 240//245 // Y coord for Begin Button HeatY = 151//156 // Y coord for Heat Bar WoodY = 175//180 // Y coord for Wood Bar WaterY = 187//192 // Y coord for Water Bar DangerY = 199//204 // Y coord for Danger Bar StatusY = 211//216 // Y coord for Status Bar WoodBY = 245//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:False 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 1 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 MousePos 104, 251 MousePos $BeginX, $BeginY Delay 2000 end Stop End //Written with ACTool 5.3.0 by Anka Bell Asterisk