Page 1 of 3 123 LastLast
Results 1 to 25 of 58

Thread: [Ref] Ogre ranging script!

  1. #1
    Join Date
    Mar 2007
    Location
    <3
    Posts
    2,683
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default [Ref] Ogre ranging script!



    Moved to JR.Members!
    Enjoy it.

    Note:
    This is my yearly script to Jr.membs !
    Overusing this will result in me removing it.
    Hope you like it.

    Ogre Ranger! Version 2.0
    By N1ke!

    Don't got reflections? Go here

    You need by responder for this to work,
    Download the puplic version here then
    overwrite the CAutoResponder with the one
    i included in this post.

    What it does
    • Kill Ogres
    • Responds to simple questions
    • Logs if you got -100 arrows/darts/knives
    • SMART Paint CharReport&Scar ProgressReport
    • ToolBox!




    ToolBox!

    ToolBox! is a Runtime form which can be opened
    pushing F10(Defualt key). From that window you can
    select things the script will do. For this script
    i've got the following

    This form can be up and running at the same time
    as the script kills ogres without lag or freezing.
    After you click on something it will take 0-5 secs for
    the script to do what it's told.



    Don't forget to Enable Debug on S.M.A.R.T otherwise painting will not work.

    Replace GameTab.scar with the reflection one, as it fixes the Interface problems.

    For best result download the Worldswitcher.scar and replace it with SRL's current one.


    This is the final release, it will not be uptaded anymore!.

    I take no responsibility for banned/killed chars!

    SCAR Code:
    program New;
    {.include SRL/SRL/Misc/SMART.scar}
    {.include SRL/SRL.scar}
    {.include srl/srl/misc/worldswitcher.scar}
    {.include SRL/SRL/Reflection/Reflection.scar}
    {.include SRL/SRL/Misc/FindXP.Scar}

    Type
      Progress = Record
        StartExp, StartLevels, ExpGain, LevelsGain : Array [1..2] of Integer;
        WeaponSpot : Integer;
        Weapon : TInvItem;
        Time : Integer;
      end;

    var
      ProgressPlayer : array of Progress;
      TotalExp, TotalLevels, TotalAttacks,OgreIndex, Counter, Action: integer;
      TypeThis: String;
      frmDesign : TForm;
      Button : array [0..5] of TButton;
      TS : TEdit;

    const
      DebugMode = False;

      ChangeWorldIfCannon = True;
      FKeyForOptions = 10;

      XCordForSMARTProggie = 6;
      YCordForSMARTProggie = 25;

    procedure DeclarePlayers;
    begin
      HowManyPlayers:= 1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;

      Players[0].Name    := '';
      Players[0].Pass    := '';
      Players[0].Nick    := '';
      Players[0].Active  := True;
      Players[0].Booleans[0] := False; // Logout about every 10 minutes.
      Players[0].Booleans[1] := True; // Sleep once in a while..  /Needs Booleans[0] true.
      Players[0].Booleans[2] := True; // Take long sleeps. Good for 24/hour runs. /Needs Booleans[0] true.
      Players[0].Booleans[3] := True; // Special attack?
      Players[0].Booleans[4] := False; // Right Click only?

      Writeln( IntToStr ( HowManyPlayers ) + ' Players' );
      SetPlayerNameTPAs;
      SetArrayLength(ProgressPlayer, HowManyPlayers);
    end;

    Procedure DebugThis(S :String);
    begin
      If DebugMode Then
        Writeln(s + ' | LoggedIn : ' + BoolToStr(LoggedIn));
    end;

    Procedure WantOptions;Forward;

    Procedure DoButton1(Sender : TObject);
    begin
      TypeThis := TS.Text;
      TS.Text := '';
      Action := 1;
    end;

    Procedure DoButton2(Sender : TObject);
    begin
      Action := 2;
    end;

    Procedure DoButton3(Sender : TObject);
    begin
      Action := 3;
    end;

    Procedure DoButton4(Sender : TObject);
    begin
      Action := 4;
    end;

    Procedure DoButton5(Sender : TObject);
    begin
      Action := 5;
    end;

    Procedure DoButton6(Sender : TObject);
    begin
      Action := 6;
    end;

    procedure InitForm;
    var
      i: integer;
    begin
      frmDesign := CreateForm;
      frmDesign.Left := 200;
      frmDesign.Top := 345;
      frmDesign.Width := 200;
      frmDesign.Height := 345;
      frmDesign.Caption := 'ToolBox!';
      frmDesign.Color := clBlack;
      frmDesign.Font.Color := clWindowText;
      frmDesign.Font.Height := -11;
      frmDesign.Font.Name := 'MS Sans Serif';
      frmDesign.Font.Style := [];
      frmDesign.Visible := True;
      frmDesign.PixelsPerInch := 96;
      frmDesign.BorderStyle := BsSingle;
     
      TS := TEdit.Create(frmDesign);
      TS.Parent := frmDesign;
      TS.Left := 100;
      TS.Top := 23;
      TS.Width := 70;
      TS.Height := 20;
     
      For i:=1 to 5 do
      begin
        Button[i] := TButton.Create(frmDesign);
        Button[i].Parent := frmDesign;
        Button[i].Left := 30;
        Button[i].Top := 16 + I * 48;
        Button[i].Width := 140;
        Button[i].Height := 33;
        Button[i].TabOrder := I;
      end;
      Button[0] := TButton.Create(frmDesign);
      Button[0].Parent := frmDesign;
      Button[0].Left := 30;
      Button[0].Top := 16;
      Button[0].Width := 65;
      Button[0].Height := 33;
      Button[0].OnClick := @DoButton1;
      Button[0].Caption := 'Type this';

      Button[1].OnClick := @DoButton2;
      Button[1].Caption := 'Special attack';
     
      Button[2].OnClick := @DoButton3;
      Button[2].Caption := 'NextPlayer(True)';
     
      Button[3].OnClick := @DoButton4;
      Button[3].Caption := 'NextPlayer(False)';
     
      Button[4].OnClick := @DoButton5;
      Button[4].Caption := 'Uptade ProgressReport';
     
      Button[5].OnClick := @DoButton6;
      Button[5].Caption := 'Change world';
    end;

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

    procedure ShowFormModal;
    begin
      frmDesign.Show;
    end;

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

    Procedure OpenForm;
    begin
      SafeInitForm;
      SafeShowFormModal;
    end;

    Procedure GetWeapon;
    var
      Equiped : TItemArray;
    begin
      DebugThis('GetWeapon Started.');
      Equiped := GetEquippedItems;
      If Equiped[3].Stack > 100 then
      Begin
        ProgressPlayer[CurrentPlayer].WeaponSpot := 3;
        ProgressPlayer[CurrentPlayer].Weapon.ID := Equiped[3].ID;
        ProgressPlayer[CurrentPlayer].Weapon.Stack := Equiped[3].Stack;
        Exit;
      end;
      If Equiped[13].Stack > 100 then
      begin
        ProgressPlayer[CurrentPlayer].WeaponSpot := 13;
        ProgressPlayer[CurrentPlayer].Weapon.ID := Equiped[13].ID;
        ProgressPlayer[CurrentPlayer].Weapon.Stack := Equiped[13].Stack;
        Exit;
      end;
    end;

    Function HowMuchAmmo: Integer;
    begin
      DebugThis('HowMuchAmmo Started.');
      Result := GetEquippedItemAmountAt(ProgressPlayer[CurrentPlayer].WeaponSpot);
      Writeln('Ammo left : ' + IntToStr(Result));
      DebugThis('HowMuchAmmo ended : ' + IntToStr(Result));
    end;

    Procedure CheckAmmo;
    begin
      DebugThis('CheckAmmo Started.');
      If HowMuchAmmo < 100 then
      begin
        WriteLn(Players[CurrentPlayer].Name + ' Logged. Cause: Low ammo.');
        LogOut;
        Exit;
      end;
    end;

    Function ChangeWorld(WorldNumber: Integer; Members, Pvp: Boolean): Boolean;
    begin
      If LoggedIn Then Logout;
      Wait(1000+Random(2000));
      If WorldNumber > 0 then
      begin
        Result := SelectWorld(WorldNumber);
        Exit;
      end;
      Result := SelectWorld(RandomWorld(Members, Pvp));
    end;

    Function FindCannon: Boolean;
    var TempT : TPoint;
    begin
      If ChangeWorldIfCannon then
        Result := FindObjectEx(TempT, 6, 25);
    end;

    Function DealWithCannon:Boolean;
    begin
      If FindCannon Then
      begin
        DebugThis('Found Cannon, Changing world.');
        LogOut;
        ChangeWorld(0, True, False);
        Wait(RandomRange(1500, 10000));
        LoginPlayer;
        Result := True;
      end;
    end;

    {*******************************************************************************
    Function CountSpecial: Integer;
    By: N1ke!
    Description: Counts special attack power, results in 25, 50, 75 or 100.
    *******************************************************************************}

    Function CountSpecial: Integer;
    var
      Spec : array [1..2] of TPoint;
      i, x, y : Integer;
    begin
      If Not GameTab(1)Then Exit;
      Spec[1] := Point(602, 417);
      Spec[2] := Point(619, 426);
      Wait(250+Random(500));
      For i:=1 to 4 do
      begin
        If FindColorTolerance(x, y, 4294720, Spec[1].X, Spec[1].Y, Spec[2].X, Spec[2].Y, 10)then
        begin
          Result := Result + 25;
          Spec[1] := Point(Spec[1].X + 28, Spec[1].Y);
          Spec[2] := Point(Spec[2].X + 28, Spec[2].Y);
        end else Exit;
      end;
    end;


    {*******************************************************************************
    Function UseSpecial(PowerNeed: Integer):Boolean;
    By: N1ke!
    Description: Uses special. Powerneed = How much power you need to
    perform a special attack ( 25/50/75/100% ).
    *******************************************************************************}

    Function DoSpec(PowerNeed: Integer):Boolean;
    begin
      DebugThis('DoSpec Started.');
      If Not Players[CurrentPlayer].Booleans[3] then Exit;
      If CountSpecial >= PowerNeed then
      begin
        MouseBox(574, 417, 710, 426, 1);
        Result := True;
      end;
    end;

    {*******************************************************************************
    Function ChangeWorld: Boolean;
    by: N1ke!
    Description: Changes world.
    Leave WorldNumber to 0 for random world. If so choose Members/Pvp booleans.
    *******************************************************************************}


    Function CountPeople: Integer;
    var
      CDS : Array of Tplayer;
    begin
      DebugThis('CountPeople Started.');
      CDS := GetPlayers;
      Result := Length(CDS);
      DebugThis('CountPeople Ended : ' + IntToStr(Result));
    end;

    Function Crowded: Boolean;
    Begin
      Result := CountPeople >= 4;
    end;

    Procedure Gained;
    var
      MyStuff : TMe;

    begin
      DebugThis('Gained Started.');
      MyStuff := GetMe;
      If not Players[CurrentPlayer].Booleans[5] then
      begin
        ProgressPlayer[CurrentPlayer].StartExp[1] := MyStuff.Experience[3];
        ProgressPlayer[CurrentPlayer].StartExp[2] := MyStuff.Experience[4];
        ProgressPlayer[CurrentPlayer].StartLevels[1] := SmartGetFieldArrayInt(0, MaxLevels, 3);
        ProgressPlayer[CurrentPlayer].StartLevels[2] := SmartGetFieldArrayInt(0, MaxLevels, 4);
        Players[CurrentPlayer].Booleans[5] := True;
        Exit;
      end;
      ProgressPlayer[CurrentPlayer].ExpGain[1] := MyStuff.Experience[3] - ProgressPlayer[CurrentPlayer].StartExp[1];
      ProgressPlayer[CurrentPlayer].ExpGain[2] := MyStuff.Experience[4] - ProgressPlayer[CurrentPlayer].StartExp[2];
      ProgressPlayer[CurrentPlayer].LevelsGain[1] := SmartGetFieldArrayInt(0, MaxLevels, 3) - ProgressPlayer[CurrentPlayer].StartLevels[1];
      ProgressPlayer[CurrentPlayer].LevelsGain[2] := SmartGetFieldArrayInt(0, MaxLevels, 4) - ProgressPlayer[CurrentPlayer].StartLevels[2];
    end;

    Function Lost: Boolean;
    begin
      Result := True;
      If TileOnMS(Point(2528, 3372), 0)then
      begin
        Result := False;
        Exit;
      end else WalkToTile(Point(2528, 3372), 2, 0);
      If TileOnMM(Point(2528, 3372))then
      begin
        Result := False;
        Exit;
      end;
      Writeln('Lost!, can''t find the cage.');
    end;

    Procedure NewPlayer;
    begin
      SetAngle(True);
      SetAllChats('on', 'off', '', 'off', 'off');
      MarkTime(ProgressPlayer[CurrentPlayer].Time);
      GetAllLevels;
      Gained;
      GetWeapon;
    end;

    Function NChangePlayer: Boolean;
    begin
      If PlayersActive > 2 then
      begin
        Writeln('LoggedOut.  Cuase: Changing player.');
        NextPlayer(True);
        NewPlayer;
        Result := True;
      end;
    end;

    Procedure MaybeSleep;
    var
    v, h, Time: integer;
    begin
      Case Random(100) of

        1..10:begin
            If PlayersActive = 1 then
            begin
              If Not Players[CurrentPlayer].Booleans[1] Then
                Exit;
              LogOut;
              v := RandomRange(4, 13);
              h := v;
              MarkTime(Time);
              Repeat
                Writeln('Sleeping for ' + IntToStr(v) + ' minutes');
                Wait(1000*60*1);
                v := v - 1;
              Until(TimeFromMark(Time) > 1000*60*h);
            end;
          end;

        11,12:begin
            If PlayersActive = 1 then
            begin
              LogOut;
              If Not Players[CurrentPlayer].Booleans[2] Then
                Exit;
              v := RandomRange(30, 120);
              h := v;
              MarkTime(Time);
              Repeat
                Writeln('Sleeping for ' + IntToStr(v) + ' minutes');
                Wait(1000*60*1);
                v := v - 1;
              Until(TimeFromMark(Time) > 1000*60*h);
            end;
          end;
      end;
    end;

    Function GetHp: Integer;
    begin
      Result := GetMe.Levels[3];
    end;

    Function CheckEat: Boolean;
    var
      CHp, i : Integer;
    Begin
      DebugThis('CheckEat Started.');
      CHp := Round(Players[currentPlayer].Level[8] / 100 * RandomRange(40, 50));
      If GetHp < CHp then
      begin
         Writeln('Low hp eating');
         For i := 1 to 28 do
         begin
           If ExistsItem(i)then
           begin
             MMouseItem(i);
             Wait(50);
             If IsUpText('Eat')then
             begin
               MouseItem(i, True);
               Result := True;
               Exit;
             end else
             If i = 28 then
             begin
               RunAway('s', True, 2, 0);
               LogOut;
               Exit;
             end;
           end;
         end;
       end;
    end;

    Procedure TimeOuts;
    begin
      If Not LoggedIn then
      begin
        NextPlayer(False);
        NewPlayer;
      end;
      If TimeFromMark(ProgressPlayer[CurrentPlayer].Time) > 60000*RandomRange(7, 20)then
      begin
        If Players[CurrentPlayer].Booleans[0] then
          Logout;
        MaybeSleep;
        NChangePlayer;
        LoginPlayer;
        MarkTime(ProgressPlayer[CurrentPlayer].Time);
      end;
    end;

    Procedure AntiRandoms;
    Var
      InFight: Tme;
    begin
      FindNormalRandoms;
      InFight := GetMe;
      If InFight.InFight then
        RunAway('w', true, 1, RandomRange(2000, 5000));
    end;

    Procedure AntiBan;
    Begin
      Case Random(150) of
       1: HoverSkill('random', False);
       2: BoredHuman;
       3: MouseBox(59, 31, 647, 264, 3);
       5, 6: CheckEat;
       7..11 : Dospec(75);
       16..19: GameTab(RandomRange(1, 13));
      end;
    end;

    Function N_Ranging: Boolean;
    var
      i, x : integer;
    begin
      FTWait(1);
      repeat
        x := SmartGetFieldObject(0, MyPlayer)
        Result := SmartGetFieldInt(x, CharAnim) > -1;
        SmartFreeObject(x);
        Inc(i);
        Wait(200+Random(100));
      until(i > 7)or(result)or(Not(IsInteractingWithMeIndex(OgreIndex)));
    end;

    Function FindOgre: Boolean;
    var
      Ogres : Array of TNPCEx;
      i, x, y : integer;
    begin
      If Not LoggedIn Then Exit;
       Ogres := SortNPCsEx(GetNPCsByIDEx(2801));
       If GetArrayLength(Ogres) = 0 then Exit;
        For i:= 0 to High(Ogres) do
        begin
          If Ogres[i].InFight then Continue;
           If Not TileOnMSEx(Ogres[i].Tile, 0)then
             If Not WalkToTileMS(Point(2528, 3372), 0, 2)then
               WalkToTile(Point(2528, 3372), 0, 2);
           MMouse(Round(Ogres[i].MS.X), Round(Ogres[i].MS.Y), 10, 15);
           Wait(150+Random(125));

             If Players[CurrentPlayer].Booleans[4] then
             begin
               GetMousePos(x, y);
               Mouse(x, y, 0, 0, False);
               Wait(150+Random(100));
               If ChooseOption('ttack')then
               begin
                 Result := True;
                 OgreIndex := Ogres[i].Index;
                 Exit;
               end else Exit;
             end;

           If Pos('gre', rs_GetUpText) > 0 then
           begin
             GetMousePos(x, y);

             case Random(5) of
               0 : begin
                     Mouse(x, y, 0, 0, False);
                     Wait(150+Random(100));
                     If ChooseOption('ttack')then
                     begin
                       Result := True;
                       OgreIndex := Ogres[i].Index;
                       Exit;
                     end;
                   end;
               1..4: Begin
                       If Not Pos('gre', rs_GetUpText) > 0 then Exit;
                       Mouse(x, y, 0, 0, True);
                       Result := True;
                       OgreIndex := Ogres[i].Index;
                       Exit;
                     end;
             end;

           end else
           begin
             Result := FindOgre;
             Exit;
           end;
        end;
    end;

    Procedure FightWait;
    Begin
      DebugThis('FightWait Started.');
      FTwait(RandomRange(2, 4));
      CheckEat;
      WantOptions;
      Inc(TotalAttacks);
      Repeat
        Wait(200);
        WantOptions;
        AntiRandoms;
        AntiBan;
      Until(Not(N_Ranging));
    end;

    procedure SaveDebug; //Thanks to whoever made this...
    var
      FileNum: integer;
      begin
        FileNum := RewriteFile(ScriptPath + 'Ogres.txt', True);
        if (FileNum < 0) then
          WriteLn('@@@ Error with save: File Error.');
        WriteFileString(FileNum, GetDebugText);
        CloseFile(FileNum);
      end;

    Function GetPaintBitmap(Color, sX, sY: Integer; Text: TStringArray; Dist: Integer): Integer;
    Var
       TPA: TPointArray;
       H, Q, B: Integer;
    Begin
      Result := BitmapFromString(sX, sY, '');
      For B := 0 To High(Text) Do
      Begin
        TPA := LoadTextTPA(Text[b], SmallChars, H);
        For Q := 0 To High(TPA) Do
          FastSetPixel(Result, TPA[q].x, TPA[q].y + B * Dist, Color);
      End;
    End;

    Procedure ClearSMARTCanvas;

    Var
       BMP: Integer;
       SMARTCanvas, Canvas: TCanvas;
    Begin
      BMP := BitmapFromString(765, 503, '')
      SMARTCanvas := GetBitmapCanvas(BMP);
      Canvas := GetBitmapCanvas(BMP);
      SMARTCanvas.handle := SmartGetDebugDC;
      CopyCanvas(Canvas, SMARTCanvas, 0, 0, 765, 503, -1000, -1000, 1000, 1000);
      FreeBitmap(BMP);
    End;

    Procedure ProgressReportCanvas(X, Y: Integer);
    Var
       SCanvas, Canvas: TCanvas;
       BMP, Sec : Integer;
       AR, BR, AH, BH: Extended;
       Text: TStringArray;
       Mystuff: TMe;
    Begin
      Sec := GetTimeRunning Div 1000 + 1;
      ClearSMARTCanvas;
      BMP := BitmapFromString(765, 503, '');
      SCanvas := GetBitmapCanvas(BMP);
      SCanvas.handle := SmartGetDebugDC;
      MyStuff := GetMe;

      AR := MyStuff.Experience[4] - ConvertLvlToXP(SmartGetFieldArrayInt(0, MaxLevels, 4)-1);
      BR := ConvertLvlToXP(SmartGetFieldArrayInt(0, MaxLevels, 4)) - ConvertLvlToXP(SmartGetFieldArrayInt(0, MaxLevels, 4)-1);
      AR := Round((AR / BR) * 100);
      Round(AR*100);
     
      AH := MyStuff.Experience[3] - ConvertLvlToXP(SmartGetFieldArrayInt(0, MaxLevels, 3)-1);
      BH := ConvertLvlToXP(SmartGetFieldArrayInt(0, MaxLevels, 3)) - ConvertLvlToXP(SmartGetFieldArrayInt(0, MaxLevels, 3)-1);
      AH := Round((AH / BH) * 100);
      Round(AH*100);

      Text := [
           'Has been running for : ' + TimeRunning,
           'Tried to attack a total of ' + IntToStr(TotalAttacks) + ' Ogres.',
           'Range exp until level(' + IntToStr(SmartGetFieldArrayInt(0, MaxLevels, 4)+1) + ') : ' + IntToStr(R_XpTillNextLevel(4)),
           FloatToStr(AR) + '/100% to next Range level.',
           'HP exp until level(' + IntToStr(SmartGetFieldArrayInt(0, MaxLevels, 3)+1) + ') : ' + IntToStr(R_XpTillNextLevel(3)),
           FloatToStr(AH) + '/100% to next HP level.'];
      Canvas := GetBitmapCanvas(GetPaintBitmap(255, 765, 503, Text, 25));
      CopyCanvas(Canvas, SCanvas, 0, 0, 765, 503, X, Y, X + 765, Y + 503);
      FreeBitmap(BMP);
    End;

    Procedure ProgressReport;
    var
      i, ii : integer;
      s : string;
    begin
      If Not DebugMode then ClearDebug;
      Gained;
      TotalExp := 0;
      TotalLevels := 0;
      For i:= 0 to HowManyPlayers - 1 do
        For ii:=1 to 2 do
        begin
          TotalExp := TotalExp + ProgressPlayer[i].ExpGain[ii]
          TotalLevels := TotalLevels + ProgressPlayer[i].LevelsGain[ii]
        end;

      Writeln('  {-[]-¤ Multi Progress Report ¤-[]-}');
      Writeln('[-{-[>]   By N1ke! the genius.  [<]-}-]');
      Writeln('[-]');
      Writeln('[-{-[>]  Time running: ' + TimeRunning);
      Writeln('[-{-[>]  Total Exp: ' + IntToStr(TotalExp));
      If ResponsesMade > 0 then Writeln('[-{-[>]  Responses made: ' + IntToStr(ResponsesMade));
      If TotalLevels > 0 then Writeln('[-{-[>]  Total Levels: ' + IntToStr(TotalLevels));
      For i:= 0 to HowManyPlayers - 1 do
      begin
        Writeln('[-]');
        s := '[>] [' + BoolToStr(Players[i].Active) + '] Player: ' + SplitName(Players[i].Name) + ' / ';

        If ProgressPlayer[i].ExpGain[1] > 0 then
          s := s + 'HP Exp Gained: ' + IntToStr(ProgressPlayer[i].ExpGain[1]) + ' / ';

        s := s + 'HP Exp/h: ' + IntToStr(Round(ProgressPlayer[i].ExpGain[1] / (GetTimeRunning / 3600000.0))) + ' / ';

        If ProgressPlayer[i].ExpGain[2] > 0 then
          s := s + 'Range Exp Gained: ' + IntToStr(ProgressPlayer[i].ExpGain[2]) + ' / ';

        s := s + 'Range Exp/h: ' + IntToStr(Round(ProgressPlayer[i].ExpGain[2] / (GetTimeRunning / 3600000.0))) + ' / ';

        If ProgressPlayer[i].LevelsGain[1] > 0 then
          s := s + 'HP Level(s) Gained: ' + IntToStr(ProgressPlayer[i].LevelsGain[1]) + ' / ';
        If ProgressPlayer[i].LevelsGain[2] > 0 then
          s := s + 'Range Level(s) Gained: ' + IntToStr(ProgressPlayer[i].LevelsGain[2]) + ' / ';
        Writeln(s);
      end;
      SaveDebug;
    end;

    Procedure Checker;
    begin
      CheckAmmo;
      ProgressReport;
      Counter := 0;
    end;

    Procedure WantOptions;
    begin
      Case Action Of
        1: Begin
             CloseQC;
             TypeSend(TypeThis);
           End;

        2: DoSpec(75);

        3: Begin
             NextPlayer(True);
             NewPlayer;
           end;

        4: Begin
             NextPlayer(False);
             NewPlayer;
           end;

        5: ProgressReport;

        6: begin
             ChangeWorld(0, True, False);
             LoginPlayer;
           end;
           
           
      end;
      Action := 0;

      If IsFKeyDown(FKeyForOptions)then
        OpenForm;
    end;

    Procedure MainLoop;
    Begin
      LogInPlayer;
      NewPlayer;
      Repeat
       ProgressReportCanvas(XCordForSMARTProggie, YCordForSMARTProggie);
       WantOptions;
       DealWithCannon;
       If Lost Then
       begin
         Logout;
         TerminateScript;
       end;
       Inc(Counter);
       DebugThis('-A-');
       TimeOuts;
       DebugThis('-B-');
       If Crowded then
       begin
         DebugThis('-C-');
         LogOut;
         ChangeWorld(0, True, False);
         LoginPlayer;
       end;
       WantOptions;
       DebugThis('-D-');
       If Counter > RandomRange(7,15) then Checker;
       DebugThis('-G-');
        If(Not(LoggedIn))Then
        begin
          DebugThis('-H-');
          FTwait(8);
          If(Not(LoggedIn))Then
          begin
            NextPlayer(False);
            DebugThis('-I-');
            NewPlayer;
          end;
        end;
        DebugThis('-J-');
        WantOptions;
        If Not FindOgre then
        begin
          If Lost Then LogOut;
          AntiRandoms;
        end else FightWait;
        DebugThis('-L-');
        WantOptions;
        Case Random(20) of
          0,1,3: AntiBan;
          2: CheckEat;
        end;
        DebugThis('-M-');
      Until(False);
    DebugThis('-N-');
    end;

    begin
      SetupSRL;
      SmartSetupEx(65, False, True, False);
      Wait(5000);
      SetTargetDC(SmartGetDC);
      while not SmartActive do wait(100);
      SetupReflection;
      DeclarePlayers;
      SetupAutoResponder(90, True);
      Case Random(3) of
        0: If Not LoggedIn then ChangeWorld(0, True, False);
      end;
      MainLoop;
    end.
    Last edited by Naike; 03-27-2009 at 08:29 AM.

  2. #2
    Join Date
    Oct 2008
    Location
    C:\Simba\Includes\
    Posts
    7,566
    Mentioned
    19 Post(s)
    Quoted
    180 Post(s)

    Default

    I'll try this when I get back home, I was thinking about making one

    ~Camo
    Away for awhile, life is keeping me busy. | Want to get my attention in a thread? @Kyle Undefined; me.
    { MSI Phoenix || SRL Stats Sigs || Paste || Scripts || Quotes || Graphics }

    When posting a bug, please post debug! Help us, help you!

    I would love to change the world, but they won't give me the source code. || To be the best, you've got to beat the rest. || Logic never changes, just the syntax.
    If you PM me with a stupid question or one listed in FAQ, or about a script that is not mine, I will NOT respond.


    SRL is a Library of routines made by the SRL community written for the Program Simba. We produce Scripts for the game Runescape.


  3. #3
    Join Date
    Dec 2006
    Location
    Program TEXAS home of AUTOERS
    Posts
    7,934
    Mentioned
    26 Post(s)
    Quoted
    237 Post(s)

    Default

    err i really want to use, tho on my last chance(87 range pure) .... sigh

  4. #4
    Join Date
    Feb 2007
    Location
    Alberta,Canada
    Posts
    2,358
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    wow looks really nice, congrads on release (now all your have to do is release your fixed crab kiler )
    “Ignorance, the root and the stem of every evil.”

  5. #5
    Join Date
    Mar 2007
    Location
    <3
    Posts
    2,683
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Blumblebee i got a fixed crabber, But it's a Pay script.

    I'm trying to get back onto that chinchompa script i promissed a while back .

    *Hard*

  6. #6
    Join Date
    Dec 2006
    Location
    Program TEXAS home of AUTOERS
    Posts
    7,934
    Mentioned
    26 Post(s)
    Quoted
    237 Post(s)

    Default

    Quote Originally Posted by N1ke! View Post
    Blumblebee i got a fixed crabber, But it's a Pay script.

    I'm trying to get back onto that chinchompa script i promissed a while back .

    *Hard*
    coolio you gave to me for phr33 i <3 u

  7. #7
    Join Date
    Oct 2007
    Location
    The deep web
    Posts
    2,496
    Mentioned
    1 Post(s)
    Quoted
    3 Post(s)

    Default

    Quote Originally Posted by ~~Joker~~ View Post
    coolio you gave to me for phr33 i <3 u
    GIVE ME YOU'R PCER! ! ! !

    and nike it looks great. what quests are needed?
    Did someone say GDK?

  8. #8
    Join Date
    Mar 2007
    Location
    <3
    Posts
    2,683
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Jakey, did you even read the first page ?

    Biohazard

  9. #9
    Join Date
    Oct 2007
    Location
    The deep web
    Posts
    2,496
    Mentioned
    1 Post(s)
    Quoted
    3 Post(s)

    Default

    well im a dick, thanks
    Did someone say GDK?

  10. #10
    Join Date
    Dec 2007
    Location
    UK
    Posts
    479
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Dude. You released this just as i finished the quest! I <3 you!! My pure <3 you!!
    I don't play runescape. I auto it

  11. #11
    Join Date
    Mar 2007
    Location
    <3
    Posts
    2,683
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    My xmas gift to you

  12. #12
    Join Date
    Dec 2007
    Location
    UK
    Posts
    479
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Presuming you live in the UK... Merry xmas in 1 minute!!!

    And heres an xmas gift to you on my 1 def range pure (52 range)

    SCAR Code:
    #-[]-¤ Multi Progress Report ¤-[]-#
     #        By N1ke! the genius.
    #
     #       Time running : 41 Minutes and 13 Seconds
      #      Total Exp : 11462
     #       Total Levels : 2
     #
         [True] Player : Epic / HP Exp Gained : 2850 / HP Exp/h : 4148 / Range Exp Gained : 8612 / Range Exp/h : 12534 / HP Level(s) Gained : 1 / Range Level(s) Gained : 1 /

    Merry Xmas!!!!!!!!!!
    I don't play runescape. I auto it

  13. #13
    Join Date
    Jul 2007
    Location
    Norway.
    Posts
    1,938
    Mentioned
    3 Post(s)
    Quoted
    0 Post(s)

    Default

    You could've been a bit more creative when picking out a name for the script

    And, if I get a pin from you, I'll be your slave script tester bitch, so ..
    Um, yeah.

  14. #14
    Join Date
    Dec 2007
    Location
    UK
    Posts
    479
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Merry Xmas! Im now transfering my computer screen to a new HD one, expect a proggy from me today ladies!

    SCAR Code:
    #-[]-¤ Multi Progress Report ¤-[]-#
     #        By N1ke! the genius.
    #
     #       Time running : 1 Hours, 56 Minutes and 9 Seconds
      #      Total Exp : 40887
     #       Total Levels : 4
     #
         [True] Player : Epic / HP Exp Gained : 10163 / HP Exp/h : 5249 / Range Exp Gained : 30724 / Range Exp/h : 15870 / HP Level(s) Gained : 2 / Range Level(s) Gained : 2 /

    Failed to detect I ran out of ammo But its pretty flawless otherwise!!
    Going to buy 20k knives now on epic
    Edit: ^ Bollocks, they never buy man
    Edit2: A long time later after making some cash... Wooooooot On my way to ogres now.

    New proggy, its still running now so... Woot Woot. Insane exp!

    SCAR Code:
    #-[]-¤ Multi Progress Report ¤-[]-#
     #        By N1ke! the genius.
    #
     #       Time running : 3 Hours, 23 Minutes and 1 Seconds
      #      Total Exp : 72471
     #       Total Levels : 5
     #
         [True] Player : Epic / HP Exp Gained : 18027 / HP Exp/h : 5328 / Range Exp Gained : 54444 / Range Exp/h : 16090 / HP Level(s) Gained : 2 / Range Level(s) Gained : 3 /

    Well, ive stopped it at 3 hours, 42 mins!

    One word... Flawless.

    Edit4: I was gonna leave it at 58 range... But I cant resist! This script makes my day to be honest. Im getting 60! <3

    Edit5: Runnning on my main with full void/ 40k bronze knives! Wooooot.
    I don't play runescape. I auto it

  15. #15
    Join Date
    Mar 2007
    Location
    <3
    Posts
    2,683
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Glad you liked it

    Heres my proggie with a little updated version.

    Code:
        #-[]-¤ Multi Progress Report ¤-[]-#
     #        By N1ke! the genius.
    #
     #       Time running : 11 Hours, 19 Minutes and 34 Seconds
      #      Total Exp : 326587
     #       Total Levels : 2
     #
         [True] Player : 0nt / HP Exp Gained : 81443 / HP Exp/h : 7191 / Range Exp Gained : 245144 / Range Exp/h : 21644 / HP Level(s) Gained : 1 / Range Level(s) Gained : 1 /
    Edit : Stopped becuase of security of my account.

  16. #16
    Join Date
    Apr 2007
    Location
    England
    Posts
    313
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    looks pretty good, i will test now. Future update, add an autoresponder, its pretty simple and its essential at ogres.

    Good Job XD

    EDIT:

    Line 457: [Error] (19798:1): Unknown identifier 'ChangeWorld' in script

    this is a little annoying...

    EDITEDIT: Right... i searched it and found your worldswitcher fix. Might be worth mentioning that in the description :P

  17. #17
    Join Date
    Dec 2007
    Location
    UK
    Posts
    479
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by N1ke! View Post
    Glad you liked it

    Heres my proggie with a little updated version.

    Code:
        #-[]-¤ Multi Progress Report ¤-[]-#
     #        By N1ke! the genius.
    #
     #       Time running : 11 Hours, 19 Minutes and 34 Seconds
      #      Total Exp : 326587
     #       Total Levels : 2
     #
         [True] Player : 0nt / HP Exp Gained : 81443 / HP Exp/h : 7191 / Range Exp Gained : 245144 / Range Exp/h : 21644 / HP Level(s) Gained : 1 / Range Level(s) Gained : 1 /
    Edit : Stopped becuase of security of my account.
    HAHA lol. Pwned me... But were you trusting it with full void? Heh.
    I don't play runescape. I auto it

  18. #18
    Join Date
    Dec 2006
    Location
    Copy pastin to my C#
    Posts
    3,788
    Mentioned
    8 Post(s)
    Quoted
    29 Post(s)

    Default

    Is this the newest version you got the 24h with?

  19. #19
    Join Date
    Dec 2007
    Location
    UK
    Posts
    479
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Yeh, i think so.
    I don't play runescape. I auto it

  20. #20
    Join Date
    Dec 2006
    Location
    Copy pastin to my C#
    Posts
    3,788
    Mentioned
    8 Post(s)
    Quoted
    29 Post(s)

    Default

    Line 457: [Error] (20584:1): Unknown identifier 'ChangeWorld' in script C:\SCAR 3.15\Scripts\Ogre.scar
    Hmm?

    Changed it to RandomWorld(True, False)...

    #-[]-¤ Multi Progress Report ¤-[]-#
    # By N1ke! the genius.
    #
    # Time running : 23 Minutes and 36 Seconds
    # Total Exp : 11655
    #
    [True] Player : X 0 R / HP Exp Gained : 2907 / HP Exp/h : 7389 / Range Exp Gained : 8748 / Range Exp/h : 22235 /
    Sweet, that's like 500k exp in 24 hours

    Aww, I had a 2h proggie, but then it said NextPlayer(False) somewhy in Debug and I tried hitting run again, BOOOOM scar crashed...

    Seems that every time it takes a sleepy breaky it sets NextPlayer to false

  21. #21
    Join Date
    Dec 2007
    Location
    UK
    Posts
    479
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Works epically well for me! 73-76 Range on my main so far. Got 50k knives for 80 so we shall see!
    I don't play runescape. I auto it

  22. #22
    Join Date
    Mar 2007
    Location
    <3
    Posts
    2,683
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I've been away for 2 days so i havnt seen these comments.

    A new version is comming up very soon

  23. #23
    Join Date
    Dec 2007
    Location
    UK
    Posts
    479
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Whats being added etc?
    I don't play runescape. I auto it

  24. #24
    Join Date
    Mar 2007
    Location
    <3
    Posts
    2,683
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    New version out! V 1.1!

    Added my Responder and fixed it up!
    You need my responder to get it to work(Read first post).

    Code:
      {-[]-¤ Multi Progress Report ¤-[]-}
    [-{-[>]   By N1ke! the genius.  [<]-}-]
    [-]
    [-{-[>]  Time running: 1 Hours, 7 Minutes and 46 Seconds
    [-{-[>]  Total Exp: 38588
    [-{-[>]  Responses made: 1
    [-]
    [>] [True] Player: w0nt / HP Exp Gained: 9624 / HP Exp/h: 8520 / Range Exp Gained: 28964 / Range Exp/h: 25640 /

  25. #25
    Join Date
    Dec 2006
    Location
    Program TEXAS home of AUTOERS
    Posts
    7,934
    Mentioned
    26 Post(s)
    Quoted
    237 Post(s)

    Default

    omfg wish my pure wasnt on probation :P (got unbanned though jagex prolly waiting for me to do something wrong) lol

    though must use on my lvl 55 pure 70 range atm!!!

Page 1 of 3 123 LastLast

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Need a ranging script and a magic training script
    By Bergkamp in forum News and General
    Replies: 4
    Last Post: 12-09-2008, 01:04 PM
  2. ranging script
    By weby in forum RS3 Outdated / Broken Scripts
    Replies: 10
    Last Post: 11-27-2008, 11:16 PM
  3. Ranging script
    By Doggie in forum RS3 Outdated / Broken Scripts
    Replies: 3
    Last Post: 10-30-2008, 03:48 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
  •