Jonatas

Colaborador
  • Total de itens

    864
  • Registro em

  • Última visita

  • Days Won

    20

Reputação

83 Contribuidor

Sobre Jonatas

  • Rank
    Ex-Administrador
  • Data de Nascimento 24-03-1992

M?todos de Contato

  • MSN
    [email protected]

Informa??o do Perfil

  • Sexo:
    Homem
  • Localiza??o:
    Uberaba - MG

Últimos Visitantes

7.651 visualizações
  1. Esse NPC existia no antigo brA, quando o @Shiraz e eu fizemos a VIP do bRO, eu acabei adicionando o NPC junto, era na época do SVN ainda. Mais muitos sistemas do antigo brA não foi adicionado nesse novo emulador. O diálogo do NPC é o mesmo do bRO. Quem quiser utilizar segue o link: https://github.com/brAthena/brAthena-old/blob/master/brathena/npc/bRO/VIP.txt#L171
  2. Jogo Tos a 1 ano e sinceramente não demora muito tempo, eles voltam para o NA. O povo só reclama, quando o servidor estava no SA, que tomava ddos todos os dias geral reclamava, depois mudaram para o NA o povo reclamou também. Era melhor manter no NA, jogo sem lag algum, prefiro jogar com ping mais alto do que jogar em um servidor lagado, por que vão sentar o ddos e não vai demorar muito.
  3. Segue o diff feito para a limpeza de logs antigos, agora a parte de backup é com vocês. Clean Logs.zip A função SQL->CLEAN_LOG permite remover qualquer entrada na SQL comparando a data que a mesma foi inserida com a data e tempo local. Lembrando que a mesma pode ser usada em todos os servidores, char, login e map. Função para limpeza: void Sql_Clean_Log(Sql *self, const char *table, const char *column, int timer, const char *timer_type) table = Nome da tabela column = Nome da coluna presente na tabela, lembrando que a mesma tem que ser um datetime no SQL. timer = tempo para limpar o log, ele faz uma comparação com a data que o mesmo foi salvo com a data de hoje se a mesma for igual ou superior ele remove. timer_type = aqui é definido em quanto tempo eu quero que seja removido, existe varias opções, resolvi deixar a escolha pois pode ter utilidade para logs de algum sistema custom que precise ser removido em horas, minutos,.. Todos os tipos com suporte pode ser encontrados aqui https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-add Exemplo para limpar tabela pickdrop_log: SQL->CLEAN_LOG(logs->mysql_handle, logs->config.table_name[14], "Date", logs->clean_logs_days, "DAY"); O exemplo acima vai limpar logs que foram inseridos na SQL apos X dias. Foi criado 3 configurações que são elas: clean_logs = { enable_clean_logs = false; // Habilita a remoção de logs clean_logs_days = 120; // Dias para remover os logs check_time_clean_logs = 1; // Tempo para checar se existe logs a serem removidos. 1 = 1 hora } A configuração check_time_clean_logs é o tempo em que o emulador vai fazer a checagem para saber se existe logs com mais de X dias a serem removidos da tabela SQL, por padrão é 1 hora. Resolvi compartilhar, por que sei que o brA não tem desenvolvedor ativo no emulador atualmente. Procurei fazer da melhor maneira possível, deixando um código limpo e com várias opções de uso. Att, Jônatas.
  4. Não tem por que guardar logs antigos, ainda mais em servidores privados onde jogador mal para no servidor, servidores como o do @Tidus que tinha um log enorme por conta da quantidade de jogadores isso é muito bom, essa é uma maneira de não precisar desativar e manter o banco de dados limpo automaticamente, até por que é meio burrice manter pick logs de 6 meses ou mais em um servidor private.
  5. Dá quote em imagem não , polui muito o tópico rapaz . @topico Também é possível fazer para trabalhar nos 3 servidores, char, login e map.
  6. Baixei o Visual Studio 2017 e fui brincar um pouco, achei um método melhor comparando a data do log e checando se o mesmo já está na tabela a mais de X dias, assim não precisa criar várias tabelas. Inclusive da para fazer a remoção em outros em outros servidores
  7. Você não leu direito, a verificação tem que ser feita todo dia, isso é lógica de programação, não é correto eu remover sem verificar se a data do log está de acordo com os dias para remoção, vou dar um exemplo para você entender. Provavelmente vai existir 2 configurações como eu falei, vou criar uma opção para explicar: Enable_remove_logs = true Remove_logs_days = 20 No exemplo acima está habilitado a remoção e o tempo é de 20 dias. Hoje 26/03/2017 o log só vai ser removido dia 14/04/2017. Porém eu preciso fazer uma checagem todo dia, por que o log do dia 27/03/2017 vai ser removido em 15/04/2017 e assim por diante.
  8. Creio que não tenha necessidade de usar NoSQL, até por que como você disse pretende adicionar suporte para remover logs antigos, inclusive é interessante em fazer uma checagem no próprio emulador 1 vez por dia e dependendo da data do log o próprio emulador pode executar a remoção, creio que seja necessário 2 opção: Habilitar a remoção de logs antigos Tempo de remoção em dias
  9. Caso aconteça problemas como o @Tidus falou, adicionem suporte ao emulador para ele criar uma nova tabela picklog para cada dia. Basta usar a biblioteca do time.h e puxar o dia, mês e ano e aplicar no nome do log ficando algo como: time_t now; time(&now); struct tm *tm = localtime(&now); //No nome da tabela adicionar algo como abaixo picklog_%d_%d_%d, tm->tm_mday, tm->tm_mon, tm->tm_year + 1900 É bem interessante criar de forma automática esses logs por data
  10. Se fizerem vai ser coisa de primeira, mais é necessário algumas restrições como por exemplo, tenho um plugin de comando de script e o mesmo está em uso. ao finalizar o servidor de plugins o npc teria que ser desativado automaticamente, entre outras especificações que são necessárias para ter um perfeito funcionamento sem causar erros no servidor online. Sobre a VIP eu nem sei por que não adicionaram nesse novo emulador, foi uma das melhores coisas já feita, fora que não precisaria usar esses sistemas de vips criados por script que são horríveis. Ninguém sabia como funcionava o sistema VIP, tanto que depois que implementamos o povo foi pedir no hercules e rathena. O mais engraçado foi a implementação inicial do rathena ter o mesmo nome da função da vip que o @Shiraz fez. Rapaz sobre essa hashtag ae creio que nunca aconteça . Sinceramente perdi o gosto por RO, um dos motivos foi ninguém dar um retorno para o projeto, e depois que o brA fechou e voltou novamente eu acabei deixando RO de lado, também por outros motivos, mais não é relevante comentar. As vezes eu faço algumas coisas para o @Tidus tirando isso, no meu tempo livre fico jogando Tree of Savior.
  11. O que seria interessante é criar um servidor apenas para os plugins assim ficando 4 servidores, char, map, login e plugins. Em caso de erros eu poderia desligar o servidor de plugins e compilar somente ele, e o servidor continuaria online. Seria bem interessante pois dependendo da manutenção feita no servidor o mesmo nem precisaria ser desligado, pois poderia utilizar o sistema de plugins para aplicar as modificações. Para fazer isso vai ter um trabalho um pouco maior, mais é algo que teria uma enorme vantagem.
  12. Na verdade não precisa de um plugin pra fazer isso, eu já fiz vários sistemas pro Tidus, onde em um único arquivo, eu fiz todo o código, pacotes, comandos, log SQL, leitura do banco de dados e funções do sistema, a única coisa que fiz de diferente foi apenas usar a função para iniciar e terminar a leitura no map.c, já que no plugin não precisa adicionar nada no mapa para fazer a leitura, pois o próprio código do plugin já da suporte, tirando isso o resto da pra fazer normal. Basta você incluir os arquivos .h no seu arquivo, por exemplo quero criar um comando de script vou incluir o script.h. Esse sistema de plugin do hercules qualquer alteração feita no código de fonte que estiver relacionado com a parte de plugin é necessário alterar o código do mesmo. Veja: https://github.com/HerculesWS/Hercules/commit/21468b7ed14784913a1d244c8918cd007bef0d22 Eles contam com uma API que faz Isso, caso o brAthena não consiga utilizar da mesma API tem que ser muito bem pensado ou é um tiro no pé, pois atualmente o brAthena não vem tendo um desenvolvimento ativo, A ideia do plugin não é ruim, mais tem que ser muito bem pensado, por que depois ninguém atualiza o sistema de plugin conforme for mudando os códigos do emulador e no final acaba criando um emulador bugado, onde nenhum plugin vai funcionar, vai dar vários erros ao compilar entre outros problemas. Também não tem só essa forma como o hercules fez os plugins tem formas melhores que podem ser estudadas, agora cabe ao pessoal olhar para isso.
  13. O melhor é se tivesse alguma forma de aplicar um código sem precisar recompilar o servidor, o código seria aplicado em tempo real.
  14. O sistema de plugin não muda muita coisa pois é necessário compilar o código, é como se fosse isso que o Shiraz fez no brAthena Old https://github.com/brAthena/brAthena-old/commits/master/brathena/src/custom a diferença é que o do Hercules com um arquivo você pode alterar todos. Isso pode nem ser chamado de plugin. Na minha visão um plugin é estender a aplicação sem a necessidade de recompilar o código de fonte principal.
  15. SUGESTÃO

    Em rela??o ao suporte voc? est? correto. Uma coisa que existia no brA e aquela antiga ?rea de tutorial que precisava ser aprovado e tudo mais. Eu n?o sei por que o pessoal brasileiro ? t?o pregui?oso, existe a wiki, mais ningu?m usa. parece que s? existe o f?rum e nada mais para eles. Sempre foi assim apenas um tapinha nas costas, aquela vez que o brA ficou fechado um tempo, praticamente ningu?m fez quest?o de ajudar para manter online. Eu me lembro que 3 membros ajudaram o f?rum se manter online por mais alguns meses, 2 membros que eu n?o me lembro ajudaram com um valor baixo, o que mais fez doa??o e ajudou a manter foi o @Tidus. O grande problema que vejo ? na cultura dos brasileiros, onde a maioria s? quer aproveitar dos outros. Voc? pode ver o comportamento dos brasileiros em jogos online, em FPS os brasileiros s?o os que mais usam hacker, e aqueles jogos que permitem mensagem global, voc? s? v? palavras de baixo cal?o. E sim, voc? est? certo sobre o f?rum ter direito a uma taxa das vendas, inclusive tanto no f?rum de servi?os pagos como pedido de lan?amento caso algu?m tivesse a inten??o de vender que parte seria para ajudar nas despesas do host do brA, Por?m teria que mudar a forma de como funciona, primeiro teria que fazer alguma modifica??o no ipboard para na postagem n?o mostrar o nome do membro que postou, ou criar um bot que voc? envia seu pedido o bot posta no f?rum para evitar MP de negocia??o, quem tiver interesse, upa o arquivo no ip downloads. 30% ta caro em carl?o, vamos abaixar isso, estamos em crise rapaz. Eu penso da seguinte forma, n?o adianta voc? pagar mais barato pra outra pessoa fazer achando que voc? est? no lucro. As vezes o barato sai caro, por que se voc? n?o conhece a pessoa, ela pode muito bem criar exploits entre v?rios outros problemas para tirar vantagens.