Пример #1
0
        private void PatchPlayerName(String entity_raw, State.GameTag tag, int tag_value)
        {
            if (tag == State.GameTag.PLAYSTATE && tag_value == (int)State.TAG_PLAYSTATE.PLAYING)
            {
                // the player's name can only be known from debug print power logs
                // so we parse the name out, and write back to our entity object

                string entity_str;
                if (ParserUtilities.GetEntityIdFromRawString(this.game_state, entity_raw, out entity_str) >= 0)
                {
                    return; // already has id
                }

                foreach (var entity in this.game_state.Entities.Items)
                {
                    foreach (var entity_tag in entity.Value.Tags)
                    {
                        if (entity_tag.Key == State.GameTag.PLAYSTATE && entity_tag.Value == (int)State.TAG_PLAYSTATE.PLAYING)
                        {
                            if (entity.Value.Name == String.Empty)
                            {
                                game_state.ChangeEntityName(entity.Key, entity_str);
                                return;
                            }
                        }
                    }
                }

                logger_.Info("Failed to patch player name.");
            }
        }
Пример #2
0
        private bool ParseOneStatus(State.ReadOnlyEntity entity, State.GameTag tag, out int value)
        {
            value = entity.GetTagOrDefault(tag, 0);

            return(true);
        }