Page 1 of 2 12 LastLast
Results 1 to 25 of 33

Thread: SRL Members Application Tool 2010

  1. #1
    Join Date
    May 2007
    Location
    NSW, Australia
    Posts
    2,823
    Mentioned
    3 Post(s)
    Quoted
    25 Post(s)

    Default SRL Members Application Tool 2010

    SRL Members Application Tool 2010

    The SRL Members Application Tool 2010 is an updated version of the previous simple members application tool. Ive decided to re make it and here is the end result.

    Script Includes
    • Easy and simple way to show how your script lines up with the SRL Member standards
    • Script calculates how many lines and characters your script has and marks you accordingly
    • User input setting which you put your post count and your attitude giving your the mark for the amount you contribute to the community
    • Own debug box showing everything you need and your result
    • Red and green colouring which displays how good your scritpt is
    • A basic percentage out of 100% for your script is given (Over 75 is good)
    • Fairly accurate


    How to use
    Firstly copy your script. Now run the SRL Members Application Tool 2010, now a form should show up. Paste your script into the Script Box clearly labelled and hit the generate mark button. Your result will show up in the debug and also on the form.

    Note This is just a tool to make you decide if you should apply for members. It does not guarantee you members!

    Change log
    Code:
    Version 0.02
    - Added FindTextMulti 
    - Added FindDTM to multi solution.
    
    Version 0.01
    - Release
    Preview

    Make sure you post any suggestions and errors

    Thanks

    ~ BobboHobbo

  2. #2
    Join Date
    Oct 2006
    Posts
    468
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Neat tool.

    Code:
    Add tdtmpointdef
    You should Apply for members if you havent cheated!
    [==================================]
    [=   Result: 91%
    [==================================]
    I'll check out tdtmpointdef, thanks!

  3. #3
    Join Date
    May 2007
    Location
    NSW, Australia
    Posts
    2,823
    Mentioned
    3 Post(s)
    Quoted
    25 Post(s)

    Default

    Quote Originally Posted by bbri06 View Post
    Neat tool.

    Code:
    Add tdtmpointdef
    You should Apply for members if you havent cheated!
    [==================================]
    [=   Result: 91%
    [==================================]
    I'll check out tdtmpointdef, thanks!
    You wouldnt really need Tdtmpointdef if you already have other forms of walking if im thinking of the right thing. tdtmpointdef is for DDTM's which are used for walking.

  4. #4
    Join Date
    Oct 2006
    Posts
    468
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I decided to incorporate them anyways as I had been looking for a more accurate bank finding procedure and they fit the task perfectly, works absolutely beautifully! +rep for this post and your tutorial on DDTMs, thanks a ton!

  5. #5
    Join Date
    May 2007
    Location
    NSW, Australia
    Posts
    2,823
    Mentioned
    3 Post(s)
    Quoted
    25 Post(s)

    Default

    Quote Originally Posted by bbri06 View Post
    I decided to incorporate them anyways as I had been looking for a more accurate bank finding procedure and they fit the task perfectly, works absolutely beautifully! +rep for this post and your tutorial on DDTMs, thanks a ton!
    Ill be looking forward to your application.

  6. #6
    Join Date
    Apr 2008
    Location
    Marquette, MI
    Posts
    15,252
    Mentioned
    138 Post(s)
    Quoted
    680 Post(s)

    Default

    Haha, this tool is awesome! This result was my Draynor script:

    PHP Code:
    Add fflag
    Add tdtmpointdef
    You should Apply 
    for members if you havent cheated!
    [==================================]
    [=   
    Result91%
    [==================================] 
    SCAR Code:
    if FindText('dtmrotated') and not FindText('freedtm') then
    You may want to add in 'FindDTM' as well as 'DTMRotated'.

  7. #7
    Join Date
    May 2007
    Location
    NSW, Australia
    Posts
    2,823
    Mentioned
    3 Post(s)
    Quoted
    25 Post(s)

    Default

    Quote Originally Posted by Coh3n View Post
    Haha, this tool is awesome! This result was my Draynor script:

    PHP Code:
    Add fflag
    Add tdtmpointdef
    You should Apply 
    for members if you havent cheated!
    [==================================]
    [=   
    Result91%
    [==================================] 
    SCAR Code:
    if FindText('dtmrotated') and not FindText('freedtm') then
    You may want to add in 'FindDTM' as well as 'DTMRotated'.
    I tried that it made it fail for some reason :S. Ill make a FindTextMulti one so there cant be fails .

  8. #8
    Join Date
    May 2008
    Posts
    1,345
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Code:
    Add tdtmpointdef
    Make sure include walking in your script!
    You should Apply for members if you havent cheated!
    [==================================]
    [=   Result: 88%
    [==================================]
    On my reflection soul wars script :P (which does, by the way, have walking - just not color walking). There aren't even any dtms in it, as far as I remember. You might want to fix that, if it's a bug and not my fault.

    Pretty good though!

    ~Sand

  9. #9
    Join Date
    Jan 2007
    Posts
    834
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I did both of my scripts, 91% on one and 80% on another. I entered with both scripts and did not make it both times.

  10. #10
    Join Date
    Feb 2009
    Location
    Hungary (GMT + 1)
    Posts
    1,774
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Not everything is about what you use but how you use.

  11. #11
    Join Date
    Oct 2006
    Posts
    500
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I like it.

    Spelling mistake in your screenie "ethier" -> "either"

  12. #12
    Join Date
    Dec 2007
    Posts
    2,766
    Mentioned
    2 Post(s)
    Quoted
    37 Post(s)

    Default

    I had DTMs Freed, yet it told me to make sure I freed them.

  13. #13
    Join Date
    May 2007
    Location
    NSW, Australia
    Posts
    2,823
    Mentioned
    3 Post(s)
    Quoted
    25 Post(s)

    Default

    Quote Originally Posted by Sabzi View Post
    Not everything is about what you use but how you use.
    Exactly, that solves JunkJ question xD. but calculating how its being used would be interesting. But there would be too many ways to go over to make it reliable.

  14. #14
    Join Date
    Feb 2009
    Location
    Hungary (GMT + 1)
    Posts
    1,774
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by BobboHobbo View Post
    Exactly, that solves JunkJ question xD. but calculating how its being used would be interesting. But there would be too many ways to go over to make it reliable.
    Yes, that was an answer for JunkJ and not a suggestion.
    That would be near impossible because there are several ways to use the things good. And the border between good and bad is very narrow.
    And even if you could write it there are still cases where the bad is betterand the good is worse. I hope you understand what I'm trying to say. For example for an easy task not the most complicated method is the best way and that would count as bad even if the method is quiet good. And so on and so on ...
    Last edited by Sabzi; 12-27-2009 at 10:06 PM.

  15. #15
    Join Date
    May 2007
    Location
    NSW, Australia
    Posts
    2,823
    Mentioned
    3 Post(s)
    Quoted
    25 Post(s)

    Default

    Quote Originally Posted by Sabzi View Post
    Yes, that was an answer for JunkJ and not a suggestion.
    That would be near impossible because there are several ways to use the things good. And the border between good and bad is very narrow.
    And even if you could write it there are still cases where the bad is betterand the [I]good[I]is worse. I hope you understand what I'm trying to say. For example for an easy task not the most complicated method is the best way and that would count as bad even if the method is quiet good. And so on and so on ...
    Yeah.. thats true. Alwell

  16. #16
    Join Date
    May 2007
    Location
    NSW, Australia
    Posts
    2,823
    Mentioned
    3 Post(s)
    Quoted
    25 Post(s)

    Default

    Quote Originally Posted by Sabzi View Post
    Yes, that was an answer for JunkJ and not a suggestion.
    That would be near impossible because there are several ways to use the things good. And the border between good and bad is very narrow.
    And even if you could write it there are still cases where the bad is betterand the [I]good[I]is worse. I hope you understand what I'm trying to say. For example for an easy task not the most complicated method is the best way and that would count as bad even if the method is quiet good. And so on and so on ...
    Yeah.. thats true. Alwell

    By the way im going to add your quote in the script

    "Not everything is about what you use but how you use."

  17. #17
    Join Date
    May 2008
    Posts
    1,345
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I think the use of post count in your score will turn out to be a double edged sword, of sorts. It will cause people to post more, yes, but it will also probably cause spam (hopefully not - but it might). Not only that, but it isn't accurate. Just because someone has a low post count does not mean they don't contribute. If I posted 100 meaningful, on-topic, helpful posts, and someone else posted 1000 useless, spam, completely offtopic, unhelpful posts, from what I gather, they'll receive a better score for the 900 extra posts. Know what I mean?

    ~Sand

  18. #18
    Join Date
    Oct 2006
    Posts
    468
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Sandstorm, the application values post count very little.

  19. #19
    Join Date
    May 2007
    Location
    NSW, Australia
    Posts
    2,823
    Mentioned
    3 Post(s)
    Quoted
    25 Post(s)

    Default

    Quote Originally Posted by Sandstorm View Post
    I think the use of post count in your score will turn out to be a double edged sword, of sorts. It will cause people to post more, yes, but it will also probably cause spam (hopefully not - but it might). Not only that, but it isn't accurate. Just because someone has a low post count does not mean they don't contribute. If I posted 100 meaningful, on-topic, helpful posts, and someone else posted 1000 useless, spam, completely offtopic, unhelpful posts, from what I gather, they'll receive a better score for the 900 extra posts. Know what I mean?

    ~Sand
    It gives you like 2 points if you have over 100 posts which isnt much..

  20. #20
    Join Date
    May 2008
    Posts
    1,345
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by BobboHobbo View Post
    It gives you like 2 points if you have over 100 posts which isnt much..
    Ah. I didn't really have time to look over the code, so I assumed it added more points the higher your post count.

    ~Sand

  21. #21
    Join Date
    May 2007
    Location
    Sydney, Australia (Faggot Region)
    Posts
    1,465
    Mentioned
    0 Post(s)
    Quoted
    11 Post(s)

    Default

    SCAR Code:
    Add fflag
    Add tdtmpointdef
    Add while
    You should Apply for members if you havent cheated!
    [==================================]
    [=   Result: 89%
    [==================================]

    My Members App.


  22. #22
    Join Date
    Mar 2007
    Posts
    4,810
    Mentioned
    3 Post(s)
    Quoted
    3 Post(s)

    Default

    Heh.., a script I made a year ago lol.

    Add tdtmpointdef
    You should Apply for members if you havent cheated!
    [==================================]
    [= Result: 95%
    [==================================]
    SCAR Code:
    Program CowHider_BankerXtreme;
    (* Un-comment Smart.scar to use SMART*)
    {.include SRL/SRL/Misc/SMART.scar}
    {.Include Srl/Srl.Scar}
    {.Include Srl/Srl/Misc/Users.Scar}
    {.Include Srl/Srl/Misc/DoorProfiles.Scar}
    {.Include Srl/Srl/Skill/Fighting.Scar}

    Type
      TCow = Record
        CowType, UpText : String;
        CowColor : LongInt;
        Tolerance : ShortInt;
        Finder : Function() : Boolean; //Pointer.
      End;

    Type
      TInt = (Low1, Medium, High); //Different Run types :)
      RandOff = Set Of TInt;

    //Type              Not needed atm.
    //  TCol = TColor;
    {--------------}
    Const WorldNumber = 81; //Change to change the world used in SMART.
    {------}

    Var Cow : Array [0..3] Of TCow;
        Options : RandOff;
       
    Var X, Y, GateColor, XpGained, HideDTM : Integer;
        ObjectRecord: TAutoColorInfo;
        Hides, Banked, W : Integer;
        MR, StartScript : Boolean;

    Const Ver = '0.1 pub';

    Function FindCow() : Boolean; Forward;

    Procedure SetUpRecords;
    Begin
      With Cow[0] Do
      Begin
        CowType := 'Brown';
        CowColor := 8953263;
        Tolerance := 14;
        UpText := 'Cow';
        Finder := @FindCow;
      End;

      With Cow[1] Do
      Begin
        CowType := 'Brown, White';
        CowColor := 12172994;
        Tolerance := 13;
        UpText := 'Cow';
        Finder := @FindCow;
      End;

      With Cow[2] Do
      Begin
        CowType := 'Black, White';
        CowColor := 3952728;
        Tolerance := 15;
        UpText := 'Cow';
        Finder := @FindCow;
      End;

      With Cow[3] Do
      Begin
        CowType := 'Black';
        CowColor := 5791854;
        Tolerance := 11;
        UpText := 'Cow';
        Finder := @FindCow;
      End;

      with ObjectRecord do
      begin
        UpText := 'Cow';
        MaxDist := 30;
        Color := 8953263;
        HueMod := 0.09;
        SatMod := 1.00;
        LumTol := 14;
        MinR := 120; MaxR := 214;
        MinG := 116; MaxG := 197;
        MinB := 107; MaxB := 191;
        MinX := 17.15; MaxX := 54.27;
        MinY := 17.94; MaxY := 56.47;
        MinZ := 17.66; MaxZ := 56.47;
      end;
      Begin
        HideDTM := DTMFromString('78DA63546366606866644006DB56AF06D3305' +
          '14605A09A2A54353059B81A03A09A1A026AF4816AFA09A89102AA' +
          'E921A04619A866127E350085F6063E');
        Wait(HideDTM + Random(200));
      End;
    End;

    Procedure N(Term : String);
    Begin
      WriteLn(Term);
      If LoggedIn Then LogOut;
      NextPlayer(False);
    End;

    function PlayersOnMap2(xx1, yy1, xx2, yy2 : integer) : integer; //FBjds!
    var
      playerses : TPointArray;
    begin
      FindColorsTolerance(playerses, 16711422, xx1, yy1, xx2, yy2, 19);
      RAaSTPA(playerses, 4);
      Result := getArrayLength(playerses) - 1;
    end;

    Procedure AntiBan;
    Var I : Byte;
    Begin
      FindNormalRandoms;
      Case Random(25) Of
      0 : Begin
            GameTab(1 + Random(11));
            Wait(200 + Random(400));
            If Random(2) = 1 Then
            Begin
              GameTab(1 + Random(11));
              Wait(200 + Random(400));
            End Else
              GameTab(4 + Random(3));
          End;

      1, 21..24 : SleepAndMoveMouse(1000 + Random(200));
     
      2 : PickUpMouse;
     
      3 : for i := 1 to (3 + Random(4)) do   //From BoredHuman;
          begin
            MMouse(Random(MSX2), Random(MSY2), 0, 0);
            if IsUpText('opti') then
            begin
              GetMousePos(x, y);
              Mouse(x, y, 0, 0, False);
              ChooseOption('Examine');
            end;
            FindNormalRandoms;
          end;

      4 : If Random(20) = 1 Then
          If PlayersOnMap2(MMX1, MMY1, MMX2, MMY2) >= 3 Then
          Case Random(9) Of
            0 : TypeSend(AddMistakes('Soo Boring..', 50));
            1 : TypeSend(AddMistakes('laddeda', 50));
            2 : TypeSend(AddMistakes('hello ppz', 50));
            3 : TypeSend(AddMistakes('.', 50));
            4 : TypeSend(AddMistakes('More cowhides', 50));
            5 : If PlayersOnMap2(MMX1, MMY1, MMX2, MMY2) >= 1 Then
                  TypeSend(AddMistakes('Hey!', 50));
            6 : TypeSend(AddMistakes('ll', 50));
            7 : TypeSend(AddMistakes('ahah!', 50));
            8 : TypeSend(AddMistakes('i got loads of hides', 50));
          {  9 : Begin
                If PlayersOnMap2(MMX1, MMY1, MMX2, MMY2) >- 1 Then
                  TypeSend(AddMistakes('How Many cowhides you got?', 20));
                If (Length(GetChatBoxText(8, clChat)) =< 10) Then
                  TypeSend(AddMistakes('kkll', 20)));
                End;
          End;  }


          5 : If Random(2) = 1 Then
                SetRun(True);
       End;
     End;
    End;

    function LinearWalkX(TheColor: Integer; Direction: Integer; Radius: Integer; Xmod, Ymod: Integer): Boolean;
    var
      tpa: TPointArray;
      i: Integer;
    begin
      FindNormalRandoms;
      Result := False;
      if LinearWalkEx(tpa, MMCX, MMCY, TheColor, 0, Direction, Radius) then
        for i := 0 to High(tpa) do
          if MFNF(tpa[i].x - 10, tpa[i].y, Xmod, Ymod) then
          begin
            Wait(6000 + Random(1000));
            FFlag(10);
            Result := True;
            Break;
          end;
    end;


    Function FindGate_MM : Boolean;
    Var TPA : Array Of TPoint;
        P : TPoint;
    Begin
      FindNormalRandoms;
      Players[CurrentPlayer].Loc := 'Finding Gate on Minimap';
      FindColorsSpiralTolerance(MMCX, MMCY, TPA, 238, MMX1, MMY1, MMX2, MMY2, 15)
      TPA := FilterDropDots(TPA);
      SplitTPA(TPA, 10);
      FilterPointsPie(TPA, 250.0, 340.0, 0.0, 69.0, MMCX, MMCY);
      P := MiddleTPA(TPA);
      GateColor := GetColor(P.x, P.y);
      Result := (GateColor > 0)
        If Result Then
          MouseFlag(P.x, P.y + 5, 2, 2, 0);
    End;

    Function OpenGate_Prime : Boolean;
    Begin
      If FindObjCustom(x, y, ['Gate'], [4808555, 3559518, 1054232, 1053975], 25) Then
        MMouse(x, y, 0, 0);
        Wait(200 + Random(200));
        Result := IsUpText('lose');
      If Result Then Exit;
      If IsUpText('pen') Then
        Mouse(x, y, 0, 0, True);
      Wait(1000 + Random(2000));
      Result := True;
    End;

    Function OpenGate : Boolean;
    Label Cont;
    Var TPA : Array Of TPoint;
        ATPA : T2DPointArray;
        I : Integer;
        Arr : TIntegerArray;
    Begin
      Players[CurrentPlayer].Loc := 'Trying to Open Gate';
      FindNormalRandoms;

      Result := OpenGate_Prime;
      If Result Then Exit;

      Arr := [3425614, 3161671, 3032658];
      MouseSpeed := 25;
      For I := 0 To High(Arr) Do
        FindColorsSpiralTolerance(MMCX, MMCY, TPA, Arr[I], MSX1, MSY1, MSX2, MSY2, 10);
      If Length(TPA) > 0 Then
      Begin
        ATPA := TPAtoATPAEx(TPA, 3, 5);
        SortATPAFromFirstPoint(ATPA, Point(MSCX, MSCY));
        For I := 0 To High(ATPA) Do
        If MiddleTPAEx(ATPA[I], x, y) Then
        Begin
          MMouse(x, y, 0, 0);
          Wait(190 + Random(10));
          If IsUpText('pen') Then
          Begin
            MouseFlag(x, y, 0, 0, 0);
            GoTo Cont;
          End Else
          Begin
          If IsUpText('lose') Then GoTo Cont;
            If Not IsUpText('lose') Or Not IsUpText('pen') Then
              Result := False
            Else
            Begin
              Cont :
              Result := True;
              MouseSpeed := 15;
              Exit;
            End;
           End;
       End;
     End;
    End;

    Procedure WeStuck;
    Var TPA : Array Of TPoint;
    Begin
      FindColorsTolerance(TPA, 1523801, MSX1, MSY1, MSX2, MSY2, 2);
      If Length(TPA) > 200 Then
        MouseFlag(MMCX - 50, MMCY, 10, 10, 0);

      FindColorsTolerance(TPA, 5988193, MSX1, MSY1, MSX2, MSY2, 2);
      If Length(TPA) > 400 Then
        MouseFlag(MMCX, MMCY + 30, 10, 10, 0);

      FindNormalRandoms;
    End;

    Function FilterFights(Var x, y : Integer) : Boolean;
    Var
      xx, yy : Integer;
    Begin
      If IsFightAt(xx, yy) Then
        GetMousePos(x, y);
      Result := X > 0;
    End;


    Function FindCow_Prime() : Boolean;
    Label Lab0l;
    Begin
     MouseSpeed := 30;
     Try
        Lab0l :
        Mr := FindObjRecordEx(x, y, ObjectRecord, MSX1, MSY1, MSX2, MSY2, True, True);

        If IsUpText('ilk') Then Exit Else
          Result := Mr;

        If Not Result Then Exit Else
        Wait(100 + Random(50));

        If IsFightAt(x - 5, y + 8) Then Begin Result := False; Exit End;
       
        If Not IsUpText('ow') Then GoTo Lab0l;
       
          GetMousePos(x, y);

      Except WriteLn('Could not get a DIB handle :( in FindCow_Prime!');

      Finally End;
    End;

    Function InFight2 : Boolean; //Modded by me
    Label Beginning;

    Var
      TPA, TPA2, TPA1 : TPointArray;
      I : Integer;
    Begin
      Beginning :
      Result := InFight;
      Begin
        If InFight Then Exit;

        FindColorsTolerance(TPA1, 198716, MSCX - 65, MSCY - 65, MSCX + 65, MSCY + 65, 0);
        FindColorsTolerance(TPA2, 10496, MSCX - 65, MSCY - 65, MSCX + 65, MSCY + 65, 0);

        TPA := CombineTPA(TPA1, TPA2);
      If High(TPA) = -1 Then
        Exit
      Else Begin
        Result := True ;
        Inc(I);
        If I > 40 Then Exit;
      End;
       GoTo Beginning;
     { FindColorsTolerance(TPA2, 198716, MSCX - 70, MSCY - 70, MSCX + 70, MSCY + 70,0);
      If High(Length(TPA) + Length(TPA2) - 2) > 0 Then
      Begin
        Box := GetTPABounds(CombineTPA(TPA, TPA2))
        Arr := GetColorsBox(Box.x1, Box.y1, Box.x2, Box.y2, True);
      End;
      For I := 0 To High(Arr) Do
        FindColorsTolerance(G, Arr[I], MSCX - 70, MSCY - 70, MSCX + 70, MSCY + 70, 0);
      If High(Length(G) + Length(R) - 2) > 0 Then
      Begin
        G := RemovePointsInBox(G, IntToBox(233, 134, 282, 172));
        R := RemovePointsInBox(R, IntToBox(233, 134, 282, 172));
      End;
      Result := (High(CombineTPA(G, R)) > 0);       }

     End;
    End;

    Function FindCow : Boolean;
    Var TPA : Array Of TPoint;
        I : Integer;
        ATPA : T2DPointArray;
        T : Boolean;
    Begin
      Players[CurrentPlayer].Loc := 'Finding Cow';
      MouseSpeed := 19;
      WeStuck;

      If FindCow_Prime Then
      Begin
        Result := True;
        MR := True;
        MouseSpeed := 15;
        Exit;
      End;
     
      For I := 0 To High(Cow) Do
      Begin
        FindColorsSpiralTolerance(MMCX, MMCY, TPA, Cow[I].CowColor, MSX1, MSY1, MSX2, MSY2, 15);
        If High(TPA) > -1 Then
          T := True;

        //WriteLn(Length(TPA));
        If T = True Then
        Begin
          WriteLn('Finding '+Cow[I].CowType+' Cow');
          Break;
        End;
      End;
      SortATPAFromFirstPoint(ATPA, Point(MSCX, MSCY));
      Result := InFight2;
      If Result Then Exit;
      If Length(TPA) > 0 Then
      Begin
        ATPA := TPAtoATPA(TPA, 30);
        For I := 0 To High(ATPA) Do
        If MiddleTPAEx(ATPA[I], x, y) Then
        Begin
          If FilterFights(x, y) Then
             RemovePointsInBox(ATPA[I], IntToBox(x - 50, y - 50, x + 50, y + 50));

          Result := InFight2;
          If Result Then Exit;
         
          //DebugTPA(ATPA[I], '');
          //TerminateScript;
          MMouse(x, y, 0, 0);
         
          Wait(200 + Random(10));
          If IsUpText('ilk') Then
          Begin
            InvertATPA(ATPA);
            If Random(4) = 1 Then
            Begin
              WriteLn('TPA Finding mucking up becuase of Milk Cow');
              WriteLn('Randomly Relocating');
              MouseFlag(MMCX + 10, MMCY + 10, 20, 20, 0);
              Result := False;
              Break;
            End;
           MR := False;
          End Else
          //For I := 0 To High(Cow) Do
          If IsUpText('Cow') Then
          Begin
            GetMousePos(x, y);
            Result := True;
            MR := True;
            MouseSpeed := 15;
            Exit;
          End;
        End;
       MouseSpeed := 15;
      End;
      Result := False;
      MR := False;
    End;

    Procedure WalkToCows;
    Label gg;
    Var F : Integer;
    Begin
      Players[CurrentPlayer].Loc := 'Walking To Cows';
      GoTo GG;
      GG :
      If Not LinearWalkX(FindWaterColor, 20, 60, 0, 0) Then
       If Not LinearWalkX(FindWaterColor, 25, 65, -2, 3) Then
         N('Lost Walk [1] in WalkToCows')
       Else
         FFlag(0);

       If Not LinearWalk(FindFallyRoadColor, 0, 69, 0, 0) Then
        If Not LinearWalk(FindFallyRoadColor, 5, 66, 3, 4) Then
          N('Lost Walk [2] in WalkToCows')
        Else
          FFlag(0);

       If FindRoadColor = 0 Then
         MouseFlag(MMCX, MMCY - 50, 5, 5, 0);
       If Not LinearWalk(FindRoadColor, 0, 62, 0, 0) Then
        If Not LinearWalk(FindRoadColor, -20, 52, 0, 0) Then
          N('Lost Walk [3] in WalkToCows')
        Else
          FFlag(0);
        Begin
          If Not FindSymbolIn(x, y, 'tree', 538, 22, 643, 162) Then
          Begin
          If MFF(569, 93, 10, 10) Then
            Wait(800 + Random(801));
          If Not FlagPresent Then
             N('Lost FailSafe [1] in WalkToCows')
          End Else
          MouseFlag(x - 10, y, 0, 0, 5);
          If Not IsMoving(1000) Then
            N('Lost Symbol [1] in WalkToCows - Failsafe[1]')
          Else
           Wait(1);
        End;

        FindNormalRandoms;

        If Not FindGate_MM Then N('Could not find Gate in FindGate_MM') Else
        Begin
        If OpenGate Then
        Begin
          MouseFlag(MMCX, MMCY - RandomRange(15, 45), 5, 5, 0)
          WriteLn('We Are at The Cow Area');
        End Else
        For F := 0 To High(Cow) Do
        If Not Cow[F].Finder() Then
          N('Could not find Gate in FindGate_MM');

         Exit;
        End;
      Wait(1);
    End;


    function PixelShift(x1, y1, x2, y2, step, t: integer): integer; //Marpis
    var
      bmp, bmp2, x, y: integer;
    begin
      bmp := BitmapFromString((x2 -x1), (y2 - y1), '');
      bmp2 := BitmapFromString((x2 -x1), (y2 - y1), '');
      SafeCopyCanvas(GetClientCanvas, GetBitmapCanvas(bmp), x1, y1, x2, y2, 0, 0, (x2 - x1), (y2 -  y1));
      wait(t);
      SafeCopyCanvas(GetClientCanvas, GetBitmapCanvas(bmp2), x1, y1, x2, y2, 0, 0, (x2 - x1), (y2 -  y1));
      for x := 1 to ((x2 - x1)/step) do
       for y := 1 to ((y2 - y1)/step) do
        if FastGetPixel(bmp2, x * step, y * step) <> FastGetPixel(bmp, x * step, y * step) then
         Inc(result);
      FreeBitmap(bmp);
      FreeBitmap(bmp2);
    end;

    function m_IsMoving: boolean;      //Marpis
    begin
     result := PixelShift(MMX1, MMY1, MMX2, MMY2, 5, 200) > 100;
    end;


    Function PickUpHide : Boolean;
    Var TPA : TPointArray;
        P : TPoint;
    Begin
      Players[CurrentPlayer].Loc := 'Picking Up Hides';
      If FindObj(x, y, 'ake', 13619157, 20) Then
        Mouse(x, y, 0, 0, False);

        Wait(400 + Random(200));
      Result := ChooseOption('owhide');
      While FlagPresent Do Wait(100 + Random(200));

      Wait(400 + Random(800));
      If Result Then Exit;

      X := MMCX;
      Y := MMCY;
      Result := FindObjTPA(X, Y, 12171971, 10, 2, 10, 10, 40, ['ake']);
      If Result Then
      Begin
        Mouse(x, y, 0, 0, False);
        Result := ChooseOption('whide');
        Wait(2000 + Random(1000));
        While m_IsMoving Do Wait(200 + Random(200));
       
        Exit;
      End;

      FindColorsTolerance(TPA, 12171971, MSCX - 50, MSCY - 50, MSCX + 50, MSCY + 50, 8);
      If Length(TPA) = 0 Then FindColorsSpiralTolerance(MSCX, MSCY, TPA, 12171971, MSCX - 150, MSCY - 150, MSCX + 150, MSCY + 150, 11);
      If Length(TPA) > 0 Then
      Begin
        SplitTPAEx(TPA, 10, 10);
        P := MiddleTPA(TPA);
        MMouse(P.x, P.y, 0, 0);
        Wait(200 + Random(200));
        If IsUpText('ake') Then
          Mouse(P.x, P.y, 0, 0, False);
        Result := ChooseOption('whide');
        Wait(2000 + Random(1500));
      End;
     FindNormalRandoms;
    End;

    Procedure GetCowHides;
    Label Lol, Lolx, Loly;
    Var TPA : TPointArray;
        IMark, I : Integer;
    Begin
      Players[CurrentPlayer].Loc := 'Killing Cows';
      Repeat
        FindNormalRandoms;
        Lol :
        For I := 0 To High(Cow) Do
        Begin
          If Not Cow[I].Finder() Then Break;
          Begin
            Case Random(3) Of
            0, 2 : Mouse(x, y, 0, 0, True);
            1 : Begin
                  Mouse(x, y, 0, 0, False);
                  Wait(100 + Random(100));
                  ChooseOption('tack');
                End;
            End;
           Break;
          End;
        End;
        Wait(800 + Random(800));
        MouseSpeed := 17;
        While m_IsMoving Do Wait(1300 + Random(800));

        MarkTime(IMark);

        If Not MR Then
        For I := 0 To High(Cow) Do
        Begin
          If Cow[I].Finder() Then
          Begin
            Mouse(x, y, 1, 1, True)
            Wait(100 + Random(300));
            Break;
          End Else
            Break;
        End;

        If Not MR Then GoTo Loly;
       
        I := 0;
        While Not InFight2 or (I >= 30) = False Do
        Begin
          Wait(100 + Random(90));
          Inc(I);
        End;

          If InFight2 Then
            GoTo Lolx
          Else
            GoTo Loly;

        If Not MR Then
        Begin
          Begin
            Loly :
            If FindObj(x, y, 'acks', 1143694, 15) Then
              MouseFlag(MMCX - 20, MMCY + 17, 5, 5, 0)
            Else
              If FindColorsTolerance(TPA, 62965, MMX1, MMY1, MMX2, MMY2, 3) Then
              Begin
                TPA := RemovePointsInBox(TPA, IntToBox(665, 8, 709, 166));
              For I := 0 to High(TPA) Do
              If PointInBox(TPA[I], IntToBox(MMCX - (I*5), MMCY - (I*5), MMCX + (I*5), MMCY + (I*5))) Then
              Begin
                MouseFlag(TPA[I].x, TPA[I].y, 3, 3, 0);
                FindNormalRandoms;
                Break;
              End;
             End;
           End;
         GoTo Lol;
         End;

        Lolx :
        Begin
          If InvFull Then Exit;
          Repeat
            Wait(500 + Random(300));
            AntiBan;
          Until(Not (InFight2)) xOr (TimeFromMark(IMark) > 18000 + Random(2000));
          If PickUpHide Then
            Inc(Hides);
        End;
        XpGained := Round(XpGained + 4.375);

      If InvFull Then Exit;
      Until(InvFull) xOr (Not(LoggedIn));
      If Not LoggedIn Then N('Not Logged In..');
    End;

    Function FindBankers() : Boolean;
    Var TPA : TPointArray;
        ATPA : T2DPointArray;
        TB : TBoxArray;
        II : Integer;

    Begin
      Players[CurrentPlayer].Loc := 'Finding Bankers on Minimap';
      FindNormalRandoms;
      Begin
        FindColorsTolerance(TPA, (iAbs(ClBlue - ClWhite)+1), MMX1, MMY1, MMX2, MMY2, 1);
        ATPA := TPAToATPA(TPA, 20);
        If High(ATPA) = -1 Then Exit Else
          SetArrayLength(TB, High(ATPA));
        For II := 0 To High(TB) Do
        Begin
        TB[II] := GetTPABounds(ATPA[II]);

          If CountColorTolerance(124132, TB[II].x1, TB[II].y1, TB[II].x2, TB[II].y2, 34) >= 20 Then
            Mouse(TB[II].x1, TB[II].y1 + 4, 4, 4, True)
          Else
            Continue;
        End;
        Wait(1600 + Random(400));
        Result := FlagPresent;
        If Result Then
        Begin
          WriteLn('Found Bankers on MiniMap!');
          FFlag(0);
          Exit;
        End Else
        If FindSymbol(x, y, 'bank') Then
        Begin
          WriteLn('Trying Failsafe [1]');
          Mouse(x, y, 0, 0, True)
          Result := True;//m_IsMoving;
          FFlag(0);
        End Else
          N('Could not enter bank in FindBankers');
      End;
    End;

    Function OpenFallyBank : Boolean;
    Var TPA : TPointArray;
        P : TPoint;
        I : Integer;
        ATPA : T2DPointArray;
    Begin
      Players[CurrentPlayer].Loc := 'Opening Falador Bank';
      FindColorsSpiralTolerance(MMCX, MMCY, TPA, 2701894, 1, 1, 518, 224, 15);
      Begin
        SplitTPAEx(TPA, 4, 5);       //Ultra Filteration
        RAaSTPA(TPA, 40);
        ATPA := SplitTPA(TPA, 20);
      End;

      If Length(ATPA) > 0 Then
      For I := 6 To High(ATPA) Do //Skip the few points for faster finding
      Begin
        P := MiddleTPA(ATPA[I]);

        MMouse(P.x, P.y, 0, 0);

        Wait(400 + Random(100));

        If IsUpText('ooth') Then
        Begin
          GetMousePos(x, y);
          Mouse(x, y, 0, 0, False);
          Wait(80 + Random(80));
          If ChooseOption('uickly') Then
            Wait(RandomRange(2001, 4001));

          Result := BankScreen Or PinScreen;
          If Result Then Break;
        End Else

        Continue;
      End;
      If Result Then WriteLn('BankScreen!');
    End;


    Procedure Bank;
    Label Ben, Start;
    Var TPA, TPA2 : TPointArray;
        ATPA : Array Of Array Of TPoint;
        Box : TBox;
    Begin
      GoTo Start;
      Start :
      Players[CurrentPlayer].Loc := 'Bank';
      FindNormalRandoms;
      Ben :
      FindColorsTolerance(TPA, 238, MMCX - 80, MMCY, 731, 165, 15);
      Begin
        //SortCircleWise(TPA, MMCX, MMCY, 10, False, False);
        TPA := FilterDropDots(TPA);
        FilterPointsPie(TPA, -90.7, 90.2, 10.0, 75.1, MMCX, MMCY);
        ATPA := TPAToATPAEx(TPA, 3, 1);
        {}InvertATPA(ATPA);{}                     //TPA's Bloody Awesome!
        If Length(ATPA) > 0 Then
        If MiddleTPAEx(ATPA[0], x, y) Then
          Mouse(x - 3, y - 5, 5, 5, True);
         
        While m_IsMoving Do Wait(800 + Random(800));

        FindSymbols(TPA2, 'tree')
        If Not Length(TPA2) = 2 Then
        Begin
          Mouse(560, 92, 10, 10, True);
          FFlag(0);
          GoTo Ben;
        End;
      End;

      If Not OpenGate Then N('Couldnt Open Gate in Bank');
      If Not FindSymbolIn(x, y, 'tree', 627, 1, 714, 169) Then
        N('Lost Walk [1] in Bank')
      Else
      Begin
        Mouse(x, y - 10, 2, 2, True);
        Wait(5000 + Random(3000));
        FFlag(0);
      End;
      FindNormalRandoms;
      Begin
      If FindColorsTolerance(TPA, FindFallyRoadColor, MMX1, MMY1, MMX2, MMY2, 0) Then
      Begin
        RAaSTPA(TPA, 90); //Points Clashed, so I went for higher density
        Box := GetTPABounds(TPA);
        MouseBox(Box.x1 + (7 + Random(3)), Box.y1 + (7 - Random(3)), Box.x2 - 2, Box.y2 - 3, 1);
      End Else
      If Not LinearWalk(FindFallyRoadColor, 130, 70, -2, 3) Then
        N('Lost Walk [2] in Bank')
      Else
        FFlag(0);
       
      Begin
        If Not CountColor(FindWaterColor, MMX1, MMY1, MMX2, MMY2) > 10 Then
          N('Lost in Bank')
        Else
        Begin
        If Not LinearWalk(FindFallyRoadColor, 160, 70, 0, 0) Then
         If Not LinearWalk(FindWaterColor, 165, 72, 0, 0) Then
           N('Lost Walk [3] in Bank')
         Else
           FFlag(0);
           
        If Not LinearWalk(FindFallyRoadColor, 180, 73, 0, 0) Then
         If Not LinearWalk(FindFallyRoadColor, 176, 72, 0, 0) Then
           N('Lost Walk [4] in Bank')
         Else
           FFlag(0);
           
       If Not LinearWalk(FindFallyRoadColor, 180, 53, 0, 0) Then
         If Not LinearWalk(FindFallyRoadColor, 176, 50, 0, 0) Then
           N('Lost Walk [5] in Bank')
         Else
         Begin
           Wait(3000 + Random(4000));
           FFlag(0);
         End;
        FindNormalRandoms;

       If Not FindBankers Then
         N('Lost In Finding, in FindBankers')
       Else
         If OpenFallyBank Then
         Begin
           If PinScreen Then
             InPin(Players[CurrentPlayer].Pin);
             Wait(500 + Random(500));
           If BankScreen Then
             DepositAll();
             If CloseBank Then
             Begin
               Inc(Banked);
               Inc(Players[CurrentPlayer].Integers[77]);
             End;
          End;
        End;
      End;
      FindNormalRandoms;
     End;
    End;

    Procedure ProgressReport(Loc : String);
    Var I, Space, Xpl : Integer;
    Begin
      Xpl := Trunc((3600000 / GetTimeRunning) + 1);
      SRLRandomsReport;

      If Length(TimeRunning) > 30 Then
        Space := 60
      Else
        Space := 50;

      Begin
        WriteLn('');
        WriteLn(Padr('(|'+Replicate('>', Space - 2), Space) + '|)');
        WriteLn(Padr('(|     Cow Killer + Hide Banker    ', Space) + '|)');
        WriteLn(Padr('(|         Version '+Ver+'         ', Space) + '|)');
        WriteLn(Padr('(|         By NaumanAkhlaQ         ', Space) + '|)');
        WriteLn(Padr('(|       Used '+IntToStr(CurrentPlayer)+' Out Of '+IntToStr(HowManyPlayers)+' !', Space) + '|)');
        WriteLn(Padr('(|'+Replicate('-', Space - 2), Space) + '|)');
        WriteLn(Padr('(|   ~>  Worked For : '+TimeRunning+'.', Space) + '|)');
        WriteLn(Padr('(|   ->  Location = '+Loc+'.', Space) + '|)');
        WriteLn(Padr('(|'+Replicate('>', Space - 2), Space) + '|)');
        WriteLn(Padr('(|    >  Hides Collected - '+IntToStr(Hides)+'.', Space) + '|)');
        WriteLn(Padr('(|    >  Banked - '+IntToStr(Banked)+'.', Space) + '|)');
        WriteLn(Padr('(|    >  XpGained - '+FloatToStr(XpGained)+'.', Space) + '|)');
        WriteLn(Padr('(|    >  Hides Per Hour (HPH) - '+FloatToStr(Xpl * Hides)+'.', Space) + '|)');
        WriteLn(Padr('(|'+Replicate('<', Space - 2), Space) + '|)');
        WriteLn(Padr('(|Written On '+TheTime+' '+TheDate(3)+' !', Space) + '|)');
        WriteLn(Padr('(|'+Replicate('<', Space - 2), Space) + '|)');
        WriteLn(Padr('(| Player Information :', Space) + '|)');
        For I := 0 To High(Players) Do
        Begin
          WriteLn('+++++++++++++');
          WriteLn('                 Player['+IntToStr(I)+']');
          WriteLn('[-} '+ Players[I].Name +' /\ Collected '+IntToStr(Players[I].integers[88])+' Hides! /\ Banked ' +IntToStr(Players[I].integers[77])+' Loads!');
          WriteLn('[-} Gained '+IntToStr(XpGained)+' Fighting Xp! /\ '+ Players[I].Name +#39 +'s Active Is '+BoolToStr(Players[I].Active)+' !');
          If Players[CurrentPlayer].Loc =
           '' Then
            WriteLn('[-} '+Players[I].Name +#39+'s Location is ''Not Yet Used'' !')
          Else
            WriteLn('[-} '+Players[I].Name +#39+'s Location is '+Players[I].Loc+' !');
          WriteLn('+++++++++++++');
        End;
      End;
    End;

    Procedure CheckRun;
    Var Energy : Byte;
        S : String;
    Begin
      Players[CurrentPlayer].Loc := 'Checking Run Status';
      Try
        If Random(2) = 1 Then Begin
         If Low1 In Options Then Energy := 20 + Random(10);
        End Else
         If Medium In Options Then Energy := 40 + Random(10);
      Except
        WriteLn('Error In TInt, RandOff');
      Finally
        If GetMMLevels('run', S) >= Energy Then
          SetRun(True);
      End;
    End;

    Procedure ScriptTerminate;
    Begin
      ProgressReport(Players[CurrentPlayer].Loc);
    End;

    Procedure Checks;
    Var S : String;
    Begin
      If Random(2) = 1 Then CheckRun;
      Status(Players[CurrentPlayer].Loc);
      If IsFKeyDown(2) Then ProgressReport(Players[CurrentPlayer].Loc);
      If IsFKeyDown(5) Then
      Begin
        GetApplication.BringToFront;
        S := ReadLn('What Do you want to say?');
        GetApplication.Minimize;
        Mouse(111, 462, 100, 5, True);
        TypeSend(AddMistakes(S, 30));
      End;
      If IsFKeyDown(4) Then
      Begin
        While InFight2 Do Wait(300 + Random(900));
        NextPlayer(False);
      End;
    End;

    Function Setup : Variant;
    Begin
      Options := [Low1, Medium];
      ActivateClient;
      SymbolAccuracy := 0.45;
      SetUpRecords;
      SRL_Procs[srl_OnRandomCall] := @Checks;
      SRL_Procs[srl_AntiBan] := @Checks;
      {-------------------------------}
        {$IFDEF SMART}
        WriteLn('SMART IS LOADING -');
        SmartSetupEx(WorldNumber, False, True, False);
        SetTargetDc(SMARTGetDC);
        While SmartGetColor(253, 233) <> 1118604 Do
          Wait(10);

        If SmartReady Then
          WriteLn('Loaded');
        {$ENDIF}
      {-------------------------------}
     
      Wait((900 xOr 90) + Random(200));
      If Not LoggedIn Then LoginPlayer;
      SetRun(True);
      Result := 50 Xor 60;
    End;

    Var BK : Integer;
        BackGround : TImage;
        FrmDesign : TForm;
        X2, Y2 : Integer;
        StartPos, StartMousePos : TPoint;
        AreMoving : boolean;
        Memo1 : TMemo;
        Button2 : TButton;
        Button3 : TButton;
        Button4 : TButton;
        Button5 : TButton;
        CB : TCheckBox;
       
    //Const Ver = '0.1';

    //Get Pos = Image Moving Functions Aided by mastaRaymond :)
    Procedure GetPos(Sender1: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

    Begin
      GetMousePos(X2, Y2);
      StartPos := Point(frmDesign.left,frmDesign.top);
      StartMousePos := Point(x2,y2);
      Aremoving := True;
    End;

    Procedure CheckVersion;
    Var S : String;
    Var T : Integer;
    Begin
      Memo1.Lines.Add('');
      MarkTime(T);
      Memo1.Lines.Add('<<<< Version Checker Activated! >>>>');
      Try
        S := GetPage('http://cowkiller.freehostia.com/New%20Text%20Document%20(2).txt');
      Except
      end;
      If S = Ver Then
        Memo1.Lines.Add('Your version is up to date :)')
      Else
      Begin
        Memo1.Lines.Add('Your version is NOT up to date :(');
        Memo1.Lines.Add('Your Version Is '+Ver+', The Newest Version Is '+S);
      End;
    End;


    Procedure DrawCow;
    Begin
      Memo1.Lines.Add('');
      Memo1.Lines.Add('Thank-you for using this script :)');
      Wait(800);
    End;

    Procedure Click(SenderSS : TObject);
    Var F : Integer;
    Begin
      Case SenderSS Of
      Button2 : Begin
                  DrawCow;
                  For F := 240 DownTo 10 Do
                  Begin
                    MakeWindowTransparent(FrmDesign.Handle, F);
                    Wait(2);
                  End;
                  StartScript := True;
                  FrmDesign.ModalResult := mrOk;
                End;

      Button3 : Begin
                  Memo1.Lines.Add('');
                  Memo1.Lines.Add('<<<< Player Form Activated! >>>>');
                  SRLPlayerForm(True, ['Use percision running'], ['Loads To Bank?'], [], []);
                  if(srlpf_TerminateWhenDone)then
                    TerminateScript;
                End;

      Button4 : Try CheckVersion Except Memo1.Lines.Add('< Could Not CheckVersion - Connection Error! >') end;

      CB : Begin
             If Not CB.Checked Then
             Begin
               Memo1.ReadOnly := False
               Memo1.Color := 10666964;
             End Else
             Begin
               Memo1.ReadOnly := True;
               Memo1.Color := 4479587;
             End;
           End;

      //Button5 :
      End;
    End;

    Procedure GetPosX(Sender2: TObject; Shift: TShiftState; X, Y: Integer);

    Begin
      if AreMoving then
      begin
        GetMousePos(X2, Y2);
        FrmDesign.Left := StartPos.x +  (x2-StartMousePos.x);
        FrmDesign.Top := StartPos.y +  (y2-StartMousePos.y);
      end;
    {  BackGround.Left := Fx[2];
      BackGround.Top := Fy[2];}

    End;

    Procedure GetPosY(Sender3: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

    Begin
      GetMousePos(X2,y2);
      FrmDesign.Left := StartPos.x +  (x2-StartMousePos.x);
      FrmDesign.Top := StartPos.y +  (y2-StartMousePos.y);
      AreMoving := False;
    {  BackGround.Left := Fx[2];
      BackGround.Top := Fy[2];}

    End;


    Procedure IsClose(Sender4: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    Begin
      GetMousePos(X2, Y2);
    End;

    Procedure IsClose2(Sender5: TObject; Shift: TShiftState; X, Y: Integer);
    Begin
      GetMousePos(X2, Y2);
    End;

    Procedure Close(Sender5: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    Begin
      GetMousePos(X, Y);
      //If (X = X2) And (Y = Y2) Then
        FrmDesign.Close;
      WriteLn('User called = Form End [0.01]');
      StartScript := False;
    End;


    Procedure Form;
    Var BK2 : TImage;
    Begin
      ClearDebug;
      frmDesign := CreateForm;
      frmDesign.Left := 250;
      frmDesign.Top := 195;
      frmDesign.Width := 462;
      frmDesign.BorderIcons := [];
      frmDesign.BorderStyle := bsNone;
      frmDesign.Height := 399;
      frmDesign.Caption := '                                    NAQ'#39's - Cow Killer + Hide Banker Xtreme!';
      frmDesign.Color := clBtnFace;
      frmDesign.Font.Color := clWindowText;
      frmDesign.Font.Height := -11;
      frmDesign.Font.Name := 'Arial';
      frmDesign.Font.Style := [];
      frmDesign.Visible := False;
      frmDesign.PixelsPerInch := 96;
      frmDesign.Position := poMainFormCenter;

      CB := TCheckBox.Create(frmDesign);
      CB.Parent := frmDesign;
      CB.Left := 22;
      CB.Top := 378;
      CB.Caption := 'Read Only?';
      CB.Width := 150;
      CB.Height := 15;
      CB.TabOrder := 18;
      CB.ShowHint := True;
      CB.Hint := 'Click this to make the form memo box Read - Only!';
      CB.OnClick := @Click;
     
      Background := TImage.Create(frmDesign);
      Background.Parent := frmDesign;
      Background.SetBounds(0, 0, 462, 399);
      BackGround.OnMouseDown := @GetPos;
      BackGround.OnMouseMove := @GetPosX;
      BackGround.OnMouseUp := @GetPosY;
      Try
        BK := LoadBitmap(ScriptPath+'my back(1).bmp');
      Except end;
      SafeCopyCanvas(GetBitmapCanvas(BK), Background.Canvas, 0, 0, 462, 399, 0, 0, 462, 399);
      FreeBitmap(BK);

      BK2 := TImage.Create(frmDesign);
      BK2.Parent := frmDesign;
      BK2.SetBounds(429, 6, 28, 27);
      BK2.OnMouseDown := @IsClose;
      BK2.OnMouseUp := @Close;
      BK2.ShowHint := True;
      BK2.Hint := 'Click This X To Close The Scipt :(';
      SafeDrawBitmap(W, BK2.Canvas, (MSCX Xor MSCY - (85 * 5)), 0 mod 2);
      FreeBitmap(W);

      Memo1 := TMemo.Create(frmDesign);
      Memo1.Parent := frmDesign;
      Memo1.Left := 22;
      Memo1.Top := 144;
      Memo1.Width := 300;
      Memo1.Color := 10666964;
      Memo1.WordWrap := True;
      Memo1.Height := 233;
      Memo1.ScrollBars := ssBoth;
      Memo1.Lines.Add('Welcome to Fally Cow Hider Xtreme - Setup Form');
      Memo1.Lines.Add('Please Select an Operation to Perform!!!');
      Memo1.Lines.Add('');
      Memo1.Lines.Add('Current Version you are using is '+Ver);
      Memo1.Lines.Add(Replicate('>', 40));
      Memo1.TabOrder := 8;
      Memo1.ShowHint := True;
      Memo1.Hint := 'Info is Displayed Here!';
      Memo1.ReadOnly := False;
      Memo1.Enabled := True;
     
      Button2 := TButton.Create(frmDesign);
      Button2.Parent := frmDesign;
      Button2.Left := 340;
      Button2.ShowHint := True;
      Button2.Hint := 'Press This To Start The Script * '+UpperCase('Make Sure you Have Filled In Your Player Information First :) *');
      Button2.Top := 296;
      Button2.Width := 105;
      Button2.Font.Name := 'Comic Sans MS';
      Button2.Font.Size := -17;
      Button2.Height := 43;
      Button2.Caption := 'Start Script';
      Button2.TabOrder := 0;
      Button2.OnClick := @Click;

      Button3 := TButton.Create(frmDesign);
      Button3.Parent := frmDesign;
      Button3.Left := 340;
      Button3.ShowHint := True;
      Button3.Hint := 'Setup all your player details here :)';
      Button3.Top := 144;
      Button3.Width := 105;
      Button3.Height := 33;
      Button3.Caption := 'Setup Players';
      Button3.TabOrder := 10;
      Button3.OnClick := @Click;

      Button4 := TButton.Create(frmDesign);
      Button4.Parent := frmDesign;
      Button4.Left := 340;
      Button4.ShowHint := True;
      Button4.Hint := 'This will connect to my webiste for updates (Lags for approx. 3 seconds)';
      Button4.Top := 192;
      Button4.Width := 105;
      Button4.Height := 33;
      Button4.Caption := 'Check for Updates';
      Button4.TabOrder := 11;
      Button4.OnClick := @Click;

      Button5 := TButton.Create(frmDesign);
      Button5.Parent := frmDesign;
      Button5.Left := 340;
      Button5.ShowHint := True;
      Button5.Hint := 'Will connect to my site to get the latest progress report';
      Button5.Top := 240;
      Button5.Width := 105;
      Button5.Height := 33;
      Button5.Caption := 'Get Latest Proggie';
      Button5.TabOrder := 12;
      Button5.OnClick := @Click;

      frmDesign.ShowModal;
    End;

    procedure SafeInitForm;
    var
      V : TVariantArray;
    begin
      setarraylength(V, 0);
      ThreadSafeCall('Form', v);
    end;

    procedure ShowFormModal;
    begin
      ClearDebug;
    end;

    procedure SafeShowFormModal;
    var
      v: TVariantArray;
    begin
      V := [];
      setarraylength(V, 0);
      ThreadSafeCall('ShowFormModal', v);
    end;

    Procedure FormShow;
    Begin
      SafeInitForm;
      SafeShowFormModal;
    End;

    Procedure DoSig;
    Begin
      ChangeReportWidth(260);
      WriteLn(' ______                                          ______             ');
      Wait(50);
      WriteLn('|  ___ \                                        / _____)            ');
      Wait(50);
      WriteLn('| |   | | ____ _   _ ____   ____ ____  _____   | /      ___  _ _ _  ');
      Wait(50);
      WriteLn('| |   | |/ _  | | | |    \ / _  |  _ \(___  )  | |     / _ \| | | | ');
      Wait(50);
      WriteLn('| |   | ( ( | | |_| | | | ( ( | | | | |/ __/   | \____| |_| | | | | ');
      Wait(50);
      WriteLn('|_|   |_|\_||_|\____|_|_|_|\_||_|_| |_(_____)   \______)___/ \____| ');
      Wait(50);
      WriteLn('                                                                    ');
      Wait(500);
      WriteLn(' _    _ _ _ _                                _                      ');
      Wait(50);
      WriteLn('| |  / |_) | |                              | |                     ');
      Wait(50);
      WriteLn('| | / / _| | | ____  ____     ____ ____   _ | |                     ');
      Wait(50);
      WriteLn('| |< < | | | |/ _  )/ ___)   / _  |  _ \ / || |                     ');
      Wait(50);
      WriteLn('| | \ \| | | ( (/ /| |      ( ( | | | | ( (_| |                     ');
      Wait(50);
      WriteLn('|_|  \_)_|_|_|\____)_|       \_||_|_| |_|\____|                     ');
      Wait(50);
      WriteLn('                                                                    ');
      Wait(500);
      WriteLn(' _     _ _     _                  _    _                            ');
      Wait(50);
      WriteLn('| |   | (_)   | |                \ \  / /                           ');
      Wait(50);
      WriteLn('| |__ | |_  _ | | ____  ____    __\ \/ / |_   ____ ____ ____   ____ ');
      Wait(50);
      WriteLn('|  __)| | |/ || |/ _  )/ ___)  (___)  (|  _) / ___) _  )    \ / _  )');
      Wait(50);
      WriteLn('| |   | | ( (_| ( (/ /| |         / /\ \ |__| |  ( (/ /| | | ( (/ / ');
      Wait(50);
      WriteLn('|_|   |_|_|\____|\____)_|        /_/  \_\___)_|   \____)_|_|_|\____)');
      Wait(900);
      WriteLn('');
    End;


    Procedure MainLoop;
    Begin
      FormShow;
      SRLPlayerForm(False, [], ['Loads To Bank?'], [], []);
      Begin
        FreeForm(FrmDesign);
        ClearDebug;
        If StartScript = False Then TerminateScript Else
          Wait(1);

        SetupSRL;

        If Setup * 1 > 0 Then WriteLn('[Setup] Status - Completed!');
        {{$IFDEF SMART} {
          SetTargetDC(SMARTGetDC);
        {$ENDIF}
    {
          Wait(1);}

      Repeat
        Repeat
          SetAngle(True);
          MakeCompass('S');
          WalkToCows;
          GetCowHides;
          Bank;
          ProgressReport(Players[CurrentPlayer].Loc);
        Until(Banked >= Players[CurrentPlayer].Integers[0]) xOr (Not (LoggedIn));

        If Not LoggedIn Then NextPlayer(False) Else
        Begin
          LogOut;
          NextPlayer(True);
        End;
        ProgressReport(Players[CurrentPlayer].Loc);
      Until(AllPlayersInactive);

      If AllPlayersInactive Then ProgressReport(Players[CurrentPlayer].Loc);
      End;
    End;

    Begin
        {$IfDef SRL_SMART}
          Smart_Server := WorldNumber;
          Smart_Members := False;
          Smart_Signed := True;
          Smart_SuperDetail := False;
        {$ENDIF}
      DoSig;
      W := BitmapFromString(28, 27, 'beNqt1HtQkukewPFXQUFAEJAw75f' +
           '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' +
           'THd/X/MnwDv/nCv');

      MainLoop;
      WriteLn('Thanks for using - Please Post your proggie :-)!');

      Wait(1);
      {---}
    End.

    ..On topic: This looks really, really good. This has a day and night difference from the first one you made. Rep+
    Last edited by Naum; 12-31-2009 at 08:20 PM.

  23. #23
    Join Date
    May 2007
    Location
    NSW, Australia
    Posts
    2,823
    Mentioned
    3 Post(s)
    Quoted
    25 Post(s)

    Default

    Quote Originally Posted by Naum View Post
    Heh.., a script I made a year ago lol.



    SCAR Code:
    Program CowHider_BankerXtreme;
    (* Un-comment Smart.scar to use SMART*)
    {.include SRL/SRL/Misc/SMART.scar}
    {.Include Srl/Srl.Scar}
    {.Include Srl/Srl/Misc/Users.Scar}
    {.Include Srl/Srl/Misc/DoorProfiles.Scar}
    {.Include Srl/Srl/Skill/Fighting.Scar}

    Type
      TCow = Record
        CowType, UpText : String;
        CowColor : LongInt;
        Tolerance : ShortInt;
        Finder : Function() : Boolean; //Pointer.
      End;

    Type
      TInt = (Low1, Medium, High); //Different Run types :)
      RandOff = Set Of TInt;

    //Type              Not needed atm.
    //  TCol = TColor;
    {--------------}
    Const WorldNumber = 81; //Change to change the world used in SMART.
    {------}

    Var Cow : Array [0..3] Of TCow;
        Options : RandOff;
       
    Var X, Y, GateColor, XpGained, HideDTM : Integer;
        ObjectRecord: TAutoColorInfo;
        Hides, Banked, W : Integer;
        MR, StartScript : Boolean;

    Const Ver = '0.1 pub';

    Function FindCow() : Boolean; Forward;

    Procedure SetUpRecords;
    Begin
      With Cow[0] Do
      Begin
        CowType := 'Brown';
        CowColor := 8953263;
        Tolerance := 14;
        UpText := 'Cow';
        Finder := @FindCow;
      End;

      With Cow[1] Do
      Begin
        CowType := 'Brown, White';
        CowColor := 12172994;
        Tolerance := 13;
        UpText := 'Cow';
        Finder := @FindCow;
      End;

      With Cow[2] Do
      Begin
        CowType := 'Black, White';
        CowColor := 3952728;
        Tolerance := 15;
        UpText := 'Cow';
        Finder := @FindCow;
      End;

      With Cow[3] Do
      Begin
        CowType := 'Black';
        CowColor := 5791854;
        Tolerance := 11;
        UpText := 'Cow';
        Finder := @FindCow;
      End;

      with ObjectRecord do
      begin
        UpText := 'Cow';
        MaxDist := 30;
        Color := 8953263;
        HueMod := 0.09;
        SatMod := 1.00;
        LumTol := 14;
        MinR := 120; MaxR := 214;
        MinG := 116; MaxG := 197;
        MinB := 107; MaxB := 191;
        MinX := 17.15; MaxX := 54.27;
        MinY := 17.94; MaxY := 56.47;
        MinZ := 17.66; MaxZ := 56.47;
      end;
      Begin
        HideDTM := DTMFromString('78DA63546366606866644006DB56AF06D3305' +
          '14605A09A2A54353059B81A03A09A1A026AF4816AFA09A89102AA' +
          'E921A04619A866127E350085F6063E');
        Wait(HideDTM + Random(200));
      End;
    End;

    Procedure N(Term : String);
    Begin
      WriteLn(Term);
      If LoggedIn Then LogOut;
      NextPlayer(False);
    End;

    function PlayersOnMap2(xx1, yy1, xx2, yy2 : integer) : integer; //FBjds!
    var
      playerses : TPointArray;
    begin
      FindColorsTolerance(playerses, 16711422, xx1, yy1, xx2, yy2, 19);
      RAaSTPA(playerses, 4);
      Result := getArrayLength(playerses) - 1;
    end;

    Procedure AntiBan;
    Var I : Byte;
    Begin
      FindNormalRandoms;
      Case Random(25) Of
      0 : Begin
            GameTab(1 + Random(11));
            Wait(200 + Random(400));
            If Random(2) = 1 Then
            Begin
              GameTab(1 + Random(11));
              Wait(200 + Random(400));
            End Else
              GameTab(4 + Random(3));
          End;

      1, 21..24 : SleepAndMoveMouse(1000 + Random(200));
     
      2 : PickUpMouse;
     
      3 : for i := 1 to (3 + Random(4)) do   //From BoredHuman;
          begin
            MMouse(Random(MSX2), Random(MSY2), 0, 0);
            if IsUpText('opti') then
            begin
              GetMousePos(x, y);
              Mouse(x, y, 0, 0, False);
              ChooseOption('Examine');
            end;
            FindNormalRandoms;
          end;

      4 : If Random(20) = 1 Then
          If PlayersOnMap2(MMX1, MMY1, MMX2, MMY2) >= 3 Then
          Case Random(9) Of
            0 : TypeSend(AddMistakes('Soo Boring..', 50));
            1 : TypeSend(AddMistakes('laddeda', 50));
            2 : TypeSend(AddMistakes('hello ppz', 50));
            3 : TypeSend(AddMistakes('.', 50));
            4 : TypeSend(AddMistakes('More cowhides', 50));
            5 : If PlayersOnMap2(MMX1, MMY1, MMX2, MMY2) >= 1 Then
                  TypeSend(AddMistakes('Hey!', 50));
            6 : TypeSend(AddMistakes('ll', 50));
            7 : TypeSend(AddMistakes('ahah!', 50));
            8 : TypeSend(AddMistakes('i got loads of hides', 50));
          {  9 : Begin
                If PlayersOnMap2(MMX1, MMY1, MMX2, MMY2) >- 1 Then
                  TypeSend(AddMistakes('How Many cowhides you got?', 20));
                If (Length(GetChatBoxText(8, clChat)) =< 10) Then
                  TypeSend(AddMistakes('kkll', 20)));
                End;
          End;  }


          5 : If Random(2) = 1 Then
                SetRun(True);
       End;
     End;
    End;

    function LinearWalkX(TheColor: Integer; Direction: Integer; Radius: Integer; Xmod, Ymod: Integer): Boolean;
    var
      tpa: TPointArray;
      i: Integer;
    begin
      FindNormalRandoms;
      Result := False;
      if LinearWalkEx(tpa, MMCX, MMCY, TheColor, 0, Direction, Radius) then
        for i := 0 to High(tpa) do
          if MFNF(tpa[i].x - 10, tpa[i].y, Xmod, Ymod) then
          begin
            Wait(6000 + Random(1000));
            FFlag(10);
            Result := True;
            Break;
          end;
    end;


    Function FindGate_MM : Boolean;
    Var TPA : Array Of TPoint;
        P : TPoint;
    Begin
      FindNormalRandoms;
      Players[CurrentPlayer].Loc := 'Finding Gate on Minimap';
      FindColorsSpiralTolerance(MMCX, MMCY, TPA, 238, MMX1, MMY1, MMX2, MMY2, 15)
      TPA := FilterDropDots(TPA);
      SplitTPA(TPA, 10);
      FilterPointsPie(TPA, 250.0, 340.0, 0.0, 69.0, MMCX, MMCY);
      P := MiddleTPA(TPA);
      GateColor := GetColor(P.x, P.y);
      Result := (GateColor > 0)
        If Result Then
          MouseFlag(P.x, P.y + 5, 2, 2, 0);
    End;

    Function OpenGate_Prime : Boolean;
    Begin
      If FindObjCustom(x, y, ['Gate'], [4808555, 3559518, 1054232, 1053975], 25) Then
        MMouse(x, y, 0, 0);
        Wait(200 + Random(200));
        Result := IsUpText('lose');
      If Result Then Exit;
      If IsUpText('pen') Then
        Mouse(x, y, 0, 0, True);
      Wait(1000 + Random(2000));
      Result := True;
    End;

    Function OpenGate : Boolean;
    Label Cont;
    Var TPA : Array Of TPoint;
        ATPA : T2DPointArray;
        I : Integer;
        Arr : TIntegerArray;
    Begin
      Players[CurrentPlayer].Loc := 'Trying to Open Gate';
      FindNormalRandoms;

      Result := OpenGate_Prime;
      If Result Then Exit;

      Arr := [3425614, 3161671, 3032658];
      MouseSpeed := 25;
      For I := 0 To High(Arr) Do
        FindColorsSpiralTolerance(MMCX, MMCY, TPA, Arr[I], MSX1, MSY1, MSX2, MSY2, 10);
      If Length(TPA) > 0 Then
      Begin
        ATPA := TPAtoATPAEx(TPA, 3, 5);
        SortATPAFromFirstPoint(ATPA, Point(MSCX, MSCY));
        For I := 0 To High(ATPA) Do
        If MiddleTPAEx(ATPA[I], x, y) Then
        Begin
          MMouse(x, y, 0, 0);
          Wait(190 + Random(10));
          If IsUpText('pen') Then
          Begin
            MouseFlag(x, y, 0, 0, 0);
            GoTo Cont;
          End Else
          Begin
          If IsUpText('lose') Then GoTo Cont;
            If Not IsUpText('lose') Or Not IsUpText('pen') Then
              Result := False
            Else
            Begin
              Cont :
              Result := True;
              MouseSpeed := 15;
              Exit;
            End;
           End;
       End;
     End;
    End;

    Procedure WeStuck;
    Var TPA : Array Of TPoint;
    Begin
      FindColorsTolerance(TPA, 1523801, MSX1, MSY1, MSX2, MSY2, 2);
      If Length(TPA) > 200 Then
        MouseFlag(MMCX - 50, MMCY, 10, 10, 0);

      FindColorsTolerance(TPA, 5988193, MSX1, MSY1, MSX2, MSY2, 2);
      If Length(TPA) > 400 Then
        MouseFlag(MMCX, MMCY + 30, 10, 10, 0);

      FindNormalRandoms;
    End;

    Function FilterFights(Var x, y : Integer) : Boolean;
    Var
      xx, yy : Integer;
    Begin
      If IsFightAt(xx, yy) Then
        GetMousePos(x, y);
      Result := X > 0;
    End;


    Function FindCow_Prime() : Boolean;
    Label Lab0l;
    Begin
     MouseSpeed := 30;
     Try
        Lab0l :
        Mr := FindObjRecordEx(x, y, ObjectRecord, MSX1, MSY1, MSX2, MSY2, True, True);

        If IsUpText('ilk') Then Exit Else
          Result := Mr;

        If Not Result Then Exit Else
        Wait(100 + Random(50));

        If IsFightAt(x - 5, y + 8) Then Begin Result := False; Exit End;
       
        If Not IsUpText('ow') Then GoTo Lab0l;
       
          GetMousePos(x, y);

      Except WriteLn('Could not get a DIB handle :( in FindCow_Prime!');

      Finally End;
    End;

    Function InFight2 : Boolean; //Modded by me
    Label Beginning;

    Var
      TPA, TPA2, TPA1 : TPointArray;
      I : Integer;
    Begin
      Beginning :
      Result := InFight;
      Begin
        If InFight Then Exit;

        FindColorsTolerance(TPA1, 198716, MSCX - 65, MSCY - 65, MSCX + 65, MSCY + 65, 0);
        FindColorsTolerance(TPA2, 10496, MSCX - 65, MSCY - 65, MSCX + 65, MSCY + 65, 0);

        TPA := CombineTPA(TPA1, TPA2);
      If High(TPA) = -1 Then
        Exit
      Else Begin
        Result := True ;
        Inc(I);
        If I > 40 Then Exit;
      End;
       GoTo Beginning;
     { FindColorsTolerance(TPA2, 198716, MSCX - 70, MSCY - 70, MSCX + 70, MSCY + 70,0);
      If High(Length(TPA) + Length(TPA2) - 2) > 0 Then
      Begin
        Box := GetTPABounds(CombineTPA(TPA, TPA2))
        Arr := GetColorsBox(Box.x1, Box.y1, Box.x2, Box.y2, True);
      End;
      For I := 0 To High(Arr) Do
        FindColorsTolerance(G, Arr[I], MSCX - 70, MSCY - 70, MSCX + 70, MSCY + 70, 0);
      If High(Length(G) + Length(R) - 2) > 0 Then
      Begin
        G := RemovePointsInBox(G, IntToBox(233, 134, 282, 172));
        R := RemovePointsInBox(R, IntToBox(233, 134, 282, 172));
      End;
      Result := (High(CombineTPA(G, R)) > 0);       }

     End;
    End;

    Function FindCow : Boolean;
    Var TPA : Array Of TPoint;
        I : Integer;
        ATPA : T2DPointArray;
        T : Boolean;
    Begin
      Players[CurrentPlayer].Loc := 'Finding Cow';
      MouseSpeed := 19;
      WeStuck;

      If FindCow_Prime Then
      Begin
        Result := True;
        MR := True;
        MouseSpeed := 15;
        Exit;
      End;
     
      For I := 0 To High(Cow) Do
      Begin
        FindColorsSpiralTolerance(MMCX, MMCY, TPA, Cow[I].CowColor, MSX1, MSY1, MSX2, MSY2, 15);
        If High(TPA) > -1 Then
          T := True;

        //WriteLn(Length(TPA));
        If T = True Then
        Begin
          WriteLn('Finding '+Cow[I].CowType+' Cow');
          Break;
        End;
      End;
      SortATPAFromFirstPoint(ATPA, Point(MSCX, MSCY));
      Result := InFight2;
      If Result Then Exit;
      If Length(TPA) > 0 Then
      Begin
        ATPA := TPAtoATPA(TPA, 30);
        For I := 0 To High(ATPA) Do
        If MiddleTPAEx(ATPA[I], x, y) Then
        Begin
          If FilterFights(x, y) Then
             RemovePointsInBox(ATPA[I], IntToBox(x - 50, y - 50, x + 50, y + 50));

          Result := InFight2;
          If Result Then Exit;
         
          //DebugTPA(ATPA[I], '');
          //TerminateScript;
          MMouse(x, y, 0, 0);
         
          Wait(200 + Random(10));
          If IsUpText('ilk') Then
          Begin
            InvertATPA(ATPA);
            If Random(4) = 1 Then
            Begin
              WriteLn('TPA Finding mucking up becuase of Milk Cow');
              WriteLn('Randomly Relocating');
              MouseFlag(MMCX + 10, MMCY + 10, 20, 20, 0);
              Result := False;
              Break;
            End;
           MR := False;
          End Else
          //For I := 0 To High(Cow) Do
          If IsUpText('Cow') Then
          Begin
            GetMousePos(x, y);
            Result := True;
            MR := True;
            MouseSpeed := 15;
            Exit;
          End;
        End;
       MouseSpeed := 15;
      End;
      Result := False;
      MR := False;
    End;

    Procedure WalkToCows;
    Label gg;
    Var F : Integer;
    Begin
      Players[CurrentPlayer].Loc := 'Walking To Cows';
      GoTo GG;
      GG :
      If Not LinearWalkX(FindWaterColor, 20, 60, 0, 0) Then
       If Not LinearWalkX(FindWaterColor, 25, 65, -2, 3) Then
         N('Lost Walk [1] in WalkToCows')
       Else
         FFlag(0);

       If Not LinearWalk(FindFallyRoadColor, 0, 69, 0, 0) Then
        If Not LinearWalk(FindFallyRoadColor, 5, 66, 3, 4) Then
          N('Lost Walk [2] in WalkToCows')
        Else
          FFlag(0);

       If FindRoadColor = 0 Then
         MouseFlag(MMCX, MMCY - 50, 5, 5, 0);
       If Not LinearWalk(FindRoadColor, 0, 62, 0, 0) Then
        If Not LinearWalk(FindRoadColor, -20, 52, 0, 0) Then
          N('Lost Walk [3] in WalkToCows')
        Else
          FFlag(0);
        Begin
          If Not FindSymbolIn(x, y, 'tree', 538, 22, 643, 162) Then
          Begin
          If MFF(569, 93, 10, 10) Then
            Wait(800 + Random(801));
          If Not FlagPresent Then
             N('Lost FailSafe [1] in WalkToCows')
          End Else
          MouseFlag(x - 10, y, 0, 0, 5);
          If Not IsMoving(1000) Then
            N('Lost Symbol [1] in WalkToCows - Failsafe[1]')
          Else
           Wait(1);
        End;

        FindNormalRandoms;

        If Not FindGate_MM Then N('Could not find Gate in FindGate_MM') Else
        Begin
        If OpenGate Then
        Begin
          MouseFlag(MMCX, MMCY - RandomRange(15, 45), 5, 5, 0)
          WriteLn('We Are at The Cow Area');
        End Else
        For F := 0 To High(Cow) Do
        If Not Cow[F].Finder() Then
          N('Could not find Gate in FindGate_MM');

         Exit;
        End;
      Wait(1);
    End;


    function PixelShift(x1, y1, x2, y2, step, t: integer): integer; //Marpis
    var
      bmp, bmp2, x, y: integer;
    begin
      bmp := BitmapFromString((x2 -x1), (y2 - y1), '');
      bmp2 := BitmapFromString((x2 -x1), (y2 - y1), '');
      SafeCopyCanvas(GetClientCanvas, GetBitmapCanvas(bmp), x1, y1, x2, y2, 0, 0, (x2 - x1), (y2 -  y1));
      wait(t);
      SafeCopyCanvas(GetClientCanvas, GetBitmapCanvas(bmp2), x1, y1, x2, y2, 0, 0, (x2 - x1), (y2 -  y1));
      for x := 1 to ((x2 - x1)/step) do
       for y := 1 to ((y2 - y1)/step) do
        if FastGetPixel(bmp2, x * step, y * step) <> FastGetPixel(bmp, x * step, y * step) then
         Inc(result);
      FreeBitmap(bmp);
      FreeBitmap(bmp2);
    end;

    function m_IsMoving: boolean;      //Marpis
    begin
     result := PixelShift(MMX1, MMY1, MMX2, MMY2, 5, 200) > 100;
    end;


    Function PickUpHide : Boolean;
    Var TPA : TPointArray;
        P : TPoint;
    Begin
      Players[CurrentPlayer].Loc := 'Picking Up Hides';
      If FindObj(x, y, 'ake', 13619157, 20) Then
        Mouse(x, y, 0, 0, False);

        Wait(400 + Random(200));
      Result := ChooseOption('owhide');
      While FlagPresent Do Wait(100 + Random(200));

      Wait(400 + Random(800));
      If Result Then Exit;

      X := MMCX;
      Y := MMCY;
      Result := FindObjTPA(X, Y, 12171971, 10, 2, 10, 10, 40, ['ake']);
      If Result Then
      Begin
        Mouse(x, y, 0, 0, False);
        Result := ChooseOption('whide');
        Wait(2000 + Random(1000));
        While m_IsMoving Do Wait(200 + Random(200));
       
        Exit;
      End;

      FindColorsTolerance(TPA, 12171971, MSCX - 50, MSCY - 50, MSCX + 50, MSCY + 50, 8);
      If Length(TPA) = 0 Then FindColorsSpiralTolerance(MSCX, MSCY, TPA, 12171971, MSCX - 150, MSCY - 150, MSCX + 150, MSCY + 150, 11);
      If Length(TPA) > 0 Then
      Begin
        SplitTPAEx(TPA, 10, 10);
        P := MiddleTPA(TPA);
        MMouse(P.x, P.y, 0, 0);
        Wait(200 + Random(200));
        If IsUpText('ake') Then
          Mouse(P.x, P.y, 0, 0, False);
        Result := ChooseOption('whide');
        Wait(2000 + Random(1500));
      End;
     FindNormalRandoms;
    End;

    Procedure GetCowHides;
    Label Lol, Lolx, Loly;
    Var TPA : TPointArray;
        IMark, I : Integer;
    Begin
      Players[CurrentPlayer].Loc := 'Killing Cows';
      Repeat
        FindNormalRandoms;
        Lol :
        For I := 0 To High(Cow) Do
        Begin
          If Not Cow[I].Finder() Then Break;
          Begin
            Case Random(3) Of
            0, 2 : Mouse(x, y, 0, 0, True);
            1 : Begin
                  Mouse(x, y, 0, 0, False);
                  Wait(100 + Random(100));
                  ChooseOption('tack');
                End;
            End;
           Break;
          End;
        End;
        Wait(800 + Random(800));
        MouseSpeed := 17;
        While m_IsMoving Do Wait(1300 + Random(800));

        MarkTime(IMark);

        If Not MR Then
        For I := 0 To High(Cow) Do
        Begin
          If Cow[I].Finder() Then
          Begin
            Mouse(x, y, 1, 1, True)
            Wait(100 + Random(300));
            Break;
          End Else
            Break;
        End;

        If Not MR Then GoTo Loly;
       
        I := 0;
        While Not InFight2 or (I >= 30) = False Do
        Begin
          Wait(100 + Random(90));
          Inc(I);
        End;

          If InFight2 Then
            GoTo Lolx
          Else
            GoTo Loly;

        If Not MR Then
        Begin
          Begin
            Loly :
            If FindObj(x, y, 'acks', 1143694, 15) Then
              MouseFlag(MMCX - 20, MMCY + 17, 5, 5, 0)
            Else
              If FindColorsTolerance(TPA, 62965, MMX1, MMY1, MMX2, MMY2, 3) Then
              Begin
                TPA := RemovePointsInBox(TPA, IntToBox(665, 8, 709, 166));
              For I := 0 to High(TPA) Do
              If PointInBox(TPA[I], IntToBox(MMCX - (I*5), MMCY - (I*5), MMCX + (I*5), MMCY + (I*5))) Then
              Begin
                MouseFlag(TPA[I].x, TPA[I].y, 3, 3, 0);
                FindNormalRandoms;
                Break;
              End;
             End;
           End;
         GoTo Lol;
         End;

        Lolx :
        Begin
          If InvFull Then Exit;
          Repeat
            Wait(500 + Random(300));
            AntiBan;
          Until(Not (InFight2)) xOr (TimeFromMark(IMark) > 18000 + Random(2000));
          If PickUpHide Then
            Inc(Hides);
        End;
        XpGained := Round(XpGained + 4.375);

      If InvFull Then Exit;
      Until(InvFull) xOr (Not(LoggedIn));
      If Not LoggedIn Then N('Not Logged In..');
    End;

    Function FindBankers() : Boolean;
    Var TPA : TPointArray;
        ATPA : T2DPointArray;
        TB : TBoxArray;
        II : Integer;

    Begin
      Players[CurrentPlayer].Loc := 'Finding Bankers on Minimap';
      FindNormalRandoms;
      Begin
        FindColorsTolerance(TPA, (iAbs(ClBlue - ClWhite)+1), MMX1, MMY1, MMX2, MMY2, 1);
        ATPA := TPAToATPA(TPA, 20);
        If High(ATPA) = -1 Then Exit Else
          SetArrayLength(TB, High(ATPA));
        For II := 0 To High(TB) Do
        Begin
        TB[II] := GetTPABounds(ATPA[II]);

          If CountColorTolerance(124132, TB[II].x1, TB[II].y1, TB[II].x2, TB[II].y2, 34) >= 20 Then
            Mouse(TB[II].x1, TB[II].y1 + 4, 4, 4, True)
          Else
            Continue;
        End;
        Wait(1600 + Random(400));
        Result := FlagPresent;
        If Result Then
        Begin
          WriteLn('Found Bankers on MiniMap!');
          FFlag(0);
          Exit;
        End Else
        If FindSymbol(x, y, 'bank') Then
        Begin
          WriteLn('Trying Failsafe [1]');
          Mouse(x, y, 0, 0, True)
          Result := True;//m_IsMoving;
          FFlag(0);
        End Else
          N('Could not enter bank in FindBankers');
      End;
    End;

    Function OpenFallyBank : Boolean;
    Var TPA : TPointArray;
        P : TPoint;
        I : Integer;
        ATPA : T2DPointArray;
    Begin
      Players[CurrentPlayer].Loc := 'Opening Falador Bank';
      FindColorsSpiralTolerance(MMCX, MMCY, TPA, 2701894, 1, 1, 518, 224, 15);
      Begin
        SplitTPAEx(TPA, 4, 5);       //Ultra Filteration
        RAaSTPA(TPA, 40);
        ATPA := SplitTPA(TPA, 20);
      End;

      If Length(ATPA) > 0 Then
      For I := 6 To High(ATPA) Do //Skip the few points for faster finding
      Begin
        P := MiddleTPA(ATPA[I]);

        MMouse(P.x, P.y, 0, 0);

        Wait(400 + Random(100));

        If IsUpText('ooth') Then
        Begin
          GetMousePos(x, y);
          Mouse(x, y, 0, 0, False);
          Wait(80 + Random(80));
          If ChooseOption('uickly') Then
            Wait(RandomRange(2001, 4001));

          Result := BankScreen Or PinScreen;
          If Result Then Break;
        End Else

        Continue;
      End;
      If Result Then WriteLn('BankScreen!');
    End;


    Procedure Bank;
    Label Ben, Start;
    Var TPA, TPA2 : TPointArray;
        ATPA : Array Of Array Of TPoint;
        Box : TBox;
    Begin
      GoTo Start;
      Start :
      Players[CurrentPlayer].Loc := 'Bank';
      FindNormalRandoms;
      Ben :
      FindColorsTolerance(TPA, 238, MMCX - 80, MMCY, 731, 165, 15);
      Begin
        //SortCircleWise(TPA, MMCX, MMCY, 10, False, False);
        TPA := FilterDropDots(TPA);
        FilterPointsPie(TPA, -90.7, 90.2, 10.0, 75.1, MMCX, MMCY);
        ATPA := TPAToATPAEx(TPA, 3, 1);
        {}InvertATPA(ATPA);{}                     //TPA's Bloody Awesome!
        If Length(ATPA) > 0 Then
        If MiddleTPAEx(ATPA[0], x, y) Then
          Mouse(x - 3, y - 5, 5, 5, True);
         
        While m_IsMoving Do Wait(800 + Random(800));

        FindSymbols(TPA2, 'tree')
        If Not Length(TPA2) = 2 Then
        Begin
          Mouse(560, 92, 10, 10, True);
          FFlag(0);
          GoTo Ben;
        End;
      End;

      If Not OpenGate Then N('Couldnt Open Gate in Bank');
      If Not FindSymbolIn(x, y, 'tree', 627, 1, 714, 169) Then
        N('Lost Walk [1] in Bank')
      Else
      Begin
        Mouse(x, y - 10, 2, 2, True);
        Wait(5000 + Random(3000));
        FFlag(0);
      End;
      FindNormalRandoms;
      Begin
      If FindColorsTolerance(TPA, FindFallyRoadColor, MMX1, MMY1, MMX2, MMY2, 0) Then
      Begin
        RAaSTPA(TPA, 90); //Points Clashed, so I went for higher density
        Box := GetTPABounds(TPA);
        MouseBox(Box.x1 + (7 + Random(3)), Box.y1 + (7 - Random(3)), Box.x2 - 2, Box.y2 - 3, 1);
      End Else
      If Not LinearWalk(FindFallyRoadColor, 130, 70, -2, 3) Then
        N('Lost Walk [2] in Bank')
      Else
        FFlag(0);
       
      Begin
        If Not CountColor(FindWaterColor, MMX1, MMY1, MMX2, MMY2) > 10 Then
          N('Lost in Bank')
        Else
        Begin
        If Not LinearWalk(FindFallyRoadColor, 160, 70, 0, 0) Then
         If Not LinearWalk(FindWaterColor, 165, 72, 0, 0) Then
           N('Lost Walk [3] in Bank')
         Else
           FFlag(0);
           
        If Not LinearWalk(FindFallyRoadColor, 180, 73, 0, 0) Then
         If Not LinearWalk(FindFallyRoadColor, 176, 72, 0, 0) Then
           N('Lost Walk [4] in Bank')
         Else
           FFlag(0);
           
       If Not LinearWalk(FindFallyRoadColor, 180, 53, 0, 0) Then
         If Not LinearWalk(FindFallyRoadColor, 176, 50, 0, 0) Then
           N('Lost Walk [5] in Bank')
         Else
         Begin
           Wait(3000 + Random(4000));
           FFlag(0);
         End;
        FindNormalRandoms;

       If Not FindBankers Then
         N('Lost In Finding, in FindBankers')
       Else
         If OpenFallyBank Then
         Begin
           If PinScreen Then
             InPin(Players[CurrentPlayer].Pin);
             Wait(500 + Random(500));
           If BankScreen Then
             DepositAll();
             If CloseBank Then
             Begin
               Inc(Banked);
               Inc(Players[CurrentPlayer].Integers[77]);
             End;
          End;
        End;
      End;
      FindNormalRandoms;
     End;
    End;

    Procedure ProgressReport(Loc : String);
    Var I, Space, Xpl : Integer;
    Begin
      Xpl := Trunc((3600000 / GetTimeRunning) + 1);
      SRLRandomsReport;

      If Length(TimeRunning) > 30 Then
        Space := 60
      Else
        Space := 50;

      Begin
        WriteLn('');
        WriteLn(Padr('(|'+Replicate('>', Space - 2), Space) + '|)');
        WriteLn(Padr('(|     Cow Killer + Hide Banker    ', Space) + '|)');
        WriteLn(Padr('(|         Version '+Ver+'         ', Space) + '|)');
        WriteLn(Padr('(|         By NaumanAkhlaQ         ', Space) + '|)');
        WriteLn(Padr('(|       Used '+IntToStr(CurrentPlayer)+' Out Of '+IntToStr(HowManyPlayers)+' !', Space) + '|)');
        WriteLn(Padr('(|'+Replicate('-', Space - 2), Space) + '|)');
        WriteLn(Padr('(|   ~>  Worked For : '+TimeRunning+'.', Space) + '|)');
        WriteLn(Padr('(|   ->  Location = '+Loc+'.', Space) + '|)');
        WriteLn(Padr('(|'+Replicate('>', Space - 2), Space) + '|)');
        WriteLn(Padr('(|    >  Hides Collected - '+IntToStr(Hides)+'.', Space) + '|)');
        WriteLn(Padr('(|    >  Banked - '+IntToStr(Banked)+'.', Space) + '|)');
        WriteLn(Padr('(|    >  XpGained - '+FloatToStr(XpGained)+'.', Space) + '|)');
        WriteLn(Padr('(|    >  Hides Per Hour (HPH) - '+FloatToStr(Xpl * Hides)+'.', Space) + '|)');
        WriteLn(Padr('(|'+Replicate('<', Space - 2), Space) + '|)');
        WriteLn(Padr('(|Written On '+TheTime+' '+TheDate(3)+' !', Space) + '|)');
        WriteLn(Padr('(|'+Replicate('<', Space - 2), Space) + '|)');
        WriteLn(Padr('(| Player Information :', Space) + '|)');
        For I := 0 To High(Players) Do
        Begin
          WriteLn('+++++++++++++');
          WriteLn('                 Player['+IntToStr(I)+']');
          WriteLn('[-} '+ Players[I].Name +' /\ Collected '+IntToStr(Players[I].integers[88])+' Hides! /\ Banked ' +IntToStr(Players[I].integers[77])+' Loads!');
          WriteLn('[-} Gained '+IntToStr(XpGained)+' Fighting Xp! /\ '+ Players[I].Name +#39 +'s Active Is '+BoolToStr(Players[I].Active)+' !');
          If Players[CurrentPlayer].Loc =
           '' Then
            WriteLn('[-} '+Players[I].Name +#39+'s Location is ''Not Yet Used'' !')
          Else
            WriteLn('[-} '+Players[I].Name +#39+'s Location is '+Players[I].Loc+' !');
          WriteLn('+++++++++++++');
        End;
      End;
    End;

    Procedure CheckRun;
    Var Energy : Byte;
        S : String;
    Begin
      Players[CurrentPlayer].Loc := 'Checking Run Status';
      Try
        If Random(2) = 1 Then Begin
         If Low1 In Options Then Energy := 20 + Random(10);
        End Else
         If Medium In Options Then Energy := 40 + Random(10);
      Except
        WriteLn('Error In TInt, RandOff');
      Finally
        If GetMMLevels('run', S) >= Energy Then
          SetRun(True);
      End;
    End;

    Procedure ScriptTerminate;
    Begin
      ProgressReport(Players[CurrentPlayer].Loc);
    End;

    Procedure Checks;
    Var S : String;
    Begin
      If Random(2) = 1 Then CheckRun;
      Status(Players[CurrentPlayer].Loc);
      If IsFKeyDown(2) Then ProgressReport(Players[CurrentPlayer].Loc);
      If IsFKeyDown(5) Then
      Begin
        GetApplication.BringToFront;
        S := ReadLn('What Do you want to say?');
        GetApplication.Minimize;
        Mouse(111, 462, 100, 5, True);
        TypeSend(AddMistakes(S, 30));
      End;
      If IsFKeyDown(4) Then
      Begin
        While InFight2 Do Wait(300 + Random(900));
        NextPlayer(False);
      End;
    End;

    Function Setup : Variant;
    Begin
      Options := [Low1, Medium];
      ActivateClient;
      SymbolAccuracy := 0.45;
      SetUpRecords;
      SRL_Procs[srl_OnRandomCall] := @Checks;
      SRL_Procs[srl_AntiBan] := @Checks;
      {-------------------------------}
        {$IFDEF SMART}
        WriteLn('SMART IS LOADING -');
        SmartSetupEx(WorldNumber, False, True, False);
        SetTargetDc(SMARTGetDC);
        While SmartGetColor(253, 233) <> 1118604 Do
          Wait(10);

        If SmartReady Then
          WriteLn('Loaded');
        {$ENDIF}
      {-------------------------------}
     
      Wait((900 xOr 90) + Random(200));
      If Not LoggedIn Then LoginPlayer;
      SetRun(True);
      Result := 50 Xor 60;
    End;

    Var BK : Integer;
        BackGround : TImage;
        FrmDesign : TForm;
        X2, Y2 : Integer;
        StartPos, StartMousePos : TPoint;
        AreMoving : boolean;
        Memo1 : TMemo;
        Button2 : TButton;
        Button3 : TButton;
        Button4 : TButton;
        Button5 : TButton;
        CB : TCheckBox;
       
    //Const Ver = '0.1';

    //Get Pos = Image Moving Functions Aided by mastaRaymond :)
    Procedure GetPos(Sender1: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

    Begin
      GetMousePos(X2, Y2);
      StartPos := Point(frmDesign.left,frmDesign.top);
      StartMousePos := Point(x2,y2);
      Aremoving := True;
    End;

    Procedure CheckVersion;
    Var S : String;
    Var T : Integer;
    Begin
      Memo1.Lines.Add('');
      MarkTime(T);
      Memo1.Lines.Add('<<<< Version Checker Activated! >>>>');
      Try
        S := GetPage('http://cowkiller.freehostia.com/New%20Text%20Document%20(2).txt');
      Except
      end;
      If S = Ver Then
        Memo1.Lines.Add('Your version is up to date :)')
      Else
      Begin
        Memo1.Lines.Add('Your version is NOT up to date :(');
        Memo1.Lines.Add('Your Version Is '+Ver+', The Newest Version Is '+S);
      End;
    End;


    Procedure DrawCow;
    Begin
      Memo1.Lines.Add('');
      Memo1.Lines.Add('Thank-you for using this script :)');
      Wait(800);
    End;

    Procedure Click(SenderSS : TObject);
    Var F : Integer;
    Begin
      Case SenderSS Of
      Button2 : Begin
                  DrawCow;
                  For F := 240 DownTo 10 Do
                  Begin
                    MakeWindowTransparent(FrmDesign.Handle, F);
                    Wait(2);
                  End;
                  StartScript := True;
                  FrmDesign.ModalResult := mrOk;
                End;

      Button3 : Begin
                  Memo1.Lines.Add('');
                  Memo1.Lines.Add('<<<< Player Form Activated! >>>>');
                  SRLPlayerForm(True, ['Use percision running'], ['Loads To Bank?'], [], []);
                  if(srlpf_TerminateWhenDone)then
                    TerminateScript;
                End;

      Button4 : Try CheckVersion Except Memo1.Lines.Add('< Could Not CheckVersion - Connection Error! >') end;

      CB : Begin
             If Not CB.Checked Then
             Begin
               Memo1.ReadOnly := False
               Memo1.Color := 10666964;
             End Else
             Begin
               Memo1.ReadOnly := True;
               Memo1.Color := 4479587;
             End;
           End;

      //Button5 :
      End;
    End;

    Procedure GetPosX(Sender2: TObject; Shift: TShiftState; X, Y: Integer);

    Begin
      if AreMoving then
      begin
        GetMousePos(X2, Y2);
        FrmDesign.Left := StartPos.x +  (x2-StartMousePos.x);
        FrmDesign.Top := StartPos.y +  (y2-StartMousePos.y);
      end;
    {  BackGround.Left := Fx[2];
      BackGround.Top := Fy[2];}

    End;

    Procedure GetPosY(Sender3: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

    Begin
      GetMousePos(X2,y2);
      FrmDesign.Left := StartPos.x +  (x2-StartMousePos.x);
      FrmDesign.Top := StartPos.y +  (y2-StartMousePos.y);
      AreMoving := False;
    {  BackGround.Left := Fx[2];
      BackGround.Top := Fy[2];}

    End;


    Procedure IsClose(Sender4: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    Begin
      GetMousePos(X2, Y2);
    End;

    Procedure IsClose2(Sender5: TObject; Shift: TShiftState; X, Y: Integer);
    Begin
      GetMousePos(X2, Y2);
    End;

    Procedure Close(Sender5: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    Begin
      GetMousePos(X, Y);
      //If (X = X2) And (Y = Y2) Then
        FrmDesign.Close;
      WriteLn('User called = Form End [0.01]');
      StartScript := False;
    End;


    Procedure Form;
    Var BK2 : TImage;
    Begin
      ClearDebug;
      frmDesign := CreateForm;
      frmDesign.Left := 250;
      frmDesign.Top := 195;
      frmDesign.Width := 462;
      frmDesign.BorderIcons := [];
      frmDesign.BorderStyle := bsNone;
      frmDesign.Height := 399;
      frmDesign.Caption := '                                    NAQ'#39's - Cow Killer + Hide Banker Xtreme!';
      frmDesign.Color := clBtnFace;
      frmDesign.Font.Color := clWindowText;
      frmDesign.Font.Height := -11;
      frmDesign.Font.Name := 'Arial';
      frmDesign.Font.Style := [];
      frmDesign.Visible := False;
      frmDesign.PixelsPerInch := 96;
      frmDesign.Position := poMainFormCenter;

      CB := TCheckBox.Create(frmDesign);
      CB.Parent := frmDesign;
      CB.Left := 22;
      CB.Top := 378;
      CB.Caption := 'Read Only?';
      CB.Width := 150;
      CB.Height := 15;
      CB.TabOrder := 18;
      CB.ShowHint := True;
      CB.Hint := 'Click this to make the form memo box Read - Only!';
      CB.OnClick := @Click;
     
      Background := TImage.Create(frmDesign);
      Background.Parent := frmDesign;
      Background.SetBounds(0, 0, 462, 399);
      BackGround.OnMouseDown := @GetPos;
      BackGround.OnMouseMove := @GetPosX;
      BackGround.OnMouseUp := @GetPosY;
      Try
        BK := LoadBitmap(ScriptPath+'my back(1).bmp');
      Except end;
      SafeCopyCanvas(GetBitmapCanvas(BK), Background.Canvas, 0, 0, 462, 399, 0, 0, 462, 399);
      FreeBitmap(BK);

      BK2 := TImage.Create(frmDesign);
      BK2.Parent := frmDesign;
      BK2.SetBounds(429, 6, 28, 27);
      BK2.OnMouseDown := @IsClose;
      BK2.OnMouseUp := @Close;
      BK2.ShowHint := True;
      BK2.Hint := 'Click This X To Close The Scipt :(';
      SafeDrawBitmap(W, BK2.Canvas, (MSCX Xor MSCY - (85 * 5)), 0 mod 2);
      FreeBitmap(W);

      Memo1 := TMemo.Create(frmDesign);
      Memo1.Parent := frmDesign;
      Memo1.Left := 22;
      Memo1.Top := 144;
      Memo1.Width := 300;
      Memo1.Color := 10666964;
      Memo1.WordWrap := True;
      Memo1.Height := 233;
      Memo1.ScrollBars := ssBoth;
      Memo1.Lines.Add('Welcome to Fally Cow Hider Xtreme - Setup Form');
      Memo1.Lines.Add('Please Select an Operation to Perform!!!');
      Memo1.Lines.Add('');
      Memo1.Lines.Add('Current Version you are using is '+Ver);
      Memo1.Lines.Add(Replicate('>', 40));
      Memo1.TabOrder := 8;
      Memo1.ShowHint := True;
      Memo1.Hint := 'Info is Displayed Here!';
      Memo1.ReadOnly := False;
      Memo1.Enabled := True;
     
      Button2 := TButton.Create(frmDesign);
      Button2.Parent := frmDesign;
      Button2.Left := 340;
      Button2.ShowHint := True;
      Button2.Hint := 'Press This To Start The Script * '+UpperCase('Make Sure you Have Filled In Your Player Information First :) *');
      Button2.Top := 296;
      Button2.Width := 105;
      Button2.Font.Name := 'Comic Sans MS';
      Button2.Font.Size := -17;
      Button2.Height := 43;
      Button2.Caption := 'Start Script';
      Button2.TabOrder := 0;
      Button2.OnClick := @Click;

      Button3 := TButton.Create(frmDesign);
      Button3.Parent := frmDesign;
      Button3.Left := 340;
      Button3.ShowHint := True;
      Button3.Hint := 'Setup all your player details here :)';
      Button3.Top := 144;
      Button3.Width := 105;
      Button3.Height := 33;
      Button3.Caption := 'Setup Players';
      Button3.TabOrder := 10;
      Button3.OnClick := @Click;

      Button4 := TButton.Create(frmDesign);
      Button4.Parent := frmDesign;
      Button4.Left := 340;
      Button4.ShowHint := True;
      Button4.Hint := 'This will connect to my webiste for updates (Lags for approx. 3 seconds)';
      Button4.Top := 192;
      Button4.Width := 105;
      Button4.Height := 33;
      Button4.Caption := 'Check for Updates';
      Button4.TabOrder := 11;
      Button4.OnClick := @Click;

      Button5 := TButton.Create(frmDesign);
      Button5.Parent := frmDesign;
      Button5.Left := 340;
      Button5.ShowHint := True;
      Button5.Hint := 'Will connect to my site to get the latest progress report';
      Button5.Top := 240;
      Button5.Width := 105;
      Button5.Height := 33;
      Button5.Caption := 'Get Latest Proggie';
      Button5.TabOrder := 12;
      Button5.OnClick := @Click;

      frmDesign.ShowModal;
    End;

    procedure SafeInitForm;
    var
      V : TVariantArray;
    begin
      setarraylength(V, 0);
      ThreadSafeCall('Form', v);
    end;

    procedure ShowFormModal;
    begin
      ClearDebug;
    end;

    procedure SafeShowFormModal;
    var
      v: TVariantArray;
    begin
      V := [];
      setarraylength(V, 0);
      ThreadSafeCall('ShowFormModal', v);
    end;

    Procedure FormShow;
    Begin
      SafeInitForm;
      SafeShowFormModal;
    End;

    Procedure DoSig;
    Begin
      ChangeReportWidth(260);
      WriteLn(' ______                                          ______             ');
      Wait(50);
      WriteLn('|  ___ \                                        / _____)            ');
      Wait(50);
      WriteLn('| |   | | ____ _   _ ____   ____ ____  _____   | /      ___  _ _ _  ');
      Wait(50);
      WriteLn('| |   | |/ _  | | | |    \ / _  |  _ \(___  )  | |     / _ \| | | | ');
      Wait(50);
      WriteLn('| |   | ( ( | | |_| | | | ( ( | | | | |/ __/   | \____| |_| | | | | ');
      Wait(50);
      WriteLn('|_|   |_|\_||_|\____|_|_|_|\_||_|_| |_(_____)   \______)___/ \____| ');
      Wait(50);
      WriteLn('                                                                    ');
      Wait(500);
      WriteLn(' _    _ _ _ _                                _                      ');
      Wait(50);
      WriteLn('| |  / |_) | |                              | |                     ');
      Wait(50);
      WriteLn('| | / / _| | | ____  ____     ____ ____   _ | |                     ');
      Wait(50);
      WriteLn('| |< < | | | |/ _  )/ ___)   / _  |  _ \ / || |                     ');
      Wait(50);
      WriteLn('| | \ \| | | ( (/ /| |      ( ( | | | | ( (_| |                     ');
      Wait(50);
      WriteLn('|_|  \_)_|_|_|\____)_|       \_||_|_| |_|\____|                     ');
      Wait(50);
      WriteLn('                                                                    ');
      Wait(500);
      WriteLn(' _     _ _     _                  _    _                            ');
      Wait(50);
      WriteLn('| |   | (_)   | |                \ \  / /                           ');
      Wait(50);
      WriteLn('| |__ | |_  _ | | ____  ____    __\ \/ / |_   ____ ____ ____   ____ ');
      Wait(50);
      WriteLn('|  __)| | |/ || |/ _  )/ ___)  (___)  (|  _) / ___) _  )    \ / _  )');
      Wait(50);
      WriteLn('| |   | | ( (_| ( (/ /| |         / /\ \ |__| |  ( (/ /| | | ( (/ / ');
      Wait(50);
      WriteLn('|_|   |_|_|\____|\____)_|        /_/  \_\___)_|   \____)_|_|_|\____)');
      Wait(900);
      WriteLn('');
    End;


    Procedure MainLoop;
    Begin
      FormShow;
      SRLPlayerForm(False, [], ['Loads To Bank?'], [], []);
      Begin
        FreeForm(FrmDesign);
        ClearDebug;
        If StartScript = False Then TerminateScript Else
          Wait(1);

        SetupSRL;

        If Setup * 1 > 0 Then WriteLn('[Setup] Status - Completed!');
        {{$IFDEF SMART} {
          SetTargetDC(SMARTGetDC);
        {$ENDIF}
    {
          Wait(1);}

      Repeat
        Repeat
          SetAngle(True);
          MakeCompass('S');
          WalkToCows;
          GetCowHides;
          Bank;
          ProgressReport(Players[CurrentPlayer].Loc);
        Until(Banked >= Players[CurrentPlayer].Integers[0]) xOr (Not (LoggedIn));

        If Not LoggedIn Then NextPlayer(False) Else
        Begin
          LogOut;
          NextPlayer(True);
        End;
        ProgressReport(Players[CurrentPlayer].Loc);
      Until(AllPlayersInactive);

      If AllPlayersInactive Then ProgressReport(Players[CurrentPlayer].Loc);
      End;
    End;

    Begin
        {$IfDef SRL_SMART}
          Smart_Server := WorldNumber;
          Smart_Members := False;
          Smart_Signed := True;
          Smart_SuperDetail := False;
        {$ENDIF}
      DoSig;
      W := BitmapFromString(28, 27, 'beNqt1HtQkukewPFXQUFAEJAw75f' +
           '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' +
           'THd/X/MnwDv/nCv');

      MainLoop;
      WriteLn('Thanks for using - Please Post your proggie :-)!');

      Wait(1);
      {---}
    End.

    ..On topic: This looks really, really good. This has a day and night difference from the first one you made. Rep+
    Nice, Well obviously thats why your a member .

  24. #24
    Join Date
    Dec 2009
    Posts
    9
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Well done, thanks for your hard work.

  25. #25
    Join Date
    Jan 2009
    Location
    Turlock/LA, California
    Posts
    1,494
    Mentioned
    3 Post(s)
    Quoted
    66 Post(s)

    Default

    hehe. just threw up my old script (super varrock clay softener) n got a 88%. tried out a newer script that i just made and it uses ATPAs with autocolors primarily for walking procedures (works really well). your tool said there was not any walking lol but VERY nice tool. handy for little things i might have missed

Page 1 of 2 12 LastLast

Thread Information

Users Browsing this Thread

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

Posting Permissions

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