Page 5 of 5 FirstFirst ... 345
Results 101 to 111 of 111

Thread: Rimmington Auto Miner ~Tin, Copper, Iron, and Gold

  1. #101
    Join Date
    Jul 2007
    Posts
    7
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I read through the thread and couldnt find this problem, but everyscript i run shows this error, and its the only error:

    Line 303: [Error] (5002:11): Unknown identifier 'ScanExactMinimapD' in script C:\ Program Files\SCAR 3.06\includes\srl\srl\core\Color.scar

    Im running the very newest version of Scar and the newest version of SRL. It used to say that it coudlnt find Mining.scar but I took care of that problem. Now how to I fix this?

  2. #102
    Join Date
    Jun 2007
    Posts
    76
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    shudnt u read teh first page?

  3. #103
    Join Date
    Jul 2007
    Posts
    33
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Just add the original autominer.
    Add new random finder.
    Add anitban/mouse continual mover.
    Add colors of ore that u want to mine using scars color finder.
    Last change path direction as you hit the reminton mine,.

    Just read the code and you will absolutely figure it out. Just take the time to over look it carefully. Ill post one here for you but ill let you work on one problem.

    I have it set for copper as u walk in! One thing you shall work on to learn is the gap between the road and the actuall mine. Take a few moments to figure it out. Then youll be on your way to writing your own. This was not originally made by so i take no credit im creating it.

    {================================================= ==================]
    [ 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 = 5343966; // You HAVE to fill this in, it wont work otherwise.
    NormalRockMMColor = 936558; // 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 = 60; // 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 := 'your name here'; // Your Runescape name
    Players[0].Pass := 'your pass here'; // The corresponding password
    Players[0].Nick := 'three letters from your name here do not use first letter or _ or n's'; // 3-4 letters from your name, NO CAPITALS (that includes the first character)
    Players[0].String1 := 'Copper'; // Type of ore to mine (Clay / Copper / Tin / Iron / Gold)
    Players[0].String2 := '0000'; // Your BankPinNumber
    Players[0].Active := True;
    end;

    //********RockColor Settings********\\
    const
    CopperColor = 5343966;
    TinColor = 10592685;
    ClayColor = 7712718;
    IronColor = 2437457;
    GoldColor = 1817573;

    //********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[s].');
    Writeln(' Mined '+inttostr(OresMined)+(' ores.'));
    if(GemsReceived > 0)then
    Writeln(' Received '+IntToStr(GemsReceived)+(' gem[s].'));
    if(GasAvoided > 0)then
    Writeln(' Avoided gas '+IntToStr(GasAvoided)+(' time[s].'));
    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[s].');
    Writeln(' Active : '+PActive);
    Writeln(' Location : '+Players[CurrentPlayer].Loc);
    Writeln('\\-------------------------------------//');
    for I := 0 to HowManyPlayers-1 do
    begin
    if Players[I].Active then
    PActive:='True'
    else
    PActive:='False';
    SpaceNumber := 12 - Length(Players[I].Name);
    for K := 0 to SpaceNumber do
    Spaces := Spaces + ' ';
    Writeln(IntToStr(I)+': '+Players[I].Name + Spaces +
    '= ' + PActive + ', ' + IntToStr(Players[I].Banked) + ' Bank[s]' +
    ', Worked ' + IntToStr(Players[I].Worked) + ' minutes, ' +
    'Loc: ' + Players[I].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;


    //-----------------------------------------------------------------\\
    { 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[b] = 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[i], CPoint.X - 8, CPoint.Y - 8, CPoint.X + 8, CPoint.Y + 8) > 4)Then
    begin
    if(Colors[i] <> Color)then
    begin
    WriteLn('Found Color ' +IntToStr(Colors[i]) + ' 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[i] 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[i].Color := CColors[i];
    Colors[i].Point := Points[i];
    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);
    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 = 1589845)then
    begin
    MiningSiteColor := GetSymbolColor(x, y, 'mining site');
    if(MiningSiteColor = 1589845)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.

  4. #104
    Join Date
    Jul 2007
    Posts
    33
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Just add the original autominer.
    Add new random finder.
    Add anitban/mouse continual mover.
    Add colors of ore that u want to mine using scars color finder.
    Last change path direction as you hit the reminton mine,.

    Just read the code and you will absolutely figure it out. Just take the time to over look it carefully. Ill post one here for you but ill let you work on one problem.

    I have it set for copper as u walk in! Also it is set for 1 player dont change this unless u know what your doing. One thing you shall work on to learn is the gap between the road and the actuall mine. Take a few moments to figure it out. Then youll be on your way to writing your own. This was not originally made by so i take no credit im creating it.

    {================================================= ==================]
    [ 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 = 5343966; // You HAVE to fill this in, it wont work otherwise.
    NormalRockMMColor = 936558; // 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 = 60; // 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 := 'your name here'; // Your Runescape name
    Players[0].Pass := 'your pass here'; // The corresponding password
    Players[0].Nick := 'three letters from your name here do not use first letter or _ or n's'; // 3-4 letters from your name, NO CAPITALS (that includes the first character)
    Players[0].String1 := 'Copper'; // Type of ore to mine (Clay / Copper / Tin / Iron / Gold)
    Players[0].String2 := '0000'; // Your BankPinNumber
    Players[0].Active := True;
    end;

    //********RockColor Settings********\\
    const
    CopperColor = 5343966;
    TinColor = 10592685;
    ClayColor = 7712718;
    IronColor = 2437457;
    GoldColor = 1817573;

    //********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[s].');
    Writeln(' Mined '+inttostr(OresMined)+(' ores.'));
    if(GemsReceived > 0)then
    Writeln(' Received '+IntToStr(GemsReceived)+(' gem[s].'));
    if(GasAvoided > 0)then
    Writeln(' Avoided gas '+IntToStr(GasAvoided)+(' time[s].'));
    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[s].');
    Writeln(' Active : '+PActive);
    Writeln(' Location : '+Players[CurrentPlayer].Loc);
    Writeln('\\-------------------------------------//');
    for I := 0 to HowManyPlayers-1 do
    begin
    if Players[I].Active then
    PActive:='True'
    else
    PActive:='False';
    SpaceNumber := 12 - Length(Players[I].Name);
    for K := 0 to SpaceNumber do
    Spaces := Spaces + ' ';
    Writeln(IntToStr(I)+': '+Players[I].Name + Spaces +
    '= ' + PActive + ', ' + IntToStr(Players[I].Banked) + ' Bank[s]' +
    ', Worked ' + IntToStr(Players[I].Worked) + ' minutes, ' +
    'Loc: ' + Players[I].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;


    //-----------------------------------------------------------------\\
    { 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[b] = 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[i], CPoint.X - 8, CPoint.Y - 8, CPoint.X + 8, CPoint.Y + 8) > 4)Then
    begin
    if(Colors[i] <> Color)then
    begin
    WriteLn('Found Color ' +IntToStr(Colors[i]) + ' 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[i] 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[i].Color := CColors[i];
    Colors[i].Point := Points[i];
    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);
    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 = 1589845)then
    begin
    MiningSiteColor := GetSymbolColor(x, y, 'mining site');
    if(MiningSiteColor = 1589845)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.

  5. #105
    Join Date
    May 2007
    Posts
    32
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    ill post a progress report if you update it!!!

  6. #106
    Join Date
    Jun 2007
    Posts
    32
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    ...Does sumilion know you just posted his rimmy miner???

  7. #107
    Join Date
    Apr 2007
    Location
    California
    Posts
    259
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Could somebody please edit that, or at least put it in scar tags? -.-

    I don't know what you were trying to tell me, but whatever it was you definitely didn't need to put Sumillion's miner on my thread. Twice. It sounds like you're trying to tell me to learn/figure something out? That's funny, honestly. I didn't stop working on the script because i'm stuck, i stopped because i was busy and had other things going on. It's kind of ironic that on the same day i found some spare time and felt like working on it, i find this O_o. Anyway, please edit your post, as it's pointless and long, and if i wanted to look at Sumillion's miner for ideas, i very easily could. As it's in this very same forum, don't you know?

  8. #108
    Join Date
    Jan 2007
    Posts
    834
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I tested it tonight, ill post the progg tomorow.

  9. #109
    Join Date
    Aug 2007
    Posts
    1
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    when i did it it went in to runescape then the mouse automatically went up and clicked on rules

  10. #110
    Join Date
    Aug 2007
    Posts
    5
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    the script logs me in then ."ERROR! cannot find pick in screen, please put pick in inventory or your equip page and restart the script!" i have a bronze pick in my invetory. any ideas. pm me

  11. #111
    Join Date
    Aug 2007
    Posts
    6
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    How do i get a free srl download?

Page 5 of 5 FirstFirst ... 345

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. waddo's iron and copper miner
    By Waddo in forum RS3 Outdated / Broken Scripts
    Replies: 255
    Last Post: 02-13-2010, 05:48 PM
  2. Rimmington Iron Powerminer
    By vinny13 in forum RS3 Outdated / Broken Scripts
    Replies: 3
    Last Post: 05-29-2007, 11:02 PM
  3. buying all copper/tin/iron ore
    By Killerdou in forum Mining and Smithing
    Replies: 3
    Last Post: 03-22-2007, 06:41 AM

Posting Permissions

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