Code:
program PC;
{$DEFINE SMART8}
{$I SRL-OSR/SRL.Simba}
{$I SRL-OSR\SRL\misc\SmartGraphics.simba}
{$I SRL-OSR/SRL/misc/al_functions.simba}
{$I SRL-OSR/SRL/Reflection/Reflection.simba}
// Welcome To Elfyyy's PC Script!
// Please report any and all bugs to thread
// Please Read The Thread For Full Instructions
// IF YOU DID NOT DOWNLOAD AL_FUNCTIONS OR REFLECTION INCLUDE
// IT WILL NOT RUN! DO NOT POST ON THREAD, READ THE THREAD FIRST
// NOW USES THE "OFFICIAL" UNOFFICAL REFLECTION INCLUDE...MUST DOWNLOAD <READ THREAD>
var
Rewards:Array Of String;
const
Name = 'Iemz Pc'; //Pest Control Friend chat channel
TakeBreaks = True;//Take Breaks
Time2Break = 150; //Time To Play Until Breaking(Randomness Is Added)
TimeOfBreak = 30; // Length Of Break(Randomness Is Added)
procedure DeclarePlayer;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := 'Usernamer';//Username
Players[0].Pass := 'Passwordr';//Password
Players[0].Active := True;//Keep true
Players[0].Strings := ['eagle eye', 'ultimate strength']; //Prayers To Use.. '' Is None at all, all lowercase
Players[0].Member := True; //Attack Portals? I Would Only Advise If A High Level
Rewards := ['hitpoints']; //GO TO LINE 584 OR READ THREAD!!!. Will Go In Order Until All Bought & Will Stop.
// If You Only Put One Then It Will Keep Playing & Buying Until Script Is Stopped!
end;
const
VERSION = '3.2';
USE_AUTO_CHECKER = True;
DARK_DEFILER = 0;
LIGHT_DEFILER = 1;
TORCHER = 2;
GREEN_SHIFTER = 3;
RED_SHIFTER = 4;
PUKE_SPLATTER = 5;
MID_SPLATTER = 6;
BRIGHT_SPLATTER = 7;
SPINNER = 8;
PORTAL_EAST = 0;
PORTAL_WEST = 1;
PORTAL_SOUTHEAST = 2;
PORTAL_SOUTHWEST = 3;
type
Tmonster = record
MainColor, SideColor: integer;
Names: string;
end;
Tportal = record
MainColor, SideColor, DTM, X1, Y1, X2, Y2: integer;
Names, Message: string;
Active: Boolean;
MainColorTPA, SideColorTPA: TPointArray;
end;
TmonsterArray = array of Tmonster;
TportalArray = array of Tportal;
var
Status: string;
ProgBMP, BreakTime, Prog2BMP,RewardNum, BreakRounds, TotalBreaks, Bought, TimeGone, BoatAttempts, dtmIBoat, GamesWon, GamesLost, Zeal, ZealPH, CurrentW, HotW, EastCross, WestCross, SouthEastCross, SouthWestCross: integer;
Monsters: TmonsterArray;
Portals: TportalArray;
Center, Home, East, SEast, SWest, West: TPoint;
CheckPoints: Boolean;
procedure WhichPortal; //Determines Which Portal Is Currently Open
var
x, y, Portal: integer;
begin
if not LoggedIn then
Exit;
for Portal := PORTAL_EAST to PORTAL_SOUTHWEST do
begin
if findblackchatmessage(Portals[Portal].Message) then
Portals[Portal].Active := True;
if Portals[Portal].Active then
if (FindDTM(Portals[Portal].Dtm, x, y, Portals[Portal].X1, Portals[Portal].Y1, Portals[Portal].X2, Portals[Portal].Y2)) then
Portals[Portal].Active := False;
end;
end;
procedure CallProg;
begin
Cleardebug;
TimeGone := ((GetTimeRunning - BreakTime) / 1000);
Zeal := GamesWon * 2;
ZealPH := (3600 * (Zeal)) / ((TimeGone));
//SMART_DrawBitmap(True, ProgBMP, Point(396, 273));
//SMART_DrawTextMulti(False, False, [MsToTime(GetTimeRunning, Time_Short)], Point(411, 314), UpChars, 1);
writeln('elfyyys Pest Control Script!');
writeln('Currently using version:' + version);
Writeln('Time Running: ' + TimeRunning);
Writeln('Status:' + Status) Writeln('Played ' + IntToStr(GamesWon + GamesLost) + ' Games So Far!');
Writeln('Won ' + IntToStr(GamesWon) + ' games and Lost ' + IntToStr(GamesLost) + ' games!');
Writeln('Earned ' + IntToStr(Zeal) + ' Points, Thats ' + IntToStr(ZealPH) + ' Points P/h!');
Writeln('Bought ' + IntToStr(Bought) + ' Rewards');
end;
function AmNotCombat: Boolean;
begin
CallProg;
if not LoggedIn then
Exit;
WhichPortal;
Result := True
if R_WaitForAnimation(2000) then
Result := False;
end;
procedure SetupMonsters;
begin
SetArrayLength(Monsters, 9);
with Monsters[DARK_DEFILER] do
begin
MainColor := 5059661;
SideColor := 12506324;
Names := 'Dark Defiler';
end;
with Monsters[LIGHT_DEFILER] do
begin
MainColor := 5393488;
SideColor := 10338240;
Names := 'Light Defiler';
end;
with Monsters[TORCHER] do
begin
MainColor := 4868360;
SideColor := 1121946;
Names := 'Torcher';
end;
with Monsters[GREEN_SHIFTER] do
begin
MainColor := 1123584;
SideColor := 881511;
Names := 'Green Shifter';
end;
with Monsters[RED_SHIFTER] do
begin
MainColor := 1319850;
SideColor := 5664922;
Names := 'Red Shifter';
end;
with Monsters[PUKE_SPLATTER] do
begin
MainColor := 6124685;
SideColor := 5475205;
Names := 'Puke Splatter';
end;
with Monsters[MID_SPLATTER] do
begin
MainColor := 6912702;
SideColor := 6253739;
Names := 'Mid Splatter';
end;
with Monsters[BRIGHT_SPLATTER] do
begin
MainColor := 9988277;
SideColor := 8147606;
Names := 'Bright Splatter';
end;
with Monsters[SPINNER] do
begin
MainColor := 7693164;
SideColor := 8094630;
Names := 'Spinner';
end;
end;
procedure SetupPortals;
begin
SetArrayLength(Portals, 4);
with Portals[PORTAL_EAST] do
begin
MainColor := 13296869;
SideColor := 2604223;
Names := 'SouthEast Portal';
Message := 'blue';
DTM := EastCross;
Active := False;
X1 := 392;
Y1 := 33;
X2 := 419;
Y2 := 60;
end;
with Portals[PORTAL_WEST] do
begin
MainColor := 11773863;
SideColor := 13377746;
Names := 'West Portal';
Message := 'purple';
DTM := WestCross;
Active := False;
X1 := 355;
Y1 := 31;
X2 := 387;
Y2 := 61;
end;
with Portals[PORTAL_SOUTHEAST] do
begin
MainColor := 12959933;
SideColor := 10390920;
Names := 'East Portal';
Message := 'yellow';
DTM := SouthEastCross;
Active := False;
X1 := 428;
Y1 := 31;
X2 := 461;
Y2 := 60;
end;
with Portals[PORTAL_SOUTHWEST] do
begin
MainColor := 14344159;
SideColor := 7820980;
Names := 'SouthWest Portal';
Message := 'red';
DTM := SouthWestCross;
Active := False;
X1 := 470;
Y1 := 30;
X2 := 500;
Y2 := 60;
end;
end;
procedure ElfMouse(x, y: integer);//AntiBan Mouse Function
var
Cx, Cy: Integer;
begin
GetMousePos(Cx, Cy);
AL_SetMouseSpeed(20);
case Random(5) of
0: AL_BrakeWindMouse(Cx, Cy, x, y, 15 + Random(10), 5 + Random(15), 5, 10, 5, True);
1: AL_HumanWindMouse(Cx, Cy, x, y, 15 + Random(10), 5 + Random(15), 5, 10, 5);
2: AL_AccurateMMouse(IntToPoint(x, y), 2, 2);
3: AL_HumanMMouse(IntToPoint(x, y), 2, 2);
4: AL_ShiftWindMouse(Cx, Cy, x, y, 15 + Random(10), 5 + Random(15), 5, 10, 20, 5);
5: AL_MissMouse(IntToPoint(x, y), 2, 2);
end;
end;
function SetMyRun(Run: Boolean): Boolean;
var
CCount: Integer;
begin
Result := False;
if (GameTab(tab_Options)) then
begin
CCount := CountColorTolerance(2369440, 649, 415, 680, 446, 20);
if (Run) then
begin
if (CCount<1) then
MouseBox(654, 420, 677, 443, mouse_left);
Result := True;
end else
begin
if (CCount>1) then
MouseBox(654, 420, 677, 443, mouse_left);
Result := True;
end;
end;
end;
procedure JoinClan(Name: string);
var
x, y, l, w, wx: integer;
begin
if not LoggedIn then
exit;
FTab(tab_Clan);
if FindColorSpiralTolerance(x, y, 6619135, 605, 225, 675, 245, 5) then
Exit;
ElfMouse(600, 450)
wait(randomRange(590,760));
ClickMouse2(Mouse_Left);
TypeSendEx(Name, True);
CallProg;
MarkTime(l);
Repeat
if not LoggedIn then
Exit;
Wait(100);
if FindColorSpiralTolerance(x, y, 6619135, 605, 225, 675, 245, 5) then
exit;
if FindChatBoxText('anned',8,clBlack) then
begin
wait(randomrange(1600, 2800));
Status := 'BANNED...From Friend chat ;) Waiting 1 hour to try again';
CallProg;
Logout;
w := (60 * 60000);
wx := (10 * 60000);
wait(w + random(wx));
LogInPlayer;
SetAngle(0);
CurrentW := (CurrentWorld);
Joinclan(Name);
Wait(RandomRange(5000, 7500));
end;
Until(FindColorSpiralTolerance(x, y, 6619135, 605, 225, 675, 245, 5)or (TimeFromMark(l) > 20000))
end;
procedure MyLogIn;
begin
if not LoggedIn then
begin
LogInPlayer;
SetAngle(0);
CurrentW := (CurrentWorld);
Joinclan(Name);
Wait(RandomRange(5000, 7500));
end;
end;
function BreakHandler(BreakIn, BreakFor, RandBreakIn, RandBreakFor: Integer): Boolean;// Writen By Echo, Edited By Me
var
w, x, y, z: Integer;
begin
if not LoggedIn then
Exit;
if not TakeBreaks then
Exit;
w := (BreakIn * 60000);
x := (BreakFor * 60000);
y := RandomRange( - RandBreakIn * 60000, RandBreakIn * 60000);
z := RandomRange( - RandBreakFor * 60000, RandBreakFor * 60000);
begin
if (GetTimeRunning < ((w) + (y) + BreakRounds)) then
Exit
else if (GetTimeRunning > ((w) + (y) + BreakRounds)) then
begin
CallProg;
BreakTime := BreakTime + (W + Z);
Status := ('Taking a break');
Writeln('It is ' + thetime);
writeln('Taking a break for ' + IntToStr(((x) + (z)) / 60000) + ' minutes.');
writeln('The next break will occur in ' + IntToStr(((w) + (x)) / 60000) + ' minutes.');
Logout;
Wait((x) + (z));
MyLogIn;
Result := LoggedIn;
IncEx(BreakRounds, (w) + (x));
IncEx(TotalBreaks, 1);
end;
end;
end;
function OpenWScreen: Boolean;
var
x, y: integer;
begin
CallProg;
Result := False;
if findcolortolerance(x, y, 3166829, 350, 190, 435, 220, 10) then
Result := True;
if Loggedin then
Exit;
if not result then
begin
CallProg;
Mmouse(54, 475, 1, 1);
wait(200);
ClickMouse2(Mouse_Left);
Wait(1500);
Result := True;
end;
end;
procedure MyWorld(W: Integer);//Pick World On WOrld Screen
var
WArray: array of Integer;
I: Integer;
begin
CallProg;
Warray := [301, 302, 303, 304, 305, 306, 308, 309, 310, 311, 312, 313, 314, 316, 317, 318, 319, 320, 321, 322, 325, 326, 327, 328, 329, 330, 333, 334, 335, 336, 337, 338, 341, 342, 343, 344, 345, 346, 349, 350, 351, 352, 353, 354, 357, 358, 359, 360, 361, 362, 365, 366, 367, 368, 369, 370, 373, 374, 375, 376, 377, 378];
if InIntArrayEx(WArray, i, W) then
begin
ElfMouse(250 + ((i / 16) * 90), 80 + (24 * (i mod 16)));
Wait(1000)
ClickMouse2(Mouse_Left);
Exit;
end
else
i := 28;
ElfMouse(250 + ((i / 16) * 90), 80 + (24 * (i mod 16)));
Wait(1000)
ClickMouse2(Mouse_Left);
Exit;
end;
function World: Integer;//Determines What World Most People Are In If They Are Not In Our World-Credit Turpinator
var
j, i, x, y, tens, ones, L, dcount, maxloc, finalloc: Integer;
Main, dif, ZeroToNine: TIntegerArray;
begin
CallProg;
if not LoggedIn then
Exit;
SetLength(Main, 10);
SetLength(ZeroToNine, 10);
ZeroToNine[0] := BitmapFromString(5, 8, 'meJxjYGBI+f8fghjAbAYYgAtShcuAahEAGQoq5Q==');
ZeroToNine[1] := BitmapFromString(3, 8, 'meJxjYGBI+f+fAUxCGAwwEWIYEF1ABABdJBo3');
ZeroToNine[2] := BitmapFromString(5, 8, 'meJxjYGBI+f8fghjAbAYYQGbjkSKGzYBkCwQBAMlcI78=');
ZeroToNine[3] := BitmapFromString(4, 8, 'meJxjYGBI+f8fiBjADAYwgDPgbLgaNHE4G00vXAQAxUoe+w==');
ZeroToNine[4] := BitmapFromString(4, 8, 'meJxL+f+fAQZS8LKxknCESxcAfc4e+w==');
ZeroToNine[5] := BitmapFromString(4, 8, 'meJxL+f8/BQkxwAAaG00WqwJkcbgIAGUwI78=');
ZeroToNine[6] := BitmapFromString(5, 8, 'meJxjYACBlP//gYgBxmbAEESWgouj6UJWjMmFC0LYAHSRKuU=');
ZeroToNine[7] := BitmapFromString(4, 8, 'meJxL+f8/BYYYYADOplAQCAAoQRo3');
ZeroToNine[8] := BitmapFromString(5, 8, 'meJxjYGBI+f8fghjAbAYYgAvCuQykKMavFwC6dy1H');
ZeroToNine[9] := BitmapFromString(5, 8, 'meJxjYGBI+f8fghjAbAYYgAvCucgKkBloKtHMwcoFAJogI78=');
for j := 0 to 9 do
begin
tens := 0;
ones := 0;
for i := 9 downto 0 do
begin
if FindBitmapIn(ZeroToNine[i], x, y, 690, 269 + j * 15, 700, 278 + j * 15) then
tens := i;
if FindBitmapIn(ZeroToNine[i], x, y, 698, 269 + j * 15, 704, 278 + j * 15) then
ones := i;
end;
Main[j] := tens * 10 + ones;
end;
for i := 0 to 9 do
FreeBitmap(ZeroToNine[i]);
begin
SetLength(dif, length(Main));
for L := 0 to length(Main) - 1 do
dif[L] := 1;
QuickSort(Main);
dcount := 0;
for L := 0 to length(Main) - 2 do
if Main[L] = Main[L + 1] then
inc(dif[dcount])
else
inc(dcount);
maxloc := 0;
for L := 0 to length(dif) - 1 do
if (dif[L] > dif[maxloc]) then
maxloc := L;
finalloc := 0;
for L := 0 to maxloc - 1 do
finalloc := finalloc + dif[L];
result := Main[finalloc];
end;
end;
procedure PraySelect;
var
Prayer: array of string;
i, t, S, h: Integer;
TPA: TPointArray;
begin
CallProg;
if Length(Players[CurrentPlayer].Strings) = 0 then
Exit;
SetArrayLength(TPA, 29);
for i := 0 to 28 do
Tpa[i] := IntToPoint(568 + (37 * (i / 6)), 230 + (37 * (i mod 6)));
begin
CallProg;
Prayer := ['thick skin', 'rock skin', 'protect item', 'incredible reflexes', 'mystic might', 'piety', 'burst of strength', 'superhuman strength', 'hawk eye', 'protect from magic', 'retribution', 'no', 'clarity of thought', 'improved reflexes', 'mystic lore', 'protect from missiles', 'redemption', 'no', 'sharp Eye', 'rapid restore', 'steel skin', 'protect from melee', 'smite', 'no', 'mystic will', 'rapid heal', 'ultimate strength', 'eagle eye', 'chivalry'];
h := High(Players[CurrentPlayer].Strings) for T := 0 to h do
begin
for S := 0 to 28 do
if Prayer[S] = lowercase(Players[CurrentPlayer].Strings[T]) then
begin
CallProg;
FTab(tab_Prayer);
ElfMouse(TPA[S].x, TPA[S].y);
wait(500);
ClickMouse2(Mouse_Left);
end;
end;
Ftab(tab_inv);
end;
end;
procedure AutoUpdateMe;//Credit Shuttleu
var
ThisFile: integer;
OnlineVersion, NewScript, FileNew: string;
begin
if USE_AUTO_CHECKER then
begin
writeln('Checking for script updates...');
OnlineVersion := GetPage('http://pastebin.com/raw.php?i=b4sF5MBD');
writeln(OnlineVersion);
writeln(Version) if (trim(OnlineVersion) > Version) then
begin
writeLn('Using Outdated Script!!');
writeLn('Updating to New Version.');
NewScript := GetPage('http://pastebin.com/raw.php?i=MHrcUdf1');
FileNew := ScriptPath + 'ElfyyyPc-V' + OnlineVersion + '.simba';
ThisFile := Rewritefile(FileNew, true);
try
WriteFileString(ThisFile, NewScript);
except
begin
writeLn('Failed writting to ' + FileNew + '!!');
terminatescript;
end;
end;
CloseFile(ThisFile);
writeLn('New script downloaded to ' + FileNew + '!! Please use this one!!');
TerminateScript;
end;
if (trim(OnlineVersion) = Version) then
writeLn('You Are Updated To the Lastest Version!');
end
else
WriteLn('!!!!! Not checking for latest version, you may be outdated!');
if (trim(OnlineVersion) < Version) then
begin
Writeln('You Are Using a Beta Version!!! Babysit!!');
Writeln('Give any and ALL feedback to Elfyyy!!!');
wait(5000);
end;
end;
procedure DeclareDTM;
begin
dtmIBoat := DTMFromString('mbQAAAHicY2VgYOABYnkGBJCBikkAsSQQM0LFOwsdGFL9JBim17gxTK1yYahLt2KQA4pzoGFGLBgMAICRBp4=');
SouthWestCross := DTMFromString('mbQAAAHicY2VgYJjOyMAwAYjnAnE/EC8AYh2guAkQKwOxChAbA/FhTQkGUSEhFCwHFOdBw4xYMBgAAOHgBhM=');
EastCross := DTMFromString('mbQAAAHicY2VgYJjOyMAwAYjnAnE/EC8AYh2guAkQKwOxChAbA/FhTQkGUSEhFCwHFOdBw4xYMBgAAOHgBhM=');
WestCross := DTMFromString('mbQAAAHicY2VgYJjOyMAwAYjnAnE/EC8AYh2guAkQKwOxChAbA/FhTQkGUSEhFCwHFOdBw4xYMBgAAOHgBhM=');
SouthEastCross := DTMFromString('mbQAAAHicY2VgYJjOyMAwAYjnAnE/EC8AYh2guAkQKwOxChAbA/FhTQkGUSEhFCwHFOdBw4xYMBgAAOHgBhM=');
ProgBmp := BitmapFromString(125, 71, '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');
Prog2Bmp:= BitmapFromString(132, 140, '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');
end;
procedure FreeTheDTM;
begin
FreeDTM(dtmIBoat);
FreeDTM(SouthWestCross);
FreeDTM(EastCross);
FreeDTM(WestCross);
FreeDTM(SouthEastCross);
FreeBitmap(Prog2Bmp);
FreeBitmap(ProgBmp);
end;
function GetLocation: string;
var
x, y: Integer;
begin
if not LoggedIn then
Exit;
Result := '';
CallProg;
if FindColorSpiralTolerance(x, y, 5855173, MMX1, MMY1, MMX2, MMY2, 45) and FindColorSpiralTolerance(x, y, 197048, MMX1, MMY1, MMX2, MMY2, 45) and FindColorSpiralTolerance(x, y, 60395, MMX1, MMY1, MMX2, MMY2, 45) and FindColorSpiralTolerance(x, y, 12161149, MMX1, MMY1, MMX2, MMY2, 45) then
begin
Result := 'HomeLand';
end;
if FindColorSpiralTolerance(x, y, 63488, 352, 10, 514, 89, 5) and FindColorSpiralTolerance(x, y, 3355647, 352, 10, 514, 89, 10) and FindDTM(dtmIBoat, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
Result := 'IslandBoat';
Exit;
end;
if FindColorSpiralTolerance(x, y, 16777113, 0, 0, 150, 100, 3) then
begin
Result := 'Boat';
Exit;
end;
end;
function OpenPestPoints: Boolean;//Goes To Knight And Opens Pest Points Screen
var
x, y, q, i, h: integer;
TPA: Tpointarray;
TheATPA: T2DPointArray;
MainBox: Tbox;
begin
CallProg;
Result := False;
if FindColorTolerance(x, y, 2070783, 142, 14, 368, 38, 10) then
Result := True;
if Result then
Exit;
R_BlindWalk(Point(2662, 2649));
repeat
CallProg;
if not LoggedIn then
Exit;
MarkTime(q);
if FindColorsTolerance(TPA, 2631722, MSX1, MSY1, MSX2, MSY2, 15) then
begin
TheATPA := SplitTPAEx(TPA, 10, 30);
H := high(TheATPA);
for i := 0 to H do
begin
MainBox := GetTPABounds(TheATPA[i]);
if FindColorsTolerance(TPA, 2381214, MainBox.x1, MainBox.Y1, MainBox.X2, MainBox.Y2, 15) then
begin
MiddleTPAEx(TPA, x, y);
ElfMouse(x, y);
if WaitUpText('alk', 1) then
begin
ClickMouse2(Mouse_Right);
ChooseOption('xchang');
Wait(2000);
if FindColorTolerance(x, y, 2070783, 142, 14, 368, 38, 25) then
Result := True;
end;
end;
end;
end;
until (Result);
end;
procedure PickReward(R: string);//Chooses Reward From Knight
var
RArray: TstringArray;
i, x, y: Integer;
begin
if not LoggedIn then
Exit;
RArray := ['attack', 'defence', 'magic', 'prayer', 'strength', 'ranged', 'hitpoints', 'mace', 'robe', 'mage helm', 'mele helm', 'top', 'gloves', 'range helm', 'seal'];
if InstrArrEx(lowercase(R), RArray, i) then
begin
inc(Bought);
if i < 7 then
begin
ElfMouse(205 + ((i / 4) * 215), 70 + (38 * (i mod 4)));
Wait(500);
ClickMouse2(Mouse_Left);
Wait(1000);
if FindColorTolerance(x, y, 65535, 223, 282, 282, 300, 15) then
begin
ElfMouse(x, y);
Wait(500);
ClickMouse2(Mouse_Left);
Wait(250);
Exit;
end;
end;
if i >= 7 then
begin
HoldMouse(487, 257, mouse_left);
wait(2000);
ReleaseMouse(487, 257, mouse_Left);
i := i - 7
ElfMouse(100 + ((i / 4) * 215), 125 + (39 * (i mod 4)));
Wait(500);
ClickMouse2(Mouse_Left);
if FindColorTolerance(x, y, 65535, 223, 282, 282, 300, 15) then
begin
ElfMouse(x, y);
Wait(1000);
ClickMouse2(Mouse_Left);
Wait(250);
Exit;
end;
end;
end
else
Writeln('Invalid Reward Choosen!');
TerminateScript;
end;
function WalkPath1(Path: TPointArray): boolean;//Taken From MiniReflection, Modified By Me
var
I, H, T, D, Fails, lP: integer;
P, MM, MMF: TPoint;
begin
ColorToleranceSpeed(1);
H := High(Path);
T := GetSystemTime + 10000 + Random(2000);
Fails := 0;
lP := 0;
if not LoggedIn then
Exit;
if (GetLocation = 'HomeLand') then
Exit;
while (not Result) and (GetSystemTime < T) and (Fails < 5) do
begin
if (GetLocation = 'HomeLand') then
Exit;
WhichPortal;
if (not LoggedIn()) then
Exit;
P := R_GetTileGlobal;
for I := H downto 0 do
begin
if (GetLocation = 'HomeLand') then
Exit;
WhichPortal;
if ((I - lP) > 3) then
Continue
else
lP := I;
MM := R_TileToMM(Path[I]);
if MM = MMF then
Inc(Fails);
if (GetLocation = 'HomeLand') then
Exit;
if (MM.X > 0) and (MM.Y > 0) then
D := Distance(MM.X, MM.Y, MMCX, MMCY);
if (D < 20) then
break
else if (D < 70) then
begin
WhichPortal;
CallProg;
ElfMouse(MM.x,MM.y);
AL_FastClick(mouse_left);
if (GetLocation = 'HomeLand') then
Exit;
WhichPortal;
WaitFunc(@ AL_playerWalking, 10, 20000);
if (GetLocation = 'HomeLand') then
Exit;
MMF := MM;
if (I = H) then
FFlag(25)
else
FFlag(25);
T := getSystemTime + 7000 + Random(1000);
Break;
end;
end;
CallProg;
Result := (I = H);
end;
CallProg;
FFlag(25);
end;
function BlindWalk1(P: TPoint): Boolean;//Taken From MiniReflection, Modified By Me
var
Tries: Integer;
L, M: TPoint;
ctrlPoints: TPointArray;
begin
L := R_GetTileGlobal;
repeat
CallProg;
if (GetLocation = 'HomeLand') then
Exit;
if (not LoggedIn()) then
Exit;
M := R_GetTileGlobal;
if (M.X = - 1) then
begin
L := M;
Continue;
end;
if not loggedIn then
Exit;
if (Length(ctrlPoints) = 0) then
ctrlPoints := TPABetweenPoints(M, P, 5 + Random(2), 2);
Inc(Tries);
if (Tries > 20) then
Exit;
Result := walkPath1(ctrlPoints);
if (GetLocation = 'HomeLand') then
Exit;
until (Result or (GetLocation = 'HomeLand'));
end;
procedure AttackMonsters;
var
MainColorTPA, SideColorTPA: TPointArray;
TheATPA: T2DPointArray;
MainBox: TBox;
i, H, Monster, x, y: integer;
MSCTP: Tpoint;
begin
WhichPortal;
if not LoggedIn then
Exit;
MSCTP := Point(MSCX, MSCY);
for Monster := DARK_DEFILER to SPINNER do
if FindColorsTolerance(MainColorTPA, Monsters[Monster].MainColor, MSX1, MSY1, MSX2, MSY2, 5) then
begin
TheATPA := TPAtoATPAEx(MainColorTPA, 30, 30);
SortATPASize(TheATPA, True);
H := high(TheATPA) for i := 0 to H do
begin
if length(TheATPA[i]) > 50 then
continue;
MainBox := GetTPABounds(TheATPA[i]);
if FindColorsTolerance(SideColorTPA, Monsters[Monster].SideColor, MainBox.x1, MainBox.Y1, MainBox.X2, MainBox.Y2, 15) then
begin
MiddleTPAEx(SideColorTPA, x, y);
ElfMouse(x, y);
if WaitUpText('ttack', 10) then
begin
Status := ('Attacking a ' + ToStr(Monsters[Monster].Names)) CallProg;
CallProg;
clickmouse2(mouse_left);
WaitFunc(@ AmNotCombat, 250, 20000);
end;
end;
end;
end;
end;
function AttackPortals: Boolean;
var
MAinColorTPA, SideColorTPA: TPointArray;
TheATPA: T2DPointArray;
MainBox: TBox;
i, H, x, y, Portal: integer;
MSCTP: Tpoint;
begin
Result := False;
WhichPortal;
if not LoggedIn then
Exit;
MSCTP := Point(MSCX, MSCY);
for Portal := PORTAL_EAST to PORTAL_SOUTHWEST do
if FindColorsTolerance(MainColorTPA, Portals[Portal].MainColor, MSX1, MSY1, MSX2, MSY2, 5) then
begin
TheATPA := SplitTPAEx(MainColorTPA, 30, 30);
SortATPAFrom(TheATPA, MSCTP);
H := High(TheATPA) for i := 0 to H do
begin
MainBox := GetTPABounds(TheATPA[i]);
if FindColorsTolerance(SideColorTPA, Portals[Portal].SideColor, MainBox.x1, MainBox.Y1, MainBox.X2, MainBox.Y2, 15) then
begin
MiddleTPAEx(SideColorTPA, x, y);
ElfMouse(x, y);
if WaitUpText('ttack', 20) then
begin
Result := True;
Status := ('Attacking a ' + ToStr(Portals[Portal].Names)) CallProg;
CallProg;
ClickMouse2(mouse_left);
WaitFunc(@ AmNotCombat, 250, 20000);
WhichPortal;
end;
end;
end;
end;
end;
procedure GetInBoat;
var
T, x, y, lo,tmpCTS: Integer;
TPA: TPointArray;
MSCTP, TP: Tpoint;
begin
MarkTime(lo);
if not LoggedIn then
Exit;
Repeat
CallProg;
wait(50);
until(FindNPCChatText('Congratulations!', nothing) or FindNPCChatText('noticed', nothing) or FindNPCChatText('lost.', nothing) or (TimeFromMark(lo) > 4000));
if CheckPoints then
begin
if FindNPCChatText('Congratulations!', nothing) then
GamesWon := (GamesWon + 1);
if FindNPCChatText('noticed', nothing) or FindNPCChatText('lost.', nothing) then
GamesLost := (GamesLost + 1);
status := ('Getting in Boat');
CallProg;
CheckPoints := False;
end;
if not R_NearTile(point(2657, 2639), 10) then
R_BlindWalk(point(2657, 2639));
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsTolerance(TPA, 3496051, msX1, msy1, msX2, msY2, 5);
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
SortTPAFrom(TPA, MSCTP);
inc(BoatAttempts)
CallProg;
if Length(TPA) > 100 then
begin
CallProg;
TP := MedianTPA(TPA);
ElfMouse((TP.x - 10), TP.y);
if WaitUpTextMulti(['Cross', 'plank'], 180) then
begin
CallProg;
MarkTime(T);
repeat
CallProg;
if not LoggedIn then
Break;
AL_FastClick(Mouse_Left);
if (timefrommark(T) > 3000) and findcolortolerance(x, y, 128, 209, 370, 302, 392, 10) then
begin
if OpenPestPoints then
begin
if Length(Rewards) = 1 then
begin
PickReward(Rewards[0]);
Exit;
end;
CallProg;
PickReward(Rewards[RewardNum]);
Inc(RewardNum);
end;
if RewardNum = Length(Rewards) then
begin
CallProg;
Writeln('All Rewards Bought, You Better Thank Elfyyy :)');
Status := ('All Rewards Bought');
CallProg;
TerminateScript;
end;
Exit;
end;
if not WaitUpTextMulti(['Cross', 'plank'], 180) then
begin
CallProg;
Wait(1200);
Exit;
end;
if TimeFromMark(T) > 10000 then
begin
R_BlindWalk(point(2657, 2639));
GetInBoat;
CallProg;
end;
until (GetLocation = 'Boat');
Exit;
end;
if BoatAttempts > 20 then
begin
GetInBoat;
end;
end
else
R_BlindWalk(point(2657, 2639));
GetInBoat;
end;
procedure WaitInBoat;
var
s, k, l: integer;
begin
CheckPoints := True;
CallProg;
if not LoggedIn then
Exit;
Ftab(tab_clan);
CallProg;
Wait(800);
Joinclan(Name);
HotW := (World + 300);
for k := 0 to 1 do
begin
if HotW = 300 then
Break;
Logout;
OpenWScreen;
wait(1000);
MyWorld(HotW);
wait(1000);
MyLogin;
end;
setmyrun(True);
begin
MarkTime(l);
if TimeFromMark(l) > 200000 then
terminatescript;
Ftab(Tab_Inv);
repeat
CallProg;
if not LoggedIn then
Break;
wait(randomrange(30, 250));
Status := ('Waiting in boat, Start AntiBan');
CallProg;
if not (GetLocation = 'Boat') then
Exit;
case Random(100) of
1: HoverSkill('strength', False);
2: HoverSkill('hitpoints', False);
3: HoverSkill('magic', False);
4: HoverSkill('ranged', False);
5: RandomMovement;
6..15:
begin
CallProg;
MarkTime(s);
AL_HumanRandomMouse;
repeat
CallProg;
wait(RandomRange(30, 200))
until (GetLocation = 'IslandBoat') or (TimeFromMark(s) > randomrange(5000, 20000))
end;
end;
until (GetLocation = 'IslandBoat')
Exit;
end
end;
procedure AttackSeries;
begin
CallProg;
if Players[CurrentPlayer].Member then
if not AttackPortals then
AttackMonsters;
end;
procedure Enterance;
begin
writeln('******************************************************************');
writeln('************Thanks For Using Elfyyy'' Pest Control!!!*************');
writeln('**The Only Fully Functional, Portal & Point Supported PC Script***');
writeln('READ DIRECTIONS @ http://villavu.com/forum/showthread.php?t=100729');
writeln('******If You Don''t, It May Not Work Completley As It Should******');
writeln('************Enjoy & Post All Proggies On The Thread!!!************');
Disguise('Elfyyy''s Flawless Pest Control');
wait(4000);
end;
procedure TestMe;
begin
ClearDebug;
Writeln('THIS IS NOT AN ERROR,DO NOT POST THAT IT IS');
Writeln('I Completely Changed Script, Please Read Thread');
Writeln('http://villavu.com/forum/showthread.php?t=100729&highlight=');
Writeln('It Says How To Run Script & Remove This');
Writeln('Have Fun Kiddies ;) -Elfyyy)');
TerminateScript;
end;
procedure MainLoop;
begin
MyLogIn;
while (GetLocation = 'HomeLand') do
GetInBoat;
while (GetLocation = 'Boat') do
begin
SetupPortals;
WaitInBoat;
end;
while (GetLocation = 'IslandBoat') do
begin
PraySelect;
BreakHandler(Time2Break, TimeOfBreak, 25, 25);
Home := R_GetTileGlobal;
Center := Point(Home.x, (Home.y - 17));
East := Point((Home.x + 21), (Home.y - 21));
SEast := Point((Home.x + 10), (Home.y - 38));
SWest := Point((Home.x - 10), (Home.y - 38));
West := Point((Home.x - 27), (Home.y - 17));
BlindWalk1(Center);
end;
WhichPortal;
if Portals[PORTAL_EAST].Active then
begin
WhichPortal;
Status := ('Going To East Port') CallProg;
BlindWalk1(East);
repeat
if not LoggedIn then
exit;
if Players[CurrentPlayer].Member then
if R_NearTile(East, 10) then
BlindWalk1(East);
WhichPortal;
AttackSeries;
if (Portals[PORTAL_EAST].Active = False) and (Length(GetMMDotsOnMS('npc')) < 2) then
Break;
until ((GetLocation = 'IslandBoat') or (GetLocation = 'HomeLand'))
end;
if Portals[PORTAL_WEST].Active then
begin
WhichPortal;
Status := ('Going To West Port') CallProg;
BlindWalk1(West);
repeat
if not LoggedIn then
exit;
if Players[CurrentPlayer].Member then
if R_NearTile(West, 10) then
BlindWalk1(West);
WhichPortal;
AttackSeries;
if (Portals[PORTAL_WEST].Active = False) and (Length(GetMMDotsOnMS('npc')) < 2) then
break;
until ((GetLocation = 'IslandBoat') or (GetLocation = 'HomeLand'))
end;
if Portals[PORTAL_SOUTHEAST].Active then
begin
WhichPortal;
Status := ('Going To SouthEast Port') CallProg;
BlindWalk1(SEast);
repeat
if not LoggedIn then
exit;
if Players[CurrentPlayer].Member then
if R_NearTile(SEast, 10) then
BlindWalk1(SEast);
WhichPortal;
AttackSeries;
if (Portals[PORTAL_SOUTHEAST].Active = False) and (Length(GetMMDotsOnMS('npc')) < 2) then
break;
until ((GetLocation = 'IslandBoat') or (GetLocation = 'HomeLand'))
end;
if Portals[PORTAL_SOUTHWEST].Active then
begin
WhichPortal;
Status := ('Going To SouthWest Port') CallProg;
BlindWalk1(SWest);
repeat
if not LoggedIn then
exit;
if Players[CurrentPlayer].Member then
if R_NearTile(SWest, 10) then
BlindWalk1(SWest);
WhichPortal;
AttackSeries;
if (Portals[PORTAL_SOUTHWEST].Active = False) and (Length(GetMMDotsOnMS('npc')) < 2) then
break;
until ((GetLocation = 'IslandBoat') or (GetLocation = 'HomeLand'))
end;
end;
begin
TestMe;
SetupSRL();
SetupReflection;
DeclarePlayer;
DeclareDTM;
AutoUpdateMe;
CallProg;
wait(5000);
Enterance;
wait(5000);
SMART_ClearCanvas;
CallProg;
if not LoggedIn then
LogInPlayer;
SetAngle(0)
CurrentW := (CurrentWorld);
Joinclan(Name);
wait(1000);
setmyrun(true);
Retaliate(true);
GameTab(tab_Inv);
SetupMonsters;
SetupPortals;
Addonterminate('FreeTheDTM');
CheckPoints := true;
RewardNum := 0;
Bought := 0;
BreakTime := 0;
repeat
MyLogIn;
MainLoop;
until (false);
FreeTheDTM;
end.
maybe we could use some of his old code to beef up this script.