Page 20 of 53 FirstFirst ... 10181920212230 ... LastLast
Results 476 to 500 of 1302

Thread: [C]Livid Farmer

  1. #476
    Join Date
    Aug 2007
    Location
    Colorado
    Posts
    7,421
    Mentioned
    268 Post(s)
    Quoted
    1442 Post(s)

    Default

    Quote Originally Posted by dragonbotz View Post
    It's not really fertilizing soil =\ any tips?

    =-=-=-=-=-=-= LividFarmer 1.15 by Flight =-=-=-=-=-=
    Time Running: 44 Minutes and 25 Seconds
    Points: 2540
    Plants cured: 114
    Soil fertilized: 13
    Farming XP: 11684 (15783 / hour)
    Magic XP: 7971 (10767 / hour)
    Breaks: 0

    Free xp is better than none of course.
    Yikes, I wonder what went wrong. :/ Have you tried using V.1.2? I recommend that. Also, bring a handful of Law Runes with you.

    Quote Originally Posted by outbuster View Post
    hey flight, could i test 1.2?

    would be really nice, i have been running 1.15 for like 12 hours now without problems^^
    ur scripts are flawless

    if you wont let me test it that's fine too ill just wait but i like to do something back in favor for all the good scripts you make you can pm me about if if u want
    Absolutely, I actually posted it on page 18, but here it is again for anyone who missed it:

    Simba Code:
    {/////////////////////////////////////////
                      //             LividFarmer              //
                      //             (by Flight)              //
                      //                                      //
                      //             Version: 1.2             //
                      /////////////////////////////////////////}


    program LividFarmer;
      {$DEFINE SRL5}
      {$DEFINE SMART}

      {$i SRL/srl.simba}
      {$i SRL/SRL/misc/reports.simba}
      {$i SRL/SRL/misc/paintsmart.simba}

    Const

    //SRL Stats
      SRLStats_Username = '';
      SRLStats_Password = '';

    //General settings
      DebugMode    = True;    //On-screen debugging?
      SwitchWorlds = True;    //Switch worlds after a break?

    //Break settings
      BreakIn      = 135;     //How long before we take a break? (minutes)
      BreakFor     = 15;      //How long will we break for? (minutes)
      Bir          = 13;      //Random minutes to add/subtract from how long until we break
      Bfr          = 7;       //Random minutes to add/subjtract from break duraction

    Var

    //Static
      Version: String;
      SCols,PCols: TIntegerArray;

    //Dynamic
      FarmXP,FarmXP_O,MageXP,
      MageXP_O,AgilXP,AgilXP_O,
      Points,CommitTime,
      ReportTime,PlantCount,
      SoilCount: Integer;
      CheckedPauline: Boolean;

    //Break variables
      w,x,y,z,RealBTime,CurrentBTime,
      BreakRounds,TotalBreaks: Integer;


      Procedure DeclarePlayers;
      begin
        HowManyPlayers := 1;
        NumberOfPlayers(HowManyPlayers);
        CurrentPlayer := 0;
        with Players[0] do
        begin
          Name        := '';
          Pass        := '';
          BoxRewards  := ['XP','xp','lamp'];
          LampSkill   := Skill_Farming;
          Active      := True;
        end;
      end;

      Procedure LoadVars;
      begin
        Version := '1.2';
        MarkTime(ReportTime);
        MarkTime(CommitTime);
        CheckedPauline := False;

        SetupSRLStats(156, SRLStats_Username, SRLStats_Password);

        w := (BreakIn * 60000);
        x := (BreakFor * 60000);
        y := RandomRange(-Bir * 60000, Bir * 60000);
        z := RandomRange(-Bfr * 60000, Bfr * 60000);

        SCols := [5073267, 5204854, 5465452, 5402748];          //Soil colors
        PCols := [4542282, 4674124, 4871760, 5003346, 5135188]; //Healthy livid colors
      end;

      Procedure Report;
      Var
        FXPH,MXPH,AXPH: Integer;
      begin
        FXPH := Round((FarmXP * 3600) / (GetTimeRunning / 1000));
        MXPH := Round((MageXP * 3600) / (GetTimeRunning / 1000));
        AXPH := Round((AgilXP * 3600) / (GetTimeRunning / 1000));

        ClearDebug;
        SRLProgressReport(ResultDebugBox, 'LividFarmer', 'Flight', Version,
          ['Run time', 'Points', 'Plants cured', 'Soil fertilized', 'Farming XP',
            'Farming XP/Hr', 'Magic XP', 'Magic XP/Hr', 'Agility XP', 'Agility XP/Hr','Breaks'],
        [MsToTime(GetTimeRunning, Time_Abbrev), Points, PlantCount, SoilCount, FarmXP,
          FXPH, MageXP, MXPH, AgilXP, AXPH, TotalBreaks]);

        MarkTime(ReportTime);
      end;

      Procedure Commit;
      begin
        stats_IncVariable('Farming EXP (Gained)', FarmXP_O);
        stats_IncVariable('Magic EXP (Gained)', MageXP_O);
        stats_IncVariable('Agility EXP (Gained)', AgilXP_O);
        Stats_Commit;
        FarmXP_O := 0;
        MageXP_O := 0;
        AgilXP_O := 0;
        MarkTime(CommitTime);
      end;

      //By Bandland100, modified to shift mouse speeds after every step
      procedure SuperWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
      var
        veloX,veloY,windX,windY,veloMag,dist,randomDist,lastDist,step: extended;
        lastX,lastY,MSP,W: integer;
        sqrt2,sqrt3,sqrt5: extended;
      begin
        MSP  := MouseSpeed;
        sqrt2:= sqrt(2);
        sqrt3:= sqrt(3);
        sqrt5:= sqrt(5);
        while hypot(xs - xe, ys - ye) > 1 do
        begin
          dist:= hypot(xs - xe, ys - ye);
          wind:= minE(wind, dist);
          if dist >= targetArea then
          begin
            windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
            windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
          end else
          begin
            windX:= windX / sqrt2;
            windY:= windY / sqrt2;
            if (maxStep < 3) then
            begin
              maxStep:= random(3) + 3.0;
            end else
            begin
              maxStep:= maxStep / sqrt5;
            end;
          end;
          veloX:= veloX + windX;
          veloY:= veloY + windY;
          veloX:= veloX + gravity * (xe - xs) / dist;
          veloY:= veloY + gravity * (ye - ys) / dist;
          if hypot(veloX, veloY) > maxStep then
          begin
            randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
            veloMag:= sqrt(veloX * veloX + veloY * veloY);
            veloX:= (veloX / veloMag) * randomDist;
            veloY:= (veloY / veloMag) * randomDist;
          end;
          lastX:= Round(xs);
          lastY:= Round(ys);
          xs:= xs + veloX;
          ys:= ys + veloY;

          case Random(50) of
            1..25: W := (MSP + (Random((MSP/4))));
            26..50: W := (MSP - (RandomRange((MSP/2), MSP-1)));
          end;
          if (W < 1) then
            W := 1;

          if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
            MoveMouse(Round(xs), Round(ys));

          if not DebugMode then
            SMART_DrawDotsEx(False, [Point(lastX, lastY)], 65280);

          step:= hypot(xs - lastX, ys - lastY);
          wait(W);
          lastdist:= dist;
        end;

        if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
          MoveMouse(Round(xe), Round(ye));

        MouseSpeed := MSP;
      end;

      Procedure HumanRandomMouse;
      var
        randSpeed: extended;
        x, y, firstSpeed: integer;
      begin
        case(Random(10)) of
          2..8:
          begin
            firstSpeed := mouseSpeed;

            mouseSpeed := RandomRange(5,10);
            randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
            GetMousePos(x, y);
            SuperWindMouse(x, y, RandomRange(x - 75, x + 75), RandomRange(y - 75, y + 75),
                    30, 55, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);

            mouseSpeed := firstSpeed;
            Smart_ClearCanvas;
          end;
        end;
      end;

      Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
      var
        randSpeed: extended;
        X,Y,X2,Y2,A,Dist,MP: integer;
      begin
        A := MouseSpeed;
        GetMousePos(X, Y);
        Dist := Distance(X, Y, eX, eY);
        MP := Round(Dist/150);
        if MP < 0 then
          MP := 1;

        randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
        X2 := RandomRange(eX-(A*MP), eX+(A*MP));
        Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
        SuperWindMouse(X, Y, X2, Y2, 9.0, 3.0, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
        GetMousePos(X, Y);
        MMouse(eX, eY, ranX, ranY);
        MouseSpeed := A;
      end;

      Procedure ReturnValues(colors: TIntegerArray; var HueMods, SatMods: Extended; var color, Tolerance: Integer);
      Var
        h, s, t: Extended;
        I,II : integer;
        HSLColor : Array[1..3] of Extended;
        HSL : Array[0..1] of Array[1..3] of Extended;
      begin;
        For I:= 1 to 3 do
        begin;
          HSL[0][i] := 255;
        end;

        For I:= 0 to High(Colors) do
        begin;
          ColortoHSL(Colors[i],HSLColor[1],HSLColor[2],HSLColor[3]);
          For II:= 1 to 3 do
          begin;
            HSL[0][II] := MinE(HSLColor[II],HSL[0][II]);
            HSL[1][II] := MaxE(HSLColor[II],HSL[1][II]);
          end;
        end;

        H := (HSL[1][1] - HSL[0][1]);
        S := (HSL[1][2] - HSL[0][2]);
        T := (HSL[1][3] - HSL[0][3]);

        try
          HueMods := (H/T);
          SatMods := (S/T);
          Tolerance := Round(t);
        except
          HueMods := 0;
          SatMods := 0;
          Tolerance := Round(0.0);
        end;

        Color := HSLToColor((HSL[1][1] + HSL[0][1]) div 2,(HSL[1][2] + HSL[0][2]) div 2,(HSL[1][3] + HSL[0][3]) div 2);
      end;

      Function FindLivid(Var X,Y: Integer): Boolean;
      var
        B: TBox;
        TPA,PAr: TPointArray;
        i,h,CTS: Integer;
        TBA: TBoxArray;
        MBP: TPoint;
        ATPA: T2DPointArray;
      begin
        Result := False;
        if not LoggedIn then Exit;

        CTS := GetColorToleranceSpeed;
        PAr := TPAFromBox(IntToBox(245, 135, 275, 190));

        ColorToleranceSpeed(2);
        SetColorSpeed2Modifiers(8.34, 0.33);

        FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1907996, MSX1, MSY1, MSX2, MSY2, 6);
        ColorToleranceSpeed(CTS);
        SetColorSpeed2Modifiers(0.2, 0.2);

        if (Length(TPA) < 1) then
          Exit;

        TPA := ClearTPAFromTPA(TPA, PAr);
        ATPA := SplitTPAEx(TPA, 30, 40);
        SortATPAFromFirstpoint(ATPA, Point(MSCX, MSCY));;

        for i := 0 to High(ATPA) do
        begin
          if (GetArrayLength(ATPA[I]) > 50) then
          begin
            B := GetTPABounds(ATPA[i]);

            SetArrayLength(TBA, Length(TBA)+1);
            TBA[High(TBA)] := B;
          end;
        end;

        if DebugMode then
        begin
          SMART_DrawBoxes(True, TBA, clRed);
          if (Length(TBA) > 0) then
            SMART_DrawBoxEx(False, TBA[0], 65280);
        end;

        for h := 0 to High(TBA) do
        begin
          MBP := MiddleBox(TBA[h]);
          HumanMMouse(MBP.X, MBP.Y, 5, 5);
          if WaitUpTextMulti(['Cure', 'plant', 'Diseased', 'livd'], 500) then
          begin
            Result := True;
            GetMousePos(X, Y);
            Exit;
          end else
            Result := False;
        end;

      end;

      Function FindSoil(Var X,Y: Integer): Boolean;
      var
        B,B2: TBox;
        TPA,TPA2,PAr: TPointArray;
        Hmod,Hmod2,Smod2,Smod: Extended;
        i,h,Tol,Tol2,CTS,Col2,Col: Integer;
        TBA: TBoxArray;
        MBP: TPoint;
        ATPA: T2DPointArray;
      begin
        CTS := GetColorToleranceSpeed;
        PAr := TPAFromBox(IntToBox(245, 155, 270, 190));

        ColorToleranceSpeed(2);
        ReturnValues(SCols, Hmod, Smod, Col, Tol);
        SetColorSpeed2Modifiers(Hmod, SMod);

        FindColorsSpiralTolerance(MSCX, MSCY, TPA, Col, MSX1, MSY1, MSX2, MSY2, Tol);

        if (Length(TPA) < 1) then
        begin
          ColorToleranceSpeed(CTS);
          SetColorSpeed2Modifiers(0.2, 0.2);
          Exit;
        end;

        TPA := ClearTPAFromTPA(TPA, PAr);
        ATPA := SplitTPAEx(TPA, 30, 30);
        SortATPAFromFirstpoint(ATPA, Point(MSCX, MSCY));

        for i := 0 to High(ATPA) do
        begin
          B := GetTPABounds(ATPA[i]);

          ReturnValues(PCols, Hmod2, Smod2, Col2, Tol2);
          SetColorSpeed2Modifiers(Hmod2, SMod2);

          if not FindColorsSpiralTolerance(MSCX, MSCY, TPA2, Col2, B.X1, B.Y1, B.X2, B.Y2, Tol2) then
          begin
            B2 := GetTPABounds(ATPA[i]);
            SetArrayLength(TBA, Length(TBA)+1);
            TBA[High(TBA)] := B2;
          end;

        end;

        ColorToleranceSpeed(CTS);
        SetColorSpeed2Modifiers(0.2, 0.2);

        if DebugMode then
        begin
          SMART_DrawBoxes(True, TBA, clRed);
          if (Length(TBA) > 0) then
            SMART_DrawBoxEx(False, TBA[0], 65280);
        end;

        for h := 0 to High(TBA) do
        begin
          MBP := MiddleBox(TBA[h]);
          HumanMMouse(MBP.X, MBP.Y, 5, 5);
          if WaitUpTextMulti(['Fertilise', 'Empty', 'patch'], 500) then
          begin
            Result := True;
            GetMousePos(X, Y);
            Exit;
          end else
            Result := False;
        end;

      end;

      Function FindPauline(Var X,Y: Integer): Boolean;
      var
        B: TBox;
        TPA,PArr: TPointArray;
        i,h,CTS: Integer;
        MBP: TPoint;
        ATPA: T2DPointArray;
        Cols,Tols: TIntegerArray;
        HMods,SMods: Array of Extended;
      begin
        Result := False;
        if not LoggedIn then Exit;

        CTS := GetColorToleranceSpeed;
        PArr := TPAFromBox(IntToBox(245, 135, 275, 190));

        Cols := [6319982, 6583413, 6648947];
        Tols  := [9, 12, 9];
        HMods := [0.10, 0.09, 0.09];
        SMods := [0.04, 0.08, 0.08];

        for h := 0 to High(Cols) do
        begin
          ColorToleranceSpeed(2);
          SetColorSpeed2Modifiers(HMods[h], SMods[h]);
          FindColorsSpiralTolerance(370, 30, TPA, Cols[h], 300, 5, 420, 70, Tols[h]);
          TPA := ClearTPAFromTPA(TPA, PArr);
          if (Length(TPA) > 0) then break;
        end;

        ColorToleranceSpeed(CTS);
        SetColorSpeed2Modifiers(0.2, 0.2);

        if (Length(TPA) < 1) then
        begin
          Writeln('No Pauline colors found');
          Exit;
        end;

        TPA := ClearTPAFromTPA(TPA, PArr);
        ATPA := SplitTPAEx(TPA, 15, 25);
        SortATPAFromFirstpoint(ATPA, Point(370, 30));;

        for i := 0 to High(ATPA) do
        begin
          B := GetTPABounds(ATPA[i]);

          if DebugMode then
            SMART_DrawBoxEx(True, B, 65280);

          MBP := MiddleBox(B);
          HumanMMouse(MBP.X, MBP.Y, 5, 5);
          if WaitUpTextMulti(['alk-t', 'rain', 'auli', 'Paul','olari'], 500) then
          begin
            Result := True;
            GetMousePos(X, Y);
            Exit;
          end;
        end;

      end;

      Function GetLividType(X, Y: Integer): Integer;
      var
        R1C1,R1C2,R1C3,R1C4,R1C5,
        R2C1,R2C2,R2C3,R2C4,R2C5,
        R3C1,R3C2,R3C3,R3C4,R3C5: TBox;
      begin
        Result := 0;
      //Top row
        R1C1 := IntToBox(100, 20, 150, 70);
        R1C2 := IntToBox(165, 20, 220, 70);
        R1C3 := IntToBox(235, 20, 290, 70);
        R1C4 := IntToBox(300, 20, 355, 70);
        R1C5 := IntToBox(370, 20, 440, 70);

      //Middle row
        R2C1 := IntToBox(70, 100, 135, 160);
        R2C2 := IntToBox(155, 100, 220, 160);
        R2C3 := IntToBox(230, 100, 290, 160);
        R2C4 := IntToBox(305, 100, 365, 160);
        R2C5 := IntToBox(380, 100, 440, 160);

      //Bottom row
        R3C1 := IntToBox(60, 210, 125, 270);
        R3C2 := IntToBox(140, 210, 215, 270);
        R3C3 := IntToBox(225, 210, 295, 270);
        R3C4 := IntToBox(305, 210, 375, 270);
        R3C5 := IntToBox(400, 210, 470, 270);

        if (IntInBox(X, Y, R1C1) or IntInBox(X, Y, R1C2) or        //Type 1
          IntInBox(X, Y, R1C3) or IntInBox(X, Y, R1C5)) then
            Result := 1
        else if (IntInBox(X, Y, R1C4) or IntInBox(X, Y, R2C3) or   //Type 2
          IntInBox(X, Y, R2C4) or IntInBox(X, Y, R2C5)) then
            Result := 2
        else if (IntInBox(X, Y, R2C2) or IntInBox(X, Y, R3C1) or   //Type 3
          IntInBox(X, Y, R3C5)) then
            Result := 3
        else if (IntInBox(X, Y, R2C1) or IntInBox(X, Y, R3C2) or   //Type 4
          IntInBox(X, Y, R3C3) or IntInBox(X, Y, R3C4)) then
            Result := 4;

      end;

      Function LividMenu: Boolean;
      var
        X,Y: Integer;
      begin
        Result := FindText(x, y, 'train', SmallChars, MIX1, MIY1, MIX2, MIY2);
      end;

      Function TalkScreen: Boolean;
      begin
        Result := GetColor(216, 360) = 7913190;
      end;

      Procedure QuickLow;
      begin
        KeyDown(40);
        Wait(850 + Random(100));
        KeyUp(40);
      end;

      Procedure QuickHigh;
      begin
        Mouse(542, 24, 15, 15, mouse_left);
        KeyDown(38);
        Wait(950 + Random(100));
        KeyUp(38);
      end;

      Procedure CureLivid(Strain: Integer);
      var
        SPoint: TPoint;
      begin
        if (Strain = 1) then
          SPoint := Point(590, 280)
        else if (Strain = 2) then
          SPoint := Point(680, 280)
        else if (Strain = 3) then
          SPoint := Point(590, 400)
        else if (Strain = 4) then
          SPoint := Point(680, 400);

        HumanMMouse(SPoint.X, SPoint.Y, 10, 10);
        if WaitUpText('Continue', 300) then
        begin
          ClickMouse2(True);
          Inc(PlantCount);
          IncEx(FarmXP_O, 92);
          IncEx(FarmXP, 92);
          IncEx(MageXP_O, 60);
          IncEx(MageXP, 60);
          IncEx(Points, 20);
        end;
      end;

      Function HandleLivids: Boolean;
      var
        X,Y,T: Integer;
      label
        Start;
      begin
        Result := False;

        Start:
        if not LoggedIn then Exit;
        FindNormalRandoms;

        MouseSpeed := RandomRange(12, 16);

        if FindLivid(X, Y) then
        begin
          if (GetLividType(X, Y) = 0) then
            GoTo Start;

          CheckedPauline := False;

          ClickMouse2(False);
          if WaitOptionMulti(['Cure', 're-p', '-pl', 'lant'], 500) then
          begin
            HumanMMouse(635, 310, 65, 70);
            if DebugMode then
              Smart_ClearCanvas;
          end;

          MarkTime(T);
          repeat
            if (TimeFromMark(T) > 3000) then
              Exit;
            if LividMenu then
              break;
          until(false)

          if LividMenu then
          begin
            CureLivid(GetLividType(X, Y));
            Wait(randomRange(1915, 2570));
            GoTo Start;
          end;
        end else
          Result := True;

      end;

      Function HandleSoil: Boolean;
      var
        X,Y: Integer;
      label
        Start;
      begin
        Result := False;

        Start:
        MouseSpeed := RandomRange(12, 16);
        FindNormalRandoms;

        if FindSoil(X, Y) then
        begin
          CheckedPauline := False;

          ClickMouse2(False);
          if WaitOption('Empty', 500) then
          begin
            Inc(SoilCount);
            IncEx(FarmXP_O, 92);
            IncEx(FarmXP, 92);
            IncEx(MageXP_O, 87);
            IncEx(MageXP, 87);
            IncEx(Points, 20);
            Smart_ClearCanvas;
            Wait(randomRange(1915, 2570));
            GoTo Start;
          end;
        end else
          Result := True;

      end;

      Function HandleThatTiredPaulinePersonWhoNeedsEncouragementBecauseWeAreProLikeABoss: Boolean;
      Var
        X,Y: Integer;
        ExBMP,FanBMP,LukBMP,
        ProBMP,WeBMP,WellBMP: Integer;
      begin
        Result := False;
        if not LoggedIn then Exit;

        if ((not FindLivid(X, Y)) and (not FindSoil(X, Y))) then
        begin
          QuickLow;
          MakeCompass('E');
          Wait(RandomRange(235, 320));

          if FindPauline(X, Y) then
          begin
            if WaitUpTextMulti(['Drai', 'raine'], 500) then
            begin
              ClickMouse2(False);
              if WaitOptionMulti(['Ener', 'ergis', 'gise'], 500) then
              begin

                if DebugMode then
                  Smart_ClearCanvas;

                if WaitFunc(@TalkScreen, 10, 3000) then
                begin
                  ExBMP := BitmapFromString(16, 5, 'meJw7cQIFMMAAhI0sAuGiiaDJYop' +
                      'QSz0e92C6H9MjcAAAAUs6mQ==');
                  FanBMP := BitmapFromString(67, 6, 'meJw7cQIKGHCAE0gAUxBZBI96POJ' +
                      '4zCTDGcguwSWI7FQ8gsRrwQXw+AWPFvwBRU+PEBNlpGqhv0eI9Ckx' +
                      'WgY2Rij3CMGoITKXEXQzMSmHkqQFAMDdFvg=');
                  LukBMP := BitmapFromString(18, 7, 'meJw7ceIEAwPDCTCJH8DVnAAD/Lp' +
                      'OIAEidSGLI+siaBEZunC5kKAuXOaQpAWiCwCFcEZR');
                  ProBMP := BitmapFromString(26, 7, 'meJw7cQIBGJAAVkFMWWQFmFw0Bho' +
                      'bqyCyLjzieJxHqmlYPUi5aZS7jYHcWMDvI1wAl0YAdzB8OQ==');
                  WellBMP := BitmapFromString(41, 6, 'meJw7cQIBGLABTFmC6nExcOnFahS' +
                      'mIJo5JFmNSy8uc/C4EI/VmCQDkpcxgxHTHEwHUGg1LvNxWY1LOzFG' +
                      '4WFjDQFMBQQFibEaTS8AGGuowQ==');
                  WeBMP := BitmapFromString(23, 8, 'meJw7ceIEAwycQGKTBE5QwxC4XjQ' +
                      'TTsAAHl3ICjANIeg8TAVYDUEG+A0hxiW4/EJQkAzv4HIe8QELAEER' +
                      'YnE=');

                  if (FindBitmapToleranceIn(ExBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
                      FindBitmapToleranceIn(WellBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
                      FindBitmapToleranceIn(FanBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
                      FindBitmapToleranceIn(LukBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
                      FindBitmapToleranceIn(ProBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
                      FindBitmapToleranceIn(WeBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15)) then
                  begin
                    HumanMMouse(X, Y+2, 10, 2);
                    ClickMouse2(True);
                    IncEx(AgilXP_O, 168);
                    IncEx(AgilXP, 168);
                    IncEx(MageXP_O, 100);
                    IncEx(MageXP, 100);
                    IncEx(Points, 100);
                  end;

                  FreeBitmap(ExBMP);
                  FreeBitmap(WellBMP);
                  FreeBitmap(FanBMP);
                  FreeBitmap(LukBMP);
                  FreeBitmap(ProBMP);
                  FreeBitmap(WeBMP);
                end;

              end;
            end;

            Result := True;
          end;

          QuickHigh;
          CheckedPauline := True;

        end;

      end;

      Function DoAntiban: Boolean;
      var
        i: Integer;
      begin
        if not LoggedIn then Exit;
        i := Random(900);
        case i of
          1..45:
            begin
              HumanRandomMouse;
              Result := True;
            end;
          46:
            begin
              HoverSkill('Farming', False);
              Result := True;
            end;
          47:
            begin
              HoverSkill('Magic', False);
              Result := True;
            end;
        end;

        Wait(100);

      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);
              Writeln('Taking a break for about ' + IntToStr(RealBTime) + ' minutes.');
              Logout;
              MarkTime(CurrentBTime);
              repeat
                Wait(21000);
                ConvertTime((x+z)-TimeFromMark(CurrentBTime), h, m, s);
                ClearDebug;
                Writeln('Breaktime left: '+IntToStr(h)+':'+IntToStr(m)+':'+IntToStr(s));
              until(TimeFromMark(CurrentBTime)>(x+z));
              Writeln('Logging in.');
              if SwitchWorlds then
                if LoginPlayerToLob then
                  ChangeWorld(RandomWorld(True, False))
              else
                LoginPlayer;
              Wait(4000);
              Result := LoggedIn;
              ClickNorth(SRL_ANGLE_HIGH);
              IncEx(BreakRounds, (w) + (x));
              Inc(TotalBreaks);
              Writeln('The next break will occur in about ' + IntToStr(BreakIn) + ' minutes.');
              w := (BreakIn * 60000);
              x := (BreakFor * 60000);
              y := RandomRange(-Bir * 60000, Bir * 60000);
              z := RandomRange(-Bfr * 60000, Bfr * 60000);
            end;
        end;
      end;

      Procedure FoundARandom;
      begin
        Writeln('Found a random!');
        PlaySound(ScriptPath+'evilaugh.wav');
        Wait(RandomRange(10000, 20000));
      end;

    begin
      Smart_Server := 86;
      Smart_Members := True;
      Smart_Signed := True;
      Smart_SuperDetail := False;

      setupSRL();
      DeclarePlayers;

      LoadVars;

      Smart_ClearCanvas;
      LoginPlayer;

      QuickHigh;
      //SRL_Procs[SRL_OnFindRandom] := @FoundARandom;

      Repeat

        if not LoggedIn then
        begin
          LoginPlayer;
          ClickNorth(SRL_ANGLE_HIGH);
        end;

        BreakHandler(BreakIn,BreakFor,Bir,Bfr);

        if (TimeFromMark(CommitTime)>=30000) then
          Commit;

        if (TimeFromMark(ReportTime)>=30000) then
          Report;

        FindNormalRandoms;
        HandleLivids;
        HandleSoil;

        if not CheckedPauline then
          HandleThatTiredPaulinePersonWhoNeedsEncouragementBecauseWeAreProLikeABoss;

        DoAntiban;

      Until(AllPlayersInactive)
    end.

    Current projects:
    [ AeroGuardians (GotR minigame), Motherlode Miner, Blast furnace ]

    "I won't fall in your gravity. Open your eyes,
    you're the Earth and I'm the sky..."


  2. #477
    Join Date
    Mar 2012
    Location
    Kapolei
    Posts
    81
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Ran out of nats and laws.

    [ by Flight ]
    [======================================]
    [ Run Time : 3 Hr 21 Min 48 Sec ]
    [ Points : 32480 ]
    [ Plants Cured : 540 ]
    [ Soil Fertilized : 544 ]
    [ Farming XP : 99728 ]
    [ Farming XP/Hr : 29651 ]
    [ Magic XP : 90528 ]
    [ Magic XP/Hr : 26916 ]
    [ Agility XP : 18144 ]
    [ Agility XP/Hr : 5394 ]
    [ Breaks : 1 ]
    [======================================]
    [ LividFarmer 1.2 ]
    [======================================]

  3. #478
    Join Date
    Mar 2012
    Posts
    6
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by oneshadow View Post
    Ran out of nats and laws.

    [ by Flight ]
    [======================================]
    [ Run Time : 3 Hr 21 Min 48 Sec ]
    [ Points : 32480 ]
    [ Plants Cured : 540 ]
    [ Soil Fertilized : 544 ]
    [ Farming XP : 99728 ]
    [ Farming XP/Hr : 29651 ]
    [ Magic XP : 90528 ]
    [ Magic XP/Hr : 26916 ]
    [ Agility XP : 18144 ]
    [ Agility XP/Hr : 5394 ]
    [ Breaks : 1 ]
    [======================================]
    [ LividFarmer 1.2 ]
    [======================================]
    how many runes You lost?

  4. #479
    Join Date
    Feb 2012
    Location
    Wonderland
    Posts
    1,988
    Mentioned
    41 Post(s)
    Quoted
    272 Post(s)

    Default

    @rev 5, running 1.2, you'll loose approx. 75 Laws/400 Nats/830 Astrals per hour

  5. #480
    Join Date
    Apr 2012
    Posts
    3
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    It's nearly flawless. I babysat 1.2 while I did homework yesterday and went from 60 to 66 farming. This script it great.

  6. #481
    Join Date
    Jul 2007
    Posts
    32
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Flight View Post
    Yikes, I wonder what went wrong. :/ Have you tried using V.1.2? I recommend that. Also, bring a handful of Law Runes with you.



    Absolutely, I actually posted it on page 18, but here it is again for anyone who missed it:

    Simba Code:
    {/////////////////////////////////////////
                      //             LividFarmer              //
                      //             (by Flight)              //
                      //                                      //
                      //             Version: 1.2             //
                      /////////////////////////////////////////}


    program LividFarmer;
      {$DEFINE SRL5}
      {$DEFINE SMART}

      {$i SRL/srl.simba}
      {$i SRL/SRL/misc/reports.simba}
      {$i SRL/SRL/misc/paintsmart.simba}

    Const

    //SRL Stats
      SRLStats_Username = '';
      SRLStats_Password = '';

    //General settings
      DebugMode    = True;    //On-screen debugging?
      SwitchWorlds = True;    //Switch worlds after a break?

    //Break settings
      BreakIn      = 135;     //How long before we take a break? (minutes)
      BreakFor     = 15;      //How long will we break for? (minutes)
      Bir          = 13;      //Random minutes to add/subtract from how long until we break
      Bfr          = 7;       //Random minutes to add/subjtract from break duraction

    Var

    //Static
      Version: String;
      SCols,PCols: TIntegerArray;

    //Dynamic
      FarmXP,FarmXP_O,MageXP,
      MageXP_O,AgilXP,AgilXP_O,
      Points,CommitTime,
      ReportTime,PlantCount,
      SoilCount: Integer;
      CheckedPauline: Boolean;

    //Break variables
      w,x,y,z,RealBTime,CurrentBTime,
      BreakRounds,TotalBreaks: Integer;


      Procedure DeclarePlayers;
      begin
        HowManyPlayers := 1;
        NumberOfPlayers(HowManyPlayers);
        CurrentPlayer := 0;
        with Players[0] do
        begin
          Name        := '';
          Pass        := '';
          BoxRewards  := ['XP','xp','lamp'];
          LampSkill   := Skill_Farming;
          Active      := True;
        end;
      end;

      Procedure LoadVars;
      begin
        Version := '1.2';
        MarkTime(ReportTime);
        MarkTime(CommitTime);
        CheckedPauline := False;

        SetupSRLStats(156, SRLStats_Username, SRLStats_Password);

        w := (BreakIn * 60000);
        x := (BreakFor * 60000);
        y := RandomRange(-Bir * 60000, Bir * 60000);
        z := RandomRange(-Bfr * 60000, Bfr * 60000);

        SCols := [5073267, 5204854, 5465452, 5402748];          //Soil colors
        PCols := [4542282, 4674124, 4871760, 5003346, 5135188]; //Healthy livid colors
      end;

      Procedure Report;
      Var
        FXPH,MXPH,AXPH: Integer;
      begin
        FXPH := Round((FarmXP * 3600) / (GetTimeRunning / 1000));
        MXPH := Round((MageXP * 3600) / (GetTimeRunning / 1000));
        AXPH := Round((AgilXP * 3600) / (GetTimeRunning / 1000));

        ClearDebug;
        SRLProgressReport(ResultDebugBox, 'LividFarmer', 'Flight', Version,
          ['Run time', 'Points', 'Plants cured', 'Soil fertilized', 'Farming XP',
            'Farming XP/Hr', 'Magic XP', 'Magic XP/Hr', 'Agility XP', 'Agility XP/Hr','Breaks'],
        [MsToTime(GetTimeRunning, Time_Abbrev), Points, PlantCount, SoilCount, FarmXP,
          FXPH, MageXP, MXPH, AgilXP, AXPH, TotalBreaks]);

        MarkTime(ReportTime);
      end;

      Procedure Commit;
      begin
        stats_IncVariable('Farming EXP (Gained)', FarmXP_O);
        stats_IncVariable('Magic EXP (Gained)', MageXP_O);
        stats_IncVariable('Agility EXP (Gained)', AgilXP_O);
        Stats_Commit;
        FarmXP_O := 0;
        MageXP_O := 0;
        AgilXP_O := 0;
        MarkTime(CommitTime);
      end;

      //By Bandland100, modified to shift mouse speeds after every step
      procedure SuperWindMouse(xs, ys, xe, ye, gravity, wind, minWait, maxWait, maxStep, targetArea: extended);
      var
        veloX,veloY,windX,windY,veloMag,dist,randomDist,lastDist,step: extended;
        lastX,lastY,MSP,W: integer;
        sqrt2,sqrt3,sqrt5: extended;
      begin
        MSP  := MouseSpeed;
        sqrt2:= sqrt(2);
        sqrt3:= sqrt(3);
        sqrt5:= sqrt(5);
        while hypot(xs - xe, ys - ye) > 1 do
        begin
          dist:= hypot(xs - xe, ys - ye);
          wind:= minE(wind, dist);
          if dist >= targetArea then
          begin
            windX:= windX / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
            windY:= windY / sqrt3 + (random(round(wind) * 2 + 1) - wind) / sqrt5;
          end else
          begin
            windX:= windX / sqrt2;
            windY:= windY / sqrt2;
            if (maxStep < 3) then
            begin
              maxStep:= random(3) + 3.0;
            end else
            begin
              maxStep:= maxStep / sqrt5;
            end;
          end;
          veloX:= veloX + windX;
          veloY:= veloY + windY;
          veloX:= veloX + gravity * (xe - xs) / dist;
          veloY:= veloY + gravity * (ye - ys) / dist;
          if hypot(veloX, veloY) > maxStep then
          begin
            randomDist:= maxStep / 2.0 + random(round(maxStep) div 2);
            veloMag:= sqrt(veloX * veloX + veloY * veloY);
            veloX:= (veloX / veloMag) * randomDist;
            veloY:= (veloY / veloMag) * randomDist;
          end;
          lastX:= Round(xs);
          lastY:= Round(ys);
          xs:= xs + veloX;
          ys:= ys + veloY;

          case Random(50) of
            1..25: W := (MSP + (Random((MSP/4))));
            26..50: W := (MSP - (RandomRange((MSP/2), MSP-1)));
          end;
          if (W < 1) then
            W := 1;

          if (lastX <> Round(xs)) or (lastY <> Round(ys)) then
            MoveMouse(Round(xs), Round(ys));

          if not DebugMode then
            SMART_DrawDotsEx(False, [Point(lastX, lastY)], 65280);

          step:= hypot(xs - lastX, ys - lastY);
          wait(W);
          lastdist:= dist;
        end;

        if (Round(xe) <> Round(xs)) or (Round(ye) <> Round(ys)) then
          MoveMouse(Round(xe), Round(ye));

        MouseSpeed := MSP;
      end;

      Procedure HumanRandomMouse;
      var
        randSpeed: extended;
        x, y, firstSpeed: integer;
      begin
        case(Random(10)) of
          2..8:
          begin
            firstSpeed := mouseSpeed;

            mouseSpeed := RandomRange(5,10);
            randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
            GetMousePos(x, y);
            SuperWindMouse(x, y, RandomRange(x - 75, x + 75), RandomRange(y - 75, y + 75),
                    30, 55, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);

            mouseSpeed := firstSpeed;
            Smart_ClearCanvas;
          end;
        end;
      end;

      Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
      var
        randSpeed: extended;
        X,Y,X2,Y2,A,Dist,MP: integer;
      begin
        A := MouseSpeed;
        GetMousePos(X, Y);
        Dist := Distance(X, Y, eX, eY);
        MP := Round(Dist/150);
        if MP < 0 then
          MP := 1;

        randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
        X2 := RandomRange(eX-(A*MP), eX+(A*MP));
        Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
        SuperWindMouse(X, Y, X2, Y2, 9.0, 3.0, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
        GetMousePos(X, Y);
        MMouse(eX, eY, ranX, ranY);
        MouseSpeed := A;
      end;

      Procedure ReturnValues(colors: TIntegerArray; var HueMods, SatMods: Extended; var color, Tolerance: Integer);
      Var
        h, s, t: Extended;
        I,II : integer;
        HSLColor : Array[1..3] of Extended;
        HSL : Array[0..1] of Array[1..3] of Extended;
      begin;
        For I:= 1 to 3 do
        begin;
          HSL[0][i] := 255;
        end;

        For I:= 0 to High(Colors) do
        begin;
          ColortoHSL(Colors[i],HSLColor[1],HSLColor[2],HSLColor[3]);
          For II:= 1 to 3 do
          begin;
            HSL[0][II] := MinE(HSLColor[II],HSL[0][II]);
            HSL[1][II] := MaxE(HSLColor[II],HSL[1][II]);
          end;
        end;

        H := (HSL[1][1] - HSL[0][1]);
        S := (HSL[1][2] - HSL[0][2]);
        T := (HSL[1][3] - HSL[0][3]);

        try
          HueMods := (H/T);
          SatMods := (S/T);
          Tolerance := Round(t);
        except
          HueMods := 0;
          SatMods := 0;
          Tolerance := Round(0.0);
        end;

        Color := HSLToColor((HSL[1][1] + HSL[0][1]) div 2,(HSL[1][2] + HSL[0][2]) div 2,(HSL[1][3] + HSL[0][3]) div 2);
      end;

      Function FindLivid(Var X,Y: Integer): Boolean;
      var
        B: TBox;
        TPA,PAr: TPointArray;
        i,h,CTS: Integer;
        TBA: TBoxArray;
        MBP: TPoint;
        ATPA: T2DPointArray;
      begin
        Result := False;
        if not LoggedIn then Exit;

        CTS := GetColorToleranceSpeed;
        PAr := TPAFromBox(IntToBox(245, 135, 275, 190));

        ColorToleranceSpeed(2);
        SetColorSpeed2Modifiers(8.34, 0.33);

        FindColorsSpiralTolerance(MSCX, MSCY, TPA, 1907996, MSX1, MSY1, MSX2, MSY2, 6);
        ColorToleranceSpeed(CTS);
        SetColorSpeed2Modifiers(0.2, 0.2);

        if (Length(TPA) < 1) then
          Exit;

        TPA := ClearTPAFromTPA(TPA, PAr);
        ATPA := SplitTPAEx(TPA, 30, 40);
        SortATPAFromFirstpoint(ATPA, Point(MSCX, MSCY));;

        for i := 0 to High(ATPA) do
        begin
          if (GetArrayLength(ATPA[I]) > 50) then
          begin
            B := GetTPABounds(ATPA[i]);

            SetArrayLength(TBA, Length(TBA)+1);
            TBA[High(TBA)] := B;
          end;
        end;

        if DebugMode then
        begin
          SMART_DrawBoxes(True, TBA, clRed);
          if (Length(TBA) > 0) then
            SMART_DrawBoxEx(False, TBA[0], 65280);
        end;

        for h := 0 to High(TBA) do
        begin
          MBP := MiddleBox(TBA[h]);
          HumanMMouse(MBP.X, MBP.Y, 5, 5);
          if WaitUpTextMulti(['Cure', 'plant', 'Diseased', 'livd'], 500) then
          begin
            Result := True;
            GetMousePos(X, Y);
            Exit;
          end else
            Result := False;
        end;

      end;

      Function FindSoil(Var X,Y: Integer): Boolean;
      var
        B,B2: TBox;
        TPA,TPA2,PAr: TPointArray;
        Hmod,Hmod2,Smod2,Smod: Extended;
        i,h,Tol,Tol2,CTS,Col2,Col: Integer;
        TBA: TBoxArray;
        MBP: TPoint;
        ATPA: T2DPointArray;
      begin
        CTS := GetColorToleranceSpeed;
        PAr := TPAFromBox(IntToBox(245, 155, 270, 190));

        ColorToleranceSpeed(2);
        ReturnValues(SCols, Hmod, Smod, Col, Tol);
        SetColorSpeed2Modifiers(Hmod, SMod);

        FindColorsSpiralTolerance(MSCX, MSCY, TPA, Col, MSX1, MSY1, MSX2, MSY2, Tol);

        if (Length(TPA) < 1) then
        begin
          ColorToleranceSpeed(CTS);
          SetColorSpeed2Modifiers(0.2, 0.2);
          Exit;
        end;

        TPA := ClearTPAFromTPA(TPA, PAr);
        ATPA := SplitTPAEx(TPA, 30, 30);
        SortATPAFromFirstpoint(ATPA, Point(MSCX, MSCY));

        for i := 0 to High(ATPA) do
        begin
          B := GetTPABounds(ATPA[i]);

          ReturnValues(PCols, Hmod2, Smod2, Col2, Tol2);
          SetColorSpeed2Modifiers(Hmod2, SMod2);

          if not FindColorsSpiralTolerance(MSCX, MSCY, TPA2, Col2, B.X1, B.Y1, B.X2, B.Y2, Tol2) then
          begin
            B2 := GetTPABounds(ATPA[i]);
            SetArrayLength(TBA, Length(TBA)+1);
            TBA[High(TBA)] := B2;
          end;

        end;

        ColorToleranceSpeed(CTS);
        SetColorSpeed2Modifiers(0.2, 0.2);

        if DebugMode then
        begin
          SMART_DrawBoxes(True, TBA, clRed);
          if (Length(TBA) > 0) then
            SMART_DrawBoxEx(False, TBA[0], 65280);
        end;

        for h := 0 to High(TBA) do
        begin
          MBP := MiddleBox(TBA[h]);
          HumanMMouse(MBP.X, MBP.Y, 5, 5);
          if WaitUpTextMulti(['Fertilise', 'Empty', 'patch'], 500) then
          begin
            Result := True;
            GetMousePos(X, Y);
            Exit;
          end else
            Result := False;
        end;

      end;

      Function FindPauline(Var X,Y: Integer): Boolean;
      var
        B: TBox;
        TPA,PArr: TPointArray;
        i,h,CTS: Integer;
        MBP: TPoint;
        ATPA: T2DPointArray;
        Cols,Tols: TIntegerArray;
        HMods,SMods: Array of Extended;
      begin
        Result := False;
        if not LoggedIn then Exit;

        CTS := GetColorToleranceSpeed;
        PArr := TPAFromBox(IntToBox(245, 135, 275, 190));

        Cols := [6319982, 6583413, 6648947];
        Tols  := [9, 12, 9];
        HMods := [0.10, 0.09, 0.09];
        SMods := [0.04, 0.08, 0.08];

        for h := 0 to High(Cols) do
        begin
          ColorToleranceSpeed(2);
          SetColorSpeed2Modifiers(HMods[h], SMods[h]);
          FindColorsSpiralTolerance(370, 30, TPA, Cols[h], 300, 5, 420, 70, Tols[h]);
          TPA := ClearTPAFromTPA(TPA, PArr);
          if (Length(TPA) > 0) then break;
        end;

        ColorToleranceSpeed(CTS);
        SetColorSpeed2Modifiers(0.2, 0.2);

        if (Length(TPA) < 1) then
        begin
          Writeln('No Pauline colors found');
          Exit;
        end;

        TPA := ClearTPAFromTPA(TPA, PArr);
        ATPA := SplitTPAEx(TPA, 15, 25);
        SortATPAFromFirstpoint(ATPA, Point(370, 30));;

        for i := 0 to High(ATPA) do
        begin
          B := GetTPABounds(ATPA[i]);

          if DebugMode then
            SMART_DrawBoxEx(True, B, 65280);

          MBP := MiddleBox(B);
          HumanMMouse(MBP.X, MBP.Y, 5, 5);
          if WaitUpTextMulti(['alk-t', 'rain', 'auli', 'Paul','olari'], 500) then
          begin
            Result := True;
            GetMousePos(X, Y);
            Exit;
          end;
        end;

      end;

      Function GetLividType(X, Y: Integer): Integer;
      var
        R1C1,R1C2,R1C3,R1C4,R1C5,
        R2C1,R2C2,R2C3,R2C4,R2C5,
        R3C1,R3C2,R3C3,R3C4,R3C5: TBox;
      begin
        Result := 0;
      //Top row
        R1C1 := IntToBox(100, 20, 150, 70);
        R1C2 := IntToBox(165, 20, 220, 70);
        R1C3 := IntToBox(235, 20, 290, 70);
        R1C4 := IntToBox(300, 20, 355, 70);
        R1C5 := IntToBox(370, 20, 440, 70);

      //Middle row
        R2C1 := IntToBox(70, 100, 135, 160);
        R2C2 := IntToBox(155, 100, 220, 160);
        R2C3 := IntToBox(230, 100, 290, 160);
        R2C4 := IntToBox(305, 100, 365, 160);
        R2C5 := IntToBox(380, 100, 440, 160);

      //Bottom row
        R3C1 := IntToBox(60, 210, 125, 270);
        R3C2 := IntToBox(140, 210, 215, 270);
        R3C3 := IntToBox(225, 210, 295, 270);
        R3C4 := IntToBox(305, 210, 375, 270);
        R3C5 := IntToBox(400, 210, 470, 270);

        if (IntInBox(X, Y, R1C1) or IntInBox(X, Y, R1C2) or        //Type 1
          IntInBox(X, Y, R1C3) or IntInBox(X, Y, R1C5)) then
            Result := 1
        else if (IntInBox(X, Y, R1C4) or IntInBox(X, Y, R2C3) or   //Type 2
          IntInBox(X, Y, R2C4) or IntInBox(X, Y, R2C5)) then
            Result := 2
        else if (IntInBox(X, Y, R2C2) or IntInBox(X, Y, R3C1) or   //Type 3
          IntInBox(X, Y, R3C5)) then
            Result := 3
        else if (IntInBox(X, Y, R2C1) or IntInBox(X, Y, R3C2) or   //Type 4
          IntInBox(X, Y, R3C3) or IntInBox(X, Y, R3C4)) then
            Result := 4;

      end;

      Function LividMenu: Boolean;
      var
        X,Y: Integer;
      begin
        Result := FindText(x, y, 'train', SmallChars, MIX1, MIY1, MIX2, MIY2);
      end;

      Function TalkScreen: Boolean;
      begin
        Result := GetColor(216, 360) = 7913190;
      end;

      Procedure QuickLow;
      begin
        KeyDown(40);
        Wait(850 + Random(100));
        KeyUp(40);
      end;

      Procedure QuickHigh;
      begin
        Mouse(542, 24, 15, 15, mouse_left);
        KeyDown(38);
        Wait(950 + Random(100));
        KeyUp(38);
      end;

      Procedure CureLivid(Strain: Integer);
      var
        SPoint: TPoint;
      begin
        if (Strain = 1) then
          SPoint := Point(590, 280)
        else if (Strain = 2) then
          SPoint := Point(680, 280)
        else if (Strain = 3) then
          SPoint := Point(590, 400)
        else if (Strain = 4) then
          SPoint := Point(680, 400);

        HumanMMouse(SPoint.X, SPoint.Y, 10, 10);
        if WaitUpText('Continue', 300) then
        begin
          ClickMouse2(True);
          Inc(PlantCount);
          IncEx(FarmXP_O, 92);
          IncEx(FarmXP, 92);
          IncEx(MageXP_O, 60);
          IncEx(MageXP, 60);
          IncEx(Points, 20);
        end;
      end;

      Function HandleLivids: Boolean;
      var
        X,Y,T: Integer;
      label
        Start;
      begin
        Result := False;

        Start:
        if not LoggedIn then Exit;
        FindNormalRandoms;

        MouseSpeed := RandomRange(12, 16);

        if FindLivid(X, Y) then
        begin
          if (GetLividType(X, Y) = 0) then
            GoTo Start;

          CheckedPauline := False;

          ClickMouse2(False);
          if WaitOptionMulti(['Cure', 're-p', '-pl', 'lant'], 500) then
          begin
            HumanMMouse(635, 310, 65, 70);
            if DebugMode then
              Smart_ClearCanvas;
          end;

          MarkTime(T);
          repeat
            if (TimeFromMark(T) > 3000) then
              Exit;
            if LividMenu then
              break;
          until(false)

          if LividMenu then
          begin
            CureLivid(GetLividType(X, Y));
            Wait(randomRange(1915, 2570));
            GoTo Start;
          end;
        end else
          Result := True;

      end;

      Function HandleSoil: Boolean;
      var
        X,Y: Integer;
      label
        Start;
      begin
        Result := False;

        Start:
        MouseSpeed := RandomRange(12, 16);
        FindNormalRandoms;

        if FindSoil(X, Y) then
        begin
          CheckedPauline := False;

          ClickMouse2(False);
          if WaitOption('Empty', 500) then
          begin
            Inc(SoilCount);
            IncEx(FarmXP_O, 92);
            IncEx(FarmXP, 92);
            IncEx(MageXP_O, 87);
            IncEx(MageXP, 87);
            IncEx(Points, 20);
            Smart_ClearCanvas;
            Wait(randomRange(1915, 2570));
            GoTo Start;
          end;
        end else
          Result := True;

      end;

      Function HandleThatTiredPaulinePersonWhoNeedsEncouragementBecauseWeAreProLikeABoss: Boolean;
      Var
        X,Y: Integer;
        ExBMP,FanBMP,LukBMP,
        ProBMP,WeBMP,WellBMP: Integer;
      begin
        Result := False;
        if not LoggedIn then Exit;

        if ((not FindLivid(X, Y)) and (not FindSoil(X, Y))) then
        begin
          QuickLow;
          MakeCompass('E');
          Wait(RandomRange(235, 320));

          if FindPauline(X, Y) then
          begin
            if WaitUpTextMulti(['Drai', 'raine'], 500) then
            begin
              ClickMouse2(False);
              if WaitOptionMulti(['Ener', 'ergis', 'gise'], 500) then
              begin

                if DebugMode then
                  Smart_ClearCanvas;

                if WaitFunc(@TalkScreen, 10, 3000) then
                begin
                  ExBMP := BitmapFromString(16, 5, 'meJw7cQIFMMAAhI0sAuGiiaDJYop' +
                      'QSz0e92C6H9MjcAAAAUs6mQ==');
                  FanBMP := BitmapFromString(67, 6, 'meJw7cQIKGHCAE0gAUxBZBI96POJ' +
                      '4zCTDGcguwSWI7FQ8gsRrwQXw+AWPFvwBRU+PEBNlpGqhv0eI9Ckx' +
                      'WgY2Rij3CMGoITKXEXQzMSmHkqQFAMDdFvg=');
                  LukBMP := BitmapFromString(18, 7, 'meJw7ceIEAwPDCTCJH8DVnAAD/Lp' +
                      'OIAEidSGLI+siaBEZunC5kKAuXOaQpAWiCwCFcEZR');
                  ProBMP := BitmapFromString(26, 7, 'meJw7cQIBGJAAVkFMWWQFmFw0Bho' +
                      'bqyCyLjzieJxHqmlYPUi5aZS7jYHcWMDvI1wAl0YAdzB8OQ==');
                  WellBMP := BitmapFromString(41, 6, 'meJw7cQIBGLABTFmC6nExcOnFahS' +
                      'mIJo5JFmNSy8uc/C4EI/VmCQDkpcxgxHTHEwHUGg1LvNxWY1LOzFG' +
                      '4WFjDQFMBQQFibEaTS8AGGuowQ==');
                  WeBMP := BitmapFromString(23, 8, 'meJw7ceIEAwycQGKTBE5QwxC4XjQ' +
                      'TTsAAHl3ICjANIeg8TAVYDUEG+A0hxiW4/EJQkAzv4HIe8QELAEER' +
                      'YnE=');

                  if (FindBitmapToleranceIn(ExBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
                      FindBitmapToleranceIn(WellBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
                      FindBitmapToleranceIn(FanBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
                      FindBitmapToleranceIn(LukBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
                      FindBitmapToleranceIn(ProBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15) or
                      FindBitmapToleranceIn(WeBMP, X, Y, MCX1, MCY1, MCX2, MCY2, 15)) then
                  begin
                    HumanMMouse(X, Y+2, 10, 2);
                    ClickMouse2(True);
                    IncEx(AgilXP_O, 168);
                    IncEx(AgilXP, 168);
                    IncEx(MageXP_O, 100);
                    IncEx(MageXP, 100);
                    IncEx(Points, 100);
                  end;

                  FreeBitmap(ExBMP);
                  FreeBitmap(WellBMP);
                  FreeBitmap(FanBMP);
                  FreeBitmap(LukBMP);
                  FreeBitmap(ProBMP);
                  FreeBitmap(WeBMP);
                end;

              end;
            end;

            Result := True;
          end;

          QuickHigh;
          CheckedPauline := True;

        end;

      end;

      Function DoAntiban: Boolean;
      var
        i: Integer;
      begin
        if not LoggedIn then Exit;
        i := Random(900);
        case i of
          1..45:
            begin
              HumanRandomMouse;
              Result := True;
            end;
          46:
            begin
              HoverSkill('Farming', False);
              Result := True;
            end;
          47:
            begin
              HoverSkill('Magic', False);
              Result := True;
            end;
        end;

        Wait(100);

      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);
              Writeln('Taking a break for about ' + IntToStr(RealBTime) + ' minutes.');
              Logout;
              MarkTime(CurrentBTime);
              repeat
                Wait(21000);
                ConvertTime((x+z)-TimeFromMark(CurrentBTime), h, m, s);
                ClearDebug;
                Writeln('Breaktime left: '+IntToStr(h)+':'+IntToStr(m)+':'+IntToStr(s));
              until(TimeFromMark(CurrentBTime)>(x+z));
              Writeln('Logging in.');
              if SwitchWorlds then
                if LoginPlayerToLob then
                  ChangeWorld(RandomWorld(True, False))
              else
                LoginPlayer;
              Wait(4000);
              Result := LoggedIn;
              ClickNorth(SRL_ANGLE_HIGH);
              IncEx(BreakRounds, (w) + (x));
              Inc(TotalBreaks);
              Writeln('The next break will occur in about ' + IntToStr(BreakIn) + ' minutes.');
              w := (BreakIn * 60000);
              x := (BreakFor * 60000);
              y := RandomRange(-Bir * 60000, Bir * 60000);
              z := RandomRange(-Bfr * 60000, Bfr * 60000);
            end;
        end;
      end;

      Procedure FoundARandom;
      begin
        Writeln('Found a random!');
        PlaySound(ScriptPath+'evilaugh.wav');
        Wait(RandomRange(10000, 20000));
      end;

    begin
      Smart_Server := 86;
      Smart_Members := True;
      Smart_Signed := True;
      Smart_SuperDetail := False;

      setupSRL();
      DeclarePlayers;

      LoadVars;

      Smart_ClearCanvas;
      LoginPlayer;

      QuickHigh;
      //SRL_Procs[SRL_OnFindRandom] := @FoundARandom;

      Repeat

        if not LoggedIn then
        begin
          LoginPlayer;
          ClickNorth(SRL_ANGLE_HIGH);
        end;

        BreakHandler(BreakIn,BreakFor,Bir,Bfr);

        if (TimeFromMark(CommitTime)>=30000) then
          Commit;

        if (TimeFromMark(ReportTime)>=30000) then
          Report;

        FindNormalRandoms;
        HandleLivids;
        HandleSoil;

        if not CheckedPauline then
          HandleThatTiredPaulinePersonWhoNeedsEncouragementBecauseWeAreProLikeABoss;

        DoAntiban;

      Until(AllPlayersInactive)
    end.
    oh thanks, for replying i didnt went through all pages so i didn't see it. will post some proggies later tonight^^

  7. #482
    Join Date
    Mar 2012
    Posts
    85
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Half way to get the repair pouch spell, then I will be using your ZMI script

    Edit: Still running, but here is a proggy, flawless.

    [======================================]
    [ LividFarmer 1.2 ]
    [ by Flight ]
    [======================================]
    [ Run Time : 2 Hr 17 Min 11 Sec ]
    [ Points : 25280 ]
    [ Plants Cured : 411 ]
    [ Soil Fertilized : 488 ]
    [ Farming XP : 82708 ]
    [ Farming XP/Hr : 36174 ]
    [ Magic XP : 74416 ]
    [ Magic XP/Hr : 32547 ]
    [ Agility XP : 12264 ]
    [ Agility XP/Hr : 5363 ]
    [ Breaks : 0 ]
    [======================================]
    [ LividFarmer 1.2 ]
    [======================================]

    And another post, finally got Repair Pouch spell.

    [=====================================]
    [ LividFarmer 1.2 ]
    [ by Flight ]
    [=====================================]
    [ Run Time : 2 Hr 20 Min 4 Sec ]
    [ Points : 24840 ]
    [ Plants Cured : 414 ]
    [ Soil Fertilized : 418 ]
    [ Farming XP : 76544 ]
    [ Farming XP/Hr : 32788 ]
    [ Magic XP : 69406 ]
    [ Magic XP/Hr : 29731 ]
    [ Agility XP : 13776 ]
    [ Agility XP/Hr : 5901 ]
    [ Breaks : 0 ]
    [=====================================]
    [ LividFarmer 1.2 ]
    [=====================================]
    Last edited by Blackdeath; 04-13-2012 at 02:38 PM.

  8. #483
    Join Date
    Mar 2007
    Posts
    5,125
    Mentioned
    275 Post(s)
    Quoted
    901 Post(s)

    Default

    Quote Originally Posted by scr View Post
    just tested the 1.2 update and i keep getting this stupid error when it trys to energise pauline, can you please help? rm
    do not click link - java drive by!
    Do not click link - java drive by!
    Do not click link - java drive by!
    Last edited by Harry; 04-13-2012 at 07:28 PM.

    Forum account issues? Please send me a PM

  9. #484
    Join Date
    Feb 2012
    Location
    Netherlands
    Posts
    55
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    [======================================]
    [ LividFarmer 1.2 ]
    [ by Flight ]
    [======================================]
    [ Run Time : 5 Hr 29 Min 27 Sec ]
    [ Points : 51660 ]
    [ Plants Cured : 1032 ]
    [ Soil Fertilized : 931 ]
    [ Farming XP : 180596 ]
    [ Farming XP/Hr : 32890 ]
    [ Magic XP : 155317 ]
    [ Magic XP/Hr : 28286 ]
    [ Agility XP : 20832 ]
    [ Agility XP/Hr : 3793 ]
    [ Breaks : 1 ]
    [======================================]
    [ LividFarmer 1.2 ]
    [======================================]

  10. #485
    Join Date
    Aug 2007
    Location
    Colorado
    Posts
    7,421
    Mentioned
    268 Post(s)
    Quoted
    1442 Post(s)

    Default

    Alright if V1.2 is working well for everyone I'll go ahead and upload it to the OP.

    Current projects:
    [ AeroGuardians (GotR minigame), Motherlode Miner, Blast furnace ]

    "I won't fall in your gravity. Open your eyes,
    you're the Earth and I'm the sky..."


  11. #486
    Join Date
    Mar 2012
    Posts
    148
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Got this error
    Code:
    SMART Initialized.
    Loaded: Server 86, Members: True, Signed: True, Super Detail: False.
    Error: Exception: Access violation at line 142
    The following DTMs were not freed: [SRL - Lamp bitmap, 1]
    The following bitmaps were not freed: [SRL - Mod bitmap, SRL - Admin bitmap, SRL - Flag bitmap]

  12. #487
    Join Date
    Nov 2011
    Location
    Canada
    Posts
    22
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    =-=-=-=-=-=-= LividFarmer 1.15 by Flight =-=-=-=-=-=
    Time Running: 1 Hours, 24 Minutes and 10 Seconds
    Points: 9840
    Plants cured: 246
    Soil fertilized: 246
    Farming XP: 45264 (32267 / hour)
    Magic XP: 36162 (25778 / hour)
    Breaks: 0
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

    Excellent script, thanks

  13. #488
    Join Date
    Dec 2006
    Location
    Sweden
    Posts
    10,812
    Mentioned
    3 Post(s)
    Quoted
    16 Post(s)

    Default

    Wish it'd filter better away from people with black armour... spam hovers around them a lot. Working good other than that.


    Send SMS messages using Simba
    Please do not send me a PM asking for help; I will not be able to help you! Post in a relevant thread or make your own! And always remember to search first!

  14. #489
    Join Date
    Apr 2012
    Posts
    2
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    has anyone ever got banned using this script?

  15. #490
    Join Date
    Apr 2012
    Location
    Puerto Rico
    Posts
    32
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Hate that I can't use this since I'm not 60 Farming yet :/

  16. #491
    Join Date
    Apr 2012
    Posts
    14
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    This is nice except it confuses armour like agile with diseased livids

  17. #492
    Join Date
    Apr 2012
    Posts
    3
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    HandleThatTiredPaulinePersonWhoNeedsEncouragementB ecauseWeAreProLikeABoss

    I lol'd when I saw that.

  18. #493
    Join Date
    Jan 2012
    Posts
    48
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    does 1.5 still work because I just care for farming xp and I want to minimize expense as much as possible?

  19. #494
    Join Date
    Apr 2012
    Posts
    1
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    hi guys, im new to this website, how do i install this script etc? and i have a mac is that a problem? thanks

  20. #495
    Join Date
    Mar 2012
    Posts
    11
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Just started using this, seem flawless, really quick too (Y) Great job (:

    [=================================]
    [ LividFarmer 1.2 ]
    [ by Flight ]
    [=================================]
    [ Run Time : 32 Min 42 Sec ]
    [ Points : 5360 ]
    [ Plants Cured : 94 ]
    [ Soil Fertilized : 99 ]
    [ Farming XP : 17756 ]
    [ Farming XP/Hr : 32579 ]
    [ Magic XP : 15753 ]
    [ Magic XP/Hr : 28904 ]
    [ Agility XP : 2520 ]
    [ Agility XP/Hr : 4623 ]
    [ Breaks : 0 ]
    [=================================]
    [ LividFarmer 1.2 ]
    [=================================]

  21. #496
    Join Date
    Jan 2012
    Posts
    48
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by sonicmouse View Post
    hi guys, im new to this website, how do i install this script etc? and i have a mac is that a problem? thanks
    you don't install it just download it and open the file and make sure everything is up to date

  22. #497
    Join Date
    Feb 2012
    Posts
    170
    Mentioned
    0 Post(s)
    Quoted
    6 Post(s)

    Default

    Thanks for 80 farming and disruption shield works very well. If you wanted to make it completely awesome though, you could add fletching support for the downtime between livid spawns. like have it make arrows or something. idk, if you're getting 99 farm with this might as well multi task and get the most exp/hr?

  23. #498
    Join Date
    Jan 2012
    Posts
    83
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Do you have any intent to add the produce part?
    Last edited by halgboy_tbc; 04-18-2012 at 09:22 PM.

  24. #499
    Join Date
    Mar 2012
    Location
    Kapolei
    Posts
    81
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Le Jingle View Post
    @rev 5, running 1.2, you'll loose approx. 75 Laws/400 Nats/830 Astrals per hour
    Meh..... sounds about right

    Reason why i have no idea is because before i started this i bought just over 50k nats, 60k astrals and about 20k laws... and i dont pay attention to how many i use/lose. Sorry
    Dont have a signature guys. Mods threaten to ban you.

  25. #500
    Join Date
    Jan 2012
    Posts
    550
    Mentioned
    2 Post(s)
    Quoted
    177 Post(s)

    Default

    Does this activity make you lose money? If so is it alot?

Page 20 of 53 FirstFirst ... 10181920212230 ... LastLast

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
  •