SCAR Code:
{Thanks to Smartzkid for all the help and looking over of my script}
program HSAutoFighter;
{.include srl/srl.scar}
{.include srl/srl/skill/fighting.scar}
var
Killed: integer;
var
BoneBMP: integer;
var
x, y: integer;
const
Color1 = 13094607;//1st color of monster
Color2 = 4803408;
Color3 = 6057843;
MonsterName = 'Guard';
ToKill = 25;
//Declares How Many Players//
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name :=''; //Character name
Players[0].Pass :=''; //Character PAss
Players[0].Nick :=''; //Nickname 3 Letter of char name
Players[0].Active:=True;
WriteLn('Using '+ IntToStr(HowManyPlayers) +' Players');
end;
procedure HyperSecretTAG;
begin
ClearDebug;
Writeln(' _ _ _____ _ ');
Writeln('| | | | / ___| | | ');
Writeln('| |_| |_ _ _ __ ___ _ __\ `--. ___ ___ _ __ ___| |_');
Writeln('| _ | | | | ''_ \ / _ \ ''__|`--. \/ _ \/ __| ''__/ _ \ __|');
Writeln('| | | | |_| | |_) | __/ | /\__/ / __/ (__| | | __/ |_ ');
Writeln('\_| |_/\__, | .__/ \___|_| \____/ \___|\___|_| \___|\__|');
Writeln(' __/ | | ');
Writeln(' |___/|_| ');
Writeln('HyperSecret''s AutoFighter!');
end;
procedure LoadBMP;
begin
BoneBMP := BitmapFromString(1, 10, 'C0B7B6A89DFFAEA2FFC9C2FFCF' +
'C9C9D1CBCBCCC5C4E2DDDEC5BDBDB5AAA9');
end;
function HSBone(var HsX, HsY :integer; Name1, Name2: String; HsBMP, HsX1, HsY1, HsX2, HsY2: integer): Boolean; //refered to fawaki's post
var
HsAcc, HsRef: Extended;
HsXT, HsYT, Tries, Tol: Integer;
begin
HsRef := 0.9;
Tol := 0;
for Tries := 1 to 5 do
begin
FindDeformedBitmapToleranceIn(HsBMP, HsXT, HsYT, HsX1, HsY1, HsX2, HsY2, Tol, 2, True, HsAcc);
if (HsAcc >= HsRef) then
begin
MMouse(HsXT, HsYT, 0, 0);
if (IsUpText(Name1) or IsUpText(Name2)) then
begin
HsX := HsXT
HsY := HsYT;
result := true;
Exit;
end;
end;
end;
end;
procedure HSPickBone;
begin
if(HSBone(x, y, 'Bon', 'one', BoneBMP, MSX1, MSY1, MSX2, MSY2))then
begin
Mouse(x, y, 0, 0, false)
Wait(50 + random(50));
ChooseOption('Bone');
Wait(50 + random(100));
end;
end;
function HSFighting(Name: string; color, maxtol, maxtime: integer): boolean;
var
box: TBoxArray;
tolerance, time, HSx, HSy: integer;
begin
result := false;
MarkTime(time);
repeat
if(FindColorSkipBoxArrayTolerance(HSx, HSy, color, msx1, msy1, msx2, msy2, tolerance, box)) then
begin
MMouse(x, y, 3, 3);
wait(50 + random(250));
if(IsUpText(Name))then
begin
result := true;
GetMousePos(x, y);
Mouse(x, y, 0, 0, true);
end else
begin
SetLength(box, Length(box) + 1);
box[Length(box) - 1].X1 := x - 15;
box[Length(box) - 1].Y1 := y - 15;
box[Length(box) - 1].X2 := x + 15;
box[Length(box) - 1].Y2 := y + 15;
end;
end else
tolerance := tolerance + 1;
wait(50);
until(tolerance > maxtol) or (TimeFromMark(time) > maxtime);
end;
procedure HSAttack;
var
MonsterColors: array[0..2] of integer;
i: Integer;
TimeToKill: Integer;
begin
MonsterColors[0] := color1;
MonsterColors[1] := color2;
MonsterColors[2] := color3;
MarkTime(TimeToKill);
Killed := 0;
repeat
HighestAngle;
for i := 0 to 2 do
begin
if(HSFighting(MonsterName, MonsterColors[i], 15, 2500))then
begin
OutFight;
Killed := Killed + 1;
end;
end;
wait(10);
until (Killed >= ToKill) or (TimeFromMark(TimeToKill) > 300000+random(30000));
end;
procedure SetUp;
begin
SetupSRL;
HyperSecretTAG;
DeclarePlayers;
if(not(loggedin))then LoginPlayer;
end;
begin
SetUp;
HSAttack;
end.