Page 94 of 105 FirstFirst ... 44849293949596104 ... LastLast
Results 2,326 to 2,350 of 2614

Thread: RICK 4 SRL - iron mine and banker! (varrock east)

  1. #2326
    Join Date
    Dec 2007
    Location
    Canada
    Posts
    62
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Characters constantly miss the mine and end up by the members gate in bottom right hand corner. Perhaps you could make a procdure that searchs for a DTM right there and if it is found make your character to go north and find mine again.

  2. #2327
    Join Date
    Jul 2007
    Location
    So Cal
    Posts
    410
    Mentioned
    0 Post(s)
    Quoted
    16 Post(s)

    Default

    it keeps going to members gate i also noticed it searches to early for the mine before the mine is even on the mini-map perhaps better walking dtms or something

  3. #2328
    Join Date
    Mar 2008
    Location
    New Jersey
    Posts
    1,673
    Mentioned
    1 Post(s)
    Quoted
    9 Post(s)

    Default

    mine keeps saying,



    - From bank to mine.
    Mine spotted by symbol.
    Succesfully entered the mine by the symbol.
    - From bank to mine.

    - Mine full load.
    (!) We got lost but found the mine DDTM =D
    (!) We got lost but found the mine DDTM =D
    (!) We got lost but found the mine DDTM =D



    about 100,000 times lol, my guy stands a tiny bit south of the three iron rocks and then just moves up a space north then a space south over and over

  4. #2329
    Join Date
    May 2007
    Location
    Netherlands, Amersfoort
    Posts
    2,701
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)

    Default

    hmm people try the older version until its updated

  5. #2330
    Join Date
    Mar 2008
    Location
    New Jersey
    Posts
    1,673
    Mentioned
    1 Post(s)
    Quoted
    9 Post(s)

    Default

    I tried using the older one, I got like 8 iron ores I think then it just started making me walk near the rocks from one spot back to a different one everty like 5 seconds, I'll just wait for an update or something, then I'll try again.

  6. #2331
    Join Date
    Jul 2007
    Location
    So Cal
    Posts
    410
    Mentioned
    0 Post(s)
    Quoted
    16 Post(s)

    Default

    same results mk old version does same thing

  7. #2332
    Join Date
    Mar 2007
    Location
    Alberta, Canada
    Posts
    1,780
    Mentioned
    0 Post(s)
    Quoted
    11 Post(s)

    Default

    doesnt work for me, walks past the mine every time
    btw i have scar 3.15 and rev 16

  8. #2333
    Join Date
    Apr 2008
    Posts
    86
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    scar closed after the pop up box that said "please start all players at the varrock east mine, start" after i pressed start it just closed

    i got it setup for one player, and rev 15

    can someone please help i really want to try this script it looks great

  9. #2334
    Join Date
    Dec 2007
    Posts
    77
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Does anyone have fix for mine finding prob?

  10. #2335
    Join Date
    Mar 2008
    Posts
    21
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by BigJohn8742 View Post
    Does anyone have fix for mine finding prob?
    As far as I know, there is no fix. I guess we just have to wait for Masterkill to release a newer version.

  11. #2336
    Join Date
    Apr 2008
    Location
    Marquette, MI
    Posts
    15,252
    Mentioned
    138 Post(s)
    Quoted
    680 Post(s)

    Default

    Well before the RS update this script worked very smoothly for me. Forgot to save proggy, sorry

    Once SRL updates I'll get another asap.

  12. #2337
    Join Date
    Apr 2007
    Posts
    76
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    this is great script update it soon plz... i will post more proggys

  13. #2338
    Join Date
    Mar 2008
    Posts
    23
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Ok, great script however, I have problems with it... It goes to the mine Flawlessly (= but it kept on saying that it couldnt find any of the rocks. Then, it walked back to the bank. banked without opening up the bank windo and then when it went to walk back to the mine.. it went haywire and clicked like everywhere.
    -Any suggestions on why it wont work for me?

  14. #2339
    Join Date
    Jun 2007
    Posts
    30
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Line 106: [Hint] (13313:1): Variable 'WARN' never used in script C:\Program Files\SCAR 3.15\Scripts\Varrock_East_Mine_And_Banker_By_Maste rKill_V13_BETA.scar
    File access error
    SRL Compiled in 15 msec

    Then it dissappears but nothing happends

  15. #2340
    Join Date
    Mar 2008
    Posts
    23
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    uh-oh... Ok guys, I got it to mine the full load but it dosent bank. it walks to the bank.. and dosent bank anything? Whats going on?

  16. #2341
    Join Date
    Jan 2008
    Location
    Barrie, Ontario, Canada
    Posts
    126
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Although many people think that this autominer is not functional, it was working for me this morning. Thing is I hear that there is a problem with the AutoColour.scar... but that's not the problem. You may or may not be able to help, but almost ALL of my SMART scripts that I am trying to run aren't working right now, why? I don't know. Every time I try and run a SMART script, it just closes, and I have to end it using the task manager... Same thing happens to this script, although it was working this morning, and now its not anymore

    Two more things, why when it loads smart does it go to an unassigned applet, and also why can't we load member worlds with the script? I have an army of 4 that are members and I wanted them to go into the member world...

    EDIT: Problem Fixed and the miner is working without any problems
    Version 2 Of Sig, made my own vectors, used my own character and everything.
    http://img248.imageshack.us/img248/7...goodsigxp7.png

    The Shilo Fisher has been halted temporarily. Sorry guys... Too much school work at the moment.

  17. #2342
    Join Date
    Apr 2007
    Location
    The Netherlands
    Posts
    189
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    i tryed to fix the mine finding... for me it works hope for you guys too:P
    SCAR Code:
    Program NewIronMinerByMasterKill;

    {.include SRL/SRL/Misc/Smart.scar}
    {.include srl/srl.scar}
    {.include srl/srl/skill/mining.scar}

    var
      World, HowManyResponds: Integer;
      TheQuestion, TheRespond: array of array of String;

    {/----------------------------------------------------------------------------//

      Welcome to the varrock east mine and banker!
     
      This script is created by MasterKill from SRL-Forums

      SCAR           : 3.15
      SRL REV        : 15
      SCRIPT VERSION : 13.0
     
      DO NOT COPY THIS SCRIPT AND CLAIM IT AS YOUR OWN.
      If you want to use some procedures, it's ok, but CREDIT MASTERKILL.
     
    //----------------------------------------------------------------------------//

      Start your players in the varrock east bank. Some stuff this script is including:
     
      * Fast Auto Responder
      * Perfect Bank And Mine Finding
      * Anti Randoms, Anti Ban
      * Awesome Reports
      * Very Fast
      * TPoint Array Object Finding (for bank, iron and mine).
      * Pick Related:
          - Get New Pick From Bank When No Pick
          - Bank Pickaxe If Broken
          - Attamps to find the pickhead if it flies of
     
    //----------------------------------------------------------------------------//

      Start your players in the Varrock east bank with a pickaxe in first slot OR
      wielded. Make sure the mining level is > 14. Be smart and add some responds
      in the responds setup. plz setup the script:

    //----------------------------------------------------------------------------/}

                                    {Script Setup!}
    //----------------------------------------------------------------------------//

    Procedure SetupPlayers;
    begin
      HowManyPlayers  := 2; // NO MAX                            <-- SETUP CORRECT
                                                                                                                                                                                                                                                                                                                                                                      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer   := 0; // Start Player?                     <-- SETUP CORRECT
     
      World := 51;         // What world to macro in? be smart and chage this!
     
      SRLid :=       '';    // to run this script you need an srl ID and PASS
      SRLPassword := '';    // plz get those at "www.stats.srl-forums.com" and hit register

      Players[0].Name         := '';   // UserName
      Players[0].Pass         := '';   // Password
      Players[0].Nick         := '';   // 3/4 String of Name (example: if accname is 'macroman' then set .nick at 'acro')
      Players[0].Active       := True; // Use this account?   True / False
      Players[0].integers[0]  := 3;    // loads before: logout / nextplayer

      Players[1].Name         := '';
      Players[1].Pass         := '';
      Players[1].Nick         := '';
      Players[1].Active       := False;
      Players[1].integers[0]  := 3;
     
      MouseSpeed := 12; // Mouse speed
    end;

    Procedure SetupResponds; // ADD RESPONDS FOR BETTER ANTI BAN !
    begin
      HowManyResponds := 3;  {<-- SETUP CORRECT !!}
                                                                                                                                                                                                    SetArrayLength(TheQuestion, HowManyResponds); SetArrayLength(TheRespond, HowManyResponds);
      TheQuestion[0] := ['mining', 'mine'];
      TheRespond[0]  := [IntToStr(Players[CurrentPlayer].Integers[1])]; // your players mining level
     
      TheQuestion[1] := ['respond'];
      TheRespond[1]  := ['what to say?', 'i dont have anything to say', 'no im bussy'];
     
      TheQuestion[2] := [Players[CurrentPlayer].nick]; // your players nickname
      TheRespond[2]  := ['no', 'get lost', 'im bussy', 'go away', 'just let me mine okeey?'];
    end;

    //----------------------------------------------------------------------------//
                               {End Script Setup!}
    //----------------------------------------------------------------------------//















    //----------------------------------------------------------------------------//
                        {Script Code! don't touch all below}
    //----------------------------------------------------------------------------//
    var
      x, y, I, Load, RockWaitTime, Responds, bankers, IronMined, IronOre: Integer;
      PickaxeStick, BrokenPickaxe, PickaxeD, Banked, ScriptRunTime, warn: Integer;
      Wielded: Boolean;
      SafeReportFileName: String;
      PickaxeDTM: Array [1..6] Of Integer;
     
    Procedure SetupDTM;
    begin
      Bankers := DTMFromString('78DA633CC3CCC070890105FCFFFF9FE13F906' +
           '684B0FF331E02AAB905916383AAF9F38789810BAA060418AF01D5' +
           'DC26A0E614617300197B14BA');
      IronOre := DTMFromString('78DA6314616060106640038C482490660712A' +
           '204D408000945026AE481840C0135AA40828F801A2920C141400D' +
           'C85FECF8D50000ACCF0135');
      PickaxeStick := DTMFromString('78DA6314666060906140038C4824901601124' +
           '204D44801095E026A40F2CA04D408000929026A048184220135E2' +
           '404214BF1A00B23A014A');
      BrokenPickaxe := DTMFromString('78DA6334676660A8656440058C4824907603A' +
           'A2926A0C61BA8A688801A3BA09A4C026A8C806A728950D34A408D' +
           '13504D3E7E3500C8FC050A');
      PickaxeDTM[1] := DTMFromString('78DA639CC0CCC0708B91011530229140BA13A' + //rune//
           '8E60301350B816AEE1350330DA8E60A01350B30CD71894A611041' +
           '52030015D70885');
      PickaxeDTM[2] := DTMFromString('78DA63DCC5CCC0708B91011530C2C9FF40C0B' + //addy//
           '819A8E6036E3560FA3450CD7D026A0E00D55C21A0E614A6394E41' +
           '4E0CBC486A00B2A90D20');
      PickaxeDTM[3] := DTMFromString('78DA637CC2CCC0708B91011530229140FA2E5' + //mith//
           '0CD07026ABE02D5DC27A0E61550CD15026ABE609AE3E010C72082' +
           'A40600C3490A05');
      PickaxeDTM[4] := DTMFromString('78DA63E4636160B8C5C8800A18914820CD0E5' + //steel//
           '4F381801A79A09AFB04D48800D55C21A0460ED39C8A8202061124' +
           '35000D5E0656');
      PickaxeDTM[5] := DTMFromString('78DA639CC0CCC0F08F91011530229140BA13A' + //iron//
           '8468409BF9A854035CC04D44C03AAF941C0AE0598E604F9FA3288' +
           '20A901004D1D0626');
      PickaxeDTM[6] := DTMFromString('78DA63DCC5CCC0F08F910115302291407A335' + //bronz//
           '08D08137E35A7816A9809A8390054F383805DA730CDF1B5516110' +
           '41520300A15606B9');
      PickaxeD := DTMFromString('78DA6314606060E06540038C4824909605125' +
           'C04D470020976026A40662810502302245808A801B9590CBF1A00' +
           '612000CF');
    end;

    // srl function, edited the WriteLn out
    function FindVarrockRoadColor2: Integer;
    var
      GC, a, l, TestColor, Red, Green, Blue : integer;
    var
      P:array of Tpoint;
    begin
      GC := 7304312;
      Flag;
      FindColorsSpiralTolerance(x, y, P, GC, MMX1, MMY1, MMX2, MMY2, 60);
      l:=GetArrayLength(P);
      for a:= 0 to l-1 do
      begin
        TestColor := GetColor(P[a].x, P[a].y);
        red := (TestColor mod 256);
        green := ((TestColor / 256) mod 256);
        blue := ((TestColor / 256) / 256);
        if Red - Blue <= 12 then if Red - Blue >= 8 then
        if Red - Green <= 6 then if Red - Green >= -1 then
        if Green - Blue <= 10 then if Green - Blue >= 4 then
        if GetColor(P[a].x + 5, P[a].y + 5) = TestColor then
        if GetColor(P[a].x + 3, P[a].y + 3) = TestColor then
        if GetColor(P[a].x, P[a].y + 5) = TestColor then
        if GetColor(P[a].x + 5, P[a].y) = TestColor then
        if GetColor(P[a].x, P[a].y + 3) = TestColor then
        if GetColor(P[a].x + 3, P[a].y) = TestColor then
        if GetColor(P[a].x + 5, P[a].y + 3) = TestColor then
        if GetColor(P[a].x + 3, P[a].y + 5) = TestColor then
        begin
          Result := TestColor;
          Exit;
        end;
      end;
      WriteLn('Could not find Varrock Road Color!');
      Result := 0;
    end;

    // srl function, edited the WriteLn out
    function FindStoneColor2: Integer;
    var
      GC, a, l, TestColor: integer;
    var
      P:array of Tpoint;
    begin
      GC := 2176863;
      Flag;
      FindColorsSpiralTolerance(MMCX, MMCY, P, GC, MMX1,MMY1,MMX2,MMY2, 60);
      l:=GetArrayLength(P);
      for a:= 0 to l-1 do
      begin
        TestColor := GetColor(P[a].x,P[a].y);
        if (GetColor(P[a].x-1,P[a].y)=TestColor-461068) then
        begin
          Result := TestColor;
          Exit;
        end;
      end;
      //WriteLn('Could not find Stone Color!');
      Result := 0;
    end;

    Function TheResponder: boolean;
    var
      I, II, Rand: Integer;
      Text, Name: String;
    begin
      If Not GetLastChatText(Text) Then Exit;
      For I := 0 To HowManyResponds - 1 Do
      begin
        For II := 0 To High(TheQuestion[I]) Do
        begin
          If (Pos(TheQuestion[I][II], Text) <> 0) then
          begin
            Name := GetBlackChatMessage;
            If (Pos(Players[CurrentPlayer].nick, Name) <> 0) then break;
            WriteLn('Respond:');
            WriteLn('/ ' + Name + ' ' + Text);
            Rand := Random(High(TheRespond[I]));
            TypeSend(TheRespond[I][Rand]);
            WriteLn('/ ' + Players[CurrentPlayer].Name + ': ' + TheRespond[I][Rand]);
            Responds := Responds + 1;
            ReportVars[2] := ReportVars[2] + 1;
            Result := True;
            exit;
          end;
        end;
      end;
    end;

    Procedure Randoms;
    begin
      FindNormalRandoms;
      if FindFight then
      begin
        MakeCompass('n');
        mouse(630, 154, 5, 5, True);
        fflag(0);
        SleepAndMoveMouse(15000+random(5000));
        Mouse(630, 15, 5, 5, True);
        SleepAndMoveMouse(2000 + random(2000));
        fflag(0);
      end;
    end;

    Function NumberOfActive(WriteLin: boolean): Integer;
    var
      R: Integer;
    begin
      Result := 0;
      for R := 0 To HowManyPlayers - 1 do
      if (Players[R].active = True) then
      Result := Result + 1;
      If (Result = 0) Then WriteLn('No More Players Active.')
      Else WriteLn('Still ' + IntToStr(Result) + ' players of the ' + IntToStr(howManyPlayers) + ' players are active.');
    end;

    Procedure WieldPickaxe;
    var
      rx, ry: Integer;
    begin
      Wielded := False;
      If (Players[CurrentPlayer].Integers[4] < 1) Then
      Players[CurrentPlayer].Integers[4] := GetSkillInfo('attack', False);
      Gametab(4);
      Wait(500 + random(500));
      if FindDTM(PickaxeD, rx, ry, 525, 182, 745, 473) then
      begin
        case Players[CurrentPlayer].strings[0] of
          'Rune': begin
                    If (Players[CurrentPlayer].Integers[4] > 39) then
                    begin
                      Mouse(rx, ry, 0, 0, True);
                      Wielded := True;
                    end;
                  end;
          'Addy': begin
                    If (Players[CurrentPlayer].Integers[4] > 29) then
                    begin
                      Mouse(rx, ry, 0, 0, True);
                      Wielded := True;
                    end;
                  end;
          'Mith': begin
                    If (Players[CurrentPlayer].Integers[4] > 19) then
                    begin
                      Mouse(rx, ry, 0, 0, True);
                      Wielded := True;
                    end;
                  end;
         'Steel': begin
                    If (Players[CurrentPlayer].Integers[4] > 4) then
                    begin
                      Mouse(rx, ry, 0, 0, True);
                      Wielded := True;
                    end;
                  end;
          'Iron': begin
                    Mouse(rx, ry, 0, 0, True);
                    Wielded := True;
                  end;
         'Bronz': begin
                    Mouse(rx, ry, 0, 0, True);
                    Wielded := True;
                  end;
        end;
        If Wielded Then
        WriteLn('Your strong enough to wield your pickaxe... Wielded.');
      end;
    end;

    Function MasterRoadWalk(TheColor, StartRadial, EndRadial, Radius, Xmod, Ymod: Integer; FailWait: Boolean): Boolean; // BETA
    Var
      ResultTPA: TPointArray;
    Begin
      If RadialWalkEx(ResultTPA, MMCX, MMCY, TheColor, 0, StartRadial, EndRadial, Radius) Then
      Begin
        Mouse(ResultTPA[0].x, ResultTPA[0].y, Xmod, Ymod, True);
        If FailWait Then
        Begin
          Wait(4000);
          FFlag(20);
        End Else
        Begin
          SleepAndMoveMouse(Random(2000));
          Wait(2000 + Random(2000));
        End;
        Result := True;
      End;
    End;

    Function GetPickAxe: Integer;
    Var
      MK: Integer;
    Begin
      Result := 0;
      For MK := 1 To 6 Do
      Begin
        If FindDTM(PickaxeDTM[MK], x, y, 532, 183, 751, 485) Then
        Begin
          Result := MK;
          Exit;
        End;
      End;
    End;

    Function SetupPick(PickaxeNumber: Integer): Boolean;
    Begin
      Case PickaxeNumber Of
        0: Exit;
        1: Begin
             RockWaitTime := 4000;
             Players[CurrentPlayer].Strings[0] := 'Rune';
           End;
        2: Begin
             RockWaitTime := 5000;
             Players[CurrentPlayer].Strings[0] := 'Addy';
           End;
        3: Begin
             RockWaitTime := 6000;
             Players[CurrentPlayer].Strings[0] := 'Mith';
           End;
        4: Begin
             RockWaitTime := 7000;
             Players[CurrentPlayer].Strings[0] := 'Steel';
           End;
        5: Begin
             RockWaitTime := 8000;
             Players[CurrentPlayer].Strings[0] := 'Iron';
           End;
        6: Begin
             RockWaitTime := 8000;
             Players[CurrentPlayer].Strings[0] := 'Bronz';
           End;
      End;
      Result := True;
      WriteLn(Players[CurrentPlayer].Strings[0] + ' pickaxe found in your iventory.');
    End;

    Procedure WhatPickaxeDoWeHave;
    Begin
      If Not LoggedIn Then Exit;
      WriteLn('Checking your Pickaxe...');
      GameTab(4);
      If Not SetupPick(GetPickaxe) Then
      Begin
        GameTab(5);
        If Not SetupPick(GetPickaxe) Then
        Begin
          WriteLn('You do not have a pickaxe! Plz get a pickaxe to mine iron.');
          Players[CurrentPlayer].Loc := 'No Pickaxe!';
          LogOut;
        End Else Wielded := True;
      End Else WieldPickaxe;
    End;

    Function GetInMine: boolean;
    Var
      RockCoords: Array Of TPoint;
      CheckCol: Integer;
    Begin
      WriteLn('prolly found the mine, try entering now...');
      FFlag(0);
      CheckCol := FindStoneColor2;
      If (CheckCol = 0) Then
      Begin
        WriteLn('lol not found the mine anymore :s but i wil try again');
      If FindColorTolerance (x, y, 2176863, MMX1, MMY1, MMX2, MMY2, 1) Then
        Begin
      MiddleTPAEx(RockCoords, X, Y);
      Mouse(x, y, 0, 0, True);
      FFlag(0);
      WriteLn('succesfully enterd the mine.');
      Result := True;
      Exit;
      end;
       WriteLn('i really could not find it sorry:P');
        Exit;
      End;
      FindColorsSpiralTolerance(x, y, RockCoords, 2176863, MMX1, MMY1, MMX2, MMY2, 1);
      MiddleTPAEx(RockCoords, X, Y);
      Mouse(x, y, 0, 0, True);
      FFlag(0);
      WriteLn('succesfully enterd the mine.');
      Result := True;
    End;

    Procedure ToThaMine;
    Var
      RicksRoadWalk: Integer;
    begin
      MakeCompass('N');
      If Not LoggedIn Then Exit;
      Players[CurrentPlayer].Loc := 'Moving To The Mine';
      WriteLn('');
      WriteLn('[To The Mine]');
      WriteLn('');
      WriteLn('Walking to the mine...');
      MasterRoadWalk(FindVarrockRoadColor2, 133, 20, 65, 3, 3, True);
      RadialRoadWalk(FindVarrockRoadColor2, 133, 60, 65, 3, 3);
      Repeat
        RicksRoadWalk := RicksRoadWalk + 1;
        If Not LoggedIn Then
        Begin
          WriteLn('player logged out while walking to the bank...');
          Players[CurrentPlayer].Loc := 'Logged Out To Mine';
          exit;
        End;
        If Not RadialRoadWalk(FindVarrockRoadColor2, 127, 228, 55, 1, 1) Then Break;
        If (RicksRoadWalk > 2) Then
        If FindColorTolerance (x, y, FindStoneColor2, MMX1, MMY1, MMX2, MMY2, 1) Then
        If GetInMine Then Exit;
      Until(RicksRoadWalk > 20)
      WriteLn('We did not found the mine, logging out player.');
      Players[CurrentPlayer].Loc := 'Not Found Mine';
      LogOut;
    end;

    Function FindTheBank: Boolean;
    Begin
      If Not LoggedIn Then Exit;
      FFlag(0);
      If FindDTM(bankers, x, y, MMX1, MMY1, MMX2, MMY2) Then
      Begin
        WriteLn('We have found the bankers DTM, entering bank...');
        Mouse(x, y, 2, 2, True);
        Result := True;
        Wait(3000);
        FFlag(0);
        WriteLn('Welcome in the Varrock east bank.');
      End;
    End;

    Procedure ToThaBank;
    var
      RRoadWalk: Integer;
    begin
      If Not LoggedIn Then Exit;
      Players[CurrentPlayer].Loc := 'Moving To The Bank';
      WriteLn('');
      WriteLn('[To The Bank]');
      WriteLn('');
      RadialRoadWalk(FindVarrockRoadColor2, 5, 50, 70, 1, 1);
      Randoms;
      RadialRoadWalk(FindVarrockRoadColor2, 337, 385, 65, 1, 1);
      Randoms;
      repeat
        If Not LoggedIn then
        begin
          WriteLn('Player logged out while walking to the bank.');
          Players[CurrentPlayer].Loc := 'Logged Out To Bank';
          Exit;
        end;
        RadialRoadWalk(FindVarrockRoadColor2, 240, 380, 65, 1, 1);
        Randoms;
        RRoadWalk := RRoadWalk + 1;
        If (RRoadWalk > 2) Then
        If FindDTM(bankers, x, y, 547, 6, 703, 163) Then
        If FindTheBank Then Exit;
      until (RRoadWalk > 20)
      WriteLn('Omg, can not find the bank! logging out...');
      Players[CurrentPlayer].Loc := 'Not Found The Bank';
      LogOut;
    end;

    {Function FindIron(var xr, yr: Integer): boolean;
    var
      TolSpeed, mx, my, NumberOfLenght, MK: Integer;
      IronCoords, RockCoords: Array Of TPoint;
      DaPoint: TPoint;
    begin
      TolSpeed := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      FindColorsSpiralTolerance(mx, my, IronCoords, 2832993, MSX1, MSY1, MSX2, MSY2, 6);
      NumberOfLenght := High(IronCoords);
      For MK := 0 To NumberOfLenght Do
      begin
        DaPoint := IronCoords[MK];
        FindColorsTolerance(RockCoords, 2832734, DaPoint.X - 15, DaPoint.Y - 15, DaPoint.X + 15, DaPoint.Y + 15, 20);
        MiddleTPAEx(RockCoords, X, Y);
        FindColorsTolerance(RockCoords, 1394003, X - 15, Y - 15, X + 15, Y + 15, 25);
        If(GetArrayLength(RockCoords)-1 > 5)Then
        Begin
          MiddleTPAEx(RockCoords, Xr, Yr);
          MMouse(xr, yr, 0, 0);
          If (GetColor(43, 9) = 14344978) Then
          If not GasFound(mx, my) Then
          Begin
            Result := True;
            Break;
          End;
        End;
      End;
      ColorToleranceSpeed(TolSpeed);
    End;}


    Function FindIron(var xr, yr: Integer): Boolean;
    Var
      RealIron, IronRock: Array Of TPoint;
      CurPoint: TPoint;
      TolSpeed, MK, xx, yy: Integer;
    Begin
      TolSpeed := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      FindColorsSpiralTolerance(x, y, RealIron, 2832989, MSX1, MSY1, MSX2, MSY2, 6);
      For MK := 0 To High(RealIron) Do
      Begin
        CurPoint := RealIron[MK];
        FindColorsTolerance(IronRock, 1659234, CurPoint.X - 15, CurPoint.Y - 15, CurPoint.X + 15, CurPoint.Y + 15, 20);
        If (High(IronRock) > 15) Then
        Begin
          MiddleTPAEx(IronRock, xx, yy);
          MMouse(xx, yy, 0, 0);
          If FindColorTolerance(x, y, 2832989, xx - 15, yy - 15, xx + 15, yy + 15, 6) Then
          Begin
            Wait(100 + Random(100));
            If (Pos('ine', rs_getuptext) <> 0) Then
            Begin
              xr := xx; yr := yy;
              Result := True;
              Exit;
            End;
          End;
        End;
      End;
      ColorToleranceSpeed(TolSpeed);
    End;

    Function CheckPickaxe: Boolean;
    begin
      If Wielded Then
      GameTab(5) Else GameTab(4);
      If FindDTM(PickaxeStick, x, y, 532, 183, 751, 485) Then
      Begin
        WriteLn('Noes! your pickhead flyd off!');
        Wielding := Wielded;
        If Not FindPick Then
        Begin
          Result := True;
          WriteLn('We lost your pickaxe head... moving back to bank...');
          GameTab(5);
          Mouse(584, 302, 10, 10, True);
          Wielded := False;
          Exit;
        End;
      End;
      If FindDTM(BrokenPickaxe, x, y, 532, 183, 751, 485) Then
      Begin
        Result := True;
        WriteLn('Sorry, but ' + Players[CurrentPlayer].Nick + ' broke your pickaxe, not MasterKills foult ;)');
        WriteLn('Moving back to the bank...');
        GameTab(5);
        Mouse(584, 302, 10, 10, True);
        Wielded := False;
        Exit;
      End;
      If Not FindDTM(PickaxeD, x, y, 532, 183, 751, 485) Then
      Begin
        Result := True;
        WriteLn('We cant find your pickaxe at all! Back to bank...');
        Wielded := False;
      End;
    End;

    Procedure MineThaLoad;
    Var
      NotF, errF, RWTime: Integer;
      BlackText: String;
    begin
      If Not LoggedIn Then Exit;
      Players[CurrentPlayer].Loc := 'Mining Full Load';
      WriteLn('');
      WriteLn('[MineThaLoad]');
      WriteLn('');
      FindPickHeadColor;
      SetRun(true);
      WriteLn('Run activated.');
      WriteLn('Starting mining...');
      Repeat
        If Not LoggedIn Then Exit;
        If FindIron(x, y) Then
        begin
          Mouse(x, y, 0, 0, True);
          MarkTime(RWTime);
          NotF := 0;
          TheResponder;
          Wait(1500);
          If FlagPresent Then Wait(1000);
          Repeat
            BlackText := GetBlackChatMessage;
            if (getcolor(486, 384) = 0) then
            if FindNpcChatText('ickaxe', Nothing) then
            If CheckPickaxe Then Exit;
            If GasFound(x, y) then
            begin
              Mouse(633, 83, 8, 8, True);
              Wait(25000);
            end;
            Randoms;
            If (Pos('anage', BlackText) <> 0) or (Pos('vailable', BlackText) <> 0) then break;
            SleepAndMoveMouse(200 + random(1000));
          Until(TimeFromMark(RWTime) > RockWaitTime)
        end else
        begin
          Wait(300);
          Randoms;
          NotF := NotF + 1;
          If (NotF > 14) Then
          Begin
            errF := errF + 1;
            If (errF > 4) Then
            Begin
              WriteLn('huh the script can not find any iron, while were in the mine...');
              Exit;
            End;
            WriteLn('Not found any iron, try to find the mine again...');
            If Not GetInMine Then
            Begin
              WriteLn('O dear, we got lost while mining... How wierd is that?');
              Players[CurrentPlayer].Loc := 'Lost While Mining';
              LogOut;
              Exit;
            End;
            WriteLn('Resume mining...');
            NotF := 0;
          End;
        End;
      Until InvFull
      WriteLn('... until where full.');
    End;

    var
      frmDesign              : TForm;
      Label1                 : TLabel;
      Label2                 : TLabel;
      StartButton            : TButton;
      OkiClick: Boolean;
      Upzor, onezor, twozor, buttumtext: string;

    procedure StartClick(sender: TObject);
    begin
      frmDesign.ModalResult:= mrOk;
      OkiClick := True;
    end;

    procedure InitForm;
    begin
      frmDesign := CreateForm;
      frmDesign.Left := 300;
      frmDesign.Top := 300;
      frmDesign.Width := 500;
      frmDesign.Height := 100;
      frmDesign.Caption := upzor;
      frmDesign.Color := clBlack;
      frmDesign.Font.Color := clWindowText;
      frmDesign.Font.Height := -11;
      frmDesign.Font.Name := upzor;
      frmDesign.Font.Style := [];
      frmDesign.Visible := False;
      frmDesign.PixelsPerInch := 96;
      Label2 := TLabel.Create(frmDesign);
      Label2.Font.Color := clWhite
      Label2.Parent := frmDesign;
      Label2.Left := 5;
      Label2.Top := 5;
      Label2.Width := 46;
      Label2.Height := 13;
      Label2.Font.Size := 10;
      Label2.Caption := onezor;
      Label1 := TLabel.Create(frmDesign);
      Label1.Font.Color := clWhite
      Label1.Parent := frmDesign;
      Label1.Left := 5;
      Label1.Top := 25;
      Label1.Width := 46;
      Label1.Height := 13;
      Label1.Font.Size := 10;
      Label1.Caption := twozor;
      StartButton := TButton.Create(frmDesign);
      StartButton.Parent := frmDesign;
      StartButton.OnClick := @StartClick;
      StartButton.Left := 5;
      StartButton.Top := 45;
      StartButton.Width := 80;
      StartButton.Height := 20;
      StartButton.Caption := buttumtext;
      StartButton.TabOrder := 10;
    end;

    procedure SafeInitForm;
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      ThreadSafeCall('InitForm', v);
    end;

    procedure ShowFormModal;
    begin
      frmDesign.ShowModal;
    end;

    procedure SafeShowFormModal;
    var
     v: TVariantArray;
    begin
      setarraylength(V, 0);
      ThreadSafeCall('ShowFormModal', v);
    end;

    Procedure ErrorForm(Uptextt, msgone, msgtwo, buttontext: String; Terminate: Boolean);
    begin
      upzor := uptextt;
      onezor := msgone;
      twozor := msgtwo;
      OkiClick := False;
      buttumtext := buttontext;
      repeat
        SafeInitForm;
        SafeShowFormModal;
        If OkiClick Then Break;
        PlaySound('C:\WINDOWS\Media\Windows XP Shutdown.wav');
        Wait(1000);
      Until OkiClick
      If Terminate then
      begin
        WriteLn('');
        Terminatescript;
      end;
    end;

    Function CurrentStatus: String;
    var
      MK, PlayerCount: Integer;
    begin
      for MK := 0 To HowManyPlayers - 1 do
      if (Players[MK].active = True) then
      PlayerCount := PlayerCount + 1;
      IF (PlayerCount = 0) then
      Result := 'Script succesfully ended. All players False.' else
      Result := 'there still where ' + IntToStr(PlayerCount) + ' of the ' + IntToStr(HowManyPlayers) + ' players active.';
    end;

    Procedure SafeReport;
    var
      SaveFileCreate: TStringList;
      MK: Integer;
    begin
      SaveFileCreate := TStringList.Create;
      SaveFileCreate.Add('Varrock east mine and banker version 13.0');
      SaveFileCreate.Add('    created by MasterKill');
      SaveFileCreate.Add('');
      SaveFileCreate.Add('Last status found in script:');
      SaveFileCreate.Add('    ' + CurrentStatus);
      SaveFileCreate.Add('');
      SaveFileCreate.Add('Script Report:');
      SaveFileCreate.Add('    Iron Mined    : ' + IntToStr(IronMined));
      SaveFileCreate.Add('    Times Banked  : ' + IntToStr(Banked));
      SaveFileCreate.Add('    Responds Made : ' + IntToStr(Responds));
      SaveFileCreate.Add('');
      SaveFileCreate.Add('Player Report:');
      For MK := 0 To HowManyPlayers - 1 Do
      begin
        SaveFileCreate.Add('  ' + Players[MK].Name);
        SaveFileCreate.Add('    Iron Mined    : ' + IntToStr(Players[MK].integers[2]));
        SaveFileCreate.Add('    Location      : ' + Players[MK].Loc);
        SaveFileCreate.Add('    Mining level  : ' + IntToStr(Players[MK].integers[1]));
      end;
      If Not SaveToFile(SaveFileCreate, SafeReportFileName) Then
      WriteLn('Could not save your report.');
    end;


    Procedure WhileReport;
    Var
      MK: Integer;
    begin
      WriteLn('');
      WriteLn('[Time Running: ' + TimeRunning + ']');
      WriteLn('[Iron Mined: ' + IntToStr(IronMined) + ']');
      WriteLn('[Times Banked: ' + IntToStr(Banks) + ']');
      WriteLn('[Respond[s] made: ' + IntToStr(Responds) + ']');
      WriteLn('[Mining ' + FloatToStr(IronMined div TimeFromMark(ScriptRunTime) * 3600000.0) + ' Iron a hour]');
      For MK := 0 To HowManyPlayers - 1 Do
      WriteLn(Players[MK].Name + ' = [' + IntToSTr(players[MK].integers[2]) + ' Iron Mined] [active? ' + BoolToStr(Players[MK].Active) + '] [Location: ' + Players[MK].Loc + ']');
      SrlRandomsReport;
      SafeReport;
      WriteLn('Progress report saved to: ' + SafeReportFileName);
    end;

    Function FindThaBankTPA: boolean;
    Var
      BankCoords, BoothCoords: Array Of TPoint;
      MK, mx, my, TolSpeed, NumberOfLenght: Integer;
      DaPoint: TPoint;
    begin
      TolSpeed := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      FindColorsSpiralTolerance(mx, my, BankCoords, 1593183, MSX1, MSY1, MSX2, MSY2, 6);
      NumberOfLenght := High(BankCoords);
      For MK := 1 To NumberOfLenght Do
      begin
        DaPoint := BankCoords[MK];
        FindColorsTolerance(BoothCoords, 1593183, DaPoint.X - 15, DaPoint.Y - 15, DaPoint.X + 15, DaPoint.Y + 15, 11);
        If(GetArrayLength(BoothCoords)-1 > 30)Then
        Begin
          MiddleTPAEx(BoothCoords, x, y);
          Mouse(x, y, 0, 0, False);
          Wait(100 + Random(50));
          If ChooseOption('uick') Then
          Begin
            Result := True;
            Break;
          End Else WriteLn('No bank booth here.');
        End;
      End;
      ColorToleranceSpeed(TolSpeed);
    End;

    Function PickaxeFound: Boolean;
    Begin
      If Wielded Then Result := True Else
      Result := FindDTM(PickaxeD, x, y, MIX1, MIY1, MIX2, MIY2);
    End;

    Function GetNewPickFromBank: Boolean;
    Begin
      If (Players[CurrentPlayer].Integers[1] > 40) then
      begin
        if FindDTM(PickaxeDTM[1], x, y, msx1, msy1, msx2, msy2) then
        begin
          Result := True;
          Mouse(x, y, 0, 0, True);
          Exit;
        end;
      end;
      If (Players[CurrentPlayer].Integers[1] > 30) then
      begin
        if FindDTM(PickaxeDTM[2], x, y, msx1, msy1, msx2, msy2) then
        begin
          Result := True;
          Mouse(x, y, 0, 0, True);
          Exit;
        end;
      end;
      If (Players[CurrentPlayer].Integers[1] > 20) then
      begin
        if FindDTM(PickaxeDTM[3], x, y, msx1, msy1, msx2, msy2) then
        begin
          Result := True;
          Mouse(x, y, 0, 0, True);
          Exit;
        end;
      end;
      If (Players[CurrentPlayer].Integers[1] > 5) then
      begin
        if FindDTM(PickaxeDTM[4], x, y, msx1, msy1, msx2, msy2) then
        begin
          Result := True;
          Mouse(x, y, 0, 0, True);
          Exit;
        end;
      end;
      if FindDTM(PickaxeDTM[5], x, y, msx1, msy1, msx2, msy2) then
      begin
        Result := True;
        Mouse(x, y, 0, 0, True);
        Exit;
      end;
      if FindDTM(PickaxeDTM[6], x, y, msx1, msy1, msx2, msy2) then
      begin
        Result := True;
        Mouse(x, y, 0, 0, True);
        Exit;
      end;
    End;

    Procedure SetupPlayer;
    begin
      If Not LoggedIn Then Exit;
      WriteLn('');
      WriteLn('[' + Players[CurrentPlayer].name + ' setup]');
      WriteLn('');
      SetAngle(True);
      MakeCompass('N');
      GameTab(2);
      Players[CurrentPlayer].integers[1] := GetSkillInfo('mining', False);
      WriteLn('Players mining level is ' + IntToStr(Players[CurrentPlayer].integers[1]));
      If (Players[CurrentPlayer].Integers[3] < 1) Then
      Players[CurrentPlayer].integers[3] := GetCombatLevel;
      WriteLn('Players combat level is ' + IntToStr(Players[CurrentPlayer].Integers[3]));  
      WhatPickaxeDoWeHave;
      SetupResponds;
    end;

    Procedure BankThaLoad;
    Var
      IronLoad, NotF: integer;
    begin
      If Not LoggedIn Then Exit;
      WriteLn('');
      WriteLn('[Bank The Load]');
      WriteLn('');
      Players[CurrentPlayer].Loc := 'In The Bank';
      IronLoad := CountItemsDtm('inv', IronOre);
      Repeat
        If Not LoggedIn Then
        begin
          WriteLn('Player logged out while banking?!');
          Players[CurrentPlayer].Loc := 'Logged Out While Banking';
          Exit;
        end;
        If FindThaBankTPA Then
        begin
          WriteLn('Opening the bank...');
          FFlag(0);
          players[CurrentPlayer].integers[2] := players[CurrentPlayer].integers[2] + IronLoad;
          IronMined := IronMined + IronLoad;
          WriteLn('Mined ' + IntToStr(IronLoad) + ' Iron, wich makes the grand total ' + IntToStr(IronMined) + '.');
          ReportVars[0] := ReportVars[0] + 1;
          ReportVars[1] := ReportVars[1] + IronLoad;
          Wait(1000 + Random(1000));
          If FindDTM(BrokenPickaxe, x, y, MIX1, MIY1, MIX2, MIY2)
          Or FindDTM(pickaxestick, x, y, MIX1, MIY1, MIX2, MIY2)
          Or Not PickaxeFound then
          Begin
            WriteLn('Your pickaxe is dead, looking for a new one...');
            Deposit(1, 28, True);
            If GetNewPickFromBank Then
            Begin  
              WriteLn('We got a new pickaxe from your bank, lukky bastard.');
              Mouse(485, 41, 5, 5, True);
              WhatPickaxeDoWeHave;
            End Else
            Begin
              WriteLn('This player has runned out of pickaxes... WHEHE!');
              Players[CurrentPlayer].Loc := 'Out Of PickAxes';
              Mouse(485, 41, 5, 5, True);
              LogOut;
              Exit;
            End;  
          End Else
          Begin
            WriteLn('Banking all stuff except for your pickaxe.');
            If Wielded Then Deposit(1, 28, True) else Deposit(2, 28, True);
            Mouse(485, 41, 5, 5, True);
          End;
          SetAngle(true);
          Banked := Banked + 1;
          WriteLn('banking succesfully completed.');
          Wait(100 + Random(50));
          MakeCompass('N');
          Exit;
        end else
        begin
          FFlag(0);
          If FindDTM(bankers, x, y, 547, 6, 703, 163) Then
          Begin
            Mouse(x, y, 0, 0, True);
            SleepAndMoveMouse(500 + Random(1000));
            FFlag(0);
          End Else
          Begin
            NotF := NotF + 1;
            SleepAndMoveMouse(2000 + Random(1000));
            If (NotF > 1) Then
            Begin
              WriteLn('We can not find the bank anymore. Player logout...');
              Players[CurrentPlayer].Loc := 'Lost Around Bank';
              LogOut;
              Exit;
            End;
          End;
        end;
      Until False
    end;

    Function GetSafeReportFilePath: String;
    Var
      Hour, Mins, Sec, MSec, Year, Month, Day: Word;
      M: String;
    Begin
      DecodeDate(Date, Year, Month, Day);
      DecodeTime(Now, Hour, Mins, Sec, MSec);
      case Month of
        1: M := 'Jan-';
        2: M := 'Feb-';
        3: M := 'Mar-';
        4: M := 'Apr-';
        5: M := 'May-';
        6: M := 'Jun-';
        7: M := 'Jul-';
        8: M := 'Aug-';
        9: M := 'Sep-';
        10: M := 'Oct-';
        11: M := 'Nov-';
        12: M := 'Dec-';
      end;
      Result := AppPath + 'MasterKill_Progress_Reports\IronMiner__' + IntToStr(Day) + '-' + M + IntToStr(Year) + '__' + Padz(IntToStr(Hour), 2) + '-' + Padz(IntToStr(Mins), 2) + '-' + Padz(IntToStr(Sec), 2) + '.txt';
    End;

    procedure StartUp;
    begin
      ClearDeBug;
      WriteLn('MasterKill prezents:                                               ');
      WriteLn(' ___                                    __                         ');
      WriteLn('|   |_______   ____    ____     _____  |__|  ____   _____ _______ ©');
      WriteLn('|   |\_  __ \ /    \  /    \   /     \ |  | /    \ /  __ \\_  __ \ ');
      WriteLn('|   | |  | \/(  ()  )|   |  \ |       \|  ||   |  \\  ___/ |  | \/ ');
      WriteLn('|___| |__|    \____/ |___|  / |__|_|  /|__||___|  / \___ \ |__|    ');
      WriteLn('                          \/        \/          \/      \/         ');
      WriteLn('                                                   and banker!  V13');
      Status('MasterKill productions! ©');
      disguise('MasterKill ©');
      Wait(3000);
      SafeReportFileName := GetSafeReportFilePath;
      for I := 0 to getarraylength(players)-1 do
      begin
        If (Players[I].Active = True) then
        Players[I].Loc := 'In The Bank' else
        Players[I].Loc := 'Not In Use';
        SetArrayLength(Players[I].integers, 5);
        SetArrayLength(Players[I].Strings, 1);
      end;
    end;

    procedure HyperMainLoop;
    begin
      Repeat
        ToThaMine;
        MineThaLoad;
        ToThaBank;
        BankThaLoad;
        WhileReport;
        Load := Load + 1;
      Until (Not LoggedIn) Or (Load - 1 > Players[CurrentPlayer].Integers[0])
    end;

    Procedure LogInFalseTrue;
    begin
      If Not LoggedIn then Players[CurrentPlayer].active := False;
      If (NumberOfActive(False) = 0) then exit;
      WriteLn('');
      WriteLn('[Player Done]');
      WriteLn('');
      NextPlayer(LoggedIn);
      Load := 0;
      SetupPlayer;
    end;

    begin
    //Setup
      SetupSRL;
      If Not (SRLVersionNumber = 15) Then ErrorForm('CAN NOT RUN', 'to run this script you need scar 3.15 and srl reversion 15', 'plz run the script again when you go those', 'OK =(', True);
      SetupDTM;
      SetupPlayers;
    //Startup, make ready
      ScriptID := '275';
      ErrorForm('Varrock East Miner V13 - By MasterKill', 'Welcome to MasterKills Varrock east mine and banker V13.0', 'Start all your players in the Varrock east bank', 'START', False);
      WriteLn('Plz allways allow popups');                                                                                                                                                                                                                                                                                                                                                                                                    If (SRLID = '') or (SRLPASSWORD = '') Then ErrorForm('[RUNETIME ERROR]', 'You need a srl ID and Pass to run this script! (line 51 and 52)', 'Plz get one at [url]www.stats.srl-forums.com[/url] and hit register.', 'ok =(', True);
      SrlRandomsReport;
      StartUp;
      WriteLn('Loading RuneScape.SMART ...');
      SmartSetupEx(world, False, True);
      SetTargetDC(SmartGetDC);
      while not(SmartReady) do Wait(100);
      ReplaceDebugLine(8, 'Loading RuneScape ...');
      Wait(10000);
    //Script play
      LoginPlayer;
      MarkTime(ScriptRunTime);
      SetupPlayer;
      Repeat
        HyperMainLoop;
        LogInFalseTrue;
      Until(NumberOfActive(False) = 0)
      ClearDeBug;
      WhileReport;
      WriteLn('');
      ErrorForm('Script Ended', 'Thank for using MasterKills Iron miner!', 'Reset your players and run it again :p', 'Done', False);
    end.

  18. #2343
    Join Date
    Apr 2007
    Location
    The Netherlands
    Posts
    189
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    question to the maker of this script: may i help you with this script?
    or just put some extra things in it such as:
    start at mining and bank
    and try to help him getting less lost

    srry for my bad english:P

  19. #2344
    Join Date
    Mar 2008
    Posts
    23
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    This Script is really starting to piss me off... to like absolutely no end. Heres the thing, everything works now, except on the trip to the mine it enters it but cant find the iron rocks. Every single time I try it this happens. I have to manully (sp) put my char there and let it go. I would like to be able to have this script work properly.. I need Suggestions! Im pulling my hair out here!

  20. #2345
    Join Date
    Mar 2008
    Posts
    23
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by nielskool View Post
    i tryed to fix the mine finding... for me it works hope for you guys too:P
    SCAR Code:
    Program NewIronMinerByMasterKill;

    {.include SRL/SRL/Misc/Smart.scar}
    {.include srl/srl.scar}
    {.include srl/srl/skill/mining.scar}

    var
      World, HowManyResponds: Integer;
      TheQuestion, TheRespond: array of array of String;

    {/----------------------------------------------------------------------------//

      Welcome to the varrock east mine and banker!
     
      This script is created by MasterKill from SRL-Forums

      SCAR           : 3.15
      SRL REV        : 15
      SCRIPT VERSION : 13.0
     
      DO NOT COPY THIS SCRIPT AND CLAIM IT AS YOUR OWN.
      If you want to use some procedures, it's ok, but CREDIT MASTERKILL.
     
    //----------------------------------------------------------------------------//

      Start your players in the varrock east bank. Some stuff this script is including:
     
      * Fast Auto Responder
      * Perfect Bank And Mine Finding
      * Anti Randoms, Anti Ban
      * Awesome Reports
      * Very Fast
      * TPoint Array Object Finding (for bank, iron and mine).
      * Pick Related:
          - Get New Pick From Bank When No Pick
          - Bank Pickaxe If Broken
          - Attamps to find the pickhead if it flies of
     
    //----------------------------------------------------------------------------//

      Start your players in the Varrock east bank with a pickaxe in first slot OR
      wielded. Make sure the mining level is > 14. Be smart and add some responds
      in the responds setup. plz setup the script:

    //----------------------------------------------------------------------------/}

                                    {Script Setup!}
    //----------------------------------------------------------------------------//

    Procedure SetupPlayers;
    begin
      HowManyPlayers  := 2; // NO MAX                            <-- SETUP CORRECT
                                                                                                                                                                                                                                                                                                                                                                      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer   := 0; // Start Player?                     <-- SETUP CORRECT
     
      World := 51;         // What world to macro in? be smart and chage this!
     
      SRLid :=       '5090';    // to run this script you need an srl ID and PASS
      SRLPassword := 'plietke';    // plz get those at "www.stats.srl-forums.com" and hit register

      Players[0].Name         := 'furbi10';   // UserName
      Players[0].Pass         := 'plietke';   // Password
      Players[0].Nick         := 'urbi';   // 3/4 String of Name (example: if accname is 'macroman' then set .nick at 'acro')
      Players[0].Active       := True; // Use this account?   True / False
      Players[0].integers[0]  := 3;    // loads before: logout / nextplayer

      Players[1].Name         := '';
      Players[1].Pass         := '';
      Players[1].Nick         := '';
      Players[1].Active       := False;
      Players[1].integers[0]  := 3;
     
      MouseSpeed := 12; // Mouse speed
    end;

    Procedure SetupResponds; // ADD RESPONDS FOR BETTER ANTI BAN !
    begin
      HowManyResponds := 3;  {<-- SETUP CORRECT !!}
                                                                                                                                                                                                    SetArrayLength(TheQuestion, HowManyResponds); SetArrayLength(TheRespond, HowManyResponds);
      TheQuestion[0] := ['mining', 'mine'];
      TheRespond[0]  := [IntToStr(Players[CurrentPlayer].Integers[1])]; // your players mining level
     
      TheQuestion[1] := ['respond'];
      TheRespond[1]  := ['what to say?', 'i dont have anything to say', 'no im bussy'];
     
      TheQuestion[2] := [Players[CurrentPlayer].nick]; // your players nickname
      TheRespond[2]  := ['no', 'get lost', 'im bussy', 'go away', 'just let me mine okeey?'];
    end;

    //----------------------------------------------------------------------------//
                               {End Script Setup!}
    //----------------------------------------------------------------------------//















    //----------------------------------------------------------------------------//
                        {Script Code! don't touch all below}
    //----------------------------------------------------------------------------//
    var
      x, y, I, Load, RockWaitTime, Responds, bankers, IronMined, IronOre: Integer;
      PickaxeStick, BrokenPickaxe, PickaxeD, Banked, ScriptRunTime, warn: Integer;
      Wielded: Boolean;
      SafeReportFileName: String;
      PickaxeDTM: Array [1..6] Of Integer;
     
    Procedure SetupDTM;
    begin
      Bankers := DTMFromString('78DA633CC3CCC070890105FCFFFF9FE13F906' +
           '684B0FF331E02AAB905916383AAF9F38789810BAA060418AF01D5' +
           'DC26A0E614617300197B14BA');
      IronOre := DTMFromString('78DA6314616060106640038C482490660712A' +
           '204D408000945026AE481840C0135AA40828F801A2920C141400D' +
           'C85FECF8D50000ACCF0135');
      PickaxeStick := DTMFromString('78DA6314666060906140038C4824901601124' +
           '204D44801095E026A40F2CA04D408000929026A048184220135E2' +
           '404214BF1A00B23A014A');
      BrokenPickaxe := DTMFromString('78DA6334676660A8656440058C4824907603A' +
           'A2926A0C61BA8A688801A3BA09A4C026A8C806A728950D34A408D' +
           '13504D3E7E3500C8FC050A');
      PickaxeDTM[1] := DTMFromString('78DA639CC0CCC0708B91011530229140BA13A' + //rune//
           '8E60301350B816AEE1350330DA8E60A01350B30CD71894A611041' +
           '52030015D70885');
      PickaxeDTM[2] := DTMFromString('78DA63DCC5CCC0708B91011530C2C9FF40C0B' + //addy//
           '819A8E6036E3560FA3450CD7D026A0E00D55C21A0E614A6394E41' +
           '4E0CBC486A00B2A90D20');
      PickaxeDTM[3] := DTMFromString('78DA637CC2CCC0708B91011530229140FA2E5' + //mith//
           '0CD07026ABE02D5DC27A0E61550CD15026ABE609AE3E010C72082' +
           'A40600C3490A05');
      PickaxeDTM[4] := DTMFromString('78DA63E4636160B8C5C8800A18914820CD0E5' + //steel//
           '4F381801A79A09AFB04D48800D55C21A0460ED39C8A8202061124' +
           '35000D5E0656');
      PickaxeDTM[5] := DTMFromString('78DA639CC0CCC0F08F91011530229140BA13A' + //iron//
           '8468409BF9A854035CC04D44C03AAF941C0AE0598E604F9FA3288' +
           '20A901004D1D0626');
      PickaxeDTM[6] := DTMFromString('78DA63DCC5CCC0F08F910115302291407A335' + //bronz//
           '08D08137E35A7816A9809A8390054F383805DA730CDF1B5516110' +
           '41520300A15606B9');
      PickaxeD := DTMFromString('78DA6314606060E06540038C4824909605125' +
           'C04D470020976026A40662810502302245808A801B9590CBF1A00' +
           '612000CF');
    end;

    // srl function, edited the WriteLn out
    function FindVarrockRoadColor2: Integer;
    var
      GC, a, l, TestColor, Red, Green, Blue : integer;
    var
      P:array of Tpoint;
    begin
      GC := 7304312;
      Flag;
      FindColorsSpiralTolerance(x, y, P, GC, MMX1, MMY1, MMX2, MMY2, 60);
      l:=GetArrayLength(P);
      for a:= 0 to l-1 do
      begin
        TestColor := GetColor(P[a].x, P[a].y);
        red := (TestColor mod 256);
        green := ((TestColor / 256) mod 256);
        blue := ((TestColor / 256) / 256);
        if Red - Blue <= 12 then if Red - Blue >= 8 then
        if Red - Green <= 6 then if Red - Green >= -1 then
        if Green - Blue <= 10 then if Green - Blue >= 4 then
        if GetColor(P[a].x + 5, P[a].y + 5) = TestColor then
        if GetColor(P[a].x + 3, P[a].y + 3) = TestColor then
        if GetColor(P[a].x, P[a].y + 5) = TestColor then
        if GetColor(P[a].x + 5, P[a].y) = TestColor then
        if GetColor(P[a].x, P[a].y + 3) = TestColor then
        if GetColor(P[a].x + 3, P[a].y) = TestColor then
        if GetColor(P[a].x + 5, P[a].y + 3) = TestColor then
        if GetColor(P[a].x + 3, P[a].y + 5) = TestColor then
        begin
          Result := TestColor;
          Exit;
        end;
      end;
      WriteLn('Could not find Varrock Road Color!');
      Result := 0;
    end;

    // srl function, edited the WriteLn out
    function FindStoneColor2: Integer;
    var
      GC, a, l, TestColor: integer;
    var
      P:array of Tpoint;
    begin
      GC := 2176863;
      Flag;
      FindColorsSpiralTolerance(MMCX, MMCY, P, GC, MMX1,MMY1,MMX2,MMY2, 60);
      l:=GetArrayLength(P);
      for a:= 0 to l-1 do
      begin
        TestColor := GetColor(P[a].x,P[a].y);
        if (GetColor(P[a].x-1,P[a].y)=TestColor-461068) then
        begin
          Result := TestColor;
          Exit;
        end;
      end;
      //WriteLn('Could not find Stone Color!');
      Result := 0;
    end;

    Function TheResponder: boolean;
    var
      I, II, Rand: Integer;
      Text, Name: String;
    begin
      If Not GetLastChatText(Text) Then Exit;
      For I := 0 To HowManyResponds - 1 Do
      begin
        For II := 0 To High(TheQuestion[I]) Do
        begin
          If (Pos(TheQuestion[I][II], Text) <> 0) then
          begin
            Name := GetBlackChatMessage;
            If (Pos(Players[CurrentPlayer].nick, Name) <> 0) then break;
            WriteLn('Respond:');
            WriteLn('/ ' + Name + ' ' + Text);
            Rand := Random(High(TheRespond[I]));
            TypeSend(TheRespond[I][Rand]);
            WriteLn('/ ' + Players[CurrentPlayer].Name + ': ' + TheRespond[I][Rand]);
            Responds := Responds + 1;
            ReportVars[2] := ReportVars[2] + 1;
            Result := True;
            exit;
          end;
        end;
      end;
    end;

    Procedure Randoms;
    begin
      FindNormalRandoms;
      if FindFight then
      begin
        MakeCompass('n');
        mouse(630, 154, 5, 5, True);
        fflag(0);
        SleepAndMoveMouse(15000+random(5000));
        Mouse(630, 15, 5, 5, True);
        SleepAndMoveMouse(2000 + random(2000));
        fflag(0);
      end;
    end;

    Function NumberOfActive(WriteLin: boolean): Integer;
    var
      R: Integer;
    begin
      Result := 0;
      for R := 0 To HowManyPlayers - 1 do
      if (Players[R].active = True) then
      Result := Result + 1;
      If (Result = 0) Then WriteLn('No More Players Active.')
      Else WriteLn('Still ' + IntToStr(Result) + ' players of the ' + IntToStr(howManyPlayers) + ' players are active.');
    end;

    Procedure WieldPickaxe;
    var
      rx, ry: Integer;
    begin
      Wielded := False;
      If (Players[CurrentPlayer].Integers[4] < 1) Then
      Players[CurrentPlayer].Integers[4] := GetSkillInfo('attack', False);
      Gametab(4);
      Wait(500 + random(500));
      if FindDTM(PickaxeD, rx, ry, 525, 182, 745, 473) then
      begin
        case Players[CurrentPlayer].strings[0] of
          'Rune': begin
                    If (Players[CurrentPlayer].Integers[4] > 39) then
                    begin
                      Mouse(rx, ry, 0, 0, True);
                      Wielded := True;
                    end;
                  end;
          'Addy': begin
                    If (Players[CurrentPlayer].Integers[4] > 29) then
                    begin
                      Mouse(rx, ry, 0, 0, True);
                      Wielded := True;
                    end;
                  end;
          'Mith': begin
                    If (Players[CurrentPlayer].Integers[4] > 19) then
                    begin
                      Mouse(rx, ry, 0, 0, True);
                      Wielded := True;
                    end;
                  end;
         'Steel': begin
                    If (Players[CurrentPlayer].Integers[4] > 4) then
                    begin
                      Mouse(rx, ry, 0, 0, True);
                      Wielded := True;
                    end;
                  end;
          'Iron': begin
                    Mouse(rx, ry, 0, 0, True);
                    Wielded := True;
                  end;
         'Bronz': begin
                    Mouse(rx, ry, 0, 0, True);
                    Wielded := True;
                  end;
        end;
        If Wielded Then
        WriteLn('Your strong enough to wield your pickaxe... Wielded.');
      end;
    end;

    Function MasterRoadWalk(TheColor, StartRadial, EndRadial, Radius, Xmod, Ymod: Integer; FailWait: Boolean): Boolean; // BETA
    Var
      ResultTPA: TPointArray;
    Begin
      If RadialWalkEx(ResultTPA, MMCX, MMCY, TheColor, 0, StartRadial, EndRadial, Radius) Then
      Begin
        Mouse(ResultTPA[0].x, ResultTPA[0].y, Xmod, Ymod, True);
        If FailWait Then
        Begin
          Wait(4000);
          FFlag(20);
        End Else
        Begin
          SleepAndMoveMouse(Random(2000));
          Wait(2000 + Random(2000));
        End;
        Result := True;
      End;
    End;

    Function GetPickAxe: Integer;
    Var
      MK: Integer;
    Begin
      Result := 0;
      For MK := 1 To 6 Do
      Begin
        If FindDTM(PickaxeDTM[MK], x, y, 532, 183, 751, 485) Then
        Begin
          Result := MK;
          Exit;
        End;
      End;
    End;

    Function SetupPick(PickaxeNumber: Integer): Boolean;
    Begin
      Case PickaxeNumber Of
        0: Exit;
        1: Begin
             RockWaitTime := 4000;
             Players[CurrentPlayer].Strings[0] := 'Rune';
           End;
        2: Begin
             RockWaitTime := 5000;
             Players[CurrentPlayer].Strings[0] := 'Addy';
           End;
        3: Begin
             RockWaitTime := 6000;
             Players[CurrentPlayer].Strings[0] := 'Mith';
           End;
        4: Begin
             RockWaitTime := 7000;
             Players[CurrentPlayer].Strings[0] := 'Steel';
           End;
        5: Begin
             RockWaitTime := 8000;
             Players[CurrentPlayer].Strings[0] := 'Iron';
           End;
        6: Begin
             RockWaitTime := 8000;
             Players[CurrentPlayer].Strings[0] := 'Bronz';
           End;
      End;
      Result := True;
      WriteLn(Players[CurrentPlayer].Strings[0] + ' pickaxe found in your iventory.');
    End;

    Procedure WhatPickaxeDoWeHave;
    Begin
      If Not LoggedIn Then Exit;
      WriteLn('Checking your Pickaxe...');
      GameTab(4);
      If Not SetupPick(GetPickaxe) Then
      Begin
        GameTab(5);
        If Not SetupPick(GetPickaxe) Then
        Begin
          WriteLn('You do not have a pickaxe! Plz get a pickaxe to mine iron.');
          Players[CurrentPlayer].Loc := 'No Pickaxe!';
          LogOut;
        End Else Wielded := True;
      End Else WieldPickaxe;
    End;

    Function GetInMine: boolean;
    Var
      RockCoords: Array Of TPoint;
      CheckCol: Integer;
    Begin
      WriteLn('prolly found the mine, try entering now...');
      FFlag(0);
      CheckCol := FindStoneColor2;
      If (CheckCol = 0) Then
      Begin
        WriteLn('lol not found the mine anymore :s but i wil try again');
      If FindColorTolerance (x, y, 2176863, MMX1, MMY1, MMX2, MMY2, 1) Then
        Begin
      MiddleTPAEx(RockCoords, X, Y);
      Mouse(x, y, 0, 0, True);
      FFlag(0);
      WriteLn('succesfully enterd the mine.');
      Result := True;
      Exit;
      end;
       WriteLn('i really could not find it sorry:P');
        Exit;
      End;
      FindColorsSpiralTolerance(x, y, RockCoords, 2176863, MMX1, MMY1, MMX2, MMY2, 1);
      MiddleTPAEx(RockCoords, X, Y);
      Mouse(x, y, 0, 0, True);
      FFlag(0);
      WriteLn('succesfully enterd the mine.');
      Result := True;
    End;

    Procedure ToThaMine;
    Var
      RicksRoadWalk: Integer;
    begin
      MakeCompass('N');
      If Not LoggedIn Then Exit;
      Players[CurrentPlayer].Loc := 'Moving To The Mine';
      WriteLn('');
      WriteLn('[To The Mine]');
      WriteLn('');
      WriteLn('Walking to the mine...');
      MasterRoadWalk(FindVarrockRoadColor2, 133, 20, 65, 3, 3, True);
      RadialRoadWalk(FindVarrockRoadColor2, 133, 60, 65, 3, 3);
      Repeat
        RicksRoadWalk := RicksRoadWalk + 1;
        If Not LoggedIn Then
        Begin
          WriteLn('player logged out while walking to the bank...');
          Players[CurrentPlayer].Loc := 'Logged Out To Mine';
          exit;
        End;
        If Not RadialRoadWalk(FindVarrockRoadColor2, 127, 228, 55, 1, 1) Then Break;
        If (RicksRoadWalk > 2) Then
        If FindColorTolerance (x, y, FindStoneColor2, MMX1, MMY1, MMX2, MMY2, 1) Then
        If GetInMine Then Exit;
      Until(RicksRoadWalk > 20)
      WriteLn('We did not found the mine, logging out player.');
      Players[CurrentPlayer].Loc := 'Not Found Mine';
      LogOut;
    end;

    Function FindTheBank: Boolean;
    Begin
      If Not LoggedIn Then Exit;
      FFlag(0);
      If FindDTM(bankers, x, y, MMX1, MMY1, MMX2, MMY2) Then
      Begin
        WriteLn('We have found the bankers DTM, entering bank...');
        Mouse(x, y, 2, 2, True);
        Result := True;
        Wait(3000);
        FFlag(0);
        WriteLn('Welcome in the Varrock east bank.');
      End;
    End;

    Procedure ToThaBank;
    var
      RRoadWalk: Integer;
    begin
      If Not LoggedIn Then Exit;
      Players[CurrentPlayer].Loc := 'Moving To The Bank';
      WriteLn('');
      WriteLn('[To The Bank]');
      WriteLn('');
      RadialRoadWalk(FindVarrockRoadColor2, 5, 50, 70, 1, 1);
      Randoms;
      RadialRoadWalk(FindVarrockRoadColor2, 337, 385, 65, 1, 1);
      Randoms;
      repeat
        If Not LoggedIn then
        begin
          WriteLn('Player logged out while walking to the bank.');
          Players[CurrentPlayer].Loc := 'Logged Out To Bank';
          Exit;
        end;
        RadialRoadWalk(FindVarrockRoadColor2, 240, 380, 65, 1, 1);
        Randoms;
        RRoadWalk := RRoadWalk + 1;
        If (RRoadWalk > 2) Then
        If FindDTM(bankers, x, y, 547, 6, 703, 163) Then
        If FindTheBank Then Exit;
      until (RRoadWalk > 20)
      WriteLn('Omg, can not find the bank! logging out...');
      Players[CurrentPlayer].Loc := 'Not Found The Bank';
      LogOut;
    end;

    {Function FindIron(var xr, yr: Integer): boolean;
    var
      TolSpeed, mx, my, NumberOfLenght, MK: Integer;
      IronCoords, RockCoords: Array Of TPoint;
      DaPoint: TPoint;
    begin
      TolSpeed := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      FindColorsSpiralTolerance(mx, my, IronCoords, 2832993, MSX1, MSY1, MSX2, MSY2, 6);
      NumberOfLenght := High(IronCoords);
      For MK := 0 To NumberOfLenght Do
      begin
        DaPoint := IronCoords[MK];
        FindColorsTolerance(RockCoords, 2832734, DaPoint.X - 15, DaPoint.Y - 15, DaPoint.X + 15, DaPoint.Y + 15, 20);
        MiddleTPAEx(RockCoords, X, Y);
        FindColorsTolerance(RockCoords, 1394003, X - 15, Y - 15, X + 15, Y + 15, 25);
        If(GetArrayLength(RockCoords)-1 > 5)Then
        Begin
          MiddleTPAEx(RockCoords, Xr, Yr);
          MMouse(xr, yr, 0, 0);
          If (GetColor(43, 9) = 14344978) Then
          If not GasFound(mx, my) Then
          Begin
            Result := True;
            Break;
          End;
        End;
      End;
      ColorToleranceSpeed(TolSpeed);
    End;}


    Function FindIron(var xr, yr: Integer): Boolean;
    Var
      RealIron, IronRock: Array Of TPoint;
      CurPoint: TPoint;
      TolSpeed, MK, xx, yy: Integer;
    Begin
      TolSpeed := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      FindColorsSpiralTolerance(x, y, RealIron, 2832989, MSX1, MSY1, MSX2, MSY2, 6);
      For MK := 0 To High(RealIron) Do
      Begin
        CurPoint := RealIron[MK];
        FindColorsTolerance(IronRock, 1659234, CurPoint.X - 15, CurPoint.Y - 15, CurPoint.X + 15, CurPoint.Y + 15, 20);
        If (High(IronRock) > 15) Then
        Begin
          MiddleTPAEx(IronRock, xx, yy);
          MMouse(xx, yy, 0, 0);
          If FindColorTolerance(x, y, 2832989, xx - 15, yy - 15, xx + 15, yy + 15, 6) Then
          Begin
            Wait(100 + Random(100));
            If (Pos('ine', rs_getuptext) <> 0) Then
            Begin
              xr := xx; yr := yy;
              Result := True;
              Exit;
            End;
          End;
        End;
      End;
      ColorToleranceSpeed(TolSpeed);
    End;

    Function CheckPickaxe: Boolean;
    begin
      If Wielded Then
      GameTab(5) Else GameTab(4);
      If FindDTM(PickaxeStick, x, y, 532, 183, 751, 485) Then
      Begin
        WriteLn('Noes! your pickhead flyd off!');
        Wielding := Wielded;
        If Not FindPick Then
        Begin
          Result := True;
          WriteLn('We lost your pickaxe head... moving back to bank...');
          GameTab(5);
          Mouse(584, 302, 10, 10, True);
          Wielded := False;
          Exit;
        End;
      End;
      If FindDTM(BrokenPickaxe, x, y, 532, 183, 751, 485) Then
      Begin
        Result := True;
        WriteLn('Sorry, but ' + Players[CurrentPlayer].Nick + ' broke your pickaxe, not MasterKills foult ;)');
        WriteLn('Moving back to the bank...');
        GameTab(5);
        Mouse(584, 302, 10, 10, True);
        Wielded := False;
        Exit;
      End;
      If Not FindDTM(PickaxeD, x, y, 532, 183, 751, 485) Then
      Begin
        Result := True;
        WriteLn('We cant find your pickaxe at all! Back to bank...');
        Wielded := False;
      End;
    End;

    Procedure MineThaLoad;
    Var
      NotF, errF, RWTime: Integer;
      BlackText: String;
    begin
      If Not LoggedIn Then Exit;
      Players[CurrentPlayer].Loc := 'Mining Full Load';
      WriteLn('');
      WriteLn('[MineThaLoad]');
      WriteLn('');
      FindPickHeadColor;
      SetRun(true);
      WriteLn('Run activated.');
      WriteLn('Starting mining...');
      Repeat
        If Not LoggedIn Then Exit;
        If FindIron(x, y) Then
        begin
          Mouse(x, y, 0, 0, True);
          MarkTime(RWTime);
          NotF := 0;
          TheResponder;
          Wait(1500);
          If FlagPresent Then Wait(1000);
          Repeat
            BlackText := GetBlackChatMessage;
            if (getcolor(486, 384) = 0) then
            if FindNpcChatText('ickaxe', Nothing) then
            If CheckPickaxe Then Exit;
            If GasFound(x, y) then
            begin
              Mouse(633, 83, 8, 8, True);
              Wait(25000);
            end;
            Randoms;
            If (Pos('anage', BlackText) <> 0) or (Pos('vailable', BlackText) <> 0) then break;
            SleepAndMoveMouse(200 + random(1000));
          Until(TimeFromMark(RWTime) > RockWaitTime)
        end else
        begin
          Wait(300);
          Randoms;
          NotF := NotF + 1;
          If (NotF > 14) Then
          Begin
            errF := errF + 1;
            If (errF > 4) Then
            Begin
              WriteLn('huh the script can not find any iron, while were in the mine...');
              Exit;
            End;
            WriteLn('Not found any iron, try to find the mine again...');
            If Not GetInMine Then
            Begin
              WriteLn('O dear, we got lost while mining... How wierd is that?');
              Players[CurrentPlayer].Loc := 'Lost While Mining';
              LogOut;
              Exit;
            End;
            WriteLn('Resume mining...');
            NotF := 0;
          End;
        End;
      Until InvFull
      WriteLn('... until where full.');
    End;

    var
      frmDesign              : TForm;
      Label1                 : TLabel;
      Label2                 : TLabel;
      StartButton            : TButton;
      OkiClick: Boolean;
      Upzor, onezor, twozor, buttumtext: string;

    procedure StartClick(sender: TObject);
    begin
      frmDesign.ModalResult:= mrOk;
      OkiClick := True;
    end;

    procedure InitForm;
    begin
      frmDesign := CreateForm;
      frmDesign.Left := 300;
      frmDesign.Top := 300;
      frmDesign.Width := 500;
      frmDesign.Height := 100;
      frmDesign.Caption := upzor;
      frmDesign.Color := clBlack;
      frmDesign.Font.Color := clWindowText;
      frmDesign.Font.Height := -11;
      frmDesign.Font.Name := upzor;
      frmDesign.Font.Style := [];
      frmDesign.Visible := False;
      frmDesign.PixelsPerInch := 96;
      Label2 := TLabel.Create(frmDesign);
      Label2.Font.Color := clWhite
      Label2.Parent := frmDesign;
      Label2.Left := 5;
      Label2.Top := 5;
      Label2.Width := 46;
      Label2.Height := 13;
      Label2.Font.Size := 10;
      Label2.Caption := onezor;
      Label1 := TLabel.Create(frmDesign);
      Label1.Font.Color := clWhite
      Label1.Parent := frmDesign;
      Label1.Left := 5;
      Label1.Top := 25;
      Label1.Width := 46;
      Label1.Height := 13;
      Label1.Font.Size := 10;
      Label1.Caption := twozor;
      StartButton := TButton.Create(frmDesign);
      StartButton.Parent := frmDesign;
      StartButton.OnClick := @StartClick;
      StartButton.Left := 5;
      StartButton.Top := 45;
      StartButton.Width := 80;
      StartButton.Height := 20;
      StartButton.Caption := buttumtext;
      StartButton.TabOrder := 10;
    end;

    procedure SafeInitForm;
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      ThreadSafeCall('InitForm', v);
    end;

    procedure ShowFormModal;
    begin
      frmDesign.ShowModal;
    end;

    procedure SafeShowFormModal;
    var
     v: TVariantArray;
    begin
      setarraylength(V, 0);
      ThreadSafeCall('ShowFormModal', v);
    end;

    Procedure ErrorForm(Uptextt, msgone, msgtwo, buttontext: String; Terminate: Boolean);
    begin
      upzor := uptextt;
      onezor := msgone;
      twozor := msgtwo;
      OkiClick := False;
      buttumtext := buttontext;
      repeat
        SafeInitForm;
        SafeShowFormModal;
        If OkiClick Then Break;
        PlaySound('C:\WINDOWS\Media\Windows XP Shutdown.wav');
        Wait(1000);
      Until OkiClick
      If Terminate then
      begin
        WriteLn('');
        Terminatescript;
      end;
    end;

    Function CurrentStatus: String;
    var
      MK, PlayerCount: Integer;
    begin
      for MK := 0 To HowManyPlayers - 1 do
      if (Players[MK].active = True) then
      PlayerCount := PlayerCount + 1;
      IF (PlayerCount = 0) then
      Result := 'Script succesfully ended. All players False.' else
      Result := 'there still where ' + IntToStr(PlayerCount) + ' of the ' + IntToStr(HowManyPlayers) + ' players active.';
    end;

    Procedure SafeReport;
    var
      SaveFileCreate: TStringList;
      MK: Integer;
    begin
      SaveFileCreate := TStringList.Create;
      SaveFileCreate.Add('Varrock east mine and banker version 13.0');
      SaveFileCreate.Add('    created by MasterKill');
      SaveFileCreate.Add('');
      SaveFileCreate.Add('Last status found in script:');
      SaveFileCreate.Add('    ' + CurrentStatus);
      SaveFileCreate.Add('');
      SaveFileCreate.Add('Script Report:');
      SaveFileCreate.Add('    Iron Mined    : ' + IntToStr(IronMined));
      SaveFileCreate.Add('    Times Banked  : ' + IntToStr(Banked));
      SaveFileCreate.Add('    Responds Made : ' + IntToStr(Responds));
      SaveFileCreate.Add('');
      SaveFileCreate.Add('Player Report:');
      For MK := 0 To HowManyPlayers - 1 Do
      begin
        SaveFileCreate.Add('  ' + Players[MK].Name);
        SaveFileCreate.Add('    Iron Mined    : ' + IntToStr(Players[MK].integers[2]));
        SaveFileCreate.Add('    Location      : ' + Players[MK].Loc);
        SaveFileCreate.Add('    Mining level  : ' + IntToStr(Players[MK].integers[1]));
      end;
      If Not SaveToFile(SaveFileCreate, SafeReportFileName) Then
      WriteLn('Could not save your report.');
    end;


    Procedure WhileReport;
    Var
      MK: Integer;
    begin
      WriteLn('');
      WriteLn('[Time Running: ' + TimeRunning + ']');
      WriteLn('[Iron Mined: ' + IntToStr(IronMined) + ']');
      WriteLn('[Times Banked: ' + IntToStr(Banks) + ']');
      WriteLn('[Respond[s] made: ' + IntToStr(Responds) + ']');
      WriteLn('[Mining ' + FloatToStr(IronMined div TimeFromMark(ScriptRunTime) * 3600000.0) + ' Iron a hour]');
      For MK := 0 To HowManyPlayers - 1 Do
      WriteLn(Players[MK].Name + ' = [' + IntToSTr(players[MK].integers[2]) + ' Iron Mined] [active? ' + BoolToStr(Players[MK].Active) + '] [Location: ' + Players[MK].Loc + ']');
      SrlRandomsReport;
      SafeReport;
      WriteLn('Progress report saved to: ' + SafeReportFileName);
    end;

    Function FindThaBankTPA: boolean;
    Var
      BankCoords, BoothCoords: Array Of TPoint;
      MK, mx, my, TolSpeed, NumberOfLenght: Integer;
      DaPoint: TPoint;
    begin
      TolSpeed := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      FindColorsSpiralTolerance(mx, my, BankCoords, 1593183, MSX1, MSY1, MSX2, MSY2, 6);
      NumberOfLenght := High(BankCoords);
      For MK := 1 To NumberOfLenght Do
      begin
        DaPoint := BankCoords[MK];
        FindColorsTolerance(BoothCoords, 1593183, DaPoint.X - 15, DaPoint.Y - 15, DaPoint.X + 15, DaPoint.Y + 15, 11);
        If(GetArrayLength(BoothCoords)-1 > 30)Then
        Begin
          MiddleTPAEx(BoothCoords, x, y);
          Mouse(x, y, 0, 0, False);
          Wait(100 + Random(50));
          If ChooseOption('uick') Then
          Begin
            Result := True;
            Break;
          End Else WriteLn('No bank booth here.');
        End;
      End;
      ColorToleranceSpeed(TolSpeed);
    End;

    Function PickaxeFound: Boolean;
    Begin
      If Wielded Then Result := True Else
      Result := FindDTM(PickaxeD, x, y, MIX1, MIY1, MIX2, MIY2);
    End;

    Function GetNewPickFromBank: Boolean;
    Begin
      If (Players[CurrentPlayer].Integers[1] > 40) then
      begin
        if FindDTM(PickaxeDTM[1], x, y, msx1, msy1, msx2, msy2) then
        begin
          Result := True;
          Mouse(x, y, 0, 0, True);
          Exit;
        end;
      end;
      If (Players[CurrentPlayer].Integers[1] > 30) then
      begin
        if FindDTM(PickaxeDTM[2], x, y, msx1, msy1, msx2, msy2) then
        begin
          Result := True;
          Mouse(x, y, 0, 0, True);
          Exit;
        end;
      end;
      If (Players[CurrentPlayer].Integers[1] > 20) then
      begin
        if FindDTM(PickaxeDTM[3], x, y, msx1, msy1, msx2, msy2) then
        begin
          Result := True;
          Mouse(x, y, 0, 0, True);
          Exit;
        end;
      end;
      If (Players[CurrentPlayer].Integers[1] > 5) then
      begin
        if FindDTM(PickaxeDTM[4], x, y, msx1, msy1, msx2, msy2) then
        begin
          Result := True;
          Mouse(x, y, 0, 0, True);
          Exit;
        end;
      end;
      if FindDTM(PickaxeDTM[5], x, y, msx1, msy1, msx2, msy2) then
      begin
        Result := True;
        Mouse(x, y, 0, 0, True);
        Exit;
      end;
      if FindDTM(PickaxeDTM[6], x, y, msx1, msy1, msx2, msy2) then
      begin
        Result := True;
        Mouse(x, y, 0, 0, True);
        Exit;
      end;
    End;

    Procedure SetupPlayer;
    begin
      If Not LoggedIn Then Exit;
      WriteLn('');
      WriteLn('[' + Players[CurrentPlayer].name + ' setup]');
      WriteLn('');
      SetAngle(True);
      MakeCompass('N');
      GameTab(2);
      Players[CurrentPlayer].integers[1] := GetSkillInfo('mining', False);
      WriteLn('Players mining level is ' + IntToStr(Players[CurrentPlayer].integers[1]));
      If (Players[CurrentPlayer].Integers[3] < 1) Then
      Players[CurrentPlayer].integers[3] := GetCombatLevel;
      WriteLn('Players combat level is ' + IntToStr(Players[CurrentPlayer].Integers[3]));  
      WhatPickaxeDoWeHave;
      SetupResponds;
    end;

    Procedure BankThaLoad;
    Var
      IronLoad, NotF: integer;
    begin
      If Not LoggedIn Then Exit;
      WriteLn('');
      WriteLn('[Bank The Load]');
      WriteLn('');
      Players[CurrentPlayer].Loc := 'In The Bank';
      IronLoad := CountItemsDtm('inv', IronOre);
      Repeat
        If Not LoggedIn Then
        begin
          WriteLn('Player logged out while banking?!');
          Players[CurrentPlayer].Loc := 'Logged Out While Banking';
          Exit;
        end;
        If FindThaBankTPA Then
        begin
          WriteLn('Opening the bank...');
          FFlag(0);
          players[CurrentPlayer].integers[2] := players[CurrentPlayer].integers[2] + IronLoad;
          IronMined := IronMined + IronLoad;
          WriteLn('Mined ' + IntToStr(IronLoad) + ' Iron, wich makes the grand total ' + IntToStr(IronMined) + '.');
          ReportVars[0] := ReportVars[0] + 1;
          ReportVars[1] := ReportVars[1] + IronLoad;
          Wait(1000 + Random(1000));
          If FindDTM(BrokenPickaxe, x, y, MIX1, MIY1, MIX2, MIY2)
          Or FindDTM(pickaxestick, x, y, MIX1, MIY1, MIX2, MIY2)
          Or Not PickaxeFound then
          Begin
            WriteLn('Your pickaxe is dead, looking for a new one...');
            Deposit(1, 28, True);
            If GetNewPickFromBank Then
            Begin  
              WriteLn('We got a new pickaxe from your bank, lukky bastard.');
              Mouse(485, 41, 5, 5, True);
              WhatPickaxeDoWeHave;
            End Else
            Begin
              WriteLn('This player has runned out of pickaxes... WHEHE!');
              Players[CurrentPlayer].Loc := 'Out Of PickAxes';
              Mouse(485, 41, 5, 5, True);
              LogOut;
              Exit;
            End;  
          End Else
          Begin
            WriteLn('Banking all stuff except for your pickaxe.');
            If Wielded Then Deposit(1, 28, True) else Deposit(2, 28, True);
            Mouse(485, 41, 5, 5, True);
          End;
          SetAngle(true);
          Banked := Banked + 1;
          WriteLn('banking succesfully completed.');
          Wait(100 + Random(50));
          MakeCompass('N');
          Exit;
        end else
        begin
          FFlag(0);
          If FindDTM(bankers, x, y, 547, 6, 703, 163) Then
          Begin
            Mouse(x, y, 0, 0, True);
            SleepAndMoveMouse(500 + Random(1000));
            FFlag(0);
          End Else
          Begin
            NotF := NotF + 1;
            SleepAndMoveMouse(2000 + Random(1000));
            If (NotF > 1) Then
            Begin
              WriteLn('We can not find the bank anymore. Player logout...');
              Players[CurrentPlayer].Loc := 'Lost Around Bank';
              LogOut;
              Exit;
            End;
          End;
        end;
      Until False
    end;

    Function GetSafeReportFilePath: String;
    Var
      Hour, Mins, Sec, MSec, Year, Month, Day: Word;
      M: String;
    Begin
      DecodeDate(Date, Year, Month, Day);
      DecodeTime(Now, Hour, Mins, Sec, MSec);
      case Month of
        1: M := 'Jan-';
        2: M := 'Feb-';
        3: M := 'Mar-';
        4: M := 'Apr-';
        5: M := 'May-';
        6: M := 'Jun-';
        7: M := 'Jul-';
        8: M := 'Aug-';
        9: M := 'Sep-';
        10: M := 'Oct-';
        11: M := 'Nov-';
        12: M := 'Dec-';
      end;
      Result := AppPath + 'MasterKill_Progress_Reports\IronMiner__' + IntToStr(Day) + '-' + M + IntToStr(Year) + '__' + Padz(IntToStr(Hour), 2) + '-' + Padz(IntToStr(Mins), 2) + '-' + Padz(IntToStr(Sec), 2) + '.txt';
    End;

    procedure StartUp;
    begin
      ClearDeBug;
      WriteLn('MasterKill prezents:                                               ');
      WriteLn(' ___                                    __                         ');
      WriteLn('|   |_______   ____    ____     _____  |__|  ____   _____ _______ ©');
      WriteLn('|   |\_  __ \ /    \  /    \   /     \ |  | /    \ /  __ \\_  __ \ ');
      WriteLn('|   | |  | \/(  ()  )|   |  \ |       \|  ||   |  \\  ___/ |  | \/ ');
      WriteLn('|___| |__|    \____/ |___|  / |__|_|  /|__||___|  / \___ \ |__|    ');
      WriteLn('                          \/        \/          \/      \/         ');
      WriteLn('                                                   and banker!  V13');
      Status('MasterKill productions! ©');
      disguise('MasterKill ©');
      Wait(3000);
      SafeReportFileName := GetSafeReportFilePath;
      for I := 0 to getarraylength(players)-1 do
      begin
        If (Players[I].Active = True) then
        Players[I].Loc := 'In The Bank' else
        Players[I].Loc := 'Not In Use';
        SetArrayLength(Players[I].integers, 5);
        SetArrayLength(Players[I].Strings, 1);
      end;
    end;

    procedure HyperMainLoop;
    begin
      Repeat
        ToThaMine;
        MineThaLoad;
        ToThaBank;
        BankThaLoad;
        WhileReport;
        Load := Load + 1;
      Until (Not LoggedIn) Or (Load - 1 > Players[CurrentPlayer].Integers[0])
    end;

    Procedure LogInFalseTrue;
    begin
      If Not LoggedIn then Players[CurrentPlayer].active := False;
      If (NumberOfActive(False) = 0) then exit;
      WriteLn('');
      WriteLn('[Player Done]');
      WriteLn('');
      NextPlayer(LoggedIn);
      Load := 0;
      SetupPlayer;
    end;

    begin
    //Setup
      SetupSRL;
      If Not (SRLVersionNumber = 15) Then ErrorForm('CAN NOT RUN', 'to run this script you need scar 3.15 and srl reversion 15', 'plz run the script again when you go those', 'OK =(', True);
      SetupDTM;
      SetupPlayers;
    //Startup, make ready
      ScriptID := '275';
      ErrorForm('Varrock East Miner V13 - By MasterKill', 'Welcome to MasterKills Varrock east mine and banker V13.0', 'Start all your players in the Varrock east bank', 'START', False);
      WriteLn('Plz allways allow popups');                                                                                                                                                                                                                                                                                                                                                                                                    If (SRLID = '') or (SRLPASSWORD = '') Then ErrorForm('[RUNETIME ERROR]', 'You need a srl ID and Pass to run this script! (line 51 and 52)', 'Plz get one at [url]www.stats.srl-forums.com[/url] and hit register.', 'ok =(', True);
      SrlRandomsReport;
      StartUp;
      WriteLn('Loading RuneScape.SMART ...');
      SmartSetupEx(world, False, True);
      SetTargetDC(SmartGetDC);
      while not(SmartReady) do Wait(100);
      ReplaceDebugLine(8, 'Loading RuneScape ...');
      Wait(10000);
    //Script play
      LoginPlayer;
      MarkTime(ScriptRunTime);
      SetupPlayer;
      Repeat
        HyperMainLoop;
        LogInFalseTrue;
      Until(NumberOfActive(False) = 0)
      ClearDeBug;
      WhileReport;
      WriteLn('');
      ErrorForm('Script Ended', 'Thank for using MasterKills Iron miner!', 'Reset your players and run it again :p', 'Done', False);
    end.


    Take ur username and pass out of it

  21. #2346
    Join Date
    Apr 2007
    Location
    The Netherlands
    Posts
    189
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    it does enter the mine, so you can see the rocks?
    does scar also say s"succesfully enterd the mine"?
    i took my pass out thx for the tip, now you have to get it out of the quote:P

  22. #2347
    Join Date
    Dec 2007
    Posts
    515
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Thanks for the account
    In the kingdom of the blind, the one-eyed man is king

  23. #2348
    Join Date
    Apr 2007
    Location
    The Netherlands
    Posts
    189
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    please give back my account

  24. #2349
    Join Date
    Jan 2008
    Location
    Barrie, Ontario, Canada
    Posts
    126
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by xminimanx View Post
    Take ur username and pass out of it
    You wanna NOT QUOTE HIS USERNAME AND HIS PASSWORD in there?....

    Morons such as infested999 just love free accounts... Now someone nice such as Nielskool has lost an account because he was trying to be nice... Oh and just to send a nice warning towards infested999, if you don't return the account to Nielskool, you will be reported and receive a ban
    Version 2 Of Sig, made my own vectors, used my own character and everything.
    http://img248.imageshack.us/img248/7...goodsigxp7.png

    The Shilo Fisher has been halted temporarily. Sorry guys... Too much school work at the moment.

  25. #2350
    Join Date
    Mar 2008
    Posts
    23
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by XxXx Toxin XxXx View Post
    You wanna NOT QUOTE HIS USERNAME AND HIS PASSWORD in there?....

    Morons such as infested999 just love free accounts... Now someone nice such as Nielskool has lost an account because he was trying to be nice... Oh and just to send a nice warning towards infested999, if you don't return the account to Nielskool, you will be reported and receive a ban
    Erm Sorry, But I'm just lookin out for the person. If other people are that low to steal someones account on a forum about Macroing..... Then the deserve a ban.

Page 94 of 105 FirstFirst ... 44849293949596104 ... LastLast

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Varrock East Mine PowerMiner
    By Blender in forum First Scripts
    Replies: 9
    Last Post: 02-24-2009, 04:02 PM
  2. South East Varrock Iron Miner & Banker
    By Daniel in forum RS3 Outdated / Broken Scripts
    Replies: 18
    Last Post: 03-28-2007, 02:25 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
  •