i have this pc script, and i cant get it to work, this is the first time i have ever tryed autoing, i was wondering if some1 can copy this and explain how to compleatly fill in this script it would be very helpfull. even if u could fill it in with a fake username or something.
thankyou hurky
program MicksPestConrol;
{.include SRL\SRL.scar}
var
PS, W, L, SE, LZ, T, PG: Word;
x, y, DBAxe, Symbol, Death, Middle, Ammo, RewardScreen, Start, Time1, SquirePt: Integer;
GamesDone, Tries, NotFound, Logins, b, CP: Byte;
RangeType, Boat: string;
Ancients, Relog, SkipSearch, Limited, C, D: Boolean;
MonsterColor: array [0..13] of integer;
Monster: array [0..6] of string;
{------------------------------------------------------------------------------)
!- Mickaliscious proudly presents: -!
(------------------------------------------------------------------------------)
[][-\ [][][] /-][] [][][]
[]::[] [] \.\ []
[][-/ [][] \.\ []
[] [] \.\ []
[] [][][] [][-/ []
/[][] [][] []\ [] [][][] [][-\ [][] []
[] []::[] [].\[] [] [] [] []::[] []
[] []::[] []\.[] [] [][-/ []::[] []
[] []::[] [] \[] [] [] [-\ []::[] []
\[][] [][] [] [] [] [] [] [][] [][][]
(------------------------------------------------------------------------------)
!- For use with SCAR 3.12c, and SRL Revision 7. -!
(------------------------------------------------------------------------------)
* Checks to see if there is a newer version available.
* 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.
* CAN SPEND 100 POINTS ON A SKILL OF YOUR CHOICE ANYTIME YOU HAVE 100 POINTS!
__________________________________________________ ___
/-----------------------------------------------------\
!- 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: -!
!- srl-forums.com/forum/micks-pestcontrol-t25457.html -!
!-__________________________________________________ __-!
\-----------------------------------------------------/
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 = ''; // http://www.stats.srl-forums.com
GamesToDo = 20; // # of games to do before switch player (+ Random 3)
RunLength = 11; //Maximum hours to run the script?
UseTimes = True; //Shows what time each action occurs.
LookForAmmo = True; //For rangers, true to pick up your ammo.
RightClick = False; //Left clicks monsters to attack
SpendThePoints = True; //Will spend the points gained.
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.}
ShutDownPc = False; //Will shutdown your pc after you run out of players to use.
procedure SetUpPlayers;
begin
NumberOfPlayers(1); 1
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 }
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 := False;
Players[1].Strings[0] := 'str'; {spend points on which skill?
use first 3 letters of skill }
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
(------------------------------------------------------------------------------}
DBAxe := DTMFromString('78DA637466626078C1800618914820ED0A5 47' +
'39D801A53A09AA704D4F803D57C24A0C606A8E62E1176DD23 C2CD' +
'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=');
SquirePt := DTMFromString('78DA636462606000612470716319030B906 60' +
'4E2FF40C008E230A3AAF9F20522C408E583D5B0A0AA397306 8B1A' +
'560634C088440269564C35C8EE0101002D5B0BAC');
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure FreeMemory;
begin
FreeBitmap(NickNameBMP);
FreeBitmap(Symbol);
FreeBitmap(Death);
FreeBitmap(Middle);
FreeBitmap(RewardScreen);
FreeDTM(SquirePt);
FreeDTM(DBAxe);
if Players[CP].Strings[1] = 'range' then FreeDTM(Ammo);
end;
//---------------------------------- Jahuro ----------------------------------\\
procedure ShutItDown;
begin
KeyDown(92); //method 1
KeyUp(92);
wait(200);
sendkeys ('u');
sendkeys ('u');
Wait (30000); // if your pc is still on after 30 seconds
KeyDown(92); // then method 2
wait(200);
KeyDown(82);
wait(200);
KeyUp(82);
wait(200);
KeyUp(92);
wait(200);
Sendkeys('shutdown -s -f -t 00'+chr(13));
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: byte; //also added findfight
begin
if not LoggedIn then Exit;
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 RunTo('N',True);
if Result then Break;
end;
end;
//-------------------------------- XcanadamanX -------------------------------\\
Procedure AllignMM(Side: char); //added side var
var
DTM, x, y, i: integer;
Acc: extended;
begin
MakeCompass(Side); //added so its not needed before align minimap
DTM := DTMFromString('78DA634C676260086240016F9F7C641001D 28' +
'C40FC1F0818416AFC71AB0101B09A7022D44413A1C60BBF1A 009F' +
'1015DF');
Wait(50);
if FindDtmRotated(DTM,x,y,MMX1,MMY1,MMX2,MMY2,radians (-40),radians(40),0.01,acc) then
begin
if (Acc < 0.1) and (Acc > -0.1) then Exit else
begin
repeat
If FindDtmRotated(DTM,x,y,MMX1,MMY1,MMX2,MMY2,radians (-40),radians(40),0.01,acc) then
begin
if Acc < 0 then
begin
KeyDown(VK_RIGHT);
Wait(20 + Random(10));
KeyUp(VK_RIGHT);
end;
if Acc > 0 then
begin
KeyDown(VK_LEFT);
Wait(20+random(10));
KeyUp(VK_LEFT);
end;
if Acc = 0 then Break;
end else Exit;
Wait(20);
Inc(i);
until (((acc < 0.1) and (acc > -0.1)) or (i > 25))
end;
end;
FreeDtm(DTM);
MakeCompass(Side);
end;
//----------------- <----- Infintry001 / Mickaliscious -----> ----------------\\
procedure TimeStamp(Log: string); //a hybrid of:
begin //srl-forums.com/forum/adding-time-recording-t23476.html
if UseTimes = True then Writeln('(' + TheTime + ') ' + Log)
else WriteLn(Log);
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure SpendPoints;
var
xa, ya: Word;
begin
case LowerCase(Players[CP].Strings[0]) of
'att':begin
xa := 205;
ya := 69;
end;
'def':begin
xa := 205;
ya := 106;
end;
'mag':begin
xa := 205;
ya := 144;
end;
'pra':begin
xa := 205;
ya := 182;
end;
'str':begin
xa := 425;
ya := 69;
end;
'ran':begin
xa := 425;
ya := 106;
end;
'hit':begin
xa := 425;
ya := 144;
end;
end;
Status('Spending Points');
WriteLn('Getting ' + Players[CP].Strings[0] + ' Experience');
Mouse(xa, ya, 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);
Wait(500 + Random(500));
WriteLn('Going back to boat');
end;
//------------------------------- Mickaliscious ------------------------------\\
function FindVoidKnight: boolean;
var
a: byte;
begin
Status('Looking for Void Knight');
WriteLn('Spending points now');
HighestAngle;
AllignMM('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 FindBitmapToleranceIn(RewardScreen, x, y, MSX1, MSY1, MSX2, MSY2, 10) then
begin
Result := True;
Break;
end;
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;
Inc(a);
if a = 5 then
begin
Result := False;
Break;
end;
until(not LoggedIn)
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('78DA63946660609060400161269C609A11C A6' +
'7140212E20C688011558D3A901024A0461E48281050230924 D409' +
'A8E10512CAF8D500000EE001E8'); //Arrows
end else
if IsUpText('shuu') then //Dorgeshuun crossbow
begin
Players[CP].Strings[1] := 'range';
RangeType := 'bbolts';
Ammo := DTMFromString('78DA6394656060B0674001BD3D05609A118 8F' +
'F0301A32A9061C38006189148202D0F24DC08A81127428D30 9070' +
'20A046194898E0570300180E07C0'); //Bone Bolts
end else
if IsUpText('sbow') then
begin
Players[CP].Strings[1] := 'range';
RangeType := 'bolts';
Ammo := DTMFromString('78DA63CC67606010674001B1E1E10CFF813 42' +
'310FF0702C634204394010D30229140BA0C4828125003B24B 8980' +
'1A905D0A04D454030921FC6A00F74A0954'); //bolts
end else
if IsUpText('wnax') then //thrownaxe
begin
Players[CP].Strings[1] := 'range';
RangeType := 'axes';
Ammo := DTMFromString('78DA6374626060B0634001091E9C0CFF813 42' +
'310FF0702C6404C3510591809A46D8184370135D640C28D80 1A3F' +
'206142845D56F8D50000A56808CF'); //thrownaxe
end else
if IsUpText('knife') then
begin
Players[CP].Strings[1] := 'range';
RangeType := 'knives';
Ammo := DTMFromString('78DA637464606090654001392929609A11C A6' +
'7740012520C688011558D17901022A0066497220135364042 9580' +
'1A6BC2E60000017D0379'); //knife
end else
if IsUpText('veli') then
begin
Players[CP].Strings[1] := 'range';
RangeType := 'javelins';
Ammo := DTMFromString('78DA631464646028614001112E9A0CAC401 A2' +
'8C3F01F08186580AC740634C0884402691E20AB9A801A0E20 AB86' +
'801A21202B8F801A51202B1BBF1A00F44307F1'); //javelin
end else Players[CP].Strings[1] := 'melee';
GetAllLevels;
Players[CP].Integers[4] := GetCombatLevel;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure SpecialAtk;
var
Time2: Integer;
begin
if Players[CP].Booleans[0] = False then Exit;
Time2 := GetSystemTime;
if (Time2 - Time1) > 85000 then //313500ms to refill entire special bar
begin
if not FindBlackChatMessage('power') then
begin
GameTab(1);
Wait(600 + 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
begin
Mouse(640, 423, 60, 9, True);
if MickeyDebug then TimeStamp('Used Special');
end 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(DBAxe, 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 IsChatBlackTextAnyLine('uiver') then
begin
GameTab(4);
Wait(RandomRange(100, 600));
if FindDTM(Ammo, x, y, 525, 182, 745, 473) then
begin
Mouse(x, y, 4, 4, True);
Result := False;
end else Result := True;
end else Result := False;
end;
//------------------------------- Mickaliscious ------------------------------\\
function ChooseSpell(First:Boolean): boolean;
begin
if IsChatBlackTextAnyLine('ast') or First then
begin
GameTab(1);
Wait(RandomRange(700,1100));
if(FindColorTolerance(x, y, 5527896, 654, 317, 670, 334, 30)) then
begin
if Players[CP].Booleans[2] then Exit;
Wait(RandomRange(500,900));
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(RandomRange(300,1000));
if (Players[CP].Level[6] > 74) and FindColorTolerance(x, y, 1399290, 690, 333, 720, 368, 20) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 69) and (FindColorTolerance(x, y, 307460, 645, 333, 690, 368, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 64) and (FindColorTolerance(x, y, 16349818, 600, 333, 645, 368, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 61) and (FindColorTolerance(x, y, 12632764, 567, 333, 600, 368, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 58) and (FindColorTolerance(x, y, 974, 690, 294, 720, 333, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 52) and (FindColorTolerance(x, y, 307460, 645, 294, 690, 333, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 46) and (FindColorTolerance(x, y, 16468811, 600, 294, 645, 333, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 40) and (FindColorTolerance(x, y, 12632764, 567, 294, 600, 333, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 34) and (FindColorTolerance(x, y, 225773, 690, 248, 720, 294, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 28) and (FindColorTolerance(x, y, 307460, 645, 248, 690, 294, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 22) and (FindColorTolerance(x, y, 16468811, 600, 248, 645, 294, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 16) and (FindColorTolerance(x, y, 12632764, 567, 248, 600, 294, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 12) and (FindColorTolerance(x, y, 168440, 690, 214, 720, 248, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 8) and (FindColorTolerance(x, y, 307460, 645, 214, 690, 248, 20)) then
Mouse(x, y, 3, 3, True) else
if (Players[CP].Level[6] > 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 else Result := False;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure Prayers;
begin
if UsePrayer = False then Exit;
GameTab(6);
Wait(800 + random(100));
if not (FindColorTolerance(x, y, 7183276, 549, 211, 732, 439, 5)) then
if Players[CP].Strings[1] = 'melee' then
begin
if Players[CP].Level[5] > 33 then Mouse(567, 340, 3, 3, True) else //Incredible Reflexes
if Players[CP].Level[5] > 15 then Mouse(645, 265, 3, 3, True) else //Improved Reflexes
if Players[CP].Level[5] > 6 then Mouse(645, 230, 3, 3, True); //Clarity of Thought
if Players[CP].Level[5] > 30 then Mouse(715, 305, 3, 3, True) else //Ultimate Strength
if Players[CP].Level[5] > 12 then Mouse(605, 270, 3, 3, True) else //Superhuman Strength
if Players[CP].Level[5] > 3 then Mouse(605, 230, 3, 3, True); //Burst of Strength
end;
if Players[CP].Strings[1] = 'range' then
begin
if Players[CP].Level[5] > 43 then Mouse(715, 345, 3, 3, True) else //Eagle Eye
if Players[CP].Level[5] > 25 then Mouse(605, 305, 3, 3, True) else //Hawk Eye
if Players[CP].Level[5] > 7 then Mouse(680, 230, 3, 3, True); //Sharp Eye
end;
if Players[CP].Strings[1] = 'magic' then
begin
if Players[CP].Level[5] > 44 then Mouse(567, 380, 3, 3, True) else //Mystic Might
if Players[CP].Level[5] > 26 then Mouse(640, 305, 3, 3, True) else //Mystic Lore
if Players[CP].Level[5] > 8 then Mouse(715, 230, 3, 3, True); //Mystic Will
end;
end;
//-------------------- <----- Sp0rk-eh / MasterKill -----> -------------------\\
procedure AntiBan(Limited:Boolean);
var
AB: byte;
begin
Status('Performing antiban');
if Limited then AB := RandomRange(0,19) else AB := RandomRange(0,29);
case AB 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(RandomRange(100,400));
MMouse(635, 327, 100, 140); //Randomize Coords
Wait(RandomRange(1000,1700));
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,7,8,9: MMouse(x, y, (10 + random(400)) , (10 + random(400)));
10,11,12:
begin
MMouse(x, y, (10 + random(400)) , (10 + random(400)));
MMouse(x, y, (10 + random(400)) , (10 + random(400)));
end;
13,14,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, (RandomRange(10,40)) , (RandomRange(10,40)));
MMouse(x, y, (RandomRange(10,40)) , (RandomRange(10,40)));
end;
19: MouseSpeed := 12 + Random(5);
20: MakeCompass('N'); //if waiting for game to start
21: MakeCompass('E'); //it won't move compass
22: MakeCompass('W');
23: MakeCompass('S');
24: RandomMovement;
25: case Random(2) of
0:begin
KeyDown(VK_Left);
Wait(RandomRange(100,600));
KeyUp(VK_Left);
Wait(RandomRange(100,600));
end;
1:begin
KeyDown(VK_Right);
Wait(RandomRange(100,600));
KeyUp(VK_Right);
Wait(RandomRange(100,600));
end;
end;
26: HighestAngle;
27,28: LowestAngle;
29: case Random(2) of
0:begin
KeyDown(VK_Down);
Wait(RandomRange(100,600));
KeyUp(VK_Down);
Wait(RandomRange(100,600));
end;
1:begin
KeyDown(VK_Up);
Wait(RandomRange(100,600));
KeyUp(VK_Up);
Wait(RandomRange(100,600));
end;
end;
end;
Status('');
end;
//------------------ <----- Wizzup? / Mickaliscious -----> -------------------\\
procedure PlayerReport; //modded from wizzup?'s essence miner
var
Active: string;
i: byte;
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
var
H, M, S: integer;
begin
ConvertTime(GetTimeRunning, H, M, S);
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));
AddToReport('Time Running: '+IntToStr(H)+' hr '+IntToStr(M)+' min '+IntToStr(S)+' sec');
if MickeyDebug then
if Logins > 0 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 + ' : ' + IntToStr(Players[CP].Integers[3]) + ' Points');
WriteLn('CB lvl: ' + IntToStr(Players[CP].Integers[4]));
if Players[CP].Strings[1] = 'melee' then
begin
WriteLn('ATT lvl: ' + IntToStr(Players[CP].Level[1]));
WriteLn('STR lvl: ' + IntToStr(Players[CP].Level[2]));
WriteLn('DEF lvl: ' + IntToStr(Players[CP].Level[3]));
end;
WriteLn('HP lvl: ' + IntToStr(Players[CP].Level[8]));
If UsePrayer = True then
WriteLn('PRAY lvl: ' + IntToStr(Players[CP].Level[5]));
If Players[CP].Strings[1] = 'magic' then
WriteLn('MAGE lvl: ' + IntToStr(Players[CP].Level[6]));
If Players[CP].Strings[1] = 'range' then
begin
WriteLn('RANGE lvl: ' + IntToStr(Players[CP].Level[4]));
WriteLn('Using: '+ RangeType);
end;
WriteLn('<>----------------------<(o)>-----------------------<>');
PlayerReport;
end;
//------------------------------- Mickaliscious ------------------------------\\
function NoMoreAmmoOrRunes:Boolean;
begin
if Players[CP].Strings[1] <> 'melee' then
begin
if Players[CP].Strings[1] = 'range' then
if EquipAmmo then
begin
Players[CP].Loc := ('Out of ' + RangeType);
TimeStamp('Out of' + RangeType);
Relog := False;
Result := True;
Exit;
end;
if Players[CP].Strings[1] = 'magic' then
if ChooseSpell(False) then
begin
Players[CP].Loc := 'Out of runes';
TimeStamp('Out of Runes');
Relog := False;
Result := True;
Exit;
end;
end else Result := False;
end;
//------------------------------- Mickaliscious ------------------------------\\
function InGame: Boolean; //incredibly reliable
var
h, v: Integer;
begin
if FindBitmapToleranceIn(Symbol, h, v, 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
Inc(b);
Boat := '40+';
TimeStamp('In ' + Boat + ' boat');
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
Inc(b);
Boat := '70+';
TimeStamp('In ' + Boat + ' boat');
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
Inc(b);
Boat := '100+';
TimeStamp('In ' + Boat + ' boat');
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: byte;
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;
Inc(NotFound);
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);
AllignMM('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);
AllignMM('N'); //only 100+ gangplank should be visible.
end;
T := 0;
SkipSearch := False;
Break;
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;
Break;
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 AllignMM('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 AllignMM('N') else AllignMM('S');
HighestAngle;
end;
Inc(T);
AntiBan(True);
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
if LookForAmmo then
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 //Autocolor Maybe?
begin
if InGame then Mouse(x, y, 0, 0, True) else Break;
FFlag(6);
if not InGame then Break;
If FindObjCustom(x, y, RangedJunk, JunkColor, 5) then //Again, TPA's or something?
begin
if InGame then Mouse(x, y, 0, 0, False) else Break;
Wait(RandomRange(100,300));
Status('Found ammo, picking up now');
if ChooseOption('ake') then
begin
FFlag(3);
TimeStamp('Found Ammo');
Wait(RandomRange(100,500));
end else
ChooseOption('ancel');
end;
end else Continue;
until (False) //If autocolor line 966 then do it here too.
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure SetupColors;
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[4] := 1953257;
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[4] := 198173; //Blackish Defiler
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[4] := 1188402;
end;
end;
MonsterColor[5] := 5640610; //Defiler Mouth (Pink)
MonsterColor[6] := 1907971; //Torchers (Blue/Green, works great.)
MonsterColor[7] := 10792368; //Top of Red Portal, Ravager claws
MonsterColor[8] := 11052187; //Blue Portal
MonsterColor[9] := 10276815; //Yellow Portal
MonsterColor[10] := 9340036; //Purple Portal
MonsterColor[11] := 12500935; //Brawlers Spikes
MonsterColor[12] := 9414030; //Spinner color 1
MonsterColor[13] := 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';
end;
//------------------------------- Mickaliscious ------------------------------\\
Procedure Fight;
var
Splat: array [0..2] of integer;
Box: TBox;
h, v: integer;
begin
Status('Fight');
if not InGame then Exit;
if Tries > (5 / Players[CP].Integers[1]) then
begin
case Boat of
'40+':
begin
Splat[0] := 11240645; //Splatter
Splat[1] := 5728899; //Greenish
Splat[2] := 7898563; //Pinkest Splatter
end;
'70+':
begin
Splat[0] := 2178730; //Orange splatter
Splat[1] := 7898563; //Pinkest Splatter
Splat[2] := 5728899; //Greenish Splatter
end;
'100+':
begin
Splat[0] := 2178730; //Orange splatter
Splat[1] := 5728899; //Greenish Splatter
Splat[2] := 6173996; //Blue Splatter
end;
end;
Status('Looking for a monster...');
if DTMRotated(SquirePt, h, v, MMX1, MMY1, MMX2, MMY2) then Box := IntToBox(h, v, h+8, v+7);
if FindColorSkipBoxTolerance(x, y, 60909, MMX1, MMY1, MMX2, MMY2, 10, Box) then
begin //^yellow dot on minimap.
Mouse(x, y, 15, 15, True);
FFlag(5);
end;
if FindObjCustom(x, y, ['latt'], Splat, 5) then Mouse(x, y, 3, 3, True);
end;
if FindObjCustom(x, y, Monster, MonsterColor, 5) then
begin
Tries := 0;
if RightClick = True then
begin
Mouse(x, y, 0, 0, False);
Wait(RandomRange(100,300));
if InGame then ChooseOption('ttack') else Exit;
end else
if InGame then Mouse(x, y, 0, 0, True) else Exit;
Wait(RandomRange(100,700));
If NoMoreAmmoOrRunes then Logout;
AntiBan(False);
if MickeyDebug then
begin
SaveToChatLog;
//if b > 0 then FindAmmo;
end;
Wait(RandomRange(1000,2500));
SpecialAtk;
if Players[CP].Strings[1] = 'range'then FindAmmo;
end;
Inc(Tries);
Wait(1 + Random(499));
end;
//----------------- <----- MasterKill / Mickaliscious -----> -----------------\\
procedure WalkToTheCenter;
begin
AllignMM('S');
if not InGame then Exit;
if FindBitmapToleranceIn(Middle, x, y, MMX1, MMY1, MMX2, MMY2, 5) then
Mouse(x, 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 (Players[CP].Integers[4] < 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
TimeStamp('More than 50 zeal!');
Inc(b);
end else b := 0;
end;
end;
//------------------- <----- Derek- / Mickaliscious -----> -------------------\\
Procedure GetPoints; //all the hard work by derek-, I really just customized it.
var
Temp: integer;
begin
if not (C or D) then Exit;
if (IsTextInAreaEx(13, 77, 114, 97, x, y, 'oints', 100, SmallChars, True, True, 0, 2, -1)) then
try
Temp := StrToInt(Trim(GetTextAtEx(x + 36, y, 30, SmallChars, True, False, 0, 2, -1, 4, False, tr_Digits)))
except
WriteLn('Couldnt get points');
end
else Exit;
if MickeyDebug then WriteLn(IntToStr(Temp));
if Temp > Players[CP].Integers[3] then
begin
if C = True then
begin
W := W + 1;
ReportVars[1] := ReportVars[1] + 1;
ReportVars[4] := ReportVars[4] + (Temp - Players[CP].Integers[3]);
SE := SE - 1;
end;
Players[CP].Integers[3] := Temp;
C := False;
D := False;
end;
end;
//----------------- <----- Mickaliscious / MasterKill -----> -----------------\\
procedure CheckNPC; //basics by masterkill, severely edited by me.
begin
Wait(3000);
if FindNpcChatText('ions') or FindNpcChatText('dation') then
begin
Inc(W);
TimeStamp('You won!');
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;
ClickToContinue;
if MickeyDebug then WriteLn(IntToStr(Players[CP].Integers[3]) + ' pts');
Inc(ReportVars[1]);
C := False;
end else
if FindNpcChatText('illed') then
begin
Inc(L);
TimeStamp('You lost.');
Inc(ReportVars[2]);
ClickToContinue;
C := False;
end else
if FindNpcChatText('ticed') then
begin
Inc(LZ);
Inc(ReportVars[3]);
TimeStamp('Lack of Zeal..');
ClickToContinue;
C := False;
end else
begin
Inc(SE);
TimeStamp('Status Error');
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
SetupColors;
AllignMM('S');
repeat
if not InBoat then Break;
if C or D then GetPoints;
FindNormalRandomsA;
if not LoggedIn then LoginPlayer;
Wait(100 + Random(1500));
Limited := True;
if Random(4) = 0 then AntiBan(True);
until (InGame)
TimeStamp('Game start!');
b := 0;
WalkToTheCenter;
Limited := False;
while (LoggedIn and InGame) do
begin
Fight;
CheckZeal;
end;
TimeStamp('Not in game...');
Inc(ReportVars[0]);
Inc(Players[CP].Integers[2]);
CheckNPC;
ProgressReport;
Inc(GamesDone);
end;
end;
if SpendThePoints then
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';
TimeStamp('Max points and cant find knight');
LogOut;
Relog := False;
Break;
end;
end;
end else Break;
until(not LoggedIn) else
if Players[CP].Integers[3] > 249 then
begin
Players[CP].Loc := 'Max Points';
TimeStamp('Max points');
LogOut;
Relog := False;
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure JustLoggedIn;
begin
if MickeyDebug then Wait(5000);
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;
if Players[CP].Booleans[1] = True then
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(True);
end else SetFightMode(Players[CP].Integers[0]);
Players[CP].Booleans[1] := False;
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(True);
end else SetFightMode(Players[CP].Integers[0]);
SetRun(True);
SetBar('brightness', 4);
Players[CP].Booleans[1] := False;
end;
end else SetRun(True);
Time1 := 0;
Relog := True;
SkipSearch := False;
case Players[CP].Integers[1] of
1: Boat := '40+';
2: Boat := '70+';
3: Boat := '100+';
end;
D := True;
end;
//------------------------------- Mickaliscious ------------------------------\\
Procedure SleepyTime;
var
S1, T1, H, M, S: integer;
begin
MarkTime(T1);
Status('Sleeping...');
TimeStamp('Sleep-Time (AntiBan)');
Wait(500);
S1 := (100000 + Random(5000000));
ConvertTime(S1, H, M, S);
WriteLn('Will log in again in ' + IntToStr(H) + ' Hours ' + IntToStr(M) + ' Minutes ' + IntToStr(S) + ' Seconds')
//(Round(S1 / 60000)) + ' minutes');
repeat
Wait(100);
Status('Sleeping ' + IntToStr(Round(S1-TimeFromMark(T1))) + ' more minutes');
until(TimeFromMark(T1) > S1)
Status('Logging back in...');
TimeStamp('Logging back in now');
LoginPlayer;
WriteLn('That was a nice nap, back to PestControl!');
end;
//------------------------------- Mickaliscious ------------------------------\\
function DoPlayerSwitching: Boolean;
var
i, ActivePlayers: byte;
begin
if ((GamesDone + Random(3)) > GamesToDo) then
begin
ProgressReport;
for i := 0 to High(Players) do
if Players[i].Active = True then Inc(ActivePlayers);
if MickeyDebug then WriteLn(IntToStr(ActivePlayers) + ' players active');
if ActivePlayers = 1 then //if no other players to use
begin
if Random(3) = 0 then SleepyTime;
end else NextPlayer(True);
GamesDone := 0;
JustLoggedIn;
end;
if not LoggedIn then
begin
if (Logins < 5) and (ReLog = True) then
begin
Inc(Logins);
LoginPlayer;
JustLoggedIn;
end else
begin
TimeStamp('Switching Players');
Players[CP].Active := False;
for i := 0 to High(Players) do
if Players[i].Active = True then Inc(ActivePlayers);
if MickeyDebug then WriteLn(IntToStr(ActivePlayers) + ' players active');
if ActivePlayers = 0 then
begin
WriteLn('Out of players to use');
Result := True;
end else
begin
NextPlayer(False);
JustLoggedIn;
end;
end;
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
procedure CheckVersion(Version: string);
var
Current: string;
begin
Current := GetPage('http://mickaliscious.freehostia.com/v.txt');
if Current = Version then WriteLn('Your script is up to date')
else
begin
WriteLn('The current version of this script is '+ Current);
Wait(1000);
WriteLn('You have '+Version);
Wait(1000);
WriteLn('Opening site for newest script shortly...');
Wait(500);
OpenWebPage('http://www.villavu.com/forum/showthread.php?t=23339');
TerminateScript;
end;
end;
//------------------------------- Mickaliscious ------------------------------\\
Procedure SetupScript;
var
i: byte;
begin
ClearDebug;
SetupSRL;
CheckVersion('1.37');
case Random(4) of
0isguise('AVG Free Edition');
1isguise('iTunes');
2isguise('Calculator');
3isguise('untitled - Paint');
end;
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;
if MickeyDebug then Wait(10000);
ScriptID := '453';
SetUpPlayers;
SRLID := SRL_ID;
SRLPassword := SRL_Pass;
for i := 0 to High(Players) do
begin
Players[i].Booleans[0] := True;
Players[i].Booleans[1] := True;
end;
if not MickeyDebug then FindWindowBySize(766, 504);
Activateclient;
end; {
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!\\
0-------------------------------- Mickaliscious -------------------------------0
\\!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!// }
begin
SetupScript;
MarkTime(Start);
GameResults;
LoginPlayer;
JustLoggedIn;
repeat
MainLoop;
if TimeFromMark(Start) > (RunLength * 3600000) then
begin
TimeStamp('Passed up max run length.');
WriteLn('Stopping Script now');
Break;
end;
until (DoPlayerSwitching)
GameResults;
FreeMemory;
if ShutDownPc then ShutItDown;
end.


isguise('AVG Free Edition');
Reply With Quote





