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:Obol/cut stone mac
From ATITD7
Jump to navigationJump to search-- Open windows with window_opener.lua -- Arrange them with winder_arranger.lua in rock saw mode -- Run this -- Profit! dofile("screen_reader_common.inc"); dofile("ui_utils.inc"); --local expected_windows = 40; -- Just to double check you don't have any extra windows open that it'll try to click on expected_windows = promptNumber("How many Rock Saws?", 1); take_locs = 0; local per_click_delay = 0; function setWaitSpot(x0, y0) setWaitSpot_x = x0; setWaitSpot_y = y0; setWaitSpot_px = srReadPixel(x0, y0); srSetMousePos(setWaitSpot_x, setWaitSpot_y); end function waitForChange() local c=0; while srReadPixel(setWaitSpot_x, setWaitSpot_y) == setWaitSpot_px do lsSleep(1); c = c+1; if (lsShiftHeld() and lsControlHeld()) then error 'broke out of loop from Shift+Ctrl'; end end -- lsPrintln('Waited ' .. c .. 'ms for pixel to change.'); end function clickAll(image_name, up) -- Find buttons and click them! srReadScreen(); xyWindowSize = srGetWindowSize(); local buttons = findAllImages(image_name); if #buttons == 0 then error 'Could not find any \'Rock Saw\' windows.' --statusScreen("Could not find specified buttons..."); --lsSleep(1500); else statusScreen("Clicking " .. #buttons .. "button(s)..."); if up then for i=#buttons, 1, -1 do srClickMouseNoMove(buttons[i][0]+5, buttons[i][1]+3); lsSleep(per_click_delay); end else for i=1, #buttons do srClickMouseNoMove(buttons[i][0]+5, buttons[i][1]+3); lsSleep(per_click_delay); end end statusScreen("Done clicking (" .. #buttons .. " clicks)."); lsSleep(100); end end function refocus() statusScreen("Refocusing..."); for i=2, #window_locs do setWaitSpot(window_locs[i][0], window_locs[i][1]); srClickMouseNoMove(window_locs[i][0] + 321, window_locs[i][1] + 74); waitForChange(); end end function doit() askForWindow("Open, pin, and arrange rock saws with window_opener/window_arranger first."); srReadScreen(); while true do window_locs = findAllImages("This.png"); if not (#window_locs == expected_windows) then error ("Did not find expected number of windows (found " .. #window_locs .. " expected " .. expected_windows .. ")"); end -- refresh windows --lsPrintln('Found ' .. #window_locs .. ' saws.'); clickAll("This.png", 1); lsSleep(200); -- take everything window_locs = findAllImages("Take.png"); --lsPrintln('Found ' .. #window_locs .. ' Takes.'); if not (#window_locs == 0) then clickAll("Take.png", 1); lsSleep(200); clickAll("Everything.png", 1); lsSleep(200); end --refocus(); clickAll("MakeACutStone.png", 1); lsSleep(200); --refocus(); sleepWithStatus(245*1000, "Waiting for stones to finish"); end end