Results 1 to 3 of 3

Thread: Two problems with a Yew cutter script

  1. #1
    Join Date
    Jun 2008
    Posts
    17
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Two problems with a Yew cutter script

    Code:
    program This is teh uberness of teh chopping choppyess..... It banks and chops then banks some more, start in edge bank. ENJOY;
    
    const
    
    //-- Start Of Setup --\
    
    Mask      = ''      ; //what to rename scar as
    User      = 'kial23'      ; //user
    Pass      = 'chloe'      ; //pass
    Direction = 'S'     ; //direction to run when gettin' 0wn3d
    
    Tree1     = 4094064 ; //yew tree colors
    Tree2     = 4094064 ;
    Tree3     = 4094064 ;
    
    RoadColor = 6184550 ; //Road Color on MM
    TreeColor = 99080 ; //Color of Tree on MM
    BankSymb  = 0; //Color of Bank Icon on MM(leave at 0 for script to auto pick)
    
    PinNumb   = 0      ; //pin number to open ur bank.(only if needed)
    
    Trips     = 25      ; //number of trips to make before stopping.
    
    InTime    = 75      ; //take a break every X minutes
    OutTime   = 5      ; //break for X minutes
    
    ReAttach  = True    ; //if true script will try and re-attach axehead.
    Wield     = true   ; //true to if ur wielding axe and false if not.(script works better if not wielding)
    
    EdgeVille = True    ; //true to cut yews in edgeville, leave it at true.
    EntChecks = True    ; //true to use my ent finder.(if false it will still check with si's ent finder)
    SiFindObj = False   ; //true to use si's find obj. false to use alternate find obj.
    
    //-- End Of Setup -- \
    
    EntBmpTol = 50 ; //tolerance of the ent checker bmp
    
    var
     Tx, Ty, T1, T2, T3, attached, killed, ents, banks, newpicks, times, fishs, YEntBmp : integer;
     broke : boolean;
    
    {.include si.scar}
    
    //Ent Checking Stuff
    
    function EntPresent : boolean;
    begin
    Result:=CheckEnt;
    if(EntChecks = true)and
       (FindBitmapToleranceIn(YEntBmp, tx, ty, 75, 1, 145, 40, EntBmpTol) = true)and
        (IsUpText('Ch') = true)then
         Result:=true;
    end;
    
    //Option function
    
    function Option(s : string): boolean;
    begin
    result:=IsUpText(s);
    end;
    
    //Find Obj
    
    function FindObj2(objtext : string; objcolor, tol : integer) : boolean;
    var ax,ay,x,y:integer;
    xi,yi,TempHold2,i,TempHold:extended;
    begin
     if(FindColorTolerance(x,y,objcolor,1,1,514,336,tol))then
     begin
     ax:=257; ay:=168;
     repeat
      i:=i+1
      yi:=0;
      repeat
       yi:=yi+1;
       TempHold:=Trunc(i/2);
       TempHold2:=i/2;
       if(TempHold=TempHold2)then
       begin
        ay:=ay+10;
       end else ay:=ay-10;
       if(FindColorTolerance(x,y,objcolor,ax-622,ay-696,ax+160,ay+108,tol))then
        begin
         MMouse(x,y,1,1);
         wait(1000);
         if(Option(objtext))then
          result:=true;
        end;
      until(yi=i)or(result=true)
      xi:=0;
      repeat
       xi:=xi+1;
       TempHold:=Trunc(i/2);
       TempHold2:=i/2;
       if(TempHold=TempHold2)then
       begin
        ax:=ax+10;
       end else ax:=ax-10;
       if(FindColorTolerance(x,y,objcolor,ax-4114,ay-5647,ax+641,ay+61,tol))then
        begin
         MMouse(x,y,1,1);
         wait(1000);
         if(Option(objtext))then
          result:=true;
        end;
      until(xi=i)or(result=true)
     until(ax>=514)or(result=true)
    end;
    end;
    
    //Modified Anti-Ban from SI
    
    function AntiBan2(inTime, outTime, Account: Integer): Boolean;
    var
      logtime, randomin, randomout: Integer;
    begin
      logtime := ((GetSystemTime - gSiABT) / 1000) / 60;
      randomin := (InTime * 1000) * 60 + random(InTime * 60);
      if(logtime >= randomin)then
      begin
        LogOut;
        Result := True;
        WriteLn('Anti-Ban - Logged Out at '+TheTime);
        randomout := (OutTime * 1000) * 60 + random(OutTime * 60)
        Writeln('Waiting ' + inttostr(randomout) + ' Minutes To Log Back In');
        Wait(randomout);
        Login(Account);
        WriteLn('Anti-Ban - Logged In at '+TheTime);
        gSiABT := GetSystemTime;
      end;
    end;
    
    //GetSymbolColor from SSi2
    
    function GetSymbolColor(name : string) : integer;
    var
      Bitmap, Color, c, x, y : integer;
      acc : extended;
    begin
    if(lowercase(name) = 'bank')then
    begin
      Bitmap := BitmapFromString(15, 5, 'z78DA33B434B4343473B' +
         '100421364D2D9D2C9C9D4C4CDCDD5D1CCD0C2D5DCC5D00299ED04' +
         '8226C824B25E43B0998664990C213175116F32B2F9C824B2F9A4B' +
         'A1997F9B842865493890F734C9301ACE46928');
      Color:=6417151;
    end;
    FindDeformedBitmapToleranceIn(Bitmap, x, y, 570, 5, 725, 160, 70, 0, True, acc);
    if(acc > 0.65)then
    begin
      repeat
      c:=c + 5;
      if(FindColorTolerance(x, y, Color, x, y, x + 15, y + 5, c))then
        result:=GetColor(x, y);
      until(result > 0)or(c > 70);
    end;
    FreeBitmap(Bitmap);
    end;
    
    //Mark Time Procedures from SSi2
    
    procedure MarkTime(var TimeMarker:integer);
    begin
     TimeMarker:=GetSystemTime;
    end;
    
    function TimeFromMark(var TimeMarker:integer):integer;
    begin
     result:=(GetSystemTime - TimeMarker) / 1000;
    end;
    
    //Function that checks if ur inventory is full...
    
    function Full : boolean;
    begin
    if(IsChatMessage('Your i') = true)and
       (InvFull = true)then
        result:=true;
    end;
    
    //Progress Report
    
    procedure Report;
    var
     avtime : integer;
    begin
    if(Wield = true)then
     killed:= killed + 28
      Else
     killed:= killed + 27;
    if(ScriptTime(2) > 0)then
     avtime:= Killed / ScriptTime(2);
    writeln('');
    writeln('<=================Progress Report================>');
    writeln('Worked for '  + inttostr(ScriptTime(1)) +' Hour[s] and ' + inttostr(ScriptTime(2)) +' Minute[s] and ' + inttostr(ScriptTime(3)) +' Second[s].');
    writeln('Killed and Banked '  + inttostr(Killed) +' Willow Log[s].');
    if(ScriptTime(2) > 0)then
     writeln('Averaging   ' + floattostr(AvTime) +' Log[s] per minute.');
    if(gSiRandoms[5] > 0)then
     writeln('Gained ' + inttostr(gSiRandoms[5]) +' WoodCutting Level[s].');
    if(NewPicks > 0)then
     writeln('Withdrawn ' + inttostr(NewPicks) +' New Pick[s].');
    if(Attached > 0)then
     writeln('Re-Attached '  + inttostr(attached) +' AxeHead[s].');
    if(ents > 0)then
     writeln('Waited for ' + inttostr(ents) +' Ent[s].');
    if(gSiRandoms[1] > 0)then
     writeln('Dealt with ' + inttostr(gSiRandoms[1]) + ' Text Random[s].');
    if(gSiRandoms[3] > 0)then
     writeln('Dealt with ' + inttostr(gSiRandoms[3]) + ' Box[s].');
    if(gSiRandoms[0] > 0)then
     writeln('Found ' + inttostr(gSiRandoms[0]) + ' Fight[s].');
    if(gSiRandoms[2] > 0)then
     writeln('Used ' + inttostr(gSiRandoms[2]) + ' Lamp[s].');
    writeln('<================================================>');
    end;
    
    // Randoms
    
    procedure RegRandoms;
    var
     x, y : integer;
    begin
    if(FindColor(x, y, 65535, 10, 25, 511, 334) = true)then
     begin
     gSiRandoms[1] := gSiRandoms[1] + 1;
     TakeScreen('Text',gSiRandoms[1]);
     TalkToRand(x, y);
     wait(35 + random(75));
     GameTab(4);
     wait(100 + random(75));
     end;
    CheckRandoms(1, 'WoodCutting', Direction, True, True, srtAll);
    end;
    
    procedure CuttingRandoms;
    begin
    RegRandoms;
    if(ReAttach = true)and(AxeHeadGone(wield) = true)then
     begin
     FixAxe(wield);
     wait(2500 + random(1000));
     if(AxeHeadGone(wield) = false)then
      begin
      writeln('');
      writeln('Found and re-attached pickhead!');
      attached:=attached + 1;
      end;
     end;
    if(AxeHeadGone(wield) = true)then
     begin
     writeln('');
     writeln('Lost axehead... getting a new one!');
     broke:=true;
     Logout;
     TerminateScript;
     end;
    if(BrokenAxe(wield) = true)then
     begin
     writeln('');
     writeln('Axe broken... getting a new one!');
     broke:=true;
     Logout;
     TerminateScript;
     end;
    end;
    
    //Flag.
    
    procedure FlagR;
    begin
    repeat
    wait(10);
    until(FlagPresent = false);
    end;
    
    function FindObjecto(s : string; color, tol : integer): boolean;
    begin
    if(SIFindObj = true)then
     result:=FindObj(tx, ty, s, color, tol)
      Else
     result:=FindObj2(s, color, tol);
    end;
    
    procedure CutTree(color1, color2, color3 : integer; tname : string);
    var
     tc, rn, x, y, x1, y1, x2, y2, mark : integer;
    begin
    rn:=random(3) + 1;
     case rn of
      1 : tc:=color1;
      2 : tc:=color2;
      3 : tc:=color3;
     end;
    rn:=random(2) + 1;
    if(rn = 1)then
     begin
     x1:=218;
     y1:=118;
     x2:=282;
     y2:=186;
     end
      Else
     begin
     x1:=9;
     y1:=9;
     x2:=511;
     y2:=333;
     end;
    if(FindColorSpiralTolerance(x, y, tc, x1, y1, x2, y2, 3) = true)then
     begin
     if(Option('Chop ' + tname) = true)
      or(FindObjecto('Chop ' + tname, tc, 3) = true)
       and(CheckEnt = false)then
        begin
        GetMousePos(x, y);
        Mouse(x, y, 2, 2, true);
        wait(175 + random(300));
        MarkTime(mark);
        CuttingRandoms;
        FlagR;
        repeat
        wait(10);
        CuttingRandoms;
        if(EntPresent = true)then
         break;
        if(TimeFromMark(mark) > 45)then
         begin
         MarkTime(mark);
         wait(100 + random(100));
         GetMousePos(x, y);
         if(Option('Cho') = true)then
          Mouse(x + 2, y, 5, 5, true)
           Else
          MMouse(x + 2, y, 45, 15);
         end;
        until(Option('Cho') = false)or(full = true);
        end;
    if(EntPresent = true)then
         begin
          writeln('');
          writeln('Found An Ent!');
          ents:=ents + 1;
          Mouse(647, 82, 2, 2, true);
          wait(250 + random(1000));
          MarkTime(mark);
           repeat
           wait(100);
           CuttingRandoms;
           until(TimeFromMark(mark) > 30);
         end;
     end;
    end;
    
    // MapWalking
    
    procedure YewsToBank; //edgeville walking from rsnoobs script.
    var
     x, y : integer;
    begin
    if(EdgeVille = true)then
     begin
     while(not FindColor(x, y, BankS, 620, 30, 695, 105))do
      if(FindColor(x, y, RoadColor, 635, 30, 685, 45))then
        MouseFlag(x, y, 2, 2);
      Mouse(x, y, 2, 2, True);
      Flag;
     end
      Else
     begin
     end;
    End;
    
    procedure BankToYews; //edgeville walking from rsnoobs script.
    var
     x, y, off: integer;
    Begin
    if(EdgeVille = true)then
     begin
      x:= 640;
      y:= 145;
      if(FindColorSpiral(x, y, RoadColor, 621, 95, 652, 120))then
        Mouse(x, y, 2, 2, True);
      Flag;
      if(Random(2)=0)then
      begin
        x:= 635;
        y:= 85;
        off:= 10;
      end
       Else
      begin
        x:= 630;
        y:= 160;
        off:= - 10;
      end;
      if(FindColorSpiral(x, y, TreeColor, 615, 80, 650, 160))then
        Mouse(x + 5, y + off, 2, 2, True);
      Flag;
     end
      Else
     begin
     end;
    end;
     
    //Close Bank Procedure
    
    procedure CloseBank;
    begin
    wait(200 + random(175));
    Mouse(random(20) + 430, random(3) + 37, 0, 0, true);
    wait(100 + random(50));
    end;
    
    //Procedure to bank yews.
    
    procedure ClearInv;
    begin
    SetRun(true);
    MakeCompass('N');
    YewsToBank;
    OpenBank2(PinNumb);
    wait(100 + random(150));
    if(Wield = true)then
     DepositAll
      Else
     begin
     DepositArea(607, 212, 733, 240);
     DepositArea(566, 256, 730, 452);
     end;
    CloseBank;
    BankToYews;
    SetRun(false);
    end;
    
    //Procedure to get a new axe out of bank
    
    procedure NewAxe;
    var
     x, y : integer;
    begin
    broke:=false;
    setrun(true);
    if(Wield = true)then
     TakeOff(5);
    MakeCompass('N');
    YewsToBank;
    OpenBank2(PinNumb);
    wait(100 + random(150));
    DepositAll;
    wait(400 + random(150));
    FixBank;
    wait(300 + random(150));
    if(FindColorTolerance(x, y, gSiAxeH, 74, 61, 110, 88, 3) = false)then
     begin
     writeln('');
     writeln('Outta picks... terminating');
     Logout;
     TerminateScript;
     end;
    Withdraw(1, 1);
    CloseBank;
    wait(50 + random(75));
    if(Wield = true)then
     UseItem(1);
    NewPicks:=NewPicks + 1;
    BankToYews;
    SetRun(False);
    end;
    
    procedure SwitchTrees; //by RSnoob
    var
      x, y: Integer;
    begin
    if(EdgeVille = true)then
     begin
      if(FindColor(x, y, TreeColor, 630, 25, 660, 60))then
        Mouse(x + 2, y + 12, 2, 2, True)
      else
      if(FindColor(x, y, TreeColor, 630, 105, 660, 140))then
        Mouse(x + 2, y, 2, 2, True);
     end
      Else
     begin
     end;
      Flag;
    end;
    
    {--- Main Line Of Coding Starts Here ---}
    
    begin
    YEntBmp:= BitmapFromString(2, 10, 'z78DA73357135317074452' +
           '29D5D9D5D0D8C70B24D8950834B3D121B00ADF01C47');
    writeln('');
    writeln('YewCutterBanker v. Beta - by RealRune');
    writeln('');
    writeln('Start in the bank with the banksymbol visible');
    writeln('');
    writeln('Empty inv except for a pick either wielded or in first slot of inventory');
    writeln('');
    writeln('Make sure to have extra picks in first Bank Slot');
    writeln('');
    writeln('Starting Up');
    wait(1000);
    LoadInclude(mask);
    SetAccount(1, user, pass);
    GetAxeColors(wield);
    T1:=Tree1;
    T2:=Tree2;
    T3:=Tree3;
    BankS:=BankSymb;
    Killed:=0;
    if(BankS = 0)then
     BankS:= GetSymbolColor('bank');
    if(BankS = 0)then
     begin
     writeln('');
     writeln('Color finding failed... please input colors urself');
     Logout;
     TerminateScript;
     end;
    if(FindColor(tx, ty, BankS, 573, 8, 723, 158) = true)then
     begin
     SetRun(true);
     BankToYews;
     SetRun(false);
     end;
    repeat
     repeat
     CutTree(T1, T2, T3, 'down Y');
     if(Full = false)then
      begin
      SwitchTrees;
      CuttingRandoms;
      end;
     if(Broke = true)then
      NewAxe;
     AntiBan2(inTime, outTime, 1);
     until(full = true);
    if(Full = true)then
     begin
     Times:=times + 1;
     ClearInv;
     Report;
     end;
    AntiBan2(inTime, outTime, 1);
    until(times = trips) or (times > trips);
    end.
    Heres the errors:

    Code:
    Line 1: [Error] (1:14): Semicolon (';') expected in script
    When I put a semi collen there I got this:
    Code:
    Line 150: [Error] (198:4): Unknown identifier 'IsTextAt2' in script C:\Program Files\SCAR 3.15\includes\boxbreaker2.txt

  2. #2
    Join Date
    Jan 2007
    Location
    Illinois.. >.<
    Posts
    1,158
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    This script is SOOO outdated.. It uses the SI include. Try Zephyer's

  3. #3
    Join Date
    Jun 2008
    Posts
    17
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    O.O Ok I will, thanks

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Help with a few problems in my script
    By Warflight in forum OSR Help
    Replies: 3
    Last Post: 01-25-2009, 09:58 AM
  2. Script Problems
    By EliteHacker in forum OSR Help
    Replies: 11
    Last Post: 11-12-2008, 12:51 PM
  3. script problems
    By thunderflea in forum OSR Help
    Replies: 5
    Last Post: 08-25-2008, 10:53 AM
  4. Having problems with my first script
    By darkfire355 in forum OSR Help
    Replies: 2
    Last Post: 01-27-2008, 12:23 PM

Posting Permissions

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