^^^^
^^^^
<3 RISK, <3 P1nky
ive been running the script for a wile, only errors i see is sometimes it walks to the wrong spot and donst get to the middle and sometimes it dosnt go in the ship. you should also make it login to the pest woruld by defalt
Thanks mate, the script started nowI will post any bugs if any occurs. Looking very good so far
![]()
Just did some quick tweaks (Fixed 'QuickPrayer' feature/Walk to Void is more accurate/fixed finding pests) ,should run to 6 hour limit.
Haven't tested fully though, although tomorrow I will make it a official release.
Thank You.
Version [E]:
Simba Code:program PestControllerBETA;
{$DEFINE SMART}
{$i srl\srl.simba}
{.include SRL/SRL/Skill/Fighting.simba}
//P1nky's PestController
//BETA Version
const
SpecialAttacks = False;
QuickPrayer = True; //Make sure to have Quick Prayer Set!
Faster500 = True; //Having trouble getting your '500'? Well this will help you get over it!
SRLStats_Username = ''; // Your SRL Stats Username (Optional) Register here: [url]http://stats.villavu.com/[/url]
SRLStats_Password = '';// Your SRL Stats Password (Optional) Register here: [url]http://stats.villavu.com/[/url]
procedure DeclarePlayerz;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username
Players[0].Pass := ''; //Your Runescape password
Players[0].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[0].Pin := ''; //Leave blank if the player doesn't have a Bank PIN.
end;
var
Reward, games, win, lost, Rp, Pp, Yp, yellow, white, LeftGate,DTMSPOT2,DTMSPOT3,DTMSPOT, x, y, counter : integer;
Procedure FindRandoms;
Begin
If Not (LoggedIn) Or Not (Players[CurrentPlayer].Active) Then
NextPlayer(True);
FindNormalRandoms;
wait(Random(100) + 20);
FindLamp('Woodcutting');
End;
function Step1: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 933;
dtmMainPoint.y := 115;
dtmMainPoint.AreaSize := 3;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1452869;
dtmMainPoint.Tolerance := 20;
dtmSubPoints[0].x := 933;
dtmSubPoints[0].y := 115;
dtmSubPoints[0].AreaSize := 3;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1452869;
dtmSubPoints[0].Tolerance := 20;
dtmSubPoints[1].x := 933;
dtmSubPoints[1].y := 121;
dtmSubPoints[1].AreaSize := 3;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 4357778;
dtmSubPoints[1].Tolerance := 20;
dtmSubPoints[2].x := 923;
dtmSubPoints[2].y := 114;
dtmSubPoints[2].AreaSize := 3;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2844546;
dtmSubPoints[2].Tolerance := 20;
dtmSubPoints[3].x := 931;
dtmSubPoints[3].y := 104;
dtmSubPoints[3].AreaSize := 3;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2513523;
dtmSubPoints[3].Tolerance := 20;
dtmSubPoints[4].x := 941;
dtmSubPoints[4].y := 114;
dtmSubPoints[4].AreaSize := 3;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 5218735;
dtmSubPoints[4].Tolerance := 20;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step2: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 901;
dtmMainPoint.y := 138;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 65535;
dtmMainPoint.Tolerance := 25;
dtmSubPoints[0].x := 901;
dtmSubPoints[0].y := 138;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 65535;
dtmSubPoints[0].Tolerance := 25;
dtmSubPoints[1].x := 902;
dtmSubPoints[1].y := 133;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 2714760;
dtmSubPoints[1].Tolerance := 25;
dtmSubPoints[2].x := 907;
dtmSubPoints[2].y := 139;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2714760;
dtmSubPoints[2].Tolerance := 25;
dtmSubPoints[3].x := 901;
dtmSubPoints[3].y := 145;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2714760;
dtmSubPoints[3].Tolerance := 25;
dtmSubPoints[4].x := 896;
dtmSubPoints[4].y := 137;
dtmSubPoints[4].AreaSize := 1;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 2714760;
dtmSubPoints[4].Tolerance := 25;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Step3: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 741;
dtmMainPoint.y := 175;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 863541;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 741;
dtmSubPoints[0].y := 175;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 863541;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 739;
dtmSubPoints[1].y := 173;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 16249839;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 744;
dtmSubPoints[2].y := 169;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2976616;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 737;
dtmSubPoints[3].y := 169;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2841950;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 734;
dtmSubPoints[4].y := 173;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 16249839;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Left: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 665;
dtmMainPoint.y := 181;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 1466931;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 665;
dtmSubPoints[0].y := 181;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 1466931;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 661;
dtmSubPoints[1].y := 176;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 2908770;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 671;
dtmSubPoints[2].y := 174;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 2255469;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 665;
dtmSubPoints[3].y := 172;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 2323058;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 658;
dtmSubPoints[4].y := 177;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 3242361;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure ReportScreen(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1, 8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure ReportSmart;
begin
ReportScreen(['P1nkys PestController', '', 'Worked For ' + TimeRunning, '', 'Games Played ' + IntToStr(Games)], Point(350, 223), 255);
end;
function Left1: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..3] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 660;
dtmMainPoint.y := 143;
dtmMainPoint.AreaSize := 1;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 263925;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 660;
dtmSubPoints[0].y := 143;
dtmSubPoints[0].AreaSize := 1;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 263925;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 650;
dtmSubPoints[1].y := 139;
dtmSubPoints[1].AreaSize := 1;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 5350033;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 652;
dtmSubPoints[2].y := 146;
dtmSubPoints[2].AreaSize := 1;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 4363665;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 648;
dtmSubPoints[3].y := 131;
dtmSubPoints[3].AreaSize := 1;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 263925;
dtmSubPoints[3].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure LeftSpot;
begin
MakeCompass('S');
LeftGate := Left;
if DTMRotated(LeftGate, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
end;
procedure LeftPortal;
begin
MakeCompass('S');
white := Left1;
if DTMRotated(white, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
end;
//white
function NorthSpot: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..3] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 708;
dtmMainPoint.y := 160;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 393967;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 708;
dtmSubPoints[0].y := 160;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 393967;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 702;
dtmSubPoints[1].y := 155;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 3420468;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 715;
dtmSubPoints[2].y := 155;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 3355448;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 708;
dtmSubPoints[3].y := 153;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 3289141;
dtmSubPoints[3].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
function Spot44: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 672;
dtmMainPoint.y := 180;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 329713;
dtmMainPoint.Tolerance := 0;
dtmSubPoints[0].x := 672;
dtmSubPoints[0].y := 180;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 329713;
dtmSubPoints[0].Tolerance := 0;
dtmSubPoints[1].x := 671;
dtmSubPoints[1].y := 156;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 6523792;
dtmSubPoints[1].Tolerance := 0;
dtmSubPoints[2].x := 667;
dtmSubPoints[2].y := 169;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 5336950;
dtmSubPoints[2].Tolerance := 0;
dtmSubPoints[3].x := 678;
dtmSubPoints[3].y := 162;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 5792867;
dtmSubPoints[3].Tolerance := 0;
dtmSubPoints[4].x := 666;
dtmSubPoints[4].y := 163;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 6457999;
dtmSubPoints[4].Tolerance := 0;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
//Portal Locs:
function YellowPortal: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 676;
dtmMainPoint.y := 179;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 65535;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 676;
dtmSubPoints[0].y := 179;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 65535;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 676;
dtmSubPoints[1].y := 172;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 7444128;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 682;
dtmSubPoints[2].y := 180;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 7312029;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 669;
dtmSubPoints[3].y := 178;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 7048342;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 676;
dtmSubPoints[4].y := 184;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 7114649;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure TOYellow; // Directly to Yellow Portal
begin
MakeCompass('S');
Yp := YellowPortal;
if DTMRotated(YP, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(1);
end;
function RedPortal: Integer;
var
dtmMainPoint: TDTMPointDef;
dtmSubPoints: Array [0..4] of TDTMPointDef;
TempTDTM: TDTM;
begin
dtmMainPoint.x := 778;
dtmMainPoint.y := 192;
dtmMainPoint.AreaSize := 0;
dtmMainPoint.AreaShape := 0;
dtmMainPoint.Color := 62719;
dtmMainPoint.Tolerance := 15;
dtmSubPoints[0].x := 778;
dtmSubPoints[0].y := 192;
dtmSubPoints[0].AreaSize := 0;
dtmSubPoints[0].AreaShape := 0;
dtmSubPoints[0].Color := 62719;
dtmSubPoints[0].Tolerance := 15;
dtmSubPoints[1].x := 778;
dtmSubPoints[1].y := 185;
dtmSubPoints[1].AreaSize := 0;
dtmSubPoints[1].AreaShape := 0;
dtmSubPoints[1].Color := 8150929;
dtmSubPoints[1].Tolerance := 15;
dtmSubPoints[2].x := 772;
dtmSubPoints[2].y := 183;
dtmSubPoints[2].AreaSize := 0;
dtmSubPoints[2].AreaShape := 0;
dtmSubPoints[2].Color := 7559818;
dtmSubPoints[2].Tolerance := 15;
dtmSubPoints[3].x := 786;
dtmSubPoints[3].y := 190;
dtmSubPoints[3].AreaSize := 0;
dtmSubPoints[3].AreaShape := 0;
dtmSubPoints[3].Color := 8418184;
dtmSubPoints[3].Tolerance := 15;
dtmSubPoints[4].x := 769;
dtmSubPoints[4].y := 188;
dtmSubPoints[4].AreaSize := 0;
dtmSubPoints[4].AreaShape := 0;
dtmSubPoints[4].Color := 7432058;
dtmSubPoints[4].Tolerance := 15;
TempTDTM.MainPoint := dtmMainPoint;
TempTDTM.SubPoints := dtmSubPoints;
Result := AddDTM(TempTDTM);
end;
procedure ToRed; //Directly to Purple Portal
begin
Status('To Red');
MakeCompass('S');
Rp := RedPortal;
if DTMRotated(Rp, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(1);
end;
Procedure AttackWhite;
begin
repeat
if FindObj(x, y, 'ortal', 13217188, 15) then
MMouse(x,y,0,0);
wait(Random(100) + 20);
Mouse(x,y,0,0,false);
ChooseOption('ttack');
until(false);
end;
Procedure AttackRed;
begin
repeat
if FindObj(x, y, 'ortal', 6246545, 15) then
MMouse(x,y,0,0);
wait(Random(100) + 20);
Mouse(x,y,0,0,false);
ChooseOption('ttack');
wait(3434 + Random(244));
until(false);
end;
Procedure AttackYellow;
begin
repeat
Status('Attacking Yellow');
if FindObj(x, y, 'ortal', 3978936, 15) then
MMouse(x,y,0,0);
wait(Random(100) + 20);
Mouse(x,y,0,0,false);
ChooseOption('ttack');
wait(Random(100) + 20);
until(false);
end;
procedure SPOT1; // Toward Void.
begin
Status('Spot 1');
SetRun(True);
MakeCompass('S');
DTMSPOT := Step1;
if DTMRotated(DTMSPOT, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(Random(1000) + 500);
end;
procedure SPOT2; // Void
begin
Status('Spot 2');
MakeCompass('S');
DTMSPOT2 := Step2;
if DTMRotated(DTMSPOT2, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
FFlag(0);
wait(1300);
end;
function AwayFromVoid :boolean;
var
C : Integer;
begin
C := 42342;
If not (C > 4) then
begin
result := false;
exit;
TerminateScript;
end else
result := true;
Spot1;
end;
procedure SPOT3; // Towards North Portals
begin
Status('Spot 3');
MakeCompass('S');
DTMSPOT3 := Step3;
if DTMRotated(DTMSPOT3, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
Flag;
wait(1300);
end;
function Clan: boolean;
var
X, Y: Integer;
begin
Result := (FindColor(X, Y, 3226804, 460, 30, 461, 29));
end;
Function RewardBox : Boolean;
begin
if (Clan) then
begin
Mouse(475, 29, 1, 1, True);
end;
if FindColorTolerance(x,y,986895,134,96,435,334,1) then
begin
Result := True;
Mouse(392,60,0,0,true);
Reward := Reward + 1;
end else
Result := False;
end;
procedure SPOT4; // North (Middle of Yellow/Purple)
begin
Status('Spot 4');
MakeCompass('S');
yellow := NorthSpot;
if DTMRotated(yellow, X, Y, MMX1, MMY1, MMX2, MMY2) then
MMouse(x, y, 0, 0);
wait(Random(100) + 20);
Mouse(x, y, 0, 0, True);
wait(Random(1000) + 20);
Flag;
end;
Procedure WinOrLose;
begin
Status('Checking if Win Game Or Lose');
RewardBox;
MakeCompass('S');
ReportSmart;
if FindNPCChatText('Congratulations!',True) then
begin
win := win + 1;
stats_IncVariable('PC Points Earned',2);
exit;
end else
if FindNPCChatText('noticed',True) or FindNPCChatText('lost.',True) then
begin
lost := lost + 1;
exit;
end else
begin
exit;
end;
end;
function InBoat: Boolean;
begin
result := (getColor(19, 30) = 13421772) and (getColor(19, 51) = 3265113);
end;
function NPC: Boolean;
begin
FindRandoms;
if FindNPCChatText('ritual',True) or
FindNPCChatText('Congratulations!',True) or
FindNPCChatText('knights',True) or
FindNPCChatText('lost.',True) or
FindText(x, y, 'attle', UpChars, MCX1, MCY1, MCX2, MCY2) or
FindText(x, y, 'defend the Void Knight', UpChars, MCX1, MCY1, MCX2, MCY2) then
Begin
Result := True;
Writeln('NPC Message Detected!');
If (FindColorSpiralTolerance(x, y, 540186, 136, 379, 415, 470, 25)) then
//wait(Random(200) + 20);
Status('NPC Message');
MMouse(x,y,0,0);
wait(Random(200) + 20);
Mouse(x,y,0,0,true);
WinOrLose;
end else
Result := False;
end;
procedure RandomButton;
begin
if not (Faster500) then
case Random(3) of
0:
begin
KeyDown(VK_Left);
wait(Random(600) + 500);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(600) + 500);
KeyUp(VK_Right);
end;
2:
begin
KeyDown(VK_Up);
wait(Random(200) + 500);
KeyUp(VK_Up);
end;
end;
if (Faster500) then
case Random(5) of
0:
begin
KeyDown(VK_Left);
wait(Random(200) + 20);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(200) + 20);
KeyUp(VK_Right);
end;
2:
begin
wait(Random(100) + 20);
end;
3:
begin
wait(Random(100) + 20);
end;
4:
begin
wait(Random(100) + 20);
end;
end;
end;
procedure Report;
var
Answer, WC: Integer;
begin
If Not (LoggedIn) Or Not (Players[CurrentPlayer].Active) Then
NextPlayer(True);
cleardebug;
SRLRandomsReport;
Writeln('||===========================||');
Writeln('|| P1nkys PestController ||');
Writeln('||===========================||');
Writeln('|| ' + TheDate(Date_Formal) + ' ||');
Writeln('||===========================||');
Writeln(' Worked For ' + TimeRunning);
Writeln(' Games Played ' + IntToStr(Games));
{Writeln(' Won ' + IntToStr(Win) + ' Games ');
Writeln(' Lose ' + IntToStr(lost) + ' Games ');
Writeln(' Reward ' + IntToStr(Reward)); }
Writeln('||===========================||');
ReportSmart;
Stats_Commit;
end;
procedure AntiBan;
var
NoBan: Integer;
begin
// FindRandoms;
Noban := Random(18);
case Move of
0: MMouse(x, y, (10 + random(350)), (10 + random(200)));
1: MMouse(x, y, (10 + random(400)), (10 + random(600)));
2: MMouse(x, y, (10 + random(550)), (10 + random(400)));
3: MMouse(x, y, (10 + random(500)), (10 + random(400)));
4: MMouse(Random(MSX2), Random(MSY2), 0, 0);
5: RandomRclick;
6: RandomButton;
10: setangle(1)
end;
end;
function InGame: Boolean; //weequ's function
begin
result := (getColor(370, 74) = 16711935) and (getColor(404, 70) = 16737894);
end;
Procedure BoatWait;
begin
If Not (LoggedIn) Or Not (Players[CurrentPlayer].Active) Then
NextPlayer(True);
repeat
Status('Waiting In Boat');
ReportSmart;
RandomButton;
FindRandoms;
Report;
wait(Random(100) + 20);
until(NPC) or (Ingame);
Games := Games + 1;
exit;
end;
function FindBoard(x,y:Integer):Boolean;
var
CTS, I: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
SetColorSpeed2Modifiers(1, 3);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 3958408, MSX1, MSY1, MSX2, MSY2, 4);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 2, 2);
For I := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 1, 1);
If(IsUpTextMultiCustom(['Gangplank'])) then
begin
Result := True;
GetMousePos(x, y);
Break;
end;
end;
end;
procedure Plank;
begin
If Not (LoggedIn) Or Not (Players[CurrentPlayer].Active) Then
NextPlayer(True);
Status('Searching For Plank');
WinOrLose;
MakeCompass('S');
FindRandoms;
begin
{ KeyDown(VK_Down);
wait(Random(1000) + 500);
KeyUp(VK_Down);}
Setangle(0);
end;
repeat
RewardBox;
ReportSmart;
if not RewardBox then
if FindBoard(x,y) then
//If (FindColorSpiralTolerance(x, y, 5008519, MSX1, MSY1, MSX2, MSY2, 3)) then
//If (FindObjCustom(x,y,['Gang','angplank','Gangplank','gplank'], [3628927,2704989,3496825], 5)) Then
//If FindObjTPA(X, Y, 5074570, 10, 1, 120, 120, 50, ['angplank','Gang']) then
// ClickMouse2(False);
// wait(2000);
Status('Looking for Plank');
wait(200 + random(232));
if Isuptext('angplank') then
ClickMouse2(true);
Until(FindBlackChatMessage('You board the lander') or (ingame) or FindBlackChatMessage('reach that') or (InBoat))
//ChooseOption('angplank');
//until(ChooseOption('ross') or ChooseOption('angplank'));
//until WaitOptionMulti(['ross', 'angplank', 'Gangplank'], 1500);
{if Isuptext('angplank') then
Mouse(x,y,0,0,true);
wait(1232);
Mouse(x,y,0,0,true); }
FindRandoms;
//Until(ChooseOption('ross'));
Report;
NPC;
exit;
end;
Function Range : Boolean;
begin
If (FindColorSpiralTolerance(x, y, 5372475, 267, 132, 292, 160, 1)) then
begin
Result := True;
Writeln('TRUE');
end else
Result := False;
Writeln('False');
end;
var
qp : integer;
Procedure QPrayer;
begin
if QuickPrayer then
QP := DTMFromString('mbQAAAHicY2VgYFBmZGBQAmItKC0JxGuA4kuBeB0QbwXi9UB88+1dhrVbNoAxiB1h38yADTBiwWAAAKBQDp8=');
if FindDTM(QP,x,y,701,52,733,79) then
begin
MMouse(x,y,0,0);
Mouse(x,y,0,0,true);
end else
exit;
end;
Procedure SpecAttack;
begin
if SpecialAttacks then
begin
Writeln('Toggling Special');
Status('Special Attack ON');
MouseBox(528,179,545,195,1);
begin
If (FindColorSpiralTolerance(x, y, 3566664, 545, 208, 738, 430, 25)) then
Status('Special');
MMouse(x,y,0,0);
wait(Random(100) + 20);
Mouse(x,y,0,0,true);
end;
end;
end;
{Procedure FightPests; //2305818 green pest
var //2701962 = red pest
CTS: Integer; //5051472 = PURPLE PEST POP UP
begin
Status('Fighting Pests');
If not (FindObjCustom(x,y,['hifter','Shifte','Shifter','hift'], [2108184,5051472,3228504], 1)) Then
begin
RandomButton;
Report;
exit;
end else
// if (counter>5000) then
begin
// counter := 0;
Mmouse(x,y,0,0);
wait(Random(300) + 20);
if isuptext('ttac') then
Mouse(x,y,0,0,True);
Report;
if Faster500 then
begin
wait(Random(100) + 20);
Report;
end else
wait(2000);
Report;
end;
end; }
Procedure FightPests; //2305818 green pest
var //2701962 = red pest
CTS: Integer; //5051472 = PURPLE PEST POP UP
begin
Status('Fighting Pests');
//['Splatter','Torcher','Shifter','Defiler','Splatter','Brawler'])
{ if not FindObj(x, y, 'hifter', 2108184, 1) or
FindObj(x, y, 'hifter', 2572415, 10) then }
If InFight then
repeat
exit;
Until not (infight);
If not (FindObjCustom(x,y,['hifter','Shifte','Shifter','hift'], [2108184,5051472,3228504,4942983], 2)) Then
begin
if (counter>1000) then
begin
Report;
counter := 0;
end;
RandomButton;
Exit;
end else
Mmouse(x,y,0,0);
wait(Random(300) + 20);
if isuptext('ttac') then
Mouse(x,y,0,0,True);
if Faster500 then
begin
wait(Random(100) + 20);
Report;
end else
wait(2000);
Report;
end;
//2830989
// 1319947
//
//purple = western
//blue = eastern
//yellow = south eastern
// red = south western
Function Portal(Name : string) : Boolean;
begin
case Name Of
'red' :
if (FindBlackChatMessage('south-western')) then
begin
Result := True;
Writeln('Red Portal Shield Down!');
Exit;
end else
Result := False;
'yellow':
if (FindBlackChatMessage('south-eastern')) then
begin
Result := True;
Writeln('Yellow Portal Shield Down!');
Exit;
end else
Result := False;
end;
end;
//You must defend
Procedure RedRoute;
begin
Tored;
AttackRed;
If Portal('yellow') then
begin
exit;
end;
end;
Procedure YellowRoute;
begin
wait(Random(100) + 20);
Status('Yellow Route');
toyellow;
AttackYellow;
If Portal('red') then
begin
RedRoute;
end;
end;
procedure FreeDTMS;
begin
FreeDTM(step1);
FreeDTM(step2);
FreeDTM(step3);
FreeDTM(Left);
FreeDTM(Left1);
FreeDTM(northspot);
FreeDTM(redportal);
FreeDTM(yellowportal);
FreeDTM(spot44);
end;
Procedure PestControl;
begin
WinorLose;
Spot1;
Spot2;
SpecAttack;
QPrayer;
repeat
FightPests;
Until(false);
end;
begin
Disguise('P1nky PestController');
ClearDebug;
ClearReport;
Smart_Server := 17;
Smart_Members := false;
Smart_Signed := true;
Smart_SuperDetail := false;
begin
if (SRLStats_Username = '') then
SetupSRLStats(654, 'Anonymous', 'anon1337')
else
SetupSRLStats(654, SRLStats_Username, SRLStats_Password);
SetUpSRL;
declareplayerz;
ActivateClient;
counter:=0;
ClearDebug;
LoginPlayer;
Inc(counter);
repeat
begin
FreeDTMS;
NPC;
Report;
Plank;
BoatWait;
begin
Spot1;
Spot2;
begin
SpecAttack;
QPrayer;
end;
repeat
FightPests
Until not (Ingame);
end;
end;
until(false);
end;
end.
//3978936 yellow Port
Gonna try it overnight.
Will post a proggie.
Is there a download link for the above script? I tried copying and pasting it but it didnt work + im an idiot on this stuff.
Thanks
Thanks for the quick update pinky. ill check it out today or tommo and let u know how it goes.
Good job but the scripts rapidly click the monsters don't wait always click.
hey how can i enter this script? or are you gonna upload the simba file??
awesome man thanks
works but is a bit dodgy wouldn't recommend to run overnight
P1nky I very much appreciate this script, of there is anything I can do to help let me know.
sorry im a major noob but how you make it change server it keeps going to a world thats not pest control
thanksssss man
btw you know howmuch exp per hour? just wondering
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 16th, 2012 ||
||===========================||
Worked For 5 Hours, 5 Minutes and 52 Seconds
Games Played 30
||===========================||
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 16th, 2012 ||
||===========================||
Worked For 6 Hours, 54 Minutes and 20 Seconds
Games Played 91
||===========================||
Version [E] has been released.
- Fixed Finding Plank.
- Better Pest Finding, less crazier.
- Fixed Quick Prayer.
- More accurate to get to the middle.
- A lot more has been fixed/added to make the script run more smoother.
-Cheers
Good Job p1nky i must say, i do love the script. Fav PC script out (obviously) maybe my new favorite public fighting script. ran it last night sorry forgot to get prog report, but woke up with over 100 pointsCheers!
||===========================||
|| P1nkys PestController ||
||===========================||
|| February 17th, 2012 ||
||===========================||
Worked For 6 Hours, 41 Minutes and 50 Seconds
Games Played 89
||===========================||
version E proggy
Let me know if any bugs! I just ran it for 18 hours.
Nice! I'm still using the D version of the script (It works perfect for me, and why fix what isn't broken? AFAIK I'm not missing any super-important new features, I hope) but it's working great, running till it's 6 hour limit every time I use it. Although, I did notice a Mod playing Pest Control on World 53 2 days ago. He didn't notice the 5 or 6 bots in the game, though...
wow p1nky great gonna run it now. thanks!
There are currently 1 users browsing this thread. (0 members and 1 guests)