The Wiki for Tale 7 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:Peter/Scripts
From ATITD7
Jump to navigationJump to searchWood gather script
Notes - Piles 4 saltpeter into the tree after you gather
-- -- -- dofile("screen_reader_common.inc"); dofile("ui_utils.inc"); per_tree_delay_time = 5000; total_delay_time = 80000; carrot_delay_time = 10*60*1000; function doit() carrot_timer = lsGetTimer(); askForWindow("Pin 5-10 tree windows, will click them VERTICALLY (left to right if there is a tie - multiple columns are fine). Additionally, optionally, pin a Bonfire and Consume window for stashing wood and eating grilled carrots (first carrot will be consumed after 10 minutes)."); -- Find windows srReadScreen(); xyWindowSize = srGetWindowSize(); local buttons = findAllImages("GatherWood.png"); if #buttons == 0 then error 'Could not find any Gather Wood buttons'; end while 1 do for i=1, #buttons do -- srReadScreen(); statusScreen("Grabbing Wood " .. i .. "/" .. #buttons); srClickMouseNoMove(buttons[i][0]+5, buttons[i][1]); lsSleep(1000); srClickMouseNoMove(buttons[i][0]+5, buttons[i][1]); lsSleep(1000); srClickMouseNoMove(buttons[i][0]+5, buttons[i][1]); lsSleep(1000); srClickMouseNoMove(buttons[i][0]+5, buttons[i][1]); lsSleep(1000); srClickMouseNoMove(buttons[i][0]+5, buttons[i][1]); lsSleep(1000); srClickMouseNoMove(buttons[i][0]+5, buttons[i][1]); lsSleep(1000); end srReadScreen(); bonfire = srFindImage("Bonfire.png"); if bonfire then statusScreen("Found bonfire..."); add_wood = srFindImage("AddSomeWood.png"); if add_wood then -- add it statusScreen("Adding wood to bonfire"); srClickMouseNoMove(add_wood[0]+5, add_wood[1]+5); lsSleep(500); -- click Max srClickMouseNoMove(xyWindowSize[0]/2, xyWindowSize[1]/2 + 55); else statusScreen("No add wood button, refreshing bonfire"); -- refresh bonfire window srClickMouseNoMove(bonfire[0]+5, bonfire[1]+5); end end carrots = srFindImage("EatSomeGrilledCarrots.png"); local time_left = 20000; local eat_carrots = nil; if (time_left > 0) then local start_time = lsGetTimer(); while time_left - (lsGetTimer() - start_time) > 0 do time_left2 = time_left - (lsGetTimer() - start_time); carrot_note = ""; if carrots then carrot_time_left = carrot_timer + carrot_delay_time - lsGetTimer(); if carrot_time_left < 0 then carrot_time_left = 0; eat_carrots = 1; end carrot_note = " " .. math.floor(carrot_time_left / 1000) .. "s until eating carrots."; else carrot_note = ""; end statusScreen("Waiting " .. time_left2 .. "ms before starting next pass..." .. carrot_note); lsSleep(100); checkBreak(); end end if eat_carrots then srReadScreen(); carrots = srFindImage("EatSomeGrilledCarrots.png"); if carrots then srClickMouseNoMove(carrots[0]+5, carrots[1]+5); carrot_timer = lsGetTimer(); end end end end
Almbec Fruity Spirits setting
Notes: Set temp to fruity and great Q
- add high tannin wine and let veggie spirits Ra, Life or Air distil out a bit
- Add bit of sugar wine let more distil out a little
- then add DRY beer
- leave to see if any will distil out, if nothing happens after 5 mins or so, drop the temp to grain, but keep a close eye on it and be ready to switch back to fruity imediately as soon as fruit appears
- Fruit setting will hold the fruit spirit at the same Q and no gain in the sink so harvest. I tried to get more or improve the Q but messed up and it quickly changes to grey or veggie spirits.
-- alembic.lua v1.0 -- by Tallow -- -- Automatically maintain the temperature on an alembic at a given point. -- dofile("common.inc"); --pot = makePoint(255, 239); flow = makePoint(21, 326+9); flowSmall = makePoint(31 - flow[0], 233 - flow[1]); flowLarge = makePoint(31 - flow[0], 317 - flow[1]); tempMinus = makePoint(86 - flow[0], 308 - flow[1]); tempPlus = makePoint(86 - flow[0], 260 - flow[1]); tempBar = 63 - flow[0]; tempBackgroundColor = 0xece0c1 heatSpots = { makePoint(tempBar, 230 - flow[1]), -- Fish makePoint(tempBar, 242 - flow[1]), -- Mineral makePoint(tempBar, 254 - flow[1]), -- Vegetable makePoint(tempBar, 263 - flow[1]), -- Fruity makePoint(tempBar, 292 - flow[1]), -- Grain makePoint(tempBar, 304 - flow[1]), -- Worm makePoint(tempBar, 318 - flow[1]), -- Wood makePoint(tempBar, 329 - flow[1]), -- Rock makePoint(0, 0) -- Off }; heatNames = { "Fish", "Mineral", "Vegetable", "Fruity", "Grain", "Worm", "Wood", "Rock", "Off" }; qualityNames = { "Great", "Good", "Moderate", "Low", }; NO_HEAT = 9; -- notes -- flow = 21 - 255 + 255, 326 - 230 + 239 -- flow == 21, 326 -- pot == 255, 230 -- fish: 230 -- mineral: 242 -- vegetable: 254 -- fruit: 263 -- grain: 292 -- worm: 304 -- wood: 318 -- rock: 329 -- flow-small: 31, 233 -- flow-large: 31, 317 -- temp-minus: 86, 308 -- temp-plus: 86, 260 -- temp-bar: 63 -- temp-color: 0xf57364 heat_delay = 1000; isRising = {}; isSmall = {}; function doit() askForWindow("Alembic Control v1.0 by Tallow\n \nAutomatically maintain the temperature on an alembic at a given point.\n \nPress shift over ATITD window to continue."); alembicControl(); end function alembicControl() local done = false; local heat = NO_HEAT; local quality = 2; local deadline = lsGetTimer(); while not done do lsPrint(5, 110, 0, 1.0, 1.0, 0xd0d0d0ff, "Heat:"); heat = lsDropdown("AlembicHeat", 90, 110, 0, 180, heat, heatNames); lsPrint(5, 140, 0, 1.0, 1.0, 0xd0d0d0ff, "Quality:"); quality = lsDropdown("AlembicQuality", 90, 140, 0, 180, quality, qualityNames); statusScreen("Alembic Control Center"); if lsGetTimer() > deadline then srReadScreen(); local anchors = findAllImages("alembic-flow.png"); for i=1,#anchors do isRising[i] = maintainHeat(anchors[i], heat, isRising[i]); isSmall[i] = maintainQuality(anchors[i], quality, heat, isSmall[i]); end deadline = lsGetTimer() + heat_delay; end end end function maintainHeat(anchor, index, lastRise) local rise = heatShouldRise(anchor, index); if rise and lastRise then safeClick(anchor[0] + tempPlus[0], anchor[1] + tempPlus[1]); elseif not rise and lastRise then safeClick(anchor[0] + tempMinus[0], anchor[1] + tempMinus[1]); end return rise; end function heatShouldRise(anchor, index) local result = false; if index ~= NO_HEAT then result = pixelMatch(anchor, heatSpots[index], tempBackgroundColor, 20); end return result; end function maintainQuality(anchor, quality, heat, lastSmall) local top = makePoint(heatSpots[heat][0], heatSpots[heat][1] - quality - 2); local bottom = makePoint(heatSpots[heat][0], heatSpots[heat][1] + quality + 1); local small = (heat == NO_HEAT or not pixelMatch(anchor, top, tempBackgroundColor, 20) or pixelMatch(anchor, bottom, tempBackgroundColor, 20)); if small and not lastSmall then safeClick(anchor[0] + flowSmall[0], anchor[1] + flowSmall[1]); elseif not small and lastSmall then safeClick(anchor[0] + flowLarge[0], anchor[1] + flowLarge[1]); end return small; end