SCAR Code:
program New;
{.include srl/srl.scar}
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := '' ;
Players[0].Pass := '' ;
Players[0].Nick := '' ;
Players[0].Pin := '' ;
end;
procedure w(time, randomtime: integer);
begin
wait(time+random(randomtime));
end;
procedure debug(text: string);
begin
Writeln('.................................................');
Writeln('Time: ' + TimeRunning + '.');
Writeln('Debug: ' + text + '.');
end;
procedure CustomGameTab(WhichTab: String);
begin
case LowerCase(WhichTab) of
'inv' : MouseBox(646, 172, 669, 200, 1);
'gear' : MouseBox(675, 172, 697, 200, 1);
'stats' : MouseBox(555, 172, 578, 200, 1);
end;
end;
function AntiBan_RandomGameTab: string;
begin
case random(3) of
0: result := 'inv';
1: result := 'gear';
2: result := 'stats';
end;
end;
function Bank: boolean;
var
failsafe, i: integer;
begin
for i := 0 to 2 do
begin
OpenBankFast('feb');
failsafe := 0;
MarkTime(FailSafe);
repeat
wait(10);
until((BankScreen)or(PinScreen)or(TimeFromMark(FailSafe)>= 30000))
if((BankScreen)or(PinScreen))then
begin
break;
w(1000, 1000);
DepositAirs;
WithDrawEss;
end;
end;
end;
begin
SetUpSrl;
DeclarePlayers;
LoginPlayer;
Bank;
CustomGameTab(AntiBan_RandomGameTab);
end.
SCAR Code:
//-----------------------------------------------------------------//
//-- Scar Standard Resource Library --//
//-- ยป Math Routines --//
//-----------------------------------------------------------------//
// * procedure LoadCoSineArrays; // * by Mutant Squirrle
// * function CreateTPAFromText(Txt : String; Chars : Integer) : TPointArray; // * by Raymond
// * function GetSplinePt(Points: TPointArray; Theta: Extended): TPoint; // * by BenLand100
// * function MakeSplinePath(Points: TPointArray; ThetaInc: Extended): TPointArray; // * by BenLand100
// * function MidPoints(Path: TPointArray; MaxDist: Integer): TPointArray; // * by BenLand100
// * function InAbstractBox(x1, y1, x2, y2, x3, y3, x4, y4: Integer; x, y: Integer): Boolean; // * by BenLand100
// * function inAngle(Origin: TPoint; Angle1, Angle2, Radius1, Radius2: Extended; X, Y: Integer): Boolean; // * by BenLand100
// * function Sine(degrees: Integer): Extended; // * by ?
// * function Cose(degrees: Integer): Extended; // * by ?
// * Function MMToMS(MM: TPoint): TPoint; // * by N1ke!
Var
SineArray, Cosearray: Array[0..360] Of Extended;
{*******************************************************************************
procedure LoadCoSineArrays;
By: Mutant Squirrle
Description: Loads arrays for use with Radial- and LinearWalk.
*******************************************************************************}
procedure LoadCoSineArrays;
var
i: Integer;
begin
for i := 0 to 360 do
begin
Sinearray[i] := Sin(i * Pi / 180);
Cosearray[i] := Cos(i * Pi / 180);
end;
end;
{*******************************************************************************
Function CreateTPAFromText(Txt : String; Chars : Integer) : TPointArray;
By: MastaRaymond
Description: Returns the TPointArray of the inputted Text. Needs Wizzyplugin
*******************************************************************************}
Function CreateTPAFromText(Txt : String; Chars : Integer) : TPointArray;
var
TempBMP : integer;
begin;
TempBMP := CreateBitmapMaskFromText(Txt,Chars);
Result := CreateTPAFromBMP( GetBitmapDC(TempBMP));
FreeBitmap(TempBMP);
end;
{*******************************************************************************
function GetSplinePt(Points: TPointArray; Theta: Extended): TPoint;
By: BenLand100
Description: Returns the point on a spline, defined by control points Points, at Theta
*******************************************************************************}
function GetSplinePt(Points: TPointArray; Theta: Extended): TPoint;
var
i, n: Integer;
XTemp, YTemp: Extended;
begin
n := GetArrayLength(Points) - 1;
for i := 0 to n do
begin
XTemp := XTemp + (BinCoe(n, i) * Points[i].x * Pow((1 - Theta), n - i) *
Pow(Theta, i));
YTemp := YTemp + (BinCoe(n, i) * Points[i].y * Pow((1 - Theta), n - i) *
Pow(Theta, i));
end;
Result.x := Round(XTemp);
Result.y := Round(YTemp);
end;
{*******************************************************************************
function MakeSplinePath(Points: TPointArray; ThetaInc: Extended): TPointArray;
By: BenLand100
Description: Returns a spline, defined by control points Points, incrementing theta by ThetaInc
*******************************************************************************}
function MakeSplinePath(Points: TPointArray; ThetaInc: Extended): TPointArray;
var
i: Integer;
t: Extended;
temp, last: TPoint;
done: Boolean;
begin
repeat
if t >= 1 then
begin
t := 1;
done := True;
end;
temp := GetSplinePt(Points, t);
if ((temp.x <> last.x) and (temp.y <> last.y)) then
begin
i := i + 1;
SetArrayLength(Result, i);
Result[i - 1] := temp;
last := temp;
end;
t := t + ThetaInc;
until (done)
end;
{*******************************************************************************
function MidPoints(Path: TPointArray; MaxDist: Integer): TPointArray;
By: BenLand100
Description: Adds midpoints to Path so no distance on it is greater than MaxDist
*******************************************************************************}
function MidPoints(Path: TPointArray; MaxDist: Integer): TPointArray;
var
i, c: Integer;
last: TPoint;
done: Boolean;
begin
if (getarraylength(path) > 0) then
begin
repeat
last := Path[0];
done := True;
for i := 1 to GetArrayLength(Path) - 1 do
begin
if Sqrt(Pow((Path[i].x - last.x), 2) + Pow((Path[i].y - last.y), 2)) >
MaxDist then
begin
done := False;
SetArrayLength(Path, GetArrayLength(Path) + 1);
for c := GetArrayLength(Path) - 1 downto i + 1 do
begin
Path[c] := Path[c - 1];
end;
Path[i].x := Round((last.x + Path[i + 1].x) / 2);
Path[i].y := Round((last.y + Path[i + 1].y) / 2);
end;
last := Path[i];
end;
until (done);
end;
Result := Path;
end;
{*******************************************************************************
function InAbstractBox(x1, y1, x2, y2, x3, y3, x4, y4: Integer; x, y: Integer): Boolean;
By: BenLand100
Description: Returns true if point x, y is in an abstract box defined by x1, y1, x2, y2, x3, y3, x4, y4
An abstract box example:
x1, y1 x2, y2
+--------+
\ /
\ /
+--+
x4, y4 x3, y3
*******************************************************************************}
function InAbstractBox(x1, y1, x2, y2, x3, y3, x4, y4: Integer; x, y: Integer):
Boolean;
var
U, D, R, L: Boolean;
UB, DB, LB, RB, UM, DM, LM, RM: Extended;
begin
UM := (-y1 - -y2) div (x1 - x2);
DM := (-y4 - -y3) div (x4 - x3);
if x1 - x4 <> 0 then
begin
LM := (-y1 - -y4) div (x1 - x4);
end else
begin
LM := Pi;
end;
if x2 - x3 <> 0 then
begin
RM := (-y2 - -y3) div (x2 - x3);
end else
begin
RM := Pi;
end;
UB := -(UM * x1) + -y1
RB := -(RM * x2) + -y2;
DB := -(DM * x3) + -y3;
LB := -(LM * x4) + -y4;
if (UM * x + UB >= -y) then U := True;
if (DM * x + DB <= -y) then D := True;
if (RM <> Pi) and (RM >= 0) and (RM * x + RB <= -y) then R := True;
if (RM <> Pi) and (RM < 0) and (RM * x + RB >= -y) then R := True;
if (RM = Pi) and (x < x2) then R := True;
if (LM <> Pi) and (LM >= 0) and (LM * x + LB >= -y) then L := True;
if (LM <> Pi) and (LM < 0) and (LM * x + LB <= -y) then L := True;
if (LM = Pi) and (x > x1) then L := True;
if U and D and L and R then Result := True;
end;
{*******************************************************************************
function inAngle(Origin: TPoint; Angle1, Angle2, Radius1, Radius2: Extended; X, Y: Integer): Boolean;
By: BenLand100
Description: Returns True if X and Y fall within Radius1 to Radius2 and Angle1 to Angle2
Note1: EVERYTHING IS RELATIVE TO ORIGIN!!!
Note2: This checks in the smallest segment of the circle formed by Angle1 and Angle 2
Example: (Assume the origin is 0,0)
inAngle(0, 90, 5, 10, origin, 5, 5) = true;
inAngle(0, 90, 0, 5, origin, 5, 5) = false;
inAngle(90, 0, 5, 10, origin, 5, 5) = false;
*******************************************************************************}
function inAngle(Origin: TPoint; Angle1, Angle2, Radius1, Radius2: Extended; x,
y: Integer): Boolean;
var
PTemp: PPoint;
OTemp: TPoint;
MinAngle, MaxAngle, MinRadius, MaxRadius: Extended;
begin
Angle1 := FixD(Angle1);
Angle2 := FixD(Angle2);
MinAngle := Angle1;
if Angle1 > Angle2 then MinAngle := Angle2;
MaxAngle := Angle1;
if Angle1 < Angle2 then MaxAngle := Angle2;
MinRadius := Radius1;
if Radius1 > Radius2 then MinRadius := Radius2;
MaxRadius := Radius1;
if Radius1 < Radius2 then MaxRadius := Radius2;
OTemp.x := x;
OTemp.y := y;
PTemp := ToPolarOffset(OTemp, Origin);
if (PTemp.R >= MinRadius) and (PTemp.R <= MaxRadius) then
if (PTemp.T >= MinAngle) and (PTemp.T <= MaxAngle) then
Result := True;
end;
{*******************************************************************************
function Sine(degrees: Integer): Extended;
By:
Description:
*******************************************************************************}
function Sine(Degrees: Integer): Extended;
begin
Result := sinearray[Trunc(FixD(Degrees))];
end;
{*******************************************************************************
function Cose(degrees: Integer): Extended;
By:
Description:
*******************************************************************************}
function Cose(Degrees: Integer): Extended;
begin
Result := cosearray[Trunc(FixD(Degrees))];
end;
{*******************************************************************************
Function MMToMS(MM: TPoint): TPoint;
By: N1ke!
Description: Turns a Minimap point into a close MS point.
*******************************************************************************}
Function MMToMS(MM: TPoint): TPoint;
var
X, Y: Integer;
Dis: TPoint;
begin
X := ((MM.X - 647));
Y := ((MM.Y - 84));
Dis := Point( (MMCX - MM.X)*-1, (MMCY - MM.Y)*-1);
Result := Point(Round((259.5 + X)+ Dis.X*10), Round((170.0 + Y)+ Dis.Y*6.5));
If Not IntInBox(Result.X, Result.Y, IntToBox(MSX1, MSY1, MSX2, MSY2))then
Result := Point(-1, -1);
end;
And i get