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:Mindl Bastet"
From A Tale in the Desert
Jump to navigationJump to searchMindl Bastet (talk | contribs) |
Mindl Bastet (talk | contribs) |
||
Line 4: | Line 4: | ||
Macros: | Macros: | ||
+ | |||
+ | <pre> | ||
+ | //Charcoal Hearth - Mindl/Bastet | ||
+ | // Anka's CC macro modified to work at 1680x1050. Need to have game in window | ||
+ | // mode and not maximized....expand the window some but not all the way to the | ||
+ | // edge of the screen or when it click to active the window it will shrink back | ||
+ | // to 800x600 for some reason. Works with 8 hearths confirmed so far. Working | ||
+ | // testing 12. Added vent controls and improved the snuff procedure. Much more | ||
+ | // efficient I believe now. | ||
+ | // | ||
+ | // 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. | ||
+ | // Set Regulators?: Check this box to have the macro set all hearths to 0 | ||
+ | // 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 3500 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. | ||
+ | // | ||
+ | // Still in testing so no promises it will work for you. Also haven't modified | ||
+ | // the Mouse Test yet to check vent and oxygen settings. If all the macro does | ||
+ | // is add wood until full then it is not seeing the colors of the bars either | ||
+ | // A) because the Y screen coordinate for the bars is not correct for you screen | ||
+ | // or B) AC tool can see you screen. This usually only happens when the game is | ||
+ | // fullscreen mode. | ||
+ | |||
+ | Dataset Status | ||
+ | 1 = Integer | ||
+ | 2 = Integer | ||
+ | 3 = Integer | ||
+ | 4 = Integer | ||
+ | 5 = Integer | ||
+ | 6 = Integer | ||
+ | 7 = Integer | ||
+ | 8 = Integer | ||
+ | 9 = Integer | ||
+ | 10 = Integer | ||
+ | 11 = Integer | ||
+ | 12 = Integer | ||
+ | End | ||
+ | |||
+ | Dataset Snuffed | ||
+ | 1 = Integer | ||
+ | 2 = Integer | ||
+ | 3 = Integer | ||
+ | 4 = Integer | ||
+ | 5 = Integer | ||
+ | 6 = Integer | ||
+ | 7 = Integer | ||
+ | 8 = Integer | ||
+ | 9 = Integer | ||
+ | 10 = Integer | ||
+ | 11 = Integer | ||
+ | 12 = Integer | ||
+ | End | ||
+ | |||
+ | Constants | ||
+ | //User Definable variables | ||
+ | Hearths = 4 | ||
+ | HeatX = 170 | ||
+ | OxyMinX = 90 | ||
+ | OxyMaxX = 155 | ||
+ | WoodX = 117 | ||
+ | WaterX = 83 | ||
+ | DangerX = 160 | ||
+ | DangerX1 = 180 | ||
+ | OpenX1 = 138 | ||
+ | OpenX2 = 164 | ||
+ | OpenX3 = 190 | ||
+ | RGBBlue = 220 | ||
+ | RGBGreen = 240 | ||
+ | Guild = 1 | ||
+ | |||
+ | |||
+ | // Y Coordinates - Don't change unless you are having a problem. | ||
+ | RegY = 95 // Y coord for Regulator button | ||
+ | BeginY = 263 // Y coord for Begin Button | ||
+ | HeatY = 177 // Y coord for Heat Bar | ||
+ | OxyY = 187 // Y coord for Oxygen Bar | ||
+ | WoodY = 199 // Y coord for Wood Bar | ||
+ | WaterY = 212 // Y coord for Water Bar | ||
+ | DangerY = 223 // Y coord for Danger Bar | ||
+ | StatusY = 235 // Y coord for Status Bar | ||
+ | WoodBY = 271 // Y coord for Wood and Water buttons | ||
+ | OxyBY = 270 // Y coord for Vent Buttons | ||
+ | //End User variables | ||
+ | |||
+ | Hrow = 0 | ||
+ | Hrow1 = 0 | ||
+ | AddX = 212 | ||
+ | Add2X = 30 | ||
+ | Add1Y = 30 | ||
+ | Add2Y = 0 | ||
+ | Add3Y = 267 | ||
+ | RegX = 47 | ||
+ | BeginX = 111 | ||
+ | NewX = 0 | ||
+ | New2X = 0 | ||
+ | New2Y = 0 | ||
+ | New3X = 0 | ||
+ | New3Y = 0 | ||
+ | NewY = 0 | ||
+ | NewX1 = 0 | ||
+ | NewX2 = 0 | ||
+ | NewX3 = 0 | ||
+ | Heat = 0 | ||
+ | OxyMax = 0 | ||
+ | OxyMin = 0 | ||
+ | Wood = 0 | ||
+ | Water = 0 | ||
+ | Danger = 0 | ||
+ | Status = 0 | ||
+ | StatusX = 167 | ||
+ | WoodBX = 35 | ||
+ | WaterBX = 85 | ||
+ | Num = 0 | ||
+ | Jump = 5 | ||
+ | JumpM = 0 | ||
+ | Jumped = 0 | ||
+ | Used = 0 | ||
+ | MDelay = 200 | ||
+ | SDelay = 100 | ||
+ | S1Delay = 100 | ||
+ | Count = 0 | ||
+ | CountM = 0 | ||
+ | MouseX = 0 | ||
+ | MouseY = 0 | ||
+ | CheckDelay = 0 | ||
+ | Setup = 0 | ||
+ | SetX = 10 | ||
+ | SetY = 40 | ||
+ | SetAddX = 212 | ||
+ | SetAddY = 266 | ||
+ | SetLoop = 0 | ||
+ | Mouse = 1 | ||
+ | OrigX = 0 | ||
+ | OrigY = 0 | ||
+ | Closed = 0 | ||
+ | Open = 0 | ||
+ | FirstFire = 0 | ||
+ | Danger1 = 0 | ||
+ | Finished = 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 | ||
+ | ed17=Checkbox:"Set Regulators?":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):89 | ||
+ | ed5=Editbox:High Oxy (75-188):170 | ||
+ | ed6=Editbox:Wood (75-188):112 | ||
+ | ed7=Editbox:Water (75-188):83 | ||
+ | ed8=Editbox:RGBGreen:240 | ||
+ | ed9=Editbox:RGBBlue:220 | ||
+ | ed12=Editbox:Check Bars Interval (miliseconds):3500 | ||
+ | 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 OxyMinX = ccHearth[ed4] | ||
+ | SetConst OxyMaxX = 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 51, 44 //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 | ||
+ | |||
+ | if ccHearth[ed17] = True | ||
+ | Call SetReg | ||
+ | end | ||
+ | |||
+ | 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 :) | ||
+ | |||
+ | loop $Hearths | ||
+ | dsedit Status | ||
+ | setconst Status[{loopno}] = 0 | ||
+ | dspost status | ||
+ | dsedit Snuffed | ||
+ | setconst Snuffed[{loopno}] = 0 | ||
+ | dspost Snuffed | ||
+ | end | ||
+ | |||
+ | 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 | ||
+ | SetConst FirstFire = 1 | ||
+ | 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 $Finished < $Hearths | ||
+ | |||
+ | Call CheckBars | ||
+ | |||
+ | if Status[1] = 1 or Status[2] = 1 or Status[3] = 1 or Status[4] = 1 or Status[5] = 1 or Status[6] = 1 or Status[7] = 1 or Status[8] = 1 or Status[9] = 1 or Status[10] = 1 or Status[11] = 1 or Status[12] = 1 | ||
+ | |||
+ | Call Snuff | ||
+ | |||
+ | End | ||
+ | |||
+ | if $FirstFire = 1 | ||
+ | Call Wood | ||
+ | End | ||
+ | |||
+ | If $Heat = 0 and $Danger = 0 and $Wood = 0 | ||
+ | |||
+ | Call Wood | ||
+ | |||
+ | Else | ||
+ | |||
+ | If $Heat = 1 or $Danger = 1 | ||
+ | |||
+ | If $Water = 0 or $Danger1 = 1 | ||
+ | |||
+ | Call Water | ||
+ | |||
+ | End | ||
+ | End | ||
+ | End | ||
+ | |||
+ | Call Vent | ||
+ | |||
+ | Delay $CheckDelay | ||
+ | End | ||
+ | Compute CountM = $CountM + 1 | ||
+ | End | ||
+ | End | ||
+ | |||
+ | Procedure CheckBars | ||
+ | |||
+ | SetConst NewX = $StatusX | ||
+ | SetConst NewY = $StatusY | ||
+ | |||
+ | 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 $OxyMinX, $OxyY | ||
+ | Delay $S1Delay | ||
+ | end | ||
+ | LoadRGB $OxyMinX , $OxyY | ||
+ | if {RGBBlue} < $RGBBlue | ||
+ | SetConst OxyMin = 1 | ||
+ | Else | ||
+ | SetConst OxyMin = 0 | ||
+ | End | ||
+ | If $Mouse = 1 | ||
+ | MousePos $OxyMaxX, $OxyY | ||
+ | Delay $S1Delay | ||
+ | end | ||
+ | LoadRGB $OxyMaxX , $OxyY | ||
+ | if {RGBBlue} > $RGBBlue | ||
+ | SetConst OxyMax = 1 | ||
+ | Else | ||
+ | SetConst OxyMax = 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 $DangerX1, $DangerY | ||
+ | Delay $S1Delay | ||
+ | End | ||
+ | LoadRGB $DangerX1, $DangerY | ||
+ | if {RGBBlue} > $RGBBlue | ||
+ | SetConst Danger1 = 1 | ||
+ | Else | ||
+ | SetConst Danger1 = 0 | ||
+ | End | ||
+ | |||
+ | Loop $Hearths | ||
+ | |||
+ | IF {loopno} = $HRow1 //$Jump | ||
+ | SetConst NewX = $StatusX | ||
+ | Compute NewY = $StatusY + $Add3Y | ||
+ | End | ||
+ | |||
+ | If {loopno} > $Used | ||
+ | If $Mouse = 0 | ||
+ | Set OrigX = {mousex} | ||
+ | Set OrigY = {mousey} | ||
+ | End | ||
+ | |||
+ | If $Mouse = 1 | ||
+ | MousePos $NewX, $NewY | ||
+ | End | ||
+ | |||
+ | LoadRGB $NewX, $NewY | ||
+ | if {RGBGreen} > $RGBGreen | ||
+ | DSEdit Status | ||
+ | SetConst Status[{loopno}] = 1 | ||
+ | DSPost Status | ||
+ | End | ||
+ | |||
+ | Compute NewX = $NewX + $AddX | ||
+ | |||
+ | end | ||
+ | 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 | ||
+ | |||
+ | if Snuffed[{loopno}] = 0 | ||
+ | MousePos $NewX, $NewY | ||
+ | Delay $SDelay | ||
+ | Rightclick | ||
+ | Delay $SDelay | ||
+ | end | ||
+ | |||
+ | 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 | ||
+ | Setconst New3X = $OpenX3 | ||
+ | SetConst New3Y = $OxyBY | ||
+ | |||
+ | Compute Num = $Used + 1 | ||
+ | |||
+ | Loop $Hearths | ||
+ | |||
+ | IF {loopno} = $Hrow1 //$Jump | ||
+ | SetConst New2X = $WaterBX | ||
+ | Compute New2Y = $WoodBY + $Add3Y | ||
+ | SetConst New3X = $OpenX3 | ||
+ | Compute New3Y = $OxyBy + $Add3Y | ||
+ | End | ||
+ | |||
+ | if Status[{loopno}] = 1 | ||
+ | if Snuffed[{loopno}] = 0 | ||
+ | If $Mouse = 0 | ||
+ | Set OrigX = {mousex} | ||
+ | Set OrigY = {mousey} | ||
+ | End | ||
+ | MousePos $New2X, $New2Y | ||
+ | Loop 4 | ||
+ | Rightclick | ||
+ | End | ||
+ | MousePos $New3X, $New3Y | ||
+ | Rightclick | ||
+ | If $Mouse = 0 | ||
+ | Mousepos $OrigX, $OrigY | ||
+ | End | ||
+ | DSedit Snuffed | ||
+ | setconst Snuffed[{loopno}] = 1 | ||
+ | DSpost Snuffed | ||
+ | compute Finished = $Finished + 1 | ||
+ | End | ||
+ | End | ||
+ | |||
+ | Compute New2X = $New2X + $AddX | ||
+ | Compute New3X = $New3X + $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 | ||
+ | |||
+ | if Snuffed[{loopno}] = 0 | ||
+ | |||
+ | MousePos $NewX, $NewY | ||
+ | Delay $SDelay | ||
+ | Rightclick | ||
+ | if $FirstFire = 1 | ||
+ | Delay $S1Delay | ||
+ | Rightclick | ||
+ | End | ||
+ | Delay $SDelay | ||
+ | end | ||
+ | If $Mouse = 0 | ||
+ | MousePos $OrigX, $OrigY | ||
+ | End | ||
+ | |||
+ | End | ||
+ | |||
+ | Compute NewX = $NewX + $AddX | ||
+ | |||
+ | End | ||
+ | |||
+ | SetConst NewX = $WoodBX | ||
+ | |||
+ | if $FirstFire = 1 | ||
+ | SetConst FirstFire = 0 | ||
+ | end | ||
+ | |||
+ | End | ||
+ | |||
+ | Procedure Vent | ||
+ | SetConst NewX1 = $OpenX1 | ||
+ | SetConst NewX2 = $OpenX2 | ||
+ | SetConst NewX3 = $OpenX3 | ||
+ | Setconst NewY = $OxyBY | ||
+ | |||
+ | if $Open = 1 | ||
+ | Compute Open = $Open + 1 | ||
+ | end | ||
+ | |||
+ | if $Closed = 1 | ||
+ | Compute Closed = $Closed + 1 | ||
+ | end | ||
+ | |||
+ | if $OxyMin = 1 and $Open = 0 | ||
+ | |||
+ | Loop $Hearths | ||
+ | |||
+ | IF {loopno} = $HRow1 //$Jump | ||
+ | SetConst NewX1 = $OpenX1 | ||
+ | SetConst NewX2 = $OpenX2 | ||
+ | SetConst NewX3 = $OpenX3 | ||
+ | Compute NewY = $OxyBY + $Add3Y | ||
+ | End | ||
+ | |||
+ | If {loopno} > $Used | ||
+ | If $Mouse = 0 | ||
+ | Set OrigX = {mousex} | ||
+ | Set OrigY = {mousey} | ||
+ | End | ||
+ | |||
+ | if Snuffed[{loopno}] = 0 | ||
+ | MousePos $NewX3, $NewY | ||
+ | Delay $SDelay | ||
+ | Rightclick | ||
+ | Delay $SDelay | ||
+ | end | ||
+ | |||
+ | If $Mouse = 0 | ||
+ | MousePos $OrigX, $OrigY | ||
+ | End | ||
+ | |||
+ | SetConst Open = 1 | ||
+ | SetConst Closed = 0 | ||
+ | |||
+ | end | ||
+ | Compute NewX3 = $NewX3 + $AddX | ||
+ | end | ||
+ | end | ||
+ | |||
+ | if $OxyMax = 1 and $Closed = 0 | ||
+ | Loop $Hearths | ||
+ | |||
+ | IF {loopno} = $HRow1 //$Jump | ||
+ | SetConst NewX1 = $OpenX1 | ||
+ | SetConst NewX2 = $OpenX2 | ||
+ | SetConst NewX3 = $OpenX3 | ||
+ | Compute NewY = $OxyBY + $Add3Y | ||
+ | End | ||
+ | |||
+ | If {loopno} > $Used | ||
+ | If $Mouse = 0 | ||
+ | Set OrigX = {mousex} | ||
+ | Set OrigY = {mousey} | ||
+ | End | ||
+ | |||
+ | if Snuffed[{loopno}] = 0 | ||
+ | MousePos $NewX1, $NewY | ||
+ | Delay $SDelay | ||
+ | Rightclick | ||
+ | Delay $SDelay | ||
+ | end | ||
+ | |||
+ | If $Mouse = 0 | ||
+ | MousePos $OrigX, $OrigY | ||
+ | End | ||
+ | |||
+ | SetConst Closed = 1 | ||
+ | SetConst Open = 0 | ||
+ | |||
+ | End | ||
+ | Compute NewX1 = $NewX1 + $AddX | ||
+ | end | ||
+ | end | ||
+ | |||
+ | if $OxyMax = 0 and $Open = 2 | ||
+ | Loop $Hearths | ||
+ | |||
+ | IF {loopno} = $HRow1 //$Jump | ||
+ | SetConst NewX1 = $OpenX1 | ||
+ | SetConst NewX2 = $OpenX2 | ||
+ | SetConst NewX3 = $OpenX3 | ||
+ | Compute NewY = $OxyBY + $Add3Y | ||
+ | End | ||
+ | |||
+ | If {loopno} > $Used | ||
+ | If $Mouse = 0 | ||
+ | Set OrigX = {mousex} | ||
+ | Set OrigY = {mousey} | ||
+ | End | ||
+ | |||
+ | if Snuffed[{loopno}] = 0 | ||
+ | MousePos $NewX2, $NewY | ||
+ | Delay $SDelay | ||
+ | Rightclick | ||
+ | Delay $SDelay | ||
+ | end | ||
+ | |||
+ | If $Mouse = 0 | ||
+ | MousePos $OrigX, $OrigY | ||
+ | End | ||
+ | end | ||
+ | Compute NewX2 = $NewX2 + $AddX | ||
+ | end | ||
+ | |||
+ | SetConst Open = 0 | ||
+ | |||
+ | end | ||
+ | |||
+ | if $OxyMin = 0 and $Closed = 2 | ||
+ | Loop $Hearths | ||
+ | |||
+ | IF {loopno} = $HRow1 //$Jump | ||
+ | SetConst NewX1 = $OpenX1 | ||
+ | SetConst NewX2 = $OpenX2 | ||
+ | SetConst NewX3 = $OpenX3 | ||
+ | Compute NewY = $OxyBY + $Add3Y | ||
+ | End | ||
+ | |||
+ | If {loopno} > $Used | ||
+ | If $Mouse = 0 | ||
+ | Set OrigX = {mousex} | ||
+ | Set OrigY = {mousey} | ||
+ | End | ||
+ | |||
+ | if Snuffed[{loopno}] = 0 | ||
+ | MousePos $NewX2, $NewY | ||
+ | Delay $SDelay | ||
+ | Rightclick | ||
+ | Delay $SDelay | ||
+ | end | ||
+ | |||
+ | If $Mouse = 0 | ||
+ | MousePos $OrigX, $OrigY | ||
+ | End | ||
+ | |||
+ | end | ||
+ | Compute NewX2 = $NewX2 + $AddX | ||
+ | End | ||
+ | |||
+ | SetConst Closed = 0 | ||
+ | |||
+ | end | ||
+ | |||
+ | SetConst NewX1 = $OpenX1 | ||
+ | SetConst NewX2 = $OpenX2 | ||
+ | SetConst NewX3 = $OpenX3 | ||
+ | |||
+ | 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 | ||
+ | |||
+ | Bell Asterisk | ||
+ | |||
+ | |||
+ | </pre> |
Latest revision as of 01:19, 12 March 2010
Kinsman Life of Bastet
Student of Architecture
Macros:
//Charcoal Hearth - Mindl/Bastet // Anka's CC macro modified to work at 1680x1050. Need to have game in window // mode and not maximized....expand the window some but not all the way to the // edge of the screen or when it click to active the window it will shrink back // to 800x600 for some reason. Works with 8 hearths confirmed so far. Working // testing 12. Added vent controls and improved the snuff procedure. Much more // efficient I believe now. // // 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. // Set Regulators?: Check this box to have the macro set all hearths to 0 // 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 3500 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. // // Still in testing so no promises it will work for you. Also haven't modified // the Mouse Test yet to check vent and oxygen settings. If all the macro does // is add wood until full then it is not seeing the colors of the bars either // A) because the Y screen coordinate for the bars is not correct for you screen // or B) AC tool can see you screen. This usually only happens when the game is // fullscreen mode. Dataset Status 1 = Integer 2 = Integer 3 = Integer 4 = Integer 5 = Integer 6 = Integer 7 = Integer 8 = Integer 9 = Integer 10 = Integer 11 = Integer 12 = Integer End Dataset Snuffed 1 = Integer 2 = Integer 3 = Integer 4 = Integer 5 = Integer 6 = Integer 7 = Integer 8 = Integer 9 = Integer 10 = Integer 11 = Integer 12 = Integer End Constants //User Definable variables Hearths = 4 HeatX = 170 OxyMinX = 90 OxyMaxX = 155 WoodX = 117 WaterX = 83 DangerX = 160 DangerX1 = 180 OpenX1 = 138 OpenX2 = 164 OpenX3 = 190 RGBBlue = 220 RGBGreen = 240 Guild = 1 // Y Coordinates - Don't change unless you are having a problem. RegY = 95 // Y coord for Regulator button BeginY = 263 // Y coord for Begin Button HeatY = 177 // Y coord for Heat Bar OxyY = 187 // Y coord for Oxygen Bar WoodY = 199 // Y coord for Wood Bar WaterY = 212 // Y coord for Water Bar DangerY = 223 // Y coord for Danger Bar StatusY = 235 // Y coord for Status Bar WoodBY = 271 // Y coord for Wood and Water buttons OxyBY = 270 // Y coord for Vent Buttons //End User variables Hrow = 0 Hrow1 = 0 AddX = 212 Add2X = 30 Add1Y = 30 Add2Y = 0 Add3Y = 267 RegX = 47 BeginX = 111 NewX = 0 New2X = 0 New2Y = 0 New3X = 0 New3Y = 0 NewY = 0 NewX1 = 0 NewX2 = 0 NewX3 = 0 Heat = 0 OxyMax = 0 OxyMin = 0 Wood = 0 Water = 0 Danger = 0 Status = 0 StatusX = 167 WoodBX = 35 WaterBX = 85 Num = 0 Jump = 5 JumpM = 0 Jumped = 0 Used = 0 MDelay = 200 SDelay = 100 S1Delay = 100 Count = 0 CountM = 0 MouseX = 0 MouseY = 0 CheckDelay = 0 Setup = 0 SetX = 10 SetY = 40 SetAddX = 212 SetAddY = 266 SetLoop = 0 Mouse = 1 OrigX = 0 OrigY = 0 Closed = 0 Open = 0 FirstFire = 0 Danger1 = 0 Finished = 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 ed17=Checkbox:"Set Regulators?":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):89 ed5=Editbox:High Oxy (75-188):170 ed6=Editbox:Wood (75-188):112 ed7=Editbox:Water (75-188):83 ed8=Editbox:RGBGreen:240 ed9=Editbox:RGBBlue:220 ed12=Editbox:Check Bars Interval (miliseconds):3500 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 OxyMinX = ccHearth[ed4] SetConst OxyMaxX = 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 51, 44 //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 if ccHearth[ed17] = True Call SetReg end 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 :) loop $Hearths dsedit Status setconst Status[{loopno}] = 0 dspost status dsedit Snuffed setconst Snuffed[{loopno}] = 0 dspost Snuffed end 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 SetConst FirstFire = 1 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 $Finished < $Hearths Call CheckBars if Status[1] = 1 or Status[2] = 1 or Status[3] = 1 or Status[4] = 1 or Status[5] = 1 or Status[6] = 1 or Status[7] = 1 or Status[8] = 1 or Status[9] = 1 or Status[10] = 1 or Status[11] = 1 or Status[12] = 1 Call Snuff End if $FirstFire = 1 Call Wood End If $Heat = 0 and $Danger = 0 and $Wood = 0 Call Wood Else If $Heat = 1 or $Danger = 1 If $Water = 0 or $Danger1 = 1 Call Water End End End Call Vent Delay $CheckDelay End Compute CountM = $CountM + 1 End End Procedure CheckBars SetConst NewX = $StatusX SetConst NewY = $StatusY 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 $OxyMinX, $OxyY Delay $S1Delay end LoadRGB $OxyMinX , $OxyY if {RGBBlue} < $RGBBlue SetConst OxyMin = 1 Else SetConst OxyMin = 0 End If $Mouse = 1 MousePos $OxyMaxX, $OxyY Delay $S1Delay end LoadRGB $OxyMaxX , $OxyY if {RGBBlue} > $RGBBlue SetConst OxyMax = 1 Else SetConst OxyMax = 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 $DangerX1, $DangerY Delay $S1Delay End LoadRGB $DangerX1, $DangerY if {RGBBlue} > $RGBBlue SetConst Danger1 = 1 Else SetConst Danger1 = 0 End Loop $Hearths IF {loopno} = $HRow1 //$Jump SetConst NewX = $StatusX Compute NewY = $StatusY + $Add3Y End If {loopno} > $Used If $Mouse = 0 Set OrigX = {mousex} Set OrigY = {mousey} End If $Mouse = 1 MousePos $NewX, $NewY End LoadRGB $NewX, $NewY if {RGBGreen} > $RGBGreen DSEdit Status SetConst Status[{loopno}] = 1 DSPost Status End Compute NewX = $NewX + $AddX end 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 if Snuffed[{loopno}] = 0 MousePos $NewX, $NewY Delay $SDelay Rightclick Delay $SDelay end 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 Setconst New3X = $OpenX3 SetConst New3Y = $OxyBY Compute Num = $Used + 1 Loop $Hearths IF {loopno} = $Hrow1 //$Jump SetConst New2X = $WaterBX Compute New2Y = $WoodBY + $Add3Y SetConst New3X = $OpenX3 Compute New3Y = $OxyBy + $Add3Y End if Status[{loopno}] = 1 if Snuffed[{loopno}] = 0 If $Mouse = 0 Set OrigX = {mousex} Set OrigY = {mousey} End MousePos $New2X, $New2Y Loop 4 Rightclick End MousePos $New3X, $New3Y Rightclick If $Mouse = 0 Mousepos $OrigX, $OrigY End DSedit Snuffed setconst Snuffed[{loopno}] = 1 DSpost Snuffed compute Finished = $Finished + 1 End End Compute New2X = $New2X + $AddX Compute New3X = $New3X + $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 if Snuffed[{loopno}] = 0 MousePos $NewX, $NewY Delay $SDelay Rightclick if $FirstFire = 1 Delay $S1Delay Rightclick End Delay $SDelay end If $Mouse = 0 MousePos $OrigX, $OrigY End End Compute NewX = $NewX + $AddX End SetConst NewX = $WoodBX if $FirstFire = 1 SetConst FirstFire = 0 end End Procedure Vent SetConst NewX1 = $OpenX1 SetConst NewX2 = $OpenX2 SetConst NewX3 = $OpenX3 Setconst NewY = $OxyBY if $Open = 1 Compute Open = $Open + 1 end if $Closed = 1 Compute Closed = $Closed + 1 end if $OxyMin = 1 and $Open = 0 Loop $Hearths IF {loopno} = $HRow1 //$Jump SetConst NewX1 = $OpenX1 SetConst NewX2 = $OpenX2 SetConst NewX3 = $OpenX3 Compute NewY = $OxyBY + $Add3Y End If {loopno} > $Used If $Mouse = 0 Set OrigX = {mousex} Set OrigY = {mousey} End if Snuffed[{loopno}] = 0 MousePos $NewX3, $NewY Delay $SDelay Rightclick Delay $SDelay end If $Mouse = 0 MousePos $OrigX, $OrigY End SetConst Open = 1 SetConst Closed = 0 end Compute NewX3 = $NewX3 + $AddX end end if $OxyMax = 1 and $Closed = 0 Loop $Hearths IF {loopno} = $HRow1 //$Jump SetConst NewX1 = $OpenX1 SetConst NewX2 = $OpenX2 SetConst NewX3 = $OpenX3 Compute NewY = $OxyBY + $Add3Y End If {loopno} > $Used If $Mouse = 0 Set OrigX = {mousex} Set OrigY = {mousey} End if Snuffed[{loopno}] = 0 MousePos $NewX1, $NewY Delay $SDelay Rightclick Delay $SDelay end If $Mouse = 0 MousePos $OrigX, $OrigY End SetConst Closed = 1 SetConst Open = 0 End Compute NewX1 = $NewX1 + $AddX end end if $OxyMax = 0 and $Open = 2 Loop $Hearths IF {loopno} = $HRow1 //$Jump SetConst NewX1 = $OpenX1 SetConst NewX2 = $OpenX2 SetConst NewX3 = $OpenX3 Compute NewY = $OxyBY + $Add3Y End If {loopno} > $Used If $Mouse = 0 Set OrigX = {mousex} Set OrigY = {mousey} End if Snuffed[{loopno}] = 0 MousePos $NewX2, $NewY Delay $SDelay Rightclick Delay $SDelay end If $Mouse = 0 MousePos $OrigX, $OrigY End end Compute NewX2 = $NewX2 + $AddX end SetConst Open = 0 end if $OxyMin = 0 and $Closed = 2 Loop $Hearths IF {loopno} = $HRow1 //$Jump SetConst NewX1 = $OpenX1 SetConst NewX2 = $OpenX2 SetConst NewX3 = $OpenX3 Compute NewY = $OxyBY + $Add3Y End If {loopno} > $Used If $Mouse = 0 Set OrigX = {mousex} Set OrigY = {mousey} End if Snuffed[{loopno}] = 0 MousePos $NewX2, $NewY Delay $SDelay Rightclick Delay $SDelay end If $Mouse = 0 MousePos $OrigX, $OrigY End end Compute NewX2 = $NewX2 + $AddX End SetConst Closed = 0 end SetConst NewX1 = $OpenX1 SetConst NewX2 = $OpenX2 SetConst NewX3 = $OpenX3 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 Bell Asterisk