Results 1 to 6 of 6

Thread: Teh's Fletching

  1. #1
    Join Date
    Nov 2011
    Location
    MA
    Posts
    545
    Mentioned
    3 Post(s)
    Quoted
    10 Post(s)

    Default Teh's Fletching

    SRL Stats


    This script only cuts logs (oak - magic) into bows (long & short) as of right now!
    (If you choose string for the method, the script will fail.)




    How to use the form:
    1. Fill in the details of the account you would like to use.*(If you wish to use an account that is already saved, please begin at step 4. Accounts currently work with tAlch, tTeleport, tSuperheat, and tFletch).
    2. Fill in the information for the script to use.
    3. Save the data for future applications. (See C:\Simba\TehScripts\Accounts and C:\Simba\TehScripts\tFletching.)
    *Note: See C:\Simba\TehScripts\Stats after each run for overall usage.
    4. *(or 1.) Load an account that you have previously saved.
    5. Begin the script!
    ** If you wish to change the Script info without changing the Account info.. First, select the account. Then, clear the account text box. Finally, edit the info you wish to change, save, and begin the script.**


    Simba Code:
    program tFletch;
    {$DEFINE SMART}                               { tFletching }
    {$i SRL/srl.simba}

    var
      x, y, Count, Fletching_XP,  Antibans, GetTime, i, StartTime,
      LoadCount, WHI, Runs, Log, XP: Integer;
      User1, Pass1, StatsUser1, StatsPass1, Strings, LogType, Fletchs, Uptext, Method,
      LogName, Bankloc, BankPin1: String;

    Procedure DeclarePlayers;
    begin
      HowManyPlayers := 1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;
      with Players[0] do
      begin
        Name       := User1;
        Pass       := Pass1;
        BoxRewards := ['amp', 'Xp', 'XP'];
        Pin        := BankPin1;
        LampSkill  := SKILL_FLETCHING;
        Active     := True;
      end;
    end;

    Procedure Run;
    begin
      SRL_SIXHOURFIX := TRUE;
      SMART_FIXSPEED := TRUE;
      SetupSRL;
      SetupSRLStats(1302, StatsUser1, StatsPass1);
      DeclarePlayers;
      LoginPlayer;
      Count := 0;
      if not LoggedIn then
      begin
        repeat
          LoginPlayerToLob;
        until LobbyScreen;
        OpenWorldScreen;
        if not WorldScreen then
          OpenWorldScreen;
        if WorldScreen then
        begin
          RandomWorld(True, False);
          LoginPlayer;
        end;
      end;

      if LoggedIn then
      begin
        ClickNorth(SRL_ANGLE_HIGH);
        ExitSquealOfFortune;
        SetChat('off', CHAT_ASSIST);
        SetChat('off', CHAT_PUBLIC);
        Setchat('off', CHAT_PRIVATE);
        FTab(tab_Inv);
      end;
      if FindNormalRandoms or FindNonInventoryRandoms then
        Exit;
      Antibans := 0;
    end;

    { Form vars }
    var
      frmDesign: TForm;
      BeginButton, SaveButton, LoadButton: TButton;
      TitleLabel, UserLabel, PassLabel, InventoryLabel, StatsUserLabel,StatsPassLabel,
      TFLabel, LogLabel, TSLabel, AccLabel, StyleLabel, BankLabel, PinLabel: TLabel;
      User, Pass, Inventory, StatsUser, StatsPass, BankPin: TEdit;
      ImageWH: TImage;
      Acc, TSList, TFList, ListLogs, StyleList, BLList: TComboBox;
      Accs: Array of string;
      RefTime: TTimer;

    Procedure ButtonClick(Sender: TObject);
    begin
      frmDesign.ModalResult := mrOk;
      if (Acc.TEXT <> '') then
      begin
        if not FileExists('C:\Simba\TehScripts\Accounts\' + Acc.TEXT) or not FileExists('C:\Simba\TehScripts\tFletching\' + Acc.TEXT) then
        begin
          Writeln('Could not locate your player information.. Terminating script.');
          TerminateScript;
        end;
        Runs := StrToIntDef(ReadINI('Times Run', 'Times Run', 'C:\Simba\TehScripts\Stats\tFletching.txt'), 0);
        User1 := ReadINI('Name', 'Name', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
        Pass1 := ReadINI('Pass', 'Pass', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
        StatsUser1 := ReadINI('StatsName', 'StatsName', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
        StatsPass1 := ReadINI('StatsPass', 'StatsPass', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
        Strings := (ReadINI('String', 'String', 'C:\Simba\TehScripts\tFletching\' + Acc.TEXT));
        Fletchs := (ReadINI('Fletch', 'Fletch', 'C:\Simba\TehScripts\tFletching\' + Acc.TEXT));
        BankLoc := (ReadINI('Location', 'Location', 'C:\Simba\TehScripts\tFletching\' + Acc.TEXT));
        BankPin1 := ReadINI('Pin', 'Pin', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
        LogType := (ReadINI('LogType', 'LogType', 'C:\Simba\TehScripts\tFletching\' + Acc.TEXT));
        LoadCount := StrToIntDef(ReadINI('Total Loads', 'Total Loads', 'C:\Simba\TehScripts\tFletching\' + Acc.TEXT), -1);
        Method := (ReadINI('Style', 'Style', 'C:\Simba\TehScripts\tFletching\' + Acc.TEXT));
      end else
      begin
        Runs := StrToIntDef(ReadINI('Times Run', 'Times Run', 'C:\Simba\TehScripts\Stats\tFletching.txt'), 0);
        User1 := User.TEXT;
        Pass1 := Pass.TEXT;
        StatsUser1 := StatsUser.TEXT;
        StatsPass1 := StatsPass.TEXT;
        Strings := TSList.TEXT;
        Fletchs := TFList.TEXT;
        BankPin1 := BankPin.TEXT;
        LogType := ListLogs.TEXT;
        BankLoc := BLList.TEXT;
        LoadCount := StrToInt(Inventory.TEXT);
        Method := StyleList.TEXT;
      end;
      ClearDebug;
      WriteLn('Thanks for using Teh''s Fletcher. Please leave some feedback.');
      FreeBitmap(WHI);
    end;

    Procedure ButtonClick2(Sender: TObject);                //saves player info
    begin
      ClearDebug;
      if (User.TEXT <> '') then
      begin
        WriteINI('Name', 'Name', User.TEXT, 'C:\Simba\TehScripts\Accounts\' + (User.TEXT) + '.txt');
        WriteINI('Pass', 'Pass', Pass.TEXT, 'C:\Simba\TehScripts\Accounts\' + (User.TEXT) + '.txt');
        WriteINI('StatsName', 'StatsName', StatsUser.TEXT, 'C:\Simba\TehScripts\Accounts\' + (User.TEXT) + '.txt');
        WriteINI('StatsPass', 'StatsPass', StatsPass.TEXT, 'C:\Simba\TehScripts\Accounts\' + (User.TEXT) + '.txt');
        Acc.Items.Add(User.TEXT + '.txt');
        WriteINI('String', 'String', (TSList.TEXT), 'C:\Simba\TehScripts\tFletching\' + (User.TEXT) + '.txt');
        WriteINI('Fletch', 'Fletch', (TFLIST.TEXT), 'C:\Simba\TehScripts\tFletching\' + (User.TEXT) + '.txt');
        WriteINI('Pin', 'Pin', BankPin.TEXT, 'C:\Simba\TehScripts\Accounts\' + (User.TEXT) + '.txt');
        WriteINI('LogType', 'LogType', (ListLogs.TEXT), 'C:\Simba\TehScripts\tFletching\' + (User.TEXT) + '.txt');
        WriteINI('Location', 'Location', (BLLIST.TEXT), 'C:\Simba\TehScripts\tFletching\' + (User.TEXT) + '.txt');
        WriteINI('Total Loads', 'Total Loads', Inventory.TEXT,'C:\Simba\TehScripts\tFletching\' + (User.TEXT) + '.txt');
        WriteINI('Style', 'Style', StyleList.TEXT, 'C:\Simba\TehScripts\tFletching\' + (User.TEXT) + '.txt');
      end else
        Writeln('Please enter a username to save your information.');
      WriteLn('Info saved to Simba\TehScripts.');
    end;

    Procedure OnTimer(Sender: TObject);
    begin
      if (Acc.TEXT <> '') then
      begin
        User.TEXT := ReadINI('Name', 'Name', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
        Pass.TEXT := ReadINI('Pass', 'Pass', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
        StatsUser.TEXT := ReadINI('StatsName', 'StatsName', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
        StatsPass.TEXT := ReadINI('StatsPass', 'StatsPass', 'C:\Simba\TehScripts\Accounts\' + (Acc.TEXT));
        TSList.TEXT := ReadINI('String', 'String', 'C:\Simba\TehScripts\tFletching\' + Acc.TEXT);
        TFList.TEXT := ReadINI('Fletch', 'Fletch', 'C:\Simba\TehScripts\tFletching\' + Acc.TEXT);
        ListLogs.TEXT := ReadINI('LogType', 'LogType', 'C:\Simba\TehScripts\tFletching\' + Acc.TEXT);
        BankPin.TEXT := ReadINI('Pin', 'Pin', 'C:\Simba\TehScripts\Accounts\' + Acc.TEXT);
        Inventory.TEXT := ReadINI('Total Loads', 'Total Loads', 'C:\Simba\TehScripts\tFletching\' + Acc.TEXT);
        StyleList.TEXT := ReadINI('Style', 'Style', 'C:\Simba\TehScripts\tFletching\' + Acc.TEXT);
        BLList.TEXT := ReadINI('Location', 'Location', 'C:\Simba\TehScripts\tFletching\' + Acc.TEXT);
      end;
      if (Lowercase(StyleList.Text) = 'cut') then
        begin
          TFList.Show;
          TFLabel.Show;
          TSList.Hide;
          TSLabel.Hide;
        end else
        begin
          TSList.Show;
          TSLabel.Show;
          TFList.Hide;
          TFLabel.Hide;
        end;
    end;

    Procedure FinishStats;
    var
      CurrXP, CurrTime: integer;
    begin
      if (Runs < 1) then
        WriteINI('Times Run', 'Times Run', IntToStr(1), 'C:\Simba\TehScripts\Stats\tFletching.txt')
      else
        WriteINI('Times Run', 'Times Run', IntToStr(Runs + 1), 'C:\Simba\TehScripts\Stats\tFletching.txt');
      CurrTime := StrToIntDef(ReadINI('Time Running (sec)', 'Time Running (sec)', 'C:\Simba\TehScripts\Stats\tFletching.txt'), 0);
      CurrXP := StrToIntDef(ReadINI('Total XP Gained', 'Total XP Gained', 'C:\Simba\TehScripts\Stats\tFletching.txt'), 0);
      WriteINI('Time Running (sec)', 'Time Running (sec)', IntToStr(CurrTime + Round(TimeFromMark(StartTime)/1000)), 'C:\Simba\TehScripts\Stats\tFletching.txt');
      WriteINI('Total XP Gained', 'Total XP Gained', IntToStr(CurrXP + Fletching_XP), 'C:\Simba\TehScripts\Stats\tFletching.txt');
    end;

    Procedure CreateFolders();
    begin
      ClearDebug;
      if not DirectoryExists(AppPath + 'TehScripts') then
      begin
        CreateDirectory(AppPath + 'TehScripts');
        CreateDirectory(AppPath + 'TehScripts\tSuperheat');
        CreateDirectory(AppPath + 'TehScripts\tAlch');
        CreateDirectory(AppPath + 'TehScripts\tTeleport');
        CreateDirectory(AppPath + 'TehScripts\tAgility');
        CreateDirectory(AppPath + 'TehScripts\tVial');
        CreateDirectory(AppPath + 'TehScripts\tQuest');
        CreateDirectory(AppPath + 'TehScripts\tWoodcutting');
        CreateDirectory(AppPath + 'TehScripts\tFletching');
        CreateDirectory(AppPath + 'TehScripts\Accounts');
        CreateDirectory(AppPath + 'TehScripts\Stats');
        Writeln('Successfully created the directories that are used in my scripts.');
      end else
        Writeln('Please delete the TehScripts directory in your Simba folder and try again.');
    end;

    Procedure InitForm;
    begin
      frmDesign := TForm.Create(nil);;
      frmDesign.Left := 270;
      frmDesign.Top := 50;
      frmDesign.Width := 800;
      frmDesign.Height := 500;
      frmDesign.Caption := 'Teh''s Fletcher';
      frmDesign.Font.Color := ClBlack;
      frmDesign.Font.Name := 'Calibri';
      frmDesign.Color := ClNavy;

      BeginButton := TButton.Create(FrmDesign);
      BeginButton.Parent := frmDesign;
      BeginButton.Left := 650;
      BeginButton.Top := 400;
      BeginButton.Height := 30;
      BeginButton.Width := 105;
      BeginButton.Caption := 'Begin Script';
      BeginButton.OnClick := @ButtonClick;

      SaveButton := TButton.Create(FrmDesign);
      SaveButton.Parent := FrmDesign;
      SaveButton.Left := 650;
      SaveButton.Top := 350;
      SaveButton.Height := 30;
      SaveButton.Width := 105;
      SaveButton.Caption := 'Save Info';
      SaveButton.OnClick := @ButtonClick2;

      TitleLabel := TLabel.Create(FrmDesign);
      TitleLabel.Parent := FrmDesign;
      TitleLabel.Left := 275;
      TitleLabel.Top := 10;
      TitleLabel.Caption := 'Teh''s Fletcher';
      TitleLabel.Font.Size := 30;
      TitleLabel.Font.Color := ClWhite;
      TitleLabel.Font.Name := 'Calibri';

      RefTime := TTimer.Create(FrmDesign);
      RefTime.Interval := 1000;
      RefTime.OnTimer := @OnTimer;
      RefTime.Enabled := True;

      User := TEdit.Create(FrmDesign);
      User.Parent := FrmDesign;
      User.Top := 100;
      User.Left := 200;
      User.Width := 140;
      User.Height := 20;
      UserLabel := TLabel.Create(FrmDesign);
      UserLabel.Parent := FrmDesign;
      UserLabel.Top := 100;
      UserLabel.Left := 80;
      UserLabel.Caption := 'Username';
      UserLabel.FONT.Color := ClWhite;

      StatsUser := TEdit.Create(FrmDesign);
      StatsUser.Parent := FrmDesign;
      StatsUser.Top := 200;
      StatsUser.Left := 200;
      StatsUser.Width := 140;
      StatsUser.Height := 20;
      StatsUser.Text := '';
      StatsUserLabel := TLabel.Create(FrmDesign);
      StatsUserLabel.Parent := FrmDesign;
      StatsUserLabel.Top := 200;
      StatsUserLabel.Left := 80;
      StatsUserLabel.Caption := 'Stats User';
      StatsUserLabel.FONT.Color := ClWhite;

      StatsPass := TEdit.Create(FrmDesign);
      StatsPass.Parent := FrmDesign;
      StatsPass.Top := 250;
      StatsPass.Left := 200;
      StatsPass.Width := 140;
      StatsPass.Height := 20;
      StatsPass.Text := '';
      StatsPassLabel := TLabel.Create(FrmDesign);
      StatsPassLabel.Parent := FrmDesign;
      StatsPassLabel.Top := 250;
      StatsPassLabel.Left := 80;
      StatsPassLabel.Caption := 'Stats Pass';
      StatsPassLabel.FONT.Color := ClWhite;

      Pass := TEdit.Create(FrmDesign);
      Pass.Parent := FrmDesign;
      Pass.Top := 150;
      Pass.Left := 200;
      Pass.Width := 140;
      Pass.Height := 20;
      PassLabel := TLabel.Create(FrmDesign);
      PassLabel.Parent := FrmDesign;
      PassLabel.Top := 150;
      PassLabel.Left := 80;
      PassLabel.Caption := 'Password';
      PassLabel.FONT.Color := ClWhite;

      Accs := GetFiles(AppPath + 'TehScripts\Accounts\', 'txt');
      Acc :=  TComboBox.Create(FrmDesign);
      Acc.Parent := FrmDesign;
      Acc.Top := 400;
      Acc.Left := 450;
      Acc.Width := 140;
      Acc.Height := 150;
      for i := 0 to high(Accs) do
        Acc.Items.Add(Accs[i]);
      AccLabel := TLabel.Create(FrmDesign);
      AccLabel.Parent := FrmDesign;
      AccLabel.Top := 400;
      AccLabel.Left := 370;
      AccLabel.Caption := 'Account?';
      AccLabel.FONT.Color := ClWhite;

      BankPin := TEdit.Create(FrmDesign);
      BankPin.Parent := FrmDesign;
      BankPin.Top := 300;
      BankPin.Left := 450;
      BankPin.Width := 140;
      BankPin.Height := 20;
      BankPin.Text := '';
      BankPin.MaxLength := 4;
      PinLabel := TLabel.Create(FrmDesign);
      PinLabel.Parent := FrmDesign;
      PinLabel.Top := 300;
      PinLabel.Left := 370;
      PinLabel.Caption := 'Bank Pin';
      PinLabel.FONT.Color := ClWhite;

      Inventory := TEdit.Create(FrmDesign);
      Inventory.Parent := FrmDesign;
      Inventory.Top := 100;
      Inventory.Left := 450;
      Inventory.Width := 140;
      Inventory.Height := 20;
      Inventory.MaxLength := 4;
      Inventory.TEXT := '75';
      InventoryLabel := TLabel.Create(FrmDesign);
      InventoryLabel.Parent := FrmDesign;
      InventoryLabel.Top := 100;
      InventoryLabel.Left := 370;
      InventoryLabel.Caption := '# of Invs';
      InventoryLabel.FONT.Color := ClWhite;

      BLList := TComboBox.Create(FrmDesign);
      BLList.Parent := FrmDesign;
      BLList.Top := 300;
      BLList.Left := 200;
      BLList.Width := 140;
      BLList.Height := 175;
      BLList.Items.Add('Soul Wars');
      BLList.Items.Add('Castle Wars');
      BLList.Items.Add('Burthrope');
      BLList.Items.Add('Varrock East');
      BLList.Items.Add('Varrock West');
      BLList.Items.Add('Falador East');
      BLList.Items.Add('Falador West');
      BLList.Items.Add('Yanille');
      BLList.Items.Add('Camelot');
      BLList.Items.Add('Catherby');
      BLList.Items.Add('Draynor');
      BLList.Items.Add('Al-Kharid');
      BLList.Items.Add('Edgeville');
      BLList.Items.Add('Taverly');
      BLList.Items.Add('Warriors Guild');
      BLList.Items.Add('Fishing Guild');
      BLList.Items.Add('Ardougne North');
      BLList.Items.Add('Ardougne South');
      BLList.Items.Add('Gnome North');
      BLList.Items.Add('Gnome South');
      BankLabel := TLabel.Create(FrmDesign);
      BankLabel.Parent := FrmDesign;
      BankLabel.Top := 300;
      BankLabel.Left := 80;
      BankLabel.Caption := 'Bank?';
      BankLabel.FONT.Color := ClWhite;

      StyleList := TComboBox.Create(FrmDesign);
      StyleList.Parent := FrmDesign;
      StyleList.Top := 150;
      StyleList.Left := 450;
      StyleList.Width := 140;
      StyleList.Height := 137;
      StyleList.Items.Add('Cut');
      StyleList.Items.Add('String');
      StyleLabel := TLabel.Create(FrmDesign);
      StyleLabel.Parent := FrmDesign;
      StyleLabel.Top := 150;
      StyleLabel.Left := 370;
      StyleLabel.Caption := 'Method?';
      StyleLabel.FONT.Color := ClWhite;

      ListLogs := TComboBox.Create(FrmDesign);
      ListLogs.Parent := FrmDesign;
      ListLogs.Top := 200;
      ListLogs.Left := 450;
      ListLogs.Width := 140;
      ListLogs.Height := 137;
      ListLogs.Items.Add('Oak');
      ListLogs.Items.Add('Willow');
      ListLogs.Items.Add('Maple');
      ListLogs.Items.Add('Yew');
      ListLogs.Items.Add('Magic');
      LogLabel := TLabel.Create(FrmDesign);
      LogLabel.Parent := FrmDesign;
      LogLabel.Top := 200;
      LogLabel.Left := 370;
      LogLabel.Caption := 'Logs?';
      LogLabel.FONT.Color := ClWhite;

      TFList := TComboBox.Create(FrmDesign);
      TFList.Parent := FrmDesign;
      TFList.Top := 250;
      TFList.Left := 450;
      TFList.Width := 140;
      TFList.Height := 42;
      TFList.Items.Add('Longbow(u)');
      TFList.Items.Add('Shortbow(u)');
      //TFList.Items.Add('Crossbow Stock');
      TFLabel := TLabel.Create(FrmDesign);
      TFLabel.Parent := FrmDesign;
      TFLabel.Top := 250;
      TFLabel.Left := 370;
      TFLabel.Caption := 'Fletch?';
      TFLabel.FONT.Color := ClWhite;

      TSList := TComboBox.Create(FrmDesign);
      TSList.Parent := FrmDesign;
      TSList.Top := 250;
      TSList.Left := 450;
      TSList.Width := 140;
      TSList.Height := 42;
      TSList.Items.Add('Longbow');
      TSList.Items.Add('Shortbow');
      TSLabel := TLabel.Create(FrmDesign);
      TSLabel.Parent := FrmDesign;
      TSLabel.Top := 250;
      TSLabel.Left := 370;
      TSLabel.Caption := 'String?';
      TSLabel.FONT.Color := ClWhite;

      ImageWH := TImage.Create(FrmDesign);
      ImageWH.Parent := FrmDesign;
      ImageWH.Left := 630;
      ImageWH.Top := 65;
      ImageWH.Width := 151;
      ImageWH.Height := 238;
      WHI := BitmapFromString(151, 238, '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');
      DrawBitmap(WHI, ImageWH.canvas, 0, 0);
    end;

    Procedure SafeInitForm;
    var
      v: TVariantArray;
    begin
      SetArrayLength(v, 0);
      ThreadSafeCall('InitForm', v);
    end;

    Procedure ShowFormModal;
    begin
      frmDesign.ShowModal;
    end;

    Procedure SafeShowFormModal;
    var
      v: TVariantArray;
    begin
      SetArrayLength(v, 0);
      ThreadSafeCall('ShowFormModal', v);
    end;


    Procedure SetupLogs();
    begin
      case Lowercase(LogType) of
        'oak':
        begin
          Uptext := 'a';
          if Lowercase(Fletchs) = 'longbow(u)' then
            XP := 25
          else
            XP := 17;
          LogName := 'Oak Logs';
          Log := BitmapFromString(16, 13, 'meJxlke1KAmEQhS8lIoOyL1MrK/uXRFqki1GabLWoLBKEuEiISEQYXoT36mNnm15WOD92Z56Z98xMsTM9b3+fvn4WnicnrZHEN5Gz4AuRNRFP1QbFzpS4SowUQApddH+WCmcFf5zyIr5Jua3+mT/R5PjpI/cwaEzmFK4CSM15ETJ73z+4C3fLwWZ9iChxmditPz5qDg/r7/u33Z3rF+L5x2gJ/2JiNCMjk8p4b5Bbl43tUgue5ns3beY1TKn0la8UcKbao4oncE4HnsMVIoXE8CsGz2Lwjzetbq0UEDTRB4mxQ0jysFHtr1d62rwrw4zUwtkn0tVskATmni/BW8kqqRvFvBe5m0/cOr4mNwpnCyCG34k=');
        end;

        'willow':
        begin
          Uptext := 'l';
          if Lowercase(Fletchs) = 'longbow(u)' then
            XP := 42
          else
            XP := 33;
          LogName := 'Willow Logs';
          Log := BitmapFromString(17, 11, 'meJx9kdsKwjAMQP9g3qb/IAxlyuZuUhBFZC9DJuL//4iHBWpo5uA8tOlpkqZl91o3V4iri0aCmo27x4VbHqv6+WZtBa/9Eg7+fJc1/Ye4JriFvMrPyIv0NEsO0XZPFSk0IhdOZDIjE2HLwjYmPXBKWmTSogFrIFgOz5cn21OgCpABSAVyqvln+mGmt4fEpe0J00+exvK2Cz7Foh/LkIEhjH6o/VNmFVzRt6wsfAF3PGsL');
        end;

        'maple':
        begin
          Uptext := 'p';
          if Lowercase(Fletchs) = 'longbow(u)' then
            XP := 58
          else
            XP := 50;
          LogName := 'Maple Logs';
          Log := BitmapFromString(17, 11, 'meJx1kV0LgkAQRZ817S+EUBJFFEWRZAlRhBXRlyyBRPQUvRYR/vruOH7sKsF50OHcmdldW0T1w6s6u5puaE4uCm6IeoJ3Y0xH2CJqnD9JRKJgkuyGxjgwhntEABWzhmxKv5jIst7z9c6CIsGXBnE3Ocjy6FQZ7CBr7Tkq+OVI7mS7OYLk/lbvrrSWBx/98Q3s+PiZqTWnitDzkcIUgMXQBBta6wdtCOIOCalJWmpiLl+jtXnWlncqMuykWm7GMsOLIVh8FPWB5MvnS6bg8Z0f/79fjiip8svG/AC/hXru');
        end;

        'yew':
        begin
          Uptext := 'e';
          if Lowercase(Fletchs) = 'longbow(u)' then
            XP := 75
          else
            XP := 68;
          LogName := 'Yew Logs';
          Log := BitmapFromString(17, 10, 'meJyNkdEKgkAQRR/d0f4hqJQICVlcRGMRFiGEkL6gr+j/6Y6TtK4KwXmQ3TN3xh1K26QekuoxAydzYtPH5Z0Kpy5N+XoHt7vbM5R1R9eWcqvOVXTSlDkQxo69ECsykiFzue7w/fO9wWQGkaPMAJRwIfzcEv5lMtF0RcBIAAmFQxdOw+GIOFsaY/pv8t7w4cSW5kNHqw4NP4vHUvPBIwOS7SwXtLavf0u8rX0AgipZrA==');
        end;

        'magic':
        begin
          Uptext := 'g';
          if Lowercase(Fletchs) = 'longbow(u)' then
            XP := 92
          else
            XP := 83;
          LogName := 'Magic Logs';
          Log := BitmapFromString(17, 11, 'meJybOM8goqY1vLo5rLIxtLweiIJLa4EIwgYKQtCUC1f88sq8Mgv0vIMmzjOwis+A64IgIBuIgIIQZB6dYhoebxwSbRAQruMZANRiEZsWWdcOVwBkWydmQRBQClk90Aptdz+glqY+bZ3oNLgyCAJaDVRsFplkEhZrGBSp7xcKUa/h7AnUohWRhKYeaDhQMbLhQPfYhEar2buoO7rfuH1ROzIFzXCgYojhrokZTrEpQMMhCKgRhKLT4FoghgMVIyOgdjiav2UbUIFvTolNcg4c2abmISO79AJkZJ9RFFhUBRQHakQWhKPuQ8ccskqACB5ZQBRUUn3n/tVrNy8AnQSUcswpgyNg7DScPAuPXzgCarn/6MbNO5f7ZukD/QKJF0g8IscsMgJaBAB/etZX');
        end;
      end;
    end;

    Function WaitFindBitmap(Bitmap: integer; var x, y: integer; xs, ys, xe, ye, Tolerance, WaitPerLoop, MaxTime: integer): boolean;
    var
      t: integer;
    begin
      t := (getSystemTime + MaxTime);
      while (getSystemTime < t) do
      begin
        if (FindBitmapToleranceIn(Bitmap, x, y, xs, ys, xe, ye, Tolerance)) then
        begin
          result := true;
          break;
        end;
        wait(WaitPerLoop);
      end;
    end;

    Function Fletching: boolean;
    var
      StartLogs, CurrentLogs, Done: integer;
    begin
      Done := BitmapFromString(59, 16, 'meJzVlDGKwlAQhhuV9Vl4h228gJ2lIGJp61aCB7ATjCgGPYXtNiso7BZ7CcFDeBFNnnlO3j8ziSmCwleYf/55+ZSH/Xa1/1YMOzzNzxYilYtSSVASl2Pnwc3tfLogiTazUhpf3SrihOnPS7XZrXIY9yoIFdZDmzswVwr6SGIyqCHUTc+9y4O5VFB2dRYjBvo6JfduDjui9yrnrs5u+oHQE6QcO8Wm+HVYJcf3rI7QdSnHToEp+0fEKjl+5gahh0s5dopNPaJyEGNfGph9kHI7LBnogVKIHUkpmq7UabIePa7MMeae088xv2uGzP9htkan3iMm+IrHNDQRViY0fyEvyQrjBXMCbFPS05PUurV9UtiehmQ2Mc+TpNZB2CeHfKlkCf9vGq/FNkEoXAF3z/CI');
      result := true;
      StartLogs := InvCount;
      repeat
        CurrentLogs := CountItems('bmp', Log, [15]);
        if not (CurrentLogs = 0) and (CurrentLogs <= StartLogs) then
          result := true;
        if (CurrentLogs = 0) then
        begin
          if WaitFindBitmap(Done, x, y, MSX1, MSY1, MSX2, MSY2, 10, 100, 1000) then
            Mouse(x + 10, y, 30, 15, mouse_Left);
          result := false;
          break;
        end;
      until (result = false);
      FreeBitmap(Log);
      FreeBitmap(Done);
    end;

    Procedure BankDeposit;
    var
      BankTime: integer;
    begin
      MarkTime(BankTime);
      repeat
        Deposit(1, 28, True);
      until InvEmpty or (TimeFromMark(BankTime) > 15000);
      if (TimeFromMark(BankTime) > 15000) then
      begin
        WriteLn('Failed to deposit bows. Logging out your character and terminating the script.');
        Logout;
        TerminateScript;
      end;
    end;

    var
      T: integer;

    function WaitLogCount(Count, CountLog, MaxTime: Integer): boolean;
    begin
      if not BankScreen then
        if not GameTab(tab_Inv) then
          exit;
      Result := false;
      T := GetSystemTime + MaxTime;
      while (GetSystemTime < T) do
      begin
        if CountLog > Count then
        begin
          Result := true;
          break;
        end;
      end;
    end;

    Procedure LogOT;
    begin
      if (TimeFromMark(GetTime) > 6000) then
      begin
        Writeln('Failed to withdraw logs. Logging out your character and terminating the script.');
        repeat
          Logout;
          TerminateScript;
        until not LoggedIn;
      end;
    end;

    Procedure Banking;
    var
      BankTime: integer;
    begin
      if FindNormalRandoms or FindNonInventoryRandoms or not LoggedIn then
        Exit;
      MarkTime(BankTime);
      repeat
        SetAngle(SRL_ANGLE_HIGH);
        case Lowercase(BankLoc) of
          'soul wars': OpenBankChest(SRL_BANK_SW);
          'castle wars': OpenBankChest(SRL_BANK_CW);
          'burthrope': OpenBankChest(SRL_BANK_B);
          'varrock east': OpenBankQuiet('veb');
          'varrock west': OpenBankQuiet('vwb');
          'falador east': OpenBankQuiet('feb');
          'falador west': OpenBankQuiet('fwb');
          'yanille': OpenBankFast('ynb');
          'camelot': OpenBankFast('clt');
          'catherby': OpenBankFast('ctb');
          'draynor': OpenBankQuiet('db');
          'al-kharid': OpenBankQuiet('akb');
          'edgeville': OpenBankQuiet('eb');
          'taverly': OpenBankFast('tavb');
          'warriors guild': OpenBankFast('wgb');
          'fishing guild': OpenBankFast('fgb');
          'ardougne north': OpenBankFast('nab');
          'ardougne south': OpenBankFast('sab');
          'gnome north': OpenBankFast('ngb');
          'gnome south': OpenBankFast('sgb');
        end;
      until WaitFunc(@BankScreen, Random(15), 2000) or WaitFunc(@PinScreen, Random(15), 2000) or (TimeFromMark(BankTime) > 25000);
      if (TimeFromMark(BankTime) > 25001) then
      begin
        WriteLn('Failed to open the bank. Logging out your character and terminating the script.');
        Logout;
        TerminateScript;
      end;
      if PinScreen then
      begin
        MarkTime(BankTime);
        repeat
          InPin(Players[CurrentPlayer].Pin);
        until BankScreen or not LoggedIn or (TimeFromMark(BankTime) > 15000);
        if (TimeFromMark(BankTime) > 15000) then
        begin
          WriteLn('Failed to enter your bank pin. Logging out your character and terminating the script.');
          Logout;
          TerminateScript;
        end;
      end;
    end;

    Procedure WithdrawLog(Tol: integer);
    var
      Amount, ReqLog, Bs: integer;
    begin
      Bs := BitmapFromString(37, 12, 'meJy11DEKgDAMAMCYRYX6B58guCkuLs4dnd38/wOMBEKJVocmIUuh9EjaFOAOBJjjThmPk5KWfT9wgkMojkXKYVrHZfPgQuiUmKKF59dN+xS/UZSdiGARdFOYNFah4lYmWB79rdcQfaXTN2xIyzh806wbFpuj1UWXlJl7gTQXQrP+2mG/UB0W1FVklC2aX/4J1bYL9KRSrA==');
      MarkTime(GetTime);
      if Lowercase(Method) = 'cut' then
        Amount := 28
      else
        Amount := 14;
      repeat
        if WithdrawItem(Log, 'bmp', Amount, Uptext, [Tol]) then
        begin
          if (Lowercase(Method) = 'cut') then
            WaitLogCount(27, CountItems('bmp', Log, [Tol]), 1500)
          else
          begin
            //WaitLogCount(13, CountItems('bmp', BowU, [Tol]), 1500);
            if WithdrawItem(Bs, 'bmp', Amount, 'str', [Tol]) then
              WaitLogCount(13, CountItems('bmp', Bs, [Tol]), 1500);
          end;
          ClearDebug;
          WriteLn('You currently have ' +IntToStr(CountItems('bmp', Log, [Tol])) +' '+ LogName + ' in your inventory.');
        end;
      until (CountItems('bmp', Log, [Tol]) > 13) and (CountItems('bmp', Bs, [Tol]) > 13) or (CountItems('bmp', Log, [Tol]) > 27) or (TimeFromMark(GetTime) > 6000);
      LogOT;
      CloseBank;
      FreeBitmap(Bs);
    end;

    Procedure Progress;
    var
      Fxph: integer;
    begin
      Fxph := Round((Fletching_xp) / (GetTimeRunning / 3600000.0));
      ClearDebug;
      WriteLn('=-=-=-=-=-=-=-= Fletcher by Teh =-=-=-=-=-=-=');
      WriteLn('Time Running: ' +TimeRunning);
      WriteLn('Fletching: ' + (LogType));
      WriteLn('Fletching XP Gained: ' + IntToStr(Fletching_XP));
      Writeln('Fletching XP/Hour: ' + IntToStr(Fxph));
      WriteLn('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=');
    end;

    Procedure Antiban;
    begin
      case Random(200) of
        40:
        begin
          HoverSkill('Fletching', False);
          Inc(Antibans);
        end;

        80:
        begin
          HoverSkill('Random', False);
          Inc(Antibans);
        end;

        120:
        begin
          Boredhuman;
          Inc(Antibans);
        end;

        160:
        begin
          RandomRClick;
          Inc(Antibans);
        end;
      end;
    end;

    Procedure CutLogs;
    var
      Cut, Longbow, Shortbow, Fletch, AddString: integer;
    begin
      Cut := BitmapFromString(33, 30, 'meJydVttqE1EULX30wW/oHyilUh0T0iStaQdDzIy9zBDSOIQQJC++KpRQrKkVe4FWBH/W1VnN7vbcYjtswpmZk7XOXmuffSaKXkfzWFt7yVidXxzjVRzHSZLE5dWoN/C7vLR0cNDL8/50+g3jlZXngrP+4haE40p1A7eRYrmbsF7BHD2TsEIh+Iijo68GhQ5QOJ8zatUNoNWqVVI0N3eYi8bv9QaPpgB+p93mmnUKQBNwxPHxLEwR1WMfhcC2tlpkQbTebAGN4P1+cXLyAxTE91G8aiYBCiOYAsERGIBC8DHBqU+l1gwboQO6ARDgg8EQv6ffL/T6DYp7LhcFFgBntT5SRQBnYP2z2U9SiF82C6Aa210nhaHPrSOlC0UxQkCis7NLLdEjKEQlDFCleZYTfzgcQ6KLy1+CD2pJ021HsKIYoCg+FMAEPiRCuZ6fX4tEshl9XgQoRDHutdHoIyW6uvqtJWJVwzuv3dbWw5P7eit9JwUlEosNl/W/bDXCvCwkpECJrm/+2BIFWgR1CLcpvKXRhkQA77TfLWQJUzB3YD551kJIIxIL8izd382S8vLhiIyB9ROfoSWCxQSn0QEjnG+ZnYH/tF4IBcHTNOMh5S1Xv912CoKPAOzgsIedgv0IrRZSIE3ncx9+CXsXzIWt7KFZOC0o8VM2k2R+LSxaX2gKXaXQR/BRsfprIVz2/4PPPU58nrag4O3CROy3QqF3Afst61/2NR0P90C7sQB2by8bjyefv0z1cRP9ewhK3RqHu4Em547G73RS9IrJ5JPd6zDg1w5zl+5BCq6WFDxunBUF2G53F70ITZUUeg36XAAmbyUXn/hMRFNs77xN3++DRVOICGKEmG5UVM0SyllODKoEZRBybjIXtj6dgiQbrl4JghvfXfSa+giy5CKnvI/iL7Mqx2E=');
      Longbow := BitmapFromString(90, 18, 'meJztUlsOwyAM6wm4/22Z1EpRaucF7bqpwl8hOCYxaW3h/eg7rhBeg2PSbUdKe6yrn6BohSZP06Y3UPLf/hFx40ayR0vL08KhbkcxtBi6pCjLV/Fbf+LGlZJ+RqPmxT2OTcIh3gnaDSiMBeM4Hc07cokcNXRLcmSXgJ8SKsqeYBCnbvCwMcFzDJ7mAPh1gqfs8Z9xo51XNBaBADDkxmi+q3Xy3JB80Q05gg7scNGNjXC7G/qz+Oi5kY7vLYYpVXcDfsQk6P6n3dCzV6YougqW9jPgi4Oe00K5YgUu9ATN2WM3TEPMNsztgm3XSeBAPi3UVxBwoSfIzZgZc6i0jUBhYWHBxAfKONPO');
      Shortbow := BitmapFromString(95, 18, 'meJztVdEOxCAIuy/w///WJS4xFQSLM95yZ5+UlALVuZQO/g654AnhV3EP/ikY0rZ19QaQziD5SaG53J2aWp9xJkpemCtE1mr6tchr021votZEriWyx5zlKbkFJmLQIic4BbFYoumsnUm7JaLmVA4C+6xbTbasuCt2yVFNIWUNZZnj3FveHMtV0Y9VUTvstBfV/KI5qT13X5mMM+3xmhkumzMU9s9XZ54pce3fYA6emt5a5gzLdbcMoibsMQet8Ieqh8uYzFyb3AJfRf80Hb4W14nYnh8PPRTan9z7V5IfVCrflHhLa1BweL4W14la34prweE4VnVG4eDgYDkuUTmArA==');
      Fletch := BitmapFromString(69, 18, 'meJztlKsKAlEQhovrrfgOFh/CJlgEywaLyWDaJBgUFcFssxosFgWDzyH4EL6ICwOHYWbOv+MlGIQv7M4/8+05e0vbSfrnVxl2PqLRbOV8KPmifNQtYcipoeh+e+TQ6Xd5Tz7ulQHBqaFNhWPsCTZnJ7+0fyQn6ycA7hSIFHtebX6jn5gPSgDudKZ8y7FmMxX12J3EC14NywDu9KTi5YzVPVNcbk6ZbMcVAHjZRKqbeWSqzLo+5iPCqdllVYD/V2BuPFS4ik6FPxRpMBZpg2A/QYCno1OwcdFs+sGlC5sDh2kNwA04BRsHKuDXEV4McZwhuAGnZifVgUoXw4gZgcUQ52UdwA2FqX5AONWS2LFnMcRpgeAGT6q/ID4o0tgU1YHcXAxxWRdAN8qfig/H7MdThXKw2uvmz+/yBCC9DpA=');
      AddString := BitmapFromString(100, 14, 'meJy1lD1OA1EMhJsk/DS5Aw33QKJBoqXZiiJVKiQKECAuQEdLQZMGJE4SiUNwEVayZFn2ePB7u0hfkdhjz7y32Qxny2Em1ienI33dGfk/o+vzBUesK7Lv/c8IFPOuulj+dOyIMZHNxYpgracoi12LVcrt8QCtgTvYXi4J1nqKknRtS7HiegZdWFS2cn+1yHCPe/wKNfGAxa61cFO2GC/TLrcurg418RTx9c8u5GlYZcS74gIn412n0Zxal8/ZEjuY1aHGZaiEVF42B5DMNBM4De/GJe683AgOkruaGFJ53R5CsruK3T59NIoHJ7PwX64pRlNI4e0GAJNoxQngCOlCO+fCvcjCeozWkCPvt0eR7FnLHiuQr67Cu9HLFuM4nM0W1mM0hRR2dwD+u3ICOEK6mVFWrGiy5LOEVD4fjx12hNShb7ELd8aHkmmKIfmqekjl48FjN/C629/UjWvdm0407h6ykCRSa0jh6xkgRpW6PuuObpRZPdHUQ2aRss16VzDnL9rOHD4=');
      if InvFull then
      begin
        case Lowercase(Method) of
          'cut':
          begin
            if InvMouse(1, mouse_Left) then
            begin
              if WaitFindBitmap(Cut, x, y, MSX1, MSY1, MSX2, MSY2, 15, 100, 2000) then
                Mouse(x, y, 15, 15, mouse_Left);
              if (Lowercase(Fletchs) = 'longbow(u)') then
              begin
                if not WaitFindBitmap(Longbow, x, y, MSX1, MSY1, MSX2, MSY2, 15, 100, 800) then
                  if (Lowercase(LogType) = 'magic') then
                    Mouse(90, 100, 10, 10, mouse_Left)
                  else
                    Mouse(139, 100, 10, 10, mouse_Left);

              end else
              begin
                if not WaitFindBitmap(Shortbow, x, y, MSX1, MSY1, MSX2, MSY2, 15, 100, 2000) then
                  Mouse(42, 102, 10, 10, mouse_Left)
              end;
              if (Lowercase(Fletchs) = 'longbow(u)') then
                if WaitFindBitmap(Longbow, x, y, MSX1, MSY1, MSX2, MSY2, 15, 100, 2000) then
                  if WaitFindBitmap(Fletch, x, y, MSX1, MSY1, MSX2, MSY2, 15, 200, 2000) then
                    Mouse(x, y, 50, 10, mouse_Left);
              if (Lowercase(Fletchs) = 'shortbow(u)') then
                if WaitFindBitmap(Shortbow, x, y, MSX1, MSY1, MSX2, MSY2, 15, 100, 2000) then
                  if WaitFindBitmap(Fletch, x, y, MSX1, MSY1, MSX2, MSY2, 15, 200, 2000) then
                    Mouse(x, y, 50, 10, mouse_Left);
            end;
          end;

          'string':
          begin
            if InvMouse(1, mouse_Left) then
              if InvMouse(15, mouse_Left) then
              begin
                if (Lowercase(Strings) = 'shortbow') then
                  if WaitFindBitmap(Shortbow, x, y, MSX1, MSY1, MSX2, MSY2, 8, 100, 2000) then
                    if WaitFindBitmap(AddString, x, y, MSX1, MSY1, MSX2, MSY2, 15, 200, 2000) then
                      Mouse(x, y, 10, 10, mouse_Left);
                if (Lowercase(Strings) = 'longbow') then
                  if WaitFindBitmap(Longbow, x, y, MSX1, MSY1, MSX2, MSY2, 8, 100, 2000) then
                    if WaitFindBitmap(AddString, x, y, MSX1, MSY1, MSX2, MSY2, 15, 200, 2000) then
                      Mouse(x, y, 10, 10, mouse_Left);
              end;
          end;
        end;
      end;
      FreeBitmap(Cut);
      FreeBitmap(Longbow);
      FreeBitmap(Shortbow);
      FreeBitmap(Fletch);
      FreeBitmap(AddString);
    end;

    begin
      CreateFolders;
      MarkTime(StartTime);
      SafeInitForm;
      ClearDebug;
      SafeShowFormModal;
      Freeform(frmDesign);
      Run;
      AddOnTerminate('FinishStats');
      repeat
        SetupLogs;
        Banking;
        if not InvEmpty then
          BankDeposit;
        WithdrawLog(17);
        CutLogs;
        while Fletching do
        begin
          Antiban;
          Wait(100);
        end;
        IncEx(Fletching_XP, XP * 28);
        Progress;
        Inc(Count);
      until (Count = LoadCount);
    end.
    Attached Files Attached Files
    Last edited by tehq; 01-15-2013 at 03:20 AM.

  2. #2
    Join Date
    Dec 2011
    Location
    Hyrule
    Posts
    8,662
    Mentioned
    179 Post(s)
    Quoted
    1870 Post(s)

  3. #3
    Join Date
    Feb 2012
    Posts
    45
    Mentioned
    1 Post(s)
    Quoted
    20 Post(s)

    Default

    Can't wait for the string option to work

  4. #4
    Join Date
    May 2012
    Posts
    1
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    You might want to write a method for checking if the starting inventory is 28 logs (or in the case of stringing: 14 bows, 14 bs) so the script does not open the bank at the start every time.
    Last edited by kstev; 01-28-2013 at 02:44 AM.

  5. #5
    Join Date
    Sep 2012
    Location
    Australia.
    Posts
    839
    Mentioned
    16 Post(s)
    Quoted
    225 Post(s)

    Default

    I tried to test the script for you, but it failed numerous times.

    • Tried to withdraw 28 logs after depositing my inventory. Terminated script.
    • Looking at the bank. Terminated script.
    • It walked somewhere. Terminated script.


    Good luck with the updates.

  6. #6
    Join Date
    Nov 2011
    Location
    MA
    Posts
    545
    Mentioned
    3 Post(s)
    Quoted
    10 Post(s)

    Default

    Quote Originally Posted by Chris! View Post
    I tried to test the script for you, but it failed numerous times.

    • Tried to withdraw 28 logs after depositing my inventory. Terminated script.
    • Looking at the bank. Terminated script.
    • It walked somewhere. Terminated script.


    Good luck with the updates.
    Where were you banking? Sounds like that was the main issue. I didn't run into any of those problems at the soul wars chest.

    Quote Originally Posted by kstev View Post
    You might want to write a method for checking if the starting inventory is 28 logs (or in the case of stringing: 14 bows, 14 bs) so the script does not open the bank at the start every time.
    What do you mean by the start? When you begin the script?

Thread Information

Users Browsing this Thread

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

Tags for this Thread

Posting Permissions

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