Poker-AI.org

Poker AI and Botting Discussion Forum
It is currently Mon Nov 13, 2023 6:33 pm

All times are UTC




Post new topic Reply to topic  [ 17 posts ] 
Author Message
PostPosted: Thu Nov 14, 2013 5:51 am 
Offline
Regular Member
User avatar

Joined: Wed Oct 02, 2013 5:00 pm
Posts: 64
Hi there,

Before start coding my own mouse movement library, I'd like to know what you guys are using? Is there any open source option? I searched the archive but didn't find anything ready for use.

If there isn't any other option, my idea is to translate the SRL library's Mouse functions to Groovy/Java (my bot's language). Any other (better) idea?

Thanks,
Corintio


Top
 Profile  
 
PostPosted: Fri Nov 22, 2013 4:00 pm 
Offline
Veteran Member

Joined: Wed Mar 20, 2013 1:43 am
Posts: 267
I only looked at the code briefly, but it doesn't seem to be safe. There is some randomness, but you would get better results with recorded mouse movements.


Top
 Profile  
 
PostPosted: Sat Mar 01, 2014 11:43 pm 
Offline
Junior Member
User avatar

Joined: Tue Feb 25, 2014 3:19 pm
Posts: 23
How are you going with the migration?

Any progress?

Is the simba code good enough?


Top
 Profile  
 
PostPosted: Tue Mar 04, 2014 8:00 am 
Offline
Regular Member
User avatar

Joined: Wed Oct 02, 2013 5:00 pm
Posts: 64
Sorry for the long delay.

I ported the code to Groovy and I have being using it in my bot for some months now, but I'm still working with Play Money, and not on PS. So I really don't know if it's good enough for your needs.


Top
 Profile  
 
PostPosted: Tue Mar 04, 2014 2:01 pm 
Offline
Junior Member
User avatar

Joined: Tue Feb 25, 2014 3:19 pm
Posts: 23
corintio wrote:
Sorry for the long delay.

I ported the code to Groovy and I have being using it in my bot for some months now, but I'm still working with Play Money, and not on PS. So I really don't know if it's good enough for your needs.


But do the movements look like human movements?

I'm gonna try to convert it to Java.

I only need the human movement function:

Code:
procedure _humanWindMouse(xs, ys, xe, ye, gravity, wind, minWait,
      maxWait, targetArea: extended);


The parameter values:

Code:
_humanWindMouse(x, y, pnt.x, pnt.y, MOUSE_HUMAN, 5, 10.0/randSpeed, 15.0/randSpeed, 10.0*randSpeed)


x,y is the point where the mouse is.
pnt is where I want to move the mouse.
MOUSE_HUMAN = 7;
randSpeed := (random(mouseSpeed) / 2.0 + mouseSpeed) / 10.0;
....


Top
 Profile  
 
PostPosted: Tue Mar 04, 2014 5:13 pm 
Offline
Veteran Member

Joined: Mon Mar 04, 2013 9:40 pm
Posts: 269
Quote:
I ported the code to Groovy and I have being using it in my bot for some months now, but I'm still working with Play Money, and not on PS. So I really don't know if it's good enough for your needs.


PS has the same anti-bot detection code on their .net play money site fyi.


Top
 Profile  
 
PostPosted: Wed Mar 05, 2014 4:02 am 
Offline
Regular Member
User avatar

Joined: Wed Oct 02, 2013 5:00 pm
Posts: 64
bpdummy666 wrote:
But do the movements look like human movements?

I can't really tell, I'm using VirtualBox, and it does not show the mouse while moving it (it's considered a "feature"!!). As I'm not concerned about that yet, I haven't made any further analysis.

Quote:
I only need the human movement function:

Code:
procedure _humanWindMouse(xs, ys, xe, ye, gravity, wind, minWait,
      maxWait, targetArea: extended);


The parameter values:

Code:
_humanWindMouse(x, y, pnt.x, pnt.y, MOUSE_HUMAN, 5, 10.0/randSpeed, 15.0/randSpeed, 10.0*randSpeed)


x,y is the point where the mouse is.
pnt is where I want to move the mouse.
MOUSE_HUMAN = 7;
randSpeed := (random(mouseSpeed) / 2.0 + mouseSpeed) / 10.0;
....

Yes, that's what you need. Here is my Groovy code, if you want to use as a basis for the Java port: https://gist.github.com/corintio/9360688


Top
 Profile  
 
PostPosted: Wed Mar 05, 2014 4:03 am 
Offline
Regular Member
User avatar

Joined: Wed Oct 02, 2013 5:00 pm
Posts: 64
shalako wrote:
Quote:
I ported the code to Groovy and I have being using it in my bot for some months now, but I'm still working with Play Money, and not on PS. So I really don't know if it's good enough for your needs.


PS has the same anti-bot detection code on their .net play money site fyi.

Thanks shalako. I'm trying to stay away from PS right now, so it's not an issue for me. Maybe in the future.... Anyway, thanks for the info.


Top
 Profile  
 
PostPosted: Wed Mar 05, 2014 12:16 pm 
Offline
Junior Member
User avatar

Joined: Tue Feb 25, 2014 3:19 pm
Posts: 23
shalako wrote:
Quote:
I ported the code to Groovy and I have being using it in my bot for some months now, but I'm still working with Play Money, and not on PS. So I really don't know if it's good enough for your needs.


PS has the same anti-bot detection code on their .net play money site fyi.


Yes, you are right, I read once somebody was banned using his bot with play money.

http://poker-ai.org/phpbb/viewtopic.php?f=22&t=2593

But why is play money important for PS?
What can we do with a lot of play money? Joining to some freerools or satellites?

At the moment we can buy play money with real money, but can we do the opposite way?


Quote:
Yes, that's what you need. Here is my Groovy code, if you want to use as a basis for the Java port: https://gist.github.com/corintio/9360688


Thank you for that, I'll take a look. This looks more understandable than .simba.


Top
 Profile  
 
PostPosted: Wed Mar 05, 2014 5:17 pm 
Offline
Veteran Member

Joined: Mon Mar 04, 2013 9:40 pm
Posts: 269
For mouse stuff you might want to look into the AutoIT dll too. You can randomize that easy enough and it has a ton of other functions useful for client control.

Quote:
But why is play money important for PS?
What can we do with a lot of play money? Joining to some freerools or satellites?


Well I use play money to test my bots as you can see a wide range of player types and abnormal situations that you would not normally program for. It is definitely the best bot test bed imo.

As as PS the cash and play money clients are virtually identical so it would be wise to test out your stealth setup on the .net site first.


Top
 Profile  
 
PostPosted: Wed Mar 05, 2014 6:45 pm 
Offline
Site Admin
User avatar

Joined: Sun Feb 24, 2013 9:39 pm
Posts: 642
shalako wrote:
As as PS the cash and play money clients are virtually identical so it would be wise to test out your stealth setup on the .net site first.

I think you should be careful about this. I read stories a long time ago where people had tested their bots on ps play money and were then busted immediately they started on real money. I guess it's OK if you use a different account, IP address and machine though.


Top
 Profile  
 
PostPosted: Wed Mar 05, 2014 7:06 pm 
Offline
Veteran Member

Joined: Mon Mar 04, 2013 9:40 pm
Posts: 269
Quote:
I think you should be careful about this. I read stories a long time ago where people had tested their bots on ps play money and were then busted immediately they started on real money. I guess it's OK if you use a different account, IP address and machine though.


Yeah that I what I mean. Test your bot on play money using a different account and if you get busted it is no big deal. Make no mistake: the anti-bot code is identical on both sites. What I am unsure of is how often they enforce it on .net which would not be a priority obviously. So you may be flagged and think your safe then hit the real site and find your stealth setup was not adequate.


Top
 Profile  
 
PostPosted: Mon Mar 17, 2014 11:48 am 
Offline
Junior Member
User avatar

Joined: Tue Feb 25, 2014 3:19 pm
Posts: 23
corintio wrote:
bpdummy666 wrote:
Yes, that's what you need. Here is my Groovy code, if you want to use as a basis for the Java port: https://gist.github.com/corintio/9360688

I translated it to Java and it works nicely, it's better than my own implementation. Thank you so much

I'm gonna play with the value of some variables (MOUSESPEED, gravity, wind) to tune it.

Doesn't anybody have any suggestion for my question here?
http://poker-ai.org/phpbb/viewtopic.php?f=26&t=2716


Top
 Profile  
 
PostPosted: Tue Mar 18, 2014 4:32 pm 
Offline
Regular Member
User avatar

Joined: Wed Oct 02, 2013 5:00 pm
Posts: 64
bpdummy666 wrote:
I translated it to Java and it works nicely, it's better than my own implementation. Thank you so much

I'm gonna play with the value of some variables (MOUSESPEED, gravity, wind) to tune it.

Cool. Please share your improvements to the algorithm and/or variables if you can.

Thanks,
Corintio


Top
 Profile  
 
PostPosted: Sun Mar 23, 2014 11:53 pm 
Offline
Junior Member
User avatar

Joined: Sun Mar 16, 2014 3:36 am
Posts: 36
Location: Germany
Hello,

here a working Procedure written in Delphi for PS:
Should not be a problem to translate to JAVA, C++, C#.

Code:

procedure TForm1.Action_bar_click(ofsx:NativeInt; dc: HDC; h : hwnd);
// ofsx -> 0 = fold; 1 = call; 2 = raise Button
// dc = Displaycontex
// h = PS Window Handle

var x,y,r : integer;

begin

  r := 10;

 // Values for 1024x786 Screen
  x := 555 + (ofsx * 172);
  y := 690;

  repeat

    // Send 2 Clicks
    send_click(h,x+random(r),y+random(r));
    pause(200); // ms
    send_click(h,x+random(r),y+random(r));

  // Until Button 0 (Fold) hides
  until get_action_bar(0,dc) = 0;

  // Move Mouse away from Action_bar
  send_click(h,x+random(r),y-60+random(r));

end;





;-)


Top
 Profile  
 
PostPosted: Tue Mar 25, 2014 9:05 pm 
Offline
Junior Member
User avatar

Joined: Sun Mar 16, 2014 3:36 am
Posts: 36
Location: Germany
But PS could then send you this Email ;-)

Quote:

Hello,

Upon a review of your account, we find that you are running an automated player program, commonly known as a "bot". The running of a bot is against the Terms of Service to which you agreed when opening your PokerStars account. Those Terms of Service are located here:

http://www.pokerstars.eu/poker/room/tos/

Among them are these terms:

5.6 AUTOMATIC PLAYERS (BOTS). The use of artificial
intelligence including, without limitation, "robots" is
strictly forbidden in connection with the Software and the
Games. All actions taken in relation to the Games by a
User must be executed personally by players through the
user interface accessible by use of the Software.

5.9 FRAUDULENT BEHAVIOUR In the event that PokerStars
deems that a User has engaged or attempted to engage in
fraudulent, unlawful, dishonest or improper activity while
using the Service, including without limitation, engaging
in any of the activities set forth above [...] PokerStars
shall be entitled to take such action as it sees fit,
including immediately blocking access to the Service,
[and] terminating such User's account with PokerStars
[...], seizing all monies held in the User's PokerStars
account [...]

All assets remaining in your PokerStars account will be seized and used to reimburse players affected by unfair play.

You are barred from future play on all internet poker platforms operated by The Rational Group. This consists of Full Tilt Poker and PokerStars under all of its various licenses. Do not attempt to play on any of these platforms. Any account we find you to be using, whether it belongs to yourself or a friend, will be closed and all funds within will be confiscated.

Regards,

Ian Y
Game Integrity Team




Top
 Profile  
 
PostPosted: Thu Mar 27, 2014 1:10 am 
Offline
Veteran Member

Joined: Wed Mar 20, 2013 1:43 am
Posts: 267
Real click randomness doesn't follow an equal distribution, but a normal distribution. Also you need some missclocks.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 17 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron
Powered by phpBB® Forum Software © phpBB Group