fre
2012-02-17 17:25:30
How Long have You Played Runescape?
10 Year(s)
Are you affilated in anyway with Jagex LTD?
Nope
Were you Referred to SRL?
What is your general programming knowledge?
Pascal(delphi, scar, simba, ..), little HTML, labview(program, dunno what program lang this is)
Are you a member of any other communities?
I am not an active member of any other RS or hacking related communities.
Tell us about yourself…
Please show us one (or multiple) of your scripts.
Hunter lvl of the accs is in the high 60.
Better lvl would get more succesfull catches and would result in a higher ratio of chins catched / hr.
[BANANA]
|****************************************************************************************|
| Red Chinchompa Hunter, By Fre | Currently Running: [email]xxxxxxxxxxxxxxxxxxxxxxxxx[/email] |
|****************************************************************************************|
| Nick | Total Chins | Chins catched This Login| Time this round | Total Time ran |
|*************** ************* ************************* **************** ***************|
|xxx |132 |2 |00:04:32 |01:07:27 |
|xxxx |202 |4 |00:05:36 |02:36:03 |
|xxx |195 |4 |00:04:13 |02:04:35 |
This script has been running for 6 Hours, 2 Minutes and 7 Seconds.
|***************************************************************************************|
|Wow that is amazing, Fre is the GodKing! |
|***************************************************************************************|[/BANANA]
10 Year(s)
Are you affilated in anyway with Jagex LTD?
Nope
Were you Referred to SRL?
What is your general programming knowledge?
Pascal(delphi, scar, simba, ..), little HTML, labview(program, dunno what program lang this is)
Are you a member of any other communities?
I am not an active member of any other RS or hacking related communities.
Tell us about yourself…
From: fre
I am 23 years old, i live in Europe.
I study for P.E teacher or something in the outdoor/fitness world.
If any of you need a training schedule feel free to pm me.
Going 4 times a week to the gym.
Living with friends in a house atm.
My interests are: (in top of importance)
Girlfriend
friends
sport
computer
music
guitare playing
Back in 2008 i tried applying for members i got denied. Now i realise back then i knew nothing. I think i am now worthy of becoming members.
Since my scripts are pretty good imo :)
Please show us one (or multiple) of your scripts.
Almos every scritp is flawless since i let them run for several hours without babysitting.
You can find my Air crafter and birdcatcher in the release section.
This is my most recent script.
Red chinchompa hunter.
Set up traps in a cross (not a line like every other bot)
[SIMBA]
program Red_Chinchompa_Hunter;
{$DEFINE SRL5}
{$DEFINE SMART}
{$IFDEF SRL5}
{$i srl/srl.simba}
{$ELSE}
{$i srl/srl.simba}
{$ENDIF}
{$i sps/sps.simba}
{$i srl\srl\misc\paintsmart.simba}
var
EndRound, TrapsAtStart, MainSpot, TrapSetTime, ScriptStart, RoundTime, StartChinsAmmount : Integer;
Const
ScriptTime = 200; //Time for script to restart in minutes
Procedure DeclarePlayers;
var
i: integer;
begin
NumberOfPlayers(1);
CurrentPlayer := 0;
for i := 0 to HowManyPlayers - 1 do
with Players[0] do
begin
Name :='';
Pass :='2';
Nick :='';
Pin := '';
Active := True;
Integers[1] := 4; //ammount of traps u can setup;
Integers[6]:= 20; //time to run every round in minutes
end;
end;
function MSI_Conversation(texts: TStringArray; clickCont: TBooleanArray): boolean;
var
i, x, y: integer;
begin
if (not loggedIn) then
exit;
if (length(texts) <> length(clickCont)) then
begin
exit;
end;
for i := 0 to high(texts) do
begin
if (findText(x, y, texts[i], NPCChars, MCX1, MCY1, MCX2, MCY2)) then
begin
if (clickCont[i]) then
clickContinue(true, true)
else begin
mouse(x, y, 2, 2, true);
chatWait();
end;
result := (i = high(texts));
end;
wait(100 + random(300))
end;
end;
Procedure ClickChatBoxIntro; //clicks on green arrow in chatbox
var
x, y : integer;
begin
While findcolorspiraltolerance(x, y, 1403199, 223, 460, 293, 474, 15) do
begin
Mouse(230, 465, 50, 5, true);
wait(350+random(500));
end;
end;
Procedure SetupScript;
begin
Smart_Server := 135;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
DeclarePlayers;
SPS_Setup(RUNESCAPE_SURFACE, ['4_10', '5_10', '4_12', '5_12', '4_13', '3_13']);
MarkTime(ScriptStart);
end;
Procedure Proggy;
var
I: Integer;
begin
ClearDebug;
Players[CurrentPlayer].Integers[3] := GetAmountBox(InvBox(28)) - StartChinsAmmount;
IncEX(Players[CurrentPlayer].Integers[2], Players[CurrentPlayer].Integers[3]);
Players[CurrentPlayer].Integers[5] := TimeFromMark(RoundTime);
IncEX(Players[CurrentPlayer].Integers[4], Players[CurrentPlayer].Integers[5]);
Writeln('|****************************************************************************************|');
Writeln(Padr('| Red Chinchompa Hunter, By Fre | Currently Running: ' + Players[CurrentPlayer].Name, 90) +
'|');
Writeln('|****************************************************************************************|');
Writeln('| Nick | Total Chins | Chins catched This Login| Time this round | Total Time ran | ');
Writeln('|*************** ************* ************************* **************** ***************|');
for I := 0 to HowManyPlayers - 1 do
Writeln('|' + Padr(Players[I].Nick, 15)
+ '|' + Padr(inttostr(Players[i].Integers[2]), 13)
+ '|' + Padr(inttostr(Players[i].Integers[3]), 24)
+ '|' + Padr(MsToTime((Players[i].Integers[5]), Time_bare), 16)
+ '|' + Padr(MsToTime((Players[i].Integers[4]), Time_bare), 16)
+ '|' );
Writeln('This script has been running for ' + TimeRunning + '.')
Writeln('|***************************************************************************************|');
Writeln('|Wow that is amazing, Fre is the GodKing! |');
Writeln('|***************************************************************************************|');
end;
Function SpotTaken: Boolean;
var
BoxesTPA : TPointArray;
BoxTPA : T2DPointArray;
i, x, y : Integer;
begin
FindColorsSpiralTolerance(100, 100, BoxesTPA, 8168378, MSX1, MSY1, MSX2, MSY2, 20);
BoxTPA := SplitTPA(BoxesTPA, 1);
for i := 0 to high(BoxTPA) do
begin
if GetArrayLength(BoxTPA[i]) > 100 then
begin
MiddleTPAEx(BoxTPA[i], x, y);
MMouse(x, y, 2, 2);
wait(500+random(200));
Result := IsUpText('ox trap');
If Result then
Exit;
end;
end;
end;
Procedure SetupPlayer;
begin
FindNormalRandoms;
If not LoggedIn then
LoginPlayer;
FindNormalRandoms;
ClickChatBoxIntro;
SetAngle(0);
if SpotTaken then
begin
if ChangeWorld(RandomWorld(true, false)) then
SetupPlayer;
end;
MarkTime(RoundTime);
EndRound:= GetSystemTime + (Players[CurrentPlayer].Integers[6]* 60* 1000) + random(1* 60* 1000);
TrapsAtStart := InvCount;
StartChinsAmmount := GetAmountBox(InvBox(28));
ToggleMoneyPouch(false);
end;
Procedure AntiBan;
var
RanTab, HowLong, I, Time : Integer;
b : Boolean;
begin
Case random(1000) of
0:RandomRClick;
1:HoverSkill(Skill_Attack,False);
2:HoverSkill(Skill_strength,False);
3:HoverSkill(Skill_defence,False);
4:HoverSkill(Skill_hitpoints,False);
5:HoverSkill(Skill_hunter,False);
6:HoverSkill(Skill_woodcutting,False);
7:HoverSkill(Skill_runecrafting,False);
8:HoverSkill(Skill_cooking,False);
9:HoverSkill(Skill_magic,False);
10:PickUpMouse;
11:SetScreenMouse('n',10);
12:MissMouse(100,100);
13:
begin
RandomMovement;
SetAngle(0);
end;
14:BoredHuman;
15:
begin
RandomAngle(0);
SetAngle(0);
end;
16:MSI_Conversation(['blablabla'], [false]);
17:
begin
HowLong:=(Random(10000));
Case HowLong Of
0..2000:
Case Random(4) Of
0 : SleepAndMoveMouse(HowLong + Random(HowLong/10));
1 : Begin
RanTab := RandomRange(TAB_Combat, TAB_LogOut);
GameTab(RanTab);
Wait(HowLong + Random(HowLong/10));
GameTab(tab_Inv);
End;
2 : RandomRClick;
3 : begin
b := IsXPBarOpen;
ToggleXPBar(not b);
end;
End;
2001..5000:
Case Random(4) Of
1 : PickUpMouse;
2 : SleepAndMoveMouse(HowLong + Random(HowLong/10));
3 : If Random(4) = 2 Then
For I := 0 To Round(HowLong/800) Do
If I Mod 2 = 0 Then ExamineInv;
End;
5001..10000:
If Random(2) = 1 Then
RandomMovement
else
Wait(100);
10001..20000:
case Random(3) Of
1 : BoredHuman;
2 : RandomAngle(1);
End;
20001..999999:
begin
Time := GetSystemTime + HowLong;
while (Time > GetSystemTime) do
begin
wait(random(5000));
end;
end;
end;
end;
end;
MakeCompass('N');
SetAngle(0);
GameTab(tab_inv);
end;
function GoMMLocation: Boolean; //True if found water
var
WaterColor : TPointArray;
MMLake : T2DPointArray;
i: Integer;
MSLocation :Tbox;
begin
begin
FindColorsSpiralTolerance(MSX2/2, MSY2/2, WaterColor, 10325892, MMX1, MMY1, MMX2, MMY2, 25);
MMLake := SplitTPA(WaterColor,2);
SortATPASize(MMLake, true);
for i := 0 to high(MMLake) do
begin
if GetArrayLength(MMLake[i]) > 1000 then
begin
Result := True;
MSLocation := GetTPABounds(MMLake[i]);
Mouse(MSLocation.x2 + 11, MSLocation.y2 - 2, 4, 4, True);
Flag;
Wait(1000 + random(500));
Exit;
end;
end;
end;
end;
Function GoToStartPositionCross: Boolean;
var
DTMStartPositionMS, x, y, T, Tries : Integer;
Angle : Extended;
begin
writeln('Checking start position');
Case random(2) of
0:
begin
writeln('spot 1');
DTMStartPositionMS := DTMFromString('m1gAAAHic42JgYJBlZGDgAGJOIGYE4hlAvBKIpwDxIiBmAuI0IF4CVFsGxIlAHAzEC4B4BRBfBuJ7QJwJxL1AHN6iwRDroMGQ6akHxo0JFgyZ/noM3h0+DAETAxmyvSHs/0C1/ERgoNUMzERgBAAAcYMUXQ==');
MainSpot:= 1;
end;
1:
begin
writeln('spot 2');
DTMStartPositionMS := DTMFromString('mbQAAAHicY2VgYIhgZWBIAuKzQJwDxN+B2ICRgeEqUO4TEB8AYikg3yPHgCHP15DBt9OPIcfHgGF6kTPDf6AcPxoGKmVgRsNgAABQZgxM');
MainSpot:= 2;
end;
end;
T := GetSystemTime + 10000 + random(1000);
repeat
if (T < GetSystemTime) then
Break;
Result:= FindDTMRotatedAlternating(DTMStartPositionMS, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/30, Pi/30, Pi/Pi, Angle);
If not Result then
begin
writeln('we cant find the start location on MS.');
GoMMLocation;
Flag;
Inc(Tries);
if Tries > 3 then
begin
FreeDTM(DTMStartPositionMS);
Exit;
end;
end;
until(Result);
if Result then
writeln('Found the start location, going to setup traps.');
FreeDTM(DTMStartPositionMS);
end;
function FindMainPlant(var P:TPoint):Boolean;
var
i, x, y: integer;
Plants: TPointArray;
Plant: T2DPointArray;
begin
if findcolorsspiraltolerance(MSX2/2, MSY2/2, Plants, 5146957, MSX1 + 100, MSY1, MSX2 - 100, MSY2, 20)then
begin
Plant := SplitTPA(Plants, 4);
for i := 0 to high(Plant) do
if Length(Plant[i]) > 100 then
begin
Result := True;
wait(400 + random(100));
MiddleTPAEx(Plant[i], x, y);
P:= Point(x - 13, y - 10);
end;
end;
if Result then
begin
writeln('Found the plant to set traps arround!');
end else
writeln('Did not found the plant to set traps arround!');
end;
function FindMainPoint: Boolean;
var
T, x, y, Tries, DTMStartPositionMM: integer;
P: TPoint;
Angle: Extended;
begin
Result := FindMainPlant(P);
if Result then
Exit;
writeln('could not find MainPoint');
T := GetSystemTime + 10000 + random(1000);
repeat
if (T < GetSystemTime) then
Break;
begin
DTMStartPositionMM := DTMFromString('mwQAAAHic42RgYJjBxsCwDYj3A3EnEJcBcTsQLwPiOUBcC8TmjAwMekDsDsSBQGzHCBFzBmIlIJYFYu9KC4YWbx6GLAchhgh7WTAN4oPYILq9fy7Df6B9/AQw0CgGZgIYDgBvqxE/');
if FindDTMRotatedAlternating(DTMStartPositionMM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/30, Pi/30, Pi/Pi, Angle) then
begin
Mouse(x - 1, y - 1, 2, 2, true);
Flag;
Result := FindMainPlant(P);
Exit;
end;
Inc(Tries);
wait(1000 + random(1000));
if Tries > 3 then
begin
FreeDTM(DTMStartPositionMM);
Result := FindMainPlant(P);
Exit;
end;
FreeDTM(DTMStartPositionMM);
end;
Result := FindMainPlant(P);
until(false);
Result := FindMainPlant(P);
end;
function TakeTrapFast: Boolean; Forward;
function TakeTrapFastReverse: Boolean; Forward;
Function LayTrap(SearchFallenBox: Boolean): Boolean; //search for fallen traps
var
Trap, x, y : Integer;
begin
Trap := BitmapFromString(13, 9, 'meJzzTy/zSSnyTioAIs/EPI/4HCA' +
'JFGFABRA1QCmIGvfYLNfoDCADTRlQDUQWosAlMs05IgVIoikDGgJR' +
'AFHjGJbkEJIARGjKIGqAJgARRI1dUJy1XyTD0AEANs0p3Q==');
Result := FindBitmapToleranceIn(Trap, x, y, MIX1, MIY1, MIX2, MIY2 , 20);
if Result then
begin
Mouse(x - 5, y - 5 , 10, 10, true);
Flag;
end else
begin
writeln('We did not found box traps in our inventory');
FreeBitmap(Trap);
EndRound := GetSystemTime;
Exit;
end;
if SearchFallenBox then
begin
MarkTime(TrapSetTime);
case random(2) of
0:TakeTrapFast;
1:TakeTrapFastReverse;
end;
end else
wait(4000+random(1000));
end;
Procedure RenewTrap;
var
x, y, TrapCount, T : Integer;
begin
GetMousePos(x, y);
//checking if we are already on the tile with the box on that needs to be renewed
//if (x > 270) or (x < 245) then
Mouse(x - 2, y + 5, 4, 4, false);
TrapCount := InvCount + 1;
T:= GetSystemTime + 2000 + random(1000);
While ((InvCount < TrapCount) and (T > GetSystemTime)) do
wait(50 + random(50));
if not (T < GetSystemTime) then
begin
ChooseOption('alk here');
Flag;
wait(random(100));
if TrapCount >= InvCount then
LayTrap(true);
end else
MMouse(MSX1, MSY1, MSX2, MSY2);
end;
Function FindColorsSpiralToleranceOutBox(x, y: integer; var TPA: TPointArray; Color:integer; X1, Y1, X2, Y2, XX1, YY1, XX2, YY2, tol: integer): Boolean;
var
TPA1, TPA2, TPA3, TPA4: TPointArray;
begin
FindColorsSpiralTolerance(x, y, TPA1, color, X1, Y1, X2, YY1, 30)
TPA := CombineTPA(TPA, TPA1);
FindColorsSpiralTolerance(x, y, TPA2, color, X1, Y1, XX1, Y2, 30)
TPA := CombineTPA(TPA, TPA2);
FindColorsSpiralTolerance(x, y, TPA3, color, X1, YY2, X2, Y2, 30)
TPA := CombineTPA(TPA, TPA3);
FindColorsSpiralTolerance(x, y, TPA4, color, XX2, Y1, X2, Y2, 30)
TPA := CombineTPA(TPA, TPA4);
ClearDoubleTPA(TPA);
if (length(TPA) > 0) then
Result := true;
end;
procedure PickTrapOnMyTile; //Also lays trap
var
T, TrapCount: Integer;
begin
TrapCount := InvCount + 1;
Flag;
wait(500 + random(300));
T := GetSystemTime + 2000 + random(1000);
repeat
if T < GetSystemTime then
Break;
MMouse(250, 170, 12, 12);
wait(200+ random(200));
until(IsUpText('ox'));
if IsUpText('ox') then
ClickMouse2(True);
T := GetSystemTime + 2000 + random(1000);
While ((InvCount < TrapCount) and (T > GetSystemTime)) do
wait(50 + random(50));
if not (T < GetSystemTime) then
begin
if TrapCount >= InvCount then
LayTrap(true);
end else
MMouse(MSX1, MSY1, MSX2, MSY2);
end;
Function TakeTrapFast: Boolean; //fallen box color.
var
i, T: integer;
BoxColor: TPointArray;
Box: T2DPointArray;
MSLocation: TBox;
P: TPoint;
begin //6590356 = fallen box
writeln('Checking fast for traps !!!!');
if FindColorsSpiralTolerance(MSX2/2, MSY2/2, BoxColor, 6590356, MSX1 + 50 , MSY1 + 30 , MSX2 - 50 , MSY2 - 30, 50) then
begin
Box := SplitTPA(BoxColor, 1);
for i := 0 to high(Box) do
begin
FilterPointsDist(Box[i], 30, 200, 258, 176); //don't lay box we are setting up
if (length(Box[i]) > (150)) and (length(Box[i]) < (500)) then
FilterPointsDist(Box[i], 0, 10, MiddleTPA(Box[i]).x, MiddleTPA(Box[i]).y); //filter out TPA that are bigger then radius 10
if (length(Box[i]) > (100)) and (length(Box[i]) < (300)) then
begin
wait(100);
Result := true;
MSLocation := GetTPABounds(Box[i]);
T := GetSystemTime + 1000 + random(1000);
P := MiddleTPA(Box[i]);
repeat
Mmouse(P.x - 5, P.y - 5, 10, 10);
wait(200 + random(100));
if T < GetSystemTime then
break;
until(IsUpText('ox'));
if IsUpText('ox') then
begin
writeln('setting up fast trap');
if (TimeFromMark(TrapSetTime) < 2000) then
begin
if IsUpText('ake') then
begin
ClickMouse2(false);
While (TimeFromMark(TrapSetTime) < 1550) do
wait(50 + random(500));
if ChooseOption('ay') then
begin
MarkTime(TrapSetTime);
wait(800 + random(100));
TakeTrapFast;
Exit;
end;
end;
if IsUpText('ox') then
begin
While (TimeFromMark(TrapSetTime) < 1550) do
wait(50 + random(500));
Clickmouse2(true);
RenewTrap;
end;
end;
end;
While (TimeFromMark(TrapSetTime)) < 4000 do
wait(50 + random(500));
Exit;
end;
end;
end;
While (TimeFromMark(TrapSetTime)) < 4000 do
wait(50 + random(500));
Exit;
end;
Function TakeTrapFastReverse: Boolean; //fallen box color.
var
i, T: integer;
BoxColor: TPointArray;
Box: T2DPointArray;
MSLocation: TBox;
P: TPoint;
begin //6590356 = fallen box
writeln('Checking fast for traps !!!!');
if FindColorsSpiralTolerance(MSX2/2, MSY2/2, BoxColor, 6590356, MSX1 + 50 , MSY1 + 30 , MSX2 - 50 , MSY2 - 30, 50) then
begin
Box := SplitTPA(BoxColor, 1);
for i := 0 to high(Box) do
begin
FilterPointsDist(Box[i], 30, 200, 258, 176); //don't lay box we are setting up
if (length(Box[i]) > (150)) and (length(Box[i]) < (500)) then
FilterPointsDist(Box[i], 0, 10, MiddleTPA(Box[i]).x, MiddleTPA(Box[i]).y); //filter out TPA that are bigger then radius 10
if (length(Box[i]) > (100)) and (length(Box[i]) < (300)) then
begin
wait(100);
Result := true;
MSLocation := GetTPABounds(Box[i]);
T := GetSystemTime + 1000 + random(1000);
P := MiddleTPA(Box[i]);
repeat
Mmouse(P.x - 5, P.y - 5, 10, 10);
wait(200 + random(100));
if T < GetSystemTime then
break;
until(IsUpText('ox'));
if IsUpText('ox') then
begin
writeln('setting up fast trap');
if (TimeFromMark(TrapSetTime) < 2000) then
begin
if IsUpText('ake') then
begin
ClickMouse2(false);
While (TimeFromMark(TrapSetTime) < 1550) do
wait(50 + random(500));
if ChooseOption('ay') then
begin
MarkTime(TrapSetTime);
wait(800 + random(100));
TakeTrapFast;
Exit;
end;
end;
if IsUpText('ox') then
begin
Clickmouse2(False);
While (TimeFromMark(TrapSetTime) < 1550) do
wait(50 + random(500));
ChooseOption('alk here');
PickTrapOnMyTile;
end;
end;
end;
While (TimeFromMark(TrapSetTime)) < 4000 do
wait(50 + random(500));
Exit;
end;
end;
end;
While (TimeFromMark(TrapSetTime)) < 4000 do
wait(50 + random(500));
Exit;
end;
Function TakeTrap: Boolean; //check, dismantle and fallen box.
var
i, T: integer;
BoxColor: TPointArray;
Box: T2DPointArray;
MSLocation: TBox;
P: TPoint;
begin //7575211 = box color
writeln('Checking for traps that need to be reset');
if FindColorsSpiralTolerance(MSX2/2, MSY2/2, BoxColor, 7575211, MSX1 + 50 , MSY1 + 30 , MSX2 - 50 , MSY2 - 30, 50) then
begin
Box := SplitTPA(BoxColor, 1);
for i := 0 to high(Box) do
begin
if (length(Box[i]) > (150)) and (length(Box[i]) < (500)) then
FilterPointsDist(Box[i], 0, 10, MiddleTPA(Box[i]).x, MiddleTPA(Box[i]).y);
if (length(Box[i]) > (150)) and (length(Box[i]) < (500)) then
begin
Result := true;
MSLocation := GetTPABounds(Box[i]);
T := GetSystemTime + 2000 + random(1000);
repeat
P := MiddleTPA(Box[i]);
Mmouse(P.x - 5, P.y - 5, 10, 10);
wait(200 + random(100));
if T < GetSystemTime then
break;
until(IsUpText('ox'));
if IsUpText('ake') then
begin
ClickMouse2(false);
if ChooseOption('ay') then
begin
MarkTime(TrapSetTime);
wait(800 + random(100));
TakeTrapFast;
Exit;
end;
end;
if IsUpText('ox') then
begin
ClickMouse2(true);
RenewTrap;
end;
Exit;
end;
end;
end;
end;
Function TakeTrapReverse: Boolean; //check, dismantle and fallen box.
var
i, T: integer;
BoxColor: TPointArray;
Box: T2DPointArray;
MSLocation: TBox;
P: TPoint;
begin //7575211 = box color
writeln('Checking for traps that need to be reset');
if FindColorsSpiralTolerance(MSX2/2, MSY2/2, BoxColor, 7575211, MSX1 + 50 , MSY1 + 30 , MSX2 - 50 , MSY2 - 30, 50) then
begin
Box := SplitTPA(BoxColor, 1);
for i := 0 to high(Box) do
begin
if (length(Box[i]) > (150)) and (length(Box[i]) < (500)) then
FilterPointsDist(Box[i], 0, 10, MiddleTPA(Box[i]).x, MiddleTPA(Box[i]).y);
if (length(Box[i]) > (150)) and (length(Box[i]) < (500)) then
begin
Result := true;
MSLocation := GetTPABounds(Box[i]);
T := GetSystemTime + 2000 + random(1000);
repeat
P := MiddleTPA(Box[i]);
Mmouse(P.x - 5, P.y - 5, 10, 10);
wait(200 + random(100));
if T < GetSystemTime then
break;
until(IsUpText('ox'));
if IsUpText('ake') then
begin
ClickMouse2(false);
if ChooseOption('ay') then
begin
MarkTime(TrapSetTime);
wait(800 + random(100));
TakeTrapFast;
Exit;
end;
end;
if IsUpText('ox') then
begin
ClickMouse2(False);
ChooseOption('alk here');
PickTrapOnMyTile;
end;
Exit;
end;
end;
end;
end;
Procedure PickUpAllTraps; //Picks up boxes to logout.
var
BoxesTPA : TPointArray;
BoxTPA : T2DPointArray;
i, x, y, T : Integer;
begin
writeln('Gonna Pick up all boxes!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
T := GetSystemTime + 30000 + random(10000);
While FindColorSpiralTolerance(x, y, 8168378, MSX1, MSY1, MSX2, MSY2, 30) do
begin
if (pos('t your trap',GetBlackChatMessage) <> 0) then
GoMMLocation;
if T < GetSystemTime then
Exit;
repeat
begin
FindColorsSpiralTolerance(MSX2/2, MSY2/2, BoxesTPA, 8168378, MSX1, MSY1, MSX2, MSY2, 30);
BoxTPA := SplitTPA(BoxesTPA,5);
SortATPASize(BoxTPA, true);
for i := 0 to high(BoxTPA) do
begin
if GetArrayLength(BoxTPA[i]) > 10 then
begin
MiddleTPAEx(BoxTPA[i], x, y);
MMouse(x-5, y-5, 10, 10);
wait(300+random(200));
if IsUpText('ox') or IsUpText('ake') then
begin
ClickMouse2(true);
if (pos('t your trap',GetBlackChatMessage) <> 0) then
wait(2000 + random(1000));
end;
end;
end;
end;
until((InvCount = TrapsAtStart) or (T < GetSystemTime));
if T < GetSystemTime then
Exit;
end;
end;
Function SetTopCross: Boolean;
var
MainPoint, x, y : Integer;
Angle : Extended;
begin
if MainSpot = 1 then
MainPoint := DTMFromString('m1gAAAHic42JgYJBlZGDgAGJOIGYE4hlAvBKIpwDxIiBmAuI0IF4CVFsGxIlAHAzEC4B4BRBfBuJ7QJwJxL1AHN6iwRDroMGQ6akHxo0JFgyZ/noM3h0+DAETAxmyvSHs/0C1/ERgoNUMzERgBAAAcYMUXQ==');
if MainSpot = 2 then
MainPoint := DTMFromString('mbQAAAHicY2VgYIhgZWBIAuKzQJwDxN+B2ICRgeEqUO4TEB8AYikg3yPHgCHP15DBt9OPIcfHgGF6kTPDf6AcPxoGKmVgRsNgAABQZgxM');
if FindDTMRotatedAlternating(MainPoint, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/30, Pi/30, Pi/Pi, Angle) then
begin
Result:= True;
writeln('Setup Top box');
MMouse(x , y - 35, 15, 15);
wait(200 + random(100));
If IsUpText('alk') then
begin
ClickMouse2(true);
end else
ClickMouse2(false);
ChooseOption('alk');
Flag;
wait(random(200));
LayTrap(false);
end;
end;
Function SetBottomCross: Boolean;
var
MainPoint, x, y : Integer;
Angle : Extended;
begin
if MainSpot = 1 then
MainPoint := DTMFromString('m1gAAAHic42JgYJBlZGDgAGJOIGYE4hlAvBKIpwDxIiBmAuI0IF4CVFsGxIlAHAzEC4B4BRBfBuJ7QJwJxL1AHN6iwRDroMGQ6akHxo0JFgyZ/noM3h0+DAETAxmyvSHs/0C1/ERgoNUMzERgBAAAcYMUXQ==');
if MainSpot = 2 then
MainPoint := DTMFromString('mbQAAAHicY2VgYIhgZWBIAuKzQJwDxN+B2ICRgeEqUO4TEB8AYikg3yPHgCHP15DBt9OPIcfHgGF6kTPDf6AcPxoGKmVgRsNgAABQZgxM');
if FindDTMRotatedAlternating(MainPoint, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/30, Pi/30, Pi/Pi, Angle) then
begin
Result:= True;
writeln('Setup Bottom box');
MMouse(x , y + 40, 15, 15);
wait(200 + random(100));
If IsUpText('alk') then
begin
ClickMouse2(true);
end else
ClickMouse2(false);
ChooseOption('alk');
Flag;
wait(random(200));
LayTrap(false);
end;
end;
Function SetLeftCross: Boolean;
var
MainPoint, x, y : Integer;
Angle : Extended;
begin
if MainSpot = 1 then
MainPoint := DTMFromString('m1gAAAHic42JgYJBlZGDgAGJOIGYE4hlAvBKIpwDxIiBmAuI0IF4CVFsGxIlAHAzEC4B4BRBfBuJ7QJwJxL1AHN6iwRDroMGQ6akHxo0JFgyZ/noM3h0+DAETAxmyvSHs/0C1/ERgoNUMzERgBAAAcYMUXQ==');
if MainSpot = 2 then
MainPoint := DTMFromString('mbQAAAHicY2VgYIhgZWBIAuKzQJwDxN+B2ICRgeEqUO4TEB8AYikg3yPHgCHP15DBt9OPIcfHgGF6kTPDf6AcPxoGKmVgRsNgAABQZgxM');
if FindDTMRotatedAlternating(MainPoint, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/30, Pi/30, Pi/Pi, Angle) then
begin
Result:= True;
writeln('Setup Left box');
MMouse(x - 35, y , 15, 15);
wait(200 + random(100));
If IsUpText('alk') then
begin
ClickMouse2(true);
end else
ClickMouse2(false);
ChooseOption('alk');
Flag;
wait(random(200));
LayTrap(false);
end;
end;
Function SetRightCross: Boolean;
var
MainPoint, x, y : Integer;
Angle : Extended;
begin
if MainSpot = 1 then
MainPoint := DTMFromString('m1gAAAHic42JgYJBlZGDgAGJOIGYE4hlAvBKIpwDxIiBmAuI0IF4CVFsGxIlAHAzEC4B4BRBfBuJ7QJwJxL1AHN6iwRDroMGQ6akHxo0JFgyZ/noM3h0+DAETAxmyvSHs/0C1/ERgoNUMzERgBAAAcYMUXQ==');
if MainSpot = 2 then
MainPoint := DTMFromString('mbQAAAHicY2VgYIhgZWBIAuKzQJwDxN+B2ICRgeEqUO4TEB8AYikg3yPHgCHP15DBt9OPIcfHgGF6kTPDf6AcPxoGKmVgRsNgAABQZgxM');
if FindDTMRotatedAlternating(MainPoint, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/30, Pi/30, Pi/Pi, Angle) then
begin
Result:= True;
writeln('Setup Right box');
MMouse(x + 40, y, 15, 15);
wait(200 + random(100));
If IsUpText('alk') then
begin
ClickMouse2(true);
end else
ClickMouse2(false);
ChooseOption('alk');
Flag;
wait(random(200));
LayTrap(false);
end;
end;
function Check4Traps: boolean;
var
x, y, MainPoint: Integer;
Angle: Extended;
PointsBox: TBox;
begin
if MainSpot = 1 then
MainPoint := DTMFromString('m1gAAAHic42JgYJBlZGDgAGJOIGYE4hlAvBKIpwDxIiBmAuI0IF4CVFsGxIlAHAzEC4B4BRBfBuJ7QJwJxL1AHN6iwRDroMGQ6akHxo0JFgyZ/noM3h0+DAETAxmyvSHs/0C1/ERgoNUMzERgBAAAcYMUXQ==');
if MainSpot = 2 then
MainPoint := DTMFromString('mbQAAAHicY2VgYIhgZWBIAuKzQJwDxN+B2ICRgeEqUO4TEB8AYikg3yPHgCHP15DBt9OPIcfHgGF6kTPDf6AcPxoGKmVgRsNgAABQZgxM');
if FindDTMRotatedAlternating(MainPoint, x, y, MSX1, MSY1, MSX2, MSY2, -Pi/30, Pi/30, Pi/Pi, Angle) then
begin
writeln('Found mainpoint!');
Result := True;
PointsBox.x1 := x;
PointsBox.y1 := y - 35;
PointsBox.x2 := x + 20;
PointsBox.y2 := y - 15;
if not FindColorSpiralTolerance(x, y, 7575211, PointsBox.x1, PointsBox.y1, PointsBox.x2, PointsBox.y2, 30) then
SetTopCross;
PointsBox.x1 := x;
PointsBox.y1 := y + 40;
PointsBox.x2 := x + 20;
PointsBox.y2 := y + 60;
if not FindColorSpiralTolerance(x, y, 7575211, PointsBox.x1, PointsBox.y1, PointsBox.x2, PointsBox.y2, 30) then
SetBottomCross;
PointsBox.x1 := x - 35;
PointsBox.y1 := y;
PointsBox.x2 := x - 15;
PointsBox.y2 := y + 20;
if not FindColorSpiralTolerance(x, y, 7575211, PointsBox.x1, PointsBox.y1, PointsBox.x2, PointsBox.y2, 30) then
SetRightCross;
PointsBox.x1 := x - 35;
PointsBox.y1 := y;
PointsBox.x2 := x - 15;
PointsBox.y2 := y + 20;
if not FindColorSpiralTolerance(x, y, 7575211, PointsBox.x1, PointsBox.y1, PointsBox.x2, PointsBox.y2, 30) then
SetLeftCross;
end else
writeln('Did not found mainpoint!');
FreeDTM(MainPoint);
end;
Procedure CheckingTraps;
begin
Case random(2) of
0:
begin
if not TakeTrap then
if not Check4Traps then
AntiBan;
end;
1:
begin
if not TakeTrapReverse then
if not Check4Traps then
AntiBan;
end;
end;
end;
Function RandomizeTrapSetup:TIntegerArray;
var
TrapsLocations: TIntegerArray;
i : Integer;
begin
SetLength(TrapsLocations, Players[CurrentPlayer].Integers[1]);
for i := 0 to (Players[CurrentPlayer].Integers[1] - 1) do //chooses 3 or 4 random locations(numbers)
begin
TrapsLocations[i]:= Random(4);
end;
ClearSameIntegers(TrapsLocations); // checks if the same numbers (box location) appear twice.
While not ((High(TrapsLocations) + 1) = (Players[CurrentPlayer].Integers[1])) do //if not yet enough box location add more
begin
for i := (High(TrapsLocations) + 1) to (Players[CurrentPlayer].Integers[1] - 1) do
begin
SetLength(TrapsLocations, Players[CurrentPlayer].Integers[1]);
TrapsLocations[i]:= random(4);
ClearSameIntegers(TrapsLocations);
end;
end;
Result:= TrapsLocations;
end;
Procedure CheckInv;
var
x, y : Integer;
begin
if FindColorSpiralTolerance(x, y, 930145, 550, 200, 723 ,390, 15) then
begin
MMouse(x - 2, y - 2, 5, 5);
wait(500 + random(500));
if IsUpText('ed chin') then
begin
GetMousePos(x, y);
DragMouse(x, y, 0, 0, 711, 442, 5, 5);
end;
end;
end;
function sps_WindPath(xs, ys, xe, ye, gravity, wind, maxStep, targetArea: extended): TPointArray;
var
veloX, veloY, windX, windY, veloMag, dist, randomDist, lastDist, step: extended;
lastX, lastY: integer;
sqrt2, sqrt3, sqrt5: extended;
begin
sqrt2:= sqrt(2);
sqrt3:= sqrt(3);
sqrt5:= sqrt(5);
while hypot(xs - xe, ys - ye) > 1 do
begin
dist:= hypot(xs - xe, ys - ye);
wind:= minE(wind, dist);
if dist >= targetArea then
begin
windX:= windX / sqrt3 + (random(round(wind) * 2 + 5) - wind) / sqrt5;
windY:= windY / sqrt3 + (random(round(wind) * 2 + 5) - wind) / sqrt5;
end else
begin
windX:= windX / sqrt2;
windY:= windY / sqrt2;
if (maxStep < 15) then
begin
maxStep:= random(15) + 15;
end else
begin
maxStep:= maxStep / sqrt5;
end;
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) / 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;
SetArrayLength(Result, GetArrayLength(Result) + 1);
Result[ High(Result) ] := Point(Round(xs), Round(ys));
step:= hypot(xs - lastX, ys - lastY);
lastdist:= dist;
end;
end;
function SPS_WalkToPosEx(P: TPoint; FlagDist: Integer): boolean;
var
MM: TPoint;
begin
if not LoggedIn then Exit;
MM := SPS_PosToMM(P);
if (MM.X > 0) then
begin
Mouse(MM.X-2, MM.Y-2, 4, 4, True);
Wait(200+Random(300));
FFlag(FlagDist);
Result := True;
end;
end;
function sps_WindWalk(T: TPoint): Boolean;
var
I, Tries,Tries2,Tries3: Integer;
M, P: TPoint;
CTRLPoints: TPointArray;
begin
P := T;
RunEnergy(20);
repeat
if Length(CtrlPoints)=0 then
begin
M := SPS_GetMyPos;
CtrlPoints := sps_WindPath(M.x, M.y, P.X, P.Y, 22.5, 12.5, 40, 20);
writeln('length ' + tostr(length(ctrlpoints)));
while ((length(CtrlPoints) > 500) and (Tries2 < 5) ) do
begin
SetArrayLength(CTRLPoints,0);
CtrlPoints := sps_WindPath(M.x, M.y, P.X, P.Y, 22.5, 12.5, 40, 20);
Inc(Tries2);
end;
if (Tries2 > 4) then
Exit;
Inc(Tries);
if(Tries > 3)then
Exit;
end;
Inc(Tries3);
if Tries3 > 5 then
Exit;
for I:= High(CtrlPoints) downto 0 do
begin
if sps_WalkToPosEx(CtrlPoints[i], 60) then
begin
Result := I = High(CtrlPoints);
Break;
end;
end;
until(Result);
end;
procedure OpenCastleWarsDoor;
var
x, y, i, MMDoor: Integer;
DoorColors: TPointArray;
Door: T2DPointArray;
Angle: Extended;
begin
MMDoor:= DTMFromString('mbQAAAHicY2VgYDBnY2AwZIPQ/kAcDMRXgeLrgfgmEJ8C4vtAnJ2TzvCVhRmMW/tng/F/oDg/FEtCMSMQM6NhMAAAX14NWw==');
if FindDTMRotatedAlternating(MMDoor, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/30, Pi/30, Pi/Pi, Angle) then
begin
Mouse(x, y, 1, 1, true);
Flag;
FreeDTM(MMDoor);
wait(1000+random(1000));
end;
if FindColorsSpiralTolerance(MSX2/2, MSY2/2, DoorColors, 3227466, MSX1, MSY1, MSX2, MSY2, 15) then
begin
Door := SplitTPA(DoorColors, 5);
for i := 0 to high(Door) do
if high(Door[i]) > 5 then
begin
MiddleTPAEx(Door[i], x, y);
Mmouse(x, y, 1, 1);
wait(500+random(100));
if IsUpText('lose') then
begin
Writeln('CW door is already open');
Exit;
end;
if IsUpText('pen') then
begin
Clickmouse2(True);
Flag;
writeln('Opened CastleWars door!');
Exit;
end;
end;
end;
end;
procedure OpenYanilleDoors(ReLocate: Boolean);
var
x, y, i, MMDoor: Integer;
DoorColors: TPointArray;
Door: T2DPointArray;
Angle: Extended;
begin
if ReLocate then
begin
MMDoor:= DTMFromString('mWAAAAHicY2FgYFBhY2CwAWInILYF4udAsXtA/AyI3wNxUacew1dmVjj+DxTjR8KMQMyMhEEAABJuCew=');
if FindDTMRotatedAlternating(MMDoor, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/30, Pi/30, Pi/Pi, Angle) then
begin
Mouse(x, y, 1, 1, true);
Flag;
FreeDTM(MMDoor);
wait(1000+random(1000));
end;
end;
if FindColorsSpiralTolerance(MSX2/2, MSY2/2, DoorColors, 3561082, MSX2/2, MSY1, MSX2, MSY2, 25) then
begin
Door := SplitTPA(DoorColors, 5);
if high(Door) = 0 then
begin
FindColorsSpiralTolerance(MSX2/2, MSY2/2, DoorColors, 3561082, MSX2/2, MSY1, MSX2, MSY2, 40);
Door := SplitTPA(DoorColors, 5);
end;
for i := 0 to high(Door) do
if (high(Door[i]) > 500) and (high(Door[i]) < 1300) then
begin
MiddleTPAEx(Door[i], x, y);
Mmouse(x, y, 1, 1);
wait(500+random(100));
if IsUpText('lose') then
begin
Writeln('Yanille door is already open');
Exit;
end;
if IsUpText('pen') then
begin
Clickmouse2(True);
writeln('Opened Yanille door!');
Exit;
end;
end;
end;
end;
procedure OpenHunterShopDoors;
var
x, y, i, MMDoor: Integer;
DoorColors: TPointArray;
Door: T2DPointArray;
Angle: Extended;
begin
MMDoor:= DTMFromString('mWAAAAHicY2FgYChjYmCIgmIXIA4DipUAcS0QBwNxfpU2wwdWdjj+DxTjR8KMQMyMhEEAALpqCFM=');
if FindDTMRotatedAlternating(MMDoor, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/30, Pi/30, Pi/Pi, Angle) then
begin
Mouse(x, y, 1, 1, true);
Flag;
FreeDTM(MMDoor);
wait(2000+random(1000));
end;
if FindColorsSpiralTolerance(MSX2/2, MSY2/2, DoorColors, 936293, MSX2/2, MSY1, MSX2, MSY2, 15) then
begin
Door := SplitTPA(DoorColors, 5);
for i := 0 to high(Door) do
begin
MiddleTPAEx(Door[i], x, y);
Mmouse(x, y, 1, 1);
wait(500+random(100));
if IsUpText('lose') then
begin
Writeln('Shop door is already open');
Exit;
end;
if IsUpText('pen') then
begin
Clickmouse2(True);
writeln('Opened huntershop door!');
Exit;
end;
end;
end;
end;
procedure BuyBoxTraps;
var
x, y, i, T: Integer;
AleckColors: TPointArray;
Aleck: T2DPointArray;
begin
T := GetSystemTime + 60000 + random(10000);
While not InvFull do
begin
ClickNorth(2);
if T < GetSystemTime then
Break;
if FindColorsSpiralTolerance(MSX2/2, MSY2/2, AleckColors, 6720182, MSX1, MSY1, MSX2, MSY2, 25) then
begin
Aleck := SplitTPA(AleckColors, 3);
for i := 0 to high(Aleck) - 1 do
if (length(Aleck[i]) > 5) and (length(Aleck[i]) < 100) then
begin
MiddleTPAEx(Aleck[i], x, y);
Mmouse(x, y, 1, 1);
wait(100+random(100));
if IsUpText('leck') then
begin
ClickMouse2(False);
ChooseOption('rade');
Flag;
Wait(1000 + random(1000));
Mouse(295, 60, 15 ,15, False);
ChooseOption('50');
SetAngle(0);
wait(1000 + random(1000));
if PinScreen then
InPin(Players[CurrentPlayer].Pin);
MMouse(483, 15, 5, 5);
wait(300 + random(200));
if IsUpText('lose') then
Clickmouse2(True);
Exit;
end;
end;
end;
writeln('round');
end;
end;
procedure GetNewRing(where: string);forward;
function InCastleBank: Boolean; //Checks for a water color vertical longer then 130 pixels.
var
x,y :integer;
TPA: TPointArray;
WaterFlow: T2DPointArray;
B: TBox;
begin
if findcolorsspiraltolerance(x, y, TPA, 10326148, MMX1, MMY1, MMX2, MMY2, 30) then
begin
WaterFlow := SplitTPA(TPA, 15);
SortATPASize(WaterFlow, True);
B := GetTPABounds(WaterFlow[0]);
wait(5000);
writeln('We found a water flow with the length of = ' + (tostr(B.y2 - B.y1)) +'. If this is longer then 100 then we are at Castle Wars bank');
Result := (B.y2 - B.y1) > 100
end;
end;
function DuelRingTele(where :string):Boolean;
begin
Result := WearingItem(11);
if not Result then
Exit;
if where = 'ars' then
begin
if InCastleBank then
Exit;
end;
MouseEquippedItem('ring', 0);
ClickMouse2(False);
if OptionsExist(['1'], False) then
begin
GetNewRing(where);
MouseEquippedItem('ring', 0);
end else
begin
Result := ChooseOption(where);
end;
Wait(5000 + random(2000));
end;
procedure Bank;
var
x, y, i, CastleBankDTM: Integer;
Angle: Extended;
begin
writeln('depositing valuables!');
DuelRingTele('ars');
GameTab(25);
CastleBankDTM := DTMFromString('mWAAAAHicY2FgYJBiY2CQAWJ5KJ4CFAsF4nIgrgPihKQohp+sDHD8HyjGj4QZgZgJCYMAAITeB7g=');
if FindDTMRotatedAlternating(CastleBankDTM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/30, Pi/30, Pi/Pi, Angle) then
Mouse(x - 1, y - 1, 2, 2, true);
Flag;
wait(1000+random(1000));
OpenBankChest(21);
for i := 0 to 28 do
begin
if ExistsItem(i) then
if GetAmountBox(InvBox(i)) > 2 then
if InvMouse(i, 0) then
ChooseOption('All');
end;
Case random(2) of
0:CloseBank;
end;
end;
function GoToHunterShop: Boolean;
var
x, y, i: Integer;
Angle: Extended;
TPA,CWToYannileDoors, ToHunterShopDoor: TPointArray;
Water: T2DPointArray;
B: Tbox;
begin
Bank;// safety measure incase you die
While InvCount < 10 do
begin
OpenCastleWarsDoor;
writeln('Going to walk to hunter shop');
if FindColorsSpiralTolerance(x, y, TPA, 10390662, MMX1, MMY1, MMX2, MMY2, 25) then
begin
writeln('found water');
Water := SplitTPA(TPA, 1);
SortATPASize(Water, True);
B := GetTPABounds(Water[0]);
MMouse(B.x2 - 4, B.y2 - 4, 2, 2);
GetMousePos(x, y);
While not IsUpText('alk here') do
begin
MMouse(x - i, y - i, 0, 0);
Inc(i);
wait(100 + random(100));
end;
ClickMouse2(True);
Flag;
end;
FindNormalRandoms;
CWToYannileDoors := [Point(1671, 4376), Point(1680, 4376), Point(1690, 4376),
Point(1700, 4376), Point(1711, 4378), Point(1721, 4379), Point(1732, 4381),
Point(1740, 4381), Point(1749, 4381), Point(1761, 4383), Point(1771, 4383),
Point(1781, 4383), Point(1791, 4383), Point(1802, 4383), Point(1814, 4384),
Point(1828, 4384), Point(1843, 4385), Point(1857, 4389), Point(1870, 4392),
Point(1880, 4392), Point(1894, 4392), Point(1906, 4392), Point(1921, 4388),
Point(1933, 4384), Point(1940, 4379), Point(1948, 4368), Point(1956, 4359),
Point(1960, 4348), Point(1960, 4336), Point(1962, 4326), Point(1964, 4314),
Point(1966, 4302)];
SPS_WalkPath(CWToYannileDoors);
FindNormalRandoms;
OpenYanilleDoors(True);
wait(2000 + random(1000));
Mouse(696, 83, 1, 1, true);
Flag;
wait(1000 + random(1000));
OpenYanilleDoors(False);
ToHunterShopDoor := [Point(2049, 4314), Point(2056, 4319), Point(2066, 4323),
Point(2073, 4327), Point(2080, 4331), Point(2086, 4338), Point(2089, 4339)];
SPS_WalkPath(ToHunterShopDoor);
Flag;
wait(1000 + random(1000));
OpenHunterShopDoors;
wait(2000 + random(1000));
FindNormalRandoms;
Mouse(414, 275, 15, 15, true);
Flag;
wait(1000 + random(1000));
BuyBoxTraps;
Result := InvCount > 10;
end;
end;
procedure GetNewRing(where:string);
var
CastleBankDTM, RingDTM, x, y: Integer;
Angle: Extended;
begin
RingDTM := DTMFromString('mQwAAAHicY2ZgYLjBzMBwHYgvAXEfkD8diOcCMU8QH8OLE0oMa6ZIMvAD+TDMjISBAABleQgd');
ChooseOption('ars');
Wait(4000 + random(1000));
CastleBankDTM := DTMFromString('mWAAAAHicY2FgYJBiY2CQAWJ5KJ4CFAsF4nIgrgPihKQohp+sDHD8HyjGj4QZgZgJCYMAAITeB7g=');
if FindDTMRotatedAlternating(CastleBankDTM, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/30, Pi/30, Pi/Pi, Angle) then
Mouse(x - 1, y - 1, 2, 2, true);
Flag;
wait(1000+random(1000));
OpenBankChest(21);
if InvFull then
Deposit(1,1,true);
While not FindColorSpiralTolerance(x, y, 1341457, MSX1, MSY1, MSX2, MSY2, 15) do
FixBankTab;
begin
MMouse(x - 10, y, 10, 10);
wait(500 + random(500));
if IsUpText('uell') then
ClickMouse2(True);
wait(500+ random(500));
end;
CloseBank;
GameTab(25);
if FindColorSpiralTolerance(x, y, 1341457, MIX1, MIY1, MIX2, MIY2, 15) then
begin
MMouse(x - 10, y, 10, 10);
wait(300 + random(500));
if IsUpText('uell') then
ClickMouse2(True);
wait(500+ random(500));
end;
DuelRingTele(Where);
FreeDTM(RingDTM);
FreeDTM(CastleBankDTM);
end;
procedure TeleAndWalkToStartPosition;forward;
procedure GetMoreBoxTraps;
begin
writeln('Not enough box traps in inventory, going to get more!');
if DuelRingTele('ars') then
GoToHunterShop;
RestUntil(95);
TeleAndWalkToStartPosition;
end;
procedure TeleAndWalkToStartPosition;
var
HuntingGroundPath: TPointArray;
begin
if SPS_WalkToPos(Point(2073, 5005)) then
Exit;
writeln('Repositiong by teleing!');
DuelRingTele('obilising');
wait(5000 + random(2000));
FindNormalRandoms;
HuntingGroundPath := [Point(1494, 5291), Point(1508, 5292), Point(1525, 5292),
Point(1540, 5291), Point(1553, 5291), Point(1569, 5291), Point(1582, 5292),
Point(1592, 5292), Point(1614, 5292), Point(1626, 5292), Point(1642, 5292),
Point(1659, 5292), Point(1674, 5292), Point(1689, 5292), Point(1707, 5292),
Point(1725, 5292), Point(1743, 5292), Point(1760, 5291), Point(1777, 5291),
Point(1797, 5287), Point(1808, 5283), Point(1820, 5280), Point(1838, 5274),
Point(1851, 5268), Point(1865, 5261), Point(1880, 5255), Point(1893, 5250),
Point(1909, 5240), Point(1923, 5226), Point(1936, 5215), Point(1944, 5208),
Point(1953, 5197), Point(1963, 5187), Point(1972, 5178), Point(1979, 5169),
Point(1987, 5157), Point(1991, 5143), Point(1998, 5131), Point(2000, 5111),
Point(2005, 5094), Point(2005, 5079), Point(2011, 5065), Point(2015, 5053),
Point(2018, 5040), Point(2029, 5031), Point(2040, 5031), Point(2050, 5020),
Point(2060, 5011), Point(2073, 5005)];
if not SPS_WalkPath(HuntingGroundPath) then
SPS_WalkPath(HuntingGroundPath);
end;
Function TrapsCross(TrapSetup:TIntegerArray): Boolean;
var
i : Integer;
begin
Result := false;
if not GoToStartPositionCross then
TeleAndWalkToStartPosition;
Flag;
wait(1000 + random(1000));
for i := high(TrapSetup) Downto 0 do
begin
if TrapSetup[i] = 0 then
SetRightCross;
if TrapSetup[i] = 1 then
SetTopCross;
if TrapSetup[i] = 2 then
SetBottomCross;
if TrapSetup[i] = 3 then
SetLeftCross;
end;
Result := (TrapsAtStart > InvCount );
end;
Function Setuptraps: Boolean;
begin
Case random(2) of
0:Result := TrapsCross(RandomizeTrapSetup);
1:Result := TrapsCross(RandomizeTrapSetup);
end;
end;
procedure MainLoop;
begin
if not loggedIn then
LoginPlayer;
FindNormalRandoms;
if InvCount < 9 then
GetMoreBoxTraps;
if SetupTraps then
begin
While EndRound > GetSystemTime do
begin
if not LoggedIn then
LoginPlayer;
FindNormalRandoms;
CheckingTraps;
ChooseOption('ancel');
CheckInv;
end;
end;
PickUpAllTraps;
Proggy;
end;
begin
SetupScript;
SetupPlayer;
repeat
MainLoop;
NextPlayer(true);
SetupPlayer;
until(TimeFromMark(ScriptStart) > (ScriptTime * 60 * 1000));
Logout;
OpenWebPage('C:\Program Files (x86)\AutoHotkey\RestartSimba1');
end.
[\SIMBA]
I can post more script is that is needed.
I also made a pizza maker.
Bought ingredients in food shop made pizza banked in draynor (deposit box at entrana monks was not out when i made this script)
I started on a dungeoneering script but i gave up :s
Also made a diamond bolt maker
Also a power miner
A tanner in al-kharid
A few years ago i made a mage training arena script.
I did all the chambers except the telekenetic one. (don't have this script anymore)
Next project abyss crafter
I hope to see you guys soon :-)Hunter lvl of the accs is in the high 60.
Better lvl would get more succesfull catches and would result in a higher ratio of chins catched / hr.
[BANANA]
|****************************************************************************************|
| Red Chinchompa Hunter, By Fre | Currently Running: [email]xxxxxxxxxxxxxxxxxxxxxxxxx[/email] |
|****************************************************************************************|
| Nick | Total Chins | Chins catched This Login| Time this round | Total Time ran |
|*************** ************* ************************* **************** ***************|
|xxx |132 |2 |00:04:32 |01:07:27 |
|xxxx |202 |4 |00:05:36 |02:36:03 |
|xxx |195 |4 |00:04:13 |02:04:35 |
This script has been running for 6 Hours, 2 Minutes and 7 Seconds.
|***************************************************************************************|
|Wow that is amazing, Fre is the GodKing! |
|***************************************************************************************|[/BANANA]