Comments (15)
This is correct. Field 13 is MapPokemonProto activePokemon.
Refer to https://github.com/Jumboperson/PokemonGoDumper/blob/master/OldDumps/Assembly-CSharp.cs line 10325
from pogoprotos.
I did some personal testing. It appears the client drops them at a random angle and set distance from the corresponding PokeStop. If you find a lured Pokemon in the official game and then close and re-open the game, the same Pokemon will be on the PokeStop but at a different angle from it. From the testing, I can reasonably say that there aren't actually any valid coordinates for the Pokemon.
Additionally, it makes sense to keep the two types of Pokemon logically separated, as you need to send a different Encounter message depending on the type you are encountering. I should be able to reasonably expect that a list of MapPokemon can be encountered as MapPokemon are expected to -- with a normal Encounter message using a Spawn Point ID.
Edit: Also, lured Pokemon are actually tied to a Fort ID. It doesn't really make sense to have a MapPokemon with a Spawn Point ID that's not actually a Spawn Point ID.
from pogoprotos.
Ok i adapted the proto to link field 13 to MapPokemon and compiled the PokeGOAPI-Java with the new changes and it works! I can confirm it holds information of lured pokemon instead LureInfo.
Going to add a pull request! Please several projects depends on your protos, dont ignore this issue so we can recognize lured pokemons :D
from pogoprotos.
LureInfo and MapPokemon are almost identical, but LureInfo doesn't include Lat/Lng information.
Are these filled if you use MapPokemon instead of LureInfo?
from pogoprotos.
@Lennix I don't think they are actually, also they don't have coordinates per se as they're tied to a fort.
But I'd be curious to find out if anyone could verify.
from pogoprotos.
On the client they are actually besides the fort and not on it. So it's possible that they have their own coordinates.
from pogoprotos.
@Deathshiver I agree
from pogoprotos.
I'd like to rename LureInfo
to LurePokemon
then, though I suggest we keep that for #108.
from pogoprotos.
Does lure_expires_timestamp_ms
relate to the time left on the PokeStop lure or the time before the lured Pokémon despawns? I would generally be inclined to believe that LurePokemon
is easier to understand but I wonder if the timestamp is unrelated to the Pokémon.
from pogoprotos.
In the code I was using we called it lured_pokemon_expires_at_ms
the current name seems inappropriate for what it actually represents
from pogoprotos.
lure_expires_timestamp_ms
is definitely the expiration time of the lure itself, from empirical observation.
(Edit: it is not, I'm an idiot)
from pogoprotos.
Our empirical observations differ then. We use this field for lured
pokemon display and it is always less that 150s in the future
On Aug 9, 2016 4:15 PM, "Albert Lee" [email protected] wrote:
lure_expires_timestamp_ms is definitely the expiration time of the lure
itself, from empirical observation.—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#101 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABugnwRF19u_B2dGbUYI1kkzQBV4sCcpks5qeIsWgaJpZM4JXl_Q
.
from pogoprotos.
Ah I'm so sorry, I was thinking of the modifier's expiration_timestamp_ms
in the FortDetails response. You are correct.
from pogoprotos.
The IL classes in the app have these fields and types which confirms @igoticecream 's suspicion.
class PokemonFortProto
{
// Fields
static int FortIdFieldNumber = 1;
static int LastModifiedMsFieldNumber = 2;
static int LatitudeFieldNumber = 3;
static int LongitudeFieldNumber = 4;
static int TeamFieldNumber = 5;
static int GuardPokemonIdFieldNumber = 6;
static int GuardPokemonLevelFieldNumber = 7;
static int EnabledFieldNumber = 8;
static int FortTypeFieldNumber = 9;
static int GymPointsFieldNumber = 10;
static int IsInBattleFieldNumber = 11;
static int ActiveFortModifierFieldNumber = 12;
static int ActivePokemonFieldNumber = 13;
static int CooldownCompleteMsFieldNumber = 14;
static int SponsorFieldNumber = 15;
static int RenderingTypeFieldNumber = 16;
Generic _parser;
String fortId_;
long lastModifiedMs_;
double latitude_;
double longitude_;
int team_;
int guardPokemonId_;
int guardPokemonLevel_;
boolean enabled_;
FortType fortType_;
long gymPoints_;
boolean isInBattle_;
Generic _repeated_activeFortModifier_codec;
Generic activeFortModifier_;
MapPokemonProto activePokemon_;
long cooldownCompleteMs_;
Sponsor sponsor_;
RenderingType renderingType_;
...
}
class MapPokemonProto
{
// Fields
static int SpawnpointIdFieldNumber = 1;
static int EncounterIdFieldNumber = 2;
static int PokedexTypeIdFieldNumber = 3;
static int ExpirationTimeMsFieldNumber = 4;
static int LatitudeFieldNumber = 5;
static int LongitudeFieldNumber = 6;
Generic _parser;
String spawnpointId_;
ulong encounterId_;
int pokedexTypeId_;
long expirationTimeMs_;
double latitude_;
double longitude_;
...
}
I wonder if it was labeled fort_id
in ForeLureInfo because the spawnpoint ID was the same as the fort ID for lures.
from pogoprotos.
Closing this issue, let me know if this is still relevant.
from pogoprotos.
Related Issues (20)
- Questions about Fields names - Signature.proto
- 0•45•0 compatibilty HOT 1
- What is REGISTER_BACKGROUND_DEVICE used for? HOT 1
- Playerstats - Incorrect wire format HOT 2
- Could not get map objects outside US location
- From decoded game_master to JSON
- base/v0.51.0.proto:1901:18: "Slot" is not defined.
- Update to version 2.5.x - APK 0.53.1 - IPA 1.23.1 HOT 1
- Create GAME_MASTER.json HOT 5
- Official app captcha behavior
- encrypt
- List packages
- 0.57.4 support HOT 2
- 0.59.1 Support HOT 4
- typo in CameraSettings.proto
- Edit: Created by mistake
- 0.71.0 - Gen 3
- All missing messages and enums
- 0.81.1 update HOT 2
- 0.85.1 - New Weather proto and moves HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pogoprotos.