Valacobino

Membro
  • Total de itens

    4
  • Registro em

  • Última visita

Reputação

1 Iniciante

Sobre Valacobino

  1. Se você quer mudar só a mensagem em amarelo, o truque vai ser mudar o msgstringtable dizendo ao invés de minutos para horas e no servidor, converter o tempo a mais enviado, também de minutos para horas. Eu acho que assim deve funcionar: msgstringtable.txt: %s será deletado de seu inventário em %d hora(s).# clif.cpp: mudar WFIFOL(fd,offs+23)=sd->inventory.u.items_inventory[n].expire_time; para WFIFOL(fd,offs+23)=(int)time(NULL) + ((sd->inventory.u.items_inventory[n].expire_time - (int)time(NULL)) / 60); recompilar o servidor e testar Obs: caso você dê algum item com duração menor que 1 hora no cliente vai dizer 0 horas
  2. A mensagem por si só acho que vc vai conseguir alterar em msgstringtable.txt Porém se você quiser fazer um campo dinâmico, que varia entre dia/horas/minutos/segundos, teria que editar o cliente do jogo, o que é praticamente inviável. Uma idéia que funciona seria fazer fazer o servidor enviar uma mensagem para o cliente, no momento do clif_additem (clif.cpp) na src, void clif_additem(struct map_session_data *sd, int n, int amount, unsigned char fail) mais ou menos na linha onde aparece WFIFOL(fd,offs+23)=sd->inventory.u.items_inventory[n].expire_time; Você adicionar um clif_displaymessage com a mensagem custom que indica a duração do item. Dessa forma, sempre que um item de aluguel for entregue, o servidor vai enviar uma msg para o cliente (aquela msg amarela que vc citou vai continuar aparecendo também) Por exemplo: int tempo = sd->inventory.u.items_inventory[n].expire_time - (int)time(NULL); struct item_data * item = itemdb_exists(sd->inventory.u.items_inventory[n].nameid); if (tempo > 0 && item != NULL) { int segundos, minutos, horas, dias = 0; dias = tempo / 86400; horas = (tempo % 86400) / 3600; minutos = ((tempo % 86400) % 3600) / 60; segundos = ((tempo % 86400) % 3600) % 60; clif_displaymessage(sd->fd, "O item %s possui duração de %d dia(s) %d hora(s) %d minuto(s) e %d segundo(s)", item->jname, dias, horas, minutos, segundos); } Obs: Não testei o código acima. Teste antes de adicionar no servidor.