Page 7 of 7 FirstFirst ... 567
Results 151 to 171 of 171

Thread: Rogue's Den Cooker

  1. #151
    Join Date
    Aug 2007
    Location
    England
    Posts
    1,038
    Mentioned
    0 Post(s)
    Quoted
    6 Post(s)

    Default

    I wanted to use this so I have updated it to work with R2.
    I could not do the function r_ClickRaw because R_ClickItem and R_ClickItemBy don't work with Players[CurrentPlayer].Integer[4] because its an array, so I put it as Result := False(good job the script has DTMs ).
    I did a few loads and it's working so I thought I'd post it as people want to use it with R2.

    Simba Code:
    program RoguesDenCooker;
    {$DEFINE SMART}
    {$i SRL\SRL.scar}
    {$i Reflection\Reflection.simba}
    {$i SRL\SRL\Misc\Stats.Simba}


    const
      sWorld = 24;     //smart world
      sSigned = True;  //signed client
      MinABWait = 5000;//minimum wait between performing antiban (in miliseconds)
      Stats_User = ''; //SRL Stats username
      Stats_Pass = ''; //SRL Stats password

    //NOTE: Before you start, make sure your inventory is *empty* or else the counting
    //      Will be incorrect.
    procedure DeclarePlayers;
    begin
      HowManyPlayers := 1; //How many players will you be using?
      NumberOfPlayers(HowManyPlayers); //Don't touch
      CurrentPlayer := 0; //Which player to start off with?

      with Players[0] do
      begin
        Name := ''; //rs username
        Pass := ''; //rs pass
        Nick := ''; //Nickname for progress report
        Pin := ''; //Bank pin
        Active := True; //use player?
        Integers[0] := 5; //What food to cook? 0 = Trout, 1 = Salmon, 2 = Tuna, 3 = Lobster, 4 = Swordfish, 5 = Monkfish, 6 = shark, 7 = rocktail
        Integers[1] := 0; //number of loads to cook. estimated 40 loads per hour. leave at 0 to run until it breaks
        Integers[2] := 0 * 60 * 1000; //change first number for minutes to run. leave at 0 to run until it breaks.
        Integers[6] := 0 * 1000; //Change first number for minimum number of seconds to wait between autoresponding {only applies if Booleans[0] is true}
        Arrays[0] := ['']; //if you're using the autoresponder, these are the text to look for to identify your name. so something like ['user', 'sern', 'erna', 'rnam', 'name'] would work awesome (for the name "username")
        Booleans[0] := False; //Respond when people ask about cooking levels or when it finds your name?
          //lines 509-518: If you know what you're doing, you can customize the autoresponder
      end;
    end;
    ////////////////////////////setup ends here////////////////////////////////////

    procedure SetupNewPlayer;
    begin
      case Players[CurrentPlayer].Integers[0] of
        0: //Trout
        begin
          with Players[CurrentPlayer] do
          begin
            Strings[0] := 'mggAAAHicY2NgYLBnYmDwAmJHILYAYjMgNgXiMEYGBn8gjgLiGCAOhbKXL5gP1MWEgXkYsANGHBgCAASCBZI=';//Raw DTM
            Strings[1] := 'mggAAAHicY2NgYMhiYmCIB+IEIM4E4lwgLgHiYEYGhjAgjgHiKCCOAGJ/IE6LigDqYsLAPAzYASMODAEAOpIFxg==';//Cooked DTM
            Strings[2] := 'w tr';//Raw uptext
            Strings[3] := 'Tro';//Cooked uptext
            Strings[4] := 'Trout';//Fish name
            Integers[3] := 70;//EXP
            Integers[4] := 335; //Raw ID (For reflection)
            Integers[5] := 333; //Cooked ID (For reflection)
          end;
        end;
        1: //Salmon
        begin
          with Players[CurrentPlayer] do
          begin
            Strings[0] := 'mggAAAHicY2NgYOhlYmDoA+JOIF4AxFOYIGIRjAwMMYwQ2g+Io4A4CIhXTJ0E1MWEgbkYsANGHBgCAN+VB20=';//Raw DTM
            Strings[1] := 'mbQAAAHicY2VgYDjAxMCwB4g3A/E+ID4OxEGMDAz+QBwFxQFAvN1aGqiaCQXzMGACRiwYDAA1VgaU';//Cooked DTM
            Strings[2] := 'w sa';//Raw uptext
            Strings[3] := 'Sal';//Cooked uptext
            Strings[4] := 'Salmon';//Fish name
            Integers[3] := 90;//EXP
            Integers[4] := 331; //Raw ID (For reflection)
            Integers[5] := 329; //Cooked ID (For reflection)
          end;
        end;
        2: //Tuna
        begin
          with Players[CurrentPlayer] do
          begin
            Strings[0] := 'mggAAAHicY2NgYPBggmBHILYCYlMoXcrIwFAFxA1A3AjEdUBcAsTtTY1AXUwYmIcBO2DEgSEAADy2Bhs=';//Raw DTM
            Strings[1] := 'mggAAAHicY2NgYEhjYmCIB+IUIC4C4kogzgbiMkYGhlogbgTiKkYIvwGIE0KDgbqYMDAPA3bAiANDAACKjQag';//Cooked DTM
            Strings[2] := 'w tu';//Raw uptext
            Strings[3] := 'Tun';//Cooked uptext
            Strings[4] := 'Tuna';//Fish name
            Integers[3] := 100;//EXP
            Integers[4] := 359; //Raw ID (For reflection)
            Integers[5] := 361; //Cooked ID (For reflection)
          end;
        end;
        3: //Lobster
        begin
          with Players[CurrentPlayer] do
          begin
            Strings[0] := 'mggAAAHicY2NgYJjFxMDQC8SdTBD2PCDuAOIKRgaGWiAuAuImIC5jhIiFGkoBdTFhYB4G7IARB4YAANVHBxw=';//Raw DTM
            Strings[1] := 'mggAAAHicY2NgYDjExMCwD4iPAPEJIN4OxJuAuIyRgaEWiJuAuAaIq4C4FIhXhEoAdTFhYB4G7IARB4YAAHMQCJ8=';//Cooked DTM
            Strings[2] := 'w lo';//Raw uptext
            Strings[3] := 'Lob';//Cooked uptext
            Strings[4] := 'Lobster';//Fish name
            Integers[3] := 120;//EXP
            Integers[4] := 377; //Raw ID (For reflection)
            Integers[5] := 379; //Cooked ID (For reflection)
          end;
        end;
        4: //Swordfish
        begin
          with Players[CurrentPlayer] do
          begin
            Strings[0] := 'mlwAAAHicY2dgYLBiYmAwA2IPIA4AYmsg9oaKzWFkYFgMxDOheAoQTwbi+UC8YuoaoG4mrJiHATdgxIOhAABzowgg';//Raw DTM
            Strings[1] := 'mlwAAAHicY2dgYMhjYmBIAeJkII4H4jggLgfiUiCezMjAMA2IZwHxQiBeCmXPA+Ly0DqgbiasmJUBN2DEg6EAANERCJ4=';//Cooked DTM
            Strings[2] := 'w sw';//Raw uptext
            Strings[3] := 'Swo';//Cooked uptext
            Strings[4] := 'Swordfish';//Fish name
            Integers[3] := 140;//EXP
            Integers[4] := 371; //Raw ID (For reflection)
            Integers[5] := 373; //Cooked ID (For reflection)
          end;
        end;
        5: //Monkfish
        begin
          with Players[CurrentPlayer] do
          begin
            Strings[0] := 'mggAAAHicY2NgYFjGysCwAIhnAvFGIF4HxNOA+DFQ7iYQPwPiF0D8AIjvAXG0rRGQZMLAPAzYASMODAEA9bAKJw==';//Raw DTM
            Strings[1] := 'mggAAAHicY2NgYNjNzMBwBohPAPFWIN4MxPuB2I6JgcEGiF2A2BWIbYHYA4hjgtyBupgwMA8DdsCIA0MAAPHMBzQ=';//Cooked DTM
            Strings[2] := 'w mo';//Raw uptext
            Strings[3] := 'Mon';//Cooked uptext
            Strings[4] := 'Monkfish';//Fish name
            Integers[3] := 150;//EXP
            Integers[4] := 7944; //Raw ID (For reflection)
            Integers[5] := 7946; //Cooked ID (For reflection)
          end;
        end;
        6: //Shark
        begin
          with Players[CurrentPlayer] do
          begin
            Strings[0] := 'mggAAAHicY2NgYHBgYmDwAeIAIDYBYnMgtgbi3YwMDDuA+BgQH2WE8I8DcVNNDVAXEwbmYcAOGHFgCAAAz7IHsQ==';//Raw DTM
            Strings[1] := 'mggAAAHicY2NgYMhhYmBIAOIkIC4D4iogLgDiXYwMDKeAeDsUHwfik0Ac7mQI1MWEgXkYsANGHBgCABNJCA8=';//Cooked DTM
            Strings[2] := 'w sh';//Raw uptext
            Strings[3] := 'Sha';//Cooked uptext
            Strings[4] := 'Shark';//Fish name
            Integers[3] := 210;//EXP
            Integers[4] := 383; //Raw ID (For reflection)
            Integers[5] := 385; //Cooked ID (For reflection)
          end;
        end;
        7: //Rocktail
        begin
          with Players[CurrentPlayer] do
          begin
            Strings[0] := 'mlwAAAHicY2dgYJjIxMCwAIjnAvFMIJ4ExF1QvJ+RgWEnEB8E4uNAfAKIDwPxXiBOnrEeqJsJK+ZhwA0Y8WAoAAAEnQs7';//Raw DTM
            Strings[1] := 'mggAAAHicY2NgYNjDxMBwEoj3A/FmIN4JxGdAfEYIPgXEh4F4FxRvT88B6mLCwDwM2AEjDgwBAC2nCro=';//Cooked DTM
            Strings[2] := 'w ro';//Raw uptext
            Strings[3] := 'Roc';//Cooked uptext
            Strings[4] := 'Rocktail';//Fish name
            Integers[3] := 225;//EXP
            Integers[4] := 15270; //Raw ID (For reflection)
            Integers[5] := 15272; //Cooked ID (For reflection)
          end;
        end;
      end;
    end;

    var
      ABMark, StatsTimer: Integer;


    procedure Antiban;
    begin
      if (not(LoggedIn) or (TimeFromMark(ABMark) < MinABWait)) then
        Exit;
      if (Random(9) > 0) then
      begin
        case Random(9) of
          1: RandomMovement;
          2: BoredHuman;
          3: RandomMovement;
          4: PickUpMouse;
          5: HoverSkill('cooking', False);
          6: RandomRClick;
          7: PickUpMouse;
          8: RandomAngle(1);
          9: HoverSkill('cooking', False);
          0: HoverSkill('random', False);
         end;
         MarkTime(ABMark);
      end;
    end;


    function AttemptAndSwivel(func: function: Boolean; Attempts, SwivelPer: Integer): Boolean;
    var
      i: Integer;
    begin
      for i := 1 to Attempts do
      begin
        if func() then
        begin
          Result := True;
          Exit;
        end;
        MakeCompass(rs_GetCompassAngleDegrees + (SwivelPer + Random(10) - Random(10)));
        Wait(800 + Random(80));
      end;
    end;



    function AttemptFunct(Func: function: Boolean; Attempts: Integer): Boolean;
    var
      i: Integer;
    begin
      for i := 1 to Attempts do
      begin
        if func() then
        begin
          Result := True;
          Exit;
        end;
        Wait(800 + Random(80));
      end;
    end;


    const //Reflection constants
      FireTileX = 3043;
      FireTileY = 4973;


    function r_OpenBenedict: Boolean;
    var
      Benedict: TNPC;
      BenedictPoint: TPoint;
      T: Integer;
    begin
      R_FindRandoms;
      repeat
        Benedict := R_GetNPC('Emerald Benedict', False);
        if not(R_TileOnMS(Benedict.Tile, 0)) then
          R_WalkToTile(Benedict.Tile, 4, 0);
        Benedict := R_GetNPC('Emerald Benedict', False);
      until(R_TileOnMS(Benedict.Tile, 0));
      BenedictPoint := R_TileToMS(Benedict.Tile, 0);
      Mouse(BenedictPoint.x - 2, BenedictPoint.y - 2, 4, 4, False);
      if (r_WaitOption('ank', 1200)) then
      begin
        T := GetSystemTime + 4000;
        while (GetSystemTime < T) and not(Result) and LoggedIn do
          Result := BankScreen or PinScreen;
      end;
    end;


    function OpenBenedict: Boolean;
    var
      CTS, x, y, i, H, T: Integer;
      TPA: TPointArray;
      ATPA: array of TPointArray;
      R: Boolean;
    begin
      if not(LoggedIn) then
        Exit;
      R_FindRandoms;
      if BankScreen then
      begin
        Result := True;
        Exit;
      end;
      CTS := GetColorToleranceSpeed;
      SetColorToleranceSpeed(2);
      SetColorspeed2Modifiers(0.01374, 1.69810);
      FindColorsTolerance(TPA, 7444680, MSX1, MSY1, MSX2, MSY2, 4);
      SetColorToleranceSpeed(CTS);
      //DebugTPA(TPA, '');
      if (Length(TPA) > 0) then
      begin
        ATPA := TPAtoATPAEx(TPA, 20, 30);
        SortATPAFromFirstPoint(ATPA, IntToPoint(MSCX, MSCY));
        //DebugATPABounds(ATPA);
        H := High(ATPA);
        for i := 0 to H do
        begin
          MiddleTPAEx(ATPA[i], x, y);
          MMouse(x - 3, y - 3, 6, 6);
          if WaitUptext('ened', 1600) then
          begin
            ClickMouse2(False);
            Result := WaitOption('ank', 1600);
          end;
          if Result then
            Break;
        end;
        T := GetSystemTime + 4000;
        while (GetSystemTime < T) and not(Result) and LoggedIn do
          Result := BankScreen or PinScreen;
      end else
      begin
        R := True;
        Result := r_OpenBenedict;
      end;
      if (not(R) and not(Result)) then
        Result := r_OpenBenedict;
      if Result and PinScreen then
        Result := InPin(Players[CurrentPlayer].Pin);
      if Result then
        Wait(1800 + Random(240));
    end;


    function r_CountRaws: Integer;
    begin
      Result := R_CountItem(Players[CurrentPlayer].Integers[4]);
    end;


    function CountRaws: Integer;
    var
      RawDTM: Integer;
    begin
      if not(LoggedIn) then
        Exit;
      R_FindRandoms;
      RawDTM := DTMFromString(Players[CurrentPlayer].Strings[0]);
      Result := CountItems('dtm', RawDTM, []);
      FreeDTM(RawDTM);
      if ((Result < 1) or (Result < InvCount)) then
        Result := r_CountRaws;
    end;


    function r_CountCooked: Integer;
    begin
      Result := R_CountItem(Players[CurrentPlayer].Integers[5])
    end;


    function CountCooked: Integer;
    var
      CookedDTM: Integer;
    begin
      if not(LoggedIn) then
        Exit;
      R_FindRandoms;
      CookedDTM := DTMFromString(Players[CurrentPlayer].Strings[1]);
      Result := CountItems('dtm', CookedDTM, []);
      FreeDTM(CookedDTM);
      if ((Result < 1) or (Result < InvCount)) then
        Result := r_CountCooked;
    end;


    function DoBank: Boolean; //no reflection backup, if someone wants to teach me interfaces then yay.
    var
      RawDTM, x, y, M: Integer;
    begin
      if (not(LoggedIn) or not(BankScreen)) then
        Exit;
      R_FindRandoms;
      DepositAll;
      Wait(50 + Random(100));
      RawDTM := DTMFromString(Players[CurrentPlayer].Strings[0]);
      if FindDTM(RawDTM, x, y, MBX1, MBY1, MBX2, MBY2) then
      begin
        MMouse(x - 3, y - 3, 6, 6);
        Wait(50 + Random(100));
        if WaitUptext(Players[CurrentPlayer].Strings[2], 1600) then
        begin
          ClickMouse2(False);
          Wait(50 + Random(100));
          WaitOption('raw-A', 1600);
        end;
      end else
        Writeln('could not find raw food DTM in bank!');
      Closebank;
      M := GetSystemTime + 4000;
      while ((not(Result)) and (GetSystemTime < M)) do
      begin
        if (not(InvEmpty)) then
        begin
          Result := True;
          Break
        end;
        Wait(10 + Random(25));
      end;
      FreeDTM(RawDTM);
      if Result then
      begin
        Inc(Players[CurrentPlayer].Banked);
        IncEx(Players[CurrentPlayer].Integers[11], CountRaws);
        stats_IncVariable('Loads Done', 1);
        case Players[CurrentPlayer].Integers[0] of
          0: stats_IncVariable('Trout Cooked', CountRaws);
          1: stats_IncVariable('Salmon Cooked', CountRaws);
          2: stats_IncVariable('Tuna Cooked', CountRaws);
          3: stats_IncVariable('Lobster Cooked', CountRaws);
          4: stats_IncVariable('Swordfish Cooked', CountRaws);
          5: stats_IncVariable('Monkfish Cooked', CountRaws);
          6: stats_IncVariable('Shark Cooked', CountRaws);
          7: stats_IncVariable('Rocktail Cooked', CountRaws);
        end;
      end;
    end;


    function r_ClickRaw: Boolean;
    begin
      R_FindRandoms;
      Result := False
    end;


    function ClickRaw: Boolean;
    var
      RawDTM, x, y, T: Integer;
    begin
      if not(LoggedIn) then
        Exit;
      R_FindRandoms;
      RawDTM := DTMFromString(Players[CurrentPlayer].Strings[0]);
      if FindDTM(RawDTM, x, y, MIX1, MIY1, MIX2, MIY2) then
      begin
        MMouse(x - 4, y - 4, 8, 8);
        if WaitUptext(Players[CurrentPlayer].Strings[2], 1600) then
        begin
          ClickMouse2(True);
          T := GetSystemTime + 6000;
          while ((not(Result)) and (GetSystemTime < T)) do
          begin
            Wait(200 + Random(20));
            Result := (ActivatedItem > 0);
          end;
        end;
      end else
        Writeln('could not find raw food DTM in inventory!');
      FreeDTM(RawDTM);
      if not(Result) then
        Result := r_ClickRaw;
    end;


    function r_ClickFire: Boolean;
    var
      FireTile: TTile;
      FirePoint: TPoint;
    begin
      if not(LoggedIn) then
        Exit;
      R_FindRandoms;
      FireTile := Point(FireTileX, FireTileY);
      if not(R_TileOnMS(FireTile, 0)) then
      begin
        R_WalkToTile(FireTile, 3, 0);
        ClickRaw;
      end;
      FirePoint := R_TileToMS(FireTile, 0);
      Mouse(FirePoint.x - 3, FirePoint.y - 3, 6, 6, false);
      Result := r_WaitOption('> Fi', 1200);
    end;


    function ActionScreen: Boolean;
    begin
      R_FindRandoms;
      Result := (CountColorTolerance(4477273, 85, 415, 95, 425, 10) > 65);
    end;


    function ClickFire: Boolean;
    var
      CTS, x, y, i, H: Integer;
      TPA: TPointArray;
      ATPA: array of TPointArray;
      R: Boolean;
    begin
      R_FindRandoms;
      if not(LoggedIn) then
        Exit;
      CTS := GetColorToleranceSpeed;
      SetColorToleranceSpeed(2);
      SetColorspeed2Modifiers(0.10167, 1.61841);
      FindColorsTolerance(TPA, 2730226, MSX1, MSY1, MSX2, MSY2, 5);
      SetColorToleranceSpeed(CTS);
      //Writeln(Length(TPA));
      if (Length(TPA) > 0) then
      begin
        ATPA := TPAtoATPAEx(TPA, 30, 30);
        //DebugATPABounds(ATPA);
        SortATPAFromFirstPoint(ATPA, IntToPoint(MSCX, MSCY));
        H := High(ATPA);
        for i := 0 to H do
        begin
          MiddleTPAEx(ATPA[i], x, y);
          MMouse(x - 2, y - 2, 4, 4);
          if WaitUptext('more', 800) then //there's always so many people, i'm just gonna check for "more" in "XX more options"
          begin
            ClickMouse2(False);
            Result := WaitOption('> Fire', 1600);
          end;
          if Result then
            Break;
        end;
      end else
      begin
        R := True;
        Result := r_ClickFire;
      end;
      if (not(R) and not(Result)) then
        Result := r_ClickFire;
      if Result then
        Result := WaitFunc(@ActionScreen, 10 + random(15), 7000);
    end;


    function OutlineFound: Boolean;
    begin
      R_FindRandoms;
      Result := (CountColorTolerance(10408935, 215, 387, 302, 400, 80) > 60);
    end;


    function ClickButton: Boolean;
    var
      CookedDTM, x, y: Integer;
    begin
      R_FindRandoms;
      if not(LoggedIn) then
        Exit;
      Result := False;
      R_FindRandoms;
      CookedDTM := DTMFromString(Players[CurrentPlayer].Strings[0]);
      if not(FindDTM(CookedDTM, x, y, MCX1, MCY1, MCX2, MCY2)) then
      begin
        FreeDTM(CookedDTM);
        Exit;
      end;
      FreeDTM(CookedDTM);
      MMouse(x - 4, y - 4, 8 , 8);
      if (WaitFunc(@OutlineFound, 10 + Random(15), 8000)) then
      begin
        ClickMouse2(True);
        Result := True;
      end else
        Writeln('didnt find the outline');
    end;


    procedure SayCookLVL;
    begin
      TypeByte(GetKeyCode(Chr(13)));
      Wait(50 + random(7));
      TypeSendEx('s', False);
      Wait(120 + Random(12));
      TypeSendEx('v', False);
      Wait(40 + random(8));
      TypeSendEx('2', False);
    end;



    function RespondChat: Boolean; //reccomendation from hobbit
    var
      i: Integer;
    begin
      if not(Players[CurrentPlayer].Booleans[0]) then
        Exit;
      if (TimeFromMark(Players[CurrentPlayer].Integers[60]) <= Players[CurrentPlayer].Integers[6]) then
        Exit;
      if FindTextTpa(clYellow, 8, MSX1, MSY1, MSX2, MSY2, 'ooking le', 'SmallChars', Nothing) then
      begin
        Result := True;
        SayCookLVL;
        MarkTime(Players[CurrentPlayer].Integers[60]);
        Exit;
      end;
      for i := 0 to High(Players[CurrentPlayer].Arrays[0]) do
      if FindTextTpa(clYellow, 8, MSX1, MSY1, MSX2, MSY2, Players[CurrentPlayer].Arrays[0][i], 'SmallChars', Nothing) then
      begin
        Result := True;
        case Random(9) of
          0: TypeSend('?');
          1: TypeSend(AddMistakes('What?', 15));
          2: TypeSend(AddMistakes('wtf do you want!?', 15));
          3: TypeSend(AddMistakes('oh hey srry was watchin TV', 15));
          4: TypeSend(AddMistakes('sup', 15));
          5: TypeSend(AddMistakes('oh sup i was playin cod srry', 15));
          6: TypeSend(AddMistakes('sup', 15));
          7: TypeSend(AddMistakes('wat', 15));
          8: TypeSend(AddMistakes('i dont talk to dumb people :P', 15));
          9: TypeSend('?');
        end;
        MarkTime(Players[CurrentPlayer].Integers[60]);
        Break;
      end;
    end;


    function WaitCook: Boolean;
    var
      T, CookedDTM, RawCount: Integer;
    begin
      RawCount := CountRaws;
      MarkTime(T); //68 seconds = one inventory (4 game ticks (.6 seconds) per cook * 28 = 67.2 seconds
      while (TimeFromMark(T) < 68000 + Random(680)) do
      begin
        R_FindRandoms;
        Antiban;
        if RespondChat then
          Inc(Players[CurrentPlayer].Integers[61]);
        if LevelUp then
        begin
          Inc(Players[CurrentPlayer].Integers[12]);
          stats_IncVariable('Total Levels Gained', 1);
        end;
        Wait(850 + Random(85));
      end;
      CookedDTM := DTMFromString(Players[CurrentPlayer].Strings[1]);
      Result := (CountItems('dtm', CookedDTM, []) > 0); //randoms are a bitch.
      FreeDTM(CookedDTM);
      if Result then
      begin
        IncEx(Players[CurrentPlayer].Integers[10], CountCooked);
        stats_IncVariable('Total EXP Gained', Players[CurrentPlayer].Integers[3] * CountCooked);
      end;
    end;


    procedure Die(Status: string);
    begin
      if not(LoggedIn) then
        Exit;
      if BankScreen then
        CloseBank;
      R_FindRandoms;
      Logout;
      Players[CurrentPlayer].Status := Status;
      Writeln('Death because: ' + Players[CurrentPlayer].Status);
    end;


    procedure Report;
    var
      i, TotalCooked, TotalEXP, TotalLVLs, TotalSuccess, TotalBurnt: Integer;
      xpHR, foodHR, loadHR: Int64;
    begin
      for i := 0 to High(Players) do
      begin
        IncEx(TotalCooked, Players[i].Integers[11]);
        IncEx(TotalSuccess, Players[i].Integers[10]);
        IncEx(TotalBurnt, Players[i].Integers[11] - Players[i].Integers[10]);
        Players[i].Integers[13] := Players[i].Integers[10] * Players[i].Integers[3];
        IncEx(TotalEXP, Players[i].Integers[13]);
        IncEx(TotalLVLs, Players[i].Integers[12]);
      end;       {123456789|123456789|123456789|123456789|123456789|123456789|12345678}
      Writeln('');
      Writeln('[====================================================================]');
      Writeln('[                    TomTuff''s Rogue''s Den Cooker                    ]');  //2 extra spaces from ''s
      Writeln('[                           Revision 10                              ]');
      Writeln('[====================================================================]');
      Writeln('[  Overall Report                                                    ]');
      Writeln('[    Time Ran: ' + Padr(MsToTime(GetTimeRunning, Time_Formal), 54) + ']');
      Writeln('[    Fish attempted to cook: ' + padr(IntToStr(TotalCooked), 40) + ']');
      Writeln('[      Fish sucessfuly cooked: ' + Padr(IntToStr(TotalSuccess), 38) + ']');
      Writeln('[      Fish burnt: ' + Padr(IntToStr(TotalBurnt), 50) + ']');
      Writeln('[    Total EXP gained: ' + Padr(IntToStr(TotalExp), 46) + ']');
      Writeln('[====================================================================]');
      for i := 0 to High(Players) do
      begin
        Writeln('[  Player ' + Padl(IntToStr(i), 2) + ' (' + Padr(Players[i].Nick, 4) + '):' + Padr('', 49) + ']');
        Writeln('[    Fish type: ' + Padr(Players[i].Strings[4], 53) + ']');
        Writeln('[    Worked: ' + Padr(MSToTime(PlayerWorked(i), Time_Formal), 56) + ']');
        if ((Players[i].Status <> '') and (not(Players[i].Active))) then
          Writeln('[    Stopped Because: ' + Padr(Players[i].Status, 47) + ']');
        Writeln('[    Levels gained: ' + Padr(IntToStr(Players[i].Integers[12]), 49) + ']');
        Writeln('[    EXP gained: ' + Padr(IntToStr(Players[i].Integers[13]), 52) + ']');
        xpHR := Ceil((Players[i].Integers[13] * 60.0 * 60.0 * 1000.0) / PlayerWorked(i));
        Writeln('[      Exp/HR: ' + Padr(Int64ToStr(xpHR), 54) + ']');
        Writeln('[    Food attempted: ' + Padr(IntToStr(Players[i].Integers[11]), 48) + ']');
        foodHR := Ceil((Players[i].Integers[11] * 60.0 * 60.0 * 1000.0) / PlayerWorked(i));
        Writeln('[      Food cooked/HR: ' + Padr(Int64ToStr(foodHR), 46) + ']');
        Writeln('[      Successful: ' + Padr(IntToStr(Players[i].Integers[10]), 50) + ']');
        Writeln('[      Burnt: ' + Padr(IntToStr(Players[i].Integers[11] - Players[i].Integers[10]), 55) + ']');
        Writeln('[    Loads: ' + Padr(intToStr(Players[i].Banked), 57) + ']');
        loadHR := Ceil((Players[i].Banked * 60.0 * 60.0 * 1000.0) / PlayerWorked(i));
        Writeln('[      Loads/HR: ' + padr(Int64ToStr(loadHR), 52) + ']');
        if (Players[i].Integers[61] > 0) then
        Writeln('[    Times responded: ' + Padr(IntToStr(Players[i].Integers[61]), 47) + ']');
        Writeln('[====================================================================]');
      end;
      Writeln('');
    end;


    function CheckSums: Boolean;
    begin
      if (not(Players[CurrentPlayer].Integers[1] = 0)) then
        Result := (Players[CurrentPlayer].Banked >= Players[CurrentPlayer].Integers[1]);
      if Result then
        Exit;
      if (not(Players[CurrentPlayer].Integers[2] = 0)) then
        Result := (PlayerWorked(CurrentPlayer) > Players[CurrentPlayer].Integers[2])
    end;


    begin
      Smart_Members := True;
      Smart_Server := sWorld;
      Smart_Signed := sSigned;
      Smart_SuperDetail := False;
      SetupReflection;
      SetupSRLStats(32, Stats_User, Stats_Pass);
      DeclarePlayers;
      LoginPlayer;
      MarkTime(StatsTimer);
      repeat
        SetupNewPlayer;
        SetAngle(True);
        repeat
          if AttemptAndSwivel(@OpenBenedict, 16, 45) then
          begin
            if AttemptFunct(@DoBank, 4) then
            begin
              if AttemptFunct(@ClickRaw, 4) then
              begin
                if AttemptAndSwivel(@ClickFire, 16, 45) then
                begin
                  if AttemptFunct(@ClickButton, 3) then
                  begin
                    if WaitCook then
                    begin
                      Report;
                    end else Die('could not wait to cook');
                  end else Die('could not click the cooking button');
                end else Die('could not click the fire');
              end else Die('could not click raw in inventory');
            end else Die('could not handle banking');
          end else Die('could not open Benedict');
          Report;
          if CheckSums then
            Die('goals met');
          if (TimeFromMark(StatsTimer) > 300000) then
          begin
            stats_Commit;
            MarkTime(StatsTimer);
          end;
        until(not(LoggedIn));
        NextPlayer(False);
      until(AllPlayersInactive);
      Report;
    end.


    {
    rev 02: Added r_ClickRaw
    rev 03: added MBX1, MBY1, MBX2, MBY2
    rev 04: added more R_FindRandom's :)
    rev 05: advanced counting
    rev 06: added autoresponder
    rev 07: patched up autoresponder
    rev 08: SRL Stats (stats.villavu.com)
    rev 09: Fixed for the removal R_ClickItemID and R_CountItemID (Now just R_ClickItem and R_CountItem)
    rev 10: Added AttemptAndSwivel and AttemptFunct. Now used in mainloop. This should extend runtime!
    rev 11: Added pin handling.
    }
    Today is the first day of the rest of your life

  2. #152
    Join Date
    Feb 2009
    Location
    Irvine, CA
    Posts
    2,873
    Mentioned
    8 Post(s)
    Quoted
    138 Post(s)

    Default

    Many thanks my friend, I was having trouble getting to this

  3. #153
    Join Date
    Oct 2006
    Posts
    491
    Mentioned
    0 Post(s)
    Quoted
    41 Post(s)

    Default

    Quote Originally Posted by Jakkle View Post
    I wanted to use this so I have updated it to work with R2.
    I could not do the function r_ClickRaw because R_ClickItem and R_ClickItemBy don't work with Players[CurrentPlayer].Integer[4] because its an array, so I put it as Result := False(good job the script has DTMs ).
    I did a few loads and it's working so I thought I'd post it as people want to use it with R2.
    Thank you Jakkle, I really appreciate this. =]

  4. #154
    Join Date
    Aug 2007
    Location
    England
    Posts
    1,038
    Mentioned
    0 Post(s)
    Quoted
    6 Post(s)

    Default

    Quote Originally Posted by TomTuff View Post
    Many thanks my friend, I was having trouble getting to this
    Quote Originally Posted by ry0240 View Post
    Thank you Jakkle, I really appreciate this. =]
    No problem guys
    And if you have a bank pin put this in the script, in DoBank, line 350.

    Simba Code:
    if (not(LoggedIn) or not(BankScreen)) then
        Exit;
    > If (PinScreen) Then // add from this bit
      Begin
        InPin(Players[CurrentPlayer].Pin);
      End; < // to here
      R_FindRandoms;
    Today is the first day of the rest of your life

  5. #155
    Join Date
    Aug 2010
    Location
    Nicaragua
    Posts
    25
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I have a problem with the script "Line 233 Benedict := GetNPC('Emerald Benedict');"
    [Error] (234:17): Unknown identifier 'GetNPC' at line 233
    Compiling failed.

  6. #156
    Join Date
    Feb 2009
    Location
    Irvine, CA
    Posts
    2,873
    Mentioned
    8 Post(s)
    Quoted
    138 Post(s)

    Default

    See first post (just updated).

  7. #157
    Join Date
    Aug 2010
    Location
    Nicaragua
    Posts
    25
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    tyvm

  8. #158
    Join Date
    Aug 2007
    Location
    England
    Posts
    1,038
    Mentioned
    0 Post(s)
    Quoted
    6 Post(s)

    Default

    Proggy
    Progress Report:
    [====================================================================]
    [                    TomTuff's Rogue's Den Cooker                    ]
    [                           Revision 10                              ]
    [====================================================================]
    [  Overall Report                                                    ]
    [    Time Ran: 3 Hours, 4 Minutes and 26 Seconds                     ]
    [    Fish attempted to cook: 3444                                    ]
    [      Fish sucessfuly cooked: 3371                                  ]
    [      Fish burnt: 73                                                ]
    [    Total EXP gained: 505650                                        ]
    [====================================================================]
    [  Player  0 (***):                                                 ]
    [    Fish type: Monkfish                                             ]
    [    Worked: 3 Hours, 4 Minutes and 24 Seconds                       ]
    [    Levels gained: 1                                                ]
    [    EXP gained: 505650                                              ]
    [      Exp/HR: 164518                                                ]
    [    Food attempted: 3444                                            ]
    [      Food cooked/HR: 1121                                          ]
    [      Successful: 3371                                              ]
    [      Burnt: 73                                                     ]
    [    Loads: 123                                                      ]
    [      Loads/HR: 41                                                  ]
    [====================================================================]


    Nearly 99 nice script. Only thing I would suggest is making sure it either looks for the fire by (does tile have id) or walk to tile near fire, before clicking raw fish. When people make fires it will use them and not cook a full load then bank. Also it clicks raw fish before walking to fire tile on mini map.
    Last edited by Jakkle; 10-11-2011 at 02:24 PM.
    Today is the first day of the rest of your life

  9. #159
    Join Date
    Feb 2009
    Location
    Irvine, CA
    Posts
    2,873
    Mentioned
    8 Post(s)
    Quoted
    138 Post(s)

    Default

    Quote Originally Posted by Jakkle View Post
    Proggy
    Progress Report:
    [====================================================================]
    [                    TomTuff's Rogue's Den Cooker                    ]
    [                           Revision 10                              ]
    [====================================================================]
    [  Overall Report                                                    ]
    [    Time Ran: 3 Hours, 4 Minutes and 26 Seconds                     ]
    [    Fish attempted to cook: 3444                                    ]
    [      Fish sucessfuly cooked: 3371                                  ]
    [      Fish burnt: 73                                                ]
    [    Total EXP gained: 505650                                        ]
    [====================================================================]
    [  Player  0 (***):                                                 ]
    [    Fish type: Monkfish                                             ]
    [    Worked: 3 Hours, 4 Minutes and 24 Seconds                       ]
    [    Levels gained: 1                                                ]
    [    EXP gained: 505650                                              ]
    [      Exp/HR: 164518                                                ]
    [    Food attempted: 3444                                            ]
    [      Food cooked/HR: 1121                                          ]
    [      Successful: 3371                                              ]
    [      Burnt: 73                                                     ]
    [    Loads: 123                                                      ]
    [      Loads/HR: 41                                                  ]
    [====================================================================]


    Nearly 99 nice script. Only thing I would suggest is making sure it either looks for the fire by (does tile have id) or walk to tile near fire, before clicking raw fish. When people make fires it will use them and not cook a full load then bank. Also it clicks raw fish before walking to fire tile on mini map.
    if you wanted to you could tell it to do the reflection function for clicking the fire first and then use the color function as a failsafe.

    Grats on 99, amazed this still works

  10. #160
    Join Date
    Aug 2007
    Location
    England
    Posts
    1,038
    Mentioned
    0 Post(s)
    Quoted
    6 Post(s)

    Default

    Well I did convert it to R2 remember :P

    I have changed it my self to do everything, was just thinking about updating for others wouldn't take you long.
    Today is the first day of the rest of your life

  11. #161
    Join Date
    Nov 2010
    Posts
    15
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    When I run it, it says the hooks for reflection are outdated? Is there anyway I can fix this or do I have to wait for an update? Thanks!

  12. #162
    Join Date
    Feb 2007
    Location
    Estonia.
    Posts
    1,938
    Mentioned
    0 Post(s)
    Quoted
    2 Post(s)

    Default

    Quote Originally Posted by Kehmist View Post
    When I run it, it says the hooks for reflection are outdated? Is there anyway I can fix this or do I have to wait for an update? Thanks!
    After the "bot nuke" update reflection stopped working , so the script won't work until it will be converted to color or reflection gets fixed.

    ~Eerik.

  13. #163
    Join Date
    Aug 2011
    Location
    Spooner Street
    Posts
    309
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Heavenzeyez1 View Post
    After the "bot nuke" update reflection stopped working , so the script won't work until it will be converted to color or reflection gets fixed.
    Yeah and judging from the chat around the forums, fixing reflection, if ever, might take a long time. So I would put my money on color converting.

  14. #164
    Join Date
    Aug 2007
    Location
    England
    Posts
    1,038
    Mentioned
    0 Post(s)
    Quoted
    6 Post(s)

    Default

    If you comment out all the reflection code from this script it will actually work (if all colours are correct) as this is a colour and reflection script, using reflection as backup.
    Today is the first day of the rest of your life

  15. #165
    Join Date
    Feb 2009
    Location
    Irvine, CA
    Posts
    2,873
    Mentioned
    8 Post(s)
    Quoted
    138 Post(s)

    Default

    Quote Originally Posted by Jakkle View Post
    If you comment out all the reflection code from this script it will actually work (if all colours are correct) as this is a colour and reflection script, using reflection as backup.
    I think the dtms and NPC and fire colors need to be updated.

  16. #166
    Join Date
    Nov 2011
    Posts
    10
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    same problem as Aristos. read the whole thing but do not understand.
    Im new sorry XD

  17. #167
    Join Date
    Jan 2010
    Posts
    5,227
    Mentioned
    6 Post(s)
    Quoted
    60 Post(s)

    Default

    Needs to be "fixed." Since it should work without reflection it wouldn't be too hard to get it working.

  18. #168
    Join Date
    Nov 2011
    Posts
    10
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    ? sorry? but how do i "fix" it?

  19. #169
    Join Date
    Nov 2011
    Posts
    10
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    How can it be fixed?

  20. #170
    Join Date
    Jan 2010
    Posts
    5,227
    Mentioned
    6 Post(s)
    Quoted
    60 Post(s)

    Default

    First of all, don't multi-post, unless you have a good reason to (so don't multi-post). Second, colors/DTMs/bitmaps (dunno if it uses any bitmaps) need to be updated if they're not working. All reflection should be taken out, or at least updated to ref2 syntax so that it doesn't complain about names.

    Then it should work, at least if it's well-written. And as long as rogue's den hasn't changed. Since Tom wrote this, I wouldn't be surprised if it still worked with very little updating.

  21. #171
    Join Date
    Nov 2011
    Posts
    10
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    k thanx

Page 7 of 7 FirstFirst ... 567

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
  •