Results 1 to 4 of 4

Thread: filling in the script

  1. #1
    Join Date
    Jan 2008
    Posts
    5
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default filling in the script

    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.

  2. #2
    Join Date
    Dec 2006
    Location
    Sydney, New South Wales, Australia
    Posts
    4,603
    Mentioned
    15 Post(s)
    Quoted
    42 Post(s)

    Default

    1) Use SCAR tags when posting a script. Example, [.scar.]Script here[./scar/] (Without the Dots).
    2) Where did you get that? As that is in the SRL Junior Members section for junior members only.
    3) Download and install SRL. Go to tutorial island to find out more.
    You may contact me with any concerns you have.
    Are you a victim of harassment? Please notify me or any other staff member.

    | SRL Community Rules | SRL Live Help & Chat | Setting up Simba | F.A.Q's |

  3. #3
    Join Date
    Jun 2007
    Location
    Wednesday
    Posts
    2,446
    Mentioned
    3 Post(s)
    Quoted
    1 Post(s)

    Default

    Also to add to IPDrowners post:
    Learning atleast basic scar knowledge so you can fill in a simple form by yourself is much preferred to leeching a script then asking us to fill it in for you. In fact, there's actually a section in tutorial island specifically designed for teaching you how to fill in a script.

  4. #4
    Join Date
    Feb 2007
    Location
    Access Violation at 0x00000000
    Posts
    2,865
    Mentioned
    3 Post(s)
    Quoted
    18 Post(s)

    Default

    Hey,, yeah how he got that..?
    1st Time poster + J. Member script = Bribe?
    Ce ne sont que des gueux


Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •