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
 
(5 intermediate revisions by the same user not shown)
Line 34: Line 34:
 
end
 
end
 
</pre>
 
</pre>
 
=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.
 
 
<pre>
 
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
 
</pre>
 
  
  
Line 81: Line 54:
 
   for i = 1,5 do
 
   for i = 1,5 do
 
   checkBreak();
 
   checkBreak();
   sleepWithStatus(750,"[" .. i .. "/5] Clicking Learn buttons, closing popups ...", nil, 0.7, 0.7);
+
   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);
  
  --clickAllImages(image_name, offsetX, offsetY, rightClick, tol)
 
  clickAllImages("learn.png", nil, nil, true, nil)
 
  
    while 1 do
+
      for j=1,#learnButton do
    checkBreak();
+
        checkBreak();
    srReadScreen();
+
        srClickMouseNoMove(learnButton[j][0], learnButton[j][1], 1);
    OK = srFindImage("OK.png");
+
        lsSleep(100);
      if OK then
+
        srReadScreen();
        srClickMouseNoMove(OK[0],OK[1],1);
+
        OK = srFindImage("OK.png");
      else
+
        -- Basic Shipbuilding might produce Cancel / Pay Tuition popup.
        break;
+
        -- 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
    lsSleep(10);
 
 
     end
 
     end
 
  lsSleep(10);
 
 
   end
 
   end
  
 
lsPlaySound("Complete.wav");
 
lsPlaySound("Complete.wav");
 +
end
 +
</pre>
 +
 +
=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.
 +
 +
<pre>
 +
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
 
end
 
</pre>
 
</pre>

Latest revision as of 09:55, 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


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");
        -- 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");
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