QAZ
2012-06-06 17:18:42
ok, well basically sorted everything with the script, all looked well. i ran the script and it went to the range used the food on the range, but it won't click the cook all option which comes up at the bottom
anybody know how to sort this, here's the script
anybody know how to sort this, here's the script
program AlKharidCooker;
{$i SRL/SRL/Misc/smart.simba}
{$i SRL/SRL.simba}
Const
{============================================================================}
{ /"""" |"""" """|""" | | /"""\ }
{ \___ |___ | | | |__ / }
{ \ | | | | | }
{ ____/ |____ | \ _ /| | }
{============================================================================}
{} {}
{} Fish2Cook = 'tuna'; {}
{{ [anchovies, shrimps, trout, salmon, tuna, lobster, swordfish, pizza )}
{{ or shark] )}
{} {}
{} LoadsToDo = 0; // When to switch to the next player, or stop. {}
{} Time2Run = 0; // 0 = Stop when your out of raw food {}
{} {}
{} Username = 'USERNAME'; // Your RuneScape username {}
{} Password = 'PASSWORD'; // Password {}
{} Bank_Pin = 'Pin'; // And Bank Pin {}
{} {}
{} BankRow = 0; {}
{} BankCol = 2; {}
{} {}
{} SRLStats_Username = ''; {}
{} SRLStats_Password = ''; {}
{} {}
{============================================================================}
var LoadsDone, Raw_Fish, Cooked_Fish, StartTime, FishCooked, FishBurned, XpPerFish,
LoopKill:Integer;
MyFish, DoingATM, Fish:string;
NextAcc, IsFishBurned, AddToStats, OutOfFish:Boolean;
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := Username;
Players[0].Pass := Password;
Players[0].Pin := Bank_Pin;
Players[0].Active := True;
{
Players[1].Name := ''; // Your second account's Username
Players[1].Pass := ''; // Your second account's Password
Players[1].Pin := ''; // Your second account's bank PIN
Players[1].Active := True;
}
end;
function GetMinutesRan:Integer;
var
RunTime:Integer;
begin
RunTime := GetSystemTime - StartTime;
RunTime := RunTime / 1000;
RunTime := RunTime / 60;
result := RunTime + 1;
end;
function GetRangePos(var Tp:TPoint):Boolean;
var
TPA, TPA2, TPA3:TPointArray;
A:TIntegerArray;
ATPA:T2DPointArray;
I, H, x, y, L, R:Integer;
begin
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1510000, MSX1, MSY1, MSX2, MSY2, 15);
//writeln('First TPA contains ' + inttostr(High(TPA)) + ' TPoints.');
FindColorsSpiralTolerance(MSCX, MSCY, TPA2, 2177098, MSX1, MSY1, MSX2, MSY2, 20);
//writeln('Second TPA contains ' + inttostr(High(TPA2)) + ' TPoints.');
FindColorsSpiralTolerance(MSCX, MSCY, TPA3, 5664130, MSX1, MSY1, MSX2, MSY2, 3);
//writeln('Third TPA contains ' + inttostr(High(TPA3)) + ' TPoints.');
TPA := CombineTPA(TPA, TPA2);
TPA := CombineTPA(TPA, TPA3);
//writeln('Combined TPA contains ' + inttostr(High(TPA)) + ' TPoints.');
if Length(TPA) = 0 then
begin
if FindObj(x, y, 'ange', 5400699, 15) then // 1581994 , 1450139
begin
wait(1200 + random(300));
result := True;
end else
result := False;
exit;
end;
ATPA := TPAtoATPA(TPA, 65);
H := High(ATPA);
SetArrayLength(A, H + 1);
for I := 0 to H do
begin
MiddleTPAEx(ATPA[I], x, y);
L := High(ATPA[I]) + 1;
A[I] := L;
end;
R := 0;
for i := 0 to High(a) do
if (a[R] < a[i]) then
R := i;
MiddleTPAEx(ATPA[R], x, y);
Tp.x := x;
Tp.y := y + 10;
result := True;
end;
function BankOpen(i: Integer):Integer;
begin
if BankScreen or PinScreen then
begin
Result := i - 1;
end else
result := 5;
end;
procedure IncVars;
begin
if IsFishBurned then
begin
stats_IncVariable('Food Burnt', 1);
IsFishBurned := False;
end else
begin
case Fish of
'Anchovies':
begin
stats_IncVariable('Anchovies Cooked', 1);
end;
'Shrimps':
begin
stats_IncVariable('Shrimp Cooked', 1);
end;
'Trout':
begin
stats_IncVariable('Trout Cooked', 1);
end;
'Salmon':
begin
stats_IncVariable('Salmon Cooked', 1);
end;
'Tuna':
begin
stats_IncVariable('Tuna Cooked', 1);
end;
'Lobster':
begin
stats_IncVariable('Lobster Cooked', 1);
end;
'Swordfish':
begin
stats_IncVariable('Swordfish Cooked', 1);
end;
'Pizza':
begin
//stats_IncVariable('Plain Pizza Cooked', 28);
end;
'Monkfish':
begin
stats_IncVariable('Monkfish Cooked', 1);
end;
'Shark':
begin
stats_IncVariable('Shark Cooked', 1);
end;
'Rocktail':
begin
stats_IncVariable('Rocktail Cooked', 1);
end;
end;
stats_IncVariable('Cooking EXP (Gained)', XpPerFish);
end;
end;
function LoadFishDetails:Boolean;
begin
case Fish of
'':
begin
writeln('You have not entered which fish you are going to cook, please fill it in and start the script again');
writeln('Terminating script..');
TerminateScript;
end;
'anchovies':
begin
MyFish := 'hovi';
Raw_Fish := DTMFromString('mWAAAAHicY2FgYGBnYWD4z8zA8JMZQk9iZGCYD8TTgXgpEMfFJQNVMcExBwMqYETDIAAAu8oGsg==');
Cooked_Fish := DTMFromString('mWAAAAHicY2FgYBACYjkgFoTSkkAsAhXnAmJji2ggyQTHrAwQwArFjGgYBABavgGM');
XpPerFish := 30;
end;
'shrimps':
begin
MyFish := 'hrim';
Raw_Fish := DTMFromString('mWAAAAHicY2FgYIgH4gwgLgTiFCC2BmJPILYAYgcgntreCCSZ4JiDARUwomEQAAAQ2gRM');
Cooked_Fish := DTMFromString('mWAAAAHicY2FgYDADYjsg9gdiVyC2AWJPILYCYgsgnpYkCiSZ4JiDARUwomEQAADGIAMj');
XpPerFish := 30;
end;
'trout':
begin
MyFish := 'rout';
Raw_Fish := DTMFromString('mWAAAAHicY2FgYDAHYisgdoWyFYBYGYgloXjv1i1AkgmOORhQASMaBgEA1lsDnw==');
Cooked_Fish := DTMFromString('mWAAAAHicY2FgYOAFYmEglgZiLiBWAGIlIJYEYlkg7qoqB5JMcMzBgAoY0TAIAACB3AJP');
XpPerFish := 70;
end;
'salmon':
begin
MyFish := 'almo';
Raw_Fish := DTMFromString('mggAAAHicY2NgYBAAYkkgFgJiLiBmBWJhIOaD8kHi3FB1HEA8OSYISDJhYF4G7IARB4YAALByAg8=');
Cooked_Fish := DTMFromString('mlwAAAHicY2dgYOAHYnEo5gZidiDmAWIRIBYEYj4kMQEglgRiISDeYSUFJJmwYl4giQsz4sFQAADhwAJe');
XpPerFish := 90;
end;
'tuna':
begin
MyFish := 'una';
Raw_Fish := DTMFromString('mWAAAAHicY2FgYOACYmkg5gFiQSCWBWJJIBYGYkUgPrJ7N5BkgmMOBlTAiIZBAACjUwL9');
Cooked_Fish := DTMFromString('mlwAAAHicY2dgYBACYhEglgBiaSDmAWJ2IBYGYn6onABUjBUqzwbEyRFhQJIJK+ZlwA0Y8WAoAADSTwIJ');
XpPerFish := 100;
end;
'lobster':
begin
MyFish := 'obst';
Raw_Fish := DTMFromString('mlwAAAHicY2dgYBACYmEgFodiEJ8diFmAmB5gRiESCWgfJBanLsFIEkE1YM0ocLMOLBUAAAuf8ByQ==');
Cooked_Fish := DTMFromString('mlwAAAHicY2dgYBABYkkoBrF5gJgbiAWgWAKIeaFiIDlhIJYF4lWhIBkmrBikHhdgxIOhAADm9wI8');
XpPerFish := 120;
end;
'swordfish':
begin
MyFish := 'ordf';
Raw_Fish := DTMFromString('mggAAAHicY2NgYBACYikozQnE3EAsBsR8QMwPFeOFigkD8Y6mQ0CSCQOD1GADjDgwBAAA8hYC5A==');
Cooked_Fish := DTMFromString('mggAAAHicY2NgYOAGYlEglgNiCSAWAGJpIBaBsvmBmAOI2aFi06IXAkkmDMwKJLFhRhwYAgDdtwKe');
XpPerFish := 140;
end;
'pizza':
begin
MyFish := 'izza';
Raw_Fish := DTMFromString('mWAAAAHicY2FgYBACYlUgFgFiSSAWB2JBIGYDYhkgXrFgIpBkgmMuBlTAiIZBAACS+gKg');
Cooked_Fish := DTMFromString('mWAAAAHicY2FgYOAHYhkgVgRiUSAWB2IJIOYFYlYg7qyJBpJMcMzFgAoY0TAIAAB4QgIb');
XpPerFish := 143;
end;
'monkfish':
begin
MyFish := 'onkf';
Raw_Fish := DTMFromString('mWAAAAHicY2FgYBACYlUgFgFiSSAWB2JBIGYDYhkgXrFgIpBkgmMuBlTAiIZBAACS+gKg');
Cooked_Fish := DTMFromString('mWAAAAHicY2FgYOAHYhkgVgRiUSAWB2IJIOYFYlYg7qyJBpJMcMzFgAoY0TAIAAB4QgIb');// redo both
XpPerFish := 150;
writeln('Monkfish is not working, please try some other kind of fish'); // says enough.
TerminateScript;
end;
'shark':
begin
MyFish := 'hark';
Raw_Fish := DTMFromString('mWAAAAHicY2FgYBABYgkorQjEokDMDcQyQCwExJXFxUCSCY45GFABIxoGAQB6GwIl');
Cooked_Fish := DTMFromString('mWAAAAHicY2FgYBABYmEgVgRicSDmAWJRIOYDYhYgDnM0AJJMcMzBgAoY0TAIAABVMwFw');
XpPerFish := 210;
end;
'rocktail':
begin
MyFish := 'ockt';
Raw_Fish := DTMFromString('mWAAAAHicY2FgYBACYlUgFgFiSSAWB2JBIGYDYhkgXrFgIpBkgmMuBlTAiIZBAACS+gKg');
Cooked_Fish := DTMFromString('mWAAAAHicY2FgYBABYmEgVgRicSDmAWJRIOYDYhYgDnM0AJJMcMzBgAoY0TAIAABVMwFw'); // redo both
XpPerFish := 225;
writeln('Rocktail is not working, please try some other kind of fish'); // THIS.
TerminateScript;
end;
end;
result := True;
end;
function Finished:boolean;
var x, y:Integer;
begin
if FindDTM(Cooked_Fish, x, y, 560, 211, 596, 243) then
begin
Inc(LoadsDone);
if LoadsToDo = 0 then
result := False;
if LoadsToDo >= 1 then
begin
if LoadsDone >= LoadsToDo then
begin
result := True;
end else
result := False;
end;
end;
if Time2Run > 1 then
begin
if GetMinutesRan >= Time2Run then
begin
writeln('Time is up, switching to next player.');
result := True;
end;
end;
end;
procedure CustomDepositAll; // made this after the money pouch update,
begin // changed it to this after SRL got updated.
DepositAll;
end;
procedure PrintProggy; // proggys
var
CookPerHour:Integer;
begin
ClearDebug;
CookPerHour := FishCooked*GetTimeRunning/3600000;
writeln(' ');
writeln('~~~~~~~~~~ Al Kharid Cooker by Chris ~~~~~~~~~~');
writeln('Cooking Fish: ' + Fish2Cook + ' Cooked: ' + inttostr(FishCooked) + ',' + ' Burned: ' +
inttostr(FishBurned) + '.');
writeln(' Experience Gained: ' + inttostr(FishCooked * XpPerFish));
writeln(' Time Ran: ' + TimeRunning);
writeln(' Cooking per hour: ' + inttostr(CookPerHour));
writeln(' Experience per hour: ' + inttostr(CookPerHour*XpPerFish));
writeln(' Current Activity: ' + DoingATM);
if AddToStats then
begin
IncVars;
Stats_Commit;
end;
end;
procedure SetUp;
var a, b:string;
begin
Smart_Members := False;
Smart_Server := 1;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
if SRLStats_Username = '' then
begin
a := 'Anonymous';
end else
a := SRLStats_Username;
if SRLStats_Password = '' then
begin
b := 'anon1337';
end else
b := SRLStats_Password;
SetupSRLStats(600, a, b);
DeclarePlayers;
Fish := LowerCase(Fish2Cook);
AddOnTerminate('FreeDTMs');
LoadFishDetails;
MouseSpeed := 12 + random(2);
DoingATM := 'Setting up';
//wait(2000 + random(500));
PrintProggy;
case Fish of
'anchovies': Fish := 'Anchovies';
'shrimps': Fish := 'Shrimps';
'trout': Fish := 'Trout';
'salmon': Fish := 'Salmon';
'tuna': Fish := 'Tuna';
'lobster': Fish := 'Lobster';
'swordfish': Fish := 'Swordfish';
'pizza': Fish := 'Pizza';
'monkfish': Fish := 'Monkfish';
'shark': Fish := 'Shark';
'rocktail': Fish := 'Rocktail';
end;
if (not(LoggedIn)) then
begin
ClearDebug;
Loginplayer;
wait(1200 + random(400));
end;
ClickNorth(SRL_ANGLE_HIGH);
end;
procedure FindRandoms;
begin
if (not(LoggedIn)) then
begin
Loginplayer;
end;
FindNormalRandoms;
end;
procedure Bank;
var x, y, kill, i:Integer;
Bank_Booth:TPointArray;
s:string;
// TPoint:TPoint;
begin
DoingATM := 'Banking';
if (FindDTM(Raw_Fish, x, y, 553, 211, 598, 248)) then
begin
Exit;
end;
FindRandoms;
if OutOfFish then
begin
LogOut;
NextAcc := True;
if HowManyPlayers = 1 then
begin
Writeln('Out of fish, Terminating Script');
PrintProggy;
TerminateScript;
end else
Writeln('Out of fish, going to the next account');
Exit;
end;
if NextAcc then
Exit;
PrintProggy;
while isMoving do
wait(200+random(200));
MouseSpeed := 16 + random(2);
for i := 0 to BankOpen(i) do
begin
// writeln(inttostr(i));
case i of
0:
begin
if FindColorsSpiralTolerance(MSCX, MSCY, Bank_Booth, 9350042, 144, 112, 229, 178, 25) then
begin
MiddleTPAEx(Bank_Booth, x, y);
mouse(x, y, 3, 3, True);
wait(1400 + random(300));
repeat
wait(500 + random(330));
inc(kill);
until ((BankScreen) or (PinScreen) or (kill = 7))
kill := 0;
end;
//if (BankScreen or PinScreen) then
// Exit;
end;
1:
begin
if FindColorsTolerance(Bank_Booth, 9350042, 144, 112, 229, 178, 50) then
begin
MiddleTPAEx(Bank_Booth, x, y);
mouse(x + 15, y, 3, 3, True);
wait(800 + random(100));
//WaitOptionMulti(['se-qu','ank','ancel'], 1500);
repeat
wait(500 + random(330));
inc(kill);
until ((BankScreen) or (PinScreen) or (kill = 7))
kill := 0;
end;
//if (BankScreen or PinScreen) then
// Exit;
end;
2:
begin
mouse(220, 163, 3, 3, True);
//wait(800 + random(200));
//WaitOptionMulti(['se-qu','ank','ancel'], 1500);
repeat
wait(300 + random(330));
inc(kill);
until ((BankScreen) or (PinScreen) or (kill = 14))
kill := 0;
// if (BankScreen or PinScreen) then
// Exit;
end;
3:
begin
Logout;
writeln('Couldnt find bank..');
NextPlayer(False);
NextAcc := True;
Exit;
end;
end;
end;
// bankscreen open or procedure killed
wait(500 + random(200));
if PinScreen then
InPin(Players[CurrentPlayer].Pin);
if invcount > 0 then
begin
CustomDepositAll;
Wait(300 + random(150));
end;
//x := 129 + random(26);
//y := 99 + random(20);
//mouse(x , y, 0, 0, False);
//wait(600 + random(300));
//Mouse(x, y + 104 + random(20), 15, 0, True);
DoingATM := 'Withdrawing Raw food';
PrintProggy;
//mouse(x, y, 0, 0, False);
//wait(10000);
//TPoint.x := x;
//TPoint.y := y;
//TPoint := MSTPointToBankPoint(TPoint);
repeat
inc(kill);
wait(50);
until (withdraw(BankCol, BankRow, 0) or (kill = 5))
//Wait(400 + random(100));
MouseSpeed := 16;
if GetMMLevels('run', s) < 23 then
begin
RestUntil(84);
end;
end;
procedure ToBank;
begin
FindRandoms;
DoingATM := 'Going to bank';
if NextAcc then
Exit;
mouse(613,143,1,-3,true); // the only blind click ^^
PrintProggy;
Wait(6700 + random(300));
end;
procedure Cook;
var x, y, i, kill, kill2, Antiban, When:Integer;
Tp:TPoint;
InventSpotsX1, InventSpotsY1, InventSpotsX2, InventSpotsY2:TIntegerArray;
begin
FindRandoms;
DoingATM := 'Finding Range';
PrintProggy;
if NextAcc then
Exit;
MouseSpeed := 19 + random(2);
while isMoving do wait(200+random(200));
if not(GetRangePos(Tp)) then
begin
writeln('GetRangePos returned false');
NextPlayer(False);
NextAcc := True;
Exit;
end;
x := Tp.x;
y := Tp.y;
mouse(x, y, 4, 4, True);
MouseSpeed := 11 + random(2);
MMouse(351 + random(151), 289 + random(43), 3, 3);
DoingATM := 'Finding Range';
PrintProggy;
repeat
inc(kill);
wait(150 + random(100));
until (kill=20) or (FindDTM(Raw_Fish, x, y, 218, 393, 281, 434))
if (kill>19) then
begin
MouseSpeed := 12 + random(2);
invmouse(1,1);
wait(300 + random(200));
MouseSpeed := 19 + random(2);
if not(GetRangePos(Tp)) then
begin
writeln('Range wasnt found..');
NextPlayer(False);
NextAcc := True;
Exit;
end;
x := Tp.x;
y := Tp.y;
mouse(x, y, 4, 4, True);
MouseSpeed := 11 + random(2);
end;
while isMoving do wait(200+random(200));
if FindDTM(Raw_Fish, x, y, 218, 393, 281, 434) then
begin
x := x + random(10);
y := y + random(10);
mouse(x, y, 0, -3, true);
wait(800 + random(450));
kill := 0;
end;
SetArrayLength(InventSpotsX1, 28);
SetArrayLength(InventSpotsY1, 28);
SetArrayLength(InventSpotsX2, 28);
SetArrayLength(InventSpotsY2, 28);
InventSpotsX1 :=
[560, 601, 642, 683,
560, 601, 642, 683,
560, 601, 642, 683,
560, 601, 642, 683,
560, 601, 642, 683,
560, 601, 642, 683,
560, 601, 642, 683];
InventSpotsX2 :=
[601, 642, 683, 724,
601, 642, 683, 724,
601, 642, 683, 724,
601, 642, 683, 724,
601, 642, 683, 724,
601, 642, 683, 724,
601, 642, 683, 724];
InventSpotsY1 :=
[210, 210, 210, 210,
247, 247, 247, 247,
284, 284, 284, 284,
321, 321, 321, 321,
357, 357, 357, 357,
393, 393, 393, 393,
429, 429, 429, 429];
InventSpotsY2 :=
[247, 247, 247, 247,
284, 284, 284, 284,
321, 321, 321, 321,
357, 357, 357, 357,
393, 393, 393, 393,
429, 429, 429, 429,
465, 465, 465, 465];
DoingATM := 'Cooking';
AddToStats := True;
AntiBan := random(2);
if AntiBan = 1 then
begin
When := random(23);
end else
When := -1;
for i := 0 to 27 do
begin
repeat
Wait(random(398));
inc(Kill2);
until (not(FindDTM(Raw_Fish, x, y, InventSpotsX1[I], InventSpotsY1[I],
InventSpotsX2[I], InventSpotsY2[I])) or (Kill2 = 30))
FindRandoms;
if Kill2 = 30 then
break;
if (not(FindDTM(Cooked_Fish, x, y, InventSpotsX1[I], InventSpotsY1[I],
InventSpotsX2[I], InventSpotsY2[I])) and ExistsItem(I + 1) and
not(FindDTM(Raw_Fish, x, y, InventSpotsX1[I], InventSpotsY1[I],
InventSpotsX2[I], InventSpotsY2[I])) ) then { and not(FindDTM(Raw_Fish,
x, y, InventSpotsX1[I + 1], InventSpotsY1[I + 1], InventSpotsX2[I + 1],
InventSpotsY2[I + 1])) }
begin
IsFishBurned := True;
inc(FishBurned);
end else
inc(FishCooked);
if not(ExistsItem(I + 1)) then
begin
ToBank;
writeln('Out of fish.');
NextPlayer(False);
NextAcc := True;
OutOfFish := True;
Exit;
end;
PrintProggy;
if i = 26 then
MMouse(565 + random(111), 96 + random(68), 3, 3);
//antiban
if i = When then
begin
DoingATM := 'AntiBan';
PrintProggy;
if GameTab(tab_Stats) then
begin
HoverSkill(Skill_Cooking, False);
wait(500 + random(300));
GameTab(tab_Inv);
wait(200 + random(250));
end else
FindRandoms;
DoingATM := 'Cooking';
end;
//end of antiban
Kill2 := 0;
end;
AddToStats := False;
FindRandoms;
if NextAcc then
Exit;
MouseSpeed := 13 + random(2);
end;
procedure ToRange;
var KebabBMP, x, y, W, W2, I:Integer;
AnyBMPsFound:Boolean;
BitmapsFound:TPointArray;
Tp:TPoint;
begin
if NextAcc then
Exit;
AnyBMPsFound := False;
//wait(400 + random(100));
FindRandoms;
if NextAcc then
Exit;
SetArrayLength(BitmapsFound, 4);
for I := 0 to 3 do
begin
case I of
0:
begin
KebabBMP := BitmapFromString(5, 4, 'meJxjZAxXqs6CIE3tH0CSvZcHiIBs' +
'IGJkDBe2TgGSQGSf0B9RuwaZBAAZmBNk');
if (FindBitmapToleranceIn(KebabBMP, x, y, MMX1, mmy1, mmx2, mmy2, 15)) then
begin
BitmapsFound[0] := IntToPoint(x, y);
FreeBitmap(KebabBMP);
AnyBMPsFound := True;
end else
FreeBitmap(KebabBMP);
end;
1:
begin
KebabBMP := BitmapFromString(4, 5, 'meJxjZAwXtk45AAZMTC2MMK59Qn9E' +
'7Roge8GCBUAGkAthA0kIAwgA0mIZBQ==');
if (FindBitmapToleranceIn(KebabBMP, x, y, MMX1, mmy1, mmx2, mmy2, 15)) then
begin
BitmapsFound[1] := IntToPoint(x, y);
FreeBitmap(KebabBMP);
AnyBMPsFound := True;
end else
FreeBitmap(KebabBMP);
end;
2:
begin
KebabBMP := BitmapFromString(4, 5, 'meJw7cIAw4FH0w4oAqfQe2Q==');
if (FindBitmapToleranceIn(KebabBMP, x, y, MMX1, mmy1, mmx2, mmy2, 15)) then
begin
BitmapsFound[2] := IntToPoint(x, y);
FreeBitmap(KebabBMP);
AnyBMPsFound := True;
end else
FreeBitmap(KebabBMP);
end;
3:
begin
KebabBMP := BitmapFromString(5, 4, 'meJwTtk6RjV4jbJ0CRDyKfsKo3AMH' +
'DqBxgWABDAAAK08Wzg==');
if (FindBitmapToleranceIn(KebabBMP, x, y, MMX1, mmy1, mmx2, mmy2, 15)) then
begin // 590, 5, 685, 66, 15)
BitmapsFound[3] := IntToPoint(x, y);
FreeBitmap(KebabBMP);
AnyBMPsFound := True;
end else
FreeBitmap(KebabBMP);
end;
end;
end;
if not(AnyBMPsFound) then
begin
writeln('Furnace and kebab icon not found..');
NextPlayer(False);
NextAcc := True;
Exit;
end;
BitmapsFound := ClearTPAFromTPA(BitmapsFound, [Point(0, 0)]);
MiddleTPAEx(BitmapsFound, x, y);
mouse(x - random(3), y + random(5), 0, 0,true);
W := 1000 + random(4000);
W2 := (5000 - W);
wait(W);
DoingATM := 'Going to range';
PrintProggy;
invmouse(1,1);
MMouse(random(MSX2), random(MSY2), 3, 3);
Wait(W2 + 1500 + random(300));
// almost arrived at range ;)
if not(FindColor(x, y, 131072, 560, 210, 601, 247)) then // back to bank
begin
FindRandoms;
if NextAcc then
Exit;
if not(GetRangePos(Tp)) then
begin
NextPlayer(False);
NextAcc := True;
Exit;
end;
x := Tp.x + 18 + random(5);
y := Tp.y;
Mouse(x, y, +3, +3, True);
Wait(1000 + random(200));
if loopkill >= 3 then // failsafe
begin
writeln('something failed.');
NextPlayer(False);
NextAcc := True;
Exit;
end;
inc(loopkill);
ToBank; // fish not found, click next to range and
Bank; // get new fish
ToRange;
end;
end;
begin
SetUp;
repeat
Bank;
ToRange;
Cook;
ToBank;
until Finished or NextAcc
LogOut;
if HowManyPlayers = 1 then
begin
writeln('Succesfully finished');
PrintProggy;
TerminateScript;
end;
writeln('Starting on next account');
if not(NextAcc) then
NextPlayer(False);
NextAcc := False;
LoadsDone := 0;
StartTime := GetSystemTime;
LogInPlayer;
repeat
Bank;
ToRange;
Cook;
ToBank;
until Finished or NextAcc
LogOut;
writeln('Finished all accounts.');
PrintProggy;
TerminateScript;
end.
