Agora o contador de tempo não contabiliza tempo ocioso. Foi criado uma nova macro IDLING(), em utils.h. Ela verifica se o contador de tempo ocioso do jogador é maior que zero. Assim, antes de atualizar os já conhecidos GET_FIGHTING_TIME() e GET_PEACE_TIME(), verifica-se IDLING(). Estranhamente aparecem casos onde o jogador ficou online por alguns segundos, mas o tempo marcado como peace_time mostrava centenas de segundos. O Hanaf sugeriu que talvez tivesse a ver com a forma como o mud gerencia heartbeats atrasados. Então talvez seja possível o loop principal não atualizar (por algum motivo) e, ao usuário entrar, todos os hearbeats atrasados serem computados num espaço curto de tempo.
A tabela session_history é criada, caso ela não exista, durante a inicialização do mud. Mas uma nova alteração já se faz necessária. Registrar o IP dos usuários. Após algumas recreativas horas de testes com manipuladores de bits em SQL, foi observado que é possível armazenar o IP como um inteiro de 32bits e fazer manipulações com esse número, usando operadores lógicos, em SQL. Fazia tempo que não me animava pra relembrar SQL. Agora falta alterar a tabela para adicionar esse novo campo e fazer o registro desse novo dado.
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário