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.
2010-03-25
2010-03-21
session history
interpreter.c
- nanny(): inicializa GET_FIGHTING_TIME e GET_PEACE_TIME
fight.c
- perform_violence(): atualiza GET_FIGHTING_TIME e GET_PEACE_TIME
comm.c
- close_socket(): close_session_history()
Basicamente são esses os arquivos alterados. Agora a cada desconexão será criado um registro contendo o tempo em luta e o tempo sem estar em luta. Não foi tratado o caso de tempo em idle.
Também preciso checar se a tabela session_history não existe. Nesse caso é preciso criá-la.
- nanny(): inicializa GET_FIGHTING_TIME e GET_PEACE_TIME
fight.c
- perform_violence(): atualiza GET_FIGHTING_TIME e GET_PEACE_TIME
comm.c
- close_socket(): close_session_history()
Basicamente são esses os arquivos alterados. Agora a cada desconexão será criado um registro contendo o tempo em luta e o tempo sem estar em luta. Não foi tratado o caso de tempo em idle.
Também preciso checar se a tabela session_history não existe. Nesse caso é preciso criá-la.
2010-03-13
Mais magias de Necromante
2010-03-11
Help para skills de necromante
Mais uma leva de skills de necromante agora tem help. São magias obtidas entre os níveis 20 e 50, aproximadamente.
É sempre bom verificar a sintaxe da magia olhando no spell_parser.c. Lá dá para saber quem pode ser alvo da magia (objeto, mob, jogador, conjurador...).
É sempre bom verificar a sintaxe da magia olhando no spell_parser.c. Lá dá para saber quem pode ser alvo da magia (objeto, mob, jogador, conjurador...).
Assinar:
Postagens (Atom)
