SCAR Code:
program Mantheiver;
{.include Srl\Srl.scar}
// will thieve any men(or woman) but works alot better in places with lots
//version = beta
const mancolor = 7736695;//obviously colors of man/woman
const mancolor2 = 7313605;
const mancolor3 = 14194830;
const food = true;//uxse food true or false
const foodcolor = 13158607;// if ^ is true
const hptoeat = 10;// if ^ is true at what hp should u eat
const times = 5;// how many times to pickpocket(doesnt count failed attempts)
var TimesEaten,SuccessfulPickpockets,UnsuccessfulPickPockets,
Thievinglvlstart,Thievinglvlend,thievinglvlsgained,xp: integer;
var MoretoPickpocket: extended;
procedure DeclarePlayers;
begin
HowManyPlayers := 2; //Number of PLAYERS. active or not.
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; //Player to start on.
Players[0].Name := 'username';
Players[0].Pass := 'poop';
Players[0].Nick := 'uxr';
Players[0].Active := True;
Players[1].Name := 'username';
Players[1].Pass := 'lolol';
Players[1].Nick := 'hil';
Players[1].Active := true;
// Players[2].Name := 'UserName';
// Players[2].Pass := 'Password';
// Players[2].Nick := '3-4 letters of UserName';
// Players[2].Active := False;
// Players[3].Name := 'UserName';
// Players[3].Pass := 'Password';
// Players[3].Nick := '3-4 letters of UserName';
// Players[3].Active := False;
// Players[4].Name := 'UserName';
// Players[4].Pass := 'Password';
// Players[4].Nick := '3-4 letters of UserName';
// Players[4].Active := False;
// Players[5].Name := 'UserName';
// Players[5].Pass := 'Password';
// Players[5].Nick := '3-4 letters of UserName';
// Players[5].Active := False;
NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
end;
procedure login;
begin
if (not(loggedin)) then
loginplayer;
end;
function findjail: boolean;
var dacage,x,y: integer;
begin
dacage:=Createbitmapmaskfromtext('da cage',upchars);
if findname=true then
begin
if findbitmapmasktolerance(dacage,x,y,3,3,515,336,0,40) then
Result:=true;
end;
end;
function FindFastRandoms: Boolean; //By WT-Fakawi.
var
i: Integer;
begin
for i := 1 to 8 do
begin
case I of
1: if FindDead then
Result := True;
2: if FindMod then
Result := True;
3: if FindMime then
Result := True;
4: if FindMaze then
Result := True;
5: if FindQuiz then
Result := True;
6: if FindDemon then
Result := True;
7: begin
if NoGameTab then
begin
Result := True;
Players[CurrentPlayer].loc := 'No GameTab';
Logout;
Exit;
end;
end;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8: RC;
end;
wait(1);
end;
end;
procedure FindRandoms;
begin
FindFastRandoms;
FindNormalRandoms;
end;
function waituntil(what: boolean;repeated: integer): boolean;
var i: integer;
begin
i:=0;
repeat
i:=i+1;
begin
wait(1);
end;
until(what = true) or (i=repeated);
result:=true;
end;
function GetLastChatTextblack(chat: string): Boolean;//changed to any color
var
textx, texty: Integer;
begin
if (IsTextInAreaEx(40, 415, 130, 415, textx, texty, '.', 0, smallchars, False,
True, 0, 0, 0)) then
begin
chat := LowerCase(Trim(GetTextAtEx(textx + 8, 415, 0, SmallChars, False,
False, 0, 1, 0, 40, False, tr_allChars)));
Result := True;
end;
end;
function FindPopUp(Option: string): Boolean;//i just edited it so it wouldnt click
var
Top, Bottom: TPoint;
dtmTop, dtmBottom, x, y: Integer;
begin
dtmTop := DTMFromString('78DA63146464606801622C0026CA28006435A' +
'3AA890D7147552345841A90393D04D4880259DD04D4880359ED04' +
'D4280059AD04FC2504644DC4AF06000DC909E0');
dtmBottom := DTMFromString('78DA635CCCC8C070198891406C883B9886893' +
'22E02B22EA1AA8101B89A8540D64522CCB948843984EC02B9F910' +
'01BBA610E1AF6944D80572F311026AE6005967F0DB05007BD4134' +
'5');
if (FindDTM(dtmTop, Top.x, Top.y, 10, 10, 764, 502) and FindDTM(dtmBottom,
Bottom.x, Bottom.y, Top.x, Top.y, 764, 502)) then
if (FindText(x, y, Option, upchars, 0, 0, Bottom.x, Bottom.y)) then
begin
Result := True;
Wait(150 + Random(200));
end else
if (FindText(x, y, 'Cancel', upchars, Top.x, Top.y, Bottom.x, Bottom.y))
then
Mouse(x + 3, y + 2, 4, 3, True);
FreeDTM(dtmTop);
FreeDTM(dtmBottom);
end;
function pickpockets: boolean;
var v,b,r: integer;
begin
r:= createbitmapmaskfromtext('What do you think',upchars);
if Findbitmapmasktolerance(r,v,b,0,0,700,700,5,60) or
(getlastchattextblack('I can')) then
begin
result:=false;
end else;
result:=true;
freebitmap(r);
end;
Function Findandpickpocket(x, y, Color1, color2, color3: integer; name1: string): boolean;
var i,v,b,man: integer;
begin
man:= Createbitmapmaskfromtext(name1,upchars);
i:=0;
repeat
i:=i+1;
if findcolortolerance(x,y,color1,1,1,700,700,2) or
findcolortolerance(x,y,color2,1,1,700,700,2) or
findcolortolerance(x,y,color3,1,1,700,700,2) then
begin
Mouse(x,y,0,0,false);
if findpopup(name1) or
(findbitmapmasktolerance(man,v,b,0,0,516,39,5,50)) then
begin
Popup('ickpock');
wait(1000+random(1000));
end;
if (pickpockets=true) then
begin
findrandoms;
result:=true;
DisguiseScar('successful');
wait(2000+random(1000));
DisguiseScar('Trying again');
successfulPickpockets:=successfulPickpockets+1;
disguisescar(inttostr(successfulpickpockets));
end else;
if (pickpockets=false) then
begin
findrandoms;
Result:=false;
UnsuccessfulPickpockets:= UnsuccessfulPickpockets+1;
disguisescar(inttostr(successfulpickpockets)+' '+inttostr(unsuccessfulpickpockets));
end;
end;
until(i>=10);
end;
Function checkHp(Eatat: integer): boolean;
var l: integer;
Begin
Gametab(2);
l:=getHp;
if l <= Eatat then
begin
result:=false;
end else;
result:=true;
end;
function eat(coloroffood: integer): boolean;
var x,y: integer;
begin
Findcolortolerance(x,y,coloroffood,1,1,700,700,3);
wait(50+random(30));
MMouse(x,y,0,0);
if isuptext('at') then
begin
Mouse(x,y,0,0,true);
result:=true;
end else;
result:=false;
end;
procedure rotate;
begin
case random(4) of
1: makecompass('w');
2: makecompass('s');
3: makecompass('n');
4: makecompass('e');
end;
end;
procedure eating;
begin
if (food = true) then
begin
if (checkhp(Hptoeat) = false) then
begin
eat(foodcolor);
Timeseaten:=timeseaten+1;
end;
end else;
end;
function pickpocket: boolean;
begin
repeat
begin
if Findandpickpocket(x,y,mancolor,mancolor2,mancolor3,'an') = false then
begin
result:=false;
rotate;
end else;
if Findandpickpocket(x,y,mancolor,mancolor2,mancolor3,'an') = true then
result:=true;
end;
until(successfulpickpockets=times)
end;
Procedure Progress;
begin
cleardebug;
Thievinglvlsgained:=(thievinglvlstart-thievinglvlend);
Xp:=Xptilnextlevel('thieving',false);
Moretopickpocket:=(xp/8);
Writeln('Auto Thiever By: Jhildy');
Writeln(Inttostr(successfulpickpockets)+' sucessful pickpockets');
writeln(inttostr(unsuccessfulpickpockets)+' unsucessful pickpockets');
Writeln('Gained '+inttostr(thievinglvlsgained)+' thieving levels');
Writeln('ate '+inttostr(timeseaten)+' times');
writeln(inttostr(Xp)+' xp till next thieving level');
writeln(Floattostr(Moretopickpocket)+' more men to pickpocket until next level');
end;
procedure main;
begin
SetupSRL;
activateClient;
Declareplayers;
login;
SuccessfulPickpockets:=0;
unSuccessfulPickpockets:=0;
SetRun(true);
ThievinglvlStart:=GetSkillLevel('thieving');
pickpocket;
ThievingLvlend:=getSkilllevel('thieving');
Progress;
end;
begin
main;
SRLRandomsReport;
end.