Skip to content

MauricioDolacio/QuakeParser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

QuakeParser

Um Parser para o jogo Quake 3, que lê o arquivo de log (.txt), agrupa os dados de cada partida e organiza as informações em um .json

Funcionamento do Main

O programa separa o arquivo .txt linha por linha e as transforma em listas. O arquivo então analisa as linhas e busca alterações na partida e de acordo com as alterações, cria e modifica um dicionario que contem as informações da partida.

O programa então agrupa os dicionarios das partidas em uma grande lista de partidas e finaliza o inserindo em um .json

Listas e Variaveis do programa:

  • players (list): Armazena os jogadores da partida. A lista é reiniciada a cada jogo
  • game_count (int): Contabiliza o numero de partidas
  • total_kills (int): Contabiliza o numero de mortes da partida. É reiniciado a cada jogo
  • game_list (list): Contém todas as partidas jogadas. É inserida no .json no final do programa

Analisando as linhas, o programa executa tarefas especificas de acordo com o que o log diz:

  • ClientConnect: Adiciona um dicionario do jogador junto com seu id
  • ClientDisconnect: Remove o dicionario do jogador mencionado
  • ClientUserinfoChanged: Altera o nome do jogador caso haja necessidade
  • Kill: Adiciona uma kill global para a partida e altera os valores de kill dos jogadores de acordo com as informações da linha
  • ShutdownGame: Finaliza um jogo, armazenando as informações da partida em um dicionario e o adiciona na lista de partidas. Logo em seguida reinicia as variaveis, pronto para um novo jogo.

Funções criadas

addPlayer(id)

Cria um dicionario para o jogador e o adiciona na lista de jogadores
A função adiciona o id como um item no dicionario

  • id (int): id do jogador

findPlayer(id)

Retorna a posição de um jogador na lista de jogadores após busca-lo de acordo com o id.
Caso a função não encontre o jogador ela retorna -1

  • id (int): id do jogador

changeName(pos, new_name)

Altera o nome de um jogador e atualiza a lista de nomes antigos.
A função verifica se o novo nome esta na lista dos nomes antigos e o remove caso esteja. Caso contrario, a função adiciona o nome na lista de nomes antigos.
Logo em seguida, ela altera o nome atual pelo novo.

  • pos (int): posição do jogador na lista de jogadores
  • new_name (string): novo nome do jogador

killCount(killer_id, killed_id)

Adiciona uma kill para o jogador que eliminou
Remove uma kill do jogador que morreu, caso o mesmo tenha morrido para o "mundo"

  • killer_id (int): id do jogador que matou
  • killed_id (int): id do jogador que morreu

finish(game_count, total_kills, game_list)

Insere os valores e informações da partida em uma camada de dicionarios e adiciona o dicionario da partida na lista de partidas.

  • game_count (int): Valor do jogo atual
  • total_kills (int): Valor total de mortes que ocorreram no jogo
  • game_list (list): Contém todas as partidas jogadas.

Releases

No releases published

Packages

No packages published

Languages