Results 1 to 7 of 7

Thread: All My incomplete scripts :D

  1. #1
    Join Date
    Jan 2008
    Location
    Stanford, CA
    Posts
    329
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default All My incomplete scripts :D

    NOt sure if this goes under a certain category, but I'd like to show you guys my attempt at some scripts. Usually what I did on a rainy day lol.

    DaSupaFlaxa

    SCAR Code:
    program DaSupaFlaxa;
    {.include SRl/SRL.scar}


    function ReadyToPicky: boolean;

    Var
    tpa: TPointArray;
    TPAA: T2DPointArray;
    Bounds: TBox;

    begin
      if not loggedin then exit;
      x:=MMCX; y:=MMCY:
      FindColorsSpiralTolerance(x,y,tpa,11363426,MMX1,MMY1,MMX2,MMY2,5);
      if GetArrayLength(tpa)>0 then
      begin
        TPAA:=SplitTPA(tpa,2);
        SortATPASize(TPAA,true);
        MiddleTPAEx(TPAA[0],x,y);
        Result:=MFNF(x,y,1,1);
        Exit;
      end;
      Result:=False;
    end;

    function ColorUpText(Types: String): Boolean;

    begin
      if not loggedin then exit;
      case lowercase(Types) of
        'yellow': Result:= CountColorTolerance(1108200,54,8,118,18,250)>=10;
        'blue': Result:= CountColorTolerance(14408730,54,8,118,18,250)>=10;
        'orange': Result:= CountColorTolerance(3636184,54,8,118,18,250)>=10;
        'green': Result:= CountColorTolerance(1171738,54,8,118,18,250)>=10;
        'white': Result:= CountColorTolerance(13816788,54,8,118,18,250)>=10;
      end;
    end;
                   

    procedure PickyTime: boolean;

    Var
    FlaxCol: TPointArray;
    FFlaxCol: T2DPointArray;
    Stable: Integer;

    begin
      if FlagPresent then
        FLag;
      SetAngle(false);
      PerfectNorth;
      x:=MSCX; y:=MSCY;
      FindColorsSpiralTolerance(x,y,Flaxcol,{col},MSX1,MSY1,MSX2,MSY2,3);
      if GetArrayLengtH(FlaxCol)>0 then
      begin
        SetArrayLength(flaxcol,Getarraylength(FlaxCol));
        FFlaxCol:=TPAtoaTPA(FlaxCol,10);
        for i:=High(FFlaxCol) downto 0 do
        begin
          MiddleTPAEx(FFlaxCol[i],x,y);
          MMouse(x,y,2,2,false);
          if isuptextmulticustom(['ick','lax','fl'])then
            Break;
        end;
        Stable:=GetColor(x,y);
        while SimilarColors(Stable,{col},3) or not FlagPresent or (not CountDTMInv(Flax)=27) do
        begin
          Mouse(x,y,1,1,true);
          Wait(1000+random(2000));//didn't know quite how to deal with this part.
        end;
        if InvFull then
          GoToBank;
        if not InvFull then
          PickyTime;
      end;
      if GetArrayLength(FlaxCol)<1then
      begin
        Writeln('Could not find flax color. Terminating.');
        terminatescript;
      end;
    end;

    procedure RemoveEquips; //0=head, 1= necklace, 2= top, 3=leg, 4=cape, 5=shield, 6=sword

    var
    TBA: TBoxArray;

    begin
      Gametab(5);
      TBA:=[inttobox(636, 223, 650, 234), //head
            inttobox(634, 257, 649, 273), //necklace
            inttobox(634, 299, 646, 312),//top
            inttobox(650, 352, 634, 340),//leg
            inttobox(592, 261, 607, 273),//cape
            inttobox(689, 300, 705, 308),//shield
            inttobox(578, 292, 597, 323)];//sword
      for i:=1 to (High(TBA)-random(3)+random(2))do
      begin
        x:=i+random(5)-random(5);
        if not x>High(TBA)and x<1 then  //randomize it a bit.
          Swap(TBA[i],TBA[x]);
      end;
      for i:=0 to High(TBA)do
      begin
        x:= TBA[i].x1+TBA[i].x2/2+random(2)-random(2);  //MidPoint Formula
        y:= TBA[i].y1+TBA[i].y2/2+random(2)-random(2);
        MMouse(x,y,1,1);
        Wait(500+random(500));
        if not ColorUpText('blue')then
        begin
          Mouse(x,y,1,1,true);
          Wait(500+random(500));
          while not ColorUpText('blue')do
           Wait(10);
        end;
      end;
     writeln('All Removed.');
    end;

     


    procedure ALaBanca: boolean;

    begin
      if not RadialWalk(blah)then
        if not RadialWalk(Blah)then
          if not RadialWalk(Blah)then
          begin
            Writeln('Not find color.');
            Exit;
          end;
        //more radial walk
      f_Fflag(5+random(4));
      RadialRoadWalk(FindCammyRoadColor,   blah);
      f_fflag(5+random(4));
      if not RadialWalk(LoadSymbolBitmapColor('bank'),blah)then
        if not RadialWalk(GetSymbolColor(x,y,'bank'),blah)then
          if FindSymbolIn(x,y,'bank',MMX1,MMY1,MMX2,MMY2)then
            MFNF(x,y,1,1);
          Else
            begin
              Writeln('Couldnt find symbol.');
              terminatescript;
            end;
      writeln('In bank.');
    end;


    procedure PlaceAtBank;

    begin
      SyAcc:=SymbolAccuracy;
      SymbolAccuracy:=0.5;
      if not FindSymbol('bank',x,y)then
        if not FindColorSpiralTolerance(x,y,GetSymbolBitmapColor('bank'),MMX1,MMY1,MMX2,MMY2,5)then
          if not FindColorSpiralTolerance(x,y,GetSymbolcolor('bank'),MMX1,MMY1,MMX2,MMY2,5)then
          begin
            writeln('not find bank.');
            terminatescript;
          end;
      MouseFlag(x,y,1,1);
        GameTab(4);
        FreakBank;
      SymbolAccuracy:=SyAcc;
    end;

    function FreakBank: Boolean;

    var
    BColor1,BColor2: TPointArray;
    DBColor: T2DPointArray;
    MixColor: TPointArray;
    BCols: TIntegerArray;

    begin
      CTS:=GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      {SetColorSpeed2Modifiers(.07, .27);}
      BCols:=[1725541,2116441];
      FindColorsSpiralTolerance(x,y,BColor1,Bcols[0],MSX1,MSY1,MSX2,MSY2,5);
      FindColorsSpiralTolerance(x,y,BColor2,BCols[1],MSX1,MSY1,MSX2,MSY2,5);
      MixColor:=CombineTPA(BColor1,Bcolor2);
      DBColor:=SplitTPA(MixColor,5);
      for i:=0 to high(DBColor)do
      begin
        MMouse(DBColor[i].x,DBColor[i].y,1,1);
        Wait(200+random(200));
        if isuptext('nk')then
          Break;
        if i=High(DBCOlor)then
        begin
          Writeln('Could not find bank.');
          Result:=False;
          Exit;
        end;
      end;
      GetMousePos(x,y);
        case random(20)of
         1 to 18: begin
                 repeat
                   Mouse(x,y,1,1,false);
                   Wait(1000+random(200));
                   if ChooseOption('uick')then
                     Break;
                 until(False);
               end;
         19,20: begin
                  repeat
                    Mouse(x,y,1,1,true);
                    Wait(1000+random(200));
                    if ClickContinue then
                      break;
                  until(False);
                  ClickToContinue;
                  Wait(50+random(200));
                  CLicktocontinue;
                end;
        end;
        if pinscreen then
          InPin(PinNumber);
        Result:=bankscreen;
       ColorToleranceSpeed(CTS);
    end;

    function ToExitBank: boolean;

    begin
      if not RadialWalk(FindCammyRoadColor,75,100,-1,-1)then
        if not RadialWalk(FindCammyRoadcolor,85,120,1,1)then
          if not RadialWalk(FindCammYRoadColor,90,130,1,-1)then
          begin
            Result:=False
            Exit;
          end;
      Writeln('Outside.');
      Result:=True;
    end;
     
           

    function FindCammyRoadColor: Integer;//based on one of wizzy's cammy road color functions

    var
    CColor: TPointArray;
    CCColor: T2DPointArray;

    begin
        FindColorsTolerance(CColor,FindRoadColor,MMX1,MMy1,MMX2,MMy2,5);
        CCColor:=TPAtoATPA(CColor,2);
        SortATPASize(CCColor,true);
        if getarraylength(cccolor)>0 then
          Result:=GetColor(CCColor[0][0].x,CCColor[0][0].y);
        Else
          Result:=FindRoadColor;
    end;

    function HeyHoToTheFlaxyOh;

    var
    FColor1,FColor2: TPointArray;
    MFColor: TPointArray;
    FFColor: T2dPointArray;

    begin
      FirstCol:=12546160;  SecondCol:={col};
      FindColorsSpiralTolerance(x,y,FColor1,FirstCol,MMX1,MMY1,MMX2,MMY2,5);
      FindColorsSPiralTolerance(x,y,FColor2,SecondCol,MMX1,MMY1,MMX2,MMY2,5);
      MFCOlor:=CombineTPA(FColor1,FColor2);
      FFColor:=TPAtoATPAEx(MFColor,3,3);
      if GetArrayLength(FFColor)>0 then
      begin
        SortATPASize(FFColor,True);
        for i:=0 to High(FFColor[0])do
        begin
          if FFColor[0][i]=FirstCol then
            Break;
        end;
        MFNF(FFcolor[0][i].x,FFColor[0][i].y,1,1);
        F_fflag(5+random(10));
        Result:=True;
      end;
      while not Result do
        begin
          if RadialWalk(12546160,90,180,70,-1,-1)then
            Result:=True;
          f_FFlag(5+random(10));
        end;
    end;

    function CountDTMInv(DTM: integer): Integer;

    Var
    Slot: Integer;
    DBox: TBox;

    begin
      if not logged in then exit;
      for i:=1 to 28 do
      begin
        dbox:=invbox(slot);
        if FindDTM(DTM,x,y,slot.x1,slot.y1,slot.x2,slot.y2)then
          Inc(result);
      end;
    end;

    FreaksMiner

    SCAR Code:
    program MineNBank;
    {.include SRL/SRL.scar}
    {.include SRL/SRL/skill/mining.scar}

    const
    ColorPick=03482034;//Color of Pick Head When Dropped

    var
    Pick: Array [0..3]of Integer;
    Iron: Integer;

    procedure DeclareDTMS;//Taken From Mining.scar. Thanks =)

    begin
       Pick[0] := BitmapFromString(11, 6, 'z78DA73730301038A811' + //broken
           'B55CDA18569B800E5F662EA722311407401000F035515');
       Pick[1] := BitmapFromString(14, 26, 'z78DA3330A014B82' +   //handle
           '101032A99865F8412D3069B99F8750D0633E9E9C2C11F86A32E1C' +
           '6C2E1CFC7979D48523A116A0BC061C2A66D2A2DE07009D42B460');
       Pick[2] := BitmapFromString(10, 7, 'z78DA33300001371CC0' +   //head
           '000720460D2E5D986CE27591AA973CF5D435C18D02003101000D7' +
           'F5A19');
       Iron := DTMFromString('78DA6314606060106140019E7A4A609A11CA6' +
           '704C9B332A001465435B240829F801A2E20214F400DC81E6E026A' +
           '7881040B7E3500DB51015E');
    end;

    function FRadialWalkEx(TheColor, StartRadial, EndRadial, Radius, Tol: Integer): boolean;

    var
    TPA: TPointArray;

    begin
      if RadialWalkEX(TPA, MMCX, MMCY, TheColor, Tol, StartRadial, EndRadial, Radius)then
      begin
        Mouse(TPA[0].x,TPA[0].y,1,1,true);
        Wait(200+random(200)) //failsafe
        Result:=f_FFlag(5+random(15));
      Else
        begin
          Wait(200+random(200));
          Exit;
        end;
    end;

    function f_FFlag(Dist: Integer): Boolean;

    begin
      while FlagDistance>Distance do
      begin
        FTWait(1);
        FindNormalRandoms;
      end;
    end;


    function SearchAndFind: Boolean;

    var
    RDots: TPointArray;
    RRDots: Array of TPointArray;

    begin
      FindColorsSpiralTolerance(MMCX,MMCY,RDots,395004,MSX1,MSY1,MSX2,MSY2,5);
      SetLength(Rdots, GetArrayLength(Rdots));
      RRDots:=TPAtoaTPA(RDOts,20);
      if GetArrayLength(RRDots)>0 then
      for d:=0 to High(RRDots)do
      begin
        SortATPASize(RRdots,true);
        SortTPAFrom(RRDots[0],MiddleTPA(RDots[0]));
        MouseFlag(RRDots[0][0].x,RRDots[0][0].y,1,1);
        Result:=ClickPickhead;
      end;
      Result:=False;
    end;

    function ClickPickHead: Boolean;

    var
    DropCol1,DropCol2: TPointArray;
    MDropCol: TPointArray;
    DDropCol: T2DPointArray;

    begin
      FindColorsSpiralTolerance(MSCX,MSCY,DropCol1,{ColorPick},MSX1,MSY1,MSX2,MSY2,5);
      FindColorsSpiralTolerance(MSCX,MSCy,DropCol2,{ColorPick},MSX1,MSY1,MSX2,MSY2,5);
      MDropCol:=CombineTPA(DropCol1,DropCol2);
      DDropCol:=TPAtoATPAEx(MDropCol,10,10);
      if not GetArrayLength(DDropCol)>0 then
      begin
        Result:=False;
        Exit;
      end;
      SortATPASize(DDropCol,True);
      SortTPAFrom(DDRopCol[0],MiddleTPA(DDropCol[0]));
      for i:=0 to High(DDropCol[0])do
      begin
        MMouse(DropCol[0][i].x,DropCol[0][i].y,1,1);
        Wait(30+random(40));
        if Pos('ick',getuptext)<>0 then
          Break;
        if I=High(DropCol)then
        begin
          Result:=False
          Exit;
        end;
      end;
      DropBox:=GetTPABOunds(DDRop[0]);
      ME:=InvCount;
      repeat
        Inc(She);
        MouseBox(ddrop[0].x1,ddrop[0].y1,ddrop[0].x2,ddrop[0].y2,1);
        Wait(30+random(40));
        if not InvCount=Me then
          Break;
      until(She=30);
      if She=30 then
      begin
        Result:=False
        Exit;
      end;
      Gametab(4);
      FindPick;
      if FindSymbol('mining',x,y)then
        Result:=MouseFlag(x,y,1,1);
    end;



    procedure WaitWhile;

    begin
      GameTab(4);
      if FindBitmapIn(Pick[0],x,y,MIX1,MIY1,MIX2,MIY2)then
        Writeln('Found Broken PickAxe. Terminating Script.');
      if FindBitmapIn(Pick[1],x,y,MIX1,MIY1,MIX2,MIY2)then
        SearchAndFind;
      FindNormalRandoms;
      if FindFight then
      begin
        writeln('Found Fight Terminating Script!');
        TerminateScript;
      end;
    end;
         

    function CheckPick: Boolean;

    begin
      Gametab(6);
      MouseBox(580,302,593,312,3);
      if IsUpTextMultiCustom(['ick','Pick'])then
      case lowercase(WhichPick) of
        'rune': Result:= FindColorTolerance(x,y,5984829,580,302,593,312,5);
        'adamant','addy': Result:=FindColorTolerance(x,y,4017469,580,302,593,312,5);
        'mithril','mith': Result:=FindColorTolerance(x,y,5322551,580,302,593,312,5);
        'steel': Result:=FindColorTolerance(x,y,6250343,580,302,593,312,5);
      end;
      if not Result then
      begin
        Writeln('Not right pick.');
        Terminatescript;
      end;
    end;


    procedure WalkToSite;

    var
    Mark: integer;

    begin
      MarkTime(Mark);
      if not FRadialWalkEX(VarrockRoadColor,225,237,71)then
        if not FRadialWalkEX(VarrockRoadColor,225,237,65)then
          if not FRadialWalkEX(VarrockRoadColor,225,237,61)then
            if not FRadialWalkEX(3958379,225,237,70)then
              Exit;
      FRadialWalkEx(3629410,180,210,70);
      AntiRandom;
      AntiBan;
      FRadialWalkEx(4086864,160,185,70);
      SymbolAccuracy:=0.5;
      if FindSymbol('Mine')then
      begin
        Writeln('Found');
        Exit;
      Else
         FRadialWalkEx(1848911,152,180,62);
       if FindSymbol('Mine')then
       begin
          SymbolAccuracy:=Synow;
          SetAngle(True);
          repeat
            Mouse(x,y,1,1);
            Wait(30+random(75));
          until(FlagPresent);
       Else
         begin
           Writeln('Still cannot find the mining site.');
           Terminatescript;
         end;
    end;

    function CountDTMInInv(DTM: Integer): Integer;//by Freakymonkey

    var
    slot: integer;
    IBox: Tbox;

    begin
      if not LoggedIn then Exit;
      Gametab(4);
      for slot:=1 to 28 do
      begin
        IBox:=InvBox(slot);
        if FindDTM(DTM,x,y,IBox.x1,IBox.y1,IBox.x2,IBox.y2)then
          Inc(Result);
      end;
    end;

    function CountEmptySlot: Integer;

    var
    slot4: integer;
    Empty: TBox;

    begin
      for i:=1 to 28 do
      begin
        Empty:=InvBox(Slot);
        if not ExistItem(i)then
          Inc(Result);
      end;
    end;

    function FindRock(x,y:integer):boolean;
    var
    RockCol1,RockCol2: TPointArray;
    MRockCol: TPointArray;
    RRockCol: Array of TPointArray;
    CTS: integer;

    begin
      CTS:=GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      SetColorSpeed2Modifiers(.2,.2);
      FindColorsSpiralTolerance(x,y,RockCol1,3096422,MSX1,MSY1,MSX2,MSY2,5);
      FindColorsSpiralTolerance(x,y,RockCol2,{col},MSX1,MSY1,MSX2,MSY2,5);
      MRockCol:=CombineTPA(RockCol2,RockCol);
      RRockCol:=TPAtoATPAEx(MRockCol,10,10);
      for i:=0 to High(RRockCol)do
      begin
       for d:=0 to High(RockCol[i])do
        MiddleTPAEx(RockCol[i],x,y);
        MMouse(x,y,1,1);
        Wait(30+random(75));
        if (Pos('ine',getuptext)<>0)then
        begin
          Writeln('Found Rock');
          GetMousePos(x,y);
          Result:=True;
          Exit;
        end;
       Writeln('Didnt Find the Rock Using the Middles of the TPAS');
       MMouse((RockCol[i])[d].x,(RockCol[i])[d].y,1,1);
       Wait(30+random(40));
       if (Pos('ine',rs_getuptext)<>0)then
       begin
         Writeln('FOund Rock');
         GetMousePos(x,y);
         Result:=True;
         Exit;
       end;
      end;
     Result:=False;
     ColorToleranceSpeed(CTS);
    end;

    function FreakEscape: Boolean;

    Escape,Mark,i: Integer;
    Escapado,Return: TPointArray;

    begin
      Escape:= GetColor(MMCX-4,MMCY-4);
      MarkTime(Mark);
          FRadialWalkEx(Escapado,x,y,1848911,5,90,180);
          MiddleTPAEx(Escapado,x,y);
          repeat
            MMouse(x,y,1,1);
            Wait(20+random(30));
          until(FlagPresent);
          f_FFlag(5);
         case Random(100) of
           11,53: TypeSend('Dang gas....');
           1,60: TypeSend('Man i hate when the rock gets gassy =p');
         end;
         repeat
           Wait(10);
         until TimeFromMark(Mark)>=12000;
         FRadialWalkEx(Return,x,y,Escape,5,180,270);
    end;



    procedure ClickRock;

    var
    Mark2,TryMe: integer;
    Change: Boolean

    begin
     for i:=0 to CountEmptySlot do//or replace 28 with amount of empty spaces in inv
     begin
        for d:=0 to 8 do
        begin
          if ChatsBlackText=[1 to 3] then
          begin
            Change:=True;
            Writeln('Looking at black chat is unreliable');
            break;
          end;
          Mouse(x,y,0,0);
          Wait(30+random(75));
          if (Pos('ing',BlackChatMessage)<>0)then
            Break;
        until(false);
        if Change then
        begin
          repeat
            Inc(TryMe);
            Mouse(x,y,0,0,true);
            Wait(20+random(30));
          until(Tryme>=20);
        end;
        MarkTime(Mark2);
        repeat
         if FindGas(x,y)then
           FreakEscape;
         WhileMining;
         if not (Pos('ed',BlackChatMessage)<>0)then
           Break;
        until(TimeFromMark(Mark2)>=12000);
        if TimeFromMark(Mark2)>=12000 then
        begin
          Writeln('Someting is wrong terminating script.');
          Terminatescript;
        end;
        Inc(Mined);
        MakeCompass('n');
        if InvFull then
          Break;
     end;
    end;


    procedure FindBank;

    var
    BankColor: TPointArray;
    BCols: TIntegerArray;

    begin
      if not Loggedin then Exit;
      MakeCompass('n');
      BCols:=[1626085,12892858];
      SyNow:=SymbolAccuracy;
      SymbolAccuracy:=0.5;
      if FindSymbol(x,y'bank')then
      begin
        SymbolAccuracy:=Synow;
        repeat
          Mouse(x,y,1,1,True);
          wait(30+random(40));
        until(FlagPresent);
        Flag;
      Else
        begin
          for i:=0 to High(Bcols)do
          begin
            FindColorsSpiralTolerance(x,y,BankColor,BCols[i],MMX1,MMY1,MMX2,MMY2,5);
            if Length(BankColor)>=1 then
            begin
              repeat
                Mouse(x,y,1,1,true);
                Wait(30+random(40));
              until(FlagPresent);
              FFlag(5);
              Exit;
            Else
              Begin
                Writeln('Cannot Find Bank.');
                Terminatescript;
              end;
          end;
        end;
    end.

    procedure Depositing;  //freakymonkey

    var Cols,Cols2,MCols: TPointArray;
    var 2DMCols: T2DPointArray;
    var cx,cy,mx,my,Col,Col2: integer;
    var slot2: TBox;

    begin
      if FindDTM(Bank,x,y,MSX1,MSY1,MSX2,MSY2)then  //needa make a DTM of it
      begin
        Col:= GetColor(x,y);
        Col2:=GetColor(x+3,y+3);
        FindColorsSpiralTOlerance(cx,cy,Cols,Col,MSX1,MSY1,MSX2,MSY2,5);
        FindColorsSpiralTolerance(mx,my,Cols2,Col2,MSX1,MSY1,MSX2,MSY2,5);
        MCols:=CombineTPA(Cols,Cols2);
        2DMCols:=TPAToATPA(Mcols,20);
        for i:= 0 to High(2DMCols)do
        begin
          MiddleTPAEx(2dMcols[i],x,y);
          wait(300+random(400));
          if isuptext('ank')then
            Break;
        end;
        repeat
          Mouse(x,y,0,0,false);
          Wait(300+random(400));
          if ChooseOption('pen')then
            Break;
        until(false);
        Wait(400+Random(300));
        if BankScreen then
        begin
          Mined:=Mined+inttostr(CountDTMInInv(Iron));
          for i:=1 to 28 do
          begin
            slot2:=InvBox(i);
            if FindDTM(Iron,x,y,slot2.x1,slot2.y1,slot2.x2,slot2.y2)then
            begin
              Mouse(x,y,1,1,false);
              wait(100+random(500));
              if ChooseOption('All')then
                Break;
            end;
         end;
         CloseBank;
      end;
    end;

    procedure WalkBack;

    begin
      Writeln('Walking Back');
      Makecompass('n');
      if not FRadialWalkEx(3563613,340,0,60,2)then
        if not FRadialWalkEx(4021062,15,60,60,2)then
         if not FRadialWalkEx(3431766,15,80,60,2)then
           Exit;
     if FRadialWalkEx(3629659 ,0,8,70,2)then
       if FRadialWalkEx(3106407,2,22,73,2)then
         if FRadialWalkEx(VarrockRoadColor,14,33,63,2)then
             if FindSymbol('bank')then
     begin
       Mouse(x,y,1,1,true);
       FFLag(5);
     Else
       begin
         Writeln('Radial walk did not work.');
         Terminatescript;
       end;
       MakeCompass('e');
       MakeANgle(False);
       Depositing;
    end;

    function NumPeopleObj(Color: integer): Integer;

    WColor: TPointArray;
    WWcolor: T2DPointArray;
    L,LL: Integer;

    begin
      FindColorsSpiralTolerance(x,y,WColor,color,560,45,693,122,5);
      L:=GetArrayLength(Wcolor);
      if not L>2 then
      begin
       Result:=0;
       Exit;
      end;
      WWColor:=SplitTPA(WColor,1);
      LL:=GetArrayLength(WWColor);
      Result:=LL;
    end;

    function REnergyLeft: Integer;

    AllTed: String;

    begin
       AllTed:=TrimOthers(GetTextAtEx(640,442,5,SmallChars,False,True,0,0,39167,6,
                          True,tr_Digits);
       if not Allted='' then
         Result:=StrToInt(AllTed);
    end;

    begin

    //Here's when I got bored :D

    FreaksAlcher

    Probably the worst out of mine lol but ironically i got the farthest...

    SCAR Code:
    program FreaksAlcher;
    {.include SRL/SRL.scar}

    {=================================================}
    {================FREAKS ALCHER====================}
    {1.What You're Alching Must Be In Note Form In Your Inventory!
    {2.You Can Use Either Runes or Staves!
    {3.Will Add An Auto Responder, Antiban, and AntiRandom Soon!}



    var
    x,y,LevelReq,LevelIncrease,LevelIncrease2,CR,CS: integer;
    Alched, Note: integer;

           {SRL ID AND PASS}
    {=================================================}
    const

    SRLIdentification=''; //SRL Stats ID
    SRLPass='';//SRL Stats Password

    {=================================================}

    Procedure DeclarePlayers;
    begin
      HowManyPlayers  :=1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer:=0;

      Players[0].Name :=''; //Username For Runescape
      Players[0].Pass :=''; //Password For Runescape
      Players[0].Nick :='';  //Three Words From Your Username
      Players[0].Active:=True; //If This Player Is Active
      Players[0].Booleans[0]:=True;//Use Staff?
      Players[0].Booleans[1]:=False;//Use Runes?
      Players[0].Integers[0]:=1000;//How Many To Alch Before Logging Out/Switching Chars?
      Players[0].Integers[1]:=50;//Proggie Every How Many Alchings?
      Players[0].Strings[0]:='Yew LongBow';//What To Alch?(Don't Really Have To Spell It Correctly.
      //Add More Players If You Wish
         
         
       Writeln('You are using '+inttostr(howmanyplayers)+' player[s]');
       Writeln('Good Luck');

       MouseSpeed:=25;//Adjust If You Want.

    end;

    {==========================================================================}
    {***************Don't Touch Under This*************************************}
    {***********Unless You Know What You're Doing!*****************************}
    {==========================================================================}

    function CheckLIncrease(skill:string): boolean;

    var
    Doit2:integer;
    LevelIncrease2: integer;

    begin
      Doit2:=GetSkillInfo(skill,false);
      if Doit2>levelincrease then
      begin
        Writeln('Gained a level. Congratz.');
        Result:=True;
      end else
        Result:=False;
      Doit2:=LevelIncrease2;
    end;


    function LevelCheck(skill:string):boolean; //freakymonkey

    var
    Doit: integer;

    begin
      Doit:=GetSkillInfo(skill,false);
      if (Doit)<(LevelReq)then
      begin
        WriteLn('You dont have the appropriate level to craft this type of leather');
        Result:=False;
        TerminateScript;
      end else
      begin
        Writeln('Your '+skill+' Level is '+IntToStr(GetSkillInfo(skill,false)));
        LevelIncrease:=Doit;
        Result:=True;
      end;
    end;

    function ChangeMusic: boolean;

    begin
      Gametab(MusicGT);//change
      MouseBox(coords);//change
      GetMousePos(x,y);
      if FindColorTolerance(x,y,color,coords,250)then//change
      begin
        Mouse(x,y,1,1,true);//
        Result:=True;
      end;
    end;



    function GetAlchColor: Boolean;

    var
    u: integer;
    FOund: boolean;

    begin
     Gametab(6);
      if GetColor(570,364)=849658 then
       begin
        Result:=True;
      end else
       begin
         repeat
           if getcolor(517+u,364+u)=71705 then
           begin
             Found:=True;
             Result:=False;
           end;
          u:=u+1;
         until(u=5)or (Found);
        if u=5 then
        begin
          Result:=False;
       end;
    end;


    function FindFireStaffUptext: boolean;

    begin
      if Players[0].Booleans[0]=True then
      begin
        Gametab(5);
        if FindColorTolerance(x,y,1913317,571,290,604,310,250)then
        begin
          Mmouse(573,292,1,1);
          if IsUpText('Staff of')then
          begin
            Writeln('The Staff of Fire is equiped');
            Result:=True;
          end;
        end else
          begin
            Writeln('Staff of Fire is not equiped');
            Result:=False;
          end;
       end;
    end;

    function FindFireRune(x,y: integer): boolean;

    begin
      if Players[0].Booleans[1] then
      begin
        GameTab(4);
        if FindColorTolerance(x,y,1451433,MIX1, MIY1, MIX2, MIY2,5)then
        begin
          MMouse(x,y,1,1);
          if isuptext('ire Rune')then
          begin
            Writeln('There are fire runes present');
            GetMousePos(x,y);
            Result:=True;
          end else
            begin
              Writeln('We cannot find the fire runes');
              Result:=False;
            end;
        end;
      end;
    end;

    function FindNatureRune: boolean;

    begin
      Gametab(4);
      if FindColorTOlerance(x,y,1543186,MIX1,MIY1,MIX2,MIY2,250)then
      begin
        MMouse(x,y,1,1);
        if Isuptext('ature Rune')then
        begin
          Writeln('Found nature rune.');
          Result:=True;
        end else
          result:=False;
      end;
    end;

    function FindNotedItem(x,y:integer): boolean;

    var
    notecol: TpointArray;
    CTS3,e: integer;
    quick2: integer;

    begin
      CTS3:= GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      Gametab(4);
      FindColorsSpiralTolerance(x,y,notecol,9944781,MIX1, MIY1, MIX2, MIY2,250);
      for E:=0 to High(notecol)do
      begin
        Quick2:=GetArrayLength(notecol);
        if quick2>=3 then
        begin
          Writeln('We have found the noted'+players[0].strings[0]+'!');
          GetMousePos(x,y);
          Result:=True;
        end;
        if Quick2<3 then
        begin
          WRiteln('We have not found the noted'+ players[0].strings[0]+'!');
          Result:=False;
        end;
      end;
    end;

    function InAlchFindNoted: boolean;

    begin
      Note := DTMFromString('78DA6394606060E06540010B27E7806946289' +
           'F5105480833A001465435AA40828F08351C04D4C8000976026A24' +
           '8830871B48281050C309246409A8E1011242F8D500000ADC0329');
      Gametab(4);
      if FindDTM(Note,x,y,MIX1,MIY1,MIX2,MIY2)then
      begin
        Writeln('Noted '+players[0].strings[0]+' found!');
        FreeDTM(Note);
        Result:=True;
      end else
        begin
          FreeDTM(note);
          Result:=False;
        end;
    end;

    procedure SetupRS; //Needs a lotta work!

    var
    Click,Click2,Click3 : boolean;
    Click4,Click5: boolean;

    begin
      LevelReq:=55;
      if not LoggedIn then
        LoginPlayer;
      Writeln('Logged in');
       LevelCheck('Magic');
       if Players[0].Booleans[0]=True then
       begin
        if FindStaffInMS then
          Click:=True;
        if FindFireStaffUpText then
           Click2:=True;
       end else
        begin
         Writeln('Cannot Find Fire Staff!');
         nextplayer(false);
         SetupRS;
        end;
       if Players[0].Booleans[1]=True then
       begin
        if FindFireRune(x,y) then
          Click3:=True;
       end else
         begin
           Writeln('Cannot Find Rune!');
           nextplayer(false);
           SetupRS;
         end;
        if FindNotedItem(x,y) then
        begin
          Click4:=True;
        end else
          begin
            Writeln('Cannot Find noted Object.');
            Logout;
            nextplayer(false);
            SetupRS;
          end;
        if GetAlchColor then
        begin
          Click5:=True;
        end else
          begin
            Writeln('You either do not have the level or runes to perform this spell.');
            nextplayer(false);
            SetupRS;
          end;
       SetChat('off',2);
         SetChat('on',3);
       SetAngle(true);
       if Click and Click2 and Click3 and Click4 and Click5 then
       begin
         Writeln('All is going smoothly so far.');
       end else
         begin
           nextplayer(false);
           SetupRS;
         end;
         
    end;

    function CoinAmountPerAlch: integer;

    begin
      if CR=1 then
      begin
        Gametab(4);
        CS:=CoinAmount('inventory');
        Writeln('Recording the amount of money per alch.');
        Result:=CS;
      end;
    end;

    procedure Alch;

    var
    SX,SE,TR,g,IT2,ACOl: integer;
    animatecol: tpointarray;

    begin
     If not InAlchFindNoted then
     begin
       Writeln('We have run out of things to alch.');
       Writeln('Switching players.');
       nextplayer(false);
     end;
     CheckLIncrease('Magic');
     Gametab(6);
     if CR=1 then
     begin
       IT2:=CoinAmountPerAlch;
       WRiteln('You Get '+inttostr(IT2)+' gp per '+players[0].strings[0]);
     end;
     if CR=0 then
       CR:=CR+1;
     if GetAlchColor then
      begin
        repeat
          SX:=SX+1;
          MouseBox(558,353,580,369,1);
        until(FIndColorTolerance(x,y,3424328,560,367,626,403,5))or (SX=30);
        if SX=30 then
        begin
          Writeln('Something is wrong...switching players..');
          Nextplayer(false);
        end;
        if FindnotedItem(x,y) then
        begin
          Writeln('Starting to alch.');
          MMouse(x,y,1,1);
          if isuptext('Cast')then
          begin
            Mouse(x,y,1,1,true);
            SetArraylength(Animatecol,High(AnimateCol));
            FindColorsTolerance(Animatecol,6525590,203,126,284,182,4);
            ACOL:=GetArrayLength(AnimateCol);
          end;
        end;
        for g:=0 to High(AnimateCol)do
        begin
          if ACOL>=3 then
          begin
            Writeln('FOund Animation');
            Writeln('Continuing...');
            Alched:=Alched+1;
            ReportVars[0]:=ReportVars[0]+1;
          end;
        end;
        if ACOL<=2 then
        begin
          TR:=TR+1;
          if TR=4 then
            begin
              Writeln('We have missed recording the color animation when alching 4 Times!');
              Writeln('Switching players as a safety precaution.');
              nextplayer(false)
            end;
        end;
     end;
    end;


    procedure Proggie;

    begin
      if Alched mod Players[0].Integers[1]=0 then
      begin
        Writeln('==================FREAKS AUTO=======================');
        Writeln('Alched          '+players[0].strings[0]+'s');
        Writeln('Alched          '+inttostr(Alched)+'times');
        Writeln('Alched For      '+TimeRunning);
        if CheckLIncrease('magic')then
        Writeln('Increase        '+inttostr(LevelIncrease2)+' level[s]!');
        Writeln('================THANKS FOR USIN IT==================');
      end;
    end;

    procedure LosCreditos;

    begin
      Writeln('Thanks to WhoCares357 For Helping Me Whenever I Needed It!');
      Wait(2000);
      writeln('Enjoy.');
      ClearDebug;
    end;

    {=======================THE WONDERFUL MAIN LOOP===============================}
    {*****************************************************************************}

    begin
      SetupSRL;
      ScriptId:='829';
      SRLID:=SRLIdentification;
      SRLPASSWORD:=SRLPASS;
      LosCreditos;
      if players[0].booleans[0] and
         players[0].booleans[1] then
      begin
        WRiteln('You cannot use both runes and staff...Choose one...');
        Terminatescript;
      end;
      ActivateClient;
      SetupRS;
      repeat
        Alch;
        Proggie;
        if CR=Players[0].Integers[0] then
          NextPlayer(False);
      until(not LoggedIn);
       if not LoggedIn then
       begin
         Writeln('The Script Has Logged Out. Stopping the script.');
         Proggie;
         TerminateScript;
       end;
    end.

    MasterFarmerThiever

    SCAR Code:
    program Thiever;
    {.include SRL/SRL.scar}

    var
    Steal: Integer;
    x,y: Integer;

    procedure FindMastaFarmer(x,y: Integer);

    var
    Click: Boolean;
    Farmer1,Farmer2: TPointArray;
    MixFarmer: TPointArray;
    FFarmer: T2DPointArray;

    begin
      x:=MSCX; y:=MSCY;
      FindColorsSpiralTolerance(x,y,Farmer1,{col}, MSX1,MSY1,MSX2,MSY2,5);
      FindColorsSpiralTolerance(x,y,Farmer2,{col}, MSX1,MSY1,MSX2,MSY2,5);
      MixFarmer:=CombineTPA(Farmer1,Farmer2);
      FFarmer:=SplitTPA(MixFarmer,2);
      if GetArrayLength(FFarmer)>0 then
      begin
        writeln('Found.');
        for i:=0 to High(FFarmer)do
        begin
          MMouse(FFarmer[i].x,FFarmer[i].y,1,1);
          wait(200+random(300));
          if isuptextmulticustom(['aster','armer','Farm'])then
            Break;
          if i= High(FFarmer)then
          begin
            Result:=False;
            exit;
          end;
        end;
        GetMousePos(x,y);
        Result:=True;
      end else
        begin
          writeln('Could not find Master Farmer colors!');
          result:=False;
          exit;
        end;
    end;

    function FindBank2(x,y: Integer): Boolean;

    begin
      Result:= FindSymbol(x,y,'bank');
      if not Result then
      begin
        Result:=True;
        if FindColorSpiralTolerance(x,y,LoadSymbolBitmapColor('bank'),MMX1,MMY1,MMX2,MMY2,5)then
          Exit;
          if FindColorTolerance(x,y,LoadSymbolBitmapColor('bank'),MMX1,MMY1,MMX2,MMY2,5)then
            Exit;
            if FindColorSpiralTolerance(x,y,GetSymbolCOlor('bank'),x,y,LoadSymbolBitmapColor('bank'),MMX1,MMY1,MMX2,MMY2,5)then
              Exit;
              Result:=FindColorTolerance(x,y,GetSymbolColor('bank')x,y,LoadSymbolBitmapColor('bank'),MMX1,MMY1,MMX2,MMY2,5);
      end;
    end;

    function SituateBank: Boolean;

    begin
      Result:=False;
      if FindBank2(x,y) then
        if MFNF(x,y,1,1)then
          if f_fflag(5+random(15))then
            Result:=True;
    end;

    function OpeningBank: Boolean;

    begin
      Result:=False;
      if OpenBankFast('db')then
        if PinScreen then
          InPin(IntoStr(Pin));
      if BankScreen then
        Result:=True;
    end;

    function WalkIt(Color,StartRadial,EndRadial,Radius,Xmod,Ymod,Tolerance,flag: Integer): Boolean;

    var
    TPA: TPointArray;
    TTPA: T2DPointArray;

    begin
      RadialWalkEx(TPA,x,y,Color,Tolerance,StartRadial,EndRadial,Radius,Xmod,Ymod);
      if not getarraylength(TPA)>0 then
        Result:=True;
      if Result then
      begin
        TTPA:=SplitTPA(TPA,2);
        SortATPASize(TTPA,true);
        MiddleTPAEx(TTPA[0],x,y);
        if MFNF(x,y,2,2)then
          Result:=f_FFlag(flag);
      end;
    end;

    function ChooseSteal: Boolean;

    begin
      Result:=False;
      if not isuptextmulticustom(['teal','eal','ast','arm'])then
        Exit;
      while not ChooseOption('teal')do
      begin
        mouse(x,y,0,0,false);
        Wait(300+random(400));
      end;
      Result:=True;
    end;

    function FindBirdies: Boolean;

    var
    TPA1,TPA2: TPointArray;
    MTPA: TPointArray;

    begin
      Result:=False;
      FindColorsSpiralTolerance(x,y,TPA1,{col},MSX1,MSXY1,MSX2,MSY2,5);
      FindColorsSpiralTolerance(x,y,TPA2,{col},MSX1,MSY1,MSX2,MSY2,5);
      MTPA:=CombineTPA(TPA1,TPA2);
      if not GetArrayLength(MTPA)>1 then
        Exit;
      Writeln('Farmer hit us.');
    end;

    function NeedFood: Boolean;

    begin
      Result:=False;
      if GetMMLevels('hp',hp)= Red then
        Result:=True;
    end;

    function EmptyInvEntirely: Boolean;

    begin
      Result:=False;
      if BankScreen then
        DepositAll;
      if InvEmpty then
        Result:=True;
    end;

    function CheckColorFood: Boolean;

    var
    FoodTPA: TPointArray;
    FFoodTPA: T2DPointArray;

    begin
      Result:=False;
      if BankScreen then
      begin
        Fixbank;
        FindColorsSpiralTolerance(x,y,FoodTPA,FoodColor,MSX1,MSY1,MSX2,MSY2,250);
        FFoodTPA:= SplitTPA(FoodTPA,2);
        SortATPASize(FFoodTPA,true);
        for i:=0 to High(FFoodTPA)do
        begin
          MMouse(FFoodTPA[0][i].x,FFoodTPA[0][i].y,2,2);
          Wait(40+random(300));
          if isuptext(uptext)then
            Break;
          if i=High(FFoodTPA) then
            Exit;
        end;
        while not Result do
        begin
          GetmousePos(x,y);
          Mouse(x,y,0,0,false);
          Wait(300+random(300));
          if chooseoption('5')then
            Result:=True;
        end;
      end;
    end;

    function EatFood: Boolean;

    var
    slot: Integer;
    FB: TBox;

    begin
      Result:=False;
      GameTab(4);
      if invempty then
        Exit;
      for slot:=1 to 27 do
      begin
        FB:= Invbox(slot);
        x:= FB.x1+FB.x2/2+random(3); y:= FB.y1+FB.y2/2+random(3);
        MMouse(x,y,2,2);
        Wait(300+random(300));
        if isuptext('Eat')then
          Break;
        if slot=27 then
        begin
          Writeln('No Food Left.');
          Exit;
        end;
      end;
      GetMousePos(x,y);
      Mouse(x,y,0,0,true);
      Result:=True;
    end;

    function f_FFlag(Dist: Integer):Boolean; //Peforms Randoms Check

    FTPA: TPointArray;
    Temp: Integer;
    FPoint: Tpoint;

    begin
      Result:=False;
      FindColorsSPiralTolerance(MMCX,MMCy,FTPA,255,MMX1,MMY1,MMX2,MMY2,5);
      if not getarraylength(FTPA)>0 then
        exit;
      FPoint.x:= MMCX; FPoint.y:= MMCY;
      SortTPAFrom(FTPA, FPoint);
      if GetColor(FTPA[0].x,FTPA[0].y)=255 then
      while (not Distance(FTPA[0].x, FTPA[0].y,FPoint.x, FPoint.y)>=Dist) do
      begin
        FindNormalRandoms;
        FindInventoryRandoms;
        Wait(1);
      end;
      Result:=True;
    end;

    procedure StealLoop: boolean;

    var
    Time: String;

    begin
      repeat
        Time:=GetSystemTime;
        if FindMastaFarmer(x,y)then
          if ChooseSteal then
            Wait(200+Random(200));
          if not FindBirdies then
            Inc(Steal);
          if CheckHP then
            if not EatFood then
            begin
              Writeln('No More Food.');
              LogOut;
            end;
          if TimeTo>=Time then
          begin
            Writeln('Done.');
            Logout;
          end;
      until(not Loggedin)or CheckHP or InvFull
      if not Loggedin then
        Terminatescript;
      GoBack;
    end;

    function ClickBankSymbolRadians(StartRadial,EndRadial,Radius,,Tolerance): Boolean;

    var
    TPA: TPointArray;
    TP: TPoint;

    begin
      TP.x:=MMCX;
      TP.y:=MMCY;
      RadialWalkEx(TPA,MMCX,MMCY,GetSymbolColor(x,y,'bank'),Tolerance,StartRadial,EndRadial,Radius);
      if not GetArrayLength(TPA)>0 then
      begin
        RadialWalk(GetSymbolColor(x,y,'bank'),StartRadial,EndRadial,Radius,1,1);
        Exit;
      end;
      SortTPAFrom(TPA,TP);
      if MFNF(TPA[0].x,TPA[0].y,1,1)then
        Result:=f_fflag(5+random(4));
    end;


    function GoForth: boolean;

    begin
      Result:=True;
      if not WalkIt(RoadColor,297,310,72,1,1,5,5+random(15))then
        if not WalkIt(RoadCOlor,290,305,75,1,1,5,5+random(15))then
          Result:=False;
    end;

    function GoBack: boolean;

    begin
      Result:=True;
      if not WalkIt(
        if not WalkIt(
        begin
          Result:=False;
          Exit;
        end;
      if not FindBank2(x,y)then
      begin
        Result:=False
        Exit;
      end;
    end.

    Seers Efficiently Efficient Ravaging Script (SEERS for short )

    SCAR Code:
    program SEERS; //Seers Energy Efficient Ravaging Script
    {.include SRL/SRL.scar}
    {.include SLR/SRL/Misc/Users.scar}
    {.include SRL/SRL/Skill/Woodcutting.scar}


    function AtBank: boolean;

    begin
      if not loggedin then exit;
      if not TrySymbol('bank')then
      begin
        writeln('Bank not found.');
        result:=false;
        exit;
      end;
      result:=MouseFlag(x,y,1,1);
      writeln('at bank.');
    end;

    function BackToBank: Boolean;

    begin
      if not loggedin then exit;
      if not TrySymbol('bank')then
      begin
        writeln('Bank not Found.');
        Result:=False;
        exit;
      end;
      Result:=MFNF(x,y,1,1);
    end;

    function CountPeopleDist(Dist: integer): integer;

    PCol: TPointArray;
    PPCol: T2DPointArray;
    MTPoint: TPoint;
    MMCenter: TPoint;

    begin
      MakeCompass('N');
      FindColorsSpiralTolerance(MMCX,MMCY,PCol,{col},MMX1,MMY1,MMX2,MMY2,5);
      PPCol:=SplitTPA(PCol,1);
      if not getarraylength>1 then
      begin
        Result:=0;
        Exit;
      end;
      for i:=0 to High(PPcol)do
      begin
        MTPoint:=MiddleTPA(PPcol[i]);
        if Distance(MTPoint.x,MTpoint.y,MMCX,MMCY)<=Dist then
          Inc(Result);
      end;
      Result:= Dec(Result);
    end;


    function f_FFlag(Dist: Integer):Boolean; //Peforms Randoms Check

    FTPA: TPointArray;
    Temp: Integer;
    FPoint: Tpoint;

    begin
      FindColorsSPiralTolerance(MMCX,MMCy,FTPA,255,MMX1,MMY1,MMX2,MMY2,5);
      if not getarraylength(FTPA)>0 then
      begin
        result:=false;
        exit;
      end;
      FPoint.x:= MMCX; FPoint.y:= MMCY;
      SortTPAFrom(FTPA, FPoint);
      if GetColor(FTPA[0].x,FTPA[0].y)=255 then
      while (not Distance(FTPA[0].x, FTPA[0].y,FPoint.x, FPoint.y)=Dist) do
      begin
        FindNormalRandoms;
        FindInventoryRandoms;
        Wait(1);
      end;
      Result:=True;
    end;

    function TrySymbol(Symbol: String): Boolean;

    begin
      Result:=False;
       if not FindSymbol(x,y,Symbol)then
        if not FindColorSpiralTolerance(x,y,GetSymbolColor(Symbol),MMX1,MMy1,MMX2,MMY2,5)then
          if not FindColorSpiralTolerance(x,y,LoadSymbolBitmapColor(Symbol),MMX1,MMY1,MMX2,MMY2,5)then
            Exit;
      Result:=MFNF(x,y,1,1);
    end;
     

    procedure StartCut;

    T1Col: TPointArray;
    T2COl: TPointArray;
    MTCol: TPointArray;
    STCol: T2DPointArray;
    amount, Mark: Integer;

    begin
      if FlagPresent then
        f_Flag(0);
      MakeCompass('n');
      SetAngle(true);
      FindColorsSpiralTolerance(MSCX,MSCY,T1COl,{col},MSX1,MSY1,MSX2,MSY2,5);
      FindCOlorsSpiralTolerance(MSCX,MSCY,T2Col,{col},MSX1,MSY1,MSX2,MSY2,5);
      MTCOL:=CombineTPA(T1Col,T2COl);
      if getarraylength(MTCol)>0 then
      begin
        STCol:=TPAtoATPAEX(MTCol,10,10);
        SortATPASize(STCOl,true);
        MiddleTPAEx(STCol[0],x,y);
        MMouse(x,y,1,1);
        wait(300+random(400));
        if isuptextmulticustom(['ree','ee','aple','Maple','hop'])then
        begin
          writeln('Tree found.');
          MarkTIme(Mark);
          Mouse(x,y,0,0,true);
        end else
          begin
            Writeln('Couldnt find tree.');
            Terminatescript;
          end;
          gametab(4);
          repeat
            amount:=countdtminv(log);
            Wait(30+random(30));
            FindInventoryRandoms;
            FindNormalRandoms;
            if FindEnt(x,y,true)or FindStump or FindBirdsNest then
              NextTree;
            if countdtminv(log)>amount then
              writeln('Got a log.');
          until(invfull) or (TimeFromMark(Mark)>=120000);
          IncEx(Logs,CountDTMInv(Logs));
          BackToBank;
          Exit;
      end;
      writeln('Couldnt find tree color.');
      terminatescript;
    end;

    function CheckAxe: Boolean;

    begin
      GameTab(6);
      Mousebox(blah,3);
      Wait(300+random(300));
      if isuptextmulticustom(['xe','Axe'])then
        if not isuptextmulticustom(['rok','Brok','ken'])then
        begin
          Result:=True;
          Exit;
        end;
      Writeln('Axe either not found or broken.');
      Result:=False;
      exit;
    end;

    function NextTree;

    NT1Col, NT2Col: TPointArray;
    NMTCol: TPointArray;
    DTCol: T2DPointArray;
    DPCol: TPoint;

    begin
      Result:=False;
      FindColorsSpiralTolerance(MSCX,MSCY,NT1Col,{col},MSX1,MSY1,MSX2,MSY2,5);
      FindCOlorsSpiralTolerance(MSCX,MSCY,NT2Col,{col},MSX1,MSY1,MSX2,MSY2,5);
      NMTCOL:=CombineTPA(NT1Col,NT2COl);
      DTCol:= TPAtoATPAEx(NMTCol,20,20);
      SortATPASize(DTCol,true);
      DPCol:=MiddleTPA(DTCol[0]);
      SortATPAFromFirstPoint(DTCol,DPCol);
      for i:=0 to High(DPCol)do
      begin
        MMouse(x,y,1,1);
        Wait(300+random(400));
        if isuptextmulticustom(['ut','og','aple'])then
          Break;
        if i:= High(DPCol)then
        begin
          writeln('Could not find next tree.');
          exit;
        end;
      end;
      Mouse(x,y,0,0,true);
      while FlagPresent do
      begin
        FindNormalRandoms;
        Wait(1);
      end;
      Flag;
    end;


    function FindFlagColor(StartRadial: integer; EndRadial: Integer;Tolerance: Integer; Radius: integer): Boolean;
                       //checks if Flag made in area.
    Var
    TPA: TPointArray;

    begin
      FindColorsSpiralTolerance(MMCX,MMCy,TPA,255,MMX1,MMY1,MMX2,MMY2,5);
      FilterPointsPie(TPA,StartRadial,EndRadial,Radius-5,Radius+5,MMCX,MMCY);
      SortCircleWise(TPA,MMCX,MMCY,StartRadial,True);
      if GetColor(TPA[0].x,TPA[0].y)=255 then
        Result:=True;
    end;

    function ToTheMaples: Boolean;

    Var
    MTPA: TPointArray;
    MTTPA: T2DPointArray;
    D1Colors,D2Colors: TPointArray;
    MDColors: TPointArray;
    SMDColors:= T2DPointArray;

    begin
      Result:=False;
      if not loggedin then exit;
      if not atbank then exit;
      RadialWalkEx(MTPA,x,y,{col},5,340,10,50,1,1);
      if getarraylength(MTPA)>0 then
      begin
        setlength(MTA,getarraylength(MTPA));
        MTTPA:=splittpa(MTPA,2);
        SortaTPASize(MTTPA,true);
        MiddleTPAEx(MTPA[0],x,y);
        Mouse(x,y,1,1);
        Result:=FindFlagColor(330,15,5,50);
        if not Result then
        begin
          OpenDoor;
          TrySymbol;
          ToTheMaples;
        end;
      end;
    end;

    procedure Depositing;

    begin
      MakeCompass('N');
      if TrySymbol('bank')then
      begin
        OpenBankFast('seers');
        if BankScreen then
          if FindDTM(log,x,y,MIX1,MIY1,MIX2,MIY2)then
          repeat
            Mouse(x,y,1,1,false);
            Wait(300+random(200));
            if chooseoption('ll')then
              Break;
          until(false);
          if InvCount<5 then
            Exit;
      end else
        begin
          Writeln('Couldnt find bank.');
          terminatescript;
        end;
    end;

    procedure SetupRS;

    begin
      if not TrySymbol('bank')then
        Exit;
      for i:= 1 to 3 do
        SetChat('hide',i);
      Gametab(4);
    end;
       

    function OpenDoor: Boolean;

    begin
      if FindFlagColor(270,90,5,50)then
      begin
        MakeCompass('S');
        SetAngle(false);
        while FlagPresent do
        begin
          FindNormalRandoms;
          Wait(1);
        end;
        FindColorsSpiralTolerance(MSCX,MSCY,DColors,5340814,MSX1,MSY1,MSX2,MSY2,5);
        FindColorsSPiralTolerance(MSCX,MSCY,DColors,4417653,MSX1,MSY1,MSX2,MSY2,5);
        MDColors:=CombineTPA(D1Colors,D2COlors);
        if getarraylength(MDColors)>3 then
        begin
          SMDCOlors:= SplitTPA(MDcolors,3);
          SortATPASize(SMDColors,true);
          MMouse(SMDColors[0].x,SMDCOlors[0].y,1,1);
          Wait(50+random(600));
          if isuptext('pen')then
          begin
            Writeln('Door found.');
            Mouse(x,y,0,0,true);
            Result:=Wait(50+random(600));
            Exit;
          end;
        end else
         begin
           Writeln('Could not find door color.');
           Result:=False;
           Exit;
         end;
      end else
       begin
          Writeln('Could not find flag near door.');
          Result:=False;
       end;
    end;
    function FindCammyRoadColor: Integer;

    var
    TPA: Tpointarray;
    TTPA: T2DPointArray;

    begin
     FindColorsSpiralTolerance(MMCX,MMCY,tpa,FindRoadCOlor,MMX1,MMy1,MMX2,MMy2,5);
     if GetArrayLength(Tpa)>0 then
     begin
       SetLength(TPA, Getarraylength(TPA));
       TTPA:=SPlitTPA(Tpa,1);
       if GetArrayLength(TTPA)>1 then
       begin
         SetLength(TPA, Getarraylength(TTPA));
         SortaTPASize(TTPA,true);
         Result:=GetColor(TTPA[0][0].x, TTPA[0][0].y);
       Else
         Result:= RoadColor;
     Else
       Result:= RoadColor;
    end;

    begin
      ActivateClient;
      if not loggedin then
        LoginPlayer;
      SetupRS;
      if TrySymbol('bank')then
      begin
        if not CheckAxe then
        begin
          Writeln('No Axe.'):
          terminatescript;
        end;
        AtBank;
        for i:=0 to Players[CurrentPlayer].Integers[0]do
        begin
          ToThemaples;
          repeat
            NextTree;
            FindNormalRandoms;
            FindInventoryRandoms;
            FTWait(2);
          until(InvFull)or not loggedin;
          if not loggedin then
          begin
            Writeln('Not Logged In.');
            termiatescript;
          end;
          BackToBank;
        end;
        if not Loggedin then
        begin
          Writeln('Not Logged In.');
          termiantescript;
        end;
        Writeln('Exceeded number of times to cut. Logging off and terminating.');
        while loggedin do
          Logout;
        Terminatescript;
      end else
        begin
          Writeln('Could not find bank.');
          terminatescript;
        end;
    end.

    FreaksLumbySpinner

    THis is my latest work and the one that I have the highest hopes for

    SCAR Code:
    program New;
    {.include SRL/SRL.scar}

    Var x,y: Integer;


    Procedure DeclarePlayers;
    begin
      HowManyPlayers  :=1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer:=0;

      Players[0].Name :=''; //Username For Runescape
      Players[0].Pass :=''; //Password For Runescape
      Players[0].Nick :='';  //Three Words From Your Username
      Players[0].Active:=True; //If This Player Is Active
      Writeln('You are using '+inttostr(howmanyplayers)+' player[s]');
      Writeln('Good Luck');

      MouseSpeed:=25;//Adjust If You Want.

    end;

    procedure SettingUp;

    begin
      ClearDebug;
      SetupSRL;
      ActivateClient;
      DeclarePlayers;
      if not Loggedin then
        LoginPlayer;
      MakeCompass('N');
      SetAngle(True);
    end;

    function FindBanking: Boolean;

    Var Points: TPointArray;
    Var Pointing: TPoint;

    begin
      if not FindSymbol(x,y,'bank')then
      begin
        FindColorsTolerance(Points,{col},MSX1,MSY1,MSX2,MSY2,5);
        Pointing:= MiddleTPA(Points);
       
        t:= GetSystemTime+5000;
        while not FlagPresent or not (GetSystemTime>t) do
        begin
          Mouse(Pointing.x,Pointing.y,2,2,true);
          Wait(30+random(300));
        end;
       
        FFlag(0);
        Exit;
      end;
      FFlag(0);
    end;

    function OpeningBank: Boolean;

    Var Bank: TPointArray;
    Var Bank2: TPointArray;

    begin
      FindColorsTolerance(Bank,{col},MSX1,MSY1,MSX2,MSY2,5);
      if GetArrayLength(Bank)>0 then
      begin
        Bank2:=SplitTPA(Bank,3);
        SortATPASize(Bank2,True);
        MMouse(Bank2[0][0].x, Bank2[0][0].y, 1,1);
        if not IsUpText('pen') then
          Exit;
        begin
          Mouse(x,y,1,1,false);
          Wait(20+random(200));
          ChooseOption('pen');
        end;
      end;
     
      if FindObjTPA(x, y,{col}, 5, -1, 2, 2, 1, ['pen','ank'])then
      begin
        Mouse(x,y,0,0,false);
        Wait(20+random(200));
        ChooseOption('pen');
      end;
    end;

    procedure FindingFlax;

    begin
      if PinScreen then
        InPin(PinNumber);
      if BankScreen then
      begin
        FixBank;
        if FindColorTolerance(x,y,{col flax},MSX1,MSY1,MSX2,MSY2,250)then
        begin
          Mouse(x,y,0,0,false);
          Wait(RandomRange(300,600));
          ChooseOption('All');
        else
          begin
            writeln('Cant find flax.');
            TerminateScript;
          end;
       CloseBank;
       Exit;
      end;
      Writeln('Couldnt find bank screen.');
    end;

    Procedure GoToStaircase;

    Var StairPoints: TPointArray;
    Var i,t2, Stairs: Integer;
    Var s: String;

    begin
      MakeCompass('N');
      SetAngle(True);
      Stairs := DTMFromString('78DA63E463606050674001895A4C609A11CA6' +
           '71404122AA86ADEBD7BC7F00B590D3790D04455F3FEE537B83920' +
           '0C00437407C5');
      if DTMRotated(Stairs,x,y,MMX1,MMX2,MMY2,MMX2) then
        if rs_onminimap(x,y)then
        begin
          Mouse(x,y,0,0,true);
          Wait(RandomRange(300,600));
          FFlag(0);
        end;
        FindColorsSpiralTolerance(x, y, StairPoints, 4280671, MSX1, MSY1, MSX2, MSY2, 5);
        t2:= GetArrayLength(StairPoints);
        SetArrayLength(StairPoints, t2);
        for i:=0 to t2-1 do
        begin
          MMouse(StairPoints[i].x, StairPoints[i].y, 0, 0);
          Wait(RandomRange(300,600));
          s:= rs_getuptext;
          if not Pos('air',s)<>0 then
            Break;
        end;
        if i = t2-1 then
        begin
          Writeln('Could not find Stairs.')
          Terminatescript;
        end;
        x:= StairPoints[i].x;
        y:= StairPoints[i].y;
        Mouse(x,y,0,0,true);
        FreeDTM(Stairs);
    end;

    function FindWheelSymbol: Boolean;

    begin
      if FindSymbol(x, y, 'SpinningWheel')then
      begin
        Mouse(x,y,0,0,true);
        Wait(RandomRange(300,600));
        FFlag(0);
        Exit;
      end;
      If FindSymbol(x,y, 'Quest')then
        Continue;
      if FindColorTolerance(x, y, {col}, MMCX1, MMCY1, MMCX2, MMCY2, 5)then
        if rs_OnMinimap(x,y)then
        begin
          Mouse(x, y, 0, 0, true);
          FFlag(0);
          Writeln('Found.');
        end;
    end;

    function FindWheel: Boolean;

    Var WheelPoints: TPointArray;
    Var CTS2: Integer;
    Var s2: String;

    begin
      CTS2:= GetColorToleranceSpeed;
      FindColorsTolerance(WheelPoints, {col}, MSX1, MSY1, MSX2, MSY2, 5);
      for i:= 0 to High(WheelPoints)-1 do
      begin
        MMouse(WheelPoints[i].x, WheelPoints[i].y, 0, 0);
        Wait(RandomRange(300,600));
        s2:= rs_getuptext;
        if not Pos('heel', s2)<>0 then
          Break;
      end;
      if i = High(WheelPoints) then
      begin
        Writeln('Could not find wheel.');
        Terminatescript;
      end;
      x:= WheelPoints[i].x;
      y:= WheelPoints[i].y;
      Mouse(x, y, 0, 0, true);
    end;

    function CountColorTBox(Point1: Integer; Point2: Integer; Color: Integer; DistEnc: Integer; Box: TBox): Integer;

    begin
      Box.x1:= Point1.x+DistEnc;
      Box.y1:= Point1.y+DistEnc;
      Box.x2:= Point2.x-DistEnc;
      Box.y2:= Point2.y-DistEnc;
      Result:= CountColor(Color, Box.x1, Box.y1, Box.x2, Box.y2);
    end;

    procedure ClickFlax;

    Var FlaxBox: TBox;
    Var FlaxArray: TPointArray;
    Var t4: Integer;

    begin
      if FIndColorTolerance(x, y, {col}, MSX1, MSY1, MSX2, MSY2, 5)then
        if CountColorTBox(x, y, {col}, 5, FlaxBox)>2 then
        begin
          FindColorsTolerance(FlaxArray, {col}, FlaxBox.x1, Flaxbox.y1, Flaxbox.x2, Flaxbox.y2, 5);
          t4:= GetArrayLength(FlaxArray);
          for i:= 0 to t4-1 do
          begin
            MMouse(FlaxArray[i].x, FlaxArray[i].y , 1, 1);
            Wait(RandomRange(300,600));
            if isuptext('lax')then
            begin
              Result:=ChooseOption('All');
              Break;
            end;
          end;
        end;
      Result:=false;
    end;

    function CountDTMInv(DTM: integer): Integer;

    Var
    Slot: Integer;
    DBox: TBox;

    begin
      if not logged in then exit;
      Gametab(4);
      for i:=1 to 28 do
      begin
        dbox:=invbox(slot);
        if FindDTM(DTM,x,y,slot.x1,slot.y1,slot.x2,slot.y2)then
          Inc(result);
      end;
    end;

    procedure WhileSpinning;

    Var z: Integer;

    begin
      Writeln('Starting to spin.');
      Gametab(4);
      z:=GetSystemTime+50000;
      while CountDTMInv(Flax)<28 or GetSystemTime<z do
      begin
        FindNormalRandoms;
        Wait(RandomRange(2,300));
      end;
    end;

    function BackToStaircase: Boolean;

    Var StairPoints2: TPointArray;
    Var i,t3,CTS: Integer;
    Var s2: String;

    begin
      MakeCompass('N');
      SetAngle(True);
      Stairs: DTMFRomString....
      if DTMRotated(Stairs,x,y,MMX1,MMX2,MMY2,MMX2) then
        if rs_onminimap(x,y)then
        begin
          Mouse(x,y,0,0,true);
          Wait(RandomRange(300,600));
          FFlag(0);
        end;
        CTS:=GetColorToleranceSpeed;
        ColorToleranceSpeed(2);
        SetColorSpeed2Modifiers(.0606,.014);
        FindColorsSpiralTolerance(x, y, StairPoints2, 7568253, MSX1, MSY1, MSX2, MSY2, 5);
        ColorToleranceSpeed(CTS);
        for i:=0 to High(StairPoints2)-1 do
        begin
          Mouse(StairPoints2[i].x, StairPoints2[i].y, 0, 0, left);
          Wait(RandomRange(300,600));
          s2:= rs_getuptext;
          if not Pos('air',s2)<>0 then
            Break;
        end;
        if i = High(StairPoints2)-1 then
        begin
          Writeln('Could not find Stairs.')
          Terminatescript;
        end;
        x:= StairPoints2[i].x;
        y:= StairPoints2[i].y;
        Mouse(x,y,0,0,false);
        Wait(randomrange(300,600));
        ChooseOption('Up');
    end;



    Procedure DBSRF;

    begin
      if BankScreen then
      begin
        FixBank;
        DepositAll;
        FindingFlax;
      end;
    end;

    begin
      SettingUp;
      FindBanking;
      OpeningBank;
      repeat
        FindingFlax;
        GoToStaircase;
        FindWheelSymbol;
        FindWheel;
        ClickFlax;
        WhileSpinning;
        BackToStaircase;
        FindBanking;
        OpeningBank;
        DepositingBS;
        DBSRF;
      until(not loggedin);
    end.

    THis is of course still in navity but it'll get there.

    For you newer scripters you can use all the ideas in here. You'll find that I didn't register them ;D. Steal all the ideas you want. Please, if these helped you in getting some ideas in some way plz tell me, I'd really appreciate it

  2. #2
    Join Date
    Oct 2007
    Location
    #srl
    Posts
    6,102
    Mentioned
    39 Post(s)
    Quoted
    62 Post(s)

    Default

    How old are these? Do you plan on ever finishing them all?

  3. #3
    Join Date
    Feb 2007
    Location
    Alberta,Canada
    Posts
    2,358
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Haha, i thought i was the only one that made scripts and got bored halfway through, really good coding though, they all look very well done.
    “Ignorance, the root and the stem of every evil.”

  4. #4
    Join Date
    Jan 2008
    Location
    Stanford, CA
    Posts
    329
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    We'll see, some were actually in BETA testing stage, until certain "Frustrating events" (new updates) in particular kinda changed my mind about some of them.

    I'm still planning on working with the Lumby Spinner though. Its on course (for the while)

    @bee ---Thank you. I empathize buddy. Making the script is the EASY part lol, testing is a bitch.

  5. #5
    Join Date
    Oct 2007
    Location
    #srl
    Posts
    6,102
    Mentioned
    39 Post(s)
    Quoted
    62 Post(s)

    Default

    Yeah I know what your saying, I have alot of incomplete ones to that never made it very far out of frustration. Although, I dont really think I knew what I was doing when I tried making them but, whatever lol. Anyways, if you want help with anything with any of those let me know, Im just looking for more experience.

  6. #6
    Join Date
    Jan 2008
    Location
    Stanford, CA
    Posts
    329
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    For sure dude. I've got a butt load of knowledge about functions but I'm way to lazy

  7. #7
    Join Date
    Oct 2007
    Location
    #srl
    Posts
    6,102
    Mentioned
    39 Post(s)
    Quoted
    62 Post(s)

    Default

    my MSN is dstmmetal@hotmail.com get at me!

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Add ranging to chicken killing scripts, or the cow killing scripts
    By canu44 in forum RS3 Outdated / Broken Scripts
    Replies: 0
    Last Post: 12-18-2007, 07:37 AM
  2. Antilogout/Autotalker (incomplete)
    By Dadeer in forum RS3 Outdated / Broken Scripts
    Replies: 2
    Last Post: 11-30-2006, 11:43 PM
  3. Solarwind's Tutorial Island Runner (very incomplete alpha)
    By solarwind in forum RS3 Outdated / Broken Scripts
    Replies: 34
    Last Post: 11-09-2006, 05:42 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
  •