2010-03-25

Atualizações menores

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

2010-03-13

Mais magias de Necromante


Última leva de magias de Necromante foi adicionada ao spells.help. Tive vontade de citar "Jaspion" na magia "make aggr" (de 'make aggressive'):


'Satan Goss têm o poder de enfurecer os seres, e transformá-los em monstros incontroláveis.'

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