jabbink / PokemonGoBot

DEFUNCT - Bot that plays Pokemon Go
https://www.pogobot.club/
GNU General Public License v3.0
559 stars 232 forks source link

Request - Catch Limit and Rest Time #1078

Open NoobWithBoobs opened 8 years ago

NoobWithBoobs commented 8 years ago

Hello All, With the new Bans coming out, it would be super helpful to have catch limit and also rest time.

Catch Limit: After 5 catchs, stop script Rest Time: Stop after 30mins, wait 20mins and start again.

What do you guys think?

Currently all my bots are banned, rightfully so.

alexbulyha commented 8 years ago

5 catches or 30 mins is in my opinion too few. My bot was running 6h straight and did not get banned, are you using the developers Version or the master and what were your configs? Anyways, if you want take a look at #1047 , and the latest PR, it changes the always excellent throw to a more random throwing (which is one oft the van reasons). Other reasons are a too high speed (under 3-4 m/s is fine) constantly over a long time, too many visited pokestops and catched pokemons in 24h (2k and 1k respectively i heard).

NoobWithBoobs commented 8 years ago

the numbers are just vars but the limits & rest time might help us avoid being banned.

alexbulyha commented 8 years ago

I am working on that, however it is difficult AS the bot is running async and i didnt Figure out yet how to pause him completely without aborting/stoping

NoobWithBoobs commented 8 years ago

abort/stop is something what I was thinking too.

flugel90 commented 8 years ago

i have a solution for this i made a little script i will share it later today. it switches between json folders and restarts every 3 hours. this way you can keep going 24 7 ill change it to the new jar and json files and will put examples in. tell me what you think and if u have a idea of what can be added. it simply replaces the .bat you use now.

kalamoni commented 8 years ago

What about instead of aborting/stopping the whole bot, we change the bot behavior?

That is [loot_pokestop and catch_pokemon] config options are set to false after certain threshold [2K and 1K respectively for now].

And as a way to reduce the down time for the bot -maybe as an advanced feature, and as the newly introduced 23-hour ban works as a sliding window. We can keep count of caught pokemon on an hourly basis. So that on hour no.24, the bot can catch up to the number of pokemon caught at hour no.1 and on hour no.25 the bot can catch up to hour no.2 pokemon count and so on [and the same for pokestops]. And of course with a total sum of the whole current 23 hour window that doesn't exceed the predefined threshold.

So to keep it short, the bot behave normally for the first 23 hour while keeping things under the limits. And the next 23 hour it tries to mock the same counts of each hour of the previous iteration.

By doing this, the bot never stop or trigger the ban while always doing its best to catch and loot!

PS. all this will not work if the corresponding flags cannot be changed or routinely checked during runtime for catching a pokemon or looting a pokestop.

alexbulyha commented 8 years ago

@kalamoni this wont work, you should never repeat something with a bot. This will be recognized. Something that repeats exactly! Every knce in a while is no human. The 23 Windows will be lowered to 20 (f.e.) later on and everyone will be banned. I also believe beeing 23 hours on the go will be banned soon, as no human does that. Same for walking X Kilometers. However @muschter was implementing those partial stops (of a single task that reached the treshold) while i was Working on the completecomplete stop. If both gets implemented it will be decidable by the user

meekzyr commented 8 years ago

I will finish my PR for it later today.

kalamoni commented 8 years ago

@AlexBoulyga sure, you're completely correct, but this is not quite what I meant.

The only thing that will be repeated is the hourly cap limit and that's it; to keep things under control/ban threshold. The bot can pause or just keeping walking to hatch eggs. And if paused and then resumed later on, it will continue on its normal randomized path. So there's absolutely no repetition of any sort.

And for behaving as humanly as possible, the bot can use a new "sleep" mode. Such that it can work normally until it reaches the thresholds which most probably would happen in a couple of hours [these limits are mainly about catching pokemon, looting pokestops and walking speed/distance]. And for sure the that depends heavily on the map and its no. of pokestops and the rate of spawns. And after that, the bot activate the sleep mode which halts every activity the bot can do such as walking, incubating eggs, transfers, evolve, looting and dropping items for the rest of the day. And then resume later as a new day.

The motivation behind this is to automate everything, as people who use the bot usually run the bot and monitor the progress every once in a while.