mickaliscious
2007-12-01 02:49:49
mickaliscious - SRL Member Application Form
mickaliscious
What is the meaning to life?
SRL!
Where you Referred to SRL? If yes, by whom?
No
Programming Knowledge
Unfortunately, very little besides Pascal.
Other Communitys
Devoted to SRL.
How Long have You Played Runescape
Since December 2004.
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Hello,
Please don't let the username scare you off. The one I prefer to use happens to be my runescape name so I didn't use it for this site. I stumbled across this site about 5 months ago with the goal of easily increasing my runescape character's stats, but since being introduced to the wonders of pascal coding and scar, my priorities have shifted to increasing my knowledge of these coding areas. I enjoy scripting and will continue trying to be a positive member of the SRL community. I feel that a member's status would help me to help others while continuing my scripting education as well. Thank you in advance for considering my application.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
Its 1300 lines and fairly involved, so I recommend you copy and paste it into SCAR:
——————————————————
mickaliscious
What is the meaning to life?
SRL!
Where you Referred to SRL? If yes, by whom?
No
Programming Knowledge
Unfortunately, very little besides Pascal.
Other Communitys
Devoted to SRL.
How Long have You Played Runescape
Since December 2004.
Are you affilated in anyway with Jagex LTD?
No
—————————————————–
Please write down a paragraph about Yourself.
Hello,
Please don't let the username scare you off. The one I prefer to use happens to be my runescape name so I didn't use it for this site. I stumbled across this site about 5 months ago with the goal of easily increasing my runescape character's stats, but since being introduced to the wonders of pascal coding and scar, my priorities have shifted to increasing my knowledge of these coding areas. I enjoy scripting and will continue trying to be a positive member of the SRL community. I feel that a member's status would help me to help others while continuing my scripting education as well. Thank you in advance for considering my application.
——————————————————
Please Post a Sample of your Work. Only SCAR Scripts Accepted
Its 1300 lines and fairly involved, so I recommend you copy and paste it into SCAR:
program MicksPestConrol;
{.include srl/srl.scar}
var
RangeLvl, PlayersDone, GamesDone, Time1, Logins, W, L, SE, LZ, CP, x, y, PS, T,
PG, MageLvl, AttLvl, StrLvl, DefLvl, HpLvl, ComLvl, PrayLvl, Ammo, Tries, b,
DragonBattleAxe, Symbol, Death, Middle, RewardScreen, Start, NotFound: Integer;
RangeType, Boat, Log: string;
Ancients, Relog, SkipSearch, Limited, C: Boolean;
{------------------------------------------------------------------------------)
!- Mickaliscious proudly presents: -!
(------------------------------------------------------------------------------)
[][-\ [][][] /-][] [][][]
[]::[] [] \.\ []
[][-/ [][] \.\ []
[] [] \.\ []
[] [][][] [][-/ []
/[][] [][] []\ [] [][][] [][-\ [][] []
[] []::[] [].\[] [] [] [] []::[] []
[] []::[] []\.[] [] [][-/ []::[] []
[] []::[] [] \[] [] [] [-\ []::[] []
\[][] [][] [] [] [] [] [] [][] [][][]
(------------------------------------------------------------------------------)
!- For use with SCAR 3.12c, and SRL Revision 7. -!
(------------------------------------------------------------------------------)
* Anti-Randoms.
* Anti-Ban.
* CAN BE USED FOR ALL BOATS!
* Autodetects your combat type.
* Uses best possible prayers for your combat type.
* Uses special-attack when special-attack bar is found.
* For Mages: Uses highest spell you can use with the runes in inventory.
* For Rangers: Detects which ranged equipment player is using and re-equips.
* SPENDS 100 POINTS ON A SKILL OF YOUR CHOICE EVERY 100 POINTS GAINED!
_____________________________________________________
/-----------------------------------------------------\
!- Thanks to: -!
!- * MasterKill for giving me the basics to go on -!
!- * t3hl33tn00b for some testing and ideas -!
!- * You, for using, but please post proggies at: -!
!- [Website] -!
!-____________________________________________________-!
\-----------------------------------------------------/
If you are using magic, only bring runes for spells you wish to use. The
script will automatically choose your highest spell possible (not ancients).
When using ancient magicks please log in, set your spell and log out.
Rangers: The script will not pick up 100% of your arrows/bolts/etc, but it
will re-equip them when possible.
{-------------------------------Start of Setup---------------------------------}
const
MickeyDebug = False;
SRL_ID = ''; // Please get an SRL Stats ID at
SRL_Pass = ''; // [url]http://www.stats.srl-forums.com[/url]
GamesToDo = 20; // # of games to do before switch player (+ Random 2)
RunLength = 11; //Maximum hours to run the script?
UseTimes = True; //Shows what time each action occurs.
LeftClick = False; //Left clicks monsters to attack
UsePrayer = True; //Will use highest prayer possible for your combat style.
UseDBSpec = True; {Will look for dragon battleaxe at the start of each game
and use its special attack if found.}
procedure SetUpPlayers;
begin
NumberOfPlayers(2);
CurrentPlayer := 0;
Players[0].Name := ''; // UserName
Players[0].Pass := ''; // Password
Players[0].Nick := ''; //3-4 letters from username
Players[0].Active := True;
Players[0].Strings[0] := 'str'; {spend points on which skill?
use first 3 letters of skill, all lowercase}
Players[0].Integers[0] := 2; {Attack style? (1=left-top, 2=right-top,
3=left-bottom, 4=right-bottom}
Players[0].Integers[1] := 1; {Boat To Use: 1 = 40+ / 2 = 70+ / 3 = 100+
Please start by correct boat}
Players[1].Name := ''; // UserName
Players[1].Pass := ''; // Password
Players[1].Nick := ''; //3-4 letters from username
Players[1].Active := True;
Players[1].Strings[0] := 'st'; {spend points on which skill?
use first 3 letters of skill, all lowercase}
Players[1].Integers[0] := 2; {Attack style? (1=left-top, 2=right-top,
3=left-bottom, 4=right-bottom}
Players[1].Integers[1] := 1; {Boat To Use: 1 = 40+ / 2 = 70+ / 3 = 100+
Please start by correct boat}
{---------------------------------End of Setup---------------------------------)
Please do not change anything below
this unless you have experience in scripting
(------------------------------------------------------------------------------}
DragonBattleAxe := DTMFromString('78DA637466626078C1800618914820ED0A547' +
'39D801A53A09AA704D4F803D57C24A0C606A8E62E1176DD23C2CD' +
'04DC030070AB081B');
Symbol := BitmapFromString(9, 3, 'beNrT1OxsqJeSkACi/tbW7qZG' +
'CBsT9TY3AxGcq6OpiYyAhkCQDgDi/RMk');
Death := BitmapFromString(8, 5, 'beNpLSMxIGAgEAPdiLmk=');
Middle := BitmapFromString(9, 7, 'beNqLlCuKHLIIAEMaOVg=');
RewardScreen := BitmapFromString(17, 2, 'beNpzMPF0wI4YGBiPH' +
'F6x+9j+5StBJJCLSyWy+o2HFkHUo2gBAIyGIuk=');
end;
{*******************************************************************************
function FindDead: Boolean;
by: Stupid3ooo
Description: Checks for text "Ow dear you are dead".
Switches player if Reincarnate = True.
*******************************************************************************}
function FindDeadA: Boolean; //edited so no false results from game
begin
Result := False;
if (Pos('dead', srl_LastBlackLine) <> 0) and (Pos('dear', srl_LastBlackLine) <> 0) then
begin
if FindBitmapToleranceIn(Death, x, y, MMX1, MMY1, MMX2, MMY2, 10) then
begin //^small square of grey from road in lumby.
Deaths := Deaths + 1; //this is not found on the pc island.
Result := True;
SaveToChatLog;
if Reincarnate then Exit;
else
begin
if ScreenShots then
TakeScreen('Found Dead');
LogOut;
Players[CurrentPlayer].Rand := 'Oh Dear You Are in Lumby';
Players[CurrentPlayer].Active := False;
end;
end;
end;
end;
{*******************************************************************************
function FindNormalRandoms: Boolean;
by: The SRL Developers Team!... all time sexiness by Mutant
Description: Calls the 'normal' random checks.
*******************************************************************************}
function FindNormalRandomsA: Boolean; //had to edit FindDead due to pc game
var //occasionally confusing the find-dead procedure
i: Integer; //also added findfight
begin
w_UpdateLastLine;
for i := 1 to 7 do
begin
case I of
1: SolveNonTalkingRandoms;
2: Respond;
3: Result := FindTalk;
4: Result := FindDeadA;
5: Result := FindLamp(LampSkill);
6: if FindBox then
Result := SolveBox;
7: Result := RC;
end;
if FindFight then
begin
RunTo('N', True);
Wait(15000 + random(5000));
RunBack;
end;
if Result then Break;
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure SpendPoints;
var
a, b: integer;
begin
case Players[CP].Strings[0] of
'att':begin
a := 205;
b := 69;
end;
'def':begin
a := 205;
b := 106;
end;
'mag':begin
a := 205;
b := 144;
end;
'pra':begin
a := 205;
b := 182;
end;
'str':begin
a := 425;
b := 69;
end;
'ran':begin
a := 425;
b := 106;
end;
'hit':begin
a := 425;
b := 144;
end;
end;
Status('Spending Points');
WriteLn('Getting ' + Players[CP].Strings[0] + ' Experience');
Mouse(a, b, 19, 4, True);
Wait(500 + Random(1000));
if not FindBlackChatMessage('oint') then
begin
Mouse(250, 291, 17, 4, True)
Players[CP].Integers[3] := Players[CP].Integers[3] - 100;
PS := PS + 100;
ReportVars[5] := ReportVars[5] + 100;
end else Mouse(477, 24, 7, 8, True);
WriteLn('Going back to boat');
end;
//------------------------------- Mickaliscious ------------------------------\\
function FindVoidKnight: boolean;
var
a: integer;
begin
Status('Looking for Void Knight');
WriteLn('Spending points now');
HighestAngle;
MakeCompass('N');
case Boat of
'100+':begin
If FindSymbol(x, y, 'shop') or FindSymbol(x, y, 'anvil') then
begin
Mouse(x, y, 4, 4, True);
FFlag(6);
end else
begin
Mouse(706, 56, 3, 3, True)
FFlag(6);
end;
end;
'70+':begin
if FindSymbol(x, y, 'magic shop') then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(100 + Random(300));
if FindSymbol(x, y, 'shop') then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
end else Mouse(637, 40, 5, 5, True);
end else
begin
Mouse(695, 45, 5, 5, True);
FFlag(6);
Wait(100 + Random(300));
if FindSymbol(x, y, 'shop') then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
end else Mouse(637, 40, 5, 5, True);
end;
end;
'40+':begin
if FindSymbol(x, y, 'magic shop') then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(100 + Random(300));
if FindSymbol(x, y, 'shop') then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
end else Mouse(637, 40, 5, 5, True);
end else
begin
Mouse(648, 26, 5, 5, True);
FFlag(6);
Wait(100 + Random(300));
if FindSymbol(x, y, 'shop') then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
end else Mouse(637, 40, 5, 5, True);
end;
end;
end;
SkipSearch := True;
repeat
if not LoggedIn then Break;
if FindObjCustom(x, y, ['nigh', 'oid'], [1520253, 1973793], 10) then
begin
Mouse(x, y, 3, 3, False);
if ChooseOption('xcha') then
begin
FFlag(6);
Wait(500 + Random(1000));
if FindBitmapToleranceIn(RewardScreen, x, y, MSX1, MSY1, MSX2, MSY2, 10) then
begin
Result := True;
Break;
end else a := 0;
end;
end;
FindNormalRandomsA;
a := a + 1;
if a = 5 then
begin
Result := False;
Break;
end;
if FindBitmapToleranceIn(RewardScreen, x, y, MSX1, MSY1, MSX2, MSY2, 10) then
begin
Result := True;
Break;
end;
until(not LoggedIn)
end;
//-------------------------------- Infinity001 -------------------------------\\
procedure TimeStamp; //as seen here:
begin //http://www.villavu.com/forum/showthread.php?t=21518
if UseTimes = True then Writeln('(' + TheTime + ') ' + Log)
else WriteLn(Log);
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure GetCBTypeAndLevels;
begin
GameTab(5);
Wait(500 + Random(500));
MMouse(585, 305, 2, 2);
Wait(100 + Random(200));
if IsUpText('taff') then Players[CP].Strings[1] := 'magic' else
if IsUpText('wand') then Players[CP].Strings[1] := 'magic' else
if IsUpText('mej') then Players[CP].Strings[1] := 'magic' else
if (IsUpText('tbow') or IsUpText('gbow')) then //shortbow or longbow
begin
Players[CP].Strings[1] := 'range';
RangeType := 'arrows';
Ammo := DTMFromString('78DA63946660609060400161269C609A11CA6' +
'7140212E20C688011558D3A901024A0461E48281050230924D409' +
'A8E10512CAF8D500000EE001E8'); //Arrows
end else
if IsUpText('shuu') then //Dorgeshuun crossbow
begin
Players[CP].Strings[1] := 'range';
RangeType := 'bbolts';
Ammo := DTMFromString('78DA6394656060B0674001BD3D05609A1188F' +
'F0301A32A9061C38006189148202D0F24DC08A81127428D309070' +
'20A046194898E0570300180E07C0'); //Bone Bolts
end else
if IsUpText('sbow') then
begin
Players[CP].Strings[1] := 'range';
RangeType := 'bolts';
Ammo := DTMFromString('78DA63CC67606010674001B1E1E10CFF81342' +
'310FF0702C634204394010D30229140BA0C4828125003B24B8980' +
'1A905D0A04D454030921FC6A00F74A0954'); //bolts
end else
if IsUpText('wnax') then //thrownaxe
begin
Players[CP].Strings[1] := 'range';
RangeType := 'axes';
Ammo := DTMFromString('78DA6374626060B0634001091E9C0CFF81342' +
'310FF0702C6404C3510591809A46D8184370135D640C28D801A3F' +
'206142845D56F8D50000A56808CF'); //thrownaxe
end else
if IsUpText('knife') then
begin
Players[CP].Strings[1] := 'range';
RangeType := 'knives';
Ammo := DTMFromString('78DA637464606090654001392929609A11CA6' +
'7740012520C688011558D17901022A00664972201353640429580' +
'1A6BC2E60000017D0379'); //knife
end else
if IsUpText('veli') then
begin
Players[CP].Strings[1] := 'range';
RangeType := 'javelins';
Ammo := DTMFromString('78DA631464646028614001112E9A0CAC401A2' +
'8C3F01F08186580AC740634C0884402691E20AB9A801A0E20AB86' +
'801A21202B8F801A51202B1BBF1A00F44307F1'); //javelin
end else Players[CP].Strings[1] := 'melee';
AttLvl := GetSkillLevel('attack');
StrLvl := GetSkillLevel('strength');
DefLvl := GetSkillLevel('defence');
HpLvl := GetSkillLevel('hitpoints');
PrayLvl := GetSkillLevel('prayer');
MageLvl := GetSkillLevel('magic');
RangeLvl := GetSkillLevel('ranged');
ComLvl := GetCombatLevel;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure FreeDTMsandBMPs;
begin
FreeBitmap(NickNameBMP);
FreeBitmap(Symbol);
FreeBitmap(Death);
FreeBitmap(Middle);
FreeBitmap(RewardScreen);
FreeDTM(DragonBattleAxe);
if Players[CP].Strings[1] = 'range' then FreeDTM(Ammo);
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure SpecialAtk; //needs work...
var
Time2: Integer;
begin
if Players[CP].Booleans[0] = False then Exit;
Time2 := GetSystemTime;
if (Time2 - Time1) > 75000 then //313500ms to refill entire special bar
begin
if not FindBlackChatMessage('power') then
begin
GameTab(1);
Wait(500 + Random(200));
if FindColorTolerance(x, y, 65535, 572, 417, 711, 427, 5) then
Players[CP].Booleans[0] := False else
if FindColorTolerance(x, y, 4492610, 572, 417, 711, 427, 5) then
Mouse(640, 423, 60, 9, True) else Time1 := GetSystemTime;
end else Time1 := GetSystemTime;
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure DBSpecial; //Idea by MasterKill (I think), but I made it much more predictable
var
xix, yss: Integer;
begin
If UseDBSpec = False then Exit;
If not (Players[CP].Strings[1] = 'melee') then Exit;
GameTab(4);
Wait(500 + Random(100));
if FindDTM(DragonBattleAxe, x, y, 525, 182, 745, 473) then
begin
Mouse(x, y, 0, 0, True);
GetMousePos(xix, yss);
Wait(100 + Random(500));
GameTab(1);
if FindColorTolerance(x, y, 4492610, 572, 417, 712, 428, 5) then
Mouse(640, 423, 60, 9, True);
Wait(100 + Random(400));
GameTab(4);
MMouse(xix, yss, 0, 0);
Wait(200 + Random(300));
if not (IsUpText('leax')) then
begin
Mouse(xix, yss, 2, 2, True);
Time1 := GetSystemTime;
end;
Wait(1+random(500));
end else
SpecialAtk;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure CheckForAncients;
begin
GameTab(7);
Wait(100 + Random(100));
MMouse(596, 237, 3, 3); //air strike
Wait(100 + Random(100));
if IsUpText('strike') then Ancients := False else Ancients := True;
end;
//------------------------------- Mickaliscious ------------------------------\\
function EquipAmmo: boolean;
begin
if not (Players[CP].Strings[1] = 'range') then Result := False;
GameTab(4);
Wait(100 + Random(500));
if FindDTM(Ammo, x, y, 525, 182, 745, 473) then
begin
Mouse(x, y, 3, 3, True);
Result := False;
Exit;
end else
Result := True;
end;
//------------------------------- Mickaliscious ------------------------------\\
function ChooseSpell: boolean;
begin
GameTab(1);
Wait(700 + Random(400));
if(FindColorTolerance(x, y, 5527896, 654, 317, 670, 334, 30)) then
begin
if Ancients = True then Exit;
Wait(500 + Random(400));
if Players[CP].Integers[0] = 2 then Mouse(687, 272, 10, 10, True);
if Players[CP].Integers[0] = 4 then Mouse(682, 337, 10, 10, True);
Wait(1000 + Random(400));
if (MageLvl > 74) and FindColorTolerance(x, y, 1399290, 690, 333, 720, 368, 20) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 69) and (FindColorTolerance(x, y, 307460, 645, 333, 690, 368, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 64) and (FindColorTolerance(x, y, 16349818, 600, 333, 645, 368, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 61) and (FindColorTolerance(x, y, 12632764, 567, 333, 600, 368, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 58) and (FindColorTolerance(x, y, 974, 690, 294, 720, 333, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 52) and (FindColorTolerance(x, y, 307460, 645, 294, 690, 333, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 46) and (FindColorTolerance(x, y, 16468811, 600, 294, 645, 333, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 40) and (FindColorTolerance(x, y, 12632764, 567, 294, 600, 333, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 34) and (FindColorTolerance(x, y, 225773, 690, 248, 720, 294, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 28) and (FindColorTolerance(x, y, 307460, 645, 248, 690, 294, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 22) and (FindColorTolerance(x, y, 16468811, 600, 248, 645, 294, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 16) and (FindColorTolerance(x, y, 12632764, 567, 248, 600, 294, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 12) and (FindColorTolerance(x, y, 168440, 690, 214, 720, 248, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 8) and (FindColorTolerance(x, y, 307460, 645, 214, 690, 248, 20)) then
Mouse(x, y, 3, 3, True) else
if (MageLvl > 4) and (FindColorTolerance(x, y, 16349818, 600, 214, 645, 248, 20)) then
Mouse(x, y, 3, 3, True) else
if FindColorTolerance(x, y, 12632764, 567, 214, 600, 248, 20) then
Mouse(x, y, 3, 3, True) else Result := True;
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure Prayers;
begin
if UsePrayer = False then Exit;
GameTab(6);
Wait(1000 + random(100));
if not (FindColorTolerance(x, y, 7183276, 549, 211, 732, 439, 5)) then
if Players[CP].Strings[1] = 'melee' then
begin
if PrayLvl > 33 then Mouse(567, 340, 3, 3, True) else //Incredible Reflexes
if PrayLvl > 15 then Mouse(645, 265, 3, 3, True) else //Improved Reflexes
if PrayLvl > 6 then Mouse(645, 230, 3, 3, True); //Clarity of Thought
if PrayLvl > 30 then Mouse(715, 305, 3, 3, True) else //Ultimate Strength
if PrayLvl > 12 then Mouse(605, 270, 3, 3, True) else //Superhuman Strength
if PrayLvl > 3 then Mouse(605, 230, 3, 3, True); //Burst of Strength
end;
if Players[CP].Strings[1] = 'range' then
begin
if PrayLvl > 43 then Mouse(715, 345, 3, 3, True) else //Eagle Eye
if PrayLvl > 25 then Mouse(605, 305, 3, 3, True) else //Hawk Eye
if PrayLvl > 7 then Mouse(680, 230, 3, 3, True); //Sharp Eye
end;
if Players[CP].Strings[1] = 'magic' then
begin
if PrayLvl > 44 then Mouse(567, 380, 3, 3, True) else //Mystic Might
if PrayLvl > 26 then Mouse(640, 305, 3, 3, True) else //Mystic Lore
if PrayLvl > 8 then Mouse(715, 230, 3, 3, True); //Mystic Will
end;
end;
//-------------------- <----- Sp0rk-eh / MasterKill -----> -------------------\\
procedure AntiBan;
begin
status('Performing antiban');
case Random(26) of
0: MMouse(Random(MSX2), Random(MSY2), 0, 0);
1: GameTab(1 + random(10));
2: begin //less lengthy version of hoverskill,
GameTab(2); //now that hovering shows remaining xp till lvl.
Wait(100 + Random(300));
MMouse(635, 327, 100, 140);
Wait(1000 + Random(700));
end;
3: SleepAndMoveMouse(500 + Random(500));
4: PickupMouse;
5: begin
MMouse(x, y, (10 + random(400)) , (10 + random(400)));
MMouse(x, y, (10 + random(400)) , (10 + random(400)));
MMouse(x, y, (10 + random(400)) , (10 + random(400)));
end;
6: begin
MMouse(x, y, (10 + random(400)) , (10 + random(400)))
MMouse(x, y, (10 + random(400)) , (10 + random(400)));
end;
7: MMouse(x, y, (10 + random(400)) , (10 + random(400)));
8: MMouse(x, y, (10 + random(400)) , (10 + random(400)));
9: MMouse(x, y, (10 + random(400)) , (10 + random(400)));
10: MMouse(x, y, (10 + random(400)) , (10 + random(400)));
11: begin
MMouse(x, y, (10 + random(400)) , (10 + random(400)));
MMouse(x, y, (10 + random(400)) , (10 + random(400)));
end;
12: begin
MMouse(x, y, (10 + random(400)) , (10 + random(400)));
MMouse(x, y, (10 + random(400)) , (10 + random(400)));
end;
13: GameTab(1 + random(13));
14: GameTab(1 + random(13));
15: GameTab(1 + random(13));
16: begin
GameTab(1 + random(13));
GameTab(1 + random(13));
end;
17: begin
GameTab(1 + random(13));
MMouse(x, y, (10 + random(400)) , (10 + random(400)));
end;
18: begin
MMouse(10, -100, (10 + random(40)) , (10 + random(40)));
MMouse(x, y, (10 + random(40)) , (10 + random(40)));
end;
18: if Limited = False then MakeCompass('N'); //if waiting for game to start
19: if Limited = False then MakeCompass('E'); //it won't move compass
20: if Limited = False then MakeCompass('W');
21: if Limited = False then MakeCompass('S');
22: HighestAngle;
23: LowestAngle;
24: LowestAngle;
25: LowestAngle;
end;
status('');
end;
//------------------ <----- Wizzup? / Mickaliscious -----> -------------------\\
procedure PlayerReport; //modded from wizzup?'s essence miner
var
Active: string;
i: integer;
begin
for i := 0 to HowManyPlayers - 1 do
begin
if Players[i].Active = True then Active := 'T' else Active := 'F';
WriteLn(IntToStr(i) + ': [ ' + Players[i].Nick +' ] [Loc = ' +
Players[i].Loc + '] [Played ' + IntToStr(Players[i].Integers[2]) +
' Games] [' + Active + ']');
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure GameResults; //basic idea from masterkill
begin
SRLRandomsReport;
AddToReport('!- PestControl -!');
AddToReport('!- by Mickaliscious -!');
AddToReport('\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/');
if W > 0 then AddToReport('Wins : ' + IntToStr(W));
if L > 0 then AddToReport('Losses : ' + IntToStr(L));
if LZ > 0 then AddToReport('Lack of Zeal : ' + IntToStr(LZ));
if SE > 0 then AddToReport('Status Error : ' + IntToStr(SE));
if PG > 0 then AddToReport('Points Gained : ' + IntToStr(PG));
if PS > 0 then AddToReport('Points Spent : ' + IntToStr(PS));
if MickeyDebug then AddToReport('Re-Logs = ' + IntToStr(Logins));
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure ProgressReport;
begin
GameResults;
WriteLn('Running for a maximum of ' + IntToStr(RunLength) + ' hours.');
WriteLn('Time Running: ' + TimeRunning);
WriteLn('<>----------------------<(o)>-----------------------<>');
WriteLn('Won:[' + IntToStr(W) + '] Lost:[' + IntToStr(L) + '] Lacked Zeal:['
+ IntToStr(LZ) + '] Status Errors:[' + IntToStr(SE) + ']');
WriteLn(' Gained [' + IntToStr(PG) + '] pts. Spent [' + IntToStr(PS) + '] pts.');
WriteLn('<>----------------------<(o)>-----------------------<>');
WriteLn('<(o)> ' + Players[CP].Nick + ' : ' + Players[CP].loc);
WriteLn('CB lvl: ' + IntToStr(ComLvl));
if Players[CP].Strings[1] = 'melee' then
begin
WriteLn('ATT lvl: ' + IntToStr(AttLvl));
WriteLn('STR lvl: ' + IntToStr(StrLvl));
WriteLn('DEF lvl: ' + IntToStr(Deflvl));
end;
WriteLn('HP lvl: ' + IntToStr(HpLvl));
If UsePrayer = True then
WriteLn('PRAY lvl: ' + IntToStr(PrayLvl));
If Players[CP].Strings[1] = 'magic' then
WriteLn('MAGE lvl: ' + IntToStr(MageLvl));
If Players[CP].Strings[1] = 'range' then
begin
WriteLn('RANGE lvl: ' + IntToStr(RangeLvl));
WriteLn('Using: '+ RangeType);
end;
WriteLn('<>----------------------<(o)>-----------------------<>');
PlayerReport;
end;
//------------------------------- Mickaliscious ------------------------------\\
function NoMoreAmmoOrRunes:Boolean;
begin
if Players[CP].Strings[1] = 'melee' then
begin
Result := False;
Relog := True;
exit;
end;
if Players[CP].Strings[1] = 'range' then
begin
if EquipAmmo = True then
begin
Players[CP].Loc := ('Out of ' + RangeType);
Log := ('Out of' + RangeType);
TimeStamp;
Relog := False;
Result := True;
Exit;
end;
end;
if Players[CP].Strings[1] = 'magic' then
begin
if ChooseSpell = True then
begin
Players[CP].Loc := 'Out of runes';
Log := 'Out of Runes';
TimeStamp;
Relog := False;
Result := True;
Exit;
end;
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
function InGame: Boolean; //incredibly reliable
begin
if FindBitmapToleranceIn(Symbol, x, y, 4, 35, 24, 55, 20) then
begin
Players[CP].Loc := ('In ' + Boat + ' Game');
Result := True;
Relog := True;
end else
begin
Time1 := 0;
Status('Not in game');
Result := False;
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
function InBoat: Boolean; //very reliable also
var
cx, cy: integer;
begin
if FindText(cx, cy, 'ovi', SmallChars, 472, 315, 514, 333) then
begin
if b = 0 then
begin
b := b + 1;
Boat := '40+';
Log := ('In ' + Boat + ' boat');
TimeStamp;
Players[CP].Loc := '40+ Boat';
end;
Result := True;
end else
if FindText(cx, cy, 'erm', SmallChars, 439, 315, 514, 333) then
begin
if b = 0 then
begin
b := b + 1;
Boat := '70+';
Log := ('In ' + Boat + ' boat');
TimeStamp;
Players[CP].Loc := '70+ Boat';
end;
Result := True;
end else
if FindText(cx, cy, 'ran', SmallChars, 439, 315, 514, 333) then
begin
if b = 0 then
begin
b := b + 1;
Boat := '100+';
Log := ('In ' + Boat + ' boat');
TimeStamp;
Players[CP].Loc := '100+ Boat';
end;
Result := True;
end else
begin
b := 0;
Result := False;
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure FindBoat;
var
RuneShop: Array [0..3] of integer;
i: integer;
begin
if InBoat or Ingame or not LoggedIn then Exit;
RuneShop[0] := 1808876; //couldn't rely on findsymbol due to high number
RuneShop[1] := 3187199; //of players in the area
RuneShop[2] := 3318783;
RuneShop[3] := 2979583;
NotFound := NotFound + 1;
FindNormalRandomsA;
Status('Finding the boat..');
for i := 0 to 3 do
begin
if FindSymbol(x, y, 'shop') then
begin
Mouse(x, y, 4, 4, True);
FFlag(6);
end;
if FindSymbol(x, y, 'anvil') then
begin
Mouse(x, y, 4, 4, True);
FFlag(6);
end;
if FindColorTolerance(x, y, RuneShop[i], MMX1, MMY1, MMX2, MMY2, (10 * (NotFound + 1)))
or FindSymbol(x, y, 'magic shop') then
begin
Mouse(x, y, 5, 5, True);
MakeCompass('S');
Flag;
Players[CP].Loc := 'Rune Shop';
Wait(100 + Random(500));
Mouse(644, 26, 6, 6, True);
Wait(4000 + Random(1000));
FFlag(6);
Players[CP].Loc := 'Dock 1';
if Players[CP].Integers[1] = (2 or 3) then
begin
Mouse(707, 81, 4, 4, True);
Wait(3000 + Random(1000));
FFlag(6);
end;
if Players[CP].Integers[1] = 3 then
begin
Mouse(669, 133, 3, 3, True);
Wait(3000 + Random(1000));
FFlag(6);
MakeCompass('N'); //only 100+ gangplank should be visible.
end;
T := 0;
SkipSearch := False;
end else
if FindColorTolerance(x, y, 5461690, MMX1, MMY1, MMX2, MMY2, 10) then
begin //^ MiniGame symbol color
Mouse(x, y, 6, 6, True);
FFlag(6);
Mouse(597, 50, 10, 10, True);
T := 0;
end;
end;
if MickeyDebug then
begin
WriteLn(IntToStr(T));
WriteLn(IntToStr(NotFound));
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure GoInBoat;
var
xa, ya: integer;
begin
if InGame or InBoat then Exit;
FindNormalRandomsA;
If not LoggedIn then Exit;
NotFound := 0;
T := 0;
if Players[CP].Integers[1] = 3 then MakeCompass('N');
repeat
if not LoggedIn then Break;
if InGame or InBoat then Break;
repeat
FindNormalRandomsA;
if not LoggedIn then Break;
if InGame or InBoat then Break;
status('Getting into the boat');
if FindObjCustom(x, y, ['angpla'], [3825532], (4 + (T * 2))) then
begin
if not FindSymbol(xa, ya, 'transportation') then
begin
Mouse(x, y, 0, 0, True);
FFlag(6);
end else
begin
Mouse(640, 140, 5, 5, True);
FFlag(6);
SkipSearch := True;
end;
end else
begin
if Players[CP].Integers[1] = 3 then MakeCompass('N') else MakeCompass('S');
HighestAngle;
end;
T := T + 1;
AntiBan;
until ((T = 3) or (SkipSearch = True))
FindBoat;
until (NotFound > 3)
if not (InGame or InBoat) then
begin
if not LoggedIn then Exit;
Players[CP].Loc := 'Did not find the boat';
LogOut;
Relog := False;
ProgressReport;
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure FindAmmo;
var
RangedJunk: array [0..4] of string;
JunkColor: array [0..5] of integer;
PickUpTime: integer;
begin
RangedJunk[0] := 'bolt';
RangedJunk[1] := 'arrow';
RangedJunk[2] := 'knife';
RangedJunk[3] := 'naxe';
RangedJunk[4] := 'velin';
JunkColor[0] := 537172; //Arrow shaft
JunkColor[1] := 856939; //Arrow tail
JunkColor[2] := 11192263; //Bone Bolt 1
JunkColor[3] := 8364193; //Bone Bolt 2
JunkColor[4] := 5000275; //Knife Handle
JunkColor[5] := 9805984; //Bolt Feathers
//JunkColor[6] := ; //Axe
//JunkColor[7] := ; //Javelin
MarkTime(PickUpTime);
repeat
if TimeFromMark(PickUpTime) > 15000 then Break;
if not InGame then Break;
status('Looking for ammo');
if FindColorSpiralTolerance(x, y, 395004, MMX1, MMY1, MMX2, MMY2, 7) then
begin
Mouse(x, y, 0, 0, True);
FFlag(6);
if not InGame then Break;
If FindObjCustom(x, y, RangedJunk, JunkColor, 5) then
begin
Mouse(x, y, 0, 0, False);
if not InGame then Break;
Wait(100 + random(200));
Status('Found ammo, picking up now');
if ChooseOption('ake') then
begin
FFlag(3);
Log := 'Found Ammo';
TimeStamp;
Wait(100 + Random(400));
end else
ChooseOption('ancel');
end;
end;
until not (FindColorSpiralTolerance(x, y, 395004, MMX1, MMY1, MMX2, MMY2, 7))
end;
//------------------------------- Mickaliscious ------------------------------\\
Procedure Fight;
var
MonsterColor: array [0..16] of integer; //initially used TArrays, but it
Monster: array [0..7] of string; //slowed procedure.
begin
case Boat of
'40+':
begin
MonsterColor[0] := 879711; //Green Shifter
MonsterColor[1] := 5664922; //Red Shifter
MonsterColor[2] := 7293807; //Purple Defiler tail
MonsterColor[3] := 1953257; //Yellow in purple Defiler eyes
MonsterColor[16] := 1953257;
if Tries > 5 then
begin
MonsterColor[13] := 11240645; //Splatter
MonsterColor[14] := 5728899; //Greenish
MonsterColor[15] := 7898563; //Pinkest Splatter
end;
end;
'70+':
begin
MonsterColor[0] := 879711; //Green Shifter
MonsterColor[1] := 1315862; //Red-Black Shifter
MonsterColor[2] := 1188402; //Gold Shifter
MonsterColor[3] := 4609405; //Pinkish Defilers
MonsterColor[13] := 198173; //Blackish Defiler
if Tries > 5 then
begin
MonsterColor[14] := 2178730; //Orange splatter
MonsterColor[15] := 7898563; //Pinkest Splatter
MonsterColor[16] := 5728899; //Greenish Splatter
end;
end;
'100+':
begin
MonsterColor[0] := 1188402; //Gold Shifter
MonsterColor[1] := 198173; //Blackish Defiler
MonsterColor[2] := 8627365; //White Defiler
MonsterColor[3] := 1188402; //3289653; //Grey Shifter
MonsterColor[16] := 1188402;
if Tries > 5 then
begin
MonsterColor[13] := 2178730; //Orange splatter
MonsterColor[14] := 5728899; //Greenish Splatter
MonsterColor[15] := 6173996; //Blue Splatter
end;
end;
end;
MonsterColor[4] := 5640610; //Defiler Mouth (Pink)
MonsterColor[5] := 1907971; //Torchers (Blue/Green, works great.)
MonsterColor[6] := 10792368; //Top of Red Portal, Ravager claws
MonsterColor[7] := 11052187; //Blue Portal
MonsterColor[8] := 10276815; //Yellow Portal
MonsterColor[9] := 9340036; //Purple Portal
MonsterColor[10] := 12500935; //Brawlers Spikes
MonsterColor[11] := 9414030; //Spinner color 1
MonsterColor[12] := 4554640; //Spinner color 2
Monster[0] := 'ifte';
Monster[1] := 'file';
Monster[2] := 'orch';
Monster[3] := 'avag';
Monster[4] := 'orta';
Monster[5] := 'awle';
Monster[6] := 'inn';
Status('Fight');
If not InGame then Exit;
if Tries > (5 / Players[CP].Integers[1]) then
begin
Monster[7] := 'latt';
Status('Looking for a monster...');
if FindColorSpiralTolerance(x, y, 60909, MMX1, MMY1, MMX2, MMY2, 10) then
begin //^yellow dot on minimap.
Mouse(x, y, 15, 15, True);
FFlag(5);
end;
end;
if FindObjCustom(x, y, Monster, MonsterColor, 5) then
begin
Tries := 0;
if LeftClick = True then
begin
Mouse(x, y, 0, 0, False);
Wait(100 + random(200));
ChooseOption('ttack');
end else Mouse(x, y, 0, 0, True);
Wait(100 + Random(200));
If NoMoreAmmoOrRunes then Logout;
Wait(3000 + Random(2000));
SpecialAtk;
if Players[CP].Strings[1] = 'range' then FindAmmo;
end;
Tries := Tries + 1;
Wait(1 + random(1999));
AntiBan;
end;
//----------------- <----- MasterKill / Mickaliscious -----> -----------------\\
procedure WalkToTheCenter;
begin
MakeCompass('S');
if not InGame then Exit;
if FindBitmapToleranceIn(Middle, x, y, MMX1, MMY1, MMX2, MMY2, 5) then
Mouse((x + 5), y, 5, 5, True) else Mouse(645, 17, 5, 5, True);
case random(2) of
0:begin
DBSpecial;
Prayers;
end;
1:begin
Prayers;
DBSpecial;
end;
end;
Flag;
if ((Players[CP].Integers[1] = 3) and (ComLvl < 104)) then
begin
Mouse(645, 17, 10, 10, True);
FFlag(6);
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure CheckZeal;
begin
if b = 0 then
begin
if FindColorTolerance(x, y, 63488, 32, 63, 53, 74, 5) then
begin
Log := 'More than 50 zeal!';
TimeStamp;
b := b + 1;
end else b := 0;
end;
end;
//---------------------------------- Derek- ----------------------------------\\
Procedure GetPoints; //edited by me
var
Temp: integer;
begin
if (IsTextInAreaEx(13, 77, 114, 97, x, y, 'oints', 100, SmallChars, True, True, 0, 2, -1)) then
Temp := StrToInt(Trim(GetTextAtEx(x + 36, y, 30, SmallChars, True, False, 0, 2, -1, 4, False, tr_Digits)))
else Exit;
if MickeyDebug then WriteLn(IntToStr(Temp));
if Temp > 0 then
begin
Players[CP].Integers[3] := Temp;
C := False;
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
{Procedure GetPoints; //won't work lol.
begin
if (IsTextInAreaEx(144, 365, 180, 385, x, y, 'have', 100, NPCChars, False, False, 0, 3, -1)) then
Players[CP].Integers[3] := StrToInt(Trim(GetTextAtEx(x + 56, y, 30, NPCChars, False, False, 0, 3, -1, 4, False, tr_Digits))) else
case Boat of
'40+': Players[CP].Integers[3] := Players[CP].Integers[3] + 2;
'70+': Players[CP].Integers[3] := Players[CP].Integers[3] + 3;
'100+':Players[CP].Integers[3] := Players[CP].Integers[3] + 4;
end;
end; }
//----------------- <----- MasterKill / Mickaliscious -----> -----------------\\
procedure CheckNPC; //basics by masterkill, edited by me.
begin
Wait(2000);
if FindNpcChatText('ions') or FindNpcChatText('dation') then
begin
W := W + 1;
Log := 'You won!';
TimeStamp;
case Boat of
'40+':
begin
Players[CP].Integers[3] := Players[CP].Integers[3] + 2;
PG := PG + 2;
ReportVars[4] := ReportVars[4] + 2;
end;
'70+':
begin
Players[CP].Integers[3] := Players[CP].Integers[3] + 3;
PG := PG + 3;
ReportVars[4] := ReportVars[4] + 3;
end;
'100+':
begin
Players[CP].Integers[3] := Players[CP].Integers[3] + 4;
PG := PG + 4;
ReportVars[4] := ReportVars[4] + 4;
end;
end;
{case Boat of
'40+': PG := PG + 2;
'70+': PG := PG + 3;
'100+':PG := PG + 4;
end; }
ClickToContinue;
//Wait(1000 + Random(500));
//GetPoints;
if MickeyDebug then WriteLn(IntToStr(Players[CP].Integers[3]) + ' pts');
ReportVars[1] := ReportVars[1] + 1;
C := False;
end else
if FindNpcChatText('illed') then
begin
L := L + 1;
Log := 'You lost.';
TimeStamp;
ReportVars[2] := ReportVars[2] + 1;
ClickToContinue;
C := False;
end else
if FindNpcChatText('ticed') then
begin
LZ := LZ + 1;
ReportVars[3] := ReportVars[3] + 1;
Log := 'Lack of Zeal..';
TimeStamp;
ClickToContinue;
C := False;
end else
begin
SE := SE + 1;
Log := 'Status Error';
TimeStamp;
C := True;
end;
Wait(1000 + Random(1000));
ClickToContinue;
FindNormalRandomsA;
end;
//------------------------------ Mickaliscious -------------------------------\\
procedure MainLoop;
begin
if Players[CP].Integers[3] < 249 then
begin
GoInBoat;
Wait(4000 + Random(1000));
if FindNpcChatText('already') then Players[CP].Integers[3] := 250;
if InBoat or InGame then
begin
MakeCompass('S');
repeat
if C then GetPoints;
FindNormalRandomsA;
if not InBoat then Break;
if not LoggedIn then LoginPlayer;
Wait(100 + Random(1500));
Limited := True;
if Random(4) = 0 then AntiBan;
until (InGame)
Log := 'Game start!';
TimeStamp;
b := 0;
WalkToTheCenter;
Limited := False;
while (LoggedIn and InGame) do
begin
Fight;
CheckZeal;
end;
Log := 'Not in game...';
TimeStamp;
ReportVars[0] := ReportVars[0] + 1;
Players[CP].Integers[2] := Players[CP].Integers[2] + 1;
CheckNPC;
ProgressReport;
GamesDone := GamesDone + 1;
end;
end;
repeat
if Players[CP].Integers[3] > 99 then
begin
if FindVoidKnight then SpendPoints else
begin
if Players[CP].Integers[3] > 249 then
begin
Players[CP].Loc := 'Max Points';
Log := 'Max points, and cant find knight';
TimeStamp;
LogOut;
Relog := False;
end;
end;
end else Break;
until(not LoggedIn)
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure JustLoggedIn;
begin
CP := CurrentPlayer;
if not Players[CP].Integers[1] = (1 or 2 or 3) then
begin
WriteLn('Please set up your boat to use correctly next time');
Wait(1000);
end;
NickNameBMP := CreateBitmapMaskFromText(Players[CP].Nick, UpChars);
LowestAngle;
case Random(2) of
0:begin
SetRun(True);
SetBar('brightness', 4);
GetCBTypeAndLevels;
if not FindColorTolerance(x, y, 1908610, 700, 368, 708, 378, 5) then
Mouse(610, 387, 3, 3, True);
if Players[CP].Strings[1] = 'magic' then
begin
CheckForAncients;
ChooseSpell;
end else SetFightMode(Players[CP].Integers[0]);
end;
1:begin
GetCBTypeAndLevels;
if not FindColorTolerance(x, y, 1908610, 700, 368, 708, 378, 5) then
Mouse(610, 387, 3, 3, True);
if Players[CP].Strings[1] = 'magic' then
begin
CheckForAncients;
ChooseSpell;
end else SetFightMode(Players[CP].Integers[0]);
SetRun(True);
SetBar('brightness', 4);
end;
end;
Time1 := 0;
Relog := True;
SkipSearch := False;
case Players[CP].Integers[1] of
1: Boat := '40+';
2: Boat := '70+';
3: Boat := '100+';
end;
C := True;
end;
//------------------------------- Mickaliscious ------------------------------\\
Procedure SleepyTime;
var
Sleepy: integer;
begin
Status('Sleeping...');
Log := 'Sleep-Time (AntiBan)';
TimeStamp;
Wait(500);
Sleepy := (100000 + Random(5000000));
WriteLn('Will log in again in a little... ' + IntToStr(Sleepy) + 'msecs');
Wait(Sleepy);
Status('Logging back in...');
Log := 'Logging back in now';
TimeStamp;
LoginPlayer;
WriteLn('That was a nice nap, back to PestControl!');
end;
//------------------------------- Mickaliscious ------------------------------\\
Procedure SetupScript;
begin
case Random(4) of
0:Disguise('AVG Free Edition');
1:Disguise('iTunes');
2:Disguise('Calculator');
3:Disguise('untitled - Paint');
end;
ClearDebug;
WriteLn('PestControl!');
if (SRL_ID = '') or (SRL_Pass = '') then
begin
WriteLn('Oh noes!!!! Youre a leecher!!');
Wait(1000);
WriteLn('Please register for an SRL Stats ID');
Wait(1000);
WriteLn('Opening registration page now...');
Wait(1000);
OpenWebPage('http://stats.srl-forums.com/index.php?action=register');
Wait(10000);
TerminateScript;
end;
SetupSRL;
ScriptID := '453';
SetUpPlayers;
SRLID := SRL_ID;
SRLPassword := SRL_Pass;
FindWindowBySize(766, 504);
Activateclient;
end; {
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\\
0-------------------------------- Mickaliscious -------------------------------0
\\!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// }
begin
SetupScript;
MarkTime(Start);
GameResults;
LoginPlayer;
PlayersDone := 1;
JustLoggedIn;
repeat
MainLoop;
if ((GamesDone + Random(3)) > (GamesToDo)) then
begin
ProgressReport;
if HowManyPlayers = PlayersDone then //if no other players to use
begin
if Random(2) = 0 then SleepyTime;
end else NextPlayer(True);
GamesDone := 0;
JustLoggedIn;
end;
if not LoggedIn then
begin
if (Logins < 5) and (ReLog = True) then
begin
Logins := Logins + 1;
LoginPlayer;
end else
begin
Log := 'Switching Players';
TimeStamp;
PlayersDone := PlayersDone + 1;
if (HowManyPlayers < PlayersDone) then
begin
WriteLn('Out of players to use');
Break;
end;
NextPlayer(False);
end;
JustLoggedIn;
end;
until (TimeFromMark(Start) > (RunLength * 3600000))
GameResults;
FreeDTMsandBMPs;
end.
——————————————————