def gen_stop_data(ses, cur_session): stop_request = pokemon_pb2.stop_request() stop_request.time = 2 #1 #stop_request.rpc_id = 9077956684869009422 #3 static stop_request.rpc_id = 2212820743501119519 - randint(0, 999) #3 static stop_request.unk1 = cur_session[1] #-randint(0,9) #7 stop_request.unk2 = cur_session[2] #-randint(0,9) #8 stop_request.unk3 = 0x4049000000000000 #9 static stop_request.unknown12 = randint(0, 999999) #12 static stop_request.sess.ses1 = ses.session_hash #12 stop_request.sess.time = ses.session_live #12 stop_request.sess.ses2 = ses.session_id #12 req1 = stop_request.requests.add() req1.type = 101 req1.message.unknown4 = cur_session[0] req1.message.unknown5 = cur_session[1] #-randint(0,9) req1.message.unknown6 = cur_session[2] #-randint(0,9) req1.message.unknown7 = cur_session[1] #-randint(0,9) #last-1 req1.message.unknown8 = cur_session[2] #-randint(0,9) #last req2 = stop_request.requests.add() req2.type = 126 req5 = stop_request.requests.add() req5.type = 4 req3 = stop_request.requests.add() req3.type = 129 req4 = stop_request.requests.add() req4.type = 5 req4.message.unknown4 = '05daf51635c82611d1aac95c0b051d3ec088a930' #static location.set_location_coords(location.l2f(cur_session[1]), location.l2f(cur_session[2]), location.l2f(0x4049000000000000)) return stop_request.SerializeToString()
def gen_stop_data(ses,cur_session): stop_request = pokemon_pb2.stop_request() stop_request.time = 2 #1 #stop_request.rpc_id = 9077956684869009422 #3 static stop_request.rpc_id = 2212820743501119519-randint(0,999) #3 static stop_request.unk1 = cur_session[1]#-randint(0,9) #7 stop_request.unk2 = cur_session[2]#-randint(0,9) #8 stop_request.unk3 = 0x4049000000000000 #9 static stop_request.unknown12 = randint(0,999999) #12 static stop_request.sess.ses1 = ses.session_hash #12 stop_request.sess.time = ses.session_live #12 stop_request.sess.ses2 = ses.session_id #12 req1 = stop_request.requests.add() req1.type = 101 req1.message.unknown4 = cur_session[0] req1.message.unknown5 = cur_session[1]#-randint(0,9) req1.message.unknown6 = cur_session[2]#-randint(0,9) req1.message.unknown7 = cur_session[1]#-randint(0,9) #last-1 req1.message.unknown8 = cur_session[2]#-randint(0,9) #last req2 = stop_request.requests.add() req2.type = 126 req5 = stop_request.requests.add() req5.type = 4 req3 = stop_request.requests.add() req3.type = 129 req4 = stop_request.requests.add() req4.type = 5 req4.message.unknown4 = '05daf51635c82611d1aac95c0b051d3ec088a930' #static location.set_location_coords(location.l2f(cur_session[1]),location.l2f(cur_session[2]),location.l2f(0x4049000000000000)) return stop_request.SerializeToString()
def walk_random(): COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE=location.get_location_coords() COORDS_LATITUDE=location.l2f(COORDS_LATITUDE) COORDS_LONGITUDE=location.l2f(COORDS_LONGITUDE) COORDS_ALTITUDE=location.l2f(COORDS_ALTITUDE) COORDS_LATITUDE=COORDS_LATITUDE+config.steps COORDS_LONGITUDE=COORDS_LONGITUDE+config.steps location.set_location_coords(COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE)
def walk_random_l(pok): COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE = location.get_location_coords( ) COORDS_LATITUDE = location.l2f(pok[1]) COORDS_LONGITUDE = location.l2f(pok[1]) COORDS_ALTITUDE = location.l2f(COORDS_ALTITUDE) location.set_location_coords(COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE)
def walk_random(): COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE = location.get_location_coords( ) COORDS_LATITUDE = location.l2f(COORDS_LATITUDE) COORDS_LONGITUDE = location.l2f(COORDS_LONGITUDE) COORDS_ALTITUDE = location.l2f(COORDS_ALTITUDE) COORDS_LATITUDE = COORDS_LATITUDE + config.steps COORDS_LONGITUDE = COORDS_LONGITUDE + config.steps location.set_location_coords(COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE)
def walk_random(): COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE=location.get_location_coords() COORDS_LATITUDE=location.l2f(COORDS_LATITUDE) COORDS_LONGITUDE=location.l2f(COORDS_LONGITUDE) COORDS_ALTITUDE=location.l2f(COORDS_ALTITUDE) random_Angle=random.random()*math.pi*2 COORDS_LATITUDE=COORDS_LATITUDE+(config.steps*math.sin(random_Angle)) COORDS_LONGITUDE=COORDS_LONGITUDE+(config.steps*math.cos(random_Angle)) print '[+] perform random walk %.7f %.7f'%(COORDS_LATITUDE,COORDS_LONGITUDE) location.set_location_coords(COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE)
def walk_circle(edge): a=2*math.pi/edge i=1 print '[+] circular walk' while (edge > 0): COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE=location.get_location_coords() COORDS_LATITUDE=location.l2f(COORDS_LATITUDE) COORDS_LONGITUDE=location.l2f(COORDS_LONGITUDE) COORDS_ALTITUDE=location.l2f(COORDS_ALTITUDE) COORDS_LATITUDE=COORDS_LATITUDE+(config.steps*math.sin(a*i)) COORDS_LONGITUDE=COORDS_LONGITUDE+(config.steps*math.cos(a*i)) #print '[+] perform circular walk %.7f %.7f'%(COORDS_LATITUDE,COORDS_LONGITUDE) location.set_location_coords(COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE) edge=edge-1 i=i+1 time.sleep(2) print '[+] done circle'
def work_with_stops(current_stop,ses,new_rcp_point): COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE=location.get_location_coords() TARGET_LATITUDE=location.l2f(current_stop[1]) TARGET_LONGITUDE=location.l2f(current_stop[2]) TARGET_ALTITUDE=location.l2f(0x4049000000000000) Kinder= logic.gen_stop_data(ses,current_stop) tmp_api=api.use_api(new_rcp_point,Kinder) #proto_all=logic.all_stops(local_ses) #api.use_api(new_rcp_point,proto_all) #walk_random() #time.sleep(3) try: #walk_random() #time.sleep(3) if tmp_api is not None: map = pokemon_pb2.map() map.ParseFromString(tmp_api) st= map.sess[0].status config.earned_xp+=map.sess[0].amt if st==4: print "[!] +%s (%s)"%(map.sess[0].amt,config.earned_xp) elif st==3: print "[!] used" #item full elif st==2: print "[!] charging" elif st==1: print "[!] walking.." #walk_random() expPerHour() time.sleep(14) work_with_stops(current_stop,ses,new_rcp_point) else: print "[?]:",st else: print '[-] tmp_api empty' except: print '[-] error work_with_stops - Trying to restart process' restartProcess()
def catch(maps, local_ses, new_rcp_point): data_list = location.get_near_p(maps) data_list = sorted(data_list, key=lambda x: x[5]) if len(data_list) > 0: print print '[!] found %s pokemon' % (len(data_list), ) for idx, e in enumerate(data_list): if (e[0] not in config.list_banned_Pokemon): #Banned Pokemon print '[!] %s Type:%s its %s m away' % ( idx, e[0], e[len(e) - 1], ) print for idx, pok in enumerate(data_list): if (pok[0] not in config.list_banned_Pokemon): #Banned Pokemon #print '[!] %s Type:%s its %s m away'%(idx,pok[0],pok[len(pok)-1],) #if pok[0] < 22: if pok[len(pok) - 1] < 600: print '[!] Trying to catch Type:%s its %s m away' % ( pok[0], round( location.get_distance(location.get_lat(), location.get_lot(), pok[1], pok[2]), 3), ) lat1 = location.l2f(location.get_lat()) lot1 = location.l2f(location.get_lot()) lat2 = location.l2f(pok[1]) lot2 = location.l2f(pok[2]) #print location.l2f(lat1),location.l2f(lot1),location.l2f(lat2),location.l2f(lot2) if (lat1 > lat2): while (lat1 < lat2): lat1 = lat1 - config.steps location.set_lat(lat1) location.set_lot(lot1) info_prot = logic.get_info(local_ses.ses, pok) tmp_api = api.use_api(new_rcp_point, info_prot) time.sleep(2) else: while (lat1 < lat2): lat1 = lat1 + config.steps location.set_lat(lat1) location.set_lot(lot1) info_prot = logic.get_info(local_ses.ses, pok) tmp_api = api.use_api(new_rcp_point, info_prot) time.sleep(2) if (lot1 > lot2): while (lot1 > lot2): lot1 = lot1 - config.steps location.set_lat(lat1) location.set_lot(lot1) info_prot = logic.get_info(local_ses.ses, pok) tmp_api = api.use_api(new_rcp_point, info_prot) time.sleep(2) else: while (lot2 > lot1): lot1 = lot1 + config.steps location.set_lat(lat1) location.set_lot(lot1) info_prot = logic.get_info(local_ses.ses, pok) tmp_api = api.use_api(new_rcp_point, info_prot) time.sleep(2) #catch_prot= logic.catch_it(local_ses.ses,pok) #tmp_api=api.use_api(new_rcp_point,catch_prot) tmp_api = catch_t(local_ses, pok, new_rcp_point) if tmp_api is not None: catch_status = pokemon_pb2.catch_status() catch_status.ParseFromString(tmp_api) if catch_status.sess[0].status: print "[+] " + datetime.datetime.now().strftime( "%H:%M:%S") + " caught pok... %s" % ( catch_status.sess[0].status, ) else: print '[-] catch data is none' #exit() #exit() #walk_random() walk_random()
def work_with_stops(current_stop, ses, new_rcp_point): lat1 = location.l2f(location.get_lat()) lot1 = location.l2f(location.get_lot()) lat2 = location.l2f(current_stop[1]) lot2 = location.l2f(current_stop[2]) #print location.l2f(lat1),location.l2f(lot1),location.l2f(lat2),location.l2f(lot2) walk_to_s = True if walk_to_s: if (lat1 > lat2): while (lat1 < lat2): lat1 = lat1 - config.steps * 5 location.set_lat(lat1) location.set_lot(lot1) info_prot = logic.gen_stop_data_pre(ses, current_stop) tmp_api = api.use_api(new_rcp_point, info_prot) time.sleep(1) else: while (lat1 < lat2): lat1 = lat1 + config.steps * 5 location.set_lat(lat1) location.set_lot(lot1) info_prot = logic.gen_stop_data_pre(ses, current_stop) tmp_api = api.use_api(new_rcp_point, info_prot) time.sleep(1) if (lot1 > lot2): while (lot1 > lot2): lot1 = lot1 - config.steps * 5 location.set_lat(lat1) location.set_lot(lot1) info_prot = logic.gen_stop_data_pre(ses, current_stop) tmp_api = api.use_api(new_rcp_point, info_prot) time.sleep(1) else: while (lot2 > lot1): lot1 = lot1 + config.steps * 5 location.set_lat(lat1) location.set_lot(lot1) info_prot = logic.gen_stop_data_pre(ses, current_stop) tmp_api = api.use_api(new_rcp_point, info_prot) time.sleep(1) Kinder = logic.gen_stop_data(ses, current_stop) tmp_api = api.use_api(new_rcp_point, Kinder) try: if tmp_api is not None: map = pokemon_pb2.map() map.ParseFromString(tmp_api) st = map.sess[0].status if map.sess[0].amt is not None: config.earned_xp += map.sess[0].amt if st == 4: print "[!] " + datetime.datetime.now().strftime( "%H:%M:%S") + " bag full +%s (%s)" % (map.sess[0].amt, config.earned_xp) elif st == 3: print "[!] " + datetime.datetime.now().strftime( "%H:%M:%S") + " cooldown" elif st == 2: print "[!] " + datetime.datetime.now().strftime( "%H:%M:%S") + " charging" elif st == 1: print "[!] " + datetime.datetime.now().strftime( "%H:%M:%S") + " +%s (%s)" % (map.sess[0].amt, config.earned_xp) #work_with_stops(current_stop,ses,new_rcp_point) else: print "[?]:", st else: print '[-] tmp_api empty' except: print '[-] error work_with_stops'
def catch(maps,local_ses,new_rcp_point): data_list=location.get_near_p(maps) data_list = sorted(data_list, key = lambda x: x[5]) if len(data_list)>0: print print '[!] found %s pokemon'%(len(data_list),) for idx, e in enumerate(data_list): if(e[0] not in config.list_banned_Pokemon): #Banned Pokemon print '[!] %s Type:%s its %s m away'%(idx,e[0],e[len(e)-1],) print for idx, pok in enumerate(data_list): if(pok[0] not in config.list_banned_Pokemon): #Banned Pokemon #print '[!] %s Type:%s its %s m away'%(idx,pok[0],pok[len(pok)-1],) #if pok[0] < 22: if pok[len(pok)-1] < 600: print '[!] Trying to catch Type:%s its %s m away'%(pok[0],round(location.get_distance(location.get_lat(),location.get_lot(),pok[1],pok[2]),3),) lat1=location.l2f(location.get_lat()) lot1=location.l2f(location.get_lot()) lat2=location.l2f(pok[1]) lot2=location.l2f(pok[2]) #print location.l2f(lat1),location.l2f(lot1),location.l2f(lat2),location.l2f(lot2) if (lat1>lat2): while(lat1<lat2): lat1=lat1-config.steps location.set_lat(lat1) location.set_lot(lot1) info_prot= logic.get_info(local_ses.ses,pok) tmp_api=api.use_api(new_rcp_point,info_prot) time.sleep(2) else: while(lat1<lat2): lat1=lat1+config.steps location.set_lat(lat1) location.set_lot(lot1) info_prot= logic.get_info(local_ses.ses,pok) tmp_api=api.use_api(new_rcp_point,info_prot) time.sleep(2) if (lot1>lot2): while(lot1>lot2): lot1=lot1-config.steps location.set_lat(lat1) location.set_lot(lot1) info_prot= logic.get_info(local_ses.ses,pok) tmp_api=api.use_api(new_rcp_point,info_prot) time.sleep(2) else: while(lot2>lot1): lot1=lot1+config.steps location.set_lat(lat1) location.set_lot(lot1) info_prot= logic.get_info(local_ses.ses,pok) tmp_api=api.use_api(new_rcp_point,info_prot) time.sleep(2) #catch_prot= logic.catch_it(local_ses.ses,pok) #tmp_api=api.use_api(new_rcp_point,catch_prot) tmp_api=catch_t(local_ses,pok,new_rcp_point) if tmp_api is not None: catch_status = pokemon_pb2.catch_status() catch_status.ParseFromString(tmp_api) if catch_status.sess[0].status: print "[+] " + datetime.datetime.now().strftime("%H:%M:%S")+ " caught pok... %s"%(catch_status.sess[0].status,) else: print '[-] catch data is none' #exit() #exit() #walk_random() walk_random()
def walk_random_l(pok): COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE=location.get_location_coords() COORDS_LATITUDE=location.l2f(pok[1]) COORDS_LONGITUDE=location.l2f(pok[1]) COORDS_ALTITUDE=location.l2f(COORDS_ALTITUDE) location.set_location_coords(COORDS_LATITUDE, COORDS_LONGITUDE, COORDS_ALTITUDE)
def work_with_stops(current_stop,ses,new_rcp_point): lat1=location.l2f(location.get_lat()) lot1=location.l2f(location.get_lot()) lat2=location.l2f(current_stop[1]) lot2=location.l2f(current_stop[2]) #print location.l2f(lat1),location.l2f(lot1),location.l2f(lat2),location.l2f(lot2) walk_to_s=True if walk_to_s: if (lat1>lat2): while(lat1<lat2): lat1=lat1-config.steps*5 location.set_lat(lat1) location.set_lot(lot1) info_prot= logic.gen_stop_data_pre(ses,current_stop) tmp_api=api.use_api(new_rcp_point,info_prot) time.sleep(1) else: while(lat1<lat2): lat1=lat1+config.steps*5 location.set_lat(lat1) location.set_lot(lot1) info_prot= logic.gen_stop_data_pre(ses,current_stop) tmp_api=api.use_api(new_rcp_point,info_prot) time.sleep(1) if (lot1>lot2): while(lot1>lot2): lot1=lot1-config.steps*5 location.set_lat(lat1) location.set_lot(lot1) info_prot= logic.gen_stop_data_pre(ses,current_stop) tmp_api=api.use_api(new_rcp_point,info_prot) time.sleep(1) else: while(lot2>lot1): lot1=lot1+config.steps*5 location.set_lat(lat1) location.set_lot(lot1) info_prot= logic.gen_stop_data_pre(ses,current_stop) tmp_api=api.use_api(new_rcp_point,info_prot) time.sleep(1) Kinder= logic.gen_stop_data(ses,current_stop) tmp_api=api.use_api(new_rcp_point,Kinder) try: if tmp_api is not None: map = pokemon_pb2.map() map.ParseFromString(tmp_api) st= map.sess[0].status if map.sess[0].amt is not None: config.earned_xp+=map.sess[0].amt if st==4: print "[!] " + datetime.datetime.now().strftime("%H:%M:%S") + " bag full +%s (%s)"%(map.sess[0].amt,config.earned_xp) elif st==3: print "[!] " + datetime.datetime.now().strftime("%H:%M:%S")+ " cooldown" elif st==2: print "[!] " + datetime.datetime.now().strftime("%H:%M:%S")+ " charging" elif st==1: print "[!] " + datetime.datetime.now().strftime("%H:%M:%S")+ " +%s (%s)"%(map.sess[0].amt,config.earned_xp) #work_with_stops(current_stop,ses,new_rcp_point) else: print "[?]:",st else: print '[-] tmp_api empty' except: print '[-] error work_with_stops'
import location print location.l2f(0x3ff6c49b00000000),location.l2f(0x3f57579ca0000000),location.l2f(0x3ff0000000000000) print location.l2f(0x3ff1c8dcc0000000),location.l2f(0x3f35c54100000000),location.l2f(0x3ff0000000000000) print location.l2f(0x4000000000000000)
def work_stop(local_ses,new_rcp_point): proto_all=logic.all_stops(local_ses) all_stops=api.use_api(new_rcp_point,proto_all) maps = pokemon_pb2.maps() try: maps.ParseFromString(all_stops) except: work_stop(local_ses,new_rcp_point) if show_pok: data_list=location.get_near_p(maps) if len(data_list)>0: print '[!] found %s pokemon near you'%(len(data_list),) for idx, pok in enumerate(data_list): print '[!] %s Type:%s its %s m away'%(idx,pok[0],pok[len(pok)-1],) #if pok[0] < 22: #if pok[len(pok)-1] < 45: lat1=location.l2f(location.get_lat()) lot1=location.l2f(location.get_lot()) lat2=location.l2f(pok[1]) lot2=location.l2f(pok[2]) #print location.l2f(lat1),location.l2f(lot1),location.l2f(lat2),location.l2f(lot2) if (lat1>lat2): while(lat1<lat2): lat1=lat1-0.000095 location.set_lat(lat1) location.set_lot(lot1) info_prot= logic.get_info(local_ses.ses,pok) tmp_api=api.use_api(new_rcp_point,info_prot) time.sleep(2) else: while(lat1<lat2): lat1=lat1+0.000095 location.set_lat(lat1) location.set_lot(lot1) info_prot= logic.get_info(local_ses.ses,pok) tmp_api=api.use_api(new_rcp_point,info_prot) time.sleep(2) if (lot1>lot2): while(lot1>lot2): lot1=lot1-0.000095 location.set_lat(lat1) location.set_lot(lot1) info_prot= logic.get_info(local_ses.ses,pok) tmp_api=api.use_api(new_rcp_point,info_prot) time.sleep(2) else: while(lot2>lot1): lot1=lot1+0.000095 location.set_lat(lat1) location.set_lot(lot1) info_prot= logic.get_info(local_ses.ses,pok) tmp_api=api.use_api(new_rcp_point,info_prot) time.sleep(2) catch_prot= logic.catch_it(local_ses.ses,pok) tmp_api=api.use_api(new_rcp_point,catch_prot) print "[+] catched pok..." #else: # print '[-] too far away' #exit() walk_random() walk_random() time.sleep(2) else: data_list=location.get_near(maps) data_list = sorted(data_list, key = lambda x: x[1]) if len(data_list)>0: print '[+] found: %s Pokestops near you'%(len(data_list),) if local_ses is not None and data_list is not None: print '[+] starting show' if multi: a,b=split_list(data_list) p = Process(target=work_half_list, args=(a,local_ses.ses,new_rcp_point)) o = Process(target=work_half_list, args=(a,local_ses.ses,new_rcp_point)) p.start() o.start() p.join() o.join() print '[!] farming done..' else: for t in data_list: if config.debug: print '[!] farming pokestop..' work_with_stops(t,local_ses.ses,new_rcp_point) else: walk_random() work_stop(local_ses,new_rcp_point)