The Wiki for Tale 8 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:Cegaiel/Macros"

From A Wiki in the Desert
Jump to navigation Jump to search
(Undo revision 83175 by Cegaiel (talk))
Tag: Undo
Line 6: Line 6:
 
<pre>
 
<pre>
 
dofile("common.inc");
 
dofile("common.inc");
 
 
askText = "Quickly Learn all skills offered by a University\n\nClick on a University, Choose Learn to open the Technologies window.\n\nMake sure this window is not near the center, where popup boxes will occur!\n\nThe macro will do 5 passes of clicking all the Learn buttons and closing all the popups. The reason for multiple passes is to be sure there aren't multiple new levels for any existing skill you might have already";
 
 
  
  
 
function doit()
 
function doit()
  askForWindow(askText);
+
local done = false
 
+
 
+
askForWindow("This will always click OK or Yes whenever found. Typical when someone is teaching you lessons.") ;
  for i = 1,5 do
 
  checkBreak();
 
  srReadScreen();
 
  learnButton = findAllImages("learn.png");
 
 
 
  
    if #learnButton == 0 then
+
while not done do
      sleepWithStatus(750,"[" .. i .. "/5] No buttons found ...", nil, 0.7, 0.7);
+
                -- checkBreak(); is already included in function sleepWithStatus
    else
+
sleepWithStatus(100, "Looking for Yes/OK");
      sleepWithStatus(750,"[" .. i .. "/5] Clicking Learn buttons, closing popups ...", nil, 0.7, 0.7);
+
srReadScreen();
  
 +
local pos = srFindImage("yes3.png");
 +
if (pos) then
 +
safeClick(pos[0] + 1, pos[1] + 1);
 +
                        sleepWithStatus(1000,"Found and clicked Yes!");
 +
end
  
      for j=1,#learnButton do
+
local pos2 = srFindImage("OK.png");
        checkBreak();
+
if (pos2) then
        srClickMouseNoMove(learnButton[j][0], learnButton[j][1], 1);
+
safeClick(pos2[0] + 1, pos2[1] + 1);
        lsSleep(100);
+
                        sleepWithStatus(1000,"Found and clicked OK!");
        srReadScreen();
+
end
        OK = srFindImage("OK.png");
 
        -- Basic Shipbuilding might produce Cancel / Pay Tuition popup.
 
        -- You'll need to manually Pay tuition on this one (assuming you have tuition in inventory)
 
        Cancel = srFindImage("cancelThin.png");
 
          if OK then
 
            srClickMouseNoMove(OK[0],OK[1],1);
 
          end
 
          if Cancel then
 
            srClickMouseNoMove(Cancel[0],Cancel[1],1);
 
          end
 
      end
 
    end
 
  end
 
  
lsPlaySound("Complete.wav");
+
        lsSleep(200);
 +
end
 
end
 
end
 
</pre>
 
</pre>

Revision as of 09:53, 28 February 2019

Go Back

LearnLessons.lua

Useful if someone is teaching you lessons and you're slow to pay attention. Will click the Yes and OK popups as they appear so lesson can continue in a timely manner.

dofile("common.inc");


function doit()
	local done = false
	
	askForWindow("This will always click OK or Yes whenever found. Typical when someone is teaching you lessons.") ;

	while not done do
                -- checkBreak(); is already included in function sleepWithStatus
		sleepWithStatus(100, "Looking for Yes/OK");
		srReadScreen();

		local pos = srFindImage("yes3.png");
		if (pos) then
			safeClick(pos[0] + 1, pos[1] + 1);
                        sleepWithStatus(1000,"Found and clicked Yes!");
		end

		local pos2 = srFindImage("OK.png");
		if (pos2) then
			safeClick(pos2[0] + 1, pos2[1] + 1);
                        sleepWithStatus(1000,"Found and clicked OK!");
		end

         lsSleep(200);
	end
end

Screenshot.lua

Sends Alt+C to the game at intervals to take a screenshot. The frame000,001,002,etc.png file will appear in your ATITD GAME folder.

dofile("common.inc");
dofile("constants.inc");


askText = "Presses Alt+C to create .png in ATITD folder";

timer = 900000; --  15 mins - time is in ms. 60000 = 1 minute

function doit()
	askForWindow(askText);


	while 1 do
          -- checkBreak(); is already included in function sleepWithStatus
	  sleepWithStatus(timer,"Waiting to take screenshot...");
	  srKeyDown2(VK_MENU);
	  lsSleep(100);
	  srKeyEvent('c');
	  lsSleep(100);
	  srKeyUp2(VK_MENU);
	end
end


learnUniversity.lua

Quickly click all the Learn buttons at a University. Download learnUniversity.zip which includes learn.png and learnUniversity.lua . You will need learn.png for this script to work!

dofile("common.inc");


askText = "Quickly Learn all skills offered by a University\n\nClick on a University, Choose Learn to open the Technologies window.\n\nMake sure this window is not near the center, where popup boxes will occur!\n\nThe macro will do 5 passes of clicking all the Learn buttons and closing all the popups. The reason for multiple passes is to be sure there aren't multiple new levels for any existing skill you might have already";



function doit()
  askForWindow(askText);


  for i = 1,5 do
  checkBreak();
  srReadScreen();
  learnButton = findAllImages("learn.png");


    if #learnButton == 0 then
      sleepWithStatus(750,"[" .. i .. "/5] No buttons found ...", nil, 0.7, 0.7);
    else
      sleepWithStatus(750,"[" .. i .. "/5] Clicking Learn buttons, closing popups ...", nil, 0.7, 0.7);


      for j=1,#learnButton do
        checkBreak();
        srClickMouseNoMove(learnButton[j][0], learnButton[j][1], 1);
        lsSleep(100);
        srReadScreen();
        OK = srFindImage("OK.png");
          if OK then
            srClickMouseNoMove(OK[0],OK[1],1);
          end
      end
    end
  end

lsPlaySound("Complete.wav");
end