Results 1 to 8 of 8

Thread: F2P Runespan

  1. #1
    Join Date
    May 2012
    Location
    Brazil
    Posts
    51
    Mentioned
    0 Post(s)
    Quoted
    7 Post(s)

    Default F2P Runespan

    I saw a thread requesting an AIO F2P Runespan script, so I decided to leech off of Kyle and edit his script.

    I've asked Kyle in his original thread if I may continue "developing" this. He approved. :P

    Quote Originally Posted by Kyle Undefined View Post
    That's fine, no worries
    99% of the credit goes to him for the base of the script
    1% of the credit goes to me for editting it slightly

    I have almost no experience with this type of scripting, so please bare with me.

    It might be sloppy, but I tested it and it works just fine.

    Code:
    program F2PRunespan;
    
    {$DEFINE SMART}
    {$i srl/srl.simba}
    {$I SRL/SRL/Misc/Debug.Simba}
    
    const
      {* Don't touch *}
      Version = '1.7';
    
      {* SRL Stats *}
      SRLStats_Username = '';
      SRLStats_Password = '';
    
      {* Object Constants *}
      objUndeadSoul     = 0;
      objLivingSoul     = 1;
      objSoulWraith     = 2;
      objBloodySkulls   = 3;
      objBloodPool      = 4;
      objBloodWraith    = 5;
      objSkulls         = 6;
      objDeathWraith    = 7;
      objJumper         = 8;
      objShifter        = 9;
      objNebula         = 10;
      objWaterEssling   = 11;
      objVine           = 12;
      objLawHound       = 13;
      objCosmicHound    = 14;
      objChaosHound     = 15;
      objAstralHound    = 16;
      objNatureHound    = 17;
      objBodyHound      = 18;
      objCCloud         = 19;
      objAirEss         = 20;
      objWaterPool      = 21;
      objFleshyGrowth   = 22;
      objFireStorm      = 23;
      objEarthEss       = 24;
      objRockFrag       = 25;
      objFireball       = 26;
      objMindEssling    = 27;
      objCyclone        = 28;
    
      (* Break settings *)
      SwitchWorlds  = True;    // Switch worlds after a break?
      TakeBreaks    = False;   // Take Breaks during runtime?
      BreakIn       = 180;     // How long before we take a break? (minutes)
      BreakFor      = 20;      // How long will we break for? (minutes)
      Bir           = 13;      // Random minutes to add/subtract from how long until we break
      Bfr           = 5;       // Random minutes to add/subjtract from break duraction
    
      {* Script Constants *}
      ClickAnywhere  = False;  // Turns off the island detection, will click any object, no matter what island it's on
                               // True turns this option off, False makes it click only on your island.
    
      Debug = True;            // If things aren't working, set this to true and tell us what it says
                               // Or if you want to narrow down colors to make script even better :)
    type
      {* TObj Type *}
        TObj = record
        Hue, Sat : Extended;
        Name: string;
        UpText : TStringArray;
        ObjID, Color, Tol, LvlReq, Max, Min, IXP: Integer;
      end;
    
    type
      {* TObjectArray Type *}
      TObjectArray = array of TObj;
    
    var
      {* Script Variables *}
      StartXP, XPH, XP, TP, RCt, RCLvl, TW, CurrentXP, EssenceDTM, EX, EY, IslandColor, IslandTol, EssenceCount: Integer;
      TI,Floors: Integer;
      Objects : TObjectArray;
      IslandHue, IslandSat : Extended;
      Higher, SafeNub, FirstIsland : Boolean;
      TB : Tbox;
    
      (* Break variables *)
      w, x, y, z, RealBTime, CurrentBTime, BreakRounds : Integer;
    
    procedure DeclarePlayers();
    begin
      HowManyPlayers := 1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;
    
      with Players[0] do
      begin
        Name          := '';      // Your RuneScape Account Name
        Pass          := '';      // Your RuneScape Account Password
        Active        := True;    // Use in the Script. True / False.
    	  Booleans[0]   := True;    // Set to False if you want to search for all Objects
        Booleans[1]   := False;   // Logout if a random is found
    
        // This is for searching for specific Objects, add / remove as needed. Order doesn't matter
        Integers      := [objFireBall, objFleshyGrowth, objWaterPool, objFireStorm, objBodyHound, objEarthEss, objAirEss, objVine, objCyclone];
      end;
    end;
    
    procedure SetDTM;
    begin
      EssenceDTM := DTMFromString('mrAAAAHic42BgYHBkYmDwAGIXILYBYksodgdiXyB+DlTzCIgfQvEzIP4AxG+A+CkQW5ibMRjo64ExiG1tZcHg6uLE4O7mwmBsZMjABVSDDzMSwDAAAJ3CDvU=');
    end;
    
    procedure Fr33DTM;
    begin
      FreeDTM(EssenceDTM);
    end;
    
    procedure DebugThis(s : string);
    begin
      if(Debug)then
        WriteLn(s);
    end;
    
    procedure SetupObjects();
    begin
      DebugThis('-[DEBUG]- Setup Objects');
      SetLength(Objects, 29);
    
      with Objects[objWaterEssling] do
      begin
        ObjID := objWaterEssling;
        Name := 'WaterEssling';
        UpText := ['Water Essling', 'ater', 'er essl', 'ssling'];
        Color := 12085388;
        Tol := 17;
        Hue := 1.29;
        Sat := 0.99;          //messed up for now
        LvlReq := 5;
        Max := 0;
        Min := 0;
        IXP := 13;
      end;
    
      with Objects[objVine] do
      begin
        ObjID := objVine;
        Name := 'Vine';
        UpText := ['Siphon Vine', 'phon V', 'hon v'];
        Color := 1200463;
        Tol := 18;
        Hue := 0.28;
        Sat := 1.75;
        LvlReq := 17;
        Max := 900;
        Min := 60;
        IXP := 36;
      end;
    
      with Objects[objBodyHound] do
      begin
        ObjID := objBodyHound;
        Name := 'Body esshound';
        UpText := ['Siphon Body', 'on Bod', 'Body', 'ody ess', 'ody esshound', 'Siphon Body esshound'];
        Color := 14448236;
        Tol := 24;
        Hue := 0.06;
        Sat := 1.43;
        LvlReq := 20;
        Min := 250;
        Max := 700;
        IXP := 24;
      end;
    
      with Objects[objAirEss] do
      begin
        ObjID := objAirEss;
        Name := 'Air essling';
        UpText := ['ir ess', 'iphon Air', 'Siphon Air essling'];
        Color := 15187588;
        Tol := 20;
        Hue := 0.05;
        Sat := 2.04;
        LvlReq := 1;
        Max := 250;
        Min := 50;
        IXP := 10;
      end;
    
      with Objects[objWaterPool] do
      begin
        ObjID := objWaterPool;
        Name := 'Water Pool';
        UpText := ['ter poo', 'iphon Wat', 'Siphon Water pool', 'ater pool'];
        Color := 15187588;
        Tol := 20;
        Hue := 0.05;
        Sat := 2.04;
        LvlReq := 5;
        Max := 250;
        Min := 50;
        IXP := 11;
      end;
    
      with Objects[objFleshyGrowth] do
      begin
        ObjID := objFleshyGrowth;
        Name := 'Fleshy Growth';
        UpText := ['eshy grow', 'iphon Fle', 'Siphon Fleshy growth', 'shy gro'];
        Color := 4082573;
        Tol := 11;
        Hue := 0.07;
        Sat := 0.49;
        LvlReq := 20;
        Max := 250;
        Min := 50;
        IXP := 47;
      end;
    
      with Objects[objFireStorm] do
      begin
        ObjID := objFireStorm;
        Name := 'Fire Storm';
        UpText := ['ire sto', 'iphon Fir', 'Siphon Fire storm', 'ire sto'];
        Color := 2571174;
        Tol := 3;
        Hue := 0.19;
        Sat := 4.75;
        LvlReq := 27;
        Max := 250;
        Min := 50;
        IXP := 42;
      end;
    
      with Objects[objEarthEss] do
      begin
        ObjID := objEarthEss;
        Name := 'Earth essling';
        UpText := ['rth ess', 'iphon Ear', 'Siphon Earth essling', 'arth essl'];
        Color := 4744582;
        Tol := 15;
        Hue := 0.04;
        Sat := 0.32;
        LvlReq := 1;
        Max := 250;
        Min := 50;
        IXP := 15;
      end;
    
      with Objects[objRockFrag] do
      begin
        ObjID := objRockFrag;
        Name := 'Rock Fragment';
        UpText := ['Siphon Rock', 'on Roc', 'Rock', 'Fragment'];
        Color := 3434345;
        Tol := 13;
        Hue := 0.41;
        Sat := 0.46;
        LvlReq := 9;
        Min := 60;
        Max := 900;
        IXP := 29;
      end;
    
      with Objects[objFireball] do
      begin
        ObjID := objFireball;
        Name := 'Fireball';
        UpText := ['Siphon Fireball', 'on Fire', 'reball', 'fireball'];
        Color := 1924282;
        Tol := 12;
        Hue := 0.36;
        Sat := 1.10;
        LvlReq := 14;
        Min := 60;
        Max := 900;
        IXP := 35;
      end;
    
      with Objects[objMindEssling] do
      begin
        ObjID := objMindEssling;
        Name := 'Mind Essling';
        UpText := ['Mind Essling', 'ind', 'nd essl', 'ssling'];
        Color := 7905200;
        Tol := 17;
        Hue := 0.21;
        Sat := 0.40;
        LvlReq := 1;
        Max := 150;
        Min := 2;
        IXP := 30;
      end;
    
      with Objects[objCyclone] do
      begin
        ObjID := objCyclone;
        Name := 'Cyclone';
        UpText := ['Siphon Cyclone', 'clone', 'yclone', 'cyclone'];
        Color := 2698292;
        Tol := 6;
        Hue := 0.51;
        Sat := 1.10;
        LvlReq := 1;
        Min := 80;
        Max := 900;
        IXP := 19;
      end;
    
      DebugThis('-[DEBUG]- Objects are setup');
    end;
    
    function GetObject(vObj : Integer) : TObj;
    begin
      Result := Objects[vObj];
    end;
    
    function GetObjectByXP(xp : Integer) : TObj;
    var
      i : Integer;
    begin
      for i := 0 to High(Objects) do
        if(Objects[i].IXP = xp)then
          Result := Objects[i];
    end;
    
    procedure AddObject(var objArr : TObjectArray; ObjID : Integer);
    begin
      SetLength(objArr, Length(objArr) + 1);
      objArr[High(objArr)] := GetObject(ObjID);
    end;
    
    procedure FilterObjects();
    var
      tmpObjects : TObjectArray;
      i : Integer;
    begin
      if(not(Players[CurrentPlayer].Booleans[0]))then
        Exit;
    
      DebugThis('-[DEBUG]- Filtering Objects');
      for i := 0 to High(Objects) do
        if(InIntArray(Players[CurrentPlayer].Integers, Objects[i].ObjID))then
          AddObject(tmpObjects, Objects[i].ObjID);
    
      SetLength(Objects, High(tmpObjects));
      Objects := tmpObjects;
      DebugThis('-[DEBUG]- Objects are filtered');
    end;
    
    procedure SortObjects();
    var
      tmpObjects : TObjectArray;
      TIA : TIntegerArray;
      i : Integer;
    begin
      DebugThis('-[DEBUG]- Sorting Objects');
      SetLength(TIA, Length(Objects));
    
      for i := 0 to High(Objects) do
        TIA[i] := Objects[i].IXP;
    
      Quicksort(TIA);
      InvertTIA(TIA);
    
      SetLength(tmpObjects, Length(Objects));
    
      for i := 0 to High(TIA) do
        tmpObjects[i] := GetObjectByXP(TIA[i]);
    
      Objects := tmpObjects;
      DebugThis('-[DEBUG]- Objects are sorted');
    end;
    
    procedure SetFalse(reason : string; logOutPlayer : Boolean);
    begin
      WriteLn('** SetFalse ** Reason := ' + reason);
      Players[CurrentPlayer].Active := False;
    
      if(logOutPlayer)then
        Logout;
    
      if(HowManyPlayers = 1)then
        TerminateScript();
    end;
    
    function CheckForRandoms() : Boolean;
    var
      i : Integer;
    begin
      DebugThis('-[DEBUG]- Checking for randoms');
    
      if(Players[CurrentPlayer].Booleans[1])then
      begin
        for i := 0 to High(SRL_Randoms) do
        begin
          if (SRL_Randoms[i].detect <> nil) and (SRL_Randoms[i].detect()) then
          begin
            Result := True;
            Break;
          end;
        end;
    
        if(Result)then
          SetFalse('Random Detected', True);
      end else
        FindNormalRandoms();
    end;
    
    function K_FindObj(var x, y, vObj : Integer) : Boolean;
    var
      fObj : TObj;
      a, h : Integer;
      TPA  : TPointArray;
      ATPA : T2DPointArray;
      tmpCTS : Integer;
    begin
      if(not(LoggedIn))then Exit;
      CheckForRandoms();
      DebugThis('-[DEBUG]- Starting Object search');
    
      fObj := GetObject(vObj);
    
      tmpCTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
    
      with fObj do
      begin
        DebugThis('-[DEBUG]- Searching for Object - ' + Name);
        SetColorSpeed2Modifiers(Hue, Sat);
    
        FindColorsSpiralTolerance(MSCX, MSCY, TPA, Color, TB.X1, TB.Y1, TB.X2, TB.Y2, Tol);
        ATPA := TPAtoATPAEx(TPA, 20, 20);
        SortATPASize(ATPA,True);
    
        H := High(ATPA);
    
        for a := 0 to H do
        begin
          MiddleTPAEx(atpa[a], X, Y);
    
          DebugThis('-[DEBUG]- Length(ATPA[a]) = ' + ToStr(Length(ATPA[a])));
    
          if((Length(atpa[a]) < Min) or (Length(atpa[a]) > Max))then
            Continue;
    
          MMouse(X, Y, 5, 5);
    
          DebugThis('-[DEBUG]- GetUpText = ' + GetUpText);
    
          if(WaitUpTextMulti(UpText, RandomRange(350, 450)))then
          begin
            ClickMouse2(True);
    
            if(DidRedClick)then
            begin
              ColorToleranceSpeed(tmpCTS);
              SetColorSpeed2Modifiers(0.2, 0.2);
    
              Wait(RandomRange(600, 700));
              If IsMoving Then
              Begin
                Mouse(249, 177, 2, 2, True);
                Wait(RandomRange(300, 400));
                Repeat
                  Wait(100);
                Until (Not(Ismoving));
                FirstIsland := True;
                Exit;
              End;
              Result := True;
              Exit;
            end else
            begin
              Mouse(249, 177, 2, 2, True);
              Wait(RandomRange(300, 400));
              Repeat
                Wait(100);
              Until (Not(Ismoving));
              FirstIsland := True;
              Exit;
            end;
          end else
          if(IsUptextMultiCustom(['Floating ess', 'Float', 'ing ess', 'Floating essence', 'lan vex', 'ead Clan', 'an vexillum', 'Read Clan vexillum']))then
          begin
            Clickmouse2(False);
    
            if(WaitOptionMulti(UpText, 800))then
            begin
              ColorToleranceSpeed(tmpCTS);
              SetColorSpeed2Modifiers(0.2, 0.2);
    
              Result := True;
              Exit;
            end;
          end;
        end;
      end;
    
      ColorToleranceSpeed(tmpCTS);
      SetColorSpeed2Modifiers(0.2, 0.2);
    end;
    
    Function FindObjectPlatform : Boolean;
    var
      CTS, I, L : Integer;
      TPA : TPointArray;
      ATPA : T2DPointArray;
    begin
      DebugThis('-[DEBUG]- Searching for Object platform');
      Result := False;
    
      If (TimeFromMark(TI) < 60000) And (Not FirstIsland) Then
      Begin
        Result:=True;
        Exit;
      End;
    
      If SafeNub Then
      Begin
        TB := IntToBox(MSX1, MSY1, MSX2, MSY2);
        Result := True;
        Exit;
      End;
    
      CTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
    
      SetColorSpeed2Modifiers(IslandHue, IslandSat);
      FindColorsTolerance(TPA, IslandColor, MSX1, MSY1, MSX2, MSY2, IslandTol);
      ATPA := FloodFillTPA(TPA);
      SortATPASize(ATPA, True);
      ColorToleranceSpeed(CTS);
      SetColorSpeed2Modifiers(0.2, 0.2);
    
      If Debug Then
        DebugThis('-[DEBUG]- ATPA = ' + ToStr(ATPA));
    
      If Length(TPA) < 1 then
        Exit;
    
      L := High(ATPA);
      For I := 0 To L do
      Begin
        TB:= GetTPABounds(ATPA[I]);
        If Not (PointInBox(Point(MSCX, MSCY), TB)) then
        begin
          if I = L then
          begin
            DebugThis('-[DEBUG]- at high, point is not inside');
            exit;
          end else
            continue;
        end else break;
      end;
    
      DebugThis('-[DEBUG]- TB = ' + ToStr(TB));
      Result := True;
    
      MarkTime(TI);
      FirstIsland:=False;
    end;
    
    function FindWizard: Boolean;
    var
      a, h : Integer;
      TPA  : TPointArray;
      ATPA : T2DPointArray;
      tmpCTS : Integer;
    begin
      if(not(LoggedIn))then Exit;
      CheckForRandoms();
      DebugThis('-[DEBUG]- Searching for Wizard');
    
      tmpCTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
    
      SetColorSpeed2Modifiers(0.05, 1.65);
    
      FindColorsSpiralTolerance(MSCX, MSCY, TPA, 5357278, MSX1, MSY1, MSX2, MSY2, 18);
      ATPA := TPAtoATPAEx(TPA, 20, 20);
      SortATPASize(ATPA,True);
    
      H := High(ATPA);
      DebugThis('Wizard');
    
      for a := 0 to H do
      begin
        MiddleTPAEx(atpa[a], X, Y);
    
        DebugThis(tostr(Length(atpa[a])));
    
        if((Length(atpa[a]) < 100) Or (Length(atpa[a]) > 2000))then
          Continue;
    
        MMouse(X, Y, 5, 5);
    
        if(WaitUpTextMulti(['Wizard', 'zard', 'izard'], 750))then
        begin
          repeat
            InvMouse(RandomRange(2, 8), 3);
          until(WaitUpTextMulti(['rune', 'une'], RandomRange(1800, 2000)));
    
          ClickMouse2(False);
    
          if(not(WaitOptionMulti(['Use', 'Use ', 'se '],RandomRange(800, 900))))then
            Exit;
    
          MMouse(X, Y, 5, 5);
    
          if(WaitUpTextMulti(['Wizard', 'zard', 'izard'], 750))then
          begin
            ClickMouse2(True);
    
            if(DidRedClick)then
            begin
              ColorToleranceSpeed(tmpCTS);
              SetColorSpeed2Modifiers(0.2, 0.2);
    
              Result := True;
              MarkTime(TW);
              Exit;
            end;
          end;
        end;
      end;
    
      ColorToleranceSpeed(tmpCTS);
      SetColorSpeed2Modifiers(0.2, 0.2);
    end;
    
    function FindMayScreen() : Boolean;
    var
      TPA  : TPointArray;
      tmpCTS : Integer;
    begin
      tmpCTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
    
      SetColorSpeed2Modifiers(0.44, 1.62);
      FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1013212, MSX1, MSY1, MSX2, MSY2, 8);
    
      Result := (Length(TPA) > 1500);
    
      if(Result)then
        MouseBox(494, 16, 503, 24, mouse_Left);
    
      ColorToleranceSpeed(tmpCTS);
      SetColorSpeed2Modifiers(0.2, 0.2);
    end;
    
    procedure AntiBan();
    begin
      if(not(LoggedIn))then Exit;
      CheckForRandoms();
      DebugThis('-[DEBUG]- Performing Antiban');
    
      case (Random(1000)) of
        0 : RandomRClick;
        1 : HoverSkill('random', False);
        2 : ExamineInv;
        3 : MouseSpeed := (RandomRange(10, 12));
        4 : begin HoverSkill('Runecrafting', False); Wait(RandomRange(2000, 4000)); end;
        5 : begin PickUpMouse; SleepAndMoveMouse(1500 + Random(500)); end;
        6 : begin GameTab(tab_Stats); Wait(1500 + Random(500)); GameTab(tab_Inv); end;
        7 .. 100 : Wait(RandomRange(750, 2000));
        101: begin BoredHuman; SetAngle(SRL_ANGLE_HIGH); end;
      end;
    end;
    
    function BreakHandler(BreakIn, BreakFor, randBreakIn, randBreakFor : Integer) : Boolean;
    var
      h, m, s : Integer;
    begin
      if not LoggedIn then Exit;
    
      if (HowManyPlayers = 1) then
      begin
        if (GetTimeRunning < ((w) + (y) + BreakRounds)) then Exit
        else
          if (GetTimeRunning > ((w) + (y) + BreakRounds)) then
          begin
            RealBTime := ((x + z) / 60000);
            Logout;
            MarkTime(CurrentBTime);
            repeat
              Wait(21000);
              ConvertTime((x + z) - TimeFromMark(CurrentBTime), h, m, s);
              ClearDebug;
            until(TimeFromMark(CurrentBTime) > (x + z));
            if SwitchWorlds then
              if LoginPlayerToLob then
                ChangeWorld(RandomWorld(True, False))
            else
              LoginPlayer;
            Wait(4000);
            Result := LoggedIn;
            ClickNorth(SRL_ANGLE_HIGH);
            IncEx(BreakRounds, (w) + (x));
            w := (BreakIn * 60000);
            x := (BreakFor * 60000);
            y := RandomRange(-Bir * 60000, Bir * 60000);
            z := RandomRange(-Bfr * 60000, Bfr * 60000);
          end;
      end;
    end;
    
    procedure Proggy;
    begin
      ClearDebug();
      Stats_Commit;
      XP := (GetXPBarTotal - StartXP);
      XPH:= Round(((XP) / (GetTimeRunning / 1000)) * 3600);
      Writeln('======== F2P Runespan =========');
      WriteLn('Version ' + Version);
      Writeln('Time Running: ' + TimeRunning);
      Writeln('Experience Earned: ' + IntToStr(XP));
      Writeln('Experience/Hour: ' + IntToStr(XPH));
      WriteLn('Runecrafting Level: ' + IntToStr(RCLvl));
      WriteLn('Floor: ' + IntToStr(Floors));
      Writeln('=============================================');
      MarkTime(TP);
    end;
    
    Procedure GetMoreEssence;
    var
      a, h, t: Integer;
      TPA  : TPointArray;
      ATPA : T2DPointArray;
      tmpCTS : Integer;
    begin
      if(not(LoggedIn))then Exit;
      CheckForRandoms();
      DebugThis('-[DEBUG]- Getting more essence');
      MarkTime(T);
    
      repeat
        if(not(LoggedIn))then Exit;
    
        if(TimeFromMark(t) > 30000)then
          SetFalse('Failed to get more essence.', True);
    
        tmpCTS := GetColorToleranceSpeed;
        ColorToleranceSpeed(2);
    
        SetColorSpeed2Modifiers(0.47, 0.04);
    
        FindColorsSpiralTolerance(MSCX, MSCY, TPA, 4013632, MSX1, MSY1, MSX2, MSY2, 15);
        ATPA := TPAtoATPAEx(TPA, 20, 20);
        SortATPASize(ATPA,True);
    
        H := High(ATPA);
        DebugThis('Rocks');
    
        for a := 0 to H do
        begin
          MiddleTPAEx(atpa[a], X, Y);
    
          DebugThis('-[DEBUG]- Length(ATPA[a]) = ' + ToStr(Length(ATPA[a])));
    
          if((Length(atpa[a]) < 50) Or (Length(atpa[a]) > 2000))then
            Continue;
    
          MMouse(X, Y, 5, 5);
    
          if(WaitUpTextMulti(['Collect', 'llect', 'Float'], 750))then
          begin
            ClickMouse2(True);
    
            if(DidRedClick)then
            begin
              ColorToleranceSpeed(tmpCTS);
              SetColorSpeed2Modifiers(0.2, 0.2);
              Exit;
            end;
          end else
          if(not(IsUptextMultiCustom(['Walk', 'lk here', 'here'])))then
          begin
            Clickmouse2(False);
    
            if(WaitOptionMulti(['Collect', 'llect', 'Float'], 800))then
            begin
              ColorToleranceSpeed(tmpCTS);
              SetColorSpeed2Modifiers(0.2, 0.2);
              Exit;
            end;
          end;
        end;
        ColorToleranceSpeed(tmpCTS);
        SetColorSpeed2Modifiers(0.2, 0.2);
      until FindDTM(EssenceDTM, X, Y, MIX1, MIY1, MIX2, MIY2);
    end;
    
    procedure ScriptSetup();
    var
      Floor1, Floor2, Floor3, X, Y: Integer;
    begin
      SetupObjects();
      Filterobjects;
      SortObjects();
    
      SetAngle(SRL_ANGLE_HIGH);
      StartXP := GetXPBarTotal;
      RCLvl := GetSkillLevel(SKILL_RUNECRAFTING);
      Gametab(tab_Inv);
    
      Higher := False;
      SafeNub:= False;
      FirstIsland := True;
    
      Floor1 := DTMFromString('mbQAAAHicY2VgYLBjZGBwBWIjILYEYi8g/ggUfw7Er4D4LxD/AOKepcwMZemKDJOrnRkMpLkZ/B11GESA4uiYEQsGAwD8Rgr4');
      Floor2 := DTMFromString('mbQAAAHicY2VgYMhlZGAoBeIsIE4G4nIgFgSK8wExFxBLQvHWhUcYdrWdYbjQ/pTBwy+AQZRPkEEEKI6OGbFgMAAAtVQKcQ==');
      Floor3 := DTMFromString('mbQAAAHicY2VgYFACYlkg1gZiSShdBMTNQFwFxMVAXALEpz58ZehasASMt508w3Dx7n0GEaA4OmbEgsEAAHWJDpY=');
    
      If FindDTM(Floor1, X, Y, 9, 99, 52, 146) Then
        Floors := 1 Else
        If FindDTM(Floor2, X, Y, 9, 99, 52, 146) Then
          Floors := 2 Else
          If FindDTM(Floor3, X, Y, 9, 99, 52, 146) Then
            Floors := 3 Else
            Floors := 0;
    
      If ClickAnywhere Then
        Floors := 0;
    
      FreeDTM(Floor1);
      FreeDTM(Floor2);
      FreeDTM(Floor3);
      Case Floors Of
        0 : SafeNub := True;
        1 : Begin IslandHue := 0.19; IslandSat := 0.71; IslandColor := 3112315; IslandTol := 12; End;
        2 : Begin IslandHue := 3.58; IslandSat := 0.43; IslandColor := 8224087; IslandTol := 14; End;
        3 : Begin IslandHue := 0.12; IslandSat := 0.73; IslandColor := 9145506; IslandTol := 12; End;
      End;
    end;
    
    procedure MainLoop();
    var
      fObj : TObj;
      x, y, i, InitialXP, UpdateXP, t: Integer;
    Label
      Waiting;
    begin
      repeat
        repeat
          if not loggedin then loginplayer;
          CheckForRandoms();
    
          if(TakeBreaks)then BreakHandler(BreakIn, BreakFor, Bir, Bfr);
    
          if(TimeFromMark(TW) > 600000)then
            FindWizard;
    
          if not WaitFindDTMEX(EssenceDTM, EX, EY, MIX1, MIY1, MIX2, MIY2, 100, 2000) then
            GetMoreEssence;
    
          if(TimeFromMark(RCt) > (3600000 + RandomRange(-1800000, 1800000)))then
          begin
            RCLvl := GetSkillLevel(SKILL_RUNECRAFTING);
            MarkTime(RCt);
          end;
    
          for i := 0 to High(Objects) do
          begin
            fObj := GetObject(i);
    
            if(RCLvl >= fObj.LvlReq)then
            begin
              if(FindObjectPlatform)then
                if(K_FindObj(x, y, i))then
                begin
                  Waiting:
    
                  EssenceCount := ItemAmount('inv', 'dtm', EssenceDTM, []);
    
                  if(TimeFromMark(TP) > 60000)then
                    Proggy;
    
                  Wait(RandomRange(500, 750));
                  InitialXP := GetXPBarTotal;
                  CurrentXP := fObj.IXP;
    
                  MarkTime(T);
                  repeat
                    Wait(RandomRange(2000,2500));
                    CheckForRandoms();
    
                    if(TimeFromMark(T) > RandomRange(7000, 7200))then
                      Break;
    
                    AntiBan;
                    for i := 0 to High(Objects) do
                    begin
                      fObj := GetObject(i);
    
                      if(RCLvl >= fObj.LvlReq) And (CurrentXP < fObj.IXP)then
                        if(FindObjectPlatform)then
                          if(K_FindObj(x, y, i))then
                          begin
                            Higher := True;
                            Break;
                          end;
                    end;
    
                    if(Higher)then
                      Break;
    
                    UpdateXP := GetXPBarTotal;
    
                    if(UpdateXP > InitialXP)then
                    begin
                      InitialXP := GetXPBarTotal;
                      T := 0;
                      MarkTime(T);
                    end;
    
                    If EssenceCount<ItemAmount('inv', 'dtm', EssenceDTM, []) Then
                    Begin
                      Wait(RandomRange(2000,2500));
                      Break;
                    End;
                  until(False);
    
                  if(Higher)then
                  begin
                    Higher := False;
                    Goto Waiting;
                  end;
                end;
            end;
          end;
    
          CheckForRandoms();
        until(not(LoggedIn));
    
        if(Players[CurrentPlayer].Active)then
          SetFalse('Not Logged in', False);
    
        NextPlayer(Players[CurrentPlayer].Active);
        ScriptSetup();
        FindMayScreen();
        MainLoop();
      until(AllPlayersInactive);
    end;
    
    begin
      Smart_Server := 10;
      Smart_Members := True;
      Smart_Signed := True;
    
      SetupSRL();
      SetupSRLStats(1036, SRLStats_Username, SRLStats_Password);
    
      {* Initial Break Settings *}
      w := (BreakIn * 60000);
      x := (BreakFor * 60000);
      y := RandomRange(-Bir * 60000, Bir * 60000);
      z := RandomRange(-Bfr * 60000, Bfr * 60000);
    
      ActivateClient();
      DeclarePlayers();
      LoginPlayer();
    
      while(not(RSReady()))do
        Wait(9000);
    
      FindMayScreen();
    
      AddOnTerminate('Fr33DTM');
      SetDtm;
    
      MarkTime(TP);
      MarkTime(RCt);
    
      _SetRandoms();
      ScriptSetup();
    
      if(not(WaitFindDTMEX(EssenceDTM, EX, EY, MIX1, MIY1, MIX2, MIY2, 100, 2000)))then
        GetMoreEssence;
    
      MainLoop;
    end.
    Last edited by Marc000z; 05-17-2012 at 07:54 PM.

  2. #2
    Join Date
    May 2007
    Location
    England
    Posts
    4,140
    Mentioned
    11 Post(s)
    Quoted
    266 Post(s)

    Default

    Did Kyle give you permission to use his script?
    <3

    Quote Originally Posted by Eminem
    I don't care if you're black, white, straight, bisexual, gay, lesbian, short, tall, fat, skinny, rich or poor. If you're nice to me, I'll be nice to you. Simple as that.

  3. #3
    Join Date
    Mar 2012
    Location
    Australia
    Posts
    625
    Mentioned
    0 Post(s)
    Quoted
    18 Post(s)

    Default

    Quote Originally Posted by Rich View Post
    Did Kyle give you permission to use his script?
    Wow he is actually trying to help people out and you still go at him. At least he is doing something other than leeching.
    Bored of playing rs, and bored of botting it, why am i here?

  4. #4
    Join Date
    May 2012
    Location
    Brazil
    Posts
    51
    Mentioned
    0 Post(s)
    Quoted
    7 Post(s)

    Default

    He didn't, but I pressumed that by giving him almost all the credit, he wouldn't mind. I'll get in contact with him though.

  5. #5
    Join Date
    May 2007
    Location
    England
    Posts
    4,140
    Mentioned
    11 Post(s)
    Quoted
    266 Post(s)

    Default

    Quote Originally Posted by stuartroad View Post
    Wow he is actually trying to help people out and you still go at him. At least he is doing something other than leeching.
    1) I wasn't "going at him". It was simply a question.

    2) You're right, Marc000z is doing something other than leeching and I respect him for that. However, he would still need Kyle's permission to post this since it's 99% his work.
    <3

    Quote Originally Posted by Eminem
    I don't care if you're black, white, straight, bisexual, gay, lesbian, short, tall, fat, skinny, rich or poor. If you're nice to me, I'll be nice to you. Simple as that.

  6. #6
    Join Date
    May 2012
    Location
    Brazil
    Posts
    51
    Mentioned
    0 Post(s)
    Quoted
    7 Post(s)

    Default

    Alright, I've gotten Kyle's approval!

    (It's in the 1st post.)

  7. #7
    Join Date
    Jan 2012
    Posts
    468
    Mentioned
    3 Post(s)
    Quoted
    200 Post(s)

    Default

    Quote Originally Posted by Rich View Post
    1) I wasn't "going at him". It was simply a question.

    2) You're right, Marc000z is doing something other than leeching and I respect him for that. However, he would still need Kyle's permission to post this since it's 99% his work.
    Let me correct you Not 99% of this is kyles work! Many People such as my self worked on this script in its beginning stages! This is a community script!

  8. #8
    Join Date
    May 2007
    Location
    England
    Posts
    4,140
    Mentioned
    11 Post(s)
    Quoted
    266 Post(s)

    Default

    Quote Originally Posted by Rules of Joe View Post
    Let me correct you Not 99% of this is kyles work! Many People such as my self worked on this script in its beginning stages! This is a community script!
    First post:
    99% of the credit goes to him for the base of the script
    <3

    Quote Originally Posted by Eminem
    I don't care if you're black, white, straight, bisexual, gay, lesbian, short, tall, fat, skinny, rich or poor. If you're nice to me, I'll be nice to you. Simple as that.

Thread Information

Users Browsing this Thread

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

Posting Permissions

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