Results 1 to 13 of 13

Thread: RiddareRalf's Powerminer

  1. #1
    Join Date
    May 2007
    Location
    Sweden
    Posts
    31
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default RiddareRalf's Powerminer

    RiddareRalf's Powerminer v0.20

    About me:
    This is my first scar script ever although I have programmed before.
    I've also made a Powerminer called "RiddareRalfs Powerminer" but that was in VB and was along time ago.
    I know that there are alot of Powerminers out there but I wanted to make one as my first script.
    I would appreciate if you could give me some reports or improvements of this script, thanks.


    Description:
    This is a standard powerminer with most of the antirandoms. It also has a Anti-ban procedure which will make you look human.
    I've made the whole script myself although some parts are "taken" from other scripters.
    I've also modded my script so it's easier to set how many players you would like to have (if you took anything else than 6 earlier made the script incorrect).
    Programmed and suited for Scar 2.03 using SRL 3.6


    Instruction:
    Just some pointers...
    • Fill in all info - Please, take the time to fill in the info in the script. Otherwise it may not run correctly.
    • Set upp all players so that they stand next to some rocks.
    • Set the screen to very bright (I could have done the script to do this but I think most of the people already have it set).
    • Use low detailed with 32Bit colours screen settings.
    Features:
    • Antirandoms
    • Anti-ban
    • Auto update function
    • Multiplayer support
    • News script
    Credits to:
    • Sumilion - For the newsscript (improved this one a bit) and the "check for update" procedure.
    • Yakman - For the Antiban procedures (I also improved them a bit).

    Here is the script:
    SCAR Code:
    {.Script Info:
    # ScriptName  = RiddareRalf's Powerminer
    # Author      = RiddareRalf  [RiddareRalf@gmail.com]
    # Description = This is a powerminer for RS2 using SRL.
                    Please fill in all the required info below.
    # Version     = 0.20   (for Scar 2.03 and SRL version 3.6)
    # Date        = 20.05.2007
    # Comments    = Under development...
    /Script Info}


    {If you would like to share this script to other
     sources then please ask me first. }


    {Also, please post a comment or progress at:
    http://www.villavu.com/forum/showthread.php?t=10341}


    {=========================================================================]
    | Description:                                                            |
    |   This is a script that will powermine almost any ore for yo.           |
    | Instructions:                                                           |
    |   1.Use a 32bit resolution and set your RS brightness to very bright.   |
    |   2.The script is suited for Scar 2.03 using SRL.                       |
    |   3.Start next to mining rocks.                                         |
    |   4.have the pickaxe wielded or in the inventory slot, remember to      |
    |   adapt the constant "PickWielded" to your settings.                    |
    |   5.Please fill in ALL the necessary info below or the script won't     |
    |   work correctly.                                                       |
    [=========================================================================}


    program RalfsPowerMiner;

    {.include srl/srl.scar}
    {.include srl/srl/skill/Mining.scar}
    {.include SRL/SRL/Misc/Trade.scar}
    {.include srl/srl/skill/Fighting.scar}

    //==============================[Setup]===================================\\
    const
      // Script Setup
      ThisVersion  = '0.20';   // The current version of this script
      DownloadNewsVar = True; // If it should download the latest news
      CheckForUpdates = True; // If it should look and download updates
      UseAntiBan = True;      // You know what this is...

      // Player Setup
      StartPlayer  = 0;       // The player to start with
      AmountOfPlayers = 1;    // Change this to the amount of characters
      MiningWait   = 2;       // Max time to wait before taking next ore (Seconds)
      PickWielded  = False;   // Is your pickaxe wielded?
      HowManyLoads = 10;       // The number of loads to do
      RunningDir   = 'N';     // Direction to run if you get attacked
      RunFar       = True;   // Run far if being attacked?
      OreTolerance = 2;     // Change this if you know what it is

      // Ore colors
      ClayColor=3764366;      // If ore isn't found then change this value
      CopperColor=5870567;    // If ore isn't found then change this value
      TinColor=9013652;       // If ore isn't found then change this value
      IronColor=2305869;      // If ore isn't found then change this value
      SilverColor=10921650;   // If ore isn't found then change this value
      CoalColor=2438711;      // If ore isn't found then change this value
      GoldColor=2016753;      // If ore isn't found then change this value
      MithrilColor=7425100;   // If ore isn't found then change this value
      AdamantiteColor=6717286;// If ore isn't found then change this value
      RuniteColor=0;          // To come but who do even powermine runite?

    var
    OreDTM, LoadsDone, OreToMineColor : Integer;
    OresMined : Integer;
    Experience, ExpValue : Extended;

    //===========================[Player Setup]================================\\
    procedure DeclarePlayers;
    begin
         HowManyPlayers := 6; // Don't edit this one

         CurrentPlayer := StartPlayer;
         NumberOfPlayers(HowManyPlayers);

         Players[0].Name    :='Username';
         Players[0].Pass    :='Password';
         Players[0].Nick    :='ass';  // 3-4 letters from your name. No CAPS
         // Names: Clay, Copper, Tin, Iron, Silver, Gold, Mith, Addy)
         Players[0].String1 :='Iron'; // What do you want to mine?
         Players[0].Active:= True;

         Players[1].Name    :='Username';
         Players[1].Pass    :='Password';
         Players[1].Nick    :='ssw';
         Players[1].String1 :='Copper';
         Players[1].Active:= False;    // Be sure to change this if you are using multiple players

         Players[2].Name    :='Username';
         Players[2].Pass    :='Password';
         Players[2].Nick    :='ssw';
         Players[2].String1 :='copper';
         Players[2].Active:= False;

         Players[3].Name    :='Username';
         Players[3].Pass    :='Password';
         Players[3].Nick    :='ssw';
         Players[3].String1 :='Copper';
         Players[3].Active:= False;

         Players[4].Name    :='Username';
         Players[4].Pass    :='Password';
         Players[4].Nick    :='ssw';
         Players[4].String1 :='Copper';
         Players[4].Active:= False;

         Players[5].Name    :='Username';
         Players[5].Pass    :='Password';
         Players[5].Nick    :='ssw';
         Players[5].String1 :='Copper';
         Players[5].Active:= False;
    end;

    //======================================================================\\
    //                          My Signature                                \\
    //======================================================================\\
    procedure Signature;
    begin
      Writeln('______ _     _     _               ______      _  __' );
      Writeln('| ___ (_)   | |   | |              | ___ \    | |/ _|');
      Writeln('| |_/ /_  __| | __| | __ _ _ __ ___| |_/ /__ _| | |'  );
      Writeln('|    /| |/ _` |/ _` |/ _` | |__/ _ \    // _` | |  _|');
      Writeln('| |\ \| | (_| | (_| | (_| | | |  __/ |\ \ (_| | | |'  );
      Writeln('\_| \_|_|\__,_|\__,_|\__,_|_|  \___\_| \_\__,_|_|_|'  );
     Writeln('RiddareRalf provides you with:');
     Writeln('            RiddareRalfs Powerminer');
    end;

    //======================================================================\\
    //                          Progress Report                             \\
    //======================================================================\\
    procedure ProgressReport;
    begin
      SRLRandomsReport;
      Writeln('==========================================');
      Writeln('     RiddareRalfs Progress Report:');
      Writeln('');
      Writeln('    Name:       ' + Players[CurrentPlayer].Name);
      Writeln('    Ores mined: ' + IntToStr(OresMined));
      Writeln('    Experience: ' + FloatToStr(Experience));
      Writeln('    Loads done: ' + IntToStr(LoadsDone));
      Writeln('    Worked for: ' + ScriptTime2(1));
      Writeln('==========================================');
    end;

    //======================================================================\\
    //             CheckVersion Script  (Idea taken from Sumilion)          \\
    //======================================================================\\
    procedure CheckVersion;
    var
      TheFileNumber: Integer;
      CurrentVersion: Extended;
      TheScriptString, ScriptName, CurrentVersionString : string;
    begin
      CurrentVersionString := GetPage('http://www.wiileague.org/RS/currentversion.txt');
      CurrentVersion := StrToFloat(CurrentVersionString);
      if(CurrentVersion > StrToFloat(ThisVersion)) then
      begin
        Cleardebug;
        Writeln('Attention!');
        Writeln('');
        Writeln('There is a new version available!');
        Writeln('Downloading the latest version...');
        TheScriptString := GetPage('http://www.wiileague.org/RS/powerminer.txt');
        ScriptName := 'RiddareRalfs Powerminer  v' + CurrentVersionString + '.scar';
        TheFileNumber := ReWriteFile(ScriptPath + ScriptName, false);
        WriteFileString(TheFileNumber, TheScriptString);
        Writeln('The script has now been downloaded!');
        Writeln('You can find the script at: ' + ScriptPath + ScriptName);
        TerminateScript;
      end;
    end;

    //======================================================================\\
    //                 News Script  (Idea taken from Sumilion)              \\
    //======================================================================\\
    procedure DownloadNews;
    var
      Timer, x  : Integer;
      New, TheNews, Temp : string;
    begin
      Status('The news is being downloaded...');
      Wait(1);
      x := 0;
      TheNews := Getpage('http://www.wiileague.org/RS/thenews.txt');
      AddToReport('[==========================]');
      AddToReport('  RiddareRalf News (V ' + ThisVersion + ')');
      MarkTime(Timer);
      repeat
        x := x + 1;
        new := copy(TheNews, x, 1);
        if(new = ',') then
        begin
          AddToReport('  ' + Temp);
          Temp := '';
        end;
        if not (new = ',') then
          Temp := Temp + new;
      until (new = '|') or (TimeFromMark(Timer) >= 3000)
      AddToReport('[==========================]');
      Status('Running script...');
    end;

    //======================================================================\\
    //                          Load Images                                 \\
    //======================================================================\\
    procedure LoadImages;
    begin
      OreDTM := DTMFromString('78DA635CC8C0C0D0C98002F6E41A30FC07D28' +
        'C40FC1F0818970219B50C6880918115AA06CC5B03241A08A8590E' +
        '242611503317484C27A0661211E680CC68C6AF06001A2C0EAA');
    end;

    //======================================================================\\
    //                  Free Images (This is for the memory)                \\
    //======================================================================\\
    procedure FreeImages;
    begin
      FreeDTM(OreDTM);
    end;

    //======================================================================\\
    //                          Find Gas (Anti Random)                      \\
    //======================================================================\\
    procedure FindTheGas;
    begin
      if (FindGas(x, y)) then
      begin
        //PerfectNorth;    // Same here, we don't want to run in the wrong dir
        MakeCompass('N');
        HighestAngle;    // Just to make sure
        RunAwayDirection(RunningDir);
        Wait(19000);
        RunBack;
      end;
    end;

    //======================================================================\\
    //                 FindTheRandoms - Finds the randoms                   \\
    //======================================================================\\
    // Switch case because I might extend this one
    procedure FindTheRandoms;
    var
      i: Integer;
    begin
      for i := 1 to 5 do
      begin
        case I of
        1:  FindTalk;
        2:  FindNormalRandoms;
        3:  FindTheGas; // Always good to check for this an extra time
        4:  FindPick;   // Checking for the pickaxe
        5:  FindTalk;   // Call it a third time to be sure
        end;
        Wait(1)
      end;

      if (FindFight) then
      begin
        Runawaydirection(RunningDir);
        Wait(16000);
        RunBack;
      end;
    end;

    //======================================================================\\
    //     MouseAntiBan - Moves mouse human-like (Anti-ban) By Yakman      \\
    //======================================================================\\
    procedure MouseAntiBan;
    begin
      if not(LoggedIn)then Exit;
      case Random(6) of
        0 : IdleTime(1000 + Random(350),500,1.0);
        1 : IdleTime(1000 + Random(350),1000,1.0);
        2 : IdleTime(1000 + Random(350),750,0.5);
        3 : SleepAndMoveMouse(2500 + Random(2500));
        4 : SleepAndMoveMouse(1500 + Random(1500));
        5 : SleepAndMoveMouse(500 + Random(500));
      end
    end;

    //======================================================================\\
    //         MyAntiBan - Anti-Ban procedure by Yakman (modded a bit)      \\
    //======================================================================\\
    procedure MyAntiBan;//From Yakman
    var
      DItem, DBanMe : Integer;
    begin
      if not(LoggedIn)then
        Exit;
      if not(UseAntiBan)then
        Exit;
      DBanMe := Random(18);
      case DBanMe of
        0 : MMouse(Random(MSX2), Random(MSY2),0,0);
        1 : RandomRClickEvery(2 + Random(13));
        2 : HoverSkill('mining', False);
        3 : HoverSkill('smithing', False);
        4 : RotateEvery(20+random(10));
        5 : LeaveScreenEvery(5+random(5));
        6 : HoverEvery(15+random(5),'random');
        7 : HoverEvery(15+random(5),players[currentplayer].skill);
        8 : MouseAntiBan;
        9 : begin
              DItem:=1+random(14);
              if(ExistsItem(DItem))then
                DragItem(DItem,15+random(10));
            end
        10 : begin
               GameTab(1+random(12));
               wait(1500+random(500));
               GameTab(4);
             end;
        11 : HoverSkill('fletching', False);
        12 : HoverSkill('cooking', False);
        13 : HoverSkill('defence', False);
        14 : HoverSkill('hitpoints', False);
        15 : HoverSkill('fishing', False);
        16 : begin
               MakeCompass('S');
               wait(1500+random(500));
               MakeCompass('N');
             end;
        17 : begin
               MakeCompass('W');
               wait(1500+random(500));
               MakeCompass('N');
             end;
        18 : begin
               LowestAngle;
               Wait(random(500));
               MakeCompass('E');
               Wait(random(250));
               HighestAngle;
               Wait(random(500));
               MakeCompass('N');
               Wait(random(250));

             end;
      end;
    end;

    //======================================================================\\
    //                          Start Mining                                \\
    //======================================================================\\
    procedure MiningProcedure;
    begin
        repeat
          if(FindObj3( x, y, 'Mine' , OreToMineColor, OreTolerance)) then
          begin
               MMouse(x,y,0,0);
               FindTheGas;
               Wait(150+random(100));
               Mouse(x,y,0,0,true);
               FindTheRandoms;
               FindTheGas;
               Wait(MiningWait * 1000);
          end;
          Wait(Random(500));
        until (invfull)
    end;

    //======================================================================\\
    //                          Drop Ore                                   \\
    //======================================================================\\
    procedure DropOre;
    begin
      OresMined := OresMined + (CountItemDtm(OreDTM) - 8);
      Experience := OresMined * ExpValue;
      repeat
        if(FindDTM(OreDTM,x,y,MIX1,MIY1,MIX2,MIY2)) then
        begin
          Mouse(x, y, 0, 0, false);
          wait(400 + random(100));
          ClickOption('rop',2);
          wait(1000 + random(200));
          FindTheRandoms;
        end;
      until (not FindDTM(OreDTM,x,y,MIX1,MIY1,MIX2,MIY2))
      LoadsDone := LoadsDone + 1;
    end;

    //======================================================================\\
    //                          Setup Player                                \\
    //======================================================================\\
    procedure SetupPlayer;
    begin
      Loadsdone:=0;
      MakeCompass('N');
      HighestAngle;
      FindPickHeadColor;

      // Setup the color to mine
      case Players[CurrentPlayer].String1 of
       'Copper' : OreToMineColor := CopperColor;
       'Tin'    : OreToMineColor := TinColor;
       'Iron'   : OreToMineColor := IronColor;
       'Silver' : OreToMineColor := SilverColor;
       'Gold'   : OreToMineColor := GoldColor;
       'Coal'   : OreToMineColor := CoalColor;
       'Mithril': OreToMineColor := MithrilColor;
       'Addy'   : OreToMineColor := AdamantiteColor;
      end;

      // I rather do this than using begin and end, less  code
      case Players[CurrentPlayer].String1 of
       'Copper' : ExpValue := 17.5;
       'Tin'    : ExpValue := 17.5;
       'Iron'   : ExpValue := 35;
       'Silver' : ExpValue := 40;
       'Gold'   : ExpValue := 65;
       'Coal'   : ExpValue := 50;
       'Mithril': ExpValue := 80;
       'Addy'   : ExpValue := 95;
      end;
    end;

    //======================================================================\\
    //                          Switch Player                               \\
    //======================================================================\\
    procedure SwitchPlayer;
    begin
      if((CurrentPlayer + 1) = AmountOfPlayers) then
      begin
        Writeln('The script is now done!');
        Logout;
        TerminateScript;
      end;
      NextPlayer(True);
      OresMined := 0;     // We must set this to 0 since it's a new char
      Experience := 0;    // We must set this to 0 since it's a new char
      Writeln('Switched players successfully');
      SetupPlayer;
    end;

    //======================================================================\\
    //                          Setup Script                                \\
    //======================================================================\\
    procedure SetupScript;
    begin
      SetUpSRL;
      DisguiseScar('Untitled - Notepad');
      EquipPick := PickWielded; // Necessary
      LoadImages;
      wait(2000);
      DeclarePlayers;
      ActivateClient;
      LoginPlayer;
      SetUpSRLMining;
      PickUpItems := True; // Picking up randoms items if pickhead is gone
      BenMouse := False;   // Turning of BenMouse to speed up a little
      SetupPlayer;
    end;

    //======================================================================\\
    //                          The Main Loop                               \\
    //======================================================================\\
    procedure MainLoop;
    begin
      repeat
        if (LoadsDone = HowManyLoads) then
          SwitchPlayer;
        FindTheRandoms;
        if (not (LoggedIn)) then
        begin
          FreeImages; // The script stops now and we must free the memory
          Exit;
        end;
        MiningProcedure;
        DropOre;
        MyAntiBan;
        ProgressReport;
      until (false) // Never ending loop I know but I have "If not logged in"
    end;

    begin
      Cleardebug;
      ClearReport;
      Signature;
      if (CheckForUpdates) then
        CheckVersion;
      if (DownloadNewsVar) then
        DownloadNews;
      SetupScript;
      MainLoop;
    end.
    Changelog:
    Version 0.2:
    • Improved antirandom events
    • Improved (and fixed) dropping procedure.
    • New progress report including how much EXP you gained and how many rocks you've mined.

    Help me, help you, post a comment or a progress report.
    Thanks,

    RiddareRalf

  2. #2
    Join Date
    May 2007
    Posts
    1
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I r used version 0.2 and it r teh great wroks!

    TY!!

    Dwonlaod is teh recomended!

    BTW, nice scripts

  3. #3
    Join Date
    May 2007
    Location
    Sweden
    Posts
    31
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Here's a progress. I set it to mine 10 loads and it did it.
    Code:
    ==========================================
         RiddareRalfs Progress Report:
    
        Name:        XXXXXX
        Ores mined: 218
        Experience: 7630
        Loads done: 10
        Worked for: 00:40:57
    ==========================================
    It seems that it takes 4 minutes to mine a load of iron.
    Maybe I have to improve that a bit...

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

    Default

    verry nice miner left mad 205k off of it very good job A+++
    :google: :f: :google:

  5. #5
    Join Date
    Jun 2007
    Location
    Mianus
    Posts
    863
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    nice script i recomend this to all ppl out there that wants a great script that works!

    lol keep up the good work

  6. #6
    Join Date
    Jan 2008
    Posts
    50
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    yo i got this error and all i did on that line was put in 'Iron'

    Line 84: [Error] (16297:12): Unknown identifier 'STRING1' in script

  7. #7
    Join Date
    Jan 2008
    Posts
    10
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    k im getting an error in line 84 with an unknown identifier even though i put in iron
    any explanation or solution?
    thanks

  8. #8
    Join Date
    Dec 2006
    Location
    Boss central
    Posts
    811
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    dont gravedig

    this was made over 7 month's ago
    dam lechers
    Being A Boss

  9. #9
    Join Date
    Sep 2008
    Posts
    2
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Nice ^^

  10. #10
    Join Date
    Dec 2006
    Location
    .̿̂̔͋͗̎̆ͥ̍̒ͤ͂̾̌̀̅
    Posts
    3,012
    Mentioned
    1 Post(s)
    Quoted
    3 Post(s)

    Default

    Quote Originally Posted by Stoned Smile View Post
    Nice ^^
    Yes very nice. I'm glad you like +1 year old powerminers.

  11. #11
    Join Date
    Apr 2007
    Posts
    2,593
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Lol @ GoF.

    I've seen so much uber spamz0rz on the forums lately..We need to crack down!

  12. #12
    Join Date
    Sep 2008
    Posts
    72
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Line 27: [Error] (27:1): Unable to register function function FindGapsTPA(TPA : TPointArray; MinPixels: Integer): T2DPointArray; in script C:\DOCUME~1\R3b0rN\LOCALS~1\Temp\RiddareRalfs Powerminer v0.1-1.scar


    Anyone knows a fix???

  13. #13
    Join Date
    Sep 2008
    Posts
    40
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Quote Originally Posted by soddarkness View Post
    Line 27: [Error] (27:1): Unable to register function function FindGapsTPA(TPA : TPointArray; MinPixels: Integer): T2DPointArray; in script C:\DOCUME~1\R3b0rN\LOCALS~1\Temp\RiddareRalfs Powerminer v0.1-1.scar


    Anyone knows a fix???
    The script is out of date, try finding another one

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. ess powerminer
    By Kasi in forum OSR Help
    Replies: 1
    Last Post: 02-14-2008, 07:42 PM
  2. help on my powerminer
    By Kyle in forum OSR Help
    Replies: 2
    Last Post: 12-23-2007, 01:59 PM
  3. My First PowerMiner
    By w0g in forum First Scripts
    Replies: 14
    Last Post: 10-16-2007, 12:54 AM
  4. RiddareRalf's Powerminer
    By RiddareRalf in forum RS3 Outdated / Broken Scripts
    Replies: 33
    Last Post: 07-26-2007, 02:33 AM
  5. Powerminer
    By CamHart in forum RS3 Outdated / Broken Scripts
    Replies: 3
    Last Post: 11-30-2006, 03:14 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
  •