need help fillin out this script

Discussion in 'Scar/Simba Help' started by revo333, Jan 27, 2008.

need help fillin out this script
  1. Unread #1 - Jan 27, 2008 at 5:33 PM
  2. revo333
    Referrals:
    0

    revo333 Guest

    need help fillin out this script

    i cant figure out how to fill this script. can u plz help me. plz fill out all the things that need to be filled out except pass words, usernames, and pin numbers. there wll b only one person usin this script. the script is as follows:



    {===================================================================]
    [ Sumilions Rimmington Miner ]
    [ ]
    [ NAME : Sumilions Rimmington Miner ]
    [ WRITER : Sumilion ]
    [ CATEGORY : Miner ]
    [ DESCRIPTION : Mines in Rimmington, banks in Falador ]
    [ USAGE : Start at bankbooth in Falador ]
    [ AUTOCOLOR : Partially ]
    [ SRL Used : 3.7 (DIVI) ]
    [ ]
    [ More Scripts can be found at ]
    [ www.SRL-Forums.com ]
    [===================================================================]
    [ Instructions. ]
    [===================================================================]
    [ 1. USE Runescape with Low Detail, Very Bright. ]
    [ 2. Set your Screen to 32 bit TRUE color. ]
    [ 3. Setup lines below ]
    [ 4. Set CopperRockMMColor (and NormalRockMMColor)!!! ]
    [ 5. Set Playernames and Passwords below. ]
    [ 6. Have Pick in First invslot or wielded and more in the bank ]
    [ 7. Start script Logged Out / Logged in ]
    [===================================================================]
    [ Credits to : ]
    [ Wizzup? --> For the GetRockColor; function. ]
    [===================================================================}
    program SumilionsRimmingtonMiner;
    {.include SRL/SRL.scar}
    {.include SRL/SRL/skill/Mining.scar}

    //********Color Settings********\\
    const
    CopperRockMMColor = 2903155; // You HAVE to fill this in, it wont work otherwise.
    NormalRockMMColor = 5197639; // If below is true, then there is no need to fill this in.
    AutoMMRockColor = False; // Use Wizzups MinimapRockColor finder (not adviced)?

    //********Player Settings********\\
    const
    MinutesPerPlayer = 15; // Time in minutes per player
    MaxSecRock = 5; // Maximum seconds to wait for a rock
    StartPlayer = 0; // With what player do you want to start ?
    UseBenMouse = True; // Use BenMouse? (Some people say its good for anti-ban)
    RunDir = 'N'; // Direction to run to when in fight
    RunFar = True; // Run far when in fight ?

    //********Additional Settings********\\
    SRLStatsID = ''; // Your SRL ID for the stats (Leave blanc to set it to default, from SetupSRL.scar)
    SRLStatsPW = ''; // Your Password for the stats (Leave blanc to set it to default, from SetupSRL.scar)
    VersionNumber = '0.13'; // No need to change this
    TheMinCount = 5; // No need to change this
    BoxSize = 15; // No need to change this
    RemoteMaster = 'umil'; // For advanved users only.

    //********Player Settings********\\
    procedure DeclarePlayers;
    begin
    HowManyPlayers := 5;//MAKE SURE THIS ONE IS CORRECT!

    CurrentPlayer := StartPlayer;
    NumberOfPlayers(HowManyPlayers);

    Players[0].Name := 'Username'; // Your Runescape name
    Players[0].Pass := 'Password'; // The corresponding password
    Players[0].Nick := 'ern'; // 3-4 letters from your name, NO CAPITALS (that includes the first character)
    Players[0].String1 := 'Iron'; // Type of ore to mine (Clay / Copper / Tin / Iron / Gold)
    Players[0].String2 := '0000'; // Your BankPinNumber
    Players[0].Active := True;

    Players[1].Name := 'Username';
    Players[1].Pass := 'Password';
    Players[1].Nick := 'ern';
    Players[1].String1 := 'Copper';
    Players[1].String2 := '0000';
    Players[1].Active := True;

    Players[2].Name := 'Username';
    Players[2].Pass := 'Password';
    Players[2].Nick := 'ern';
    Players[2].String1 := 'Tin';
    Players[2].String2 := '0000';
    Players[2].Active := True;

    Players[3].Name := 'Username';
    Players[3].Pass := 'Password';
    Players[3].Nick := 'ern';
    Players[3].String1 := 'Gold';
    Players[3].String2 := '0000';
    Players[3].Active := True;

    Players[4].Name := 'Username';
    Players[4].Pass := 'Password';
    Players[4].Nick := 'ern';
    Players[4].String1 := 'Iron';
    Players[4].String2 := '0000';
    Players[4].Active := True;
    end;

    //********RockColor Settings********\\
    const
    CopperColor = 4421053;
    TinColor = 8224391;
    ClayColor = 6196645;
    IronColor = 2899043;
    GoldColor = 1952246;

    //********Dont go below unless your more advanced********\\
    var
    GasAvoided, bmpOreMask, bmpClayMask, RunTime, MinCount,
    FalaRoadColor, MiningSiteColor, dtmBanker, dtmBank, RockColor,
    a, GemsReceived, OresMined, TotalLoads, bmpGemMask: Integer;
    dtmPaxes: array[1..6] of Integer;
    PinNumber: string;
    AngleVar: Extended;
    PlayerStatus: Boolean;

    //-----------------------------------------------------------------\\
    { ProgressReport - Sets up the player array ||
    \\-----------------------------------------------------------------//}
    procedure ProgressReport;//Made by Fakawi, i think, edited by me

    var
    PActive, Spaces: string;
    I, K, SpaceNumber: Integer;
    begin
    SRLRandomsReport;
    if Players[CurrentPlayer].Active then
    PActive:='True'
    else
    PActive:='False';
    Writeln(' ');
    Writeln('<========== RimmingtonMiner ============>');
    Writeln('<======= -'+VersionNumber+'- Progress Report ========>');
    Writeln('/=======================================\');
    Writeln(' Worked for '+ TimeRunning);
    Writeln(' Banked '+IntToStr(TotalLoads)+' loads.');
    Writeln(' Mined '+inttostr(OresMined)+(' ores.'));
    if(GemsReceived > 0)then
    Writeln(' Received '+IntToStr(GemsReceived)+(' gem.'));
    if(GasAvoided > 0)then
    Writeln(' Avoided gas '+IntToStr(GasAvoided)+(' time.'));
    Writeln('\=======================================/');
    Writeln(' Name : '+Players[CurrentPlayer].Name);
    Writeln(' Mining Lvl : '+IntToStr(Players[CurrentPlayer].Level[15]));
    Writeln(' Worked for : '+IntToStr(Players[CurrentPlayer].Worked)+' minutes.');
    Writeln(' Banked : '+IntToStr(Players[CurrentPlayer].Banked)+' time.');
    Writeln(' Active : '+PActive);
    Writeln(' Location : '+Players[CurrentPlayer].Loc);
    Writeln('\\-------------------------------------//');
    for I := 0 to HowManyPlayers-1 do
    begin
    if Players.Active then
    PActive:='True'
    else
    PActive:='False';
    SpaceNumber := 12 - Length(Players.Name);
    for K := 0 to SpaceNumber do
    Spaces := Spaces + ' ';
    Writeln(IntToStr(I)+': '+Players.Name + Spaces +
    '= ' + PActive + ', ' + IntToStr(Players.Banked) + ' Bank' +
    ', Worked ' + IntToStr(Players.Worked) + ' minutes, ' +
    'Loc: ' + Players.Loc);
    Spaces := '';
    end
    Writeln('<==========================================>');
    end;

    //-----------------------------------------------------------------\\
    { LoadImages - Loads the images in the memory ||
    \\-----------------------------------------------------------------//}
    procedure LoadImages;
    begin
    bmpOreMask := BitmapFromString(9, 8, 'z78DA333040076E6080C9C60' +
    'F064A17F17A71E9C2AFD70D03E09725DE4CF2DC0F00DCD05C59');
    bmpClayMask := BitmapFromString(9, 6, 'z78DA33302016B88101F' +
    '12A4905B86CC1AF9E3CB7E1329F787F218B03004FC54795');
    bmpGemMask := BitmapFromString(23, 24, 'z78DA3330183EC00D0C686732' +
    'F10097AEC1E33BFC2EA77F08936AD7A84B465D428C8DA32E19750' +
    '931F68EBA6434B50C45978CCC929F785B68ED1E52CDA76E9B90BA' +
    '7E74A3180CFE3E0200FDE18F27');
    dtmPaxes[1] := DTMFromString('78DA637463646008664001068A0C0C5C401A2' +
    '8C3F01F0818C381AC40543536FE11703520C0E80B6479A0AAF149' +
    '2D405103000A07084F'); //Rune
    dtmPaxes[2] := DTMFromString('78DA631463646008634001068A0C0C5C401A2' +
    '8C3F01F08183580AC405435561E56703520C028076479A0AAF188' +
    'F142510300D923076A'); //Addy
    dtmPaxes[3] := DTMFromString('78DA637CCEC0C010C680020C141918B880342' +
    '310FF0702C69F404620AA1A73F300B81A10607C0F243C50D5B8BA' +
    'A7A3A8010086BD09E1'); //Mith
    dtmPaxes[4] := DTMFromString('78DA63DCC9C0C010CC80020C141918B880342' +
    '310FF0702C653404620AA9ACCA424B81A10603C00243C50D5B4D6' +
    'D4A0A801007D560A4B'); //Steel
    dtmPaxes[5] := DTMFromString('78DA63EC62606008654001068A0C0C5C409A1' +
    '188FF0301E36C202310558DBB93135C0D08304E04121EA86AA242' +
    '4250D400003C4908E3'); //Iron
    dtmPaxes[6] := DTMFromString('78DA638C62606008634001068A0C0C5C409A1' +
    '188FF0301630E901188AAC6D1480EAE0604189380843BAA1A3B2D' +
    '0614350000CD0781'); //Bronze
    dtmBanker := DTMFromString('78DA636C66626008634001972E5E66F80FA41' +
    '981F83F1030B601D5C4A0AAF9F38789810BAA0604189B8850D345' +
    '580D00CA7B110D'); //From GuildRaper
    dtmBank := DTMFromString('78DA630C64626030614001BBD64F61D000D28' +
    'C40FC1F081863816A9C20724C50356FDF32C0D580006334A69A3F' +
    '7F9850D58403651C50D5FCFB278CAA260428E348C09C004C3518E' +
    'E09C66F172B100300D8741716');
    end;

    //-----------------------------------------------------------------\\
    { KeepUpStats - Updates current statistics ||
    \\-----------------------------------------------------------------//}
    procedure KeepUpStats;
    begin
    ProgressReport;
    OresMined := OresMined + CountItemBmpMaskTol(bmpOreMask, 5, 5) + CountItemBmpMaskTol(bmpClayMask, 5, 5);
    ReportVars[0] := ReportVars[0] + CountItemBmpMaskTol(bmpOreMask, 5, 5) + CountItemBmpMaskTol(bmpClayMask, 5, 5);
    GemsReceived := GemsReceived + CountItemBmpMaskTol(bmpGemMask, 5, 5);
    ReportVars[3] := ReportVars[3] + CountItemBmpMaskTol(bmpGemMask, 5, 5);
    TotalLoads := TotalLoads + 1;
    ReportVars[1] := ReportVars[1] + 1;
    Players[CurrentPlayer].Banked := Players[CurrentPlayer].Banked + 1;
    end;

    //------------------------------------------------------------------------\\
    { PlayerLost - Logs out player when lost ||
    \\------------------------------------------------------------------------//}
    procedure PlayerLost(Info:string);
    begin
    Writeln('Player Lost, '+ Info);
    Logout;
    end;

    //-----------------------------------------------------------------\\
    { SetOreColor - Sets correct OreColor ||
    \\-----------------------------------------------------------------//}
    procedure SetOreColor;
    begin
    case LowerCase(Players[CurrentPlayer].String1) of
    'copper' : OreColor := CopperColor;
    'tin' : OreColor := TinColor;
    'clay' : OreColor := ClayColor;
    'iron' : OreColor := IronColor;
    'gold' : OreColor := GoldColor;
    end;
    if(OreColor = 0)then
    Writeln('String1 is NOT set properly or color is 0...');
    end;

    //-----------------------------------------------------------------\\
    { FindFastRandoms - Finds the randoms fast ||
    \\-----------------------------------------------------------------//}
    function FindFastRandoms: Boolean; // By WT-Fakawi.
    var
    i: Integer;
    begin
    for I := 1 to 11 do
    begin
    case I of
    1: if FindDead then
    Result := True;

    2: if FindMod then
    Result := True;

    3: if FindMime then
    Result := True;

    4: if FindMaze then
    Result := True;

    5: if FindQuiz then
    Result := True;

    6: if FindDemon then
    Result := True;

    7: begin
    if NoGameTab then
    begin
    Result := True;
    Players[CurrentPlayer].loc := 'No GameTab';
    Logout;
    Exit;
    end;
    end;

    8: begin
    if InBlack then
    begin
    Result := True;
    Players[CurrentPlayer].loc := 'InBlack';
    Logout;
    Exit;
    end;
    end;

    9 : if RC then
    Result := True;

    10 : if FindFight then
    begin
    Result := True;
    RunTo(RunDir, RunFar);
    end;

    11: if FindTalk then
    Result := True;
    end;
    Wait(1);
    end;
    end;

    //-----------------------------------------------------------------\\
    { SumFindPickHeadColor - Gets pickhead colors ||
    \\-----------------------------------------------------------------//}
    function SumFindPickHeadColor: Boolean;
    var
    InvPAxe, WieldPAxe, Ix, Iy, Wx, Wy: integer;
    begin
    GameTab(4);
    for InvPAxe := 1 to 7 do
    begin
    if(InvPAxe = 7)then
    Break;
    if(FindDtm(dtmPaxes[InvPAxe], Ix, Iy, MIX1, MIY1, MIX2, MIY2))then
    Break;
    end;
    GameTab(5);
    Wait(500);
    for WieldPAxe := 1 to 7 do
    begin
    if(WieldPAxe = 7)then
    Break;
    if(FindDtm(dtmPaxes[WieldPAxe], Wx, Wy, MIX1, MIY1, MIX2, MIY2))then
    Break;
    end;

    if(InvPAxe = 7)and(WieldPAxe = 7)then
    begin
    Result := False;
    Exit;
    end;
    if((InvPAxe-WieldPAxe) < 0)then
    EquipPick := False
    else
    EquipPick := True;
    Result := true;
    if(EquipPick)then
    begin
    GameTab(5);
    hc1 := GetColor(585, 295);
    hc2 := GetColor(597, 297);
    hc3 := GetColor(594, 296);
    hc4 := GetColor(588, 295);
    hc5 := GetColor(582, 294);
    end else
    begin
    GameTab(4);
    if(Ix > 592)and(Iy > 238)then
    Drag(Ix, Iy, 5, 5, 579, 227, 5, 5, true);
    FindDtm(dtmPaxes[InvPAxe], Ix, Iy, MIX1, MIY1, MIX2, MIY2);
    hc1 := GetColor(587, 216);
    hc2 := GetColor(587, 219);
    hc3 := GetColor(592, 222);
    hc4 := GetColor(584, 216);
    hc5 := GetColor(577, 219);
    end;
    WriteLn('Pick head colors... ' + IntToStr(hc1) + ' ' + IntToStr(hc2) + ' ' +
    IntToStr(hc3) + ' ' + IntToStr(hc4) + ' ' + IntToStr(hc5));
    end;

    //-----------------------------------------------------------------\\
    { SumFindRoadColor - Finds both road colors on the screen ||
    \\-----------------------------------------------------------------//}
    function SumFindRoadColor(FalaColor: Boolean): Integer;
    var
    arRoadPoints: TPointArray;
    GenericColor, a, b: Integer;
    arRoughRoadColors, arRoadColors: array of Integer;
    WeGotIt: Boolean;
    begin
    if(FalaColor)then
    GenericColor := 6057843
    else
    GenericColor := 5921377;
    ColorToleranceSpeed(2);
    SetColorspeed2Modifiers(10.0, 0.03);
    FindColorsTolerance(arRoadPoints, GenericColor, MMX1, MMY1, MMX2, MMY2, 50);
    ColorToleranceSpeed(1);
    arRoughRoadColors := GetColors(arRoadPoints);
    for a := 0 to GetArrayLength(arRoughRoadColors) - 1 do
    begin
    WeGotIt := False;
    if(arRoughRoadColors[a] > 5000000)and(arRoughRoadColors[a] < 8000000)then
    begin
    for b := 0 to GetArrayLength(arRoadColors) - 1 do
    begin
    if(arRoadColors = arRoughRoadColors[a])then
    WeGotIt := True;
    end;
    if not(WeGotIt)then
    begin
    if(CountColor(arRoughRoadColors[a], MMX1, MMY1, MMX2, MMY2) > 200)then
    begin
    Writeln(IntToStr(arRoughRoadColors[a]));
    SetArrayLength(arRoadColors, GetArrayLength(arRoadColors) + 1);
    arRoadColors[GetArrayLength(arRoadColors) - 1] := arRoughRoadColors[a];
    end;
    end;
    end;
    end;
    if not(GetArrayLength(arRoadColors) = 1)then
    begin
    Writeln('Failed to find the road using SumFindRoadColor.');
    Writeln('Trying default autocoloring.');
    if(FalaColor)then
    Result := FindFallyRoadColor
    else
    Result := FindRoadColor;
    end else
    Result := arRoadColors[0];
    Writeln('RoadColor = '+IntToStr(Result));
    if(Result = 0)then
    begin
    Writeln('Failed to find the road color.');
    Writeln('Leaving it what it was.');
    if(FalaColor)then
    Result := FalaRoadColor
    else
    Result := RoadColor;
    end;
    end;

    function ColorsAtColor(CPoint: TPoint; Color: Integer; Colors: TIntegerArray): Boolean;
    var // <3 Wizzup
    I: Integer;
    begin
    if CountColor(Color, CPoint.X - 8, CPoint.Y - 8, CPoint.X + 8, CPoint.Y + 8) > 8 then
    begin
    for I := 0 to GetArrayLength(Colors) - 1 do
    if(CountColor(Colors, CPoint.X - 8, CPoint.Y - 8, CPoint.X + 8, CPoint.Y + 8) > 4)Then
    begin
    if(Colors <> Color)then
    begin
    WriteLn('Found Color ' +IntToStr(Colors) + ' too.');
    Result := True;
    Exit;
    end;
    end;
    end;
    end;

    function NumInArray(Num: Integer; TheArray: TIntegerArray): Boolean;
    var // <3 Wizzup
    I, TheArrayLength: Integer;
    begin
    TheArrayLength := GetArrayLength(TheArray) - 1;
    for I := 0 to TheArrayLength do
    begin
    if Num = TheArray then
    begin
    Result := True;
    Exit;
    end;
    end;
    end;

    function ColorsTol(C1, C2: Integer): integer;
    var // <3 Wizzup
    I : integer;
    begin
    for I := 0 to 255 do
    if SimilarColors(C1, C2, I) then Break;
    if I <> 255 then Result := I;
    end;

    Type
    AColor = Record
    Color: Integer;
    Amount: Integer;
    Point: TPoint;
    End;

    var
    Colors: array of AColor;

    function GetRockColor: Integer;
    var // <3 Wizzup
    Points, PosResultsP, PosResults2P: TPointArray;
    Found: array of TPointArray;
    CColors, PosResults, PosResults2: array of Integer;
    I: Integer;
    H, S, L: Extended;
    begin
    ColorToleranceSpeed(2);
    SetColorSpeed2Modifiers(0.9, 0.2);
    FindColorsTolerance(Points, 5266264, 540, 5, 740, 155, 60);
    //WriteLn('P2 Found ' + IntToStr(GetArrayLength(Points)));
    CColors := GetColors(Points);
    //WriteLn('Colors Found ' + IntToStr(GetArrayLength(CColors)));

    SetArrayLength(Colors, GetArrayLength(CColors));
    for I := 0 to GetArrayLength(CColors) - 1 do
    begin
    Colors.Color := CColors;
    Colors.Point := Points;
    end;

    for I := 0 to GetArrayLength(Colors) - 1 do
    begin
    ColorToHSL(Colors[i].Color, H, S, L);
    //If ((L > 15) And (L < 40) And (S < 50)) Then
    if((L > 15)and(L < 40)and(S < 50)and(H > 10)and(H < 95))then
    if not NumInArray(Colors[i].Color, PosResults)then
    begin
    SetArrayLength(PosResults, GetArrayLength(PosResults) + 1);
    PosResults[GetArrayLength(PosResults) - 1] := Colors[i].Color;
    SetArrayLength(PosResultsP, GetArrayLength(PosResultsP) + 1);
    PosResultsP[GetArrayLength(PosResultsP) - 1] := Colors[i].Point;
    end;
    end;
    for I := 0 to GetArrayLength(PosResults) - 1 do
    begin
    SetArrayLength(Found, GetArraylength(Found) + 1);
    FindColorsTolerance(Found[i], PosResults[i], 540, 5, 740, 155, 0);
    {WriteLn('Possible Colors['+IntToStr(I) + '] F ' +
    IntToStr(GetArrayLength(Found[i])) + ' = '+
    IntToStr(PosResults[i])+ ' With a tol of ' +
    IntToStr(ColorsTol(PosResults[i], 5266264)));}
    end;

    for I := 0 to GetArrayLength(PosResults) - 1 do
    begin
    if (GetArrayLength(Found[i]) > 5) and (GetArrayLength(Found[i]) < 400)then
    begin
    if (ColorsAtColor(PosResultsP[i], PosResults[i], PosResults))and
    (rs_OnMiniMap(PosResultsP[i].X, PosResultsP[i].Y))then
    begin
    SetArrayLength(PosResults2, GetArrayLength(PosResults2) + 1);
    PosResults2[GetArrayLength(PosResults2) - 1] := PosResults[i];
    SetArrayLength(PosResults2P, GetArrayLength(PosResults2P) + 1);
    PosResults2P[GetArrayLength(PosResults2P) - 1] := PosResultsP[i];
    end;
    end;
    end;

    for I := 0 to GetArrayLength(PosResults2) - 1 do
    begin
    ColorToHSL(PosResults2[i], H, S, L);
    {WriteLn('Possible Colors2['+IntToStr(I) + '] F ' +
    IntToStr(GetArrayLength(Found[i])) + ' = '+
    IntToStr(PosResults2[i]) + ' H ' + FloatToStr(H) + ' S ' +FloatToStr(S)
    + ' L ' + FloatToStr(L));
    Wait(500);}
    Result := PosResults[I];
    if(Result > 0)then
    Break;
    end;
    end;

    //-----------------------------------------------------------------\\
    { SumCheckGas - Checks if there is gas ||
    \\-----------------------------------------------------------------//}
    function SumCheckGas(rx, ry: Integer): Boolean;
    var
    TempMouseSpeed, GasTime: Integer;
    begin
    Result := FindGas(rx, ry - 20);
    if(Result)then
    begin
    Writeln('Gas found!');
    TempMouseSpeed := MouseSpeed;
    MouseSpeed := 5;
    MouseFindNoFlag(MMCX, MMCY + 4, 1, 1);
    MarkTime(GasTime);
    MouseSpeed := TempMouseSpeed;
    while(TimeFromMark(GasTime) < 35000)do
    if(Random(20) > 15)then
    IdleTime(500, 500, 0.4)
    else
    Wait(500 + Random(500));
    GasAvoided := GasAvoided + 1;
    ReportVars[2] := ReportVars[2] + 1;
    end;
    end;

    //-----------------------------------------------------------------\\
    { getArrayFromBox - Gets colors in groups ||
    \\-----------------------------------------------------------------//}
    function getArrayFromBox(arColor: TPointArray; Width, Height: Integer): TPointArray;
    var
    Count, Count3: Integer;
    DoNotAccept : Boolean;
    begin
    SetArrayLength(Result, 1);
    Result[0] := arColor[0];

    for Count := 1 to GetArrayLength(arColor) - 1 do
    begin
    if(arColor[Count].x < arColor[Count - 1].x + Width)and
    (arColor[Count].y < arColor[Count - 1].y + Height)and
    (arColor[Count].x > arColor[Count - 1].x - Width)and
    (arColor[Count].y > arColor[Count - 1].y - Height)then
    else
    begin
    DoNotAccept := False;
    for Count3 := 0 to GetArrayLength(Result) - 1 do
    begin
    if (arColor[Count].x < Result[Count3].x + Width)and
    (arColor[Count].y < Result[Count3].y + Height)and
    (arColor[Count].x > Result[Count3].x - Width)and
    (arColor[Count].y > Result[Count3].y - Height)then
    DoNotAccept := True;
    if DoNotAccept then
    Break;
    end;
    if (DoNotAccept = False) then
    begin
    SetArrayLength(Result, GetArrayLength(Result) + 1);
    Result[GetArrayLength(Result) - 1] := arColor[Count];
    end;
    end;
    end;
    end;

    //-----------------------------------------------------------------\\
    { IsOre - Did we found an ore or a rock ? ||
    \\-----------------------------------------------------------------//}
    function IsOre(rx, ry: Integer): Boolean;
    begin
    Result := FindColorSpiralTolerance(x, y, 4481401, rx - 5, ry - 5, rx + 5, ry + 5, 5);
    end;

    //-----------------------------------------------------------------\\
    { FindRockCenter - Finds the rock center ||
    \\-----------------------------------------------------------------//}
    function FindRockCenter(var RockPoint: TPoint; RockColor, BoxSize, RockMinimum: Integer): Boolean;
    var
    c, MaxTime: Integer;
    arRoughRockPoints, arRockPoints: TPointArray;
    begin
    FindColorsSpiralTolerance(MSCX, MSCY, arRoughRockPoints, RockColor, MSX1, MSY1, MSX2, MSY2, 5);
    if(GetArrayLength(arRoughRockPoints) < 1)then
    Exit;
    MarkTime(MaxTime);
    for c := 0 to GetArrayLength(arRoughRockPoints) - 1 do
    begin
    if not(IsOre(arRoughRockPoints[c].x, arRoughRockPoints[c].y))then
    begin
    RockPoint.x := 0;
    RockPoint.y := 0;
    ColorToleranceSpeed(2);
    SetColorspeed2Modifiers(0.4, 0.4);
    FindColorsTolerance(arRockPoints, 940676, arRoughRockPoints[c].x - BoxSize, arRoughRockPoints[c].y - BoxSize, arRoughRockPoints[c].x + BoxSize, arRoughRockPoints[c].y + BoxSize, 3);
    for a := 0 to GetArrayLength(arRockPoints) - 1 do
    begin
    RockPoint.x := RockPoint.x + arRockPoints[a].x;
    RockPoint.y := RockPoint.y + arRockPoints[a].y;
    end;
    if(GetArrayLength(arRockPoints) <> 0)and
    (RockPoint.x <> 0)and(RockPoint.y <> 0)then
    begin
    RockPoint.x := RockPoint.x / GetArrayLength(arRockPoints);
    RockPoint.y := RockPoint.y / GetArrayLength(arRockPoints);
    MMouse(RockPoint.x, RockPoint.y, 5, 5);
    ColorToleranceSpeed(1);
    Result := (GetArrayLength(arRockPoints) > RockMinimum)and
    (IsUpText('Mine'));
    end;
    if(Result)or(TimeFromMark(MaxTime) > 5000)then
    Break;
    Wait(100);
    end;
    end;
    end;

    //-----------------------------------------------------------------\\
    { FindRockCenterBetter - Gets the center using a coordinate ||
    \\-----------------------------------------------------------------//}
    function FindRockCenterBetter(var RockPoint: TPoint; rx, ry, BoxSize, RockMinimum: Integer): Boolean;
    var
    fx, fy: Integer;
    arRockPoints: TPointArray;
    begin
    if not(FindColorSpiralTolerance(fx, fy, 940676, rx - 5, ry - 5, rx + 5, ry + 5, 5))then
    begin
    fx := rx;
    fy := ry;
    end;
    RockPoint.x := 0;
    RockPoint.y := 0;
    ColorToleranceSpeed(2);
    SetColorspeed2Modifiers(0.4, 0.4);
    FindColorsTolerance(arRockPoints, 940676, fx - BoxSize, fy - BoxSize, fx + BoxSize, fy + BoxSize, 3);
    for a := 0 to GetArrayLength(arRockPoints) - 1 do
    begin
    RockPoint.x := RockPoint.x + arRockPoints[a].x;
    RockPoint.y := RockPoint.y + arRockPoints[a].y;
    end;
    if(GetArrayLength(arRockPoints) <> 0)and
    (RockPoint.x <> 0)and(RockPoint.y <> 0)then
    begin
    RockPoint.x := RockPoint.x / GetArrayLength(arRockPoints);
    RockPoint.y := RockPoint.y / GetArrayLength(arRockPoints);
    Result := GetArrayLength(arRockPoints) > RockMinimum;
    end;
    ColorToleranceSpeed(1);
    end;

    //-----------------------------------------------------------------\\
    { RockGone - Did we lost the rock ? ||
    \\-----------------------------------------------------------------//}
    function RockGone(rx, ry: Integer): Boolean;
    begin
    Result := not FindColorSpiralTolerance(rx, ry, OreColor, rx - 10, ry - 10, rx + 10, ry + 10, 10);
    end;

    //-----------------------------------------------------------------\\
    { GetNewPick - Goes to get a new pick from the bank ||
    \\-----------------------------------------------------------------//}
    procedure MineToBank; forward;
    procedure BankToMine; forward;
    procedure SLBank(WithdrawNewPick: Boolean); forward;
    procedure GetNewPick;
    begin
    MineToBank;
    SLBank(True);
    BankToMine;
    end;

    //-----------------------------------------------------------------\\
    { WorkUntilMined - Loops until we're done mining ||
    \\-----------------------------------------------------------------//}
    procedure WorkUntilMined(wx, wy, InvSpot: Integer);
    var
    i, MineTime: Integer;
    begin
    MarkTime(MineTime);
    while(LoggedIn)do
    begin
    for i := 0 to 6 do
    begin
    case i of
    0 : if not(FindPick)then
    begin
    Writeln('We lost our pick axe.');
    Break;
    end;
    1 : if(FindFastRandoms)then
    Break;
    2 : if(SumCheckGas(wx, wy))then
    Break;
    3 : if(ExistsItem(InvSpot))then
    Exit;
    4 : if(RockGone(wx, wy))then
    Exit;
    5 : if(TimeFromMark(MineTime) > MaxSecRock * 1000)then
    Exit;
    6 : if(NoPick)then
    GetNewPick;
    end;
    Wait(1);
    end;
    if(Random(100) > 90)then
    IdleTime(500, 500, 0.4);
    end;
    PlaySound('C:\WINDOWS\Media\winAquariumCritStop.wav');
    end;

    //-----------------------------------------------------------------\\
    { UpdateRockCoord - Updates the coord of the rock ||
    \\-----------------------------------------------------------------//}
    function UpdateRockCoord(var ux, uy: Integer; UColor: Integer): Boolean;
    var
    FailSafeTime, i: Integer;
    RockPoint: TPoint;
    begin
    if not(FlagPresent)then
    begin
    Result := True;
    Exit;
    end;
    MarkTime(FailSafeTime);
    while(FindColorSpiralTolerance(ux, uy, UColor, ux - 20, uy - 20, ux + 20, uy + 20, 10))and
    (TimeFromMark(FailSafeTime) < 20000)and
    (FlagPresent)do
    begin
    Result := FindRockCenterBetter(RockPoint, ux, uy, BoxSize, MinCount);
    Wait(16);
    ux := RockPoint.x;
    uy := RockPoint.y;
    end;
    for i := 0 to 62 do
    begin
    Result := FindRockCenterBetter(RockPoint, ux, uy, BoxSize, MinCount);
    Wait(8);
    ux := RockPoint.x;
    uy := RockPoint.y;
    end;
    end;

    //-----------------------------------------------------------------\\
    { SumMine - Mines the rock ||
    \\-----------------------------------------------------------------//}
    function SumMine: Boolean;
    var
    rx, ry, InvSpot: Integer;
    RockPoint: TPoint;
    begin
    Result := FindRockCenter(RockPoint, OreColor, BoxSize, MinCount);
    if(Result)then
    begin
    if(SumCheckGas(RockPoint.x, RockPoint.y))then
    Exit;
    for InvSpot := 1 to 28 do
    if not(ExistsItem(InvSpot))then
    Break;
    GetMousePos(rx, ry);
    if Random (20) < 19 then
    Mouse(rx, ry, 0, 0, True)
    else begin
    Mouse(rx, ry, 0, 0, False);
    ChooseOption(x, y, 'Mine');
    end;
    if not(UpdateRockCoord(RockPoint.x, RockPoint.y, GetColor(RockPoint.x, RockPoint.y)))then
    Exit;
    WorkUntilMined(RockPoint.x, RockPoint.y, InvSpot);
    end;
    end;

    //-----------------------------------------------------------------\\
    { GoToCorrectSpot - Goes to the correct spot ||
    \\-----------------------------------------------------------------//}
    procedure GoToCorrectSpot;
    begin
    if(RockColor = 0)then
    begin
    if(AutoMMRockColor)then
    RockColor := GetRockColor
    else
    RockColor := NormalRockMMColor;
    Writeln('RockColor = ' + IntToStr(RockColor));
    end;
    case OreColor of
    TinColor :
    begin
    RadialWalk(RockColor, 90, 130, 100, -1, -1);
    Flag;
    end;
    IronColor :
    begin
    RadialWalk(RockColor, 250, 290, 100, 1, 0);
    Flag;
    end;
    ClayColor :
    begin
    RadialWalk(CopperRockMMColor, 50, 120, 70, 1, 0);
    Flag;
    end;
    GoldColor :
    begin
    RadialWalk(RockColor, 170, 210, 100, 1, 0);
    Flag;
    end;
    end;
    end;

    //-----------------------------------------------------------------\\
    { SumFindBank - Finds falador bankers on MM ||
    \\-----------------------------------------------------------------//}
    function SumFindBank(var bx, by: Integer): Boolean;
    var
    a, b, c, HighestCount: Integer;
    arRoughBankCoords, HighestArray: TPointArray;
    arBankCoords: array of TPointArray;
    WeGotIt: Boolean;
    begin
    ColorToleranceSpeed(0);
    FindColorsTolerance(arRoughBankCoords, 195836, MMX1, MMY1 + 40, MMX2, MMY2, 5);
    for a := 0 to GetArrayLength(arRoughBankCoords) - 1 do
    begin
    WeGotIt := False;
    for b := 0 to GetArrayLength(arBankCoords) - 1 do
    begin
    for c := 0 to GetArrayLength(arBankCoords[b]) - 1 do
    begin
    if(arRoughBankCoords[a].y > arBankCoords[b][c].y - 5)and
    (arRoughBankCoords[a].y < arBankCoords[b][c].y + 5)then
    begin
    SetArrayLength(arBankCoords[b], GetArrayLength(arBankCoords[b]) + 1);
    arBankCoords[b][GetArrayLength(arBankCoords[b]) - 1] := arRoughBankCoords[a];
    WeGotIt := True;
    Break;
    end;
    end;
    end;
    if not(WeGotIt)then
    begin
    SetArrayLength(arBankCoords, GetArrayLength(arBankCoords) + 1);
    SetArrayLength(arBankCoords[GetArrayLength(arBankCoords) - 1], GetArrayLength(arBankCoords[GetArrayLength(arBankCoords) - 1]) + 1);
    arBankCoords[GetArrayLength(arBankCoords) - 1][0] := arRoughBankCoords[a];
    end;
    end;
    for a := 0 to GetArrayLength(arBankCoords) - 1 do
    begin
    if(GetArrayLength(arBankCoords[a]) > HighestCount)then
    begin
    HighestArray := arBankCoords[a];
    HighestCount := GetArrayLength(arBankCoords[a]);
    end;
    end;
    if(GetArrayLength(HighestArray) > 15)then
    begin
    Result := True;
    for a := 0 to GetArrayLength(HighestArray) - 1 do
    begin
    bx := bx + HighestArray[a].x;
    by := by + HighestArray[a].y;
    end;
    bx := bx / GetArrayLength(HighestArray);
    by := (by / GetArrayLength(HighestArray)) - 10;
    end;
    ColorToleranceSpeed(1);
    end;

    //-----------------------------------------------------------------\\
    { BankToMine - Walks to the mine ||
    \\-----------------------------------------------------------------//}
    procedure BankToMine;
    var
    MaxTime: Integer;
    begin
    if not(LoggedIn)then
    Exit;
    if(FalaRoadColor = 0)or(not(FindColor(x, y, FalaRoadColor, MMX1, MMY1, MMX2, MMY2)))then
    FalaRoadColor := SumFindRoadColor(True);
    RadialWalk(FalaRoadColor, 210, 250, 70, 0, -1);
    FFlag(5);
    MarkTime(MaxTime);
    repeat;
    if not(FindColor(x, y, FalaRoadColor, MMX1, MMY1, MMX2, MMY2))then
    FalaRoadColor := SumFindRoadColor(True);
    RadialWalk(FalaRoadColor, 160, 210, 40, 0, -1);
    FFlag(5);
    until((not(FindColor(x, y, FalaRoadColor, MMCX - 20, MMCY + 10, MMX2, MMY2)))and
    (FindColor(x, y, FalaRoadColor, MMX1, MMY1, MMX2, MMY2)))or
    (TimeFromMark(MaxTime) > 90000);
    if(TimeFromMark(MaxTime) > 90000)then
    PlayerLost('timed out (1)');
    if(RoadColor = 0)or(not(FindColor(x, y, RoadColor, MMX1, MMY1, MMX2, MMY2)))then
    RoadColor := SumFindRoadColor(False);
    MarkTime(MaxTime);
    while(not(FindColor(x, y, CopperRockMMColor, MMX1, MMY1, MMX2, MMY2)))and
    (TimeFromMark(MaxTime) < 90000)do
    begin
    if not(RadialRoadWalk(RoadColor, 160, 280, 50, 0, -1))then
    RoadColor := SumFindRoadColor(False);
    FFlag(5);
    end;
    if(TimeFromMark(MaxTime) > 90000)then
    PlayerLost('timed out (2)');
    MouseFindNoFlag(x, y, 0, -1);
    Flag;
    if not(OreColor = CopperColor)then
    begin
    if(MiningSiteColor = 0)then
    begin
    MiningSiteColor := GetSymbolColor(x, y, 'mining site');
    if(MiningSiteColor = 0)then
    begin
    Writeln('MiningSiteColor not found, terminating.');
    TerminateScript;
    end else
    Writeln('MiningSiteColor = '+IntToStr(MiningSiteColor));
    end else
    if not(FindColor(x, y, MiningSiteColor, MMX1, MMY1, MMX2, MMY2))then
    begin
    MouseFindNoFlag(MMCX + 20, MMCY + 20, -1, -1);
    Flag;
    if not(FindColor(x, y, MiningSiteColor, MMX1, MMY1, MMX2, MMY2))then
    begin
    PlayerLost('Couldnt''t find the mine.');
    Exit;
    end;
    end;
    Mouse(x, y, 10, 10, True);
    Flag;
    GoToCorrectSpot;
    end;
    end;

    //-----------------------------------------------------------------\\
    { MineToBank - Walks to the bank ||
    \\-----------------------------------------------------------------//}
    procedure MineToBank;
    var
    MaxTime, bx, by: Integer;
    begin
    if not(LoggedIn)then
    Exit;
    if not(OreColor = CopperColor)then
    begin
    if(MiningSiteColor = 0)then
    begin
    MiningSiteColor := GetSymbolColor(x, y, 'mining site');
    end else
    if(FindColor(x, y, MiningSiteColor, MMX1, MMY1, MMX2, MMY2))then
    begin
    Mouse(x, y, 20, 20, True);
    Flag;
    if(FindColor(x, y, CopperRockMMColor, MMX1, MMY1, MMX2, MMY2))then
    begin
    Mouse(x, y, 3, 3, True);
    Flag;
    end else
    PlayerLost('Failed to find the Copper Rock');
    end else
    PlayerLost('Failed to find the Mining Site Symbol');
    end;
    MarkTime(MaxTime);
    repeat;
    if not(RadialRoadWalk(RoadColor, 340, 450, 70, 0, 2))then
    begin
    Mouse(MMCX, MMCY - 30, 5, 5, True);
    RoadColor := SumFindRoadColor(False);
    RadialRoadWalk(RoadColor, 340, 450, 70, 0, 2);
    Flag;
    end else
    Break;
    FFlag(5);
    until(TimeFromMark(MaxTime) > 30000);
    if(TimeFromMark(MaxTime) > 30000)then
    PlayerLost('timed out (3)');
    FFlag(5);
    MarkTime(MaxTime);
    while((FindColor(x, y, RoadColor, MMX1, MMY1, MMX2, MMCY - 20))or
    (not FindColor(x, y, RoadColor, MMX1, MMY1, MMX2, MMY2)))and
    (TimeFromMark(MaxTime) < 90000)and
    (LoggedIn)do
    begin
    if not(RadialRoadWalk(RoadColor, 355, 495, 50, 0, -1))then
    RoadColor := SumFindRoadColor(False);
    FFlag(5);
    end;
    if(TimeFromMark(MaxTime) > 90000)then
    PlayerLost('timed out (4)');
    MarkTime(MaxTime);
    repeat;
    if not(RadialWalk(FalaRoadColor, 330, 380, 40, 0, -1))then
    begin
    FalaRoadColor := SumFindRoadColor(True);
    RadialWalk(FalaRoadColor, 0, 70, 40, -1, 0);
    end;
    Flag;
    Wait(200+Random(200));
    until(SumFindBank(bx, by))and
    (not(FindColor(x, y, RoadColor, MMX1, MMY1, MMX2, MMY2)))or
    (TimeFromMark(MaxTime) > 90000);
    Mouse(bx, by, 3, 3, True);
    if(TimeFromMark(MaxTime) > 90000)then
    PlayerLost('timed out (5)');
    Flag;
    if(FindDtmRotated(dtmBanker, x, y, MMX1, MMY1, MMX2, MMY2, 0, pi*2, 0.1, AngleVar))then
    begin
    MouseFindNoFlag(x, y, 1, 0);
    Flag;
    if(FlagPresent)then
    Wait(500 + Random(200));
    end;
    end;

    //------------------------------------------------------------------------\\
    { GetBestPaxe - Finds the best paxe in the bank ||
    \\------------------------------------------------------------------------//}
    function GetBestPaxe(var x, y : integer) : Boolean;
    var
    I : integer;
    begin
    FixBank;
    for I := 1 to 7 do
    begin
    if(I = 7)then
    Break;
    if(FindDtm(dtmPaxes[I], x, y, MSX1, MSY1, MSX2, MSY2))then
    begin
    Result := True;
    Break;
    end;
    end;
    if(I = 7)then
    begin
    CloseBank;
    PlayerLost('No Paxe in the bank');
    end;
    end;

    //------------------------------------------------------------------------\\
    { SLOpenBank - Opens the bank, thnx to Lorax, made by me ||
    \\------------------------------------------------------------------------//}
    function SLOpenBank: Boolean;
    var
    BankTime, I: Integer;
    arBankColor, arBankColorResults: TPointArray;
    begin
    if LoggedIn then
    begin
    Wait(500);
    MarkTime(BankTime);
    while(not(BankScreen))and(TimeFromMark(BankTime) < 20000)do
    begin
    FindColorsSpiralTolerance(MSCX, MSCY, arBankColor, 4679037, MSX1, MSCY, MSX2, MSY2, 10);
    if(GetArrayLength(arBankColor) = 0)then
    Break;
    arBankColorResults := getArrayFromBox(arBankColor, 40, 40);
    for I := 1 to GetArrayLength(arBankColorResults)-1 do
    begin
    if not(LoggedIn)then Exit;
    Flag;
    Wait(100 + Random(100));
    MMouse(arBankColorResults[I].x, arBankColorResults[I].y, 5, 5);
    if(IsUpTextMulti('se Ban', 'ank b', 'booth'))then
    begin
    GetMousePos(x, y);
    Mouse(x, y, 2, 2, false);
    Wait(100+Random(100));
    ChooseOption(x, y, 'uickly');
    Wait(100+Random(100));
    Flag;
    Wait(1000 + Random(500));
    end;
    if(PinScreen)then
    if not(InPin(PinNumber))then
    Writeln('Pin Failed.');
    if(BankScreen)or(TimeFromMark(BankTime) > 20000)then
    Break;
    end;
    end;
    Result := BankScreen;
    end;
    end;

    //------------------------------------------------------------------------\\
    { SLBank - Main banking procedure ||
    \\------------------------------------------------------------------------//}
    procedure SLBank(WithdrawNewPick: Boolean);
    var
    dtmOre: Integer;
    begin
    if LoggedIn then
    begin
    if(WithdrawNewPick)then
    begin
    if(InvCount = 28)then
    begin
    dtmOre := DTMFromString('78DA63DCCBC0C0F08C0105989828C1D9FF818' +
    '0711D90F198010D302291407A0F90F84C40CD29207197809AE340' +
    'E2157E3500FA360CCF');
    if(FindDtm(dtmOre, x, y, MIX1, MIY1, MIX2, MIY2))then
    begin
    Mouse(x, y, 5, 5, false);
    ChooseOption(x, y, 'rop');
    end;
    FreeDtm(dtmOre);
    end;
    GameTab(5);
    Mouse(591, 304, 10, 10, true);
    GameTab(4);
    end;
    SLOpenBank;
    if(not BankScreen)then
    begin
    if(FindDtmRotated(dtmBanker, x, y, MMX1, MMY1, MMX2, MMY2, 0, pi*2, 0.1, AngleVar))then
    begin
    MouseFindNoFlag(x, y, 1, 0);
    Flag;
    if(FlagPresent)then
    Wait(500 + Random(200));
    end;
    if not(OpenBankQuiet('feb'))then
    begin
    Wait(500);
    if not(BankScreen)then
    begin
    PlayerLost('couldnt open the bank.');
    Exit;
    end;
    end;
    end;
    FixBank;
    if(EquipPick)or(WithdrawNewPick)then
    begin
    DepositAll;
    DepositAll;
    end else
    Deposit(2, 28, 2);
    if(WithdrawNewPick)then
    begin
    if(GetBestPAxe(x, y))then
    begin
    Mouse(x, y, 5, 5, true);
    Wait(200+Random(300));
    end;
    end;
    CloseBank;
    Wait(200+Random(200));
    if(BankScreen)then
    CloseBank;
    if(WithdrawNewPick)then
    begin
    if(FindColorTolerance(x, y, 876930, MIX1, MIY1, MIX2, MIY2, 10))then
    Mouse(x, y, 4, 4, True);
    Wait(400 + Random(400));
    if not(SumFindPickHeadColor)then
    PlayerLost('You dont have an axe');
    end;
    end;
    end;

    //-----------------------------------------------------------------\\
    { TimeToSwitchPlayers - Is it time to switch players ? ||
    \\-----------------------------------------------------------------//}
    function TimeToSwitchPlayers: boolean;
    begin
    if(TimeFromMark(RunTime) / 60 / 1000 > MinutesPerPlayer)then
    begin
    Result := True;
    WriteLn('Time is up');
    end else
    Result := False;
    end;

    //-----------------------------------------------------------------\\
    { Signature - My trade mark :) ||
    \\-----------------------------------------------------------------//}
    procedure Signature;
    begin
    Writeln(' _______ __ __ __');
    Writeln(' / _____/__ __ _____ |__| |__| ___ ____');
    Writeln(' \___ \| | \/ \| | | |/ _ \/ \');
    Writeln(' / \ | / Y Y \ | | ( <_> ) | \');
    Writeln('/_____ /____/|__|_| /__|__|__|\___/|__| /');
    Writeln(' \/ \/ \/');
    Writeln('Scripts Brings You:');
    Writeln(' Sumilions Rimmington Miner');
    end;

    //-----------------------------------------------------------------\\
    { SetupScript - Sets up the script. ||
    \\-----------------------------------------------------------------//}
    procedure SetupScript;
    begin
    SetupSRL;
    SetupSRLMining;
    ScriptID := '166';
    RCMaster := RemoteMaster;
    if(SRLStatsID <> '')then
    SRLID := SRLStatsID;
    if(SRLStatsPW <> '')then
    SRLPassword := SRLStatsPW;
    LoadImages;
    DeclarePlayers;
    MinCount := TheMinCount;
    BenMouse := UseBenMouse;
    CurrentPlayer := StartPlayer;
    ClearDebug;
    Signature;
    CheckUserNicks;
    Wait(500);
    ActivateClient;
    Wait(500);
    end;

    //-----------------------------------------------------------------\\
    { SetupUser - Sets up the current user. ||
    \\-----------------------------------------------------------------//}
    procedure SetupUser;
    begin
    if not(LoggedIn)then
    LoginPlayer;
    MakeCompass('N');
    HighestAngle;
    if not(SumFindPickHeadColor)then
    begin
    Writeln('No PickAxe found...');
    Writeln('Make sure your at V-Bright');
    LogOut;
    end;
    GameTab(2);
    Players[CurrentPlayer].Level[15] := GetSkillLevel('mining');
    PinNumber := Players[CurrentPlayer].String2;
    SetOreColor;
    GameTab(4);
    MarkTime(RunTime);
    end;

    //-----------------------------------------------------------------\\
    { MainLine - The magic is down here. ||
    \\-----------------------------------------------------------------//}
    begin
    SetupScript;
    repeat;
    SetupUser;
    repeat;
    BankToMine;
    SetRun(True);
    while(LoggedIn)and
    (not(InvFull))and
    (not(TimeToSwitchPlayers))do
    begin
    if not(SumMine)then
    if(Random(100) > 85)then
    IdleTime(500, 500, 0.4);
    Wait(16);
    FindNormalRandoms;
    Wait(16);
    end;
    SetRun(False);
    GameTab(4);
    MineToBank;
    KeepUpStats;
    SLBank(False);
    PlayerStatus := LoggedIn;
    if(TimeToSwitchPlayers)then
    LogOut;
    until not(LoggedIn);
    NextPlayer(PlayerStatus);
    until not(Players[CurrentPlayer].Active);
    Writeln('All players are false.');
    end.[/I][/I][/I][/b][/b][/b][/b][/b][/b][/b][/I][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
     
  3. Unread #2 - Jan 30, 2008 at 6:51 AM
  4. Macroman
    Joined:
    Jan 21, 2007
    Posts:
    6,919
    Referrals:
    9
    Sythe Gold:
    12

    Macroman Hero
    Do Not Trade

    need help fillin out this script

    I will do it as best as possible,

    {================================================= ==================]
    [ Sumilions Rimmington Miner ]
    [ ]
    [ NAME : Sumilions Rimmington Miner ]
    [ WRITER : Sumilion ]
    [ CATEGORY : Miner ]
    [ DESCRIPTION : Mines in Rimmington, banks in Falador ]
    [ USAGE : Start at bankbooth in Falador ]
    [ AUTOCOLOR : Partially ]
    [ SRL Used : 3.7 (DIVI) ]
    [ ]
    [ More Scripts can be found at ]
    [ www.SRL-Forums.com ]
    [================================================== =================]
    [ Instructions. ]
    [================================================== =================]
    [ 1. USE Runescape with Low Detail, Very Bright. ]
    [ 2. Set your Screen to 32 bit TRUE color. ]
    [ 3. Setup lines below ]
    [ 4. Set CopperRockMMColor (and NormalRockMMColor)!!! ]
    [ 5. Set Playernames and Passwords below. ]
    [ 6. Have Pick in First invslot or wielded and more in the bank ]
    [ 7. Start script Logged Out / Logged in ]
    [================================================== =================]
    [ Credits to : ]
    [ Wizzup? --> For the GetRockColor; function. ]
    [================================================== =================}
    program SumilionsRimmingtonMiner;
    {.include SRL/SRL.scar}
    {.include SRL/SRL/skill/Mining.scar}

    //********Color Settings********\\
    const
    CopperRockMMColor = 2903155; // You HAVE to fill this in, it wont work otherwise.
    NormalRockMMColor = 5197639; // If below is true, then there is no need to fill this in.
    AutoMMRockColor = False; // Use Wizzups MinimapRockColor finder (not adviced)?

    //********Player Settings********\\
    const
    MinutesPerPlayer = 15; // Time in minutes per player
    MaxSecRock = 5; // Maximum seconds to wait for a rock
    StartPlayer = 0; // With what player do you want to start ?
    UseBenMouse = True; // Use BenMouse? (Some people say its good for anti-ban)
    RunDir = 'N'; // Direction to run to when in fight
    RunFar = True; // Run far when in fight ?

    //********Additional Settings********\\
    SRLStatsID = ''; // Your SRL ID for the stats (Leave blanc to set it to default, from SetupSRL.scar)
    SRLStatsPW = ''; // Your Password for the stats (Leave blanc to set it to default, from SetupSRL.scar)
    VersionNumber = '0.13'; // No need to change this
    TheMinCount = 5; // No need to change this
    BoxSize = 15; // No need to change this
    RemoteMaster = 'umil'; // For advanved users only.

    //********Player Settings********\\
    procedure DeclarePlayers;
    begin
    HowManyPlayers := 1;//MAKE SURE THIS ONE IS CORRECT!

    CurrentPlayer := StartPlayer;
    NumberOfPlayers(HowManyPlayers);

    Players[0].Name := 'Username'; // Your Runescape name
    Players[0].Pass := 'Password'; // The corresponding password
    Players[0].Nick := 'ern'; // 3-4 letters from your name, NO CAPITALS (that includes the first character)
    Players[0].String1 := 'Iron'; // Type of ore to mine (Clay / Copper / Tin / Iron / Gold)
    Players[0].String2 := '0000'; // Your BankPinNumber
    Players[0].Active := True;

    Players[1].Name := 'Username';
    Players[1].Pass := 'Password';
    Players[1].Nick := 'ern';
    Players[1].String1 := 'Copper';
    Players[1].String2 := '0000';
    Players[1].Active := True;

    Players[2].Name := 'Username';
    Players[2].Pass := 'Password';
    Players[2].Nick := 'ern';
    Players[2].String1 := 'Tin';
    Players[2].String2 := '0000';
    Players[2].Active := True;

    Players[3].Name := 'Username';
    Players[3].Pass := 'Password';
    Players[3].Nick := 'ern';
    Players[3].String1 := 'Gold';
    Players[3].String2 := '0000';
    Players[3].Active := True;

    Players[4].Name := 'Username';
    Players[4].Pass := 'Password';
    Players[4].Nick := 'ern';
    Players[4].String1 := 'Iron';
    Players[4].String2 := '0000';
    Players[4].Active := True;
    end;

    //********RockColor Settings********\\
    const
    CopperColor = 4421053;
    TinColor = 8224391;
    ClayColor = 6196645;
    IronColor = 2899043;
    GoldColor = 1952246;

    //********Dont go below unless your more advanced********\\
    var
    GasAvoided, bmpOreMask, bmpClayMask, RunTime, MinCount,
    FalaRoadColor, MiningSiteColor, dtmBanker, dtmBank, RockColor,
    a, GemsReceived, OresMined, TotalLoads, bmpGemMask: Integer;
    dtmPaxes: array[1..6] of Integer;
    PinNumber: string;
    AngleVar: Extended;
    PlayerStatus: Boolean;

    //-----------------------------------------------------------------\\
    { ProgressReport - Sets up the player array ||
    \\-----------------------------------------------------------------//}
    procedure ProgressReport;//Made by Fakawi, i think, edited by me

    var
    PActive, Spaces: string;
    I, K, SpaceNumber: Integer;
    begin
    SRLRandomsReport;
    if Players[CurrentPlayer].Active then
    PActive:='True'
    else
    PActive:='False';
    Writeln(' ');
    Writeln('<========== RimmingtonMiner ============>');
    Writeln('<======= -'+VersionNumber+'- Progress Report ========>');
    Writeln('/=======================================\');
    Writeln(' Worked for '+ TimeRunning);
    Writeln(' Banked '+IntToStr(TotalLoads)+' loads.');
    Writeln(' Mined '+inttostr(OresMined)+(' ores.'));
    if(GemsReceived > 0)then
    Writeln(' Received '+IntToStr(GemsReceived)+(' gem.'));
    if(GasAvoided > 0)then
    Writeln(' Avoided gas '+IntToStr(GasAvoided)+(' time.'));
    Writeln('\=======================================/');
    Writeln(' Name : '+Players[CurrentPlayer].Name);
    Writeln(' Mining Lvl : '+IntToStr(Players[CurrentPlayer].Level[15]));
    Writeln(' Worked for : '+IntToStr(Players[CurrentPlayer].Worked)+' minutes.');
    Writeln(' Banked : '+IntToStr(Players[CurrentPlayer].Banked)+' time.');
    Writeln(' Active : '+PActive);
    Writeln(' Location : '+Players[CurrentPlayer].Loc);
    Writeln('\\-------------------------------------//');
    for I := 0 to HowManyPlayers-1 do
    begin
    if Players.Active then
    PActive:='True'
    else
    PActive:='False';
    SpaceNumber := 12 - Length(Players.Name);
    for K := 0 to SpaceNumber do
    Spaces := Spaces + ' ';
    Writeln(IntToStr(I)+': '+Players.Name + Spaces +
    '= ' + PActive + ', ' + IntToStr(Players.Banked) + ' Bank' +
    ', Worked ' + IntToStr(Players.Worked) + ' minutes, ' +
    'Loc: ' + Players.Loc);
    Spaces := '';
    end
    Writeln('<======================================== ==>');
    end;

    //-----------------------------------------------------------------\\
    { LoadImages - Loads the images in the memory ||
    \\-----------------------------------------------------------------//}
    procedure LoadImages;
    begin
    bmpOreMask := BitmapFromString(9, 8, 'z78DA333040076E6080C9C60' +
    'F064A17F17A71E9C2AFD70D03E09725DE4CF2DC0F00DCD05C 59');
    bmpClayMask := BitmapFromString(9, 6, 'z78DA33302016B88101F' +
    '12A4905B86CC1AF9E3CB7E1329F787F218B03004FC54795') ;
    bmpGemMask := BitmapFromString(23, 24, 'z78DA3330183EC00D0C686732' +
    'F10097AEC1E33BFC2EA77F08936AD7A84B465D428C8DA32E1 9750' +
    '931F68EBA6434B50C45978CCC929F785B68ED1E52CDA76E9B 90BA' +
    '7E74A3180CFE3E0200FDE18F27');
    dtmPaxes[1] := DTMFromString('78DA637463646008664001068A0C0C5C401 A2' +
    '8C3F01F0818C381AC40543536FE11703520C0E80B6479A0AA F149' +
    '2D405103000A07084F'); //Rune
    dtmPaxes[2] := DTMFromString('78DA631463646008634001068A0C0C5C401 A2' +
    '8C3F01F08183580AC405435561E56703520C028076479A0AA F188' +
    'F142510300D923076A'); //Addy
    dtmPaxes[3] := DTMFromString('78DA637CCEC0C010C680020C141918B8803 42' +
    '310FF0702C69F404620AA1A73F300B81A10607C0F243C50D5 B8BA' +
    'A7A3A8010086BD09E1'); //Mith
    dtmPaxes[4] := DTMFromString('78DA63DCC9C0C010CC80020C141918B8803 42' +
    '310FF0702C653404620AA9ACCA424B81A10603C00243C50D5 B4D6' +
    'D4A0A801007D560A4B'); //Steel
    dtmPaxes[5] := DTMFromString('78DA63EC62606008654001068A0C0C5C409 A1' +
    '188FF0301E36C202310558DBB93135C0D08304E04121EA86A A242' +
    '4250D400003C4908E3'); //Iron
    dtmPaxes[6] := DTMFromString('78DA638C62606008634001068A0C0C5C409 A1' +
    '188FF0301630E901188AAC6D1480EAE0604189380843BAA1A 3B2D' +
    '0614350000CD0781'); //Bronze
    dtmBanker := DTMFromString('78DA636C66626008634001972E5E66F80FA 41' +
    '981F83F1030B601D5C4A0AAF9F38789810BAA0604189B8850 D345' +
    '580D00CA7B110D'); //From GuildRaper
    dtmBank := DTMFromString('78DA630C64626030614001BBD64F61D000D 28' +
    'C40FC1F081863816A9C20724C50356FDF32C0D580006334A6 9A3F' +
    '7F9850D58403651C50D5FCFB278CAA260428E348C09C004C3 518E' +
    'E09C66F172B100300D8741716');
    end;

    //-----------------------------------------------------------------\\
    { KeepUpStats - Updates current statistics ||
    \\-----------------------------------------------------------------//}
    procedure KeepUpStats;
    begin
    ProgressReport;
    OresMined := OresMined + CountItemBmpMaskTol(bmpOreMask, 5, 5) + CountItemBmpMaskTol(bmpClayMask, 5, 5);
    ReportVars[0] := ReportVars[0] + CountItemBmpMaskTol(bmpOreMask, 5, 5) + CountItemBmpMaskTol(bmpClayMask, 5, 5);
    GemsReceived := GemsReceived + CountItemBmpMaskTol(bmpGemMask, 5, 5);
    ReportVars[3] := ReportVars[3] + CountItemBmpMaskTol(bmpGemMask, 5, 5);
    TotalLoads := TotalLoads + 1;
    ReportVars[1] := ReportVars[1] + 1;
    Players[CurrentPlayer].Banked := Players[CurrentPlayer].Banked + 1;
    end;

    //------------------------------------------------------------------------\\
    { PlayerLost - Logs out player when lost ||
    \\------------------------------------------------------------------------//}
    procedure PlayerLost(Info:string);
    begin
    Writeln('Player Lost, '+ Info);
    Logout;
    end;

    //-----------------------------------------------------------------\\
    { SetOreColor - Sets correct OreColor ||
    \\-----------------------------------------------------------------//}
    procedure SetOreColor;
    begin
    case LowerCase(Players[CurrentPlayer].String1) of
    'copper' : OreColor := CopperColor;
    'tin' : OreColor := TinColor;
    'clay' : OreColor := ClayColor;
    'iron' : OreColor := IronColor;
    'gold' : OreColor := GoldColor;
    end;
    if(OreColor = 0)then
    Writeln('String1 is NOT set properly or color is 0...');
    end;

    //-----------------------------------------------------------------\\
    { FindFastRandoms - Finds the randoms fast ||
    \\-----------------------------------------------------------------//}
    function FindFastRandoms: Boolean; // By WT-Fakawi.
    var
    i: Integer;
    begin
    for I := 1 to 11 do
    begin
    case I of
    1: if FindDead then
    Result := True;

    2: if FindMod then
    Result := True;

    3: if FindMime then
    Result := True;

    4: if FindMaze then
    Result := True;

    5: if FindQuiz then
    Result := True;

    6: if FindDemon then
    Result := True;

    7: begin
    if NoGameTab then
    begin
    Result := True;
    Players[CurrentPlayer].loc := 'No GameTab';
    Logout;
    Exit;
    end;
    end;

    8: begin
    if InBlack then
    begin
    Result := True;
    Players[CurrentPlayer].loc := 'InBlack';
    Logout;
    Exit;
    end;
    end;

    9 : if RC then
    Result := True;

    10 : if FindFight then
    begin
    Result := True;
    RunTo(RunDir, RunFar);
    end;

    11: if FindTalk then
    Result := True;
    end;
    Wait(1);
    end;
    end;

    //-----------------------------------------------------------------\\
    { SumFindPickHeadColor - Gets pickhead colors ||
    \\-----------------------------------------------------------------//}
    function SumFindPickHeadColor: Boolean;
    var
    InvPAxe, WieldPAxe, Ix, Iy, Wx, Wy: integer;
    begin
    GameTab(4);
    for InvPAxe := 1 to 7 do
    begin
    if(InvPAxe = 7)then
    Break;
    if(FindDtm(dtmPaxes[InvPAxe], Ix, Iy, MIX1, MIY1, MIX2, MIY2))then
    Break;
    end;
    GameTab(5);
    Wait(500);
    for WieldPAxe := 1 to 7 do
    begin
    if(WieldPAxe = 7)then
    Break;
    if(FindDtm(dtmPaxes[WieldPAxe], Wx, Wy, MIX1, MIY1, MIX2, MIY2))then
    Break;
    end;

    if(InvPAxe = 7)and(WieldPAxe = 7)then
    begin
    Result := False;
    Exit;
    end;
    if((InvPAxe-WieldPAxe) < 0)then
    EquipPick := False
    else
    EquipPick := True;
    Result := true;
    if(EquipPick)then
    begin
    GameTab(5);
    hc1 := GetColor(585, 295);
    hc2 := GetColor(597, 297);
    hc3 := GetColor(594, 296);
    hc4 := GetColor(588, 295);
    hc5 := GetColor(582, 294);
    end else
    begin
    GameTab(4);
    if(Ix > 592)and(Iy > 238)then
    Drag(Ix, Iy, 5, 5, 579, 227, 5, 5, true);
    FindDtm(dtmPaxes[InvPAxe], Ix, Iy, MIX1, MIY1, MIX2, MIY2);
    hc1 := GetColor(587, 216);
    hc2 := GetColor(587, 219);
    hc3 := GetColor(592, 222);
    hc4 := GetColor(584, 216);
    hc5 := GetColor(577, 219);
    end;
    WriteLn('Pick head colors... ' + IntToStr(hc1) + ' ' + IntToStr(hc2) + ' ' +
    IntToStr(hc3) + ' ' + IntToStr(hc4) + ' ' + IntToStr(hc5));
    end;

    //-----------------------------------------------------------------\\
    { SumFindRoadColor - Finds both road colors on the screen ||
    \\-----------------------------------------------------------------//}
    function SumFindRoadColor(FalaColor: Boolean): Integer;
    var
    arRoadPoints: TPointArray;
    GenericColor, a, b: Integer;
    arRoughRoadColors, arRoadColors: array of Integer;
    WeGotIt: Boolean;
    begin
    if(FalaColor)then
    GenericColor := 6057843
    else
    GenericColor := 5921377;
    ColorToleranceSpeed(2);
    SetColorspeed2Modifiers(10.0, 0.03);
    FindColorsTolerance(arRoadPoints, GenericColor, MMX1, MMY1, MMX2, MMY2, 50);
    ColorToleranceSpeed(1);
    arRoughRoadColors := GetColors(arRoadPoints);
    for a := 0 to GetArrayLength(arRoughRoadColors) - 1 do
    begin
    WeGotIt := False;
    if(arRoughRoadColors[a] > 5000000)and(arRoughRoadColors[a] < 8000000)then
    begin
    for b := 0 to GetArrayLength(arRoadColors) - 1 do
    begin
    if(arRoadColors = arRoughRoadColors[a])then
    WeGotIt := True;
    end;
    if not(WeGotIt)then
    begin
    if(CountColor(arRoughRoadColors[a], MMX1, MMY1, MMX2, MMY2) > 200)then
    begin
    Writeln(IntToStr(arRoughRoadColors[a]));
    SetArrayLength(arRoadColors, GetArrayLength(arRoadColors) + 1);
    arRoadColors[GetArrayLength(arRoadColors) - 1] := arRoughRoadColors[a];
    end;
    end;
    end;
    end;
    if not(GetArrayLength(arRoadColors) = 1)then
    begin
    Writeln('Failed to find the road using SumFindRoadColor.');
    Writeln('Trying default autocoloring.');
    if(FalaColor)then
    Result := FindFallyRoadColor
    else
    Result := FindRoadColor;
    end else
    Result := arRoadColors[0];
    Writeln('RoadColor = '+IntToStr(Result));
    if(Result = 0)then
    begin
    Writeln('Failed to find the road color.');
    Writeln('Leaving it what it was.');
    if(FalaColor)then
    Result := FalaRoadColor
    else
    Result := RoadColor;
    end;
    end;

    function ColorsAtColor(CPoint: TPoint; Color: Integer; Colors: TIntegerArray): Boolean;
    var // <3 Wizzup
    I: Integer;
    begin
    if CountColor(Color, CPoint.X - 8, CPoint.Y - 8, CPoint.X + 8, CPoint.Y + 8) > 8 then
    begin
    for I := 0 to GetArrayLength(Colors) - 1 do
    if(CountColor(Colors, CPoint.X - 8, CPoint.Y - 8, CPoint.X + 8, CPoint.Y + 8) > 4)Then
    begin
    if(Colors <> Color)then
    begin
    WriteLn('Found Color ' +IntToStr(Colors) + ' too.');
    Result := True;
    Exit;
    end;
    end;
    end;
    end;

    function NumInArray(Num: Integer; TheArray: TIntegerArray): Boolean;
    var // <3 Wizzup
    I, TheArrayLength: Integer;
    begin
    TheArrayLength := GetArrayLength(TheArray) - 1;
    for I := 0 to TheArrayLength do
    begin
    if Num = TheArray then
    begin
    Result := True;
    Exit;
    end;
    end;
    end;

    function ColorsTol(C1, C2: Integer): integer;
    var // <3 Wizzup
    I : integer;
    begin
    for I := 0 to 255 do
    if SimilarColors(C1, C2, I) then Break;
    if I <> 255 then Result := I;
    end;

    Type
    AColor = Record
    Color: Integer;
    Amount: Integer;
    Point: TPoint;
    End;

    var
    Colors: array of AColor;

    function GetRockColor: Integer;
    var // <3 Wizzup
    Points, PosResultsP, PosResults2P: TPointArray;
    Found: array of TPointArray;
    CColors, PosResults, PosResults2: array of Integer;
    I: Integer;
    H, S, L: Extended;
    begin
    ColorToleranceSpeed(2);
    SetColorSpeed2Modifiers(0.9, 0.2);
    FindColorsTolerance(Points, 5266264, 540, 5, 740, 155, 60);
    //WriteLn('P2 Found ' + IntToStr(GetArrayLength(Points)));
    CColors := GetColors(Points);
    //WriteLn('Colors Found ' + IntToStr(GetArrayLength(CColors)));

    SetArrayLength(Colors, GetArrayLength(CColors));
    for I := 0 to GetArrayLength(CColors) - 1 do
    begin
    Colors.Color := CColors;
    Colors.Point := Points;
    end;

    for I := 0 to GetArrayLength(Colors) - 1 do
    begin
    ColorToHSL(Colors[i].Color, H, S, L);
    //If ((L > 15) And (L < 40) And (S < 50)) Then
    if((L > 15)and(L < 40)and(S < 50)and(H > 10)and(H < 95))then
    if not NumInArray(Colors[i].Color, PosResults)then
    begin
    SetArrayLength(PosResults, GetArrayLength(PosResults) + 1);
    PosResults[GetArrayLength(PosResults) - 1] := Colors[i].Color;
    SetArrayLength(PosResultsP, GetArrayLength(PosResultsP) + 1);
    PosResultsP[GetArrayLength(PosResultsP) - 1] := Colors[i].Point;
    end;
    end;
    for I := 0 to GetArrayLength(PosResults) - 1 do
    begin
    SetArrayLength(Found, GetArraylength(Found) + 1);
    FindColorsTolerance(Found[i], PosResults[i], 540, 5, 740, 155, 0);
    {WriteLn('Possible Colors['+IntToStr(I) + '] F ' +
    IntToStr(GetArrayLength(Found[i])) + ' = '+
    IntToStr(PosResults[i])+ ' With a tol of ' +
    IntToStr(ColorsTol(PosResults[i], 5266264)));}
    end;

    for I := 0 to GetArrayLength(PosResults) - 1 do
    begin
    if (GetArrayLength(Found[i]) > 5) and (GetArrayLength(Found[i]) < 400)then
    begin
    if (ColorsAtColor(PosResultsP[i], PosResults[i], PosResults))and
    (rs_OnMiniMap(PosResultsP[i].X, PosResultsP[i].Y))then
    begin
    SetArrayLength(PosResults2, GetArrayLength(PosResults2) + 1);
    PosResults2[GetArrayLength(PosResults2) - 1] := PosResults[i];
    SetArrayLength(PosResults2P, GetArrayLength(PosResults2P) + 1);
    PosResults2P[GetArrayLength(PosResults2P) - 1] := PosResultsP[i];
    end;
    end;
    end;

    for I := 0 to GetArrayLength(PosResults2) - 1 do
    begin
    ColorToHSL(PosResults2[i], H, S, L);
    {WriteLn('Possible Colors2['+IntToStr(I) + '] F ' +
    IntToStr(GetArrayLength(Found[i])) + ' = '+
    IntToStr(PosResults2[i]) + ' H ' + FloatToStr(H) + ' S ' +FloatToStr(S)
    + ' L ' + FloatToStr(L));
    Wait(500);}
    Result := PosResults[i];
    if(Result > 0)then
    Break;
    end;
    end;

    //-----------------------------------------------------------------\\
    { SumCheckGas - Checks if there is gas ||
    \\-----------------------------------------------------------------//}
    function SumCheckGas(rx, ry: Integer): Boolean;
    var
    TempMouseSpeed, GasTime: Integer;
    begin
    Result := FindGas(rx, ry - 20);
    if(Result)then
    begin
    Writeln('Gas found!');
    TempMouseSpeed := MouseSpeed;
    MouseSpeed := 5;
    MouseFindNoFlag(MMCX, MMCY + 4, 1, 1);
    MarkTime(GasTime);
    MouseSpeed := TempMouseSpeed;
    while(TimeFromMark(GasTime) < 35000)do
    if(Random(20) > 15)then
    IdleTime(500, 500, 0.4)
    else
    Wait(500 + Random(500));
    GasAvoided := GasAvoided + 1;
    ReportVars[2] := ReportVars[2] + 1;
    end;
    end;

    //-----------------------------------------------------------------\\
    { getArrayFromBox - Gets colors in groups ||
    \\-----------------------------------------------------------------//}
    function getArrayFromBox(arColor: TPointArray; Width, Height: Integer): TPointArray;
    var
    Count, Count3: Integer;
    DoNotAccept : Boolean;
    begin
    SetArrayLength(Result, 1);
    Result[0] := arColor[0];

    for Count := 1 to GetArrayLength(arColor) - 1 do
    begin
    if(arColor[Count].x < arColor[Count - 1].x + Width)and
    (arColor[Count].y < arColor[Count - 1].y + Height)and
    (arColor[Count].x > arColor[Count - 1].x - Width)and
    (arColor[Count].y > arColor[Count - 1].y - Height)then
    else
    begin
    DoNotAccept := False;
    for Count3 := 0 to GetArrayLength(Result) - 1 do
    begin
    if (arColor[Count].x < Result[Count3].x + Width)and
    (arColor[Count].y < Result[Count3].y + Height)and
    (arColor[Count].x > Result[Count3].x - Width)and
    (arColor[Count].y > Result[Count3].y - Height)then
    DoNotAccept := True;
    if DoNotAccept then
    Break;
    end;
    if (DoNotAccept = False) then
    begin
    SetArrayLength(Result, GetArrayLength(Result) + 1);
    Result[GetArrayLength(Result) - 1] := arColor[Count];
    end;
    end;
    end;
    end;

    //-----------------------------------------------------------------\\
    { IsOre - Did we found an ore or a rock ? ||
    \\-----------------------------------------------------------------//}
    function IsOre(rx, ry: Integer): Boolean;
    begin
    Result := FindColorSpiralTolerance(x, y, 4481401, rx - 5, ry - 5, rx + 5, ry + 5, 5);
    end;

    //-----------------------------------------------------------------\\
    { FindRockCenter - Finds the rock center ||
    \\-----------------------------------------------------------------//}
    function FindRockCenter(var RockPoint: TPoint; RockColor, BoxSize, RockMinimum: Integer): Boolean;
    var
    c, MaxTime: Integer;
    arRoughRockPoints, arRockPoints: TPointArray;
    begin
    FindColorsSpiralTolerance(MSCX, MSCY, arRoughRockPoints, RockColor, MSX1, MSY1, MSX2, MSY2, 5);
    if(GetArrayLength(arRoughRockPoints) < 1)then
    Exit;
    MarkTime(MaxTime);
    for c := 0 to GetArrayLength(arRoughRockPoints) - 1 do
    begin
    if not(IsOre(arRoughRockPoints[c].x, arRoughRockPoints[c].y))then
    begin
    RockPoint.x := 0;
    RockPoint.y := 0;
    ColorToleranceSpeed(2);
    SetColorspeed2Modifiers(0.4, 0.4);
    FindColorsTolerance(arRockPoints, 940676, arRoughRockPoints[c].x - BoxSize, arRoughRockPoints[c].y - BoxSize, arRoughRockPoints[c].x + BoxSize, arRoughRockPoints[c].y + BoxSize, 3);
    for a := 0 to GetArrayLength(arRockPoints) - 1 do
    begin
    RockPoint.x := RockPoint.x + arRockPoints[a].x;
    RockPoint.y := RockPoint.y + arRockPoints[a].y;
    end;
    if(GetArrayLength(arRockPoints) <> 0)and
    (RockPoint.x <> 0)and(RockPoint.y <> 0)then
    begin
    RockPoint.x := RockPoint.x / GetArrayLength(arRockPoints);
    RockPoint.y := RockPoint.y / GetArrayLength(arRockPoints);
    MMouse(RockPoint.x, RockPoint.y, 5, 5);
    ColorToleranceSpeed(1);
    Result := (GetArrayLength(arRockPoints) > RockMinimum)and
    (IsUpText('Mine'));
    end;
    if(Result)or(TimeFromMark(MaxTime) > 5000)then
    Break;
    Wait(100);
    end;
    end;
    end;

    //-----------------------------------------------------------------\\
    { FindRockCenterBetter - Gets the center using a coordinate ||
    \\-----------------------------------------------------------------//}
    function FindRockCenterBetter(var RockPoint: TPoint; rx, ry, BoxSize, RockMinimum: Integer): Boolean;
    var
    fx, fy: Integer;
    arRockPoints: TPointArray;
    begin
    if not(FindColorSpiralTolerance(fx, fy, 940676, rx - 5, ry - 5, rx + 5, ry + 5, 5))then
    begin
    fx := rx;
    fy := ry;
    end;
    RockPoint.x := 0;
    RockPoint.y := 0;
    ColorToleranceSpeed(2);
    SetColorspeed2Modifiers(0.4, 0.4);
    FindColorsTolerance(arRockPoints, 940676, fx - BoxSize, fy - BoxSize, fx + BoxSize, fy + BoxSize, 3);
    for a := 0 to GetArrayLength(arRockPoints) - 1 do
    begin
    RockPoint.x := RockPoint.x + arRockPoints[a].x;
    RockPoint.y := RockPoint.y + arRockPoints[a].y;
    end;
    if(GetArrayLength(arRockPoints) <> 0)and
    (RockPoint.x <> 0)and(RockPoint.y <> 0)then
    begin
    RockPoint.x := RockPoint.x / GetArrayLength(arRockPoints);
    RockPoint.y := RockPoint.y / GetArrayLength(arRockPoints);
    Result := GetArrayLength(arRockPoints) > RockMinimum;
    end;
    ColorToleranceSpeed(1);
    end;

    //-----------------------------------------------------------------\\
    { RockGone - Did we lost the rock ? ||
    \\-----------------------------------------------------------------//}
    function RockGone(rx, ry: Integer): Boolean;
    begin
    Result := not FindColorSpiralTolerance(rx, ry, OreColor, rx - 10, ry - 10, rx + 10, ry + 10, 10);
    end;

    //-----------------------------------------------------------------\\
    { GetNewPick - Goes to get a new pick from the bank ||
    \\-----------------------------------------------------------------//}
    procedure MineToBank; forward;
    procedure BankToMine; forward;
    procedure SLBank(WithdrawNewPick: Boolean); forward;
    procedure GetNewPick;
    begin
    MineToBank;
    SLBank(True);
    BankToMine;
    end;

    //-----------------------------------------------------------------\\
    { WorkUntilMined - Loops until we're done mining ||
    \\-----------------------------------------------------------------//}
    procedure WorkUntilMined(wx, wy, InvSpot: Integer);
    var
    i, MineTime: Integer;
    begin
    MarkTime(MineTime);
    while(LoggedIn)do
    begin
    for i := 0 to 6 do
    begin
    case i of
    0 : if not(FindPick)then
    begin
    Writeln('We lost our pick axe.');
    Break;
    end;
    1 : if(FindFastRandoms)then
    Break;
    2 : if(SumCheckGas(wx, wy))then
    Break;
    3 : if(ExistsItem(InvSpot))then
    Exit;
    4 : if(RockGone(wx, wy))then
    Exit;
    5 : if(TimeFromMark(MineTime) > MaxSecRock * 1000)then
    Exit;
    6 : if(NoPick)then
    GetNewPick;
    end;
    Wait(1);
    end;
    if(Random(100) > 90)then
    IdleTime(500, 500, 0.4);
    end;
    PlaySound('C:\WINDOWS\Media\winAquariumCritStop.wa v');
    end;

    //-----------------------------------------------------------------\\
    { UpdateRockCoord - Updates the coord of the rock ||
    \\-----------------------------------------------------------------//}
    function UpdateRockCoord(var ux, uy: Integer; UColor: Integer): Boolean;
    var
    FailSafeTime, i: Integer;
    RockPoint: TPoint;
    begin
    if not(FlagPresent)then
    begin
    Result := True;
    Exit;
    end;
    MarkTime(FailSafeTime);
    while(FindColorSpiralTolerance(ux, uy, UColor, ux - 20, uy - 20, ux + 20, uy + 20, 10))and
    (TimeFromMark(FailSafeTime) < 20000)and
    (FlagPresent)do
    begin
    Result := FindRockCenterBetter(RockPoint, ux, uy, BoxSize, MinCount);
    Wait(16);
    ux := RockPoint.x;
    uy := RockPoint.y;
    end;
    for i := 0 to 62 do
    begin
    Result := FindRockCenterBetter(RockPoint, ux, uy, BoxSize, MinCount);
    Wait(8);
    ux := RockPoint.x;
    uy := RockPoint.y;
    end;
    end;

    //-----------------------------------------------------------------\\
    { SumMine - Mines the rock ||
    \\-----------------------------------------------------------------//}
    function SumMine: Boolean;
    var
    rx, ry, InvSpot: Integer;
    RockPoint: TPoint;
    begin
    Result := FindRockCenter(RockPoint, OreColor, BoxSize, MinCount);
    if(Result)then
    begin
    if(SumCheckGas(RockPoint.x, RockPoint.y))then
    Exit;
    for InvSpot := 1 to 28 do
    if not(ExistsItem(InvSpot))then
    Break;
    GetMousePos(rx, ry);
    if Random (20) < 19 then
    Mouse(rx, ry, 0, 0, True)
    else begin
    Mouse(rx, ry, 0, 0, False);
    ChooseOption(x, y, 'Mine');
    end;
    if not(UpdateRockCoord(RockPoint.x, RockPoint.y, GetColor(RockPoint.x, RockPoint.y)))then
    Exit;
    WorkUntilMined(RockPoint.x, RockPoint.y, InvSpot);
    end;
    end;

    //-----------------------------------------------------------------\\
    { GoToCorrectSpot - Goes to the correct spot ||
    \\-----------------------------------------------------------------//}
    procedure GoToCorrectSpot;
    begin
    if(RockColor = 0)then
    begin
    if(AutoMMRockColor)then
    RockColor := GetRockColor
    else
    RockColor := NormalRockMMColor;
    Writeln('RockColor = ' + IntToStr(RockColor));
    end;
    case OreColor of
    TinColor :
    begin
    RadialWalk(RockColor, 90, 130, 100, -1, -1);
    Flag;
    end;
    IronColor :
    begin
    RadialWalk(RockColor, 250, 290, 100, 1, 0);
    Flag;
    end;
    ClayColor :
    begin
    RadialWalk(CopperRockMMColor, 50, 120, 70, 1, 0);
    Flag;
    end;
    GoldColor :
    begin
    RadialWalk(RockColor, 170, 210, 100, 1, 0);
    Flag;
    end;
    end;
    end;

    //-----------------------------------------------------------------\\
    { SumFindBank - Finds falador bankers on MM ||
    \\-----------------------------------------------------------------//}
    function SumFindBank(var bx, by: Integer): Boolean;
    var
    a, b, c, HighestCount: Integer;
    arRoughBankCoords, HighestArray: TPointArray;
    arBankCoords: array of TPointArray;
    WeGotIt: Boolean;
    begin
    ColorToleranceSpeed(0);
    FindColorsTolerance(arRoughBankCoords, 195836, MMX1, MMY1 + 40, MMX2, MMY2, 5);
    for a := 0 to GetArrayLength(arRoughBankCoords) - 1 do
    begin
    WeGotIt := False;
    for b := 0 to GetArrayLength(arBankCoords) - 1 do
    begin
    for c := 0 to GetArrayLength(arBankCoords[b]) - 1 do
    begin
    if(arRoughBankCoords[a].y > arBankCoords[b][c].y - 5)and
    (arRoughBankCoords[a].y < arBankCoords[b][c].y + 5)then
    begin
    SetArrayLength(arBankCoords[b], GetArrayLength(arBankCoords[b]) + 1);
    arBankCoords[b][GetArrayLength(arBankCoords[b]) - 1] := arRoughBankCoords[a];
    WeGotIt := True;
    Break;
    end;
    end;
    end;
    if not(WeGotIt)then
    begin
    SetArrayLength(arBankCoords, GetArrayLength(arBankCoords) + 1);
    SetArrayLength(arBankCoords[GetArrayLength(arBankCoords) - 1], GetArrayLength(arBankCoords[GetArrayLength(arBankCoords) - 1]) + 1);
    arBankCoords[GetArrayLength(arBankCoords) - 1][0] := arRoughBankCoords[a];
    end;
    end;
    for a := 0 to GetArrayLength(arBankCoords) - 1 do
    begin
    if(GetArrayLength(arBankCoords[a]) > HighestCount)then
    begin
    HighestArray := arBankCoords[a];
    HighestCount := GetArrayLength(arBankCoords[a]);
    end;
    end;
    if(GetArrayLength(HighestArray) > 15)then
    begin
    Result := True;
    for a := 0 to GetArrayLength(HighestArray) - 1 do
    begin
    bx := bx + HighestArray[a].x;
    by := by + HighestArray[a].y;
    end;
    bx := bx / GetArrayLength(HighestArray);
    by := (by / GetArrayLength(HighestArray)) - 10;
    end;
    ColorToleranceSpeed(1);
    end;

    //-----------------------------------------------------------------\\
    { BankToMine - Walks to the mine ||
    \\-----------------------------------------------------------------//}
    procedure BankToMine;
    var
    MaxTime: Integer;
    begin
    if not(LoggedIn)then
    Exit;
    if(FalaRoadColor = 0)or(not(FindColor(x, y, FalaRoadColor, MMX1, MMY1, MMX2, MMY2)))then
    FalaRoadColor := SumFindRoadColor(True);
    RadialWalk(FalaRoadColor, 210, 250, 70, 0, -1);
    FFlag(5);
    MarkTime(MaxTime);
    repeat;
    if not(FindColor(x, y, FalaRoadColor, MMX1, MMY1, MMX2, MMY2))then
    FalaRoadColor := SumFindRoadColor(True);
    RadialWalk(FalaRoadColor, 160, 210, 40, 0, -1);
    FFlag(5);
    until((not(FindColor(x, y, FalaRoadColor, MMCX - 20, MMCY + 10, MMX2, MMY2)))and
    (FindColor(x, y, FalaRoadColor, MMX1, MMY1, MMX2, MMY2)))or
    (TimeFromMark(MaxTime) > 90000);
    if(TimeFromMark(MaxTime) > 90000)then
    PlayerLost('timed out (1)');
    if(RoadColor = 0)or(not(FindColor(x, y, RoadColor, MMX1, MMY1, MMX2, MMY2)))then
    RoadColor := SumFindRoadColor(False);
    MarkTime(MaxTime);
    while(not(FindColor(x, y, CopperRockMMColor, MMX1, MMY1, MMX2, MMY2)))and
    (TimeFromMark(MaxTime) < 90000)do
    begin
    if not(RadialRoadWalk(RoadColor, 160, 280, 50, 0, -1))then
    RoadColor := SumFindRoadColor(False);
    FFlag(5);
    end;
    if(TimeFromMark(MaxTime) > 90000)then
    PlayerLost('timed out (2)');
    MouseFindNoFlag(x, y, 0, -1);
    Flag;
    if not(OreColor = CopperColor)then
    begin
    if(MiningSiteColor = 0)then
    begin
    MiningSiteColor := GetSymbolColor(x, y, 'mining site');
    if(MiningSiteColor = 0)then
    begin
    Writeln('MiningSiteColor not found, terminating.');
    TerminateScript;
    end else
    Writeln('MiningSiteColor = '+IntToStr(MiningSiteColor));
    end else
    if not(FindColor(x, y, MiningSiteColor, MMX1, MMY1, MMX2, MMY2))then
    begin
    MouseFindNoFlag(MMCX + 20, MMCY + 20, -1, -1);
    Flag;
    if not(FindColor(x, y, MiningSiteColor, MMX1, MMY1, MMX2, MMY2))then
    begin
    PlayerLost('Couldnt''t find the mine.');
    Exit;
    end;
    end;
    Mouse(x, y, 10, 10, True);
    Flag;
    GoToCorrectSpot;
    end;
    end;

    //-----------------------------------------------------------------\\
    { MineToBank - Walks to the bank ||
    \\-----------------------------------------------------------------//}
    procedure MineToBank;
    var
    MaxTime, bx, by: Integer;
    begin
    if not(LoggedIn)then
    Exit;
    if not(OreColor = CopperColor)then
    begin
    if(MiningSiteColor = 0)then
    begin
    MiningSiteColor := GetSymbolColor(x, y, 'mining site');
    end else
    if(FindColor(x, y, MiningSiteColor, MMX1, MMY1, MMX2, MMY2))then
    begin
    Mouse(x, y, 20, 20, True);
    Flag;
    if(FindColor(x, y, CopperRockMMColor, MMX1, MMY1, MMX2, MMY2))then
    begin
    Mouse(x, y, 3, 3, True);
    Flag;
    end else
    PlayerLost('Failed to find the Copper Rock');
    end else
    PlayerLost('Failed to find the Mining Site Symbol');
    end;
    MarkTime(MaxTime);
    repeat;
    if not(RadialRoadWalk(RoadColor, 340, 450, 70, 0, 2))then
    begin
    Mouse(MMCX, MMCY - 30, 5, 5, True);
    RoadColor := SumFindRoadColor(False);
    RadialRoadWalk(RoadColor, 340, 450, 70, 0, 2);
    Flag;
    end else
    Break;
    FFlag(5);
    until(TimeFromMark(MaxTime) > 30000);
    if(TimeFromMark(MaxTime) > 30000)then
    PlayerLost('timed out (3)');
    FFlag(5);
    MarkTime(MaxTime);
    while((FindColor(x, y, RoadColor, MMX1, MMY1, MMX2, MMCY - 20))or
    (not FindColor(x, y, RoadColor, MMX1, MMY1, MMX2, MMY2)))and
    (TimeFromMark(MaxTime) < 90000)and
    (LoggedIn)do
    begin
    if not(RadialRoadWalk(RoadColor, 355, 495, 50, 0, -1))then
    RoadColor := SumFindRoadColor(False);
    FFlag(5);
    end;
    if(TimeFromMark(MaxTime) > 90000)then
    PlayerLost('timed out (4)');
    MarkTime(MaxTime);
    repeat;
    if not(RadialWalk(FalaRoadColor, 330, 380, 40, 0, -1))then
    begin
    FalaRoadColor := SumFindRoadColor(True);
    RadialWalk(FalaRoadColor, 0, 70, 40, -1, 0);
    end;
    Flag;
    Wait(200+Random(200));
    until(SumFindBank(bx, by))and
    (not(FindColor(x, y, RoadColor, MMX1, MMY1, MMX2, MMY2)))or
    (TimeFromMark(MaxTime) > 90000);
    Mouse(bx, by, 3, 3, True);
    if(TimeFromMark(MaxTime) > 90000)then
    PlayerLost('timed out (5)');
    Flag;
    if(FindDtmRotated(dtmBanker, x, y, MMX1, MMY1, MMX2, MMY2, 0, pi*2, 0.1, AngleVar))then
    begin
    MouseFindNoFlag(x, y, 1, 0);
    Flag;
    if(FlagPresent)then
    Wait(500 + Random(200));
    end;
    end;

    //------------------------------------------------------------------------\\
    { GetBestPaxe - Finds the best paxe in the bank ||
    \\------------------------------------------------------------------------//}
    function GetBestPaxe(var x, y : integer) : Boolean;
    var
    I : integer;
    begin
    FixBank;
    for I := 1 to 7 do
    begin
    if(I = 7)then
    Break;
    if(FindDtm(dtmPaxes[i], x, y, MSX1, MSY1, MSX2, MSY2))then
    begin
    Result := True;
    Break;
    end;
    end;
    if(I = 7)then
    begin
    CloseBank;
    PlayerLost('No Paxe in the bank');
    end;
    end;

    //------------------------------------------------------------------------\\
    { SLOpenBank - Opens the bank, thnx to Lorax, made by me ||
    \\------------------------------------------------------------------------//}
    function SLOpenBank: Boolean;
    var
    BankTime, I: Integer;
    arBankColor, arBankColorResults: TPointArray;
    begin
    if LoggedIn then
    begin
    Wait(500);
    MarkTime(BankTime);
    while(not(BankScreen))and(TimeFromMark(BankTime) < 20000)do
    begin
    FindColorsSpiralTolerance(MSCX, MSCY, arBankColor, 4679037, MSX1, MSCY, MSX2, MSY2, 10);
    if(GetArrayLength(arBankColor) = 0)then
    Break;
    arBankColorResults := getArrayFromBox(arBankColor, 40, 40);
    for I := 1 to GetArrayLength(arBankColorResults)-1 do
    begin
    if not(LoggedIn)then Exit;
    Flag;
    Wait(100 + Random(100));
    MMouse(arBankColorResults[i].x, arBankColorResults[i].y, 5, 5);
    if(IsUpTextMulti('se Ban', 'ank b', 'booth'))then
    begin
    GetMousePos(x, y);
    Mouse(x, y, 2, 2, false);
    Wait(100+Random(100));
    ChooseOption(x, y, 'uickly');
    Wait(100+Random(100));
    Flag;
    Wait(1000 + Random(500));
    end;
    if(PinScreen)then
    if not(InPin(PinNumber))then
    Writeln('Pin Failed.');
    if(BankScreen)or(TimeFromMark(BankTime) > 20000)then
    Break;
    end;
    end;
    Result := BankScreen;
    end;
    end;

    //------------------------------------------------------------------------\\
    { SLBank - Main banking procedure ||
    \\------------------------------------------------------------------------//}
    procedure SLBank(WithdrawNewPick: Boolean);
    var
    dtmOre: Integer;
    begin
    if LoggedIn then
    begin
    if(WithdrawNewPick)then
    begin
    if(InvCount = 28)then
    begin
    dtmOre := DTMFromString('78DA63DCCBC0C0F08C0105989828C1D9FF8 18' +
    '0711D90F198010D302291407A0F90F84C40CD29207197809A E340' +
    'E2157E3500FA360CCF');
    if(FindDtm(dtmOre, x, y, MIX1, MIY1, MIX2, MIY2))then
    begin
    Mouse(x, y, 5, 5, false);
    ChooseOption(x, y, 'rop');
    end;
    FreeDtm(dtmOre);
    end;
    GameTab(5);
    Mouse(591, 304, 10, 10, true);
    GameTab(4);
    end;
    SLOpenBank;
    if(not BankScreen)then
    begin
    if(FindDtmRotated(dtmBanker, x, y, MMX1, MMY1, MMX2, MMY2, 0, pi*2, 0.1, AngleVar))then
    begin
    MouseFindNoFlag(x, y, 1, 0);
    Flag;
    if(FlagPresent)then
    Wait(500 + Random(200));
    end;
    if not(OpenBankQuiet('feb'))then
    begin
    Wait(500);
    if not(BankScreen)then
    begin
    PlayerLost('couldnt open the bank.');
    Exit;
    end;
    end;
    end;
    FixBank;
    if(EquipPick)or(WithdrawNewPick)then
    begin
    DepositAll;
    DepositAll;
    end else
    Deposit(2, 28, 2);
    if(WithdrawNewPick)then
    begin
    if(GetBestPAxe(x, y))then
    begin
    Mouse(x, y, 5, 5, true);
    Wait(200+Random(300));
    end;
    end;
    CloseBank;
    Wait(200+Random(200));
    if(BankScreen)then
    CloseBank;
    if(WithdrawNewPick)then
    begin
    if(FindColorTolerance(x, y, 876930, MIX1, MIY1, MIX2, MIY2, 10))then
    Mouse(x, y, 4, 4, True);
    Wait(400 + Random(400));
    if not(SumFindPickHeadColor)then
    PlayerLost('You dont have an axe');
    end;
    end;
    end;

    //-----------------------------------------------------------------\\
    { TimeToSwitchPlayers - Is it time to switch players ? ||
    \\-----------------------------------------------------------------//}
    function TimeToSwitchPlayers: boolean;
    begin
    if(TimeFromMark(RunTime) / 60 / 1000 > MinutesPerPlayer)then
    begin
    Result := True;
    WriteLn('Time is up');
    end else
    Result := False;
    end;

    //-----------------------------------------------------------------\\
    { Signature - My trade mark ||
    \\-----------------------------------------------------------------//}
    procedure Signature;
    begin
    Writeln(' _______ __ __ __');
    Writeln(' / _____/__ __ _____ |__| |__| ___ ____');
    Writeln(' \___ \| | \/ \| | | |/ _ \/ \');
    Writeln(' / \ | / Y Y \ | | ( <_> ) | \');
    Writeln('/_____ /____/|__|_| /__|__|__|\___/|__| /');
    Writeln(' \/ \/ \/');
    Writeln('Scripts Brings You:');
    Writeln(' Sumilions Rimmington Miner');
    end;

    //-----------------------------------------------------------------\\
    { SetupScript - Sets up the script. ||
    \\-----------------------------------------------------------------//}
    procedure SetupScript;
    begin
    SetupSRL;
    SetupSRLMining;
    ScriptID := '166';
    RCMaster := RemoteMaster;
    if(SRLStatsID <> '')then
    SRLID := SRLStatsID;
    if(SRLStatsPW <> '')then
    SRLPassword := SRLStatsPW;
    LoadImages;
    DeclarePlayers;
    MinCount := TheMinCount;
    BenMouse := UseBenMouse;
    CurrentPlayer := StartPlayer;
    ClearDebug;
    Signature;
    CheckUserNicks;
    Wait(500);
    ActivateClient;
    Wait(500);
    end;

    //-----------------------------------------------------------------\\
    { SetupUser - Sets up the current user. ||
    \\-----------------------------------------------------------------//}
    procedure SetupUser;
    begin
    if not(LoggedIn)then
    LoginPlayer;
    MakeCompass('N');
    HighestAngle;
    if not(SumFindPickHeadColor)then
    begin
    Writeln('No PickAxe found...');
    Writeln('Make sure your at V-Bright');
    LogOut;
    end;
    GameTab(2);
    Players[CurrentPlayer].Level[15] := GetSkillLevel('mining');
    PinNumber := Players[CurrentPlayer].String2;
    SetOreColor;
    GameTab(4);
    MarkTime(RunTime);
    end;

    //-----------------------------------------------------------------\\
    { MainLine - The magic is down here. ||
    \\-----------------------------------------------------------------//}
    begin
    SetupScript;
    repeat;
    SetupUser;
    repeat;
    BankToMine;
    SetRun(True);
    while(LoggedIn)and
    (not(InvFull))and
    (not(TimeToSwitchPlayers))do
    begin
    if not(SumMine)then
    if(Random(100) > 85)then
    IdleTime(500, 500, 0.4);
    Wait(16);
    FindNormalRandoms;
    Wait(16);
    end;
    SetRun(False);
    GameTab(4);
    MineToBank;
    KeepUpStats;
    SLBank(False);
    PlayerStatus := LoggedIn;
    if(TimeToSwitchPlayers)then
    LogOut;
    until not(LoggedIn);
    NextPlayer(PlayerStatus);
    until not(Players[CurrentPlayer].Active);
    Writeln('All players are false.');
    end



    [COLOR="Yellow"]There wasn't really anything I could Fill in, But i have highlighted where you put what in and I have changed the amount of players to "1"

    Enter your username
    Password
    And Bankpin

    For example, where it says

    Players[0].Pass := 'Password'; // The corresponding password

    Enter your password in between the two '''s

    Players[0].Pass := 'Password in here'; // The corresponding password

    [/COLOR][/i][/i][/i][/b][/b][/b][/b][/b][/b][/b][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
     
< scripts for scar 3.13? | srl forums not letting me download srl >

Users viewing this thread
1 guest


 
 
Adblock breaks this site