Results 1 to 3 of 3

Thread: Catherby Arrow Fletcher

  1. #1
    Join Date
    May 2007
    Posts
    5
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Catherby Arrow Fletcher

    V1.2 is Out !


    The Script is now working fully, with a form and support for all arrow-types.

    with v1.2, the script Actually supports all arrow-types!



    to be done...
    1.Anti-Randoms
    2.Anything else you testers can think of.


    This script buys arrowheads from the Ranging shop in Catherby and attaches them to headless arrows. It will switch from world to world on it's own, so it can potentially buy all the arrowheads from the shop on each world.

    Right now the script works pretty flawlessly, it might make mistakes on the way occasionally but manages to correct itself.

    It has one failsafe, but i think it's the only one it really needs. It doesn't have antirandoms, but i dont think it will get many random events since it stays in the shop and switches worlds every minute or two.

    I'm not sure if this type of script requires multiplayer either.

    Please try it out, and all critique/feedback is welcome.

    ftw!

    Code:
    {                  Rishi's Catherby Arrow Fletcher
    
                        * * * Instructions * * *
          1. Have your headless arrows in your first inventory slot.
          2. Have your Gold in the fourth inventory slot.
          3. Keep slots 2 and 3 empty.
          4. Start in the middle of the Catherby Ranging Shop.
                         * * * * * * * * * * * * *                           }
    
    
    program ArrowFletcher;
    
    {.include SRL/SRL.scar}
    
    var
      User,PW: String;
      num, row, column, i,xx,yy,arrowcolor,failsafe, asx, asy: Integer;
      HicktonColor : Array[0..4] of integer;
      frmDesign : TForm;
      Label1 : TLabel;
      Userbox : TEdit;
      Edit1 : TEdit;
      Button1 : TButton;
      AType: TPopupMenu;
      AtypeMenu1, AtypeMenu2, AtypeMenu3, AtypeMenu4, AtypeMenu5, AtypeMenu6: TMenuItem;
      btn: TButton;
    
    
    procedure Check;
    begin
      if (findcolor(xx,yy,65535,560,210,600,225)=False)
      then begin
        writeln('No more Headless Arrows, Ending Script');
        Logout;
        wait(3000);
        TerminateScript;
      end else
        if((findcolor(xx,yy,65535,715,210,725,225)=False)and(findcolor(xx,yy,16777215,693,210,725,225)=False))
          then begin
            writeln('No more gold, Ending Script');
            Logout;
            TerminateScript;
          end else
    end;
    
    procedure FixBrightness;
    begin
    MakeCompass('N');
    Gametab(11);
    mouse(677,227,3,3,True);
    wait(200+random(200));
    mouse(710,225,3,3,True);
    wait(200+random(200));
    Gametab(4);
    end;
    
    procedure NextWorld;
    begin
      writeln('*******************************************');
      writeln('Script has been running for '+TimeRunning);
      writeln('Visited '+ IntToStr(num-1) + ' worlds.');
      writeln('*******************************************');
      mouse(10,465,85,30,True);
      repeat
        wait(200);
      until(getcolor(146,5)=1682881);
      if((getcolor(632,8)=2851375)=False)
      then mouse(632,8,2,2,True);
      if(row=21)
        then begin
          column:=(column+1);
          row:=1;
          mouse((370+(100*column)),(20+(23*row)),10,4,True);
        end else
          mouse((370+(100*column)),(20+(23*row)),10,4,True);
          row:=(row+1);
    end;
    
    procedure BuyHeads;
    begin
      Writeln('Buying Arrowheads...');
      repeat
        check;
        Mouse(asx+2,asy+2,20,20,False);
        GetMousePos(x,y);
        Mouse(x,y+64,40,15,True);
        wait(100+random(200));
      until((findcolor(x,y,65535,(asx+6),asy,(asx+20),(asy+10))=False));
      Mouse(478,32,19,18,True);
      Writeln('Bought all the arrowheads they got!');
    end;
    
    
    
    procedure AttachHeads;
    begin
      repeat;
        Check;
        Mouse(570,214,22,25,True);
        Mouse(611,213,27,29,True);
        wait(100+random(200));
      until((findcolor(x,y,65535,611,212,637,239)=False));
      Writeln('Attached All Arrowheads to Headless Arrows...');
    end;
    
    procedure FindHickton;
    begin
      //FixBrightness;
      failsafe := 0;
      gametab(random(14));
      gametab(4);
      makecompass('n');
      Check;
      HicktonColor[0]:=4407296;
      HicktonColor[1]:=1812960;
      HicktonColor[2]:=5723688;
      HicktonColor[3]:=4356382;
      HicktonColor[4]:=6917815;
      Writeln('Finding Hickton...');
      repeat
        i := -1;
        repeat
          i := (i+1);
          if (i = 5)
          then begin
            i:=0;
            failsafe:=(failsafe+1);
          end else
            findcolor(x,y,HicktonColor[i],100,35,455,305);
          if (failsafe = 10)
          then begin
            findsymbol(x,y,'Archery Shop');
            mouse(x,y,1,1,True);
            failsafe := 0;
          end else
          wait(200);
        until(findcolor(x,y,HicktonColor[i],100,35,455,305)=True);
        movemousesmoothex(x,y,15,15,15,30,15);
        mouse(x,y,1,1,False);
        mouse(x,y+34,40,14,True);
        Flag;
        wait(500+random(500));
      until(GetColor(501,321)=921873);
      Writeln('Found em');
    end;
    
    procedure Login;
    begin
      Writeln('Logging In...');
      wait(200+random(250));
      Mouse(390,272,140,35,True);
      Mouse(271,250,215,10,True);
      TypeSend(User+chr(13)+PW);
      Mouse(229,303,141,33,True);
      repeat
        wait(250);
      until(GetColor(410,323)=2241151);
      Mouse(270,290,220,90,True);
    end;
    
    
    
    Procedure AddPic;
    var
      Picture : integer;
      Canvas : TCanvas;
    begin
      Picture := LoadBitmap(ScriptPath + 'ArrowFletcherFormBG.bmp')
      Canvas:= GetBitmapCanvas(Picture);
      CopyCanvas(Canvas, frmDesign.Canvas, 0, 0, 416, 164, 0, 0, 416, 164);
    end;
    
    Procedure FormPaintBG(Sender : TObject);
    begin
      AddPic;
    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 Atype1Click(sender: TObject);
    begin
      Arrowcolor := 1913924;
      asx:=362;
      asy:=116;
      Writeln('Making Bronze Arrows');
    end;
    
    
    
    procedure Atype2Click(sender: TObject);
    begin
      Arrowcolor := 4473928;
      asx:=409;
      asy:=116;
      Writeln('Making Iron Arrows');
    end;
    
    procedure Atype3Click(sender: TObject);
    begin
      Arrowcolor := 6908272;
      asx:=80;
      asy:=162;
      Writeln('Making Steel Arrows');
    end;
    
    procedure Atype4Click(sender: TObject);
    begin
      Arrowcolor := 5453623;
      asx:=127;
      asy:=162;
      Writeln('Making Mithril Arrows');
    end;
    
    procedure Atype5Click(sender: TObject);
    begin
      Arrowcolor := 4083006;
      asx:=174;
      asy:=162;
      Writeln('Making Adamantine Arrows');
    end;
    
    procedure Atype6Click(sender: TObject);
    begin
      Arrowcolor := 6445378;
      asx:=221;
      asy:=162;
      Writeln('Making Runite Arrows');
    end;
    
    
    procedure ClickButton(sender: TObject);
    begin
      User := Userbox.text
      PW := Edit1.text
      frmDesign.Caption:= frmDesign.Caption + '.';
      frmDesign.ModalResult:= mrOk;
    end;
    
    procedure ButtonClick(sender: TObject);
    begin
      GetMousePos(x, y);
      Atype.Popup(x, y);
    end;
    
    
    Procedure InitForm;
    begin
    
      frmDesign := CreateForm;
      frmDesign.Left := 250;
      frmDesign.Top := 114;
      frmDesign.Width := 422;
      frmDesign.Height := 188;
      frmDesign.Caption := 'frmDesign';
      frmDesign.Color := clBtnFace;
      frmDesign.Font.Color := clWindowText;
      frmDesign.Font.Height := -11;
      frmDesign.Font.Name := 'MS Sans Serif';
      frmDesign.Font.Style := [];
      frmDesign.Visible := False;
      frmDesign.PixelsPerInch := 96;
      frmDesign.ONPAINT := @FormPaintBG;
      Userbox := TEdit.Create(frmDesign);
      Userbox.Parent := frmDesign;
      Userbox.Left := 200;
      Userbox.Top := 3;
      Userbox.Width := 207;
      Userbox.Height := 15;
      Userbox.Font.Color := clWindowText;
      Userbox.Font.Height := -12;
      Userbox.Font.Name := 'Arial';
      Userbox.Font.Style := [];
      Userbox.ParentFont := False;
      Userbox.TabOrder := 8;
      Userbox.Text := '(Enter Username Here)';
      Edit1 := TEdit.Create(frmDesign);
      Edit1.Parent := frmDesign;
      Edit1.Left := 200;
      Edit1.Top := 27;
      Edit1.Width := 207;
      Edit1.Height := 15;
      Edit1.Font.Color := clWindowText;
      Edit1.Font.Height := -12;
      Edit1.Font.Name := 'Arial';
      Edit1.Font.Style := [];
      Edit1.ParentFont := False;
      Edit1.TabOrder := 9;
      Edit1.Text := '(Enter Password Here)';
      Button1 := TButton.Create(frmDesign);
      Button1.Parent := frmDesign;
      Button1.Left := 200;
      Button1.Top := 57;
      Button1.Width := 207;
      Button1.Height := 40;
      Button1.Caption := 'Click Here to Start!';
      Button1.Font.Color := clWindowText;
      Button1.Font.Height := -19;
      Button1.Font.Name := 'Arial';
      Button1.Font.Style := [];
      Button1.ParentFont := False;
      Button1.TabOrder := 10;
      btn := TButton.Create(frmDesign);
      btn.Parent := frmDesign;
      btn.Caption := 'Click to choose your arrow type.';
      btn.Left := 200;
      btn.Top := 97;
      btn.Width := 207;
      btn.Height := 40;
      btn.TabOrder := 8;
      btn.OnClick := @ButtonClick;
      Atype := TPopupMenu.Create(frmDesign);
      AtypeMenu1 := TMenuItem.Create(frmDesign);
      AtypeMenu1.Caption := 'Bronze';
      AtypeMenu1.OnClick := @Atype1Click;
      Atype.Items.Add(AtypeMenu1);
      AtypeMenu2 := TMenuItem.Create(frmDesign);
      AtypeMenu2.Caption := 'Iron';
      AtypeMenu2.OnClick := @Atype2Click;
      Atype.Items.Add(AtypeMenu2);
      AtypeMenu3 := TMenuItem.Create(frmDesign);
      AtypeMenu3.Caption := 'Steel';
      AtypeMenu3.OnClick := @Atype3Click;
      Atype.Items.Add(AtypeMenu3);
      AtypeMenu4 := TMenuItem.Create(frmDesign);
      AtypeMenu4.Caption := 'Mithril';
      AtypeMenu4.OnClick := @Atype4Click;
      Atype.Items.Add(AtypeMenu4);
      AtypeMenu5 := TMenuItem.Create(frmDesign);
      AtypeMenu5.Caption := 'Addy';
      AtypeMenu5.OnClick := @Atype5Click;
      Atype.Items.Add(AtypeMenu5);
      AtypeMenu6 := TMenuItem.Create(frmDesign);
      AtypeMenu6.Caption := 'Runite';
      AtypeMenu6.OnClick := @Atype6Click;
      Atype.Items.Add(AtypeMenu6);
      Button1.Onclick:=@clickbutton;
    end;
    
    
    
    begin
      SafeInitForm;
      SafeShowFormModal;
      ClearDebug;
      num:=0;
      row:=1;
      column:=1;
      SetUpSRL;
      repeat
        num := (num+1);
        NextWorld;
        Login;
        FindHickton;
        wait(200+random(300));
        BuyHeads;
        AttachHeads;
        writeln('All done here, logging out & switching worlds...');
        Logout;
      until(num=57);
    end.

  2. #2
    Join Date
    Feb 2007
    Posts
    433
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    SCAR Code:
    [Runtime Error] : Out Of Range in line 158 in script
    hmmm i dont understand it.. but VERY NICE SCRIPT FOR A FIRST!!! but the only thing is.. you said
    SCAR Code:
    {                  Rishi's Catherby Arrow Fletcher

                        * * * Instructions * * *
          1. Have your headless arrows in your first inventory slot.
          2. Have your Gold in the fourth inventory slot.
          3.Keep slots 3 and 4 empty.
          4.Start in the middle of the Catherby Ranging Shop.
                         * * * * * * * * * * * * *                           }
    for number 2. you say to have Gold in fourth inv slot but for 3. you say to have 3 and 4 ( slots ) empty.. i think you mean have 2 and 3 empty... but I havent really gotten to really read thru it :\ but it seems good oh no wait i just saw something.. You said
    SCAR Code:
    (findcolor(xx,yy,65535,560,210,600,225)=False)
    which is ok, but you should use FindColorSpiralTolerence... because then it will look for everything with that color and all the colors with the tolerence you set it at, but otherwise, looks good ( again ) and just to tell you what it said before I got the error
    SCAR Code:
    ][Runtime Error] : Out Of Range in line 158 in script
    it said
    SCAR Code:
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    lol idk.. but maybe you can fix this, cuz Im pretty busy right now

  3. #3
    Join Date
    May 2007
    Posts
    5
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    you're right, i did mean to put slots 2 and 3 in the directions, thanks for spotting that.

    Code:
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    File ArrowFletcherFormBG.bmp was not found
    thats the background image for the form on this script. if you download the zip file attached to the first post, it has an image in it that needs to be in the same folder as the script. then it should work.

    thanks for testing!

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. [SRL4] Rev #16 Bolt-Arrow-Dart Fletcher !
    By dver in forum RS3 Outdated / Broken Scripts
    Replies: 4
    Last Post: 06-30-2008, 07:57 PM
  2. how do you keydown the down arrow
    By i like mauls in forum OSR Help
    Replies: 6
    Last Post: 02-02-2008, 09:28 PM
  3. Catherby Fisher Banker Cooker and Catherby Yew cutter
    By slipperyfox in forum RS3 Outdated / Broken Scripts
    Replies: 1
    Last Post: 08-05-2007, 12:02 AM
  4. need reg log cutter and arrow shaft fletcher combo
    By tylerj11090 in forum RS3 Outdated / Broken Scripts
    Replies: 2
    Last Post: 06-11-2007, 04:08 PM
  5. Arrow Heads..
    By Thick As Blood in forum Construction, Crafting and Fletching
    Replies: 2
    Last Post: 05-27-2007, 02:15 AM

Posting Permissions

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