Here you go, it gave you that error because the constant "law" was a string, and the variable "laws used" was a integer so they couldn't be compared. so all you need to do is change your constant "law = '500'" to "law = 500" .
Edit: If you didn't realize already, you have two x and y sets of variables, which can really mess up if you don't take one off.
here you go:
program MTATrainer;
{.include SRL\SRL.scar}
{ start logged in or logged out, in the middle of the four
portals.}
var
x,y, x, y, MMX, MMY, R: integer;
mazefinder_1, mazefinder_2, mazefinder_3, mazefinder_4, mazefinder_5: Integer;
mazefinder_6, mazefinder_7, mazefinder_8, mazefinder_9, mazefinder_10: integer;
counter, Time, LawsUsed: integer;
Guardian: TAutoColorInfo;
const
arena = 'maze';//<--dont touch (use for later versions, and for importantcase ex)
Law = 500;//how many laws do you want to use?
procedure DeclarePlayers;
begin
HowManyPlayers := 2;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Pin := ''; // leave blank if you dont have a pin
Players[0].Active := True;
Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Pin := ''; // leave blank if you dont have a pin
Players[1].Active := False;
end;
procedure Loadbtms;
begin
mazefinder_1 := BitmapFromString(31, 22, 'beNorLfVFAibUBtzl' +
'JaNowNH7Fx+ohTBN/m9m9o+Hp760lHKEZjjIZAWFP2xsLxkYqG440' +
'M1Akz8yMJyjgeEMDIw3GRj2MAABI9UNB4Y50FiqmIzVcKoYO2r4qO' +
'G0MxyXFFphRV3DaerygTEcAGKEgi4=');
mazefinder_2 := BitmapFromString(22, 15, 'beNorLfVFAiZkg' +
'frS0vcvnwFJCEJmoyGgFC6VxJuAi0sVE5ARfl8Qo3L4IQp9TUwc4T' +
'eZbibg8SOe2EcTJyOU8KRPkk0AAPZOBks=');
mazefinder_3 := BitmapFromString(34, 19, 'beNorKfdFAiY0A/Wl' +
'pbjQh5dv8MjiR0C93CXlcDQgtiCbPDhtAapHRnTwC7IVNIoXNI8AE' +
'cR3WI3FZQtayMARHlvwGEuSX0amLWQYOCxtIT4l084WTBspR3isGE' +
'VEIQA4BZCE');
mazefinder_4 := BitmapFromString(20, 17, 'beNorrucuHhj0+vUr' +
'4hGa3vrSUvzov5nZPx4eCBtNO2GNCgp/2NheMjCQqhdoI1DjRwaGc' +
'7j14vIgAwPjTQaGPQxAwEiqvUAE1AXRSIZeoHpk9uDRi6wAU/2oXk' +
'r1AgCP/fif');
mazefinder_5 := BitmapFromString(26, 22, 'beNo7/fTFh8/1paUE' +
'EbIyNC14pIg0DZMLR6SahmkIMW4bVTaqbKQpw6WSKqZRmAHxlDBkF' +
'DVA9N/M7B8PD0llCFbEXV0OMkpB4Q8b20sGBspNA7oKaNRHBoZzeE' +
'0jxkCgaQwMjDcZGPYwAAEjeabBYw1oGsRAIEIrk8lAJiYm////33T' +
'6KVZ07MbuH3tMJhaZrzp8l9G2hqHiMMO8J7L7/1df+V9w6b/+4f+s' +
'6/9rbf/P6NnWs3DnJgD+gr5I');
mazefinder_6 := BitmapFromString(35, 26, 'beNrN1LENwjAQBdAa' +
'CoowBgVNWCA1SAxAS58iy6ViAiag9NVeASw5Ok62SS7ftoT1FUXKK' +
'c++2OmHixhtzfF4vlzcTdd14zgaY951xv18vB42Ptt+sNa6q8u+aW' +
'ZiieYL4txOO1Z8NBYAyeV8LaJKkFT+CgICQMByPBQoqtZZu0px9Ri' +
'0yvKVMKS0uCYHWrTk01jhM6vtDFFyewRzSEJrLeZkgoJfEKfUOZoh' +
'lD/YfAhoIAwVtBYh2cOcb6eBvCV3FGBNL0nNuWw/mahtcTFsAccQs' +
'+J/QpBYBCDVZBwn+lxJmfIBswuySA==');
mazefinder_7 := BitmapFromString(18, 18, 'beNqLmO2LBEyIBvvP' +
'3uYuKQeid+/eAUkGBkZkBBT5/PwtRAEyguuCIGJ1nbsDZyNbBxeBC' +
'KIhoCORuXA1EAZWLZi68JiPXxcxiM66gGGLhojRVV9aiowwDcE0Cq' +
'suNBFM04jXhYwo0QWxF1MXsjhWu5CdTTBkgLp63NlxuRCXa4G6/v/' +
'/v+boA1zo5PVlh48U/z6s1t9iwaAUwxA0mwEA0nS4DA==');
mazefinder_8 := BitmapFromString(32, 25, 'beNo797y+tJR49On' +
'La2Q2MhdTJXd5CRCRZD5JLhk55kOCGn+Aj4b/EDIfKPvfzOwfDw9m' +
'tqKK+SDDFRT+sLG9ZGCghflAlwMN/8jAcI425jMwMN5kYNjDAASMt' +
'DAfYgUQkZSnqJ5+cFkNcRV9zCejbCHGfIjhtHM/2eYT480Rbj4xiC' +
'rxSwv3k2q+iYnJ////t557jgudvLLl2ULLB/MdtvZZb5gTvnHXLjy' +
'K0REAUV65TQ==');
mazefinder_9 := BitmapFromString(23, 22, 'beNorLa0vxY6eP31' +
'LpCAeNGrIYDAEKE4Q/Tcz+8fDg0c9QSeBTFBQ+MPG9pKBgSS/ICOg' +
'G4AmfGRgOEeBIQwMjDcZGPYwAAEj2YZAzKHQBPog/DFLUBl56Y3UF' +
'DtqyMAbAgBEsxUJ');
writeln('bitmapsloaded');
end;
procedure Freebmps;
begin
FreeBitmap(mazefinder_1);
FreeBitmap(mazefinder_2);
FreeBitmap(mazefinder_4);
FreeBitmap(mazefinder_5);
FreeBitmap(mazefinder_6);
FreeBitmap(mazefinder_7);
FreeBitmap(mazefinder_8);
FreeBitmap(mazefinder_9);
FreeBitmap(mazefinder_10);
end;
procedure Login;
begin
Typesend(' ');
TypeSend(Players[CurrentPlayer].Name);
TypeSend(Players[CurrentPlayer].Pass);
wait(10000);
mouse(369, 351, 5, 5, True);
end;
procedure antiban;
begin
case random(47) of
0: boredhuman;
1: RandomRclick;
2: PickUpMouse;
3: HoverSkill('magic', False);
4: RandomMovement;
end;
end;
procedure EnterPortal;
begin
if not loggedin then exit;
MakeCompass('N');
SetAngle(True);
wait(1500);
If arena = 'enchantment' then
begin
Mouse(144, 165, 1, 1, True);
end;
If arena = 'alchemy' then
begin
Mouse(266, 76, 1, 1, True);
end;
If arena = 'graveyard' then
begin
Mouse(365, 167, 1, 1, True);
end;
If arena = 'maze' then
begin
Mouse(256, 282, 1, 1, True);
end;
end;
procedure LoadRecords; //thanks sumillion =D
begin
with Guardian do
begin
Name := 'Stone Guardian';
UpText := 'Cast';
MaxDist := 15;
Color := 5730030;
HueMod := 0.09;
SatMod := 1.55;
LumTol := 4;
MinR := 95; MaxR := 122;
MinG := 69; MaxG := 90;
MinB := 33; MaxB := 53;
MinX := 7.28; MaxX := 11.91;
MinY := 6.96; MaxY := 11.41;
MinZ := 2.46; MaxZ := 4.71;
end;
end;
procedure grabstatue;
begin
for R := 3 to 11 do
mouse(716, 282, R, R, True);//casts grab
repeat
for R := 100 to 600 do
wait(200 + random (R));
Counter:=counter+1;
until FindObjRecord(x, y, Guardian) or (Counter=10);
for R := 1 to 8 do
if FindObjRecord(x, y, Guardian) then
mouse(x, y, R, R, True);
LawsUsed:=counter+1;
end;
procedure TopRightCorner;
begin
for R := 3 to 11 do
mouse(359, 50, R, R, True);
flag;
grabstatue;
end;
procedure TopLeftCornerN;
begin
end;
procedure LeftTopCorner;
begin
for R := 3 to 11 do
mouse(118, 60, R, R, True);//left side top corner
flag;
grabstatue;
end;
procedure LeftBottomCorner;
begin
for R := 3 to 11 do
mouse(114, 290, R, R, True);//left side, bottom corner
flag;
grabstatue;
end;
procedure RightTopCornerN;
begin
end;
procedure RightBottomCorner;
begin
for R := 3 to 11 do
mouse(436, 286, R, R, True);// right side, bottom corner
flag;
grabstatue;
end;
procedure BottomRightCorner;
begin
for R := 3 to 11 do
mouse(382, 320, R, R, True);//bottom side, right corner
flag;
grabstatue;
end;
procedure BottomLeftCorner;
begin
for R := 3 to 11 do
mouse(142, 321, R, R, True);//bottom side left corner
flag;
grabstatue;
end;
procedure ObserveGaurdian;
begin
for R := 3 to 11 do
if FindObjRecord(x, y, Guardian) then
Mouse(x, y, R, R, True);
end;
procedure TalkToGaurdian;
begin
for R := 3 to 11 do
if FindObjRecord(x, y, Guardian) then
begin
Mouse(x, y, R, R, True);
end;
ClickToContinue;
ChatWait
end;
procedure maze1;//not finished
begin
for R := 8 to 19 do
if not loggedin then NextPlayer(Players[CurrentPlayer].Active);
MarkTime(Time);
RadialWalk(395004, 270, 180, 70, 3, 3);
flag;
ObserveGaurdian;
mouse(x,y, 5, 5, True);
wait(3000 + random (R));
TopRightCorner;
wait(7134 + random (R));
LeftTopCorner;
wait(5111 + random (R));
BottomRightCorner;
wait(8000 + random (R))
RightBottomCorner;
wait(5000 + random (R));
TopRightCorner;
wait(6100 + random (R));
LeftTopCorner;
wait(8250 + random (R))
BottomLeftCorner;
wait(8000 + random (R));
TalkToGaurdian;
if TimeFromMark(Time) > 300000 then
players[CurrentPlayer].active:=false;
NextPlayer(Players[CurrentPlayer].Active);
end;
procedure maze2;// not finished
begin
for R := 8 to 19 do
if not loggedin then NextPlayer(Players[CurrentPlayer].Active);
MarkTime(Time);
RadialWalk(395004, 270, 180, 70, 3, 3);
ObserveGaurdian;
BottomRightCorner;
wait(5001 + random (R));
RightBottomCorner;
wait(6002 + random (R));
BottomRightCorner;
wait(4500 + random (R));
LeftBottomCorner;
wait(5002 + random (R));
BottomLeftCorner;
wait(8000 + random (R));
RightBottomCorner;
wait(4200 + random (R));
BottomRightCorner
wait(8300 + random (R));
LeftBottomCorner;
wait(8250 + random (R));
BottomLeftCorner;
wait(3630 + random (R));
RightBottomCorner;
wait(9000 + random (R));
TalkToGaurdian;
if TimeFromMark(Time) > 300000 then
players[CurrentPlayer].active:=false;
NextPlayer(Players[CurrentPlayer].Active);
end;
procedure maze3;
begin
for R := 8 to 19 do
if not loggedin then NextPlayer(Players[CurrentPlayer].Active);
MarkTime(Time);
RadialWalk(395004, 0, 270, 70, 3, 3);
ObserveGaurdian;
LeftTopCorner;
wait(8595 + random (R));
TopLeftCornerN;
wait(5000 + random (R));
LeftTopCorner;
wait(5100 + random (R));
BottomLeftCorner;
wait(6900 + random (R));
LeftBottomCorner;
wait(7899 + random (R));
BottomLeftCorner;
wait(6900 + random (R));
RightTopCornerN;
wait(8000 + random (R));
TopRightCorner;
wait(7000 + random (R));
RightTopCornerN;
wait(6000 + random (R));
TalkToGaurdian;
if TimeFromMark(Time) > 300000 then
players[CurrentPlayer].active:=false;
NextPlayer(Players[CurrentPlayer].Active);
end;
procedure maze4;
begin
for R := 8 to 19 do
if not loggedin then NextPlayer(Players[CurrentPlayer].Active);
MarkTime(Time);
RadialWalk(395004, 0, 270, 70, 3, 3);
ObserveGaurdian;
LeftBottomCorner;
wait(9206 + random (R));
TopRightCorner;
wait(6014 + random (R));
RightTopCornerN;
wait(8547 + random (R));
TopRightCorner;
wait(5984 + random (R));
LeftTopCorner;
wait(5527 + random (R));
TopLeftCornerN;
wait(8956 + random (R));
LeftTopCorner;
wait(4527 + random (R));
TopLeftCornerN;
wait(4556 + random (R));
TalkToGaurdian;
if TimeFromMark(Time) > 300000 then
players[CurrentPlayer].active:=false;
NextPlayer(Players[CurrentPlayer].Active);
end;
procedure maze5;
begin
for R := 8 to 19 do
if not loggedin then NextPlayer(Players[CurrentPlayer].Active);
MarkTime(Time);
RadialWalk(7630858, 0, 270, 70, 3, 3);
ObserveGaurdian;
BottomLeftCorner;
wait(9000 + random (R));
LeftBottomCorner;
wait(7000 + random (R));
TopLeftCornerN;
wait(9000 + random (R));
LeftTopCorner;
wait(7000 + random (R));
BottomLeftCorner;
wait(9000 + random (R));
LeftBottomCorner;
wait(7000 + random (R));
TopLeftCornerN;
wait(10000 + random (R));
TalkToGaurdian;
if TimeFromMark(Time) > 300000 then
players[CurrentPlayer].active:=false;
NextPlayer(Players[CurrentPlayer].Active);
end;
procedure maze6;
begin
for R := 8 to 19 do
if not loggedin then NextPlayer(Players[CurrentPlayer].Active);
MarkTime(Time);
RadialWalk(7630858, 270, 180, 70, 3, 3);
ObserveGaurdian;
RightBottomCorner;
wait(9000 + random (R));
TopRightCorner;
wait(6000 + random (R));
LeftTopCorner;
wait(9000 + random (R));
TopLeftCornerN;
wait(7000 + random (R));
RightTopCornerN;
wait(9000 + random (R));
TopRightCorner;
wait(6000 + random (R));
LeftTopCorner;
wait(9000 + random (R));
TopLeftCornerN;
wait(7000 + random (R));
RightTopCornerN;
wait(9000 + random (R));
TalkToGaurdian;
if TimeFromMark(Time) > 300000 then
players[CurrentPlayer].active:=false;
NextPlayer(Players[CurrentPlayer].Active);;
end;
procedure maze7;
begin
for R := 8 to 19 do
if not loggedin then NextPlayer(Players[CurrentPlayer].Active);
MarkTime(Time);
ObserveGaurdian;
wait(3000 + random (R));
BottomLeftCorner;
wait(7000 + random (R))
LeftBottomCorner;
wait(7000 + random (R));
TopLeftCornerN;
wait(8500 + random (R));
LeftTopCorner;
wait(8000 + random (R));
TopLeftCornerN;
wait(8500 + random (R));
RightTopCornerN;
wait(8500 + random (R));
BottomLeftCorner;
wait(8500 + random (R));
LeftBottomCorner;
wait(8500 + random (R));
BottomLeftCorner;
wait(8500 + random (R));
RightBottomCorner;
wait(8500 + random (R));
BottomLeftCorner;
TalkToGaurdian;
if TimeFromMark(Time) > 300000 then
players[CurrentPlayer].active:=false;
NextPlayer(Players[CurrentPlayer].Active);
end;
procedure maze8;
begin
writeln('working on');
end;
procedure maze9;
begin
if not loggedin then NextPlayer(Players[CurrentPlayer].Active);
RadialWalk(2105598, 270, 180, 70, 3, 3);
ObserveGaurdian;
end;
procedure telekineticmaze;
label
ComeBack;
begin
EnterPortal;
if not loggedin then NextPlayer(Players[CurrentPlayer].Active);
begin
Loadbtms;
ComeBack:
begin
if FindBitmapToleranceIn(mazefinder_1, MMX, MMY, 450, 250, 510, 320, 10) then
maze1;
if FindBitmapToleranceIn(mazefinder_2, MMX, MMY, 450, 250, 510, 320, 10) then
maze2;
if FindBitmapToleranceIn(mazefinder_3, MMX, MMY, 450, 250, 510, 320, 10) then
maze3;
if FindBitmapToleranceIn(mazefinder_4, MMX, MMY, 450, 250, 510, 320, 10) then
maze4;
if FindBitmapToleranceIn(mazefinder_5, MMX, MMY, 450, 250, 510, 320, 10) then
maze5;
if FindBitmapToleranceIn(mazefinder_6, MMX, MMY, 450, 250, 510, 320, 10) then
maze6;
if FindBitmapToleranceIn(mazefinder_7, MMX, MMY, 450, 250, 510, 320, 10) then
maze7;
if FindBitmapToleranceIn(mazefinder_8, MMX, MMY, 450, 250, 510, 320, 10) then
maze8;
if LawsUsed < Law then goto ComeBack;
Freebmps;
end;
end;
end;
procedure enchantmentarena;
begin
writeln('enchantment does not work atm');
end;
procedure alchemyarena;
begin
writeln('alchemy does not work atm');
end;
procedure graveyardarena;
begin
writeln('graveyard does not work atm');
end;
procedure CallArena;
begin
if not LoggedIn then Login;
case arena of
'enchantment': enchantmentarena;
'alchemy': alchemyarena;
'graveyard': graveyardarena;
'maze': telekineticmaze;
end;
end;
procedure antirandoms;
begin
FindNormalRandoms;
if FindFight then EnterPortal;
if FindMod then
begin
writeln('mod found! ending script!');
Logout;
end;
if Finddead then NextPlayer(Players[CurrentPlayer].Active);
end;
begin
SetupSRL;
DeclarePlayers;
mousespeed := 10;
ChatsOff;
SetAutoingDefaults;
CallArena;
end.