Results 1 to 10 of 10

Thread: Ok, here's the deal, dawgs: Notes on human like script.

  1. #1
    Join Date
    Oct 2006
    Posts
    888
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Ok, here's the deal, dawgs: Notes on human like script.

    JESSI coming along quite well.

    I took a video of myself and my friend playing runescape (he didn't know about it so it would be more random). I then carefully analyzed it to see how a normal human would play. I won't release the video for various reasons. But I learned these things:

    Normally - a human would do this while fighting/mining:

    - Move the mouse randomly while looking for something to kill or for ores to appear.

    - Get bored and move around the arrow keys a lot.

    - When the ore "returns" or there are more monsters spawned, stops moving the mouse and clicks carefully on them.

    - While fighting the monster or waiting to mine the ore, will move around the arrow keys randomly and move th mouse around randomly

    - Sometimes stop moving the mouse or go off screen

    - Chat random stuff

    - Rinse, wash, repeat


    This logic is very useful in developing my include. Just thought I'd share it with you all. Thanks for reading.

  2. #2
    Join Date
    Sep 2006
    Posts
    5,219
    Mentioned
    4 Post(s)
    Quoted
    1 Post(s)

    Default

    Good stuff. Keep it up.

  3. #3
    Join Date
    Oct 2006
    Posts
    888
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Boreas View Post
    Good stuff. Keep it up.
    Thanks, Boreas, could you test this out for me?
    It's a simple sine + random mouse movements using some arrays.

    SCAR Code:
    {.Script Info:
    # ScriptName  = Sine test.
    # Author      = Solarwind
    # Description = More Advanced Mouse functions.
    # Version     = 0.01
    # Date        = October 31, 2006.
    # Comments    = ..::[  Use Linux  ]::..
    /Script Info}


    {=================================================================================================]
    [                                                                                                 ]
    [           ____            ___                                                __                 ]
    [          /\  _`\         /\_ \                                __            /\ \                ]
    [          \ \,\L\_\    ___\//\ \      __     _ __   __  __  __/\_\    ___    \_\ \               ]
    [           \/_\__ \   / __`\\ \ \   /'__`\  /\`'__\/\ \/\ \/\ \/\ \ /' _ `\  /'_` \              ]
    [             /\ \L\ \/\ \L\ \\_\ \_/\ \L\.\_\ \ \/ \ \ \_/ \_/ \ \ \/\ \/\ \/\ \L\ \             ]
    [             \ `\____\ \____//\____\ \__/.\_\\ \_\  \ \___x___/'\ \_\ \_\ \_\ \___,_\            ]
    [              \/_____/\/___/ \/____/\/__/\/_/ \/_/   \/__//__/   \/_/\/_/\/_/\/__,_ /            ]
    [                                                                                                 ]
    [                                                                                                 ]
    [                                                                                                 ]
    [=================================================================================================}


    Program New;
    {.include SRL/SRL.scar}

    Type
         CoArray = Record
         x, y : Integer;
         
         End;


    Function MakePath() : Array Of CoArray;

         Var
              NArray : Array Of CoArray;
              i : Integer;

         Begin
              i := 0;
             
              SetArrayLength(NArray, 100);

              Repeat

                   NArray[i].x := i * 10 + Random(10);
                   NArray[i].y := Round(Sin(i) * 75) + Random(10);
                   
                   i := i + 1;

              Until(i = 100)
             

             
              Result := NArray;

         End;
         

         
    Var
         myarray : Array of CoArray;
         i : Integer;

    Begin

         SetupSRL;

         SetArrayLength(myarray, 100000)

         myarray := MakePath();
         
         MMouse(500, 500, 0, 0);
         Sleep(10)
         
         Repeat
         
              MMouse(myarray[i].x + 500, myarray[i].y + 500, 0, 0);
              i := i + 1;
              Sleep(5);
         
         Until(i = 100)


         WriteLn('Array length of myarray is: ' + IntToStr(GetArrayLength(myarray)));


    End.

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

    Default

    Wow thats pretty neat! And thats just an example script, I can't imagine how your managing to write this. The final version is going to blow people away.

  5. #5
    Join Date
    Sep 2006
    Posts
    5,219
    Mentioned
    4 Post(s)
    Quoted
    1 Post(s)

    Default

    Run those on paint with pencil selected. Notice the differences. The first one has double the points and the i is multiplied by half as much. These 2 things balance each other out. Which is why the waves have the same height and width. Yet the first one looks better because there are more points. It's like a picture with many small pixels looks better than one with a less big pixels. Also since the first one is smaller the random is smaller. Just keep on playing with the numbers til it looks human.


    Code:
    {.Script Info:
    # ScriptName  = Sine test.
    # Author      = Solarwind
    # Description = More Advanced Mouse functions.
    # Version     = 0.01
    # Date        = October 31, 2006.
    # Comments    = ..::[  Use Linux  ]::..
    /Script Info}
    
    {=================================================================================================]
    [                                                                                                 ]
    [           ____            ___                                                __                 ]
    [          /\  _`\         /\_ \                                __            /\ \                ]
    [          \ \,\L\_\    ___\//\ \      __     _ __   __  __  __/\_\    ___    \_\ \               ]
    [           \/_\__ \   / __`\\ \ \   /'__`\  /\`'__\/\ \/\ \/\ \/\ \ /' _ `\  /'_` \              ]
    [             /\ \L\ \/\ \L\ \\_\ \_/\ \L\.\_\ \ \/ \ \ \_/ \_/ \ \ \/\ \/\ \/\ \L\ \             ]
    [             \ `\____\ \____//\____\ \__/.\_\\ \_\  \ \___x___/'\ \_\ \_\ \_\ \___,_\            ]
    [              \/_____/\/___/ \/____/\/__/\/_/ \/_/   \/__//__/   \/_/\/_/\/_/\/__,_ /            ]
    [                                                                                                 ]
    [                                                                                                 ]
    [                                                                                                 ]
    [=================================================================================================}
    
    Program New;
    {.include SRL/SRL.scar}
    
    Type
         CoArray = Record
         x, y : Integer;
    
         End;
    
    
    Function MakePath() : Array Of CoArray;
    
         Var
              NArray : Array Of CoArray;
              i : Integer;
    
         Begin
              i := 0;
    
              SetArrayLength(NArray, 100);
    
              Repeat
    
                   NArray[i].x := i*15 + Random(10);
                   NArray[i].y := Round(Sin((i/2)*1) *50) + Random(1);
    
                   i := i + 1;
    
              Until(i =40)
    
    
    
              Result := NArray;
    
         End;
    
    
    
    Var
         myarray : Array of CoArray;
         i : Integer;
    
    Begin
    
         SetupSRL;
    
         SetArrayLength(myarray, 100000)
         //mousespeed:=30;
         myarray := MakePath();
    
         MMouse(50, 200, 0, 0);
         holdmouse(50,200,true);
         Sleep(10) Repeat
               //repeat
                 //  wait(4);
                   //until isfkeydown(11);
              MMouse(myarray[i].x + 50, myarray[i].y + 200, 0, 0);
              i := i + 1;
              Sleep(5);
    
         Until((i = 40) or isfkeydown(12))  ;
         getmousepos(x,y);
         releasemouse(x,y,true);
    
         WriteLn('Array length of myarray is: ' + IntToStr(GetArrayLength(myarray)));
    
    
    End.


    Code:
    {.Script Info:
    # ScriptName  = Sine test.
    # Author      = Solarwind
    # Description = More Advanced Mouse functions.
    # Version     = 0.01
    # Date        = October 31, 2006.
    # Comments    = ..::[  Use Linux  ]::..
    /Script Info}
    
    {=================================================================================================]
    [                                                                                                 ]
    [           ____            ___                                                __                 ]
    [          /\  _`\         /\_ \                                __            /\ \                ]
    [          \ \,\L\_\    ___\//\ \      __     _ __   __  __  __/\_\    ___    \_\ \               ]
    [           \/_\__ \   / __`\\ \ \   /'__`\  /\`'__\/\ \/\ \/\ \/\ \ /' _ `\  /'_` \              ]
    [             /\ \L\ \/\ \L\ \\_\ \_/\ \L\.\_\ \ \/ \ \ \_/ \_/ \ \ \/\ \/\ \/\ \L\ \             ]
    [             \ `\____\ \____//\____\ \__/.\_\\ \_\  \ \___x___/'\ \_\ \_\ \_\ \___,_\            ]
    [              \/_____/\/___/ \/____/\/__/\/_/ \/_/   \/__//__/   \/_/\/_/\/_/\/__,_ /            ]
    [                                                                                                 ]
    [                                                                                                 ]
    [                                                                                                 ]
    [=================================================================================================}
    
    Program New;
    {.include SRL/SRL.scar}
    
    Type
         CoArray = Record
         x, y : Integer;
    
         End;
    
    
    Function MakePath() : Array Of CoArray;
    
         Var
              NArray : Array Of CoArray;
              i : Integer;
    
         Begin
              i := 0;
    
              SetArrayLength(NArray, 100);
    
              Repeat
    
                   NArray[i].x := i*30 + Random(10);
                   NArray[i].y := Round(Sin((i)*1) *50) + Random(1);
    
                   i := i + 1;
    
              Until(i =20)
    
    
    
              Result := NArray;
    
         End;
    
    
    
    Var
         myarray : Array of CoArray;
         i : Integer;
    
    Begin
    
         SetupSRL;
    
         SetArrayLength(myarray, 100000)
         //mousespeed:=30;
         myarray := MakePath();
    
         MMouse(50, 200, 0, 0);
         holdmouse(50,200,true);
         Sleep(10) Repeat
               //repeat
                 //  wait(4);
                   //until isfkeydown(11);
              MMouse(myarray[i].x + 50, myarray[i].y + 200, 0, 0);
              i := i + 1;
              Sleep(5);
    
         Until((i = 20) or isfkeydown(12))  ;
         getmousepos(x,y);
         releasemouse(x,y,true);
    
         WriteLn('Array length of myarray is: ' + IntToStr(GetArrayLength(myarray)));
    
    
    End.

  6. #6
    Join Date
    Jun 2006
    Location
    USA
    Posts
    1,828
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)

    Default

    Can Jagex see that how you MOVE your mouse?

  7. #7
    Join Date
    Sep 2006
    Posts
    5,219
    Mentioned
    4 Post(s)
    Quoted
    1 Post(s)

    Default

    Not sure. They have the potenial to though.

  8. #8
    Join Date
    Oct 2006
    Posts
    888
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Pentti View Post
    Can Jagex see that how you MOVE your mouse?
    Of course. That's how their detection algorithm works. If they see patterns in mouse movement and timing, they will keep an eye on you and eventually ban you.

  9. #9
    Join Date
    Oct 2006
    Posts
    888
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Boreas View Post
    Run those on paint with pencil selected. Notice the differences. The first one has double the points and the i is multiplied by half as much. These 2 things balance each other out. Which is why the waves have the same height and width. Yet the first one looks better because there are more points. It's like a picture with many small pixels looks better than one with a less big pixels. Also since the first one is smaller the random is smaller. Just keep on playing with the numbers til it looks human.


    Wow, thanks a lot for your help. You should have put your name on those scripts!

    And remember to use the tags instead of the tags. The code tags mess up the script and my ascii art header got messed up too lol.

    I merged your mouse helper with mine and changed stuff and added my CoArray and figured out how to use findcolor while simultaneously moving the mouse.

    So far, I got it to move the mouse randomly using my aftermouse and all that, and search for the green colour on the windows desktop to find the recycle bin

  10. #10
    Join Date
    Sep 2006
    Posts
    5,219
    Mentioned
    4 Post(s)
    Quoted
    1 Post(s)

    Default

    Np. All I did was change the numbers. (also commented it is a wait until f11 so you can see it step by step)

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Replies: 6
    Last Post: 10-09-2008, 12:33 AM
  2. User Notes(Control Panel)
    By P1nky in forum SRL Site Discussion
    Replies: 4
    Last Post: 01-25-2008, 10:39 PM
  3. yes.. i am bad .. deal with it
    By [S]paz in forum Graphics and Multimedia
    Replies: 3
    Last Post: 12-04-2007, 11:43 PM
  4. what up dawgs.
    By Black J R in forum Who Are You ? Who ? Who ?
    Replies: 0
    Last Post: 01-11-2007, 06:03 PM

Posting Permissions

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