Simba Code:
program DeathEsswraithExtractor;
{$DEFINE SMART}
{$i srl/srl.simba}
var
startxp,xph,xp,t: integer;
procedure DeclarePlayers();
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; // Your RuneScape Account Name
Pass := ''; // Your RuneScape Account Password
Active := True; // Use in the Script. True / False.
end;
end;
(* Credits to Flight *)
procedure BrakeWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, targetArea: extended);
var
veloX,veloY,windX,windY,veloMag,dist,randomDist,lastDist: extended;
lastX,lastY,MSP,W,maxStep,D: integer;
sqrt2,sqrt3,sqrt5: extended;
begin
MSP := MouseSpeed;
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
repeat
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
D := Random((Round(dist)/3));
if (D > 100) then
D := RandomRange(90, 100);
if (D < 5) then
D := RandomRange(5, 8);
maxStep := D;
if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
end;
veloX:= veloX + windX;
veloY:= veloY + windY;
veloX:= veloX + gravity * (xe - xs) / dist;
veloY:= veloY + gravity * (ye - ys) / dist;
if hypot(veloX, veloY) > maxStep then
begin
randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
veloMag:= sqrt(veloX * veloX + veloY * veloY);
veloX:= (veloX / veloMag) * randomDist;
veloY:= (veloY / veloMag) * randomDist;
end;
lastX:= Round(xs);
lastY:= Round(ys);
xs:= xs + veloX;
ys:= ys + veloY;
if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
MoveMouse(Round(xs), Round(ys));
W := (Random(100/MSP))*3;
if (W < 5) then
W := 5;
wait(W);
lastdist:= dist;
until(hypot(xs - xe, ys - ye) < 1)
if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
MoveMouse(Round(xe), Round(ye));
MouseSpeed := MSP;
end;
(* Credits to Flight *)
procedure BrakeMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y: integer;
begin
randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
GetMousePos(X, Y);
BrakeWindMouse(X, Y, eX, eY, 9, 5, 10.0 / randSpeed, 15.0 / randSpeed, 10.0 * randSpeed);
end;
function FindMonster(var x, y : Integer) : Boolean;
var
a, b, c ,h: Integer;
TPA : TPointArray;
ATPA : T2DPointArray;
MP : TPoint;
tmpCTS : Integer;
begin
if(not(LoggedIn))then Exit;
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.04, 0.58);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 5278586, MSX1, MSY1, MSX2, MSY2, 26);
ATPA := TPAtoATPAEx(TPA, 20, 20);
SortATPASize(ATPA,True);
H := High(ATPA);
for a := 0 to H do
Begin
MiddleTPAEx(atpa[a], X, Y);
MMouse(X,Y,5,5);
If (WaitUpTextMulti(['eath ess', 'iphon De', 'ath essw', 'Siphon Death esswraith'], 750)) Then
Begin
ClickMouse2(True);
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Result:= True;
Exit;
End;
End;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;
procedure AntiBan();
begin
if(not(LoggedIn))then Exit;
FindNormalRandoms;
case (Random(350)) of
0 : RandomRClick;
1 : HoverSkill('random', False);
2 : ExamineInv;
3 : MouseSpeed := (RandomRange(10, 12));
4 : begin HoverSkill('Runecrafting', False); Wait(RandomRange(2000, 4000)); end;
5 : begin PickUpMouse; SleepAndMoveMouse(1500 + Random(500)); end;
6 : begin GameTab(tab_Stats); Wait(1500 + Random(500)); GameTab(tab_Inv); end;
7 .. 14 : HoverSkill('Runecrafting', False);
15 .. 40 : Wait(RandomRange(750, 2000));
41: begin BoredHuman; SetAngle(SRL_ANGLE_HIGH); end;
end;
end;
Procedure Proggy;
Begin
XP := (GetXPBarTotal - startxp);
XPH:= Round(((XP) / (GetTimeRunning / 1000)) * 3600);
Writeln('Time Running: ' + TimeRunning);
Writeln('Experience Earned: ' + IntToStr(XP));
Writeln('Experience/Hour: ' + IntToStr(XPH));
Marktime(t);
End;
function isSiphoning: Boolean;
var
B: TBox;
APS : Integer;
begin
B := IntToBox(MSCX - 10, MSCY - 25, MSCX + 15, MSCY + 15);
APS := AveragePixelShift(B, 250, 250);
Result := (APS > 360);
end;
procedure MainLoop();
var
x, y : Integer;
begin
repeat
if timefrommark(T)>120000 then
Proggy;
if(FindMonster(x, y))then
begin
Wait(RandomRange(500, 750));
Repeat
wait(100);
FindnormalRandoms;
Until Not(Isuptextmulticustom(['Death','th es','eath']));
end;
FindNormalRandoms;
until(not(LoggedIn));
end;
begin
Smart_Server := 10;
Smart_Members := True;
Smart_Signed := True;
SetupSRL();
ActivateClient();
DeclarePlayers();
LoginPlayer();
while(not(RSReady()))do
Wait(9000);
startxp:=getxpbartotal;
marktime(t);
SetAngle(SRL_ANGLE_HIGH);
MainLoop();
end.