Results 1 to 9 of 9

Thread: Please get a SRL ID before running this script.

  1. #1
    Join Date
    Mar 2008
    Posts
    4
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Please get a SRL ID before running this script.

    What does that meen and how do i fix it?

  2. #2
    Join Date
    Dec 2007
    Location
    Michigan, USA
    Posts
    280
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by kicoman View Post
    What does that meen and how do i fix it?
    It means become a member and stop leeching, and to fix, go to here and register then fill in the proper id GO HERE!
    Kindof Inactive...

  3. #3
    Join Date
    Mar 2008
    Posts
    4
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Ehm

    Quote Originally Posted by mikevskater View Post
    It means become a member and stop leeching, and to fix, go to here and register then fill in the proper id GO HERE!
    i already got an account there

  4. #4
    Join Date
    Dec 2006
    Location
    Sweden
    Posts
    10,812
    Mentioned
    3 Post(s)
    Quoted
    16 Post(s)

    Default

    Then type it into the script where it asks for it


    Send SMS messages using Simba
    Please do not send me a PM asking for help; I will not be able to help you! Post in a relevant thread or make your own! And always remember to search first!

  5. #5
    Join Date
    Sep 2007
    Location
    Pennsylvania
    Posts
    3,396
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Then put your ID and password where the script tells you to (should be something like 'SRLID := ''').

    EDIT: Hy's too fast for me -.-

  6. #6
    Join Date
    Mar 2008
    Posts
    4
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Hy71194 View Post
    Then type it into the script where it asks for it

    so, where?

    Program VarrockEastMinerBanker; // By Rostaryms
    {.include SRL/SRL/Misc/Smart.scar}
    {.include SRL/SRL.scar}
    {.include SRL/SRL/Misc/Path.scar}
    {.include SRL/SRL/Skill/Mining.scar}
    {.include SRL/SRL/Skill/Magic.scar}

    {

    - -
    - -
    - -
    - Rostaryms Varrock East Miner & Banker -
    - -
    - -
    - -

    ** SCRIPT DESIGNED BY ROSTARYMS **

    MKFindGas, OreMined : created by MasterKill
    LogoutLoop : created by Timer
    Thanks also to ducel who helped me a lot with this script!

    Description:
    - Varrock east miner and banker
    - Relatively stable walking
    - Working death walk
    - If all players become in-active, don't turn off the script.
    It will wait 30 minutes, cast home teleports on all the players,
    then continue to run

    Requirements:
    - SCAR Divi 3.14
    - SRL 4, Revision 14

    Setup
    - Fill out the const and declare players
    - Start with your players in varrock east bank, the mine,
    or the lumbridge death spawn (varrock east recomended)
    - Have extra pickaxes in SPOT 1 of your bank
    - Make sure your pickaxe is in the inv SPOT 1 or WIELDED
    - Press play

    Please post bugs and suggestions at:

    Thanks!

    }

    Var
    x, y, PickColor, Ores, NoMine, GasNum, MineTime, Breaks,
    TempLoads, NextBreakSet, MiningTalks, LumbWalks, PickaxeDTM, BrokenPickDTM,
    AbMark, MineWait, MineSymbol, AllResets, ReActivations : Integer;
    PickInv, AbBool : Boolean;
    wangle : Extended;

    // FILL THIS PART OUT
    Const
    SmartWorld = 15; // World number if using smart

    // Dont touch these unless you find problems
    pickcol1 = 2110788;
    pickcol2 = 4473930;
    pickcol3 = 6645357;
    pickcol4 = 5059636;
    pickcol5 = 3227185;
    pickcol6 = 5656122;

    Procedure PlayerSetup; Forward;
    Procedure LoginLoop; Forward;
    Procedure WalkBank; Forward;
    Procedure BankStuff(reason : String); Forward;
    Procedure WalkMine; Forward;
    Function MyFindPick: Boolean; Forward;
    Function AbleHomeTele: Boolean; Forward;
    Function MyFindDead : Boolean; Forward;
    Function DeathWalk: Boolean; Forward;

    // FILL THIS PART OUT
    Procedure DeclarePlayers;
    Begin
    Status('DeclarePlayers');
    SRLID := '4774';
    SRLPassword := '';

    HowManyPlayers := 1;
    NumberOfPlayers(HowManyPlayers);
    CurrentPlayer := 0;

    Players[0].Name := 'melroides'; // Username
    Players[0].Pass := 'tekmnjcd251292'; // Password
    Players[0].Nick := 'lroi'; // 3 - 4 letters from middle of name
    Players[0].Integers[0] := 20; // Amount of minutes to bank if still in the mine
    Players[0].Integers[1] := 0; // Amount of loads to do before switching player; leave at 0 to keep loads at default (11 - 14)
    Players[0].Booleans[0] := true; // Mine iron?

    ClearDebug;
    End;

    // (The path, +- x, +- y, random x, random y)
    Function RostaWalkPath(ThePath, cflag, cx, cy, rx, ry : Integer): Boolean;
    Var
    WhichAngle: Extended;
    TheDTM, x, y: Integer;
    Begin
    if not LoggedIn then Exit;
    TheDTM := SetPath(ThePath);
    if FindDtmRotated(TheDTM, x, y, MMX1, MMY1, MMX2, MMY2, Radians(-35), Radians(35), 0.05, WhichAngle) then
    begin
    Mouse(x + cx, y + cy, rx, ry, true);
    Wait(5000);
    FFlag(cflag);
    Result := True;
    end
    else Result := False;
    FreeDTM(TheDTM);
    End;

    // I did this because a problem was occuring with SolveNonTalkingRandoms,
    // for some reason it was detecting no gametab and making the player
    // in-active. This doesn't need gametab detection because the script
    // will detect if it is in a non-solvable random anyways.
    Function MyFindNormalRandoms: Boolean;
    Var
    i: Integer;
    Begin
    if not LoggedIn then Exit;
    w_UpdateLastLine;
    for i := 1 to 5 do
    begin
    case I of
    1: Respond;
    2: Result := FindTalk;
    3: Result := FindLamp('mining');
    4: if FindBox then Result := SolveBox;
    5: Result := FindMod;
    end;
    if Result then Break;
    end;
    End;

    // So when it clicks an ore, it doesn't wait 30 seconds if the flag stays
    Function MineFlag: Boolean;
    Var
    timeout, x, y: Integer;
    Begin
    if not LoggedIn then Exit;
    if (FindColor(x, y, 255, MMX1, MMY1, MMX2, MMY2)) then
    begin
    Result := True;
    repeat
    Wait(100);
    timeout := timeout + 1;
    until (not FindColor(x, y, 255, MMX1, MMY1, MMX2, MMY2)) or (timeout > 50);
    end;
    End;

    Function UserActivate: Boolean; // Thanks to footballjds for some help with this
    Var
    a : String;
    b, i : Integer;
    Begin
    Result := false;
    if IsFKeyDown(4) then
    begin
    GetSelf.Show;
    a := Readln('User number to re-activate');
    b := StrToInt(a);
    for i := 0 to (GetArrayLength(Players) - 1) do
    begin
    if (b = i) then Break;
    if (i = (GetArrayLength(Players) - 1)) then Exit;
    end;
    Players[b].Active := true;
    Players[b].Booleans[1] := true;
    ReActivations := ReActivations + 1;
    Result := true;
    ActivateClient;
    end;
    End;

    Function ActiveCount: Integer;
    Var
    a, b : Integer;
    Begin
    b := 0;
    For a := 0 to (HowManyPlayers - 1) do
    begin
    if (Players[a].Active = true) then b := b + 1;
    end;
    Result := b;
    End;

    Procedure PReport;
    Var
    a : Integer;
    b : String;
    Begin
    Status('PReport');
    ClearDebug;
    Writeln(TimeRunning);
    Writeln('Active Count : ' + IntToStr(ActiveCount));
    Writeln('Current Player : ' + Players[CurrentPlayer].Name);
    Writeln('Pickaxe type : ' + Players[CurrentPlayer].Strings[0]);
    Writeln('Mining Level : ' + IntToStr(Players[CurrentPlayer].Integers[3]));
    Writeln('Breaks : ' + IntToStr(Breaks));
    Writeln('Loads Done : ' + IntToStr(Banks));
    Writeln('Ores Mined : ' + IntToStr(Ores));
    Writeln('Gasses Avoided : ' + IntToStr(GasNum));
    Writeln('Fights Handled : ' + IntToStr(Fights));
    Writeln('Respond Talks : ' + IntToStr(MiningTalks));
    Writeln('Lumb Walks : ' + IntToStr(LumbWalks));
    Writeln('Full Resets : ' + IntToStr(AllResets));
    Writeln('Re-activations : ' + IntToStr(ReActivations));
    Disguise('Ores Mined : ' + IntToStr(Ores));
    Writeln('');
    for a := 0 to (HowManyPlayers - 1) do
    begin
    case Players[a].Booleans[1] of
    True: b := 'Resetable';
    False: b := 'Not Resetable';
    end;
    if (Players[a].Active = false) then
    begin
    Writeln(Players[a].Name + '[' + b + ']: ' + Players[a].Strings[1]);
    end else
    begin
    if (a = CurrentPlayer) then
    begin
    Writeln(Players[a].Name + '[' + b + ']: ' + 'Currently Active');
    end else
    Writeln(Players[a].Name + '[' + b + ']: ' + 'Active');
    end;
    end;
    SRLRandomsReport;
    SendSRLReport;
    End;

    Procedure FinalReport;
    Var
    i : integer;
    Begin
    Status('FinalReport');
    for i := 0 to (HowManyPlayers - 1) do
    begin
    Writeln('');
    Writeln(Players[i].name);
    Writeln(' Worked For : ' + IntToStr(Players[i].Worked) + ' minutes');
    Writeln(' Mining Level : ' + IntToStr(Players[i].Integers[3]));
    Writeln(' Loads Done : ' + IntToStr(Players[i].Banked));
    Writeln(' Ores Mined : ' + IntToStr(Players[i].Integers[2]));
    Writeln(' Gasses Avoided : ' + IntToStr(Players[i].Integers[4]));
    Writeln(' Fights Handled : ' + IntToStr(Players[i].Integers[5]));
    Writeln(' Death Walks : ' + IntToStr(Players[i].Integers[6]));
    Writeln(' ' + Players[i].Strings[1]); // Failed reason
    end;
    End;

    Procedure EndScript;
    Begin
    PReport;
    FinalReport;
    Status('EndScript');
    Disguise('Script Finished');
    TerminateScript;
    End;

    Procedure LogoutLoop; // Thanks Timer
    Var
    LogMark : Integer;
    Begin
    Status('LogoutLoop');
    MarkTime(LogMark);
    repeat
    if FindFight then RunAway('N', true, 1, 4000 + random(2000));
    Logout;
    Wait(100 + random(200));
    if (TimeFromMark(LogMark) > 120000) then Exit;
    until(not LoggedIn);
    End;

    Procedure AllReset;
    Var
    a : Integer;
    Begin
    for a := 0 to (HowManyPlayers - 1) do
    begin
    if (Players[a].Booleans[1] = true) then
    Players[a].Active := true;
    end;
    for a := 0 to (ActiveCount - 1) do
    begin
    if (ActiveCount > 1) then NextPlayer(true);
    if (ActiveCount = 1) then LoginPlayer;
    Wait(1000 + random(1000));
    if TabExists(7) then
    begin
    CastSpell(1);
    Wait(17000 + random(3000));
    LogoutLoop;
    end else
    begin
    Players[a].Booleans[1] := false;
    Players[a].Active := false;
    end;
    end;
    AllResets := AllResets + 1;
    if (ActiveCount = 0) then EndScript;
    if (ActiveCount > 1) then NextPlayer(true);
    PlayerSetup;
    End;

    Procedure AllResetWait;
    Var
    ResetMark : integer;
    Begin
    Status('AllResetWait');
    Writeln('');
    Writeln('Started waiting at ' + TheTime);
    Writeln('Waiting for 30 minutes');
    Disguise('30 Minutes... ' + IntToStr(Ores));
    MarkTime(ResetMark);
    repeat
    Sleep(10000);
    UserActivate
    until(TimeFromMark(ResetMark) > 1800001);
    AllReset;
    End;

    Procedure Failed(txt : string);
    Begin
    Status('Failed');
    Disguise('Next Player');
    if not TabExists(7) then
    begin
    Players[CurrentPlayer].Booleans[1] := false;
    Players[CurrentPlayer].Strings[1] := 'Stuck in a non-solvable random...';
    end else
    Players[CurrentPlayer].Strings[1] := txt;
    LogoutLoop;
    PReport;
    End;

    Function GoPath(int, cflag, cx, cy, rx, ry : Integer): Boolean;
    Begin
    if UserActivate then PReport;
    if not LoggedIn then Exit;
    RoadColor := FindRoadColor;
    PReport;
    Status('Walking');
    Disguise('Walking... ' + IntToStr(Ores));
    Result := RostaWalkPath(int, cflag, cx, cy, rx, ry);
    End;

    Function GoPathVar(int, cflag, cx, cy, rx, ry : Integer): Boolean;
    Begin
    if UserActivate then PReport;
    if not LoggedIn then Exit;
    RoadColor := FindVarrockRoadColor;
    PReport;
    Status('Walking');
    Disguise('Walking... ' + IntToStr(Ores));
    Result := RostaWalkPath(int, cflag, cx, cy, rx, ry);
    End;

    Procedure PathToMine;
    Begin
    Path[0].Mainpoint.x:=660;
    Path[0].Mainpoint.y:=48;
    Path[0].Subpoints[0].x:=591;
    Path[0].Subpoints[0].y:=42;
    Path[0].Subpoints[1].x:=602;
    Path[0].Subpoints[1].y:=94;
    Path[0].Subpoints[2].x:=624;
    Path[0].Subpoints[2].y:=92;
    Path[0].Subpoints[3].x:=642;
    Path[0].Subpoints[3].y:=52;
    Path[1].Mainpoint.x:=684;
    Path[1].Mainpoint.y:=87;
    Path[1].Subpoints[0].x:=584;
    Path[1].Subpoints[0].y:=92;
    Path[1].Subpoints[1].x:=614;
    Path[1].Subpoints[1].y:=85;
    Path[1].Subpoints[2].x:=643;
    Path[1].Subpoints[2].y:=86;
    Path[1].Subpoints[3].x:=669;
    Path[1].Subpoints[3].y:=61;
    Path[2].Mainpoint.x:=675;
    Path[2].Mainpoint.y:=106;
    Path[2].Subpoints[0].x:=617;
    Path[2].Subpoints[0].y:=53;
    Path[2].Subpoints[1].x:=619;
    Path[2].Subpoints[1].y:=84;
    Path[2].Subpoints[2].x:=674;
    Path[2].Subpoints[2].y:=50;
    Path[2].Subpoints[3].x:=664;
    Path[2].Subpoints[3].y:=80;
    Path[2].Subpoints[4].x:=676;
    Path[2].Subpoints[4].y:=108;
    Path[3].Mainpoint.x:=640;
    Path[3].Mainpoint.y:=138;
    Path[3].Subpoints[0].x:=602;
    Path[3].Subpoints[0].y:=61;
    Path[3].Subpoints[1].x:=630;
    Path[3].Subpoints[1].y:=34;
    Path[3].Subpoints[2].x:=641;
    Path[3].Subpoints[2].y:=98;
    Path[3].Subpoints[3].x:=634;
    Path[3].Subpoints[3].y:=127;
    Path[4].Mainpoint.x:=641;
    Path[4].Mainpoint.y:=141;
    Path[4].Subpoints[0].x:=634;
    Path[4].Subpoints[0].y:=46;
    Path[4].Subpoints[1].x:=625;
    Path[4].Subpoints[1].y:=67;
    Path[4].Subpoints[2].x:=642;
    Path[4].Subpoints[2].y:=103;
    Path[4].Subpoints[3].x:=652;
    Path[4].Subpoints[3].y:=126;
    Path[4].Subpoints[4].x:=639;
    Path[4].Subpoints[4].y:=145;
    Path[5].Mainpoint.x:=637;
    Path[5].Mainpoint.y:=134;
    Path[5].Subpoints[0].x:=629;
    Path[5].Subpoints[0].y:=51;
    Path[5].Subpoints[1].x:=636;
    Path[5].Subpoints[1].y:=66;
    Path[5].Subpoints[2].x:=602;
    Path[5].Subpoints[2].y:=106;
    Path[5].Subpoints[3].x:=634;
    Path[5].Subpoints[3].y:=116;
    Path[5].Subpoints[4].x:=619;
    Path[5].Subpoints[4].y:=143;
    Path[6].Mainpoint.x:=608;
    Path[6].Mainpoint.y:=125;
    Path[6].Subpoints[0].x:=602;
    Path[6].Subpoints[0].y:=70;
    Path[6].Subpoints[1].x:=610;
    Path[6].Subpoints[1].y:=88;
    Path[6].Subpoints[2].x:=614;
    Path[6].Subpoints[2].y:=109;
    Path[6].Subpoints[3].x:=587;
    Path[6].Subpoints[3].y:=132;
    Path[7].Mainpoint.x:=615;
    Path[7].Mainpoint.y:=72;
    Path[7].Subpoints[0].x:=633;
    Path[7].Subpoints[0].y:=50;
    Path[7].Subpoints[1].x:=626;
    Path[7].Subpoints[1].y:=67;
    Path[7].Subpoints[2].x:=656;
    Path[7].Subpoints[2].y:=92;
    Path[7].Subpoints[3].x:=655;
    Path[7].Subpoints[3].y:=126;
    End;

    Procedure PathToBank;
    Begin
    Path[8].Mainpoint.x:=637;
    Path[8].Mainpoint.y:=16;
    Path[8].Subpoints[0].x:=611;
    Path[8].Subpoints[0].y:=64;
    Path[8].Subpoints[1].x:=623;
    Path[8].Subpoints[1].y:=52;
    Path[8].Subpoints[2].x:=638;
    Path[8].Subpoints[2].y:=40;
    Path[8].Subpoints[3].x:=660;
    Path[8].Subpoints[3].y:=51;
    Path[8].Subpoints[4].x:=663;
    Path[8].Subpoints[4].y:=76;
    Path[9].Mainpoint.x:=636;
    Path[9].Mainpoint.y:=30;
    Path[9].Subpoints[0].x:=629;
    Path[9].Subpoints[0].y:=43;
    Path[9].Subpoints[1].x:=599;
    Path[9].Subpoints[1].y:=63;
    Path[9].Subpoints[2].x:=614;
    Path[9].Subpoints[2].y:=81;
    Path[9].Subpoints[3].x:=613;
    Path[9].Subpoints[3].y:=97;
    Path[9].Subpoints[4].x:=633;
    Path[9].Subpoints[4].y:=111;
    Path[10].Mainpoint.x:=608;
    Path[10].Mainpoint.y:=27;
    Path[10].Subpoints[0].x:=597;
    Path[10].Subpoints[0].y:=122;
    Path[10].Subpoints[1].x:=614;
    Path[10].Subpoints[1].y:=143;
    Path[10].Subpoints[2].x:=606;
    Path[10].Subpoints[2].y:=36;
    Path[10].Subpoints[3].x:=630;
    Path[10].Subpoints[3].y:=138;
    Path[11].Mainpoint.x:=597;
    Path[11].Mainpoint.y:=38;
    Path[11].Subpoints[0].x:=599;
    Path[11].Subpoints[0].y:=37;
    Path[11].Subpoints[1].x:=620;
    Path[11].Subpoints[1].y:=19;
    Path[11].Subpoints[2].x:=636;
    Path[11].Subpoints[2].y:=71;
    Path[11].Subpoints[3].x:=646;
    Path[11].Subpoints[3].y:=123;
    Path[12].Mainpoint.x:=567;
    Path[12].Mainpoint.y:=94;
    Path[12].Subpoints[0].x:=579;
    Path[12].Subpoints[0].y:=91;
    Path[12].Subpoints[1].x:=595;
    Path[12].Subpoints[1].y:=59;
    Path[12].Subpoints[2].x:=606;
    Path[12].Subpoints[2].y:=73;
    Path[12].Subpoints[3].x:=656;
    Path[12].Subpoints[3].y:=61;
    Path[12].Subpoints[4].x:=659;
    Path[12].Subpoints[4].y:=105;
    End;

    Procedure PathDeathWalk1;
    Begin
    Path[13].Mainpoint.x:=667;
    Path[13].Mainpoint.y:=40;
    Path[13].Subpoints[0].x:=667;
    Path[13].Subpoints[0].y:=38;
    Path[13].Subpoints[1].x:=669;
    Path[13].Subpoints[1].y:=74;
    Path[13].Subpoints[2].x:=690;
    Path[13].Subpoints[2].y:=76;
    Path[13].Subpoints[3].x:=617;
    Path[13].Subpoints[3].y:=87;
    Path[13].Subpoints[4].x:=596;
    Path[13].Subpoints[4].y:=88;
    Path[14].Mainpoint.x:=605;
    Path[14].Mainpoint.y:=24;
    Path[14].Subpoints[0].x:=608;
    Path[14].Subpoints[0].y:=27;
    Path[14].Subpoints[1].x:=616;
    Path[14].Subpoints[1].y:=41;
    Path[14].Subpoints[2].x:=627;
    Path[14].Subpoints[2].y:=64;
    Path[14].Subpoints[3].x:=642;
    Path[14].Subpoints[3].y:=119;
    Path[14].Subpoints[4].x:=626;
    Path[14].Subpoints[4].y:=114;
    Path[14].Subpoints[5].x:=589;
    Path[14].Subpoints[5].y:=126;
    Path[15].Mainpoint.x:=610;
    Path[15].Mainpoint.y:=38;
    Path[15].Subpoints[0].x:=610;
    Path[15].Subpoints[0].y:=41;
    Path[15].Subpoints[1].x:=612;
    Path[15].Subpoints[1].y:=67;
    Path[15].Subpoints[2].x:=638;
    Path[15].Subpoints[2].y:=100;
    Path[15].Subpoints[3].x:=650;
    Path[15].Subpoints[3].y:=128;
    Path[16].Mainpoint.x:=613;
    Path[16].Mainpoint.y:=37;
    Path[16].Subpoints[0].x:=612;
    Path[16].Subpoints[0].y:=36;
    Path[16].Subpoints[1].x:=616;
    Path[16].Subpoints[1].y:=54;
    Path[16].Subpoints[2].x:=634;
    Path[16].Subpoints[2].y:=64;
    Path[16].Subpoints[3].x:=632;
    Path[16].Subpoints[3].y:=113;
    Path[16].Subpoints[4].x:=647;
    Path[16].Subpoints[4].y:=129;
    Path[17].Mainpoint.x:=598;
    Path[17].Mainpoint.y:=28;
    Path[17].Subpoints[0].x:=596;
    Path[17].Subpoints[0].y:=48;
    Path[17].Subpoints[1].x:=610;
    Path[17].Subpoints[1].y:=78;
    Path[17].Subpoints[2].x:=631;
    Path[17].Subpoints[2].y:=98;
    Path[17].Subpoints[3].x:=648;
    Path[17].Subpoints[3].y:=106;
    Path[18].Mainpoint.x:=624;
    Path[18].Mainpoint.y:=34;
    Path[18].Subpoints[0].x:=631;
    Path[18].Subpoints[0].y:=44;
    Path[18].Subpoints[1].x:=623;
    Path[18].Subpoints[1].y:=62;
    Path[18].Subpoints[2].x:=632;
    Path[18].Subpoints[2].y:=71;
    Path[18].Subpoints[3].x:=639;
    Path[18].Subpoints[3].y:=122;
    Path[18].Subpoints[4].x:=654;
    Path[18].Subpoints[4].y:=143;
    Path[19].Mainpoint.x:=656;
    Path[19].Mainpoint.y:=26;
    Path[19].Subpoints[0].x:=652;
    Path[19].Subpoints[0].y:=25;
    Path[19].Subpoints[1].x:=658;
    Path[19].Subpoints[1].y:=30;
    Path[19].Subpoints[2].x:=631;
    Path[19].Subpoints[2].y:=52;
    Path[19].Subpoints[3].x:=601;
    Path[19].Subpoints[3].y:=115;
    Path[19].Subpoints[4].x:=625;
    Path[19].Subpoints[4].y:=127;
    Path[20].Mainpoint.x:=662;
    Path[20].Mainpoint.y:=38;
    Path[20].Subpoints[0].x:=607;
    Path[20].Subpoints[0].y:=144;
    Path[20].Subpoints[1].x:=601;
    Path[20].Subpoints[1].y:=130;
    Path[20].Subpoints[2].x:=634;
    Path[20].Subpoints[2].y:=88;
    Path[20].Subpoints[3].x:=664;
    Path[20].Subpoints[3].y:=37;
    Path[20].Subpoints[4].x:=678;
    Path[20].Subpoints[4].y:=37;
    Path[21].Mainpoint.x:=679;
    Path[21].Mainpoint.y:=77;
    Path[21].Subpoints[0].x:=588;
    Path[21].Subpoints[0].y:=133;
    Path[21].Subpoints[1].x:=595;
    Path[21].Subpoints[1].y:=135;
    Path[21].Subpoints[2].x:=595;
    Path[21].Subpoints[2].y:=127;
    Path[21].Subpoints[3].x:=601;
    Path[21].Subpoints[3].y:=127;
    Path[21].Subpoints[4].x:=642;
    Path[21].Subpoints[4].y:=85;
    Path[21].Subpoints[5].x:=676;
    Path[21].Subpoints[5].y:=75;
    End;

    Procedure PathDeathWalk2;
    Begin
    Path[22].Mainpoint.x:=673;
    Path[22].Mainpoint.y:=54;
    Path[22].Subpoints[0].x:=588;
    Path[22].Subpoints[0].y:=54;
    Path[22].Subpoints[1].x:=603;
    Path[22].Subpoints[1].y:=41;
    Path[22].Subpoints[2].x:=618;
    Path[22].Subpoints[2].y:=59;
    Path[23].Mainpoint.x:=684;
    Path[23].Mainpoint.y:=78;
    Path[23].Subpoints[0].x:=564;
    Path[23].Subpoints[0].y:=77;
    Path[23].Subpoints[1].x:=652;
    Path[23].Subpoints[1].y:=95;
    Path[23].Subpoints[2].x:=674;
    Path[23].Subpoints[2].y:=78;
    Path[23].Subpoints[3].x:=691;
    Path[23].Subpoints[3].y:=80;
    Path[24].Mainpoint.x:=661;
    Path[24].Mainpoint.y:=41;
    Path[24].Subpoints[0].x:=577;
    Path[24].Subpoints[0].y:=94;
    Path[24].Subpoints[1].x:=602;
    Path[24].Subpoints[1].y:=107;
    Path[24].Subpoints[2].x:=654;
    Path[24].Subpoints[2].y:=94;
    Path[24].Subpoints[3].x:=663;
    Path[24].Subpoints[3].y:=42;
    Path[25].Mainpoint.x:=617;
    Path[25].Mainpoint.y:=25;
    Path[25].Subpoints[0].x:=619;
    Path[25].Subpoints[0].y:=36;
    Path[25].Subpoints[1].x:=648;
    Path[25].Subpoints[1].y:=50;
    Path[25].Subpoints[2].x:=649;
    Path[25].Subpoints[2].y:=65;
    Path[25].Subpoints[3].x:=640;
    Path[25].Subpoints[3].y:=103;
    Path[25].Subpoints[4].x:=636;
    Path[25].Subpoints[4].y:=139;
    End;

    Procedure PathOther;
    Begin
    Path[26].Mainpoint.x:=590;
    Path[26].Mainpoint.y:=83;
    Path[26].Subpoints[0].x:=573;
    Path[26].Subpoints[0].y:=85;
    Path[26].Subpoints[1].x:=678;
    Path[26].Subpoints[1].y:=82;
    Path[26].Subpoints[2].x:=655;
    Path[26].Subpoints[2].y:=53;
    Path[26].Subpoints[3].x:=665;
    Path[26].Subpoints[3].y:=68;
    End;

    Procedure LoadPaths(ThePath : Integer);
    Begin
    case ThePath of
    1: PathToMine;
    2: PathToBank;
    3: PathDeathWalk1;
    4: PathDeathWalk2;
    5: PathOther;
    end;
    End;

    Procedure SetupDTM;
    Begin
    Status('SetupDTM');
    PickaxeDTM := DTMFromString('78DA6314606060E06540038C48249096051 25' +
    'C04D470020976026A40662810502302245808A801B9590CBF 1A00' +
    '612000CF');
    BrokenPickDTM := DTMFromString('78DA6334676660A8656440058C482490760 3A' +
    'A2926A0C61BA8A688801A3BA09A4C026A8C806A728950D34A 408D' +
    '13504D3E7E3500C8FC050A');
    End;

    Procedure AutoRetal(which : integer); // 1 = on, 2 = off
    Begin
    if not LoggedIn then Exit;
    Status('AutoRetal');
    GameTab(1);
    Wait(200 + random(200));
    case which of
    1: begin
    if (not FindColorTolerance(x, y, 1711220, 618, 384, 625, 390, 15)) then MouseBox(570, 360, 715, 399, 1);
    Wait(200 + random(200));
    end;
    2: begin
    if (FindColorTolerance(x, y, 1711220, 618, 384, 625, 390, 15)) then MouseBox(570, 360, 715, 399, 1);
    Wait(200 + random(200));
    end;
    end;
    End;

    Procedure ScreenSettings;
    Begin
    if not LoggedIn then Exit;
    Status('ScreenSettings');
    SetAngle(true);
    Wait(100 + random(200));
    MakeCompass('N');
    Wait(100 + random(200));
    AutoRetal(2);
    End;

    Function HomeTele: Boolean;
    Begin
    if not LoggedIn then Exit;
    Result := false;
    CastSpell(1);
    Wait(17000 + random(2000));
    if (not TabExists(7)) then
    begin
    Failed('Stuck in a non-solvable random...');
    Exit;
    end;
    if (not MyFindDead) then
    begin
    Failed('Home teleport did not work...');
    Exit;
    end;
    Result := true;
    End;

    Function WhereAreWe: String;
    Begin
    if not LoggedIn then Exit;
    Status('WhereAreWe');
    if (FindSymbol(x, y, 'training dummy') or FindSymbol(x, y, 'bank')) then
    begin
    Players[CurrentPlayer].Loc := 'veb';
    Result := 'veb';
    Exit;
    end;
    if (FindSymbol(x, y, 'mining site')) then
    begin
    Players[CurrentPlayer].Loc := 'mine';
    Result := 'mine';
    Exit;
    end;
    if (MyFindDead) then
    begin
    Players[CurrentPlayer].Loc := 'lum';
    Result := 'lum';
    Exit;
    end;
    if (AbleHomeTele) then
    begin
    HomeTele;
    if DeathWalk then
    begin
    Players[CurrentPlayer].Loc := 'mine';
    Result := 'mine';
    end;
    end else
    Failed('Where the hell are we?');
    End;

    Function DetectInv(col : integer; ptype : string; mw, wieldlvl : integer): Boolean;
    Begin
    if not LoggedIn then Exit;
    Status('DetectInv');
    GameTab(4);
    if (FindColorTolerance(x, y, col, 557, 212, 601, 234, 5) and FindDTM(PickaxeDTM, x, y, MIX1, MIY1, MIX2, MIY1 + 100)) then
    begin
    Players[CurrentPlayer].Strings[0] := ptype;
    Players[CurrentPlayer].Integers[8] := wieldlvl;
    MineWait := mw * 1000;
    PickInv := true;
    PickColor := col;
    Writeln('Pickaxe type : ' + ptype);
    Result := true;
    end;
    End;

    Function DetectWield(col : integer; ptype : string; mw, wieldlvl : integer): Boolean;
    Begin
    if not LoggedIn then Exit;
    Status('DetectWield');
    GameTab(5);
    Wait(500 + random(500));
    if (FindColorTolerance(x, y, col, 571, 288, 603, 310, 5)) then
    begin
    Players[CurrentPlayer].Strings[0] := ptype;
    Players[CurrentPlayer].Integers[8] := wieldlvl;
    MineWait := mw * 1000;
    PickInv := false;
    PickColor := col;
    Writeln('Pickaxe type : ' + ptype);
    Result := true;
    end;
    End;

    Procedure DetectPick;
    Begin
    if not LoggedIn then Exit;
    Status('DetectPick');
    Players[CurrentPlayer].Strings[0] := 'none';
    GameTab(4);
    Wait(100 + random(100));
    if DetectInv(pickcol1, 'bronze', 10, 1) then Exit;
    if DetectInv(pickcol2, 'iron', 10, 1) then Exit;
    if DetectInv(pickcol3, 'steel', 8, 5) then Exit;
    if DetectInv(pickcol4, 'mithril', 6, 20) then Exit;
    if DetectInv(pickcol5, 'addy', 4, 30) then Exit;
    if DetectInv(pickcol6, 'rune', 3, 40) then Exit;
    GameTab(5);
    Wait(100 + random(100));
    if DetectWield(pickcol1, 'bronze', 10, 1) then Exit;
    if DetectWield(pickcol2, 'iron', 10, 1) then Exit;
    if DetectWield(pickcol3, 'steel', 8, 5) then Exit;
    if DetectWield(pickcol4, 'mithril', 6, 20) then Exit;
    if DetectWield(pickcol5, 'addy', 4, 30) then Exit;
    if DetectWield(pickcol6, 'rune', 3, 40) then Exit;
    WhereAreWe;
    if (Players[CurrentPlayer].Loc = 'veb') then
    begin
    BankStuff('pick');
    WalkMine;
    Exit;
    end;
    if (Players[CurrentPlayer].Loc = 'mine') then
    begin
    WalkBank;
    BankStuff('pick');
    WalkMine;
    Exit;
    end;
    if (Players[CurrentPlayer].Loc = 'lum') then
    begin
    DeathWalk;
    WalkBank;
    BankStuff('pick');
    WalkMine;
    Exit;
    end;
    Failed('You don''t have a pickaxe...');
    End;

    Procedure LoginLoop;
    Var
    LoginMark : Integer;
    Begin
    if LoggedIn then Exit;
    Status('LoginLoop');
    MarkTime(LoginMark);
    repeat
    LoginPlayer;
    Wait(10 + random(10));
    if (TimeFromMark(LoginMark) > 90000) then
    begin
    Failed('Could not log in...');
    Exit;
    end;
    until(LoggedIn);
    Wait(500 + random(500));
    End;

    Procedure Variables;
    Begin
    Status('Variables');
    MouseSpeed := 14;
    Ores := 0;
    Banks := 0;
    GasNum := 0;
    MiningTalks := 0;
    Breaks := 0;
    AllResets := 0;
    ReActivations := 0;
    LumbWalks := 0;
    ReinCarnate := true;
    CheckHPFirst := false;
    End;

    Function AutoColorMine: Boolean;
    Var
    ACM : Integer;
    Begin
    if not LoggedIn then Exit;
    Status('AutoColorMine');
    if (MineSymbol = 0) then
    begin
    MarkTime(ACM);
    repeat
    if (FindSymbol(x, y, 'mining site')) then MineSymbol := GetSymbolColor(x, y, 'mining site');
    Wait(50 + random(50));
    if (TimeFromMark(ACM) > 12000) then
    begin
    Result := false;
    Exit;
    end;
    until(MineSymbol > 0);
    end;
    Result := true;
    End;

    Procedure FirstPlayerSetup;
    Var
    i : Integer;
    Begin
    for i := 0 to (HowManyPlayers - 1) do
    begin
    Players[i].Active := true;
    Players[i].Banked := 0; // Loads done
    Players[i].Integers[2] := 0; // Ores mined
    Players[i].Integers[4] := 0; // Gasses avoided
    Players[i].Integers[5] := 0; // Fights handled
    Players[i].Integers[6] := 0; // Death walks
    Players[i].Booleans[1] := true; // Working player
    end;
    End;

    Procedure PlayerSetup;
    Begin
    LoginLoop;
    ScreenSettings;
    WhereAreWe;
    DetectPick;
    Players[CurrentPlayer].Integers[3] := GetSkillInfo('mining', false);
    Players[CurrentPlayer].Strings[1] := 'Player Logged Out...';
    //
    NoMine := 0;
    TempLoads := 0;
    NextBreakSet := 10 + random(4);
    AbBool := true;
    //
    MineSymbol := 0;
    //
    if (WhereAreWe = 'lum') then DeathWalk;
    if (WhereAreWe = 'veb') then
    begin
    if (FindSymbol(x, y, 'training dummy') or FindSymbol(x, y, 'training dummy')) then
    begin
    WalkMine;
    end;
    end;
    if (not AutoColorMine) then
    begin
    if (not AbleHomeTele) then
    begin
    Failed('Could not fix lost, where did your character start?');
    Exit;
    end else
    begin
    HomeTele;
    DeathWalk;
    end;
    end;
    Players[CurrentPlayer].Loc := 'mine';
    PReport;
    SetRun(true);
    End;

    Procedure Setup;
    Var
    i : integer;
    Begin
    begin
    SmartSetupEx(SmartWorld, false, True);
    ClearDebug;
    WriteLn('Setting up Smart... Please Hold...');
    Wait(10000 + random(5000));
    SetTargetDC(SmartGetDC);
    While not(SmartReady) do Wait(100);
    end;
    DeclarePlayers;
    if (SRLID = '') or (SRLPassword = '') then
    begin
    ClearDebug;
    Writeln('Please get a SRL ID before running this script.');
    Writeln('http://www.stats.srl-forums.com/');
    TerminateScript;
    end;
    case random(12) of
    0: Disguise('Starting Up...');
    1: Disguise('Lets mine some ores!');
    2: Disguise('Here we go again...');
    3: Disguise('YeeHa!');
    4: Disguise('De da de!');
    5: Disguise('Super miner!');
    6: Disguise('Yay, mining...');
    7: Disguise('iTunes');
    8: Disguise('Google');
    9: Disguise('Calculator');
    10: Disguise('Notepad');
    11: Disguise('This is fun...');
    end;
    Variables;
    SetupDTM;
    ActivateClient;
    for i := 1 to 5 do begin LoadPaths(i); end;
    Wait(1000 + random(1000));
    FirstPlayerSetup;
    PlayerSetup;
    End;

    Function RandomsCheck: Boolean;
    Begin
    if not LoggedIn then Exit;
    if (MyFindNormalRandoms) then
    begin
    PReport;
    Result := true;
    Exit;
    end;
    if (FindTalk) then
    begin
    PReport;
    Result := true;
    Exit;
    end;
    Result := false;
    End;

    Function InMine: Boolean;
    Begin
    if not LoggedIn then Exit;
    Result := false;
    if (FindColorTolerance(x, y, 2503250, MSX1, MSY1, MSX2, MSY2, 7)
    or FindColorTolerance(x, y, 9671838, MSX1, MSY1, MSX2, MSY2, 5)
    or FindColorTolerance(x, y, 4417679, MSX1, MSY1, MSX2, MSY2, 5)) then
    Result := true;
    End;

    Function EnterMine: Boolean;
    Var
    MineDTM : Integer;
    Begin
    if not LoggedIn then Exit;
    Result := false;
    SymbolAccuracy := 0.7;
    if FindSymbol(x, y, 'mining site') then
    begin
    SymbolAccuracy := 0.8;
    Mouse(x - 8, y - 8, 2, 2, true);
    Wait(500 + random(500));
    FFlag(0);
    Result := true;
    Exit;
    End;
    MineDTM := DTMFromString('78DA630C656260286240015CCCAC609A11C A6' +
    '78C05AAA922A02699087362806A72F0AB010031840394');
    if FindDtmRotated(MineDTM, x, y, MMX1, MMY1, MMX2, MMY2, radians(-35), radians(35), 0.01, wangle) then
    begin
    FreeDTM(MineDTM);
    Mouse(x - 8, y - 8, 2, 2, true);
    Wait(500 + random(500));
    FFlag(0);
    if InMine then
    begin
    Result := true;
    end else
    Result := false;
    Exit;
    end;
    End;

    Function MyFindDead : Boolean;
    Begin
    if not LoggedIn then Exit;
    Status('MyFindDead');
    if (FindSymbolIn(x, y, 'water', MMX1, MMY1, MMX2, 85) or FindSymbolIn(x, y, 'water', MMX1, 85, MMX2, MMY2) or FindSymbol(x, y, 'guide')) then Result := true;
    End;

    Function DeathWalk: Boolean;
    Var
    tries, a, i : integer;
    next : boolean;
    Label
    Retry;
    Label
    MessedUp;
    Begin;
    Retry:
    if not LoggedIn then Exit;
    if (not MyFindDead) then Exit;
    SetRun(false);
    Mouse(674, 56, 6, 6, true);
    Wait(500 + random(500));
    FFlag(0);
    RadialRoadWalk(FindRoadColor, 50, 120, 70, 1, 1);
    Wait(2000 + random(1000));
    FFlag(0);
    tries := 0;
    repeat
    for i := 13 to 21 do
    begin
    a := 0;
    repeat
    GoPath(i, 10, 0, 0, 0, 0);
    Wait(50 + random(50));
    RandomsCheck;
    a := a + 1;
    next := false;
    if (a >= 5) then next := true;
    if (i = 21) then RoadColor := FindVarrockRoadColor;
    until(FindPath(i + 1, false) or next);
    end;
    for i := 22 to 25 do
    begin
    a := 0;
    repeat
    GoPathVar(i, 10, 0, 0, 0, 0);
    Wait(50 + random(50));
    RandomsCheck;
    a := a + 1;
    next := false;
    if (a >= 5) then next := true;
    until(FindPath(i + 1, false) or next);
    end;
    if EnterMine then Break;
    tries := tries + 1;
    until(tries >= 2);
    if (tries >= 2) then
    begin
    if AbleHomeTele then
    begin
    if HomeTele then
    begin
    Goto Retry;
    end else Goto MessedUp;
    end else
    begin
    MessedUp:
    Result := false;
    Failed('Deathwalk did not work...');
    Exit;
    end;
    end;
    SetRun(true);
    LumbWalks := LumbWalks + 1;
    Players[CurrentPlayer].Integers[6] := Players[CurrentPlayer].Integers[6] + 1;
    ReportVars[2] := ReportVars[2] + 1;
    PReport;
    Players[CurrentPlayer].Loc := 'mine';
    Result := true;
    End;

    Function EnterBank: Boolean;
    Var
    BankDTM : Integer;
    Begin
    if not LoggedIn then Exit;
    if RostaWalkPath(26, 0, -4, 42, 10, 0) then
    begin
    if (not FindSymbol(x, y, 'quest')) then
    begin
    Result := true;
    Exit;
    end;
    end;
    if FindSymbol(x, y, 'bank') then
    begin
    Mouse(x - 3, y + 8, 6, 3, true);
    Wait(2000 + random(1000));
    FFlag(0);
    if (not FindSymbol(x, y, 'quest')) then
    begin
    Result := true;
    Exit;
    end;
    end;
    BankDTM := DTMFromString('78DA630C62626068604001FFFE098369462 89' +
    'F318AB01A00DF7805D3');
    if FindDtmRotated(BankDTM, x, y, MMX1, MMY1, MMX2, MMY2, radians(-35), radians(35), 0.01, wangle) then
    begin
    FreeDTM(BankDTM);
    Mouse(x + 10, y - 3, 2, 2, true);
    Wait(500 + random(500));
    FFlag(0);
    if (not FindSymbol(x, y, 'quest')) then
    begin
    Result := true;
    Exit;
    end;
    end;
    if FindSymbol(x, y, 'training dummy') then
    begin
    Mouse(x, y + 62, 4, 4, true);
    Wait(2000 + random(1000));
    FFlag(0);
    if (not FindSymbol(x, y, 'quest')) then
    begin
    Result := true;
    Exit;
    end;
    end;
    Result := false;
    End;

    Procedure WalkBank;
    Var
    tries, a, i : integer;
    next : boolean;
    Label
    Retry;
    Begin
    if not LoggedIn then Exit;
    Retry:
    MakeCompass('n');
    tries := 0;
    Mouse(655, 43, 10, 10, true);
    SetRun(false);
    RandomsCheck;
    FFlag(0);
    repeat
    for i := 8 to 12 do
    begin
    a := 0;
    repeat
    GoPathVar(i, 10, 0, 0, 0, 0);
    Wait(50 + random(50));
    RandomsCheck;
    a := a + 1;
    next := false;
    if (a >= 5) then next := true;
    until(FindPath(i + 1, false) or next);
    end;
    if EnterBank then Exit;
    tries := tries + 1;
    until(tries >= 2);
    if AbleHomeTele then
    begin
    HomeTele;
    if DeathWalk then Goto Retry;
    end;
    Failed('Could not walk to the bank...');
    End;

    Procedure BankStuff(reason : String);
    Var
    tries : integer;
    Label
    Retry;
    Begin
    if not LoggedIn then Exit;
    Status('BankStuff');
    Disguise('Banking... ' + IntToStr(Ores));
    tries := 0;
    Retry:
    if (reason = 'pick') then
    begin
    TakeOff(5);
    Wait(500 + random(200));
    GameTab(4);
    end;
    if (not OpenBankFast('veb')) then
    begin
    tries := tries + 1;
    if tries < 2 then SetBar('brightness', 4);
    EnterBank;
    if (tries < 4) then Goto Retry;
    if AbleHomeTele then
    begin
    HomeTele;
    if DeathWalk then
    begin
    WalkBank;
    Goto Retry;
    end;
    end else
    begin
    Failed('Had trouble openening bank...');
    Exit;
    end;
    end;
    FixBank;
    if (reason = 'pick') or (not PickInv) then
    begin
    DepositAll;
    end else
    Deposit(2, 28, 2);
    if (reason = 'pick') then
    begin
    MouseBox(81, 65, 100, 86, 1);
    repeat
    Wait(1000 + random(1000));
    until(ExistsItem(1));
    CloseBank;
    if FindDTM(PickaxeDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
    begin
    Mouse(x - 2, y - 2, 4, 4, true);
    end else
    begin
    Players[CurrentPlayer].Booleans[1] := false;
    Failed('No more picks left in your bank...');
    Exit;
    end;
    Wait(1000 + random(500));
    DetectPick;
    end else
    begin
    if (random(2) = 0) then CloseBank;
    Banks := Banks + 1;
    TempLoads := TempLoads + 1;
    Players[CurrentPlayer].Banked := Players[CurrentPlayer].Banked + 1;
    if PickInv then Players[CurrentPlayer].Integers[2] := Players[CurrentPlayer].Integers[2] + 27;
    if not PickInv then Players[CurrentPlayer].Integers[2] := Players[CurrentPlayer].Integers[2] + 28;
    ReportVars[0] := ReportVars[0] + 1;
    if PickInv then ReportVars[1] := ReportVars[1] + 27;
    if not PickInv then ReportVars[1] := ReportVars[1] + 28;
    end;
    End;

    Procedure WalkMine;
    Var
    tries, a, i : integer;
    next : boolean;
    Begin
    if not LoggedIn then Exit;
    MakeCompass('n');
    tries := 0;
    repeat
    for i := 0 to 5 do
    begin
    a := 0;
    repeat
    GoPathVar(i, 10, 0, 0, 0, 0);
    Wait(50 + random(50));
    RandomsCheck;
    a := a + 1;
    next := false;
    if (a >= 5) then next := true;
    until(FindPath(i + 1, false) or next);
    end;
    a := 0;
    repeat
    if GoPathVar(6, 15, 6, 6, 4, 4) then
    begin
    RandomsCheck;
    Break;
    end;
    Wait(50 + random(50));
    RandomsCheck;
    a := a + 1;
    next := false;
    if (a >= 5) then next := true;
    until(next);
    a := 0;
    repeat
    if GoPathVar(7, 5, 4, 30, 4, 4) then
    begin
    RandomsCheck;
    Break;
    end;
    Wait(50 + random(50));
    RandomsCheck;
    a := a + 1;
    next := false;
    if (a >= 5) then next := true;
    until(next);
    if InMine then
    begin
    SetRun(true);
    SetBar('brightness', 4);
    Exit;
    end else
    WalkBank;
    tries := tries + 1;
    until(tries >= 2);
    SymbolAccuracy := 0.7;
    if FindSymbol(x, y, 'mining site') then
    begin
    SymbolAccuracy := 0.8;
    Mouse(x - 8, y - 8, 2, 2, true);
    SetRun(true);
    FFlag(5);
    Exit;
    End;
    Failed('Could not walk to the mine...');
    End;

    Procedure HandleFight;
    Begin
    if not LoggedIn then Exit;
    if (not FindFight) then Exit;
    Status('HandleFight');
    Disguise('Handling Fight... ' + IntToStr(Ores));
    Mouse(655, 28, 8, 8, true);
    FFlag(0);
    Wait(5000 + random(4000));
    Mouse(585, 136, 8, 8, true);
    FFlag(0);
    if not FindPath(7, false) then
    begin
    if (FindColorTolerance(x, y, MineSymbol, MMX1, MMY1, MMX2, MMY2, 4)) then
    Mouse(x - 8, y + 8, 6, 6, true);
    FFlag(5);
    Players[CurrentPlayer].Integers[5] := Players[CurrentPlayer].Integers[5] + 1;
    end else
    begin
    GoPathVar(7, 5, -2, 30, 4, 4);
    Players[CurrentPlayer].Integers[5] := Players[CurrentPlayer].Integers[5] + 1;
    end;
    PReport;
    End;

    Function MyFindPlant: Boolean;
    Begin
    if not LoggedIn then Exit;
    Status('FindPlant');
    if (FindObjCustom(x, y, ['lant'], [5123389, 743503, 810323], 1)) then
    begin
    GetMousePos(x, y);
    Mouse(x, y, 0, 0, false);
    ChooseOption('ick');
    Result := true;
    end;
    End;

    Procedure HandleGas;
    Var
    HGMark : Integer;
    Begin
    if not LoggedIn then Exit;
    Status('HandleGas');
    Disguise('Handling Gas... ' + IntToStr(Ores));
    Mouse(630, 90, 8, 8, true);
    FFlag(0);
    Wait(10000 + random(2000));
    MouseBox(MSX1, MSY1, MSX2, MSY2, 3);
    Wait(8000 + random(2000));
    MouseBox(MSX1, MSY1, MSX2, MSY2, 3);
    Wait(5000 + random(2000));
    MouseBox(MSX1, MSY1, MSX2, MSY2, 3);
    MarkTime(HGMark);
    repeat
    Wait(2000 + random(500));
    if (TimeFromMark(HGMark) > 15000) then Break;
    until(not FindColorTolerance (x, y, 10596274, 0, 0, 500, 500, 1)) and (not FindColorTolerance (x, y, 8950933, 0, 0, 500, 500, 1)) and (not FindColorTolerance (x, y, 9017755, 0, 0, 500, 500, 1)) and (not FindColorTolerance (x, y, 7900302, 0, 0, 500, 500, 1));
    GasNum := GasNum + 1;
    Players[CurrentPlayer].Integers[4] := Players[CurrentPlayer].Integers[4] + 1;
    PReport;
    End;

    Procedure MKFindGas; // By MasterKill
    begin
    if not LoggedIn then Exit;
    if (FindColorTolerance (x, y, 10596274, 0, 0, 500, 500, 1))
    or (FindColorTolerance (x, y, 8950933, 0, 0, 500, 500, 1))
    or (FindColorTolerance (x, y, 9017755, 0, 0, 500, 500, 1))
    or (FindColorTolerance (x, y, 7900302, 0, 0, 500, 500, 1)) then HandleGas;
    end;

    Procedure UnwieldHandle;
    Begin
    if not LoggedIn then Exit;
    Status('UnwieldHandle');
    TakeOff(5);
    GameTab(4);
    Wait(800 + random(500));
    End;

    Procedure AttachPick;
    Var
    i, tries, AttachPickTime : Integer;
    Begin
    if not LoggedIn then Exit;
    Status('AttachPick');
    if (not PickInv) then UnwieldHandle;
    MarkTime(AttachPickTime);
    repeat
    Wait(200 + random(100));
    if (TimeFromMark(AttachPickTime) > 35000) then
    begin
    WalkBank;
    BankStuff('pick');;
    WalkMine;
    PReport;
    Exit;
    end;
    if (not FindColorTolerance(x, y, PickColor, MIX1, MIY1, MIX2, MIY2, 10)) then
    begin
    MyFindPick;
    if (not FindColorTolerance(x, y, PickColor, MIX1, MIY1, MIX2, MIY2, 10)) then
    begin
    WalkBank;
    BankStuff('pick');;
    WalkMine;
    Banks := Banks + 1;
    Exit;
    end;
    end;
    Mouse(x - 1, y - 1, 2, 2, true);
    Wait(200 + random(200));
    Disguise('Attching Head Now');
    tries := 0;
    for i := 1 to 28 do
    begin
    MMouseItem(i);
    if (IsUpText('Pickaxe handle')) then
    begin
    GetMousePos(x, y);
    Mouse(x, y, 0, 0, true);
    Wait(1000 + random(1000));
    if (FindColorTolerance(x, y, PickColor, MIX1, MIY1, MIX2, MIY2, 10)) then Mouse(x - 3, y - 3, 6, 6, true);
    Wait(500 + random(500));
    AxeAttaches := AxeAttaches + 1;
    PReport;
    MarkTime(MineTime);
    Exit;
    end;
    if (i = 28) then
    begin
    UnwieldHandle;
    tries := tries + 1;
    if (tries >= 3) then
    begin
    WalkBank;
    BankStuff('pick');;
    WalkMine;
    Exit;
    end;
    end;
    end;
    until(false);
    End;

    Function MyFindPick: Boolean;
    Var
    FindPickTime : Integer;
    Begin
    if not LoggedIn then Exit;
    if (not FindColor(x, y, 16711680, 182, 439, 346, 457)) then Exit;
    if (not FindNpcChatText('ickaxe', Nothing)) then Exit;
    if (not FindObj(x, y, 'pick head', PickColor, 5)) then Exit;
    Status('MyFindPick');
    Disguise('Pick Head Found');
    DropItem(2);
    DropItem(3);
    MarkTime(FindPickTime);
    repeat
    Mouse(x, y, 2, 2, false);
    if (ChooseOption('ake')) then Break;
    FTWait(1);
    if (TimeFromMark(FindPickTime) > 20000) then
    begin
    WalkBank;
    BankStuff('pick');
    WalkMine;
    PReport;
    Exit;
    end;
    until(false);
    FFlag(0);
    Wait(1000 + random(500));
    Result := true;
    End;

    Procedure CheckBrokenPick;
    Begin
    if not LoggedIn then Exit;
    if (FindBlackChatMessage('ickaxe') or FindNpcChatText('ickaxe', Nothing)) then
    begin
    case PickInv of
    true: GameTab(4);
    false: GameTab(5);
    end;
    if FindDTM(PickaxeDTM, x, y, MIX1, MIY1, MIX2, MIY1) then Exit;
    Status('CheckBrokenPick');
    WalkBank;
    BankStuff('pick');
    WalkMine;
    end;
    End;

    Function AbleHomeTele: Boolean;
    Begin
    Result := false;
    if not LoggedIn then Exit;
    Status('AbleHomeTele');
    if (GetLumbridgeMins > 0) then Exit;
    Result := true;
    End;

    Procedure NameRespond;
    Begin
    if not LoggedIn then Exit;
    Status('NameRespond');
    if (InChat(Players[CurrentPlayer].Nick)) then
    begin
    case random(8) of
    0: TypeSend('wat?');
    1: TypeSend('what u want?');
    2: TypeSend('leave me alone');
    3: TypeSend('cant u see im mining.. lol');
    4: TypeSend('ya?');
    5: TypeSend('yes...');
    6: TypeSend('i am makin $$, be quiet');
    7: TypeSend('im in a bad mood, shut up lol');
    end;
    end;
    End;

    Procedure MiningTalk;
    Var
    MiningLvl : String;
    Begin
    if not LoggedIn then Exit;
    Status('MiningTalk');
    if ((InChat('hi') and not InChat('this')) or InChat('hey') or InChat('hello')) then
    begin
    case random(8) of
    0: TypeSend('h3y');
    1: TypeSend('yo');
    2: TypeSend('h1');
    3: TypeSend('h3llo');
    4: TypeSend('h3y, wasup');
    5: TypeSend('hola');
    6: TypeSend('h0la');
    7: TypeSend('sup');
    end;
    MiningTalks := MiningTalks + 1;
    PReport;
    end;
    End;

    Procedure AB0;
    Begin
    MMouse(MSX1, MSY1, MSX2, MSY2);
    End;

    Procedure AB1;
    Begin
    GameTab(1 + random(14));
    Wait(2000 + random(2000));
    End;

    Procedure AB2;
    Begin
    PickUpMouse;
    End;

    Procedure AB3;
    Begin
    GameTab(1 + random(14));
    Wait(1000 + random(500));
    GameTab(1 + random(14));
    End;

    Procedure AB4;
    Begin
    GameTab(1 + random(14));
    Wait(100 + random(3000));
    GameTab(1 + random(14));
    Wait(100 + random(3000));
    GameTab(1 + random(14));
    End;

    Procedure AntiBan;
    Begin
    if not LoggedIn then Exit;
    if (AbBool) then
    begin
    MarkTime(AbMark);
    AbBool := false;
    end;
    if (TimeFromMark(AbMark) > (120000 + random(60000))) then
    begin
    case random(5) of
    0: AB0;
    1: AB1;
    2: AB2;
    3: AB3;
    4: AB4;
    end;
    AbBool := true;
    end;
    End;

    Function OreMined: Boolean; // By MasterKill
    Begin
    if not LoggedIn then Exit;
    Result := false;
    if InvFull then Result := True;
    if (FindBlackChatMessage('anage') or FindBlackChatMessage('vailable')) then result := True;
    End;

    Procedure MineRandom;
    Begin
    if not LoggedIn then Exit;
    Status('MineRandom');
    MiningTalk;
    NameRespond;
    if (random(10) = 0) then
    begin
    Mouse(x, y, 0, 0, false);
    ChooseOption('ine');
    MineFlag;
    end else
    begin
    Mouse(x, y, 0, 0, true);
    MineFlag;
    end;
    End;

    Procedure MO1;
    Var
    col1, col2, col3, tol, a : Integer;
    OresFound : Boolean;
    TPA1, TPA2, TPA3, TPA4, TPA5 : TPointArray;
    Label
    Start;
    Begin
    if not LoggedIn then Exit;
    Status('MO1');
    Start:
    OresFound := true;
    case Players[CurrentPlayer].Booleans[0] of
    true: begin
    col1 := 2701146;
    col2 := 2503250;
    col3 := 2239818;
    tol := 5;
    end;
    false: begin
    col1 := 9803168;
    col2 := 9671838;
    col3 := 4417679;
    tol := 3;
    end;
    end;
    FindColorsSpiralTolerance(x, y, TPA1, col1, MSX1, MSY1, MSX2, MSY2, tol);
    FindColorsSpiralTolerance(x, y, TPA2, col2, MSX1, MSY1, MSX2, MSY2, tol);
    FindColorsSpiralTolerance(x, y, TPA3, col3, MSX1, MSY1, MSX2, MSY2, tol);
    TPA4 := CombineTPA(TPA1, TPA2);
    TPA5 := CombineTPA(TPA3, TPA4);
    if (Length(TPA5) < 1) then
    begin
    if (not FindColorTolerance(x, y, MineSymbol, MMX1, MMY1, MMX2, MMY2, 4) and not FindSymbol(x, y, 'mining site')) then
    begin
    if (not AbleHomeTele) then
    begin
    NoMine := NoMine + 1;
    end else
    begin
    HomeTele;
    if DeathWalk then Goto Start;
    end;
    OresFound := false;
    end else
    begin
    if not FindPath(7, false) then
    begin
    if (FindColorTolerance(x, y, MineSymbol, MMX1, MMY1, MMX2, MMY2, 4))
    then
    begin
    Mouse(x - 8, y + 8, 6, 6, true);
    FFlag(5);
    end;
    end else GoPathVar(7, 5, -2, 30, 4, 4);
    Goto Start;
    end;
    end;
    if (NoMine >= 5) then
    begin
    Failed('Could not find ores or mining symbol 5 times...');
    Exit;
    end;
    if OresFound then
    for a := 0 to High(TPA5) do
    begin
    MMouse(tpa5[a].x - 2, tpa5[a].y - 2, 4, 4);
    if (IsUpText('ine') or IsUpText('ocks')) then
    begin
    GetMousePos(x, y);
    Break;
    end;
    end;
    if (OresFound) then MineRandom;
    End;

    Procedure MO2;
    Begin
    if not LoggedIn then Exit;
    Status('MO2');
    if (PickInv) then Ores := ((Banks * 27) + (InvCount - 1));
    if (not PickInv) then Ores := ((Banks * 28) + InvCount);
    PReport;
    End;

    Procedure MineOres;
    Var
    i, a, OreTime : Integer;
    Begin
    if not LoggedIn then Exit;
    i := 0;
    a := 0;
    AbBool := true;
    MarkTime(MineTime);
    repeat
    Status('MineOres');
    MO1;
    MarkTime(OreTime);
    repeat
    if UserActivate then PReport;
    if not LoggedIn then Exit;
    MKFindGas;
    FindTalk;
    Wait(100 + random(100));
    if MyFindPick then AttachPick;
    HandleFight;
    FindTalk;
    Wait(100 + random(100));
    MKFindGas;
    FindTalk;
    Wait(100 + random(100));
    AntiBan;
    RandomsCheck;
    Wait(100 + random(100));
    MyFindPlant;
    Wait(100 + random(100));
    MiningTalk;
    NameRespond;
    if (OreMined) then Break;
    if (random(4) = 0) then SleepAndMoveMouse(200 + random(800));
    Wait(100 + random(100));
    if DeathWalk then MarkTime(MineTime);
    Wait(100 + random(100));
    if (FindInventoryRandoms) then PReport;
    i := i + 1;
    if (i = 5) then
    begin
    CheckBrokenPick;
    i := 0;
    end;
    if not LoggedIn then Exit;
    until(OreMined) or (TimeFromMark(OreTime) > MineWait);
    MO2;
    if (TimeFromMark(MineTime) >= Players[CurrentPlayer].Integers[0] * 60000) then Break;
    until(InvFull);
    End;

    Procedure TakeBreak;
    Var
    BreakMark : Integer;
    Begin
    if not LoggedIn then Exit;
    Status('TakeBreak');
    case random(3) of
    0: Disguise('Taking Break');
    1: Disguise('Taking Break...');
    2: Disguise('Taking Break . . .');
    end;
    LogoutLoop;
    if (ActiveCount = 1) then
    begin
    MarkTime(BreakMark);
    repeat
    Sleep(30000 + random(20000));
    until(TimeFromMark(BreakMark) >= (280000 + random(40000)));
    end else NextPlayer(true);
    PlayerSetup;
    Breaks := Breaks + 1;
    PReport;
    End;

    Procedure BreakCheck;
    Begin
    if not LoggedIn then Exit;
    Status('BreakCheck');
    if (Players[CurrentPlayer].Integers[1] = 0) then if (TempLoads >= NextBreakSet) then TakeBreak;
    if (Players[CurrentPlayer].Integers[1] > 0) then if (TempLoads >= Players[CurrentPlayer].Integers[1]) then TakeBreak;
    End;

    Procedure ScriptLoop;
    Begin
    repeat
    if (not LoggedIn) then
    begin
    if (ActiveCount = 1) then
    begin
    Players[CurrentPlayer].Active := false;
    PReport;
    Exit;
    end else
    begin
    NextPlayer(false);
    PReport;
    PlayerSetup;
    end;
    end;
    BreakCheck;
    MineOres;
    WalkBank;
    BankStuff('');
    WalkMine;
    PReport;
    until(false);
    End;

    Begin
    SetupSRL;
    ScriptID := '650';
    Setup;
    repeat
    ScriptLoop;
    AllResetWait;
    until(false);
    End.

  7. #7
    Join Date
    Mar 2008
    Posts
    4
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Runescapian321 View Post
    Then put your ID and password where the script tells you to (should be something like 'SRLID := ''').

    EDIT: Hy's too fast for me -.-
    haha lol fixed it

  8. #8
    Join Date
    Dec 2007
    Location
    Michigan, USA
    Posts
    280
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    OMFG I JUST YELLED AT SOMEONE FOR NOT TAGGING THE SCRIPT!!! *sigh* ok let me breath.... in the future put scripts between scar tags... {Scar][/SCAR} { = [ and } = ]
    Kindof Inactive...

  9. #9
    Join Date
    Mar 2007
    Posts
    3,116
    Mentioned
    0 Post(s)
    Quoted
    2 Post(s)

    Default

    SCAR Code:
    Procedure DeclarePlayers;
    Begin
    Status('DeclarePlayers');
    SRLID := '4774';//Here
    SRLPassword := '';//Here
    Thats where you put it

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. running script help
    By deh miner1 in forum OSR Help
    Replies: 2
    Last Post: 07-25-2008, 01:45 AM
  2. Help running script
    By Alco13 in forum OSR Help
    Replies: 4
    Last Post: 04-27-2008, 07:11 PM
  3. Running Script however it does nothing!?!
    By 503075000868 in forum OSR Help
    Replies: 9
    Last Post: 07-18-2007, 03:45 PM

Posting Permissions

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