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.
Difference between revisions of "Code"
From ATITD5
Jump to navigationJump to searchFinndibaenn (talk | contribs) |
|||
Line 37: | Line 37: | ||
// Vertical position of middle of slider bar | // Vertical position of middle of slider bar | ||
− | midSlider = | + | midSlider = 278 |
// Vertical position of button centres | // Vertical position of button centres | ||
− | vrtButton = | + | vrtButton = 358 |
// Horizontal positions of seven slider bars | // Horizontal positions of seven slider bars | ||
Line 61: | Line 61: | ||
// Position of left most point of red line | // Position of left most point of red line | ||
− | hrzRed = | + | hrzRed = 35 |
− | verRed = | + | verRed = 187 |
Line 88: | Line 88: | ||
posSlider6old = 0 | posSlider6old = 0 | ||
posSlider7old = 0 | posSlider7old = 0 | ||
+ | |||
+ | // finndibaenn addition : avoid getting half yield, use single controlled sliders to compensate dual ones | ||
+ | aboveCount = 0 | ||
+ | belowCount = 0 | ||
+ | // move the last single 5 pix away from bar to get | ||
+ | offset = 0 | ||
END | END | ||
Line 114: | Line 120: | ||
// Crude loop at the moment. Should really monitor the progress bar. | // Crude loop at the moment. Should really monitor the progress bar. | ||
+ | LoadRGB $hrzRed,$verRed | ||
+ | delay 100 | ||
+ | |||
+ | while {RGBRed} > 250 | ||
+ | Compute aboveCount = 0 | ||
+ | Compute belowCount = 0 | ||
− | |||
Line 122: | Line 133: | ||
// Checks whether the batch is done, breaks loop if so | // Checks whether the batch is done, breaks loop if so | ||
− | + | // LoadRGB $hrzRed,$verRed | |
− | + | // delay 100 | |
− | + | // if {RGBRed} < 250 | |
− | + | // break | |
− | + | // END | |
Line 137: | Line 148: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
// Two sliders per button control (use centre of mass, i.e. average) | // Two sliders per button control (use centre of mass, i.e. average) | ||
Line 240: | Line 200: | ||
END | END | ||
END | END | ||
− | + | ||
+ | if $posSlider1 > 0 | ||
+ | Compute aboveCount = 1 | ||
+ | END | ||
+ | if $posSlider1 < 0 | ||
+ | Compute belowCount = 1 | ||
+ | END | ||
+ | if $posSlider7 > 0 | ||
+ | Compute aboveCount = $aboveCount + 1 | ||
+ | END | ||
+ | if $posSlider7 < 0 | ||
+ | Compute belowCount = $belowCount + 1 | ||
+ | END | ||
Line 275: | Line 247: | ||
END | END | ||
END | END | ||
+ | |||
+ | if $posSlider4 > 0 | ||
+ | Compute aboveCount = $aboveCount + 1 | ||
+ | END | ||
+ | if $posSlider4 < 0 | ||
+ | Compute belowCount = $belowCount + 1 | ||
+ | END | ||
+ | if $posSlider6 > 0 | ||
+ | Compute aboveCount = $aboveCount + 1 | ||
+ | END | ||
+ | if $posSlider6 < 0 | ||
+ | Compute belowCount = $belowCount + 1 | ||
+ | END | ||
+ | |||
+ | |||
+ | //1st single slider/button combo: | ||
+ | |||
+ | if $posSlider2 > 0 | ||
+ | if $posSlider2 > $posSlider2old | ||
+ | mousepos $hrzButton3,$vrtButton | ||
+ | delay 200 | ||
+ | LeftClick | ||
+ | END | ||
+ | END | ||
+ | if $posSlider2 < 0 | ||
+ | if $posSlider2 < $posSlider2old | ||
+ | mousepos $hrzButton3,$vrtButton | ||
+ | delay 200 | ||
+ | LeftClick | ||
+ | END | ||
+ | END | ||
+ | if $posSlider2 > 0 | ||
+ | Compute aboveCount = $aboveCount + 1 | ||
+ | END | ||
+ | if $posSlider2 < 0 | ||
+ | Compute belowCount = $belowCount + 1 | ||
+ | END | ||
+ | |||
+ | |||
+ | //2nd single slider/button combo: | ||
+ | if $aboveCount < 1 | ||
+ | Compute offset = 3 | ||
+ | END | ||
+ | |||
+ | if $belowCount < 1 | ||
+ | Compute offset = -3 | ||
+ | END | ||
+ | if $posSlider3 > 0 | ||
+ | if $posSlider3 > $posSlider3old | ||
+ | mousepos $hrzButton5,$vrtButton | ||
+ | delay 200 | ||
+ | LeftClick | ||
+ | END | ||
+ | END | ||
+ | if $posSlider3 < 0 | ||
+ | if $posSlider3 < $posSlider3old | ||
+ | mousepos $hrzButton5,$vrtButton | ||
+ | delay 200 | ||
+ | LeftClick | ||
+ | END | ||
+ | END | ||
+ | if $posSlider3 > 0 | ||
+ | Compute aboveCount = $aboveCount + 1 | ||
+ | END | ||
+ | if $posSlider3 < 0 | ||
+ | Compute belowCount = $belowCount + 1 | ||
+ | END | ||
+ | |||
+ | if $aboveCount < 2 | ||
+ | Compute offset = 3 | ||
+ | END | ||
+ | |||
+ | if $belowCount < 2 | ||
+ | Compute offset = -3 | ||
+ | END | ||
+ | |||
+ | //3rd single slider/button combo: | ||
+ | |||
+ | if $posSlider5 > $offset | ||
+ | if $posSlider5 > $posSlider5old | ||
+ | mousepos $hrzButton2,$vrtButton | ||
+ | delay 200 | ||
+ | LeftClick | ||
+ | END | ||
+ | END | ||
+ | if $posSlider5 < $offset | ||
+ | if $posSlider5 < $posSlider5old | ||
+ | mousepos $hrzButton2,$vrtButton | ||
+ | delay 200 | ||
+ | LeftClick | ||
+ | END | ||
+ | END | ||
Compute posSlider1old = $posSlider1 | Compute posSlider1old = $posSlider1 | ||
Compute posSlider2old = $posSlider2 | Compute posSlider2old = $posSlider2 | ||
Line 430: | Line 494: | ||
END | END | ||
END | END | ||
+ | LoadRGB $hrzRed,$verRed | ||
+ | delay 100 | ||
END | END | ||
− | |||
</pre> | </pre> |
Revision as of 21:46, 19 October 2010
// This currently works for my screen resolution 1024:768 with ATITD in full screen // Pin the crematory window in the upper left of the screen as far into the corner as possible // Load with stuff manually and make sure the window is fully refreshed so that the // "fire crematory" button appears and there is no slider bar! // Start the macro - it will click the fire button which will also bring ATITD to the top // Once the crematory has finished go back to ACTOOL and stop the macro - it currently just // has a huge crude loop - it would be relatively easy to monitor the progress bar but I // haven't done that yet // For different screen resolutions I guess use "pixie" or something similar to get coords // Need to change slider and button numbers under slider control for your particular crematory // (The wiki explains how to analyse your crematory) //AMIGOS: //Sliders numbered left-to-right 1-7. //Buttons labeled left-to-right 1-5. //Button 1 -> 1, 7 //Button 2 -> 5 //Button 3 -> 2 //Button 4 -> 4, 6 //Button 5 -> 3 Constants //Make sure the "Take..." option is NOT in the pinup menu or else this script will fail (burn your loaded resources). //Make sure the crematory is completely empty before pinning up the menu, in the upper left corner. //More instructions/screenshots at http://www.atitd.org/wiki/tale4/User:Cegaiel/Macros/Crematory //These settings will work on 1024x768. Only change these it you want it work at a different resolution. // Vertical position of middle of slider bar midSlider = 278 // Vertical position of button centres vrtButton = 358 // Horizontal positions of seven slider bars hrzSlider1 = 30 hrzSlider2 = 66 hrzSlider3 = 102 hrzSlider4 = 138 hrzSlider5 = 174 hrzSlider6 = 210 hrzSlider7 = 246 // Horizontal positions of five button centres hrzButton1 = 57 hrzButton2 = 97 hrzButton3 = 137 hrzButton4 = 177 hrzButton5 = 217 // Position of left most point of red line hrzRed = 35 verRed = 187 //Leave these alone count = 0 counthi = 0 countlo = 0 clickflag = 0 flag = 1 posSlider1 = 0 posSlider2 = 0 posSlider3 = 0 posSlider4 = 0 posSlider5 = 0 posSlider6 = 0 posSlider7 = 0 comSlider1 = 0 comSlider2 = 0 posSlider1old = 0 posSlider2old = 0 posSlider3old = 0 posSlider4old = 0 posSlider5old = 0 posSlider6old = 0 posSlider7old = 0 // finndibaenn addition : avoid getting half yield, use single controlled sliders to compensate dual ones aboveCount = 0 belowCount = 0 // move the last single 5 pix away from bar to get offset = 0 END //Click the top of menu to refresh the menu mousepos 104, 44 delay 200 LeftClick // Clicks to fire the crematory (need to specify centre of fire button) mousepos 62, 86 delay 200 LeftClick // First call to obtain initial positions of sliders call GETSLIDERPOS Compute posSlider1old = $posSlider1 Compute posSlider2old = $posSlider2 Compute posSlider3old = $posSlider3 Compute posSlider4old = $posSlider4 Compute posSlider5old = $posSlider5 Compute posSlider6old = $posSlider6 Compute posSlider7old = $posSlider7 // Crude loop at the moment. Should really monitor the progress bar. LoadRGB $hrzRed,$verRed delay 100 while {RGBRed} > 250 Compute aboveCount = 0 Compute belowCount = 0 //Credit to Daniels for this sniplet of code to watch the red progress bar //and exit script when the bar disappears (when done). // Checks whether the batch is done, breaks loop if so // LoadRGB $hrzRed,$verRed // delay 100 // if {RGBRed} < 250 // break // END call GETSLIDERPOS // One slider per button control // Need to alter slider and button numbers for particular crematory // Two sliders per button control (use centre of mass, i.e. average) // Need to alter slider and button numbers for particular crematory //Note Editing a slider number is $posSlider#, not comSlider#. Do not change the 1 or 2 on $comSlider1 and $comSlider2 //1st two slider/one button combo: // // Compute comSlider1 = ($posSlider1 + $posSlider7)/2 // if $comSlider1 > 0 // Compute clickflag = 0 // if $posSlider1 > $posSlider1old // Compute clickflag = 1 // END // if $posSlider7 > $posSlider7old // Compute clickflag = 1 // END // if $clickflag = 1 // mousepos $hrzButton1,$vrtButton // delay 200 // LeftClick // END // END // if $comSlider1 < 0 // Compute clickflag = 0 // if $posSlider1 < $posSlider1old // Compute clickflag = 1 // END // if $posSlider7 < $posSlider7old // Compute clickflag = 1 // END // if $clickflag = 1 // mousepos $hrzButton1,$vrtButton // delay 200 // LeftClick // END // END if $posSlider1 > $posSlider1old if $posSlider1 > $posSlider7 mousepos $hrzButton1,$vrtButton delay 200 LeftClick END END if $posSlider1 < $posSlider1old if $posSlider1 < $posSlider7 mousepos $hrzButton1,$vrtButton delay 200 LeftClick END END if $posSlider1 > 0 Compute aboveCount = 1 END if $posSlider1 < 0 Compute belowCount = 1 END if $posSlider7 > 0 Compute aboveCount = $aboveCount + 1 END if $posSlider7 < 0 Compute belowCount = $belowCount + 1 END //2nd two slider/one button combo: Compute comSlider2 = ($posSlider4 + $posSlider6)/2 if $comSlider2 > 0 Compute clickflag = 0 if $posSlider4 > $posSlider4old Compute clickflag = 1 END if $posSlider6 > $posSlider6old Compute clickflag = 1 END if $clickflag = 1 mousepos $hrzButton4,$vrtButton delay 200 LeftClick END END if $comSlider2 < 0 Compute clickflag = 0 if $posSlider4 < $posSlider4old Compute clickflag = 1 END if $posSlider6 < $posSlider6old Compute clickflag = 1 END if $clickflag = 1 mousepos $hrzButton4,$vrtButton delay 200 LeftClick END END if $posSlider4 > 0 Compute aboveCount = $aboveCount + 1 END if $posSlider4 < 0 Compute belowCount = $belowCount + 1 END if $posSlider6 > 0 Compute aboveCount = $aboveCount + 1 END if $posSlider6 < 0 Compute belowCount = $belowCount + 1 END //1st single slider/button combo: if $posSlider2 > 0 if $posSlider2 > $posSlider2old mousepos $hrzButton3,$vrtButton delay 200 LeftClick END END if $posSlider2 < 0 if $posSlider2 < $posSlider2old mousepos $hrzButton3,$vrtButton delay 200 LeftClick END END if $posSlider2 > 0 Compute aboveCount = $aboveCount + 1 END if $posSlider2 < 0 Compute belowCount = $belowCount + 1 END //2nd single slider/button combo: if $aboveCount < 1 Compute offset = 3 END if $belowCount < 1 Compute offset = -3 END if $posSlider3 > 0 if $posSlider3 > $posSlider3old mousepos $hrzButton5,$vrtButton delay 200 LeftClick END END if $posSlider3 < 0 if $posSlider3 < $posSlider3old mousepos $hrzButton5,$vrtButton delay 200 LeftClick END END if $posSlider3 > 0 Compute aboveCount = $aboveCount + 1 END if $posSlider3 < 0 Compute belowCount = $belowCount + 1 END if $aboveCount < 2 Compute offset = 3 END if $belowCount < 2 Compute offset = -3 END //3rd single slider/button combo: if $posSlider5 > $offset if $posSlider5 > $posSlider5old mousepos $hrzButton2,$vrtButton delay 200 LeftClick END END if $posSlider5 < $offset if $posSlider5 < $posSlider5old mousepos $hrzButton2,$vrtButton delay 200 LeftClick END END Compute posSlider1old = $posSlider1 Compute posSlider2old = $posSlider2 Compute posSlider3old = $posSlider3 Compute posSlider4old = $posSlider4 Compute posSlider5old = $posSlider5 Compute posSlider6old = $posSlider6 Compute posSlider7old = $posSlider7 END // Procedure to find slider positions Procedure GETSLIDERPOS Compute counthi = $midSlider Compute countlo = $midSlider Compute flag = 1 IsBlack $hrzSlider1, $midSlider Compute posSlider1 = 0 Compute flag = 0 END while $flag > 0 Compute counthi = $counthi + 6 IsBlack $hrzSlider1, $counthi Compute posSlider1 = $midSlider - $counthi Compute flag = 0 END Compute countlo = $countlo - 6 IsBlack $hrzSlider1, $countlo Compute posSlider1 = $midSlider - $countlo Compute flag = 0 END END Compute counthi = $midSlider Compute countlo = $midSlider Compute flag = 1 IsBlack $hrzSlider2, $midSlider Compute posSlider2 = 0 Compute flag = 0 END while $flag > 0 Compute counthi = $counthi + 6 IsBlack $hrzSlider2, $counthi Compute posSlider2 = $midSlider - $counthi Compute flag = 0 END Compute countlo = $countlo - 6 IsBlack $hrzSlider2, $countlo Compute posSlider2 = $midSlider - $countlo Compute flag = 0 END END Compute counthi = $midSlider Compute countlo = $midSlider Compute flag = 1 IsBlack $hrzSlider3, $midSlider Compute posSlider3 = 0 Compute flag = 0 END while $flag > 0 Compute counthi = $counthi + 6 IsBlack $hrzSlider3, $counthi Compute posSlider3 = $midSlider - $counthi Compute flag = 0 END Compute countlo = $countlo - 6 IsBlack $hrzSlider3, $countlo Compute posSlider3 = $midSlider - $countlo Compute flag = 0 END END Compute counthi = $midSlider Compute countlo = $midSlider Compute flag = 1 IsBlack $hrzSlider4, $midSlider Compute posSlider4 = 0 Compute flag = 0 END while $flag > 0 Compute counthi = $counthi + 6 IsBlack $hrzSlider4, $counthi Compute posSlider4 = $midSlider - $counthi Compute flag = 0 END Compute countlo = $countlo - 6 IsBlack $hrzSlider4, $countlo Compute posSlider4 = $midSlider - $countlo Compute flag = 0 END END Compute counthi = $midSlider Compute countlo = $midSlider Compute flag = 1 IsBlack $hrzSlider5, $midSlider Compute posSlider5 = 0 Compute flag = 0 END while $flag > 0 Compute counthi = $counthi + 6 IsBlack $hrzSlider5, $counthi Compute posSlider5 = $midSlider - $counthi Compute flag = 0 END Compute countlo = $countlo - 6 IsBlack $hrzSlider5, $countlo Compute posSlider5 = $midSlider - $countlo Compute flag = 0 END END Compute counthi = $midSlider Compute countlo = $midSlider Compute flag = 1 IsBlack $hrzSlider6, $midSlider Compute posSlider6 = 0 Compute flag = 0 END while $flag > 0 Compute counthi = $counthi + 6 IsBlack $hrzSlider6, $counthi Compute posSlider6 = $midSlider - $counthi Compute flag = 0 END Compute countlo = $countlo - 6 IsBlack $hrzSlider6, $countlo Compute posSlider6 = $midSlider - $countlo Compute flag = 0 END END Compute counthi = $midSlider Compute countlo = $midSlider Compute flag = 1 IsBlack $hrzSlider7, $midSlider Compute posSlider7 = 0 Compute flag = 0 END while $flag > 0 Compute counthi = $counthi + 6 IsBlack $hrzSlider7, $counthi Compute posSlider7 = $midSlider - $counthi Compute flag = 0 END Compute countlo = $countlo - 6 IsBlack $hrzSlider7, $countlo Compute posSlider7 = $midSlider - $countlo Compute flag = 0 END END LoadRGB $hrzRed,$verRed delay 100 END