Skip to content

Commit

Permalink
PokemonGo-Map Synergy (#1992)
Browse files Browse the repository at this point in the history
* Feature: Use PokemonGo-Map sqlite db to catch pokemon near you

* added example config for move_to_map_pokemon

* adapted new config format

* Automatically update Map position

* remove pokemon when encountered early

* forgot to remove a log

* minor fix

* updated example config and added ignore config

* change ignore config to a list

* teleport to pokemon if walk option is 0

* added snipe option

* Teleport back after sniped pokemon was caught

* proper sniping

* mark sniped pokemon as caught

* forgot to remove print

* minor bug fix

* ignore max_distance when sniping

* prioritize VIPs in a 10km radius

* better prioritize vips

* syntax error fix

* set base priority for vips

* move map config example to seperate file

* use web api instead of sqlite db

* fix datetime format

* huge code cleanup

* forgot to snipe

* add vips to catch as default

* default priority for vips

* only mark pokemon as caught when it really was caught

* bugfix

* bugfix #2

* i should go to bed

* add option to disable map update

* updated example map config to match default example

* improve pylint result, fix catch recognition

* more code clean up

* better config example

* dump caught pokemon to json file to prevent targeting them on restart

* check if we got pokeballs to use

* remove print

* fix item_inventory_count returnin None instead of 0

* if we only have ultraballs and the target is not a vip don't snipe/walk

* remove gender symbols

* fix Mr. Mime

* vip wrong order fix

* bugfix

* log error when JSON decoding fails

* handle base64 error
  • Loading branch information
mhdasding authored and solderzzc committed Aug 3, 2016
1 parent 63d83a1 commit 21254bc
Show file tree
Hide file tree
Showing 8 changed files with 570 additions and 3 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ src/
web/
data/last-location*.json
data/cells-*.json
data/map-caught-*.json

# Multiple config
configs/*
Expand All @@ -109,6 +110,7 @@ configs/*
!configs/config.json.pokemons.example
!configs/config.json.pokemon.example
!configs/config.json.path.example
!configs/config.json.map.example
!configs/path.example.json
!config.json.cluster.example

Expand Down
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
* reddivision
* DayBr3ak
* kbinani
* mhdasding
* MFizz
* NamPNQ
* z4ppy.bbc
Expand Down
362 changes: 362 additions & 0 deletions configs/config.json.map.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,362 @@
{
"auth_service": "google",
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD",
"location": "SOME_LOCATION",
"gmapkey": "GOOGLE_MAPS_API_KEY",
"tasks": [
{
"type": "HandleSoftBan"
},
{
"type": "CollectLevelUpReward"
},
{
"type": "IncubateEggs",
"config": {
"longer_eggs_first": true
}
},
{
"type": "TransferPokemon"
},
{
"type": "EvolveAll",
"config": {
"evolve_all": "NONE",
"evolve_cp_min": 300,
"evolve_speed": 20,
"use_lucky_egg": false
}
},
{
"type": "RecycleItems",
"config": {
"item_filter": {
"Pokeball": { "keep" : 100 },
"Potion": { "keep" : 10 },
"Super Potion": { "keep" : 20 },
"Hyper Potion": { "keep" : 30 },
"Revive": { "keep" : 30 },
"Razz Berry": { "keep" : 100 }
}
}
},
{
"type": "CatchVisiblePokemon"
},
{
"type": "CatchLuredPokemon"
},
{
"type": "SpinFort"
},
{
"type": "MoveToMapPokemon",
"config": {
"address": "http://localhost:5000",
"max_distance": 500,
"min_time": 60,
"prioritize_vips": true,
"snipe": false,
"update_map": true,
"mode": "priority",
"catch": {
"==========Legendaries==========": 0,
"Aerodactyl": 1000,
"Snorlax": 1000,
"Articuno": 1000,
"Zapdos": 1000,
"Moltres": 1000,
"Dratini": 1000,
"Dragonair": 1000,
"Dragonite": 1000,
"Mewtwo": 1000,
"Mew": 1000,

"==========Region Locked==========": 0,
"Farfetch'd": 1000,
"Kangaskhan": 1000,
"Mr. Mime": 1000,
"Tauros": 1000,

"==========Very Rare==========": 0,
"Lapras": 900,
"Electabuzz": 900,
"Magmar": 900,
"Ditto": 900,

"==========Starters==========": 0,
"Bulbasaur": 400,
"Ivysaur": 600,
"Venusaur": 1000,

"Charmander": 400,
"Charmeleon": 600,
"Charizard": 1000,

"Squirtle": 400,
"Wartortle": 600,
"Blastoise": 1000,

"Pikachu": 600,
"Raichu": 1000,

"==========Semi Rare==========": 0,
"Porygon": 200,
"Scyther": 200,
"Jynx": 200,

"==========Uncommon==========": 0,

"Omanyte": 150,
"Omastar": 500,

"Seel": 300,
"Dewgong": 500,

"Grimer": 200,
"Muk": 500,

"Shellder": 200,
"Cloyster": 500,

"Gastly": 200,
"Haunter": 500,
"Gengar": 1000,

"Onix": 600,

"Drowzee": 600,

"Hypno": 600,

"Vulpix": 200,
"Ninetales": 600,

"Paras": 100,
"Parasect": 500,

"Growlithe": 200,
"Arcanine": 700,

"Tentacool": 200,
"Tentacruel": 500,

"Mankey": 150,
"Primeape": 500,

"Clefairy": 150,
"Clefable": 500,

"Jigglypuff": 150,
"Wigglytuff": 500,

"Venonat": 100,
"Venomoth": 500,

"Diglett": 200,
"Dugtrio": 500,

"Meowth": 250,
"Persian": 500,

"Psyduck": 150,
"Golduck": 500,

"Geodude": 100,
"Graveler": 500,
"Golem": 800,

"Eevee": 200,
"Vaporeon": 800,
"Jolteon": 800,
"Flareon": 800,

"Kabuto": 150,
"Kabutops": 500,

"Magikarp": 150,
"Gyarados": 800,

"Pinsir": 150,

"Ponyta": 200,
"Rapidash": 500,

"Slowpoke": 200,
"Slowbro": 500,

"Magnemite": 250,
"Magneton": 500,

"Krabby": 100,
"Kingler": 500,

"Voltorb": 200,
"Electrode": 500,

"Exeggcute": 250,
"Exeggcutor": 500,

"Cubone": 300,
"Marowak": 800,

"Hitmonlee": 400,

"Hitmonchan": 400,

"Lickitung": 500,

"Koffing": 200,
"Weezing": 500,

"Rhyhorn": 200,
"Rhydon": 500,

"Chansey": 800,

"Tangela": 300,

"Horsea": 200,
"Seadra": 600,

"Goldeen": 150,
"Seaking": 500,

"Staryu": 200,
"Starmie": 800,


"==========T1 Evolvers==========": 0,
"Caterpie": 10,
"Metapod": 10,
"Butterfree": 500,

"Weedle": 10,
"Kakuna": 10,
"Beedrill": 500,

"Pidgey": 10,
"Pidgeotto": 10,
"Pidgeot": 300,

"==========T2 Evolvers==========": 0,
"Nidoran F": 10,
"Nidorina": 10,
"Nidoqueen": 10,

"Nidoran M": 10,
"Nidorino": 10,
"Nidoking": 10,

"Oddish": 100,
"Gloom": 200,
"Vileplume": 600,

"Poliwag": 200,
"Poliwhirl": 400,
"Poliwrath": 800,

"Abra": 300,
"Kadabra": 600,
"Alakazam": 800,

"Machop": 150,
"Machoke": 400,
"Machamp": 800,

"Bellsprout": 100,
"Weepinbell": 400,
"Victreebel": 800,

"==========Trash==========": 0,

"Rattata": 10,
"Raticate": 10,

"Spearow": 10,
"Fearow": 10,

"Ekans": 10,
"Arbok": 10,

"Sandshrew": 10,
"Sandslash": 10,

"Zubat": 10,
"Golbat": 10,

"Doduo": 10,
"Dodrio": 10
}
}
},
{
"type": "MoveToFort"
},
{
"type": "FollowSpiral"
}
],
"map_object_cache_time": 5,
"max_steps": 5,

This comment has been minimized.

Copy link
@MZorzy

MZorzy Aug 3, 2016

remove "max_step"

"forts": {
"avoid_circles": true,
"max_circle_size": 50
},
"websocket_server": false,
"walk": 4.16,
"action_wait_min": 1,
"action_wait_max": 4,
"debug": false,
"test": false,
"health_record": true,
"location_cache": true,
"distance_unit": "km",
"reconnecting_timeout": 15,
"evolve_captured": "NONE",
"catch_randomize_reticle_factor": 1.0,
"catch_randomize_spin_factor": 1.0,
"catch": {
"any": {"catch_above_cp": 0, "catch_above_iv": 0, "logic": "or"},
"// Example of always catching Rattata:": {},
"// Rattata": { "always_catch" : true }
},
"release": {
"any": {"release_below_cp": 0, "release_below_iv": 0, "logic": "or"},
"// Example of always releasing Rattata:": {},
"// Rattata": {"always_release": true},
"// Example of keeping 3 stronger (based on CP) Pidgey:": {},
"// Pidgey": {"keep_best_cp": 3},
"// Example of keeping 2 stronger (based on IV) Zubat:": {},
"// Zubat": {"keep_best_iv": 2},
"// Also, it is working with any": {},
"// any": {"keep_best_iv": 3},
"// Example of keeping the 2 strongest (based on CP) and 3 best (based on IV) Zubat:": {},
"// Zubat": {"keep_best_cp": 2, "keep_best_iv": 3}
},
"vips" : {
"Any pokemon put here directly force to use Berry & Best Ball to capture, to secure the capture rate!": {},
"any": {"catch_above_cp": 1200, "catch_above_iv": 0.9, "logic": "or" },
"Lapras": {},
"Moltres": {},
"Zapdos": {},
"Articuno": {},

"// S-Tier pokemons (if pokemon can be evolved into tier, list the representative)": {},
"Mewtwo": {},
"Dragonite": {},
"Snorlax": {},
"// Mew evolves to Mewtwo": {},
"Mew": {},
"Arcanine": {},
"Vaporeon": {},
"Gyarados": {},
"Exeggutor": {},
"Muk": {},
"Weezing": {},
"Flareon": {}

}
}
3 changes: 2 additions & 1 deletion pokecli.py
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,8 @@ def init_config():
config.action_wait_max = load.get('action_wait_max', 4)
config.action_wait_min = load.get('action_wait_min', 1)
config.raw_tasks = load.get('tasks', [])
config.vips = load.get('vips',{})

config.vips = load.get('vips', {})

if config.map_object_cache_time < 0.0:
parser.error("--map_object_cache_time is out of range! (should be >= 0.0)")
Expand Down
Loading

10 comments on commit 21254bc

@FilipiMor
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I loved, <3

@KLVN
Copy link
Contributor

@KLVN KLVN commented on 21254bc Aug 3, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i should go to bed

😄

@ChrisHaPunkt
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First, thank you for this. But i cannot get this to work.
An entry in the wiki how to use and the necessary prerequisites would be nice :)

@ChrisHaPunkt
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be closed for me, but a hint why this exception raised would be nice.

@DiggingInLife
Copy link

@DiggingInLife DiggingInLife commented on 21254bc Aug 3, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LOVE IT!
@ChrisHaPunkt you just need to proper install https://github.com/AHAAAAAAA/PokemonGo-Map .
And it connect automatically

@DiggingInLife
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By the way. It need some fixing :)

@DimaVIII
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mhdasding can I run multiple bots with one instance of Pokemon Map?

@ChrisHaPunkt
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@DiggingInLife thanks, but i run it all headless, so i'm not able to start that project.
Someone know if the original will work too? https://github.com/AHAAAAAAA/PokemonGo-Map

@DiggingInLife
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ChrisHaPunkt yes my mistake it was that link, sorry. It's that git.

@jrlambs
Copy link

@jrlambs jrlambs commented on 21254bc Aug 9, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a new recommended git project to use since this one seems to be dead? I'm sure it has been forked... but I'm not sure which one would be best to use.

Please sign in to comment.