Hi all, here is a script that's been used to aid ~20000 players so far by myself. It takes around 10 minutes to do 300 aids, across 3 worlds that's 30 minutes I've saved per day :)
Any feedback on the way its programmed/things are done/improvements would be much appreciated. This is my first time using arrays.
Setup:
- Load your world in an internet browser (I use chrome)
- Ensure the height of the window is big enough such that when a window pops up (blueprint window, tavern window) it does not cover the aid button
- If your computer is very laggy (I have to do this when using virtual PC) within click arrays procedure increase the wait to 600 and waitcountrange to 2400
Program:
Simba Code:program aidshelper;
{$i SRL-6/SRL.simba} // I changed isclientready() result to true so it works without RS
{$i loadthingsinclude.simba}
var
aidarray,tavernarray : TPointArray; //array of all the locations
x,y : Integer = 0; //coords from array
i : Integer; //for loop
rndmenucount,aidcnt,tavcnt,bpcnt : integer = 0;
stuckcheck : integer = 0;
person,pagecount,tavcl : integer = 0;
procedure menuchecker;
begin
if not (findcolortolerance(x,y,13286324,popup,5)) then //background greyed when menu open this colour shows that
repeat
if(findbitmapspiraltolerance(bpclose,x,y,0,0,w-1,h-1,5)) then //it can see the close button for blueprint prize
begin
mouseoval(x+15,y+8,20,5,mouse_left);
bpcnt := bpcnt + 1;
wait(randomrange(1000,1900));
break; //goes back to beginning of procedure to check if menu is open
end;
mouseoval(500,h-10,100,9,mouse_left);
wait(randomrange(1300,1900));
if (tavcl = 0) then rndmenucount := rndmenucount + 1;
if (stuckcheck > 0) then wait(randomrange(2000,2500)); //the window could just be taking a while to load try again in a bit
stuckcheck := stuckcheck + 1;
if (stuckcheck = 5) then terminatescript; //in case there is a problem its not looping forever
until (findcolortolerance(x,y,13286324,popup,5)); //background not greyed so no menu/window open
stuckcheck := 0;
tavcl := 0;
end;
procedure checkifthere;
begin
menuchecker; //checks it when there is no menu open
findbitmapsspiraltolerance(aid,bottommenu.X2-1,bottommenu.Y2-1,aidarray,bottommenu.x1,bottommenu.y1,bottommenu.x2,bottommenu.y2,5);
findbitmapsspiraltolerance(tavern,bottommenu.X2-1,bottommenu.Y2-1,tavernarray,bottommenu.x1,bottommenu.y1,bottommenu.x2,bottommenu.y2,10);
end;
procedure clickarrays;
begin
if (length(aidarray) > 0) then
for i := 0 To High(aidarray) Do
begin
menuchecker;
mouseoval(aidarray[i].x+10,aidarray[i].y+5,40,3,mouse_left);
aidcnt := aidcnt+1;
wait(200);
waitColorcountRange(13286324, 5, popup, 1400, 1); //this great line lets it continue immediately after loading (greyed out screen) goes away
wait(randomrange(3,90));
end;
if (length(tavernarray) > 0) then
for i := 0 To High(tavernarray) Do
begin
menuchecker;
mouseoval(tavernarray[i].x,tavernarray[i].y+5,3,4,mouse_left);
tavcl := 1; //window is always opened for tavern this lets menuchecker know
tavcnt := tavcnt+1;
wait(randomrange(1000,1600));
end;
end;
procedure Progress; //from NKNs progress report tutorial :)
var
tavPH,aidPH,bpPH:Integer;
begin
tavPH := Round((tavcnt * 3600) / (GetTimeRunning / 1000));
aidPH := Round((aidcnt * 3600) / (GetTimeRunning / 1000));
bpPH := Round((bpcnt * 3600) / (GetTimeRunning / 1000));
Writeln('***********Aidser****************');
Writeln('* ~By SL~ ');
Writeln('*Aids given: ' + IntToStr(aidcnt) + ' (' + IntToStr(aidPH) + ' P/H)');
Writeln('*Tav sat: ' + IntToStr(tavcnt)+ ' (' + IntToStr(tavPH) + ' P/H)');
Writeln('*Blueprints: ' + IntToStr(bpcnt)+ ' (' + IntToStr(bpPH) + ' P/H)');
Writeln('*Total Time: ' + TimeRunning);
Writeln('*Random menus: ' + inttostr(rndmenucount));
Writeln('********************************');
end;
procedure nextpage;
begin
menuchecker;
mousecircle(leftarrow,5,mouse_left);
wait(randomrange(1000,1500));
end;
procedure farrightbanner;
begin
menuchecker;
mousecircle(farrightarrow,5,mouse_left);
wait(randomrange(1000,1500));
end;
procedure nexttab;
begin
menuchecker;
mousecircle(tabarray[person],5,mouse_left);
wait(randomrange(3000,4500));
end;
begin
ClearDebug;
setupsrl();
loadthings;
nexttab; //goes to first tab at start (friends list)
farrightbanner; //goes to the end (highest player number) and works it way across
repeat
checkifthere;
clickarrays;
nextpage;
progress;
pagecount:=pagecount + 1;
if(findbitmapspiraltolerance(onebmp,x,y,bottommenu.x1,bottommenu.y1,bottommenu.x2,bottommenu.y2,5)) then begin person :=person + 1; break; end;
if(pagecount > 29) then begin person := person +1; break; end; //5 players per page should never be more than 28 pages (140 friends)
until(person=1);
checkifthere;
clickarrays;
pagecount:=0;
nexttab;
farrightbanner;
repeat
checkifthere;
clickarrays;
nextpage;
progress;
pagecount:=pagecount + 1;
if(findbitmapspiraltolerance(onebmp,x,y,bottommenu.x1,bottommenu.y1,bottommenu.x2,bottommenu.y2,5)) then begin person :=person + 1; break; end;
if(pagecount > 20) then begin person := person +1; break; end;
until(person=2);
checkifthere;
clickarrays;
pagecount:=0;
nexttab;
farrightbanner;
repeat
checkifthere;
clickarrays;
nextpage;
progress;
pagecount:=pagecount + 1;
if(findbitmapspiraltolerance(onebmp,x,y,bottommenu.x1,bottommenu.y1,bottommenu.x2,bottommenu.y2,5)) then begin person :=person + 1; break; end;
if(pagecount > 20) then begin person := person +1; break; end;
until(person=3);
checkifthere;
clickarrays;
pagecount :=0;
progress;
end.
Include:
Simba Code:var
tabarray : TPointArray; //array of all the tab locations
w,h : Integer = 0; //client size
collect,abort,aborthighlighted,pay,payhighlighted : integer ; //quest images
bpicon,coinicon,fpicon,medalicon,suppliesicon : integer ; //questrewards
tavern,aid,onebmp : integer ; //bottom menu images
closebtn,bpclose : integer ; //popup images
popup : tbox;
bottommenu : tbox;
leftarrow, farrightarrow :tpoint; //bottom menu buttons
procedure loadthings;
begin
pay := BitmapFromString(7, 7, 'meJxT7I+dcPjcoZv/IWjCoXPWsysq' +
'tm0Fssu3bFbsj1t06sHe679SVy+UawtX6Irq33caonLP9V9paxaVb' +
'9oEZG+//NVrZvOiE/eAgslL5iw8dnfPtV8py+bJVAcsPA5lAwWBKs' +
'vWrk9ePAcoAlSZsnSex+T67Ze/QAyEKChdvRYAsEtlXg==');
payhighlighted := BitmapFromString(7, 8, 'meJxTW18+6cy1Qzf/QxCQ7bCtt/ro' +
'QSC76vB+tfUViy8+3Xvjd8a+DSorClVXl0w8cQmiEiy4sergfiB7x' +
'7VvfpumLj7/BCiYvmP1orOP9l7/nb5zjdK8LBAbKLhrLZABVFm5d1' +
'f69lVAWZDgzjU+aybuuPoNYiBEQcWuHYozUxSmJSnOzlCYlqAwNQH' +
'Enp4EAPKxcSw=');
suppliesicon := BitmapFromString(12, 13, 'meJwdzsFP2mAABfC2AgriTAxE4w' +
'4jOy3juMMSr87EAyZet0t1RpN505iQxR11XjYSjcBSiGgVkSKFFmk' +
'V2g5qlUG79nNKIBDdhQuwP2IfvPMv772XM+8H3fOW6U3TpBsdMH3b' +
'J7rdTvXhodbP36endrttGXtumouZZ4OY3bmz+6Pb6UiiWCqVNE0zD' +
'KNarTYbDcw2iYxOIdjIl53v3c4/nssKgnCtKJDpug4ZMAzU6kSs45' +
'82vzaaj1mWyV5ciKIoyzI0aqWiqWqlXMasdvzztqqDdDKRSqUueV4' +
'UhGKxeNOLUrq9rddqH1Y3hJ/F+GmUoiiWYXiOg6ZQKCiKci3L9Xq9' +
'1WrxHH9CHpHHxzRNsywLjdDvgcwwdPjZ6/WekGQkEonFYimaZhiG4' +
'7h8Pi9JUrn8CwCwtrbucrkIgiBJEg7RyWQ6nc5kMlDeKAq4A0sflx' +
'wOB4Ig4XD46PAwfnZ2DpNIUHEqd3X5W1MX8AWbzQYBahoKEUTk4OA' +
'0GoVzsDCXy93/uVtZXh6x23tg8Bn64p3f7w8EAqFQKBgMwieNZhPH' +
'8eF+A4KZ0Ym36JuN3b09n8+3tbUtiRIAhsfjsVjMvYYBM+Z0I6886' +
'OvF/2BNBaQ=');
medalicon := BitmapFromString(24, 21, 'meJwVlNlPG1cUxt+bxrPcubN4AR' +
'NQQoGwGDBesMfL2J7xeDzed2wwxnjBEBsDgUAICUtSkoCapmkTlEZ' +
'tlVZqFVWVojSV+tSqb33uv9OLdB6vzv3O7/vOwRw5ylumg6ucus0o' +
'XcKsasa9UFqBvmVUhspLWunA4C1G2YKBFh3a5FKnMNDuq53efPbXt' +
'c13bOKADm/Scgd4i9BXZpUuHeywsT3KUyKdeUqoQ19TX3qqLTxiwj' +
'tsDD2+DaUOlzzuWXrNRHYJR5GN7xubbwylc33xyUD3FyivAVcGugt' +
'QWuOS95EkKK7p8k+gukWJVeAps7EH2vwZl3jAqrts/BEdOWTUPS7z' +
'kEsdMcomF9vTZk/62z/SSveqScRNLn10nZbXmVBnNFYebT4nQltXx' +
'3xsdL+n+sq48rqv9fb6/h9DDz/0N57RwR0u87R/+52x9oJL3iN5NN' +
'HSJZPZ7JUha7+YvKZWgE028MGe6Lq2eAa8FUpcZSJ3uNS+fv7c2Pp' +
'+8PDDzOt/Tafvuci2fv6ZLnMX+iq02AD2JCO3SWdBMx0hxu30tFMz' +
'ymscBSA1jK1v2dgd4KshwWz6SJs7ouVbhC1HB9sjn/85ePyRkdYY+' +
'RYTbNDyKvQukPYsyZdIR+7KqOfTCS+wJWjPPPCU9OXHPfULgi9RgT' +
'oT29VmH8LQBnIWN6u4NWNY+rq3+hXtKUJvkRaXKaGMTQVxS/TqdLh' +
'HqfaKBVpaYSKbpLBIiwtDx+/R+LRy27D4XJt9RPkbQKjCQJOwRFA3' +
'LnOiTd0Ds0ngTENfVTMlayZF1hG+Hszpwu2+lTdQXsUsKm7yDnafD' +
'x38ps2e93V+NbZ+1uUeA2EZuMskXyBscRQqNn5AuYqkJQw887gtjl' +
'kiej7M8Vlj/UKX2ELYMUsCnwrQrtTAxlv93FNt+lhXeGwof8PI64Q' +
'jTzgKpCOLXKDVO2xkh7LFSD5HzKjkbBw604a5k4HVC/QMCBXSWcSs' +
'UTjj1ecO9YVHrNSi/XU6sMKEuoAvErYk6UYMK0x4g0vsQ3+VdKTwC' +
'TduCUF/HUHgknu4PUP5a1BsEs48N+szSnNc+oQLNrlQGwo1BAcKFc' +
'pVQPApocIo69BbhmKDmBKxMR6b8ABnhondpaQ1SlgiLjduEVlDzMh' +
'DSqI3vc/E9lipySmb2tgeLbWQAOBZAL4qFKqESQR8DsHUXB/DJwUw' +
'ozChNh3ZonxV4F4g7GnKmbwyJvR5pNF0k0ucMFKDU7pcaJ32L1GuO' +
'eDIQbHF8jk4HQBWlTQJ2LAZM3nxUR43BVATCn2ElFgjpFnEhi2f3J' +
'gaDkYNoTU2tssEliCfp+wplF4K8XFkGVtY50pyMxIx6qScWSgs6jI' +
'HtFTBxwP4pIw7MqQtTk6LxIjl077PsMGbYMKFlh2NxgrzjKeCxgH2' +
'BD7i0Aw7tZ5Cf36fdOVRdKG/1lv/bvDJPzfu/8TFuoQlgZkVbMiMD' +
'ZpIk4dE6MQa7UhBcwDaIxSfI21RbNhGjLmRKkPprLf2Ul86Jd1FSm' +
'yiUBkqr0be/Dd49ve15S8NapWyy4QtihaHjd5Gh6i3+kKfP2KVDi0' +
'1CLNMWFTKV2HUTahs4GaFtEYIR5Z0FdEB1BXP+u9+7KldGBbOtdIi' +
'MxsFlhDSD7yLUO7o5s7RBUN3iQl3gatE+eooh8BfQyEBKIfTQcpfx' +
'20J1E2bOx7Y+11XOmfUHWBPkeNuclIg7SlEHqnlUoco1Yy6jRwnrH' +
'HgXiTdZRhcpZB9s3FgidChNlKIW6Oof2/rB938F6y6DV1z5FTgsmY' +
'zBCrkstzmEvfY8CblLuLTQcJVujwFvhp0l5Ae6Mz8D3Q4kH0=');
fpicon := BitmapFromString(13, 13, 'meJwB+wEE/pLi/6X2/1icxhxfoj' +
'B/vjN3sBorSAQABjBKalSm1lvA7ofe/HS/6ZPe/3jM8X7Z/FCj0EC' +
'VykGWzTyDtT97pVmky3PW+nTU+FKPvS1xtK/2/1Why1ix5Ve16kWY' +
'y0aVyk2j1lWv31eq2UyUxjJrpBM8eBQ2aKz4/3/K6EGNvzN5si1zs' +
'StppylinyJUjRpCexc9dhpBdx1FdCVUhYDR9YXa/WrM91qu20SLvT' +
'FxpylglyNUiiJQgSlbjS1mnC1vrS9ytF2s2FSm3EmWzVGk1F215Fi' +
'y4k+k10iYzjmBuytqpiBTihY5Zxo7aX3H5jmBuCJamhhHiBpGgRxG' +
'dx1FcBw/ZhMuVQcYOQQMJQYMIhtAdIve/1er2Dt/sihelxc9dwogT' +
'QMRMwAIIwMLJAkVMg8mTRo/dzBxr1Kj1FKn4U6g2kqZzzFwrCBMhh' +
'xBdRk9cBc7bxg9dRg+eRpCdy9mnWGz4ipmnSNalypnpyZbmhpCfBY' +
'4bBU2aBEvXg4mTAkXMgsZNxIsVHDB5EaV0yNPihIxZgoeRAcXNQcT' +
'LAUOJAUPJgYRLAscQRAoUggTKwwZMDdojUOJwjNrqRo7dQ8oVg4jS' +
'w0hRgseRQ0hSgwfQgIGDwMCITd4pQEIHQkQFRMoQBEmSwwdPwMOKg' +
'MOKAwcOwsaNgsYMAwZMAoVL5RDwMo=');
bpicon := BitmapFromString(11, 13, 'meJwNzNtO2mAAAOCrXRjnhlBLh9' +
'jSM1J+pdAWbIUeaPdTwBJorTh14AmPO5BNHNuMmpglM8uy3Ww3y7L' +
'Eu+0l5/cAn9ofMUtPk6JBaiuU1iBLkCw6pGLTqsOqkK/UqWKV1kPe' +
'3SW0NmOsSt1hptajyp0F/yTrDdJwC8/rHOwz7jHVGCq7N+7lnbj2h' +
'q4dpMOPc/omYe+Tmkeaz/DqHt85Vw9ujVffpe2bdHhFtt7jzTMcni' +
'I04JzeFCXhRl/eHC8Gw6S+MSMHSMGPghpVCdhlmFSamLouDb6J3bc' +
'xrhTJWPHKzmPQjC/aKAMYvRUVzMzWrXv1d4YrTExjuNnDO9dTgpss' +
'2AjBEpqHlkL5xS948Yeu+Hg5YIMPqHH8iC8TcpWz/Biw6ODCHN9lW' +
'4dYziRrR2RwHcm10WyZUhuM0Y6KXu7w5/Lp1weTkfuf90ep1U8PWT' +
'2xoCGcOCvDOXhiXf6z3v0G4WjeP5t//iVuHCHAwgQVFdQnRQ/Lw4S' +
'gcM56ytyg4D5RfzmZkhNAnc1XYzSYZpV4yWecvvb6h7z3WQjHKb0b' +
'ZSW2PhDWzmm7h4ruf5J+a4A=');
coinicon := BitmapFromString(19, 12, 'meJwBrAJT/UyevUqlyJf//2O1x3' +
'jd6oj2/4Dq93ns93Lq92jd8WHR7lC/4kq64Va71UObu1bK7UepxEa' +
'tyTFWWmvH1T6bxWrV5X/z+VSxyl7V42/u937w/G3l9mLZ9WHP8FC/' +
'4V7I5Fe1y0e22m/U6zeju2nd8S9WYYz2/l/K6Cl9qFjG22vv91fU4' +
'1C601WxzU620E+82E2y0E+311rD31jD4m3a8EawxFTG1YP0/yFPX4' +
'Ht/1/J6kSkxTePskKqx0u81l3G3l3B1lLA2FXK313O4la51kuv0E6' +
'/4US/00/A0mbJ6GLQ8Rs4P1i11C+HsziUx0GXvz2Rti2CqziVt0Cm' +
'wT6jwTqfvkGqxT+kwDqjwTilvz6RqT6NvSqV0zqOqggLD3ru+BZah' +
'RhRgR5dmxZQkhphliBrmSJtmSJvmx1pmhpgiiJmiiFYeRckOiJIbS' +
'GEvEypx2LE2hhCT4z//06x0hFEcAgwXw41aAcsZQcsagcpZgopWAw' +
'mTwgaQQcUOAYMLQYRLBVZekGivH3h73Hj/jd8jFi63k695kKcwB1e' +
'ihJEcRI8ZhRCaxU/ZhY7WhQ2URU4VxE2VxVSehpumSBvmD2Pu1XG8' +
'E+qwSlHSDF7mi+BrCx6silxpxtdkB9pliJtlSBrkx1lkxZbixlgkB' +
'tllB1qlSRbfC9tmyiFxSGIsyRQVWCIhYv1+T6FpQ1CdBVGgAEeXQQ' +
'pYRFHfhZShhdVhxNJehE6ZBIzWgoVMxAXLiV3oTm83ziGkURraEGO' +
'sJT//0uixQ5MhhxSexxLcBA1XwklWAYdSwUYPAUTNQcYNwkfPwomR' +
'RdVdy+YtketxDNWXkJ/kC+HsVG1z1a2xgczbRJEgCBdkh9gjRtdgx' +
'xZextVeBhUexZUfxhYghphix9iiC5kgw0rSk9+fWK+2T2VuvykPko=');
tavern := BitmapFromString(13, 14, 'meJxtkFtPwkAQhf8CDZ1tC8Yol1' +
'7obrVUQUSEFrloWzSCxEskKCrGW8KDigb1xRcffPMHOw1q0JicbHa' +
'y3545Mzxr8KwBRiPMfJ75YeoFUhwxzqTkXFgucFqNU6ui1RYXdqSF' +
'dsRqC+mWYLYIrSFTP7vduBgiCarNqRWY0UHJS9aOMOcSs0n0L+bw9' +
'QM1JjnZLvZHYnIeHeSsQ2b1SWas5WY3HM8Uz58k2STJTKU3cDpX9f' +
'4vBkv8yMkldJMUE2LpzcHLJPDD8JrDKU7h9CGiWjBL957f/2PKwDz' +
'EVnr3UdWKqulJpv34JiYMSJUJ8wnzQoq90htGlHRisfSnI+YUYpSn' +
'HjCXU+xcZ4BNU4V1/3pU7t7gXPPVbSW3Nq1ncHCeucRwQ7KTPbhJ5' +
'KokRjEexC2Qc6AW+VSZpzX0wWBAEbNxIYH6I6t5Gl+qRLVF0EpgeM' +
'TwAwZJuoELWT0Z5nv3+aO7/PEdnuZWV4gxfEITwgLhPSSXmNsZi64' +
'f0Pp+ZvdySs+CVoUglUe+3T4BsQ2PHQ==');
closebtn := BitmapFromString(38, 12, 'meJxNU2lvE1cU/RmxZ+bN2PE23p' +
'2Q2E4CEoimH5rAl5TlH6DkAxKEBELiJV6ahThpY5oxtuOULUTEwY6' +
'IWMzWElypRBCgFUhAVYnSL20FiF/Q896zrUpXT+eee969576xTbs2' +
'TLs2mruuN++8bgiWaXSsI8wgO9cNwZKxY93YUQZGACAYSRljsKT4i' +
'0pgjfElg3/NGLxmCKzR8BeNDEDTSBX/qtK+avCvGNqvKG2XDe0rAy' +
'd/frz1afvZZx7R6edK2zKqmaXXNJ3aNravyDsucT2AsuMSab1oaFs' +
'mLedByhSDvCi3nucnZRggLUtK6wXJVyC+JbklT7zniEeLTm6hrVZ4' +
'RbwZMFrhJUtfosRxZGILJRlir0Z8WcWXQ4l4FmQvj4ziyyKV3GniO' +
'St7NcZkiDvNMJRniSdN3POyJy255noPX92s/lss/4FUdtMASVxzMg' +
'Tu+czib5gYTlZlz7zkTBH3dxS4ZmXXnOScIQDubwnFZ4gzJVOeBqm' +
'dKWhQYmRKxnUXYjaSrNKNFn9FKrtZH+dM/e4cnxhJPkJ136Hlzeo/' +
'/Nlv3fmr68s8+hDnGS3/ovE5tMUXkmOSOKe6urPQcLJY/p04piR7U' +
'rRPoMr14cRPon0SDKGWUgzMiI4JdGATN/cfuoJxaNLZne3o1gCQ7j' +
't4uf/4xi9bH7X8M9k5jc7AA4M32Lj3EPQevDBQFxAH+idENaHln7O' +
'JPwJL9m8ENSFSM0m4wsmrofgDBJcRx4SoxuCBOXnIG9KtK+87uzXB' +
'FhXVOLdRLL+V1HhwbxrTafWL7yV7HIJwgraCB1EdR0qojXF+IsDzQ' +
'XVjDyQ1Jtgiofh9dmtbbw0VS28ar7pZ/bv3QKH/2Dq38X++5+uC3j' +
'qG6D3wA9bHLYlOjAjWiAiftoioRvWWUS33lA/ixkKxu4J1TLSFQ/F' +
'7bPd7ki0qWEYF62hPX55/5WLpbf+xMt2x9EZvOQ29pEbZrQgFllGQ' +
'4bphwRYWrGGAmn/LaY5DsTs9fTn4vFX5s3NvOrAnBcDWWaotm3uK0' +
'WzQh4Xck8CeWS6ADU7WpltGmppP6MzDiCNHr4JvPMJYrNJkOgHBQp' +
'b+VcfGb+vMQ1/1ZdCk9lutvAvsntGbT+pMQ/DTuLhaek0bmob8u6d' +
'vVt5x8mZNfAoNUW1qHgTWW0b01MAgxODRCmaaTIPAzBgA9Kd4N715' +
'BCWQcIXQmYZx0unmYaHehC9CZUygY/7/AzZrc6o=');
aid := BitmapFromString(21, 11, 'meJw9T+tPUnEY/jcSzuHSUWRcvP' +
'wFtSl3nMMlUKvZYOOOI3XlNGu1jMs5WC4hjnROMrGtQuqD1UQFDig' +
'6+oLS1gdqrVpbrrb+hd7Dz7E9O3vf5/c873Oe/nv1gft19UKt/+7h' +
'4J3DgdsHqpuVvrlqH3xnq4qpkiJUVE2X1TBM7ipDRblvRxnak3m2Z' +
'd5Cr6+gntlTT+2qbuyoQgVTtMZ++vOi9S+w0VQGthS+LZnzjX/9GB' +
'h/9ljmzMsc+R7HZvfE60CWJ4MbJ93Xc3JXXu7M9TpeBbMNIAFU5Tt' +
'xNdtzLSuxMsTljPhSWmJlpTaWsK8R9ucw+9c+gszL1qVWVjLOSMeZ' +
'81aG4r6xzdNE/RfTPB2ayUnHkvjIspep8cpnNYklsfC2eXa//JUn0' +
'weEjRFbkoQ1rbmVBy/wSO+mq5gxLhp55FmtwuqhK1fIQubzX7L0RT' +
'y6jOzwJB5LSCxJCHLT+21XZWj6JXPyG2SYkRIaSDfNtYP25/MNsNs' +
'i7zGerLTFnGj0CW5+jJmWQA8u8OJGqjMLdFFkd6U4ZLfHPuDmuAfZ' +
'UxxuWhIaKHtsG55Qrw7mNxtw6ix9tQorsgi0EVeqjBrhJkpkjsNlP' +
'uJpWaANAy5OrkP6ytHPwQka2T00B78NEbFiCzPEyFKrrS/BjBnJla' +
'MfoL8QzMCKG0kk4JuG3yE7hAKJQgHQDnXH9FGB5iEPLQ+hPgpM1/B' +
'il2YRBqEuLNRFzg0/gLWDtjjM5+qj/wHhNnLb');
//onebmp is the #1 next to a player name showing it is the end of the list for that tab
onebmp := BitmapFromString(19, 8, 'meJxjE9dhl9ADI30OKQMOSQRiByF' +
'9oDgcgRRIQQXZxLTZxHW8cxpzp61UtPCvWrYbSEKMat96MrZpOpu4' +
'LpsECLGDEEgcJCKuyyqqCdQb2zgttmmasU9i1dJdQHMULXwnHrq+7' +
'PZ7oDjIZBDSAYoDETuYBHJZRTTmnH8EVANHJfM2h5Z3e2XXtwFtbJ' +
'zGKqbFKgpGYlowQ7SBbBYRdQVTL6AaQ+/4knmbYhunAt0AQWCNU4E' +
'ms4pogkiYOASxCKth2LgJqIxFRKNty4mYxilAk+EIbIgGlCus6pVZ' +
'mzNlubyJR9XSnUASaBQEgTQ2TIFz0RCzkErx3I0xDZM9M2sa1h5gE' +
'VJlFlJlASOwxsnMYBFmuLgwlA0APnRyxg==');
bpclose := BitmapFromString(18, 11, 'meJxNUdFuEkEU/QzYmZ2hLbvsLi' +
'zQpOUbDJ/QWI3+QmmxVAPYIAsRJGKTWuyoD60CtegjtFrNCmxq0VR' +
'N1PZBbaN8AE99MfHOrGlMTm7Oveece2ezY7F6stZzzk4Hf365KL4Y' +
'+KafjMWeMuczb1sH47E6ndqAiW96E4hvaqPYckBi/Y8kep9E11j/U' +
'LSHJLLq8sK2AxKNrpHoKpms+SYfgGSPfj4//kIj92iYQzYrxKzQcB' +
'XAeh8gZW3ZNFKVQ2USvsuJeYeaFb65956YZRquyKESCZUon3PpoUg' +
'VntmgXkw27dEP9xM6w2Ox7TU2CtiwSOg2NcuClHDQYr0BT229mRWR' +
'zvAofvVR/Ar7l2ruYT0nG3mk57BxC0CCRaiseyDUVwCxfI8ELawvw' +
'x7+wu47rN9EWpYYOSBuBcDcNZ/HZX0ZaRmr+RJOt44+yTyVQYEM1r' +
'JYy2A9K6nX17v7/9/KN3ZQ4AbW0lZjF4Li3D7S0iiQZsIJVVKXXA7' +
'mmcRje/S9PfwWv1y7cGkFiFdJJqrbztnJ+V/ONzoe/zxSU+tv+7yt' +
't73Kwswcg6BraP/+KimLkpoCeCYSXv8CmCXlmmdi3uNPAEdijtRFA' +
'OwHg6SkQPoLzQ8wNA==');
collect := BitmapFromString(46, 13, 'meJxNUdlT02cU/TeEkARCCEkIr6' +
'3Y6fShD0IIi2yihbAvQoGE7MiibLJIIosgAoYkCEpJ2CEpu6gsgsu' +
'A2s64TfukdPpUfLAP7bm/j0k7c+bO/c7v3HPP9/0U6+bIDbNiwwSw' +
'JnLTEvmwSrFpUWyYIx9aFOsm9JEMYDYtEavGiHWSRSwbFOtmCMAo1' +
'qhGrJrkPp18SY9PEUsEuVeHqlg2yn16+ZJBtlAp9xkifBAYpbMa2Z' +
'xW7tXLFnSyeZ10qkI6VS6f1VIzWR7uIZRsuFd++fvBr/8wVD9ekc1' +
'q5HOkkc1q5Ric1si4EdmMBtX14nfoSx94kpZ6va8+Tx7++b2vVTpZ' +
'IXWXhbvLwyfKpO5yKdUKyb1Syeil8PEfuaYECP+pPMxVLBkrFdsLJ' +
'SOXJKOlkpESNGHOossbS9jeuf1CPFwQ5izu3HrOjpK7JSdiV3HYcC' +
'F6sb0gdCgfI66nvyFJse9+4kyX9+Vnz4s/vrtfJx7KD+3PDbMXAaG' +
'3csVDBaH9eSI0t8HniQcLAFFvjuhmdkh3Vvx4R2hfTmhfLgRUe3Pi' +
'xjtg5dz7QPpbuaKeLEyFdKnF/XnUdKvFA+CpZ59oqifL+eTDyusvR' +
'bOjqtE278tjz/Ojb+1VIZ3qkK6sE9xQA6LubPSowe0XQ7qygzsygq' +
'2ZwpYLquEW7+Ex6W+og22ZrFp8i3iBG5tPRd1ZwdYMTIl6skXkpma' +
'wbez7/xrEZG7LZEkKp+6qXK3wRJJvbpuCr//g3H3PlJ5nR2f6DFgt' +
'vJZe6HYtv/7CeAjO9OjdT4/QI54IGdovEqwZtvU9kOb5Ofj7IcQVU' +
'NsusBjm+XkcLd4F9NBTkt33SFIw4VDeaaIk2NtrYCT2qhwti4fHjp' +
'13Ie0ZhRNOxHDuvMdTmOfmyGFtT9nfAIGgMVXYdhH5ha0XhM3nbWt' +
'PaNfcLEhB83n62pKOi0AQ1aNDeGxBA+bMTT16MFFdlY7td/AvRJIB' +
'8nQ/O1KP9VPDfYUYq3GMvdNkWyV/08yMoDFN0JAmqE/lX0mJHWjCV' +
'359qqDxPOP5Damm6RmWU9icLqQkafyrKYJr6fz6FOVAI2f+KapTix' +
'GsQA8GPBYhSf49u/JWPdOoXX1o/P8RWH71JX/M7tiizPl3h1gGfm0' +
'S9pLzwTEFwK6GNN7lRPDKvqv0klvvgqrPQUlJoK9L5l9JPn29DCu4' +
'JJVBdclRNg0d9z+dbi9jb5I3MkjvfHAMMtNxkxpOTON1yUGXEwVXU' +
'qwru0hl9EzhGFSTxDmnKPvqIeZXn+NZEojHavC1SUbPJMTWpR1eVS' +
'LPHG9d3mVHjKDS207PBNUmmaam/TLH47d00zF7dHftSYCOCor3iuJ' +
'F99SxeF+3lOa5BkE6tt7yqhLyRobQwwG8e/8jzxQXaABUPFN8oC6W' +
'Z4wL0MXm2vuh8T+s0T1JGiPJrD9v+3nDuBtRMTX86A0tdQxEd9YsH' +
'vzl3vv4VUspxI5Hb5gS5NnOmkCtElv+b44rYCMAWwqgV2EqQBsDz4' +
'BKZYAmBv5MEMhyajkSSq0y0BRP2/UqqhBjyhTP1TiOTGA+FJsDBum' +
'anAkMg8wJp8Cwr7i4gbaA+W97RQyegnpNDHsZaAIqosmzUuk/Ajwj' +
'AsQGIFJlLEKeKjtLt8CUVnmqPJo+wRbALJefzDkw8xN/7i+QIXiDi' +
'pn8C888dWM=');
aborthighlighted := BitmapFromString(32, 13, 'meJw9UUtPE1EY/RPOdKad/oBO34' +
'U+gKiskGKiW2SjGy0bNghhIbgxoiSGR0sHBNqClBYokI4ILfZBayU' +
'GAWWDCEpENEiiRuMv8Nx7W5IvX84953zn3m9GulTQ1xdJAVwu6msK' +
'kqcg1RakmnV9fUGqK+jceT09ShfXSa+lBg/FKE9ecudIr4OUlzwUM' +
'9Kd1blzOteazr1GOi3PtWI6+/P97j/0muuvwGhdaRhGJo9B3u/bJz' +
'ZniprTOmea4OpVYG31is79UktwipIr6CC1VapYpWqrlkTHEnBr1/b' +
'm1l9Eobd2bRHVAWlBiRyB7OnbEx2LMJNyJIlqX9A6FmAAYAkE2OdF' +
'R0JLBhcJJhUXbHEAJfIZOQn1O7oS/iTaZkX7nGifZXzP4114BFsUD' +
'OXjIqZsM4ItRsfjgjUKDJIyMcE6IzJAyJirSU1nz0obv32db9DTmT' +
'NX0zIz4C7kh6NHbDtI7qvLgnUa4Qn1Gxi2sq/ztWB9hkqoJziqq6f' +
'wCNYpRkIFCQkMMxC/LYqjEj6ge0Ga7n70jm53oLFEKraSxjLJPFBJ' +
'fvKEeg7h15jDGkuYGg6JoXcbuLt3hxhCB8RgiZRne7c05glvy2pp4' +
'xdWuNmWx5qIoi+c8rasgE8kvyINfXPrj6+jpDGPa8whdJc3kcr8gM' +
'F74wWOvo4iDGBcjfPIVEIf2dWCZdJ5ZY45HzzZgYcEmsd409PG5uc' +
'g6chcJb9ApVEUMBj2Jc+r7DGNKqH9yvtDeADLudWWow8+RjhvGmts' +
'VivHcZZ/526BNwYhIT8Y+oAEdBxxKSpIM9F50wjLT2VOnQ2xew/f0' +
'k+3zxsVpNGcdfiZByoSKnyOkwO4gpOHMEuY9gxvUhgDlX6i0+qGaH' +
'Bij/zf5Be2F8Y5eZg3Bng5AHy+7O32LG8EP1zJzyKHrGAMAHBEAlY' +
'4wyAn++lFAc4wxJc9QfAM0GQ/cWIKquynOTREJpcyM338MCcTwI7A' +
'ZBB+QwUQqZ9i5hkql6GfJpMRwhsGLxgG6BSkAY7dKPv/A0/IWAk=');
abort := BitmapFromString(38, 11, 'meJxNUUtPU1EQ/hXCfZxbQl/cXt' +
'qC4DO6IBp1gawU926kdYGiVKRIgdDyElrF6gXbCgiC8VaKVRQRA4a' +
'4IKiA0RixYFRMfCSY+Av8zjnVmEwmM998882cOaRkRCkZMZWO5W2/' +
'nbdtzFR6K2/b7T2H049nvi8t/56a+ba34j5KptJRVPWBVYBNHUvgo' +
'IvzaXvJCNk6nFc6SoqHACo0BjisbB3iniIsIMWDSlFCdvfDK8UJ4r' +
'5OXH2m4sRJ37OFxV8Qh/fWzipFMeLuR0m/8Y5ObF9EqoDs7iNFMVN' +
'RHCXi0hU3t34T+C5ddkaJ66ri7mNIP3FGEY/eWZe1sOK8rLiiMLkw' +
'Imlhk/uanngL5eTER3g98YYURhRnLwwxkEDoueK6Ims9hDb2yoVhp' +
'TAia90EgfMSofFFovUoFKdGsr4nObGOJzByD2EI8+HdB+JTT77OP/' +
'/pPfsYHvGegwOsN9LHJg4Mv+MXoKVDA0S7qGjdUAPCz+I585A4Oon' +
'WlZxYQ5qe/AT86dw3TpAdHZLaji54Gjs6PTWToCVTa0D4VkCI1i05' +
'2vX4a/b2NeLoCgTn6QXiK5Ia4jRvzaSstgGhlw/Ny47OZCrDOK+J2' +
'iYVBJGCBr6kthGtU1KDAJFy2cbWObTDc1nszEorrDQr2lvKK2+yC2' +
'wc96YQJCcyxNFOHG0VxyhupDKyGjLYCG/NA6KGYHwij6WCFllthc6' +
'u/dGp6Q20lFcOIvXW3AcHssDB0ePL9B+Dc2jZuS/LDHbNs5tkRHuz' +
'YAuUHx2km0xv7NoXTaY+LCxuek6nJXuLZG/mE0V7k2hrZuRGGKr8j' +
'/43dti0YL1wLfaKv1EuaDlcCeUfU9NfjnvuIjBSH0RbQMbbjyR4Cg' +
'4f4Tl9DzEmGmwB0daYa/ELVj9AkWq+hCY8CGyZJj22RA8bWxKsDTz' +
'GlB1lEcz9i/uN7FvuMT7dKtA6+29E1alx0XYB7ViYvtHaIFjO51rq' +
'RKs/J9/3aPozOCeqDegI1vqc/Nqq6nEgwHeWha9efwE1Y/w9fzsEB' +
'Us9emHG+Orfg2xWVRtZMLWaTc3ncsy+qlN3kUITtiX/LCaCgxgibB' +
'wWqAUTOFbCMjnmWsRsMQT1MCprPidY/ChRHTM4vlxzHfx/r6AifAF' +
'KM/v+ADnqVYg=');
GetClientDimensions(w,h);
popup := inttobox(200,h-50,w-1,h-1); //checks lighter colour of blue boxes
bottommenu := inttobox(0,h-200,w-1,h-1);
leftarrow :=point(245,h-65);// size 5x5 arrows are to scroll through players
farrightarrow :=point(915,h-30);// size 5x5
SetLength(tabarray, 3); //player tabs 1=friends tab 2=guild 3=neighbours
tabarray[0] := point(868,h-143);
tabarray[1] := point(802,h-143);
tabarray[2] := point(738,h-143);
end;
Future project: A quest looper (to do this (cant post links see youtube video 200s in:Quest Looping in Colonial Age (CA) - Forge of Empires) about 50 times per day) I've made all the BMPs but the symbol to show the building is ready to collect is animated/jiggles around, is different when motivated, and building animations (such as smoke coming from chimneys) cover it so I'm not sure of the best way to find them