Poll: How well does this work?

Be advised that this is a public poll: other users can see the choice(s) you selected.

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

Thread: TypeSend2 - Makes Human Errors! [NEW]

  1. #1
    Join Date
    Aug 2007
    Location
    Emo-land
    Posts
    1,109
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    TypeSend2 - Makes Human Errors! [NEW]

    {************************************************* ************************************************
    Procedure TypeSend2(Text: String; SMART : Boolean);
    By: FrÕzÑ_§ÕµL.
    Description: Types Text Human-like, pressing random keys around the original.Will not mess up words such as red: or wave:
    as long as there is no space before the :. Will type in SMART if needed.
    Use: TypeSend2('i want to change this text', false);
    SMART use: TypeSend2('i want to change this text', true);
    ************************************************** ***********************************************}

    Added Features (7/4/2008)
    Will switch around some letters.
    Will backspace some letters, taking a little more time for the typer to 'think', and then write the correct one. Won't re-type the same letter
    Will sometimes write a messed up word again properly with a * following it.
    Will not change text effects, such as glow: or wave:. (Useful! I was using a separate typing function before to not make mistakes lol.)

    Please I need people to see if the typing works in SMART all the time!

    Enjoy

    TypeSend2('this will change your text', false);
    ^^ thats the usage, false indicates Non-SMART script.

    SCAR Code:
    Type
      TextType =  Record
        NWord, OWord : String;
        ChangeType : Integer;
      end;
     
    {*************************************************************************************************
    Procedure TypeSend2(Text: String; SMART : Boolean);
    By: FrÕzÑ_§ÕµL.
    Description: Types Text Human-like, pressing random keys around the original.Will not mess up words such as red: or wave:
      as long as there is no space before the :. Will type in SMART if needed.
    Use: TypeSend2('i want to change this text', false);
    SMART use: TypeSend2('i want to change this text', true);
    *************************************************************************************************}

    Procedure TypeSend2(Text: String; SMART : Boolean);

    var
      i, j, k, l, DP : integer;
      WordArr : Array [0..100] of TextType;
      Keys : Array [0..3] of String;

    Begin
      i := 0;
      Text := Padr(Padl(Trim(Text), Length(Trim(Text)) + 1), Length(Trim(Text)) + 2);
      Repeat
        WordArr[i].OWord := Between(' ', ' ', Text);
        WordArr[i].NWord := WordArr[i].OWord;
        Delete(Text, Pos(WordArr[i].OWord, Text) - 1, Length(WordArr[i].OWord) + 1);
        i := i + 1;
      Until(Text = ' ');
      for i := 0 to 100 do
      Begin
        WordArr[i].ChangeType := -1;
        if Random(100) < 10 then
          if Pos(':', WordArr[i].OWord) < 1 then
            WordArr[i].ChangeType := Random(3);
      end;
      i := 0;
      Repeat
        Repeat
          if WordArr[i].ChangeType = -1 then
          Begin
            i := i + 1;
            if i > 100 then
              Break;
          end;
        until(WordArr[i].ChangeType >= 0);
        if Length(WordArr[i].OWord) = 0 then
          Break;
        j := Random(Length(WordArr[i].OWord)) + 1;
        if WordArr[i].ChangeType = 1 then
          DP := Pos(Copy(Lowercase(WordArr[i].OWord), j, 1), WordArr[i].OWord);
        Keys[3] := '1234567890';
        Keys[2] := 'qwertyuiop';
        Keys[1] := 'asdfghjkl';
        Keys[0] := 'zxcvbnm';
        Repeat
          for k := 3 downto 0 do
          Begin
            l := Pos(Copy(Lowercase(WordArr[i].OWord), j, 1), Keys[k]);
            if l > 0 then
              Break;
          end;
          if l = 0 then
          Begin
            i := i + 1;
            if (i > 100) then
              Break;
          end;
        until(l > 0);
        if (i > 100) then
          Break;
        case k of
          0 : k := k + Random(1);
          1, 2 : k := k - 1 + Random(2);
          3 : k := k - 1 + Random(1);
        end;
        case l of
          1 : l := 1 + Random(1);
          Length(Keys[k]) : l := Length(Keys[k]) - 1 + Random(1);
          else
            l := l - 1 + Random(2);
        end;
        if (Random(100) > 70) or (WordArr[i].ChangeType = 1) then
        Begin
          Delete(WordArr[i].NWord, j, 1);
          Insert(Copy(Keys[k], l, 1), WordArr[i].NWord, j);
        end else
          Insert(Copy(Keys[k], l, 1), WordArr[i].NWord, j - 1 + Random(1));
        i := i + 1;
      Until(i = 101);
      for i := 0 to 100 do
      Begin
        for l := 1 to Length(WordArr[i].NWord) do
        Begin
          if Pos(Copy(WordArr[i].NWord, l, 1), '~!@#$%^&*()_+{}|:"<>?') > 0 then
          Begin
            KeyDown(VK_SHIFT);
            Wait(100 + Random(100));
          end;
          if SMART then
            SmartSendKeys(Copy(WordArr[i].NWord, l, 1))
          else
            TypeByte(GetKeyCode(StrGet(WordArr[i].NWord, l)));
          Try
            if Not(Pos(Copy(WordArr[i].NWord, l + 1, 1), '~!@#$%^&*()_+{}|:"<>?') > 0) then
              KeyUp(VK_SHIFT);
          Except
          end;
          Wait(100 + Random(100));
          if (WordArr[i].ChangeType = 1) and (l = DP) then
            if (Copy(WordArr[i].NWord, l, 1) <> Copy(WordArr[i].OWord, DP, 1)) then
            Begin
              Wait(200 + Random(200));
              TypeByte(VK_BACK);
              Wait(200 + Random(200));
              if SMART then
                SmartSendKeys(Copy(WordArr[i].OWord, DP, 1))
              else
                TypeByte(GetKeyCode(StrGet(WordArr[i].OWord, DP)));
              Wait(200 + Random(200));
            end;
        end;
        if Length(WordArr[i].NWord) = 0 then
          Break;
        if SMART then
          SmartSendKeys(' ')
        else
          TypeByte(VK_SPACE);
      end;
      if SMART then
        SmartSendKeys(chr(10))
      else
        TypeByte(GetKeyCode(chr(13)));
      for l := 0 to 100 do
        if WordArr[l].ChangeType = 2 then
          if WordArr[l].OWord <> WordArr[l].NWord then
          Begin
            for i := 1 to Length(WordArr[l].OWord) do
            Begin
              if SMART then
                SmartSendKeys(Copy(WordArr[i].OWord, i, 1))
              else
                TypeByte(GetKeyCode(StrGet(WordArr[l].OWord, i)));
              Wait(100 + Random(100));
            end;
            if WordArr[l].OWord = '' then
              Exit;
            KeyDown(VK_SHIFT);
            Wait(100 + Random(100));
            if SMART then
              SmartSendKeys('*')
            else
              TypeByte(GetKeyCode('8'));
            Wait(200 + Random(200));
            KeyUp(VK_SHIFT);
            Wait(100 + Random(100));
            if SMART then
              SmartSendKeys(chr(10))
            else
              TypeByte(GetKeyCode(chr(13)));
            Exit;
          end;
    end;

    Attachments:
    TypeSend2.scar - Set debug box as your client and click run to test.

  2. #2
    Join Date
    Jun 2007
    Location
    Liverpool ,Nsw,Australia
    Posts
    740
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    lol nice This is gonna make jagex Shit themselves haha defiantly will use when making my first script if thats alright....
    Quote Originally Posted by Darkmage View Post
    I got 2 questions'
    #1. When i run the script will it automatically pick up the mouse and move?

  3. #3
    Join Date
    Aug 2007
    Location
    Emo-land
    Posts
    1,109
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Awesome yea I really wanna focus on human-like now that they are being so careful and banning a ton of us.

    Good luck with it.

  4. #4
    Join Date
    Jan 2008
    Location
    California, US
    Posts
    2,765
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Maybe add TypeSend(Text) at end? Dosen't type for me.

  5. #5
    Join Date
    Aug 2007
    Location
    Emo-land
    Posts
    1,109
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Thats because the typing bit is within the {}, the thing posted is a tester lol.

  6. #6
    Join Date
    Apr 2007
    Location
    Perth, Australia
    Posts
    3,926
    Mentioned
    3 Post(s)
    Quoted
    2 Post(s)

    Default

    Can I ask why you need the SMART boolean. SMART.scar already changes the Chr(13) into a Chr(10).

  7. #7
    Join Date
    Aug 2007
    Location
    Emo-land
    Posts
    1,109
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Yes, but you need smartsendkeys or it won't type i find. Maybe I don't need, will test tomorrow, going to bed now.

  8. #8
    Join Date
    Mar 2007
    Location
    Canada
    Posts
    87
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I made something almost exactly like this yesterday, you didn't happen to get the idea from me..., but looks way better then mine so cheers to you.

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

    Default

    i had this idea except with the login like... mess up the username or password ....... cuase who doesnt mis spell thier name or pass sometimes?

    Quote Originally Posted by YoHoJo View Post
    I like hentai.

  10. #10
    Join Date
    Aug 2007
    Location
    Emo-land
    Posts
    1,109
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Lol I saw your thread when I was gonna post this omgnomorenames, but I have been working on this thing for ages, used to have about 300 lines as I had 5 different options forever key on the keyboard lol!

    Well wired, I don't know that Jagex really monitor logins anyway, but if it was set to a 1% screw up it may be an ok idea.

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

    Default

    yea... somthing maybe like (im not a sc;ripter so i know its wrong but youll get it
    if typesend=a (random 1-2)
    1.(s)
    2.(q)
    if typesend=b then random 1-2
    1.(n)
    2.(b)
    but only have it do like 1 letter ..hell even have it try and login then when fails correct login...
    yea i dont think they do... but if they ever do...... i came up with it first

    Quote Originally Posted by YoHoJo View Post
    I like hentai.

  12. #12
    Join Date
    Aug 2007
    Location
    Emo-land
    Posts
    1,109
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Totally wrong code lol yea you said.

    Thats what mine does though, it gets where the key is on the 'keyboard', and chooses whether to stay on that keyboard line or to go up/down one (depending on position of course, since the 1234 line can't go up one), it then will choose a letter to the left center or right of where the original key was on the new line.

    So
    's' can return any of:
    q, w, e, a, s, d, z, x, c.

    Attached a compilable test version of it now.

  13. #13
    Join Date
    Jun 2007
    Location
    Wednesday
    Posts
    2,446
    Mentioned
    3 Post(s)
    Quoted
    1 Post(s)

    Default

    I was tempted to write a replacement for TypeSend myself, but I'm glad I didn't as your one rocks
    Though all it seems to be lacking is the ability to change the probability it mistypes (e.g. 10%, 5%, 1 div 20.0 etc.)
    By reading this signature you agree that mixster is superior to you in each and every way except the bad ways but including the really bad ways.

  14. #14
    Join Date
    Mar 2007
    Location
    Canada
    Posts
    87
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Lol, glad at least you saw mine

    You should add something to have it switch the letters around.

    Example
    See and Typo "ese"
    Great and Typo "Graet"
    Should be used on two vowels side by side.

    Another one is remove a letter by "accident"

    Example
    Worried and Typo "Woried"
    Hurry and Typo "Hury"
    Words with the same letter side by side.

  15. #15
    Join Date
    Oct 2006
    Posts
    585
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    ^^^ good idea but we dont want to make it too long lol

    Quote Originally Posted by YoHoJo View Post
    I like hentai.

  16. #16
    Join Date
    Jun 2007
    Location
    Wednesday
    Posts
    2,446
    Mentioned
    3 Post(s)
    Quoted
    1 Post(s)

    Default

    It wouldn't be too long, all you would have to do is make it randomly select 2 characters to switch around, set a var to = the one, set the other to equal the first one and voila! Actually, coding it may be easier!
    SCAR Code:
    function SwitchRandomChar(s: string): string;
    var
      TempC: char;
      RC1, RC2: Integer;
    begin
      RC1 := Random(Length(s) - 2) + 1;
      TempC := s[RC1];
      RC2 := Random(2) - 1 + RC1;
      s[RC1] := s[RC2];
      s[RC2] := TempC;
      Result := s;  
    end;
    And that should work
    By reading this signature you agree that mixster is superior to you in each and every way except the bad ways but including the really bad ways.

  17. #17
    Join Date
    Sep 2007
    Location
    Michigan
    Posts
    3,862
    Mentioned
    2 Post(s)
    Quoted
    1 Post(s)

    Default

    You could go really far with this. Even as far as testing yourself how often you make mistakes typing yourself. I think the main thing that would change the accuracy just like human typing is the speed of it. The faster the typing the higher the chance to make mistakes. The slower the typing the less chance of making a mistake. If I made a full fledge Typing function like this I would have the String then the Speed to type from 1-10 or something of the sort. It would be the most simple.

    TypeSend(Str:string; TypeSpeed:integer)

    Something like that. I would use already predetermined % chance to mistype etc. depending on the speed.
    (Scripts outdated until I update for new SRL changes)
    AK Smelter & Crafter [SRL-Stats] - Fast Fighter [TUT] [SRL-Stats]
    If you PM me with a stupid question or one listed in FAQ I will NOT respond. -Narcle
    Summer = me busy, won't be around much.

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

    Default

    great idea narcle..... actually thats common sense

    Quote Originally Posted by YoHoJo View Post
    I like hentai.

  19. #19
    Join Date
    Aug 2007
    Location
    Emo-land
    Posts
    1,109
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Wow there are so many things I could add ^^ thank you guys, will spend a lot of time on this then I used to have option for percent mistake etc but there was no real need, it will be adjusted as it was just a test after all.

    The other thing is that it makes mistakes in a certain order, not just randomly, so if it makes 5 in the first 10 letters then the last 10 letters wouldn't be changed.

  20. #20
    Join Date
    Sep 2007
    Posts
    415
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    What I think would be pretty cool make it so that if it makes a mistake, about half the time make it backspace and fix the mistake it made, because thats what i, and probably some other people do when they time. it's really good as is is though
    Quote Originally Posted by That guy that wrote forefeathers
    <munklez>haha im too lazy, girls annoy me
    <munklez> they always wanna like, do stuff
    <munklez> and i just wanna program
    <munklez> and they always take all my money

  21. #21
    Join Date
    Aug 2007
    Location
    Emo-land
    Posts
    1,109
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Right so list of possibles:
    Backspace mistakes.
    ReType mistake word with a * following it.
    Mistakes based on speed.
    Changing order of mistakes made.
    Switching letters around (simple, just change where it inserts by -1)

    I see no reason why any or all of those can't be implemented with a well designed structure, will be on my project list along with Fr0zn Hybrid.

  22. #22
    Join Date
    Jun 2007
    Location
    Liverpool ,Nsw,Australia
    Posts
    740
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    yo soul how much time did this take to make?
    Quote Originally Posted by Darkmage View Post
    I got 2 questions'
    #1. When i run the script will it automatically pick up the mouse and move?

  23. #23
    Join Date
    Jun 2007
    Location
    Wednesday
    Posts
    2,446
    Mentioned
    3 Post(s)
    Quoted
    1 Post(s)

    Default

    3 days, 2 hours and 1 minute.

    Anyway, it sounds ambitious adding all of that stuff in and still managing to keep it below 100 lines, but I guess that limit will go out the window if it was as awesome as it will be
    By reading this signature you agree that mixster is superior to you in each and every way except the bad ways but including the really bad ways.

  24. #24
    Join Date
    Jul 2007
    Location
    Norway.
    Posts
    1,938
    Mentioned
    3 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by FrÕzÑ_§ÕµL View Post
    Right so list of possibles:
    Backspace mistakes.
    ReType mistake word with a * following it.
    Mistakes based on speed.
    Changing order of mistakes made.
    Switching letters around (simple, just change where it inserts by -1)

    I see no reason why any or all of those can't be implemented with a well designed structure, will be on my project list along with Fr0zn Hybrid.
    Seriously, if you do all that, I can guarantee you it'll be implemented in SRL. I like the "backspacing mistakes" idea, could be useful. I think LogInPlayer would be changed to "LoginPlayer(SendText2: Boolean)" if your function gets impemented. ^_^ Best of luck!

  25. #25
    Join Date
    Nov 2007
    Location
    The Netherlands
    Posts
    1,490
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Quote Originally Posted by FrÕzÑ_§ÕµL View Post
    Right so list of possibles:
    Backspace mistakes.
    ReType mistake word with a * following it.
    Mistakes based on speed.
    Changing order of mistakes made.
    Switching letters around (simple, just change where it inserts by -1)

    I see no reason why any or all of those can't be implemented with a well designed structure, will be on my project list along with Fr0zn Hybrid.
    whoah.. that would be hard scripting..
    i wish i could do that
    you got that mistake thing also in your forest frostbite right?
    (not this one, but another kind of which also made mistakes)
    very nice
    rep++

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)

Similar Threads

  1. Script that makes your money?
    By haz3 in forum News and General
    Replies: 14
    Last Post: 11-22-2007, 06:30 AM
  2. makes me mad
    By jhildy in forum SRL Site Discussion
    Replies: 3
    Last Post: 05-22-2007, 12:27 AM
  3. This makes no sence!
    By Hobbit in forum OSR Help
    Replies: 4
    Last Post: 12-31-2006, 02:25 AM

Posting Permissions

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