PokemonGoF / PokemonGo-Bot

The Pokemon Go Bot, baking with community.
MIT License
3.85k stars 1.54k forks source link

Collect Level Up Reward by default, not task #5227

Open rawgni opened 7 years ago

rawgni commented 7 years ago

Short Description

There are "tasks" that shouldn't be a task, ie. CollectLevelUpReward (CLUR), CompleteTutorial. Currently , if I get rid of the CLUR task from the config file, it will never run. However, does it really make sense to not collect level up reward and keep on catching pokemon?

How is it possible to not complete tutorial and be level 10?

Possible solution

Make it part of the system and not configurable.

How it would help others

Less stuff in config file

oralunal commented 7 years ago

I agree with you. Bot should determine newly registered user and complete tutorial automatically. And if there is a level up, it should collect the rewards. I don't know what it does to rewards if I set it to false.

MerlionRock commented 7 years ago

I think the Complete tutorial is there because need user input for nickname.

Actually the solution is simple. If experience == 0, Get 1st 5 chars from Username add random number to form custom nickname and complete the tutorial.

And in config, instead of enabled set to true, perhaps can change to AutoNickname = default true. Else user can define their own nickname.

rawgni commented 7 years ago

@MerlionRock what am i saying is it should be required. As of now, if you were to delete that from your config and you ran a new bot, it will not try to complete tutorial. Which I believe shouldn't happen. The bot should not proceed if tutorial is not completed.

I would think bot != completed tutorial and bot level > 1 == easy bot detection

MerlionRock commented 7 years ago

@rawgni Oic, I misinterpret it. But then again, I would prefer that as long as it's a new account, the bot should just go ahead and complete it without user input.

Like what you said, doesn't make sense that when you're Level 10 and you still didn't complete the tutorial.

avexus commented 7 years ago

1) If the user has to set their trainer name in the conf file, they might as well complete the tutorial on the phone. So, I suggest we get rid of complete tutorial altogether. This should be a prerequisite to use the bot. And state that on the front page of description. Again, once in a life time tasks should be handled by human and not bot.

2) Also, I agree to get rid of "collect level up rewards " task and make it default and system behavior. Good point @rawgni . I saw they don't have "enabled" option in there too, so, I'm guessing it's a very old design.

Gobberwart commented 7 years ago

@avexus I disagree. If the bot can complete the tutorial, then it should.

Perhaps default configuration could generate a nickname based on bot username if nothing specified? Eg. if username is "FreddyFartpants" then nickname could be "FreddyF<randomly generated 5-digit-number>"

avexus commented 7 years ago

Well, F doesn't let people think of Fartpants at all, which is more descriptive.

Gobberwart commented 7 years ago

Weird, looks like my edit didn't post.

Meant to say if username is "FreddyFartpants" then nicknames could be "FreddyF53641", eg. "first 7 chars of username plus random 5-digit number". Why? Because nicknames are limited in length and might be other FreddyFnnnnn out there. Just a random thought.

Hehe, Fartpants

geosdc19 commented 7 years ago

Just a quick input, I actually ran an account all the way up to level 30 without completing the tutorial, with no issues whatsoever. I'm also under the impression that accounts cannot be banned if they do not complete the tutorial; been using the no-tutorial account on my phone for about a week now, after running stupid settings on it (100+ km/h, 1 second evolutions). I did, however, stop using the bot on that account after completing it's tutorial and using it as a normal account.

The tutorial simply popped up when I first logged into a phone with the account and I was able to complete it with no problems (it was even beneficial, because it gave me a starter pokemon with a high level instead of the 10CP starter).

avexus commented 7 years ago

I just tried this method, but I got this error:

Traceback (most recent call last): File "pokecli.py", line 802, in main() File "pokecli.py", line 160, in main bot.tick() File "E:\downloads\master\pokemongo_botinit.py", line 684, in tick if worker.work() == WorkerResult.RUNNING: File "E:\downloads\master\pokemongo_bot\cell_workers\catch_pokemon.py", line 44, in work if self.catch_pokemon(self.pokemon.pop()) == WorkerResult.ERROR: File "E:\downloads\master\pokemongo_bot\cell_workers\catch_pokemon.py", line 138, in catch_pokemon return_value = worker.work() File "E:\downloads\master\pokemongo_bot\cell_workers\pokemon_catch_worker.py", line 191, in work self._do_catch(pokemon, encounter_id, catch_rate_by_ball, is_vip=is_vip) File "E:\downloads\master\pokemongo_bot\cell_workers\pokemon_catch_worker.py", line 601, in _do_catch self.bot.stardust += stardust_gain File "E:\downloads\master\pokemongo_botinit.py", line 72, in stardust return filter(lambda y: y['name'] == 'STARDUST', self._player['currencies'])[0]['amount'] KeyError: u'amount'

mjmadsen commented 7 years ago

@geosdc19 I've had non tutorial accounts banned.

@avexus Please create your own issue.