cosmasjdz
2015-02-20 04:25:08
How Long have You Played Runescape?
10 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
Some VB, C++
Are you a member of any other communities?
No
Tell us about yourself…
Please show us one (or multiple) of your scripts.
10 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
What is your general programming knowledge?
Some VB, C++
Are you a member of any other communities?
No
Tell us about yourself…
From: cosmasjdz
I am 27 years old, working sales manager at paint and varnish store. Also studying mechanical engineering. My hobby is scripting and watching basketball. Favourite teams Spurs and Hawks.
Please show us one (or multiple) of your scripts.
program CosmasJdzRedEggs;
{$DEFINE SMART}
{$i srl-6/srl.simba}
{$i srl-6/lib/misc/srlplayerform.simba}
{$I SPS/lib/SPS-RS3.Simba}
// Farms red spider eggs at bank of goodwill //
{ Since cant attach stuff here so setup goes there:
Download map and place in runescape_other: http://i.imgur.com/UhRQzL1.png?1
Graphics mode opengl preffered.
Bank: http://i.imgur.com/8IPXAhh.png?1
Setup: http://i.imgur.com/QGGjwok.png?1
Save inventory in setup as Preset1
Progress reports: http://i.imgur.com/Vhd55uZ.png?1
}
const
PosDtm := DTMFromString ('mbQAAAHicY2VgYBBigAANIJaC8mWAWA6IpaFyBkDs4a7LsOz/f4bPnznA+PLV8wz/geKSaJgRiFmBmBkJgwEAof0MFg==');
Background := BitmapFromString (550, 130, 'meJztwjENAAAMAyD/biqqfy1M' +
'xT4I6aKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq' +
'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq' +
'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq' +
'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq' +
'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq' +
'qqqqqqqqqqqqqqqqqr+P8MkrPg=');
PossibleWorldsArray = [4, 5, 6, 9, 10, 12, 14, 15, 16, 21, 22, 23, 24, 25, 26, 27, 28, 31, 32, 35, 36, 37, 39, 40, 44, 45, 46, 49, 50, 51, 53, 54, 56, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, 82, 83, 84, 85, 87, 88, 89, 91, 92, 98, 99, 100, 103, 104, 105, 106, 116, 117, 119, 123, 124, 134, 138];
Centerx := 290;
Centery := 199;
LootingBox := inttobox (194, 105, 412, 272);
var
{ Patternloot variables }
shiftx := 0;
shifty := 0;
StaticPoints := [[ - 32, 32], [0, 32], [32, 32], [ - 32, 0], [32, 0], [ - 32, - 32], [0, - 32], [32, - 32]];
StaticRotatedPoints, DynamicPoints: array [0..7] of array [0..1] of extended;
StandartEggsLocationsArray: array [0..7] of boolean;
LootingPattern: array [0..7] of integer;
{ Other variables }
Miscli := 0;
CheckedToPile := 0;
Whopped := false;
LootAntibanned := false;
Fail := 0;
Flag := 0;
TripsDone := 0;
RedNoob := 0;
EggsBanked, EggsOnFloor, MiniBreakTimer, BreakingTime, RestartTime: integer;
CurrentTripTime, TotalScriptTime, PlayersTimer, SixhourFixTime: ttimemarker;
BreakEvery := 2150000;
BreakFor := 432000;
procedure InitPlayerForm();
begin
with playerForm do
begin
name := 'CosmasJDZ Eggs form';
editBoxLabels := ['Run time before switch(mins)', 'Fails allowed'];
editBoxDefaults := ['360', '10'];
comboBoxLabels := ['World', 'Alternative looting?'];
comboBoxDefaults := ['63', 'False'];
setLength(comboBoxItems, length(comboBoxLabels));
comboBoxItems[0] := ['4', '5', '6', '9', '10', '12', '14', ' 15', '16', '21', '22', '23', '24', '25', '26', '27', '28', '31', '32', '35', '36', '37', '39', '40', '44', '45', '46', '49', '50', '51', '53', '54', '56', '58', '59', '60', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '76', '77', '78', '79', ' 82', '83', '84', '85', '87', '88', ' 89', '91', '92', '98', '99', '100', '103', '104', '105', '106', '116', '117', '119', '123', '124', '134', '138'];
comboBoxItems[1] := ['False', 'True'];
end;
end;
procedure DeclarePlayers();
var
i: Integer;
begin
players.setup(playerForm.players);
currentPlayer := 0;
for i := 0 to high(players) do
with players[i] do
begin
integers[0] := strToInt(playerForm.players[i].settings[0]);
integers[1] := strToInt(playerForm.players[i].settings[1]);
integers[2] := strtoint(playerform.players[i].settings[2]);
booleans[0] := strtobool(playerform.players[i].settings[3]);
end;
end;
procedure Statusas(debugMessage: string);
var
h, m, s, ht, mt, st: Integer;
begin
Smartimage.clearArea(inttobox(1, 450, 551, 580));
convertTime((TotalScriptTime.gettime()), h, m, s);
convertTime((CurrentTripTime.gettime()), ht, mt, st);
smartImage.drawBitmap(Background, point(1, 450));
smartImage.drawText(' Cosmas JDZ Red eggs v.3.0 ' + ' Fails: ' + tostr(fail) + ' Flags ' + tostr(flag), point(10, 460), SmallChars, false, 1054574);
smartImage.drawText(' This trip time: ' + (tostr(mt) + 'm ' + toStr(s) + 's') + ' Trips done: ' + tostring(TripsDone) + ' Worldhops: ' + tostr(RedNoob), point(10, 475), SmallChars, false, 1054574);
smartImage.drawText(' Time running: ' + toStr(h) + 'h ' + toStr(m) + 'm ' + toStr(s) + 's' + ' Eggs collected: ' + tostring(trunc(EggsBanked)) + ' Eggs/Hour: ' + tostring(trunc(((EggsBanked + 0.00000001) / (TotalScriptTime.getTime() + 0.00000001)) * 3600000)), point(10, 490), SmallChars, false, 1054574);
smartimage.drawText(' Now: ' + debugMessage, point(10, 505), SmallChars, false, 1054574);
end;
procedure breakTimes();
begin
MiniBreakTimer := getSystemTime() + 2 * (breakevery + random( - 280800, 280800));
BreakingTime := breakfor + random(60000, 600000) + random( - 21600, 21600);
Statusas('Generating break times');
end;
procedure TakeBreak();
begin
if getSystemTime() >= MiniBreakTimer then
begin
Statusas('Taking a break');
RestartTime := (getSystemTime() + BreakingTime);
wait(random(2000, 4000));
players[currentplayer].exitToLobby();
if getsystemtime() >= RestartTime then
wait(random(478000, 900000));
repeat
wait(15000 + random( - 7500, 7500));
Statusas('Miliseconds left: ' + tostr(RestartTime - getsystemtime()));
until getSystemTime() >= RestartTime;
players[currentplayer].exittolobby();
players[currentplayer].switchtoworld(PossibleWorldsArray[random(0, 78)]);
wait(gaussrangeint(5500, 7500));
exitTreasure();
breaktimes();
mainscreen.setAngle(ms_angle_high);
end;
end;
procedure Logintow();
begin
players[currentplayer].logintolobby();
players[currentplayer].switchtoworld(players[currentplayer].integers[2]);
wait(gaussrangeint(4200, 6750));
minimap.clickcompass();
mainscreen.setzoom(true);
mainscreen.setangle(ms_angle_high);
exitTreasure();
end;
procedure MiniAntiban();
begin
if not isloggedin() then
exit;
case random(18457) of
0..341: Minimap.setAngle(trunc(minimap.getangledegrees()) + random( - 145, 145));
342..451: Minimap.setAngle(trunc(minimap.getangledegrees()) + gaussrangeint(115, 135));
452..515: Minimap.setAngle(trunc(minimap.getangledegrees()) + gaussrangeint( - 115, - 135));
516..525: hoverskill(random(1, 28));
526..614: hoverskill(skill_summoning);
614..619: boredhuman();
1016..1018:
begin
if tabbackpack.count() >= 4 then
mouse(MiddleBox(tabbackpack.getslotbox(random(4, tabbackpack.count()))), mouse_right);
chooseoption.select(['examine']);
end;
end;
end;
procedure CloseBank();
var
afterbanktimer: ttimemarker;
begin
BankScreen.clickButton(BANK_BUTTON_PRESET_1);
afterbanktimer.start();
repeat
wait(gaussrangeint(178, 283));
until ((bankscreen.isOpen() = false) or (Afterbanktimer.gettime() >= 5000));
if bankscreen.isOpen() then
begin
bankscreen.close();
wait(gaussrangeint(1745, 3654));
end;
Mainscreen.setAngle(ms_angle_high);
inc(TripsDone);
end;
procedure InBank();
begin
if not isloggedin() then
exit;
if (((101 >= getitemamount(bankscreen.getbankslotbox(1))) or (2 >= getitemamount(bankscreen.getbankslotbox(2)))) or (2 >= getitemamount(bankscreen.getbankslotbox(4)))) then
begin
Statusas('Not enough scrolls found int the bank');
players[currentplayer].isactive := false;
closeBank();
exit;
end;
wait(gaussrangeint(512, 874));
case random(118) of
0..9:
begin
wait(gaussrangeint(250, 475));
mousebox(BankScreen.getPackSlotBox(gaussrangeint(4, 25)), mouse_right);
wait(gaussrangeint(250, 475));
if chooseoption.isOpen() then
chooseoption.select(['All', 'Deposti-All']);
wait(gaussrangeint(315, 785));
end;
10..12:
begin
wait(gaussrangeint(411, 785));
mousebox(BankScreen.getBankSlotBox(3), mouse_right);
wait(gaussrangeint(250, 475));
if chooseoption.isOpen() then
chooseoption.select(['Examine']);
wait(gaussrangeint(411, 785));
end;
end;
closeBank();
end;
procedure BankFailsafe();
var
x, y, i: integer;
TPA: TPointArray;
ATPA: T2DPointArray;
btm: ttimemarker;
begin
if not Isloggedin() then
exit;
Statusas('Bank failsafe');
if not bankscreen.isOpen() then
begin
mousecircle(599, 35, 10, mouse_left);
mousebox(mainscreen.getbounds(), mouse_move);
minimap.setAngle(135 + random( - 15, 17));
wait(random(1250, 2354));
FindColorsSpiralTolerance(x, y, TPA, 10673123, mainScreen.getBounds(), 2, colorSetting(2, 0.26, 2.06));
ATPA := TPA.toATPA(20, 20);
ATPA.filterBetween(0, 3);
ATPA.sortFromMidPoint(mainscreen.playerPoint);
smartImage.debugATPA(ATPA);
Statusas('Banking trying to catch bank from roof top');
for i := 0 to 3 do
begin
if length(atpa) > 0 then
mouse(middleTPA(ATPA[0]).x, middleTPA(ATPA[0]).y + (30 * i) + random( - 5, 5), MOUSE_MOVE);
if isMouseOverText(['Donate', 'odwill', 'ell'], 500) then
begin
btm.start();
fastclick(MOUSE_right);
wait(547 + random(200));
ChooseOption.select(['Bank', 'Open Bank']);
repeat
wait(random(1050, 1415));
until ((bankscreen.isopen() = true) or (btm.gettime() > 8000));
if bankscreen.isOpen() then
break;
end;
end;
end;
if not bankscreen.isopen() then
begin
statusas('Havent banked');
inc(fail);
if fail > players[currentplayer].integers[1] then
terminatescript;
end
else
InBank();
end;
function Bank(): boolean;
var
x, xb, xp, y, yp, yb, i: integer;
TPA, TPAB, TPAP: TPointArray;
ATPA, ATPAB, ATPAP: T2DPointArray;
begin
if not Isloggedin() then
exit;
result := false;
Statusas('Searching for bank by shinny gold >:-)');
FindColorsSpiralTolerance(x, y, TPA, 10673123, mainScreen.getBounds(), 2, colorSetting(2, 0.26, 2.06));
ATPA := clustertpa(TPA, 4);
ATPA.filterBetween(0, 20);
smartimage.debugtpa(tpa);
smartImage.debugATPA(ATPA);
for i := 0 to high(ATPA) do
begin
Mouse(middleTPA(ATPA[i]), Mouse_move);
if isMouseOverText(['Donate', 'odwill', 'ell'], 500) then
begin
Fastclick(Mouse_right);
Chooseoption.isOpen(1000);
wait(gaussrangeint(166, 289));
ChooseOption.select(['Bank', 'Open Bank']);
if bankscreen.isOpen(5000) then
begin
Inbank();
result := true;
exit;
end;
end;
end;
Statusas('Trying to bank searching bank booth blue and pink colors');
if FindColorsSpiralTolerance(xb, yb, TPAB, 10326079, mainScreen.getBounds(), 6, colorSetting(2, 0.07, 0.22)) then
begin
ATPAB := clustertpa(TPAB, 4);
ATPAB.filterBetween(0, 20);
smartimage.debugtpa(tpaB);
smartImage.debugATPA(ATPAB);
FindColorsSpiralTolerance(xp, yp, TPAP, 10133924, mainScreen.getBounds(), 7, colorSetting(2, 0.24, 0.33));
ATPAP := clustertpa(TPAP, 2);
ATPAP.filterBetween(0, 30);
smartimage.debugtpa(tpaP);
smartImage.debugATPA(ATPAP);
writeln(length(ATPAP));
writeln(length(ATPAB));
if (((length(ATPAP)) > 0) and ((length(ATPAB)) > 0)) then
begin
for i := 0 to high(ATPAP) do
begin
if (distance(MiddleTPA(ATPAB[0]), MiddleTPA(ATPAP[i])) < 50) then
begin
smartimage.drawCross(medianTPA(ATPAP[i]), 20, 1158749);
Mouse(medianTPA(ATPAP[i]), Mouse_move);
if isMouseOverText(['Donate', 'odwill', 'ell'], 500) then
begin
Fastclick(Mouse_right);
Chooseoption.isOpen(1000);
wait(gaussrangeint(126, 589));
ChooseOption.select(['Bank', 'Open Bank']);
if bankscreen.isOpen(5000) then
begin
Inbank();
result := true;
exit;
end;
end;
end;
end;
end
else
begin
if length(ATPAB) > 0 then
begin
Mouse(middleTPA(ATPAB[0]), Mouse_move);
if isMouseOverText(['Donate', 'odwill', 'ell'], 500) then
begin
Fastclick(Mouse_right);
Chooseoption.isOpen(1000);
wait(gaussrangeint(66, 289));
ChooseOption.select(['Bank', 'Open Bank']);
if bankscreen.isOpen(5000) then
begin
Inbank();
result := true;
exit;
end;
end;
end;
end;
end;
end;
procedure RotateToBank();
var
x, y, xv, yv, ml: integer;
TPA: tpointarray;
ATPA: T2dpointarray;
begin
if not isloggedin() then
exit;
FindColorsSpiralTolerance(x, y, TPA, 14213766, minimap.getbounds(), 13, colorSetting(2, 0.18, 2.98));
if length(TPA) < 1 then
exit;
atpa := clustertpa(tpa, 4);
atpa.filterBetween(0, 6);
smartImage.debugTPA(TPA, true);
SmartImage.debugATPA(atpa);
if Length(atpa) < 1 then
exit;
ml := gaussrangeint(40, 90);
xv := TPA[0].x - minimap.getCenterPoint().x;
yv := minimap.getCenterPoint().y - TPA[0].y;
minimap.setangle(trunc(degrees(ArcTan2(yv, xv)) + minimap.getangledegrees() - 90 + ml));
end;
function StartPosition(): boolean;
var
fx, fy, xb, yb, x, y: integer;
TPAB: tpointarray;
res: tpoint;
begin
if not isloggedin() then
exit;
result := false;
if minimap.finddtm(PosDtm, fx, fy) then
begin
smartimage.drawcross(point(fx, fy), 2, 255);
smartimage.drawcross(minimap.pointtomainscreen(point(fx, fy)), 10, 255);
writeln(distance(minimap.getcenterpoint(), point(fx, fy)));
if (distance(minimap.getcenterpoint(), point(fx, fy))) >= 12 then
begin
if (pointinbox(minimap.pointtomainscreen(point(fx, fy)), inttobox(200, 1, 575, 385)) or ((pointinbox(minimap.pointtomainscreen(point(fx, fy)), inttobox(3, 196, 211, 387))))) then
begin
mouse(minimap.pointtomainscreen(point(fx, fy)), mouse_left);
wait(gaussrangeint(1200, 1750));
result := true;
end
else
begin
minimap.setAngle(gaussrangeint(30, 60));
end;
end
else
result := true;
end
else
begin
if (PointInBox(sps.getplayerpos(), inttobox(126, 114, 138, 134))) = false then
begin
Mainscreen.setAngle(ms_angle_high);
Sps_PosToMM(point(130, 126), sps.getplayerpos(), res);
if 0 >= (res.x) then
exit;
if PointInBox(minimap.pointstomainscreen([res])[0], inttobox(185, 1, 575, 388)) then
begin
mouse(minimap.pointstomainscreen([res])[0], mouse_left);
result := true;
end
else
begin
Sps.walkPath([sps.getplayerpos(), point(130 + random( - 4, 4), 126 + random( - 4, 4))]);
end;
wait(random(785, 1486));
Minimap.waitPlayerMoving(random(1457, 2758));
result := true;
end
else
begin
Mainscreen.setAngle(ms_angle_high);
end;
end;
case random(143) of
0..7:
if findcolortolerance(x, y, 13929833, inttobox(107, 583, 157, 590), 15) then
typeSend('', true);
end;
end;
procedure BankMain();
begin
if not isloggedin() then
exit;
EggsBanked := EggsBanked + tabbackpack.count() - 3;
if not Bank() then
begin
RotateToBank();
wait(gaussrangeint(547, 1250));
if not bank() then
begin
if not StartPosition() then
StartPosition();
wait(gaussrangeint(1780, 3456));
if not Bank() then
begin
sps.blindWalk(point(122, 119));
wait(gaussrangeint(1500, 2785));
RotateToBank();
wait(gaussrangeint(547, 1250));
if not Bank() then
Bankfailsafe();
end;
end;
end;
end;
function SpecBar(): integer;
var
x, y, i: integer;
begin
if not Isloggedin() then
exit;
result := - 1;
for i := 0 to 27 do
begin
if FindColorTolerance(x, y, 9662746, inttobox(174 - (5 * i), 161, 174 - (5 * i), 167), 11, colorSetting(2, 0.01, 2.6)) then
begin
result := 28 - i;
exit;
end;
end;
end;
function _filter(Spalva: integer; Box: Tbox; Tol: integer; ColSettings: TColorSettings): tbox;
var
x, y: integer;
TPA: TPointArray;
ATPA: T2DPointArray;
begin
FindColorsSpiralTolerance(x, y, TPA, Spalva, Box, Tol, ColSettings);
ATPA := TPA.toATPA(20, 20);
result := GetATPABounds(atpa);
end;
procedure lootingAntiban();
begin
if not isloggedin() then
exit;
case random(3500) of
0..145: smallrandommouse();
146..174: mouseoffclient(4);
175..183:
begin
wait(gaussrangeint(1450, 2145));
pickupmouse();
end;
184..242: Minimap.setAngle(trunc(minimap.getangledegrees()) + (random( - 45, 45)));
243..247: sleepAndMoveMouse(random(1, 4500) + gaussrangeint(1235, 2475));
283..285: hoverRandomSkill();
286: boredhuman();
287..415: randomCompass(30, 145, false);
416..453: mousemovingobject();
end;
LootAntibanned := true;
end;
function PartiallyInBox(mmpb, box: tbox): boolean;
begin
result := false;
if not isloggedin() then
exit;
if (((((mmpb.x1 < box.x2) and (mmpb.x1 > box.x1)) and ((mmpb.y2 > box.y1) and (mmpb.y2 < box.y2))) or (((mmpb.x1 < box.x2) and (mmpb.x1 > box.x1)) and ((mmpb.y1 > box.y1) and (mmpb.y1 < box.y2)))) or ((((mmpb.x2 < box.x2) and (mmpb.x2 > box.x1)) and ((mmpb.y1 > box.y1) and (mmpb.y1 < box.y2))) or (((mmpb.x2 < box.x2) and (mmpb.x2 > box.x1)) and ((mmpb.y2 > box.y1) and (mmpb.y2 < box.y2))))) then
begin
result := true;
exit;
end;
end;
function FindEggs(box: tbox = LootingBox): tbox;
var
x, y, eggsbefore, i: integer;
TPA, TPAmm: TPointArray;
ATPA: T2DPointArray;
lootingtimer: ttimemarker;
mmpb: tbox;
begin
if not isloggedin() then
exit;
result := (inttobox(0, 0, 0, 0));
EggsOnFloor := 0;
tpamm := minimap.pointsToMainscreen(minimap.getdots(MM_DOT_ITEM, minimap.getbounds()), true);
if chooseoption.isopen() then
begin
if chooseoption.optionsexist(['eggs', 'ggs']) then
chooseoption.select(['eggs', 'ggs'])
else
chooseoption.close;
wait(gaussrangeint(166, 283));
eggsbefore := tabbackpack.count();
lootingtimer.start();
repeat
wait(gaussrangeint(173, 238));
if not lootantibanned then
LootingAntiban();
until ((eggsbefore < tabbackpack.count()) or (lootingtimer.gettime() >= 2000));
Wait(gaussrangeint(495, 603));
end;
for i := 0 to high(tpamm) do
begin
mmpb := [tpamm[i].x - 32, tpamm[i].y - 32, tpamm[i].x + 32, tpamm[i].y + 32];
FindColorsSpiralTolerance(x, y, TPA, 9342998, mmpb, 10, colorSetting(2, 4.99, 1.08));
tpa := clearTPAFromTPA(tpa, TPAFromBox(_filter(2930118, inttobox(212, 119, 360, 260), 20, colorSetting(2, 0.23, 1.83))));
tpa := clearTPAFromTPA(tpa, TPAFromBox(_filter(10260030, inttobox(212, 119, 360, 260), 5, colorSetting(2, 0.08, 0.15))));
if length(tpa) < 1 then
continue;
atpa := clustertpa(tpa, 4);
atpa.filterBetween(0, 8);
ATPA.sortFromMidPoint(mainscreen.playerPoint);
SmartImage.debugATPA(atpa);
if Length(atpa) < 1 then
continue;
if partiallyinbox(mmpb, box) then
begin
result := GetTPABounds(atpa[0]);
EggsOnFloor := length(atpa);
exit;
end;
end;
end;
function FindEggsOld(box: tbox = LootingBox): tbox;
var
x, y, i: integer;
TPA: TPointArray;
ATPA: T2DPointArray;
begin
result := (inttobox(0, 0, 0, 0));
if not isloggedin() then
exit;
EggsOnFloor := 0;
FindColorsSpiralTolerance(x, y, TPA, 9342998, box, 10, colorSetting(2, 4.99, 1.08));
tpa := clearTPAFromTPA(tpa, TPAFromBox(_filter(2930118, inttobox(212, 119, 360, 260), 20, colorSetting(2, 0.23, 1.83))));
tpa := clearTPAFromTPA(tpa, TPAFromBox(_filter(10260030, inttobox(212, 119, 360, 260), 5, colorSetting(2, 0.08, 0.15))));
if length(TPA) < 1 then
exit;
atpa := clustertpa(tpa, 4);
atpa.filterBetween(0, 7);
atpa.sortFromMidPoint(mainscreen.playerPoint);
SmartImage.debugATPA(atpa);
if Length(atpa) < 1 then
Exit;
if GetTPABounds(atpa[0]).x1 < 1 then
Exit;
result := GetTPABounds(atpa[0]);
EggsOnFloor := length(atpa);
end;
procedure Minibreak();
begin
if not isloggedin() then
exit;
case random(914) of
0..11: mouseOffClient(OFF_CLIENT_TOP);
12..35: mouseOffClient(OFF_CLIENT_RIGHT);
36..57: mouseOffClient(OFF_CLIENT_RANDOM);
58..74:
begin
wait(random(1, 7000) + gaussrangeint(3500, 8500 + random(122, 4150)));
pickupmouse();
case random(7) of
0..1: smallrandommouse();
2..4: mouseMovingObject();
end;
end;
75..83: mouseMovingObject();
84..91: smallrandommouse(200);
92..142:
begin
case random(21) of
0..8: mouseOffClient(OFF_CLIENT_RIGHT);
9: mouseOffClient(OFF_CLIENT_TOP);
10..20: mouseOffClient(OFF_CLIENT_RANDOM);
end;
case random(35) of
0..11: wait(gaussrangeint(4423, 7425));
12..33: wait(gaussrangeint(11111 - random(3452, 10574), 17450 + random(4521, 7521)));
34: wait(random(35000, 55000) + gaussrangeint(1235, 4520 + random(250, 47000)));
end;
end;
end;
end;
procedure PickUpEgg(box: tbox = LootingBox);
var
x, y, eggsBefore, eggsAfter: integer;
boxas: tbox;
lootingtimer: ttimemarker;
missclickPoint: tpoint;
begin
Lootantibanned := false;
Whopped := false;
if (Isloggedin() = false) then
exit;
if (tabbackpack.isFull()) then
exit;
if Ismouseovertext(['Red', 'Take Red']) then
begin
flag := 0;
getmousepos(x, y);
case random(47) of
0..11:
begin
case random(874) of
0..414: missmouse(point(x, y), true);
415..873: fastclick(mouse_left);
end;
wait(gaussrangeint(153, 274));
end;
25..46:
begin
case random(874) of
0..174:
begin
missmouse(point(x, y), true);
multiclick(point(x, y), 75, 3);
end;
175..873: multiclick(point(x, y), 75, 3);
end;
end;
end;
end;
if ((chooseoption.isopen()) and (chooseoption.optionsexist(['eggs', 'ggs']))) then
begin
chooseoption.select(['eggs', 'ggs']);
flag := 0;
end;
if ((tabbackpack.isFull()) or (findEggs(box).x1 <= 0)) then
exit;
boxas := findEggs(box);
case random(3874) of
0..1274:
begin
Mousecircle(boxas.getMiddle.x, boxas.getMiddle.y, 9, mouse_move);
if ((ismouseovertext(['Donate', 'onate', 'Bank'])) or (Ismouseovertext(['Spirit', 'Interact', 'pirit', 'pirit spider']))) then
begin
minimap.setAngle(Trunc(minimap.getangledegrees()) + Random(30, 90));
exit;
end;
if Ismouseovertext(['Red', 'Take Red']) then
begin
flag := 0;
case random(415) of
0..118: missmouse(boxas.getmiddle(), true);
119..414: Fastclick(mouse_left);
end;
case random(112) of
0..43:
begin
wait(gaussrangeint(220, 315));
mousebox(boxas, mouse_right);
ChooseOption.optionsExist(['eggs', 'ggs']);
Chooseoption.select(['eggs', 'ggs']);
end;
end;
eggsbefore := tabbackpack.count();
lootingtimer.start();
repeat
wait(gaussrangeint(173, 238));
if not lootantibanned then
LootingAntiban();
until ((eggsbefore < tabbackpack.count()) or (lootingtimer.gettime() >= 2000));
Wait(gaussrangeint(595, 703));
end
else
Mousecircle(boxas.getMiddle.x, boxas.getMiddle.y, 9, mouse_left);
end;
1275..3874:
begin
Mousecircle(boxas.getMiddle.x, boxas.getMiddle.y, 9, mouse_right);
ChooseOption.isOpen(gaussrangeint(475, 987));
if ((ismouseovertext(['Donate', 'onate', 'Bank'])) or (Ismouseovertext(['Spirit', 'Interact', 'pirit', 'pirit spider']))) then
begin
minimap.setAngle(Trunc(minimap.getangledegrees()) + Random(30, 90));
exit;
end;
if chooseoption.optionsexist(['Trade', 'with', 'rade']) then
begin
Statusas('Switching world because someone is messing up');
inc(RedNoob);
players[currentplayer].exittolobby();
players[currentplayer].switchtoworld(PossibleWorldsArray[random(0, 78)]);
wait(gaussrangeint(5500, 8780));
Whopped := true;
mainscreen.setzoom(true);
mainscreen.setangle(ms_angle_high);
exitTreasure();
exit;
end;
if ChooseOption.optionsExist(['eggs', 'ggs']) then
begin
if (length(chooseoption.getOptions()) >= 5) then
begin
Chooseoption.select(['eggs', 'ggs']);
flag := 0;
case random(47) of
10..12: smallrandommouse(24);
28..29: smallrandommouse(153);
17..23:
begin
wait(gaussrangeint(495, 615));
mousecircle(290, 199, 11, mouse_move);
end;
24..47:
begin
gaussrangeint(175, 275);
mousebox(boxas, mouse_right);
if ChooseOption.optionsExist(['eggs', 'ggs']) then
begin
eggsbefore := tabbackpack.count();
lootingtimer.start();
repeat
wait(gaussrangeint(173, 238));
if not lootantibanned then
LootingAntiban();
until ((eggsbefore < tabbackpack.count()) or (lootingtimer.gettime() >= 2000));
wait(gaussrangeint(78, 186));
Chooseoption.select(['eggs', 'ggs']);
flag := 0;
Wait(gaussrangeint(595, 715));
exit;
end;
end;
end;
end
else
Chooseoption.select(['eggs', 'ggs']);
Flag := 0;
eggsbefore := tabbackpack.count();
lootingtimer.start();
repeat
wait(gaussrangeint(173, 238));
if not lootantibanned then
LootingAntiban();
until ((eggsbefore < tabbackpack.count()) or (lootingtimer.gettime() >= 2000));
Wait(gaussrangeint(795, 715));
end
else
begin
ChooseOption.close();
inc(Flag);
if Flag >= 6 then
begin
if not StartPosition() then
StartPosition();
minimap.setangle(random(0, 45));
inc(Fail);
end;
end;
end;
end;
smartimage.clearArea(inttobox(1, 1, 799, 450));
end;
procedure SpamRoutine();
var
x, y: integer;
i: integer;
begin
if not Isloggedin() then
exit;
if not findcolortolerance(x, y, 2211327, inttobox(28, 135, 41, 150), 15) then
exit;
if 2 >= SpecBar() then
Exit;
case random(4500) of
0..1274:
begin
Wait(gaussrangeint(150, 450));
Mousebox(inttobox(24, 132, 35, 141), mouse_left);
Wait(gaussrangeint(150, 450));
end;
1275..3499:
begin
Mousebox(inttobox(24, 132, 35, 141), mouse_left);
for i := 0 to gaussrangeint(0, 5) do
begin
Fastclick(Mouse_left);
case random(27) of
0..7: Wait(Gaussrangeint(500, 700));
8..11: Wait(Random(150, 174));
end;
end;
end;
3500..4499:
begin
Wait(gaussrangeint(1500, 2450));
Mousebox(inttobox(24, 132, 35, 141), mouse_left);
Wait(gaussrangeint(850, 1450));
end;
end;
end;
procedure Summ();
var
x, y: integer;
begin
if not Isloggedin() then
exit;
if not FindColorTolerance(x, y, 660871, inttobox(16, 51, 173, 116), 40) then
begin
Statusas('No Spider');
if (ActionBar.getSummoningPercent() < 35) then
begin
if findcolortolerance(x, y, 14538272, tabbackpack.getslotbox(2), 35) then
begin
mousebox(tabbackpack.getslotbox(2), mouse_left);
wait(gaussrangeint(845, 1452));
end
else
begin
BankMain();
exit;
end;
end;
if FindColorTolerance(x, y, 11058626, tabbackpack.getslotbox(3), 35) then
begin
Statusas('Summoning spider');
Wait(random(356, 742));
Mousebox(tabbackpack.getslotbox(3), mouse_left);
wait(random(587, 2145));
end
else
bankMain();
end;
end;
procedure Spec();
var
x, y, p, a: integer;
begin
if not isloggedin() then
exit;
Summ();
if ((3 >= SpecBar()) and (FindColorTolerance(x, y, 12828188, inttobox(421, 445, 432, 450), 10))) then
begin
mouseBox(TabBackpack.getSlotBox(2), MOUSE_LEFT);
wait(gaussrangeint(845, 1452));
end;
repeat
p := SpecBar();
SpamRoutine();
a := SpecBar();
if 2 >= SpecBar() then
Exit;
until (a <> p);
end;
procedure AngleTransform();
var
i, iz, ix: integer;
angle, c, s: extended;
begin
angle := Minimap.getAngleDegrees();
s := sin(radians(angle));
c := cos(radians(angle));
for i := 0 to 7 do
begin
StaticRotatedPoints[i][0] := c * StaticPoints[i][0] + s * StaticPoints[i][1];
StaticRotatedPoints[i][1] := ( - 1) * s * StaticPoints[i][0] + c * StaticPoints[i][1];
end;
for iz := 0 to 7 do
begin
DynamicPoints[iz][0] := StaticRotatedPoints[iz][0] + Centerx;
DynamicPoints[iz][1] := Centery - StaticRotatedPoints[iz][1];
end;
for ix := 0 to 7 do
begin
smartimage.drawtext(tostring(ix), point(trunc(DynamicPoints[ix][0]), trunc(DynamicPoints[ix][1])), 11839306);
Smartimage.drawCross(point(trunc(DynamicPoints[ix][0]), trunc(DynamicPoints[ix][1])), 3, 16777215);
end;
end;
procedure AlternativePickingPile(kar: integer);
var
eggsBefore: integer;
lootingTimer: ttimemarker;
x, y, miss: integer;
begin
if not isloggedin() then
exit;
miss := 0;
mousebox(inttobox(Centerx - 6, Centery - 6, Centerx + 6, Centery + 6), mouse_move);
wait(gaussrangeint(120, 315));
getmousepos(x, y);
if Ismouseovertext(['Red', 'Take Red']) then
begin
case random(152) of
0..74: mousebox(inttobox(Centerx - 12, Centery - 12, Centerx + 12, Centery + 12), mouse_left);
end;
multiclick(point(x, y), 100, gaussrangeint(1, 3));
dec(kar);
end
else
begin
if ismouseovertext(['spider', 'Spirit']) then
begin
mouse(point(x, y), mouse_right);
chooseoption.isopen(gaussrangeint(350, 678));
if chooseoption.optionsexist(['eggs', 'ggs']) then
begin
wait(gaussrangeint(168, 365));
chooseoption.select(['eggs', 'ggs']);
dec(kar);
end
else
begin
chooseoption.close();
inc(miss);
end;
end;
end;
while ((kar > 0) and (miss < 2)) do
begin
if not isloggedin() then
exit;
case random(419) of
0..274:
begin
mousebox(inttobox(Centerx - 5, Centery - 5, Centerx + 4, Centery + 3), mouse_right);
if chooseoption.isopen(gaussrangeint(235, 456)) then
begin
wait(gaussrangeint(167, 314));
if chooseoption.optionsexist(['eggs', 'ggs']) then
begin
chooseoption.select(['eggs', 'ggs']);
dec(kar);
wait(gaussrangeint(144, 235));
end
else
begin
chooseoption.close();
inc(miss);
end;
end;
end;
275..365:
begin
mousebox(inttobox(Centerx - 4, Centery - 5, Centerx + 4, Centery + 4), mouse_move);
if ismouseovertext(['eggs', 'ggs']) then
begin
getmousepos(x, y);
wait(gaussrangeint(166, 258));
case random(123) of
0..21: missMouse(point(x, y), true);
22..122: fastclick(mouse_left);
end;
dec(kar);
end
else
begin
inc(miss);
end;
end;
366..418:
begin
mousebox(inttobox(Centerx - 4, Centery - 5, Centerx + 3, Centery + 6), mouse_move);
if ismouseovertext(['eggs', 'ggs']) then
begin
getmousepos(x, y);
wait(gaussrangeint(187, 285));
case random(143) of
0..87: multiClick(point(x, y), 100, 3);
88..127: multiClick(point(x, y), 100, 2);
128..142:
begin
missmouse(point(x, y), true);
multiClick(point(x, y), 100, 2);
end;
end;
dec(kar);
end
else
begin
inc(miss);
end;
end;
end;
end;
end;
function AlternativePicking(out Transpoint: integer): boolean;
var
i, x, y, mx, my, z, r, eggsbefore: integer;
pai, eggsCount: integer;
optionsai: TOptionArray;
lootingtimer: ttimemarker;
centr: tpoint;
boxas: tbox;
begin
transpoint := - 1;
result := false;
for i := checkedToPile to high(DynamicPoints) do
begin
if not isloggedin() then
exit;
pai := LootingPattern[i];
if ((findEggsOld(inttobox(trunc(DynamicPoints[pai][0] - 12), trunc(DynamicPoints[pai][1] - 12), trunc(DynamicPoints[pai][0] + 12), trunc(DynamicPoints[pai][1] + 12))).x1 = 0) and (StandartEggsLocationsArray[pai] = false)) then
continue;
smartimage.drawbox(inttobox(trunc(DynamicPoints[pai][0] - 12), trunc(DynamicPoints[pai][1] - 12), trunc(DynamicPoints[pai][0] + 12), trunc(DynamicPoints[pai][1] + 12)), 16777215);
if (EggsOnFloor > 0) or (StandartEggsLocationsArray[pai] = true) then
begin
if ((StandartEggsLocationsArray[pai] = true) and (EggsOnFloor > 0)) then
begin
for r := 0 to 2 do
begin
if not isloggedin() then
exit;
case random(415) of
0..91:
begin
Boxas := findEggsOld(inttobox(trunc(DynamicPoints[pai][0] - 10), trunc(DynamicPoints[pai][1] - 10), trunc(DynamicPoints[pai][0] + 10), trunc(DynamicPoints[pai][1] + 10)));
if (boxas.x1 > 100) then
mousebox(boxas, mouse_left);
wait(gaussrangeint(166, 283));
if (boxas.x1 > 100) then
Mousebox(boxas, mouse_right);
end;
92..414:
begin
centr := findEggsOld(inttobox(trunc(DynamicPoints[pai][0] - 10), trunc(DynamicPoints[pai][1] - 10), trunc(DynamicPoints[pai][0] + 10), trunc(DynamicPoints[pai][1] + 10))).getmiddle();
if (r >= 1) then
begin
if (centr.x >= 200) then
Mousecircle(centr.x, centr.y, 5, mouse_right);
end
else
begin
if (centr.x < 200) then
continue;
case random(215) of
0..5: Mousecircle(centr.x, centr.y, 14, mouse_right);
5..11: Mousecircle(centr.x, centr.y, 11, mouse_right);
12..214: Mousecircle(centr.x, centr.y, 10, mouse_right);
end;
end;
end;
end;
if ChooseOption.isOpen(gaussrangeint(200, 387)) then
begin
Optionsai := ChooseOption.getOptions();
if chooseoption.optionsexist(['eggs', 'ggs']) then
begin
eggsCount := 0;
for z := 0 to high(optionsai) do
begin
if optionsai[z].str = 'Take Red spiders' ' eggs' then
inc(eggsCount);
end;
chooseoption.select(['eggs', 'ggs']);
StandartEggsLocationsArray[pai] := false;
miscli := 0;
eggsbefore := tabbackpack.count();
lootingtimer.start();
repeat
wait(gaussrangeint(173, 238));
if not lootantibanned then
LootingAntiban();
until ((eggsbefore < tabbackpack.count()) or (lootingtimer.gettime() >= 2500));
if (eggsCount > 1) then
begin
case random(315) of
0..214: mousebox(inttobox(Centerx - 12, Centery - 11, Centerx + 12, Centery + 13), mouse_move);
end;
end;
Wait(gaussrangeint(595, 815));
result := true;
transpoint := pai;
if ((eggsbefore < tabbackpack.count()) and (eggsCount > 1)) then
begin
alternativePickingPile((eggsCount - 1));
end;
checkedToPile := i;
exit;
end
else
begin
inc(miscli);
if (miscli >= 2) then
begin
miscli := 0;
inc(checkedToPile);
end;
chooseoption.close();
end;
end;
end;
end
else
mousebox(inttobox(trunc(DynamicPoints[pai][0] - 3), trunc(DynamicPoints[pai][1] - 3), trunc(DynamicPoints[pai][0] + 3), trunc(DynamicPoints[pai][1] + 3)), mouse_right);
if ChooseOption.isOpen(gaussrangeint(575, 887)) then
begin
Optionsai := ChooseOption.getOptions();
if chooseoption.optionsexist(['eggs', 'ggs']) then
begin
eggsCount := 0;
for z := 0 to high(optionsai) do
begin
if optionsai[z].str = 'Take Red spiders' ' eggs' then
inc(eggsCount);
end;
chooseoption.select(['eggs', 'ggs']);
StandartEggsLocationsArray[pai] := false;
miscli := 0;
eggsbefore := tabbackpack.count();
lootingtimer.start();
repeat
wait(gaussrangeint(173, 238));
if not lootantibanned then
LootingAntiban();
until ((eggsbefore < tabbackpack.count()) or (lootingtimer.gettime() >= 2500));
if (eggsCount > 1) then
begin
case random(315) of
0..214: mousebox(inttobox(Centerx - 12, Centery - 11, Centerx + 12, Centery + 13), mouse_move);
end;
end;
Wait(gaussrangeint(595, 815));
result := true;
transpoint := pai;
if ((eggsbefore < tabbackpack.count()) and (eggsCount > 1)) then
begin
alternativePickingPile((eggsCount - 1));
end;
checkedToPile := i;
exit;
end
else
begin
inc(miscli);
if miscli >= 1 then
begin
miscli := 0;
inc(checkedToPile);
end;
chooseoption.close();
end;
end;
end;
end;
end;
procedure TransitionShift();
var
Transpoint: integer;
i: integer;
begin
if not isloggedin() then
exit;
angleTransform();
if alternativePicking(Transpoint) then
begin
shiftx := ( - StaticPoints[Transpoint][0]);
shifty := ( - StaticPoints[Transpoint][1]);
for i := 0 to 7 do
begin
StaticPoints[i][0] := StaticPoints[i][0] + shiftx;
StaticPoints[i][1] := StaticPoints[i][1] + shifty;
end;
end;
for i := 0 to 7 do
begin
smartimage.drawcross(point(StaticPoints[i][0], StaticPoints[i][1]), 5, 16777215);
end;
smartimage.clear();
end;
procedure ResetCoordinates();
begin
checkedToPile := 0;
miscli := 0;
StandartEggsLocationsArray := [false, false, false, false, false, false, false, false];
shiftx := 0;
shifty := 0;
StaticPoints := [[ - 32, 32], [0, 32], [32, 32], [ - 32, 0], [32, 0], [ - 32, - 32], [0, - 32], [32, - 32]];
end;
procedure CheckSpots();
var
i: integer;
begin
if not isloggedin() then
exit;
angleTransform();
for i := 0 to high(DynamicPoints) do
begin
if findEggsOld(inttobox(trunc(DynamicPoints[i][0] - 12), trunc(DynamicPoints[i][1] - 12), trunc(DynamicPoints[i][0] + 12), trunc(DynamicPoints[i][1] + 12))).x1 = 0 then
begin
StandartEggsLocationsArray[i] := false;
smartimage.drawbox(inttobox(trunc(DynamicPoints[i][0] - 12), trunc(DynamicPoints[i][1] - 12), trunc(DynamicPoints[i][0] + 12), trunc(DynamicPoints[i][1] + 12)), 255);
end
else
begin
StandartEggsLocationsArray[i] := true;
smartimage.drawbox(inttobox(trunc(DynamicPoints[i][0] - 12), trunc(DynamicPoints[i][1] - 12), trunc(DynamicPoints[i][0] + 12), trunc(DynamicPoints[i][1] + 12)), 14538272);
end;
end;
end;
procedure PatternLoot();
var
i: integer;
begin
if not isloggedin() then
exit;
statusas('ALternative patterned picking');
ResetCoordinates();
CheckSpots();
case random(91) of
0..11: LootingPattern := [0, 1, 2, 4, 7, 6, 5, 3];
12..27: LootingPattern := [1, 2, 4, 7, 6, 5, 3, 0];
28..37: LootingPattern := [4, 7, 6, 5, 3, 0, 1, 2];
38..43: LootingPattern := [4, 2, 1, 0, 3, 5, 6, 7];
44..58: LootingPattern := [6, 5, 3, 0, 1, 2, 4, 7];
59..71: LootingPattern := [3, 0, 1, 2, 4, 7, 6, 5];
72..79: LootingPattern := [5, 3, 0, 1, 2, 4, 7, 6];
80..83: LootingPattern := [7, 6, 5, 3, 0, 1, 2, 4];
84..91: LootingPattern := [2, 4, 7, 6, 5, 3, 0, 1];
end;
statusas(tostring(LootingPattern));
for i := 0 to 7 do
begin
if not isloggedin() then
exit;
transitionShift();
MiniAntiban();
if ((length(minimap.getdots(mm_dot_item, inttobox(660, 80, 715, 125))) < 1) or (tabbackpack.isfull())) then
exit;
end;
end;
procedure NormalLoot();
var
invCountBefore: integer;
lootsTimer: ttimemarker;
x, y: integer;
begin
if not isloggedin() then
exit;
if length(minimap.getdots(mm_dot_item, inttobox(660, 80, 715, 125))) < 1 then
begin
Minibreak();
exit;
end;
if players[currentplayer].booleans[0] then
PatternLoot();
statusas('Normal loot');
lootsTimer.start();
invCountBefore := TabBackpack.count();
repeat
if (length(minimap.getdots(mm_dot_item, minimap.getbounds())) >= 1) then
pickUpEgg()
else
break;
if ((Whopped) or (not isloggedin())) then
exit;
MiniAntiban();
if lootsTimer.getTime() > 75000 then
begin
if TabBackpack.count() <= invCountBefore then
begin
Statusas('75 seconds havent looted single egg');
inc(fail);
if fail > players[currentplayer].integers[1] then
terminatescript;
end
else
Break;
end;
until ((TabBackpack.isfull()) or (EggsOnFloor = 0));
end;
procedure SpawnAndLoot();
var
SpecClickingTimer: ttimemarker;
clickingTime: integer;
begin
if not Isloggedin() then
exit;
NormalLoot();
if not StartPosition() then
StartPosition();
if TabBackpack.isfull() then
exit;
if TabBackpack.count() >= 23 then
clickingTime := gaussrangeint(5500, 11000)
else
clickingTime := gaussrangeint(15000, 23000);
SpecClickingTimer.start();
Statusas('Spamclicking spec');
repeat
Spec();
until SpecClickingTimer.gettime() > clickingTime;
Statusas('looting eggs');
NormalLoot();
if tabbackpack.isFull() then
exit;
end;
procedure Distloot();
begin
if not isloggedin() then
exit;
if findEggs(inttobox(200, 6, 573, 384)).x1 > 0 then
begin
pickUpEgg(inttobox(200, 6, 573, 384));
wait(gaussrangeint(1500, 2510));
exit;
end;
if findEggs(inttobox(2, 195, 199, 384)).x1 > 0 then
begin
pickUpEgg(inttobox(2, 195, 199, 384));
wait(gaussrangeint(1500, 2510));
exit;
end;
end;
procedure SwitchPlayer();
begin
players[currentplayer].logout();
players.next(false);
wait(gaussrangeint(4200, 6750));
minimap.clickcompass();
mainscreen.setzoom(true);
mainscreen.setangle(ms_angle_high);
exitTreasure();
end;
procedure Mainloop();
var
x, y: integer;
begin
CurrentTripTime.start();
mousespeed := (gaussrangeint(30, 40));
repeat
if not isloggedin() then
exit;
if not findcolortolerance(x, y, 4179190, inttobox(182, 27, 193, 31), 50) then
begin
mouseScroll(inttobox(10, 25, 163, 140).getrandompoint(), 10 + random(5), false);
inc(fail);
if fail > players[currentplayer].integers[1] then
terminatescript;
end;
Summ();
SpawnAndLoot();
until tabbackpack.count() >= 25;
BankMain();
DistLoot();
if CurrentTripTime.getTime() > 480000 then
begin
Statusas('Failed to do trip in 8 mins');
inc(fail);
if fail > players[currentplayer].integers[1] then
terminatescript;
end;
takeBreak();
end;
begin
SmartEnableDrawing := true;
smartShowConsole := false;
SetupSRL();
initPlayerForm();
runPlayerForm();
DeclarePlayers();
SPS.setup('ge', Runescape_other);
breaktimes();
if not isloggedin() then
logintow();
TotalScriptTime.start();
SixhourFixTime.start();
while players.getactive() > 0 do
begin
PlayersTimer.start();
repeat
Mainloop();
if (SixhourFixTime.getTime() >= (gaussrangeint(19600000, 22000000))) then
begin
sixhourfix();
SixhourFixTime.Start();
wait(gaussrangeint(6000, 9500));
mainscreen.setzoom(true);
Mainscreen.setAngle(ms_angle_high);
end;
until (((PlayersTimer.gettime() >= (players[currentplayer].integers[0]) * 60000) or (not isloggedin())) or (players[currentplayer].isactive = false));
switchPlayer();
end;
end.