Results 1 to 8 of 8

Thread: Catherby Yew Destroyer 1.2

  1. #1
    Join Date
    Aug 2009
    Location
    Inside the Matrix...yes it has me, and it has you too.
    Posts
    1,896
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Arrow Catherby Yew Destroyer 1.2

    needs testing pl0x
    NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN

  2. #2
    Join Date
    Nov 2007
    Posts
    326
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    please post more information about the script.

  3. #3
    Join Date
    Mar 2007
    Location
    Alberta, Canada
    Posts
    1,780
    Mentioned
    0 Post(s)
    Quoted
    11 Post(s)

    Default

    Sorry I can't test, but I have a bit of feedback for you.
    First, you have a bunch of wait(1000) with no random. That can help you get banned very easily. Make sure to include randomness. For example,

    SCAR Code:
    wait(1000+random(250));

    I'll post more in a sec, don't wanna get ninja'd.

    Your standards get a bit off in a few places, which you might want to fix up if your considering applying for members ship with this script.

    You use waits for when your walking. Use Flag, which waits for the character to stop walking, so you can walk and wait accurately.

    Secondly about your walking, you have no failsafes! If it fails to walk once, the entire script will crash! Try backing up your walking with a radialwalk or something, so the script isn't done when the walking fails once. Or, use reflection! You have it in your script, so you might as well use it.

    You don't have SMART included! You need SMART for your reflection to work.

    For a sum up, make sure you get that randomness for your waits, fix up your walking, and use more reflection, if you have it in your script anyways.

    And you said you wanted testers, but reflection is down now anyways, so your random detection won't work.

    Hope I helped!

  4. #4
    Join Date
    Feb 2007
    Posts
    3,616
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I'm probably going to post a good amount of stuff that Griff already said, but I'll try not to.

    You can have a separate bank pin for each player. Take advantage of the Strings array in Players:
    SCAR Code:
    with players[0] do
      begin
        Name := ''; //Your Username
        Pass := ''; //Your Password
        Nick := ''; //A nickname to call you by
        Active := true; //True if you are using this account, false if not
        Strings[0] := '2983'; /////@@
        BoxRewards := ['mote', 'ostume', 'Xp']; //Random event rewards
      end;
      {
      }

      with players[1] do
      begin
        Name := '';
        Pass := '';
        Nick := '';
        Active := false;
        Strings[0] := '2983'; /////@@
        BoxRewards := ['mote', 'ostume', 'Xp'];
      end;

    Then, when you want to do InPin, just do
    SCAR Code:
    InPin(Players[CurrentPlayer].Strings[0]);


    Should your script really print out the giant Catherbury Cutter thing each time, or just at the beginning? It's no big deal really, but it could make scrolling through the debug window frustrating.



    In FindDDTM color, why do you use TPA[I]? I is always going to equal 0 there. You could just do TPA[0] and take out the variable. I is commonly used with TPA's in for loops when you want to step through each element of that array.

    The whole function could really be shortened too:

    You have:
    SCAR Code:
    function FindDDTMColor(FindTheDDTMColor: Integer): Integer;
    var
      TPA: TPointArray;
      I, Col: Integer;

    begin
      case FindTheDDTMColor of
        1:   if FindColorsTolerance(TPA, 2654058, MMX1, MMY1, MMX2, MMY2, 10) then
             begin
               Col := GetColor(TPA[I].X, TPA[I].Y);
               Result:= Col;
             end;
             
        2:   if FindColorsTolerance(TPA, 7236721, MMX1, MMY1, MMX2, MMY2, 10) then
             begin
               Col := GetColor(TPA[I].X, TPA[I].Y);
               Result:= Col;
             end;
             
        3:   if FindColorsTolerance(TPA, 2917252, MMX1, MMY1, MMX2, MMY2, 10) then
             begin
               Col := GetColor(TPA[I].X, TPA[I].Y);
               Result:= Col;
             end;

        4:   if FindColorsTolerance(TPA, 2449517, MMX1, MMY1, MMX2, MMY2, 10) then
             begin
               Col := GetColor(TPA[I].X, TPA[I].Y);
               Result:= Col;
             end;

        5:   if FindColorsTolerance(TPA, 7764087, MMX1, MMY1, MMX2, MMY2, 10) then
             begin
               Col := GetColor(TPA[I].X, TPA[I].Y);
               Result:= Col;
             end;
             
      end;
    end;

    Change to:

    SCAR Code:
    function FindDDTMColor(FindTheDDTMColor: Integer): Integer;
    var
      TPA: TPointArray;
      I, Col: Integer;

    begin
      case FindTheDDTMColor of
        1:   FindColorsTolerance(TPA, 2654058, MMX1, MMY1, MMX2, MMY2, 10);
        2:   FindColorsTolerance(TPA, 7236721, MMX1, MMY1, MMX2, MMY2, 10);
        3:   FindColorsTolerance(TPA, 2917252, MMX1, MMY1, MMX2, MMY2, 10);
        4:   FindColorsTolerance(TPA, 2449517, MMX1, MMY1, MMX2, MMY2, 10);
        5:   FindColorsTolerance(TPA, 7764087, MMX1, MMY1, MMX2, MMY2, 10);
      end;
      if(GetArrayLength(TPA) > 0)then
        Result := GetColor(TPA[I].X, TPA[I].Y) else
          Result := 0;
    end;


    In WalkToYew, don't you want to wait until the flag is gone after clicking on the symbol? Try putting an FFlag in there:
    SCAR Code:
    FFlag(0);


    No semi colons after then's and begins.

    You really should make the wait in ChopYew random:
    SCAR Code:
    wait(15000+random(5000));

    Plus I would make the wait smaller so the script checks for randoms more often.

    In WalkToBank, you have this:
    SCAR Code:
    procedure WalkToBank;
    begin
      begin
        ClearDebug;
        Setrun(true);
        DDTM1 := DDTMWalk(1);
          If DTMRotated(DDTM1, x, y, MMX1, MMY1, MMX2, MMY2) then
            Mouse(x, y, 0, 0, true);
            WriteLn('Step one of WalkToBank successful');
      end;

    Why the begin/end there? Change to:
    SCAR Code:
    procedure WalkToBank;
    begin
        ClearDebug;
        Setrun(true);
        DDTM1 := DDTMWalk(1);
          If DTMRotated(DDTM1, x, y, MMX1, MMY1, MMX2, MMY2) then
          begin
            Mouse(x, y, 0, 0, true);
            WriteLn('Step one of WalkToBank successful');
          end;

    Also, note the begin end after DTMRotated. You need a begin/end after an if/then or else if executing more then one statement/line of code. This is very important to remember, or you will have many head aches debugging problems in your scripts.

    You really need to add randomness to your waits in here too. Although FFlag's would be much more efficient, as I think was mentioned above by Griff.

    Why do you have all those begins/ends in the middle of nowhere in that procedure too?

    You also have a very big error you probably made with pasting. It checks for DDTM 1 every time instead of the DDTM that was just made.

    Shortened and fixed up the problem with the DDTM number:
    SCAR Code:
    procedure WalkToBank;
    begin
        ClearDebug;
        Setrun(true);
        DDTM1 := DDTMWalk(1);
          If DTMRotated(DDTM1, x, y, MMX1, MMY1, MMX2, MMY2) then
            Mouse(x, y, 0, 0, true);
            WriteLn('Step one of WalkToBank successful');
      end;
      wait(7000)
        DDTM2 := DDTMWalk(2);
          If DTMRotated(DDTM2, x, y, MMX1, MMY1, MMX2, MMY2) then
            Mouse(x, y, 0, 0, true);
            WriteLn('Step two of WalkToBank successful');
      wait(7000)
        DDTM3 := DDTMWalk(3);
          If DTMRotated(DDTM3, x, y, MMX1, MMY1, MMX2, MMY2) then
            Mouse(x, y, 0, 0, true);
            WriteLn('Step three of WalkToBank successful');
      wait(7000)
        DDTM4 := DDTMWalk(4);
          If DTMRotated(DDTM4, x, y, MMX1, MMY1, MMX2, MMY2) then
            Mouse(x, y, 0, 0, true);
            WriteLn('Step four of WalkToBank successful');
      wait(7000)
        DDTM5 := DDTMWalk(5);
          If DTMRotated(DDTM5, x, y, MMX1, MMY1, MMX2, MMY2) then
            Mouse(x, y, 0, 0, true);
            WriteLn('Step five of WalkToBank successful');
      ProgressReport;
      wait(7000);
    end;

    It could also just be shortened to this:
    SCAR Code:
    procedure WalkToBank;
    var i, TheDDTM: Integer;
    begin
      ClearDebug;
      Setrun(true);
      for i := 1 to 5 do
      begin
        TheDDTM := DDTMWalk(i);
          If DTMRotated(TheDDTM, x, y, MMX1, MMY1, MMX2, MMY2) then
          begin
            Mouse(x, y, 0, 0, true);
            WriteLn('Step ' + IntToStr(i) + ' of WalkToBank successful');
            FFlag(0);
          end;
      end;
      ProgressReport;
    end;

    Much better, right?


    In BankYews:
    SCAR Code:
    if IsUpText('ew logs') then
        begin
          Wait(80 + random(100));
          Mouse(x, y, 4, 3, false);
          ChooseOption('All');
        end;

    You need to use a GetMousePos and click in the same spot you moved the mouse to:
    SCAR Code:
    if IsUpText('ew logs') then
        begin
          GetMousePos(x,y);
          Wait(80 + random(100));
          Mouse(x, y, 0, 0, false);
          ChooseOption('All');
        end;

    This will help avoid miss clicks and look more human like by clicking in the same spot you moved the mouse to originally.


    WalkToBank could be shortened and should be fixed in the same way I showed you in WalkFromBank. You also never use the Dynamic (D) part of your DDTM's at all. You should try doing if not FindDTM then increase tolerance and area size, do it again...etc. using a for loop. Check out the tutorial island section for more information.

    You are missing a few if not loggedin then Exit;'s on your walking and some other functions.


    Put
    SCAR Code:
    if(not(LoggedIn))then NextPlayer(False);

    At the end of your main loop. Also reset the amount of loads done if not logged in because you will be switching players.

    The loop should look like this though so that if Numberofloads = i it will switch players and repeat again:

    SCAR Code:
    procedure MainLoop;
    begin
      ClearDebug;
      SetupSRL;
      DeclarePlayers;
      GraphicsSet := true;
      if not loggedin then loginPlayer;
      makecompass('n');
      SetAngle(True);
      DisguiseClient('Windows Updates');
      Disguise('Downloading...');
      WalkToYew;
    repeat
      repeat
        ChopYew;
        WalkToBank;
        BankYews;
        WalkFromBank;
        ProgressReport;
      Until(l = loads);
      NextPlayer(true);
    until(false);
    end;






    Great job though! You are really moving along. You just need a few tweaks here and there and need a little more experience. I suggest working on your walking for now by learning effective ways to use DDTM's, and add more fail safes. Your object finding looks great though

    Good luck! I foresee you becoming an SRL member very soon.
    ~JAD

  5. #5
    Join Date
    Aug 2009
    Location
    Inside the Matrix...yes it has me, and it has you too.
    Posts
    1,896
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by JAD View Post
    Great job though! You are really moving along. You just need a few tweaks here and there and need a little more experience. I suggest working on your walking for now by learning effective ways to use DDTM's, and add more fail safes. Your object finding looks great though

    Good luck! I foresee you becoming an SRL member very soon.
    ~JAD
    thanks ill take all what you said into consiteration. my walking i just through together really fast...so yea i realise it is horrible lol

    and this script i am applying to SRL membs with once its finished, so thank you i hope i have your vote

    EDIT: also i just want to point out that giant catherby cutter thing in the debug box, i have a cleardebug command after a few seconds lol

    ~bionicle~
    Last edited by Bionicle; 09-14-2009 at 12:27 AM.
    NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN

  6. #6
    Join Date
    Aug 2008
    Location
    Finland
    Posts
    2,851
    Mentioned
    3 Post(s)
    Quoted
    2 Post(s)

    Default

    Actually, you can do this on declareplayers
    Players[0].Pin := '1234';

    Ask some mod to remove the thread Catherby Yew Destroyer 1.1 and to change the topic of this thread to "Catherby Yew Destroyer", so you don't need to make a new thread everytime you update your script.
    ~~
    Damn I wish I was a member, I need dem yewz 2
    Last edited by marpis; 09-17-2009 at 01:32 AM.

  7. #7
    Join Date
    Oct 2009
    Posts
    37
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    SCAR Code:
    [Runtime Error] : Out Of Range in line 45 in script I:\Documents and Settings\XXJUSTIN100XX\Desktop\Bionicle1800's Catherby Yew Smasher

    Everything is filled out correctly so idk

  8. #8
    Join Date
    Aug 2009
    Location
    Inside the Matrix...yes it has me, and it has you too.
    Posts
    1,896
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    not too sure, but this is probably outdated as it uses some reflection, and reflection is broken atm. i have no desire/motive to update it, sorry .
    NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN NYAN

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
  •