Giter VIP home page Giter VIP logo

Comments (15)

Jumboperson avatar Jumboperson commented on July 17, 2024 1

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.

Deathshiver avatar Deathshiver commented on July 17, 2024 1

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.

igoticecream avatar igoticecream commented on July 17, 2024

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.

Lennix avatar Lennix commented on July 17, 2024

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.

rubenvereecken avatar rubenvereecken commented on July 17, 2024

@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.

Lennix avatar Lennix commented on July 17, 2024

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.

Lennix avatar Lennix commented on July 17, 2024

@Deathshiver I agree

from pogoprotos.

rubenvereecken avatar rubenvereecken commented on July 17, 2024

I'd like to rename LureInfo to LurePokemon then, though I suggest we keep that for #108.

from pogoprotos.

Deathshiver avatar Deathshiver commented on July 17, 2024

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.

asottile avatar asottile commented on July 17, 2024

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.

trisk avatar trisk commented on July 17, 2024

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.

asottile avatar asottile commented on July 17, 2024

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.

trisk avatar trisk commented on July 17, 2024

Ah I'm so sorry, I was thinking of the modifier's expiration_timestamp_ms in the FortDetails response. You are correct.

from pogoprotos.

trisk avatar trisk commented on July 17, 2024

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.

AeonLucid avatar AeonLucid commented on July 17, 2024

Closing this issue, let me know if this is still relevant.

from pogoprotos.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.