Ir para conteúdo
Faça parte da equipe! (2025) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
  • 0

Controle de tempo(bau xp, buffs no geral, itens, trajes e etc)


prs000
 Compartilhar

Pergunta

Estou dando uma olhada em alguma sources que encontrei aqui pela WC e tava tentando entender como funciona o controle de tempo de coisas temporárias no wyd, exemplo, quando o tempo do buff expira o buff ser removido do char ou quando o item expirar ser removido do inventario ou bau.

 

Esse controle fica no lado do servidor imagino eu, mas onde exatamente costuma ficar?

 

Nao consegui encontrar.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
16 horas atrás, prs000 disse:

quando o tempo do buff expira o buff ser removido do char


Os buffs funcionam nativamente, 1 unidade de tempo no buff representa alguns segundos no tempo real, se não me engano, são 4 ou 8 segundos por unidade. As sources não precisam alterar isso, imagino que só vai existir no TMProject ( Client ) e emuladores ( Server ). Os patchs de versão não costumam alterar isso.

 

 

16 horas atrás, prs000 disse:

quando o item expirar ser removido do inventario ou bau.


Aqui eu não me recordo bem quando começou, mas está ligado ao add do item. Itens com expiração tem um add específico ( são 2 ou 3 adds ).
Não é um contador que fica reduzindo, provavelmente ele passa em loop nas contas, se os adds de tempo forem anteriores ao atual, remove o item.

Link para o comentário
Compartilhar em outros sites

  • 0
12 horas atrás, 987987987 disse:


Os buffs funcionam nativamente, 1 unidade de tempo no buff representa alguns segundos no tempo real, se não me engano, são 4 ou 8 segundos por unidade. As sources não precisam alterar isso, imagino que só vai existir no TMProject ( Client ) e emuladores ( Server ). Os patchs de versão não costumam alterar isso.

 

 


Aqui eu não me recordo bem quando começou, mas está ligado ao add do item. Itens com expiração tem um add específico ( são 2 ou 3 adds ).
Não é um contador que fica reduzindo, provavelmente ele passa em loop nas contas, se os adds de tempo forem anteriores ao atual, remove o item.

 

Estive olhando, são 8 segundos por unidade. 

 

Mas a dúvida em si é sobre como funciona e onde fica a parte em que valida quando o buff expira, exemplo, quando zera no cliente o servidor envia o pacote de atualizar buff removendo ele ou o client envia um pacote pro servidor pro servidor processar a remoção do buff e fazer todo UpdateScore de novo. Entender essa funcionalidade mesmo.

 

E sobre os itens são isso mesmo, tem os adds específico que guarda os valores, o EF de dias, EF de horas e o de minutos, ai a duvida é a mesma, queria encontra no código quando que rola essa validação de quando o item expirar o que acontece, se é o servidor que manda o pacote de remover item ou o cliente manda um pacote pro servidor. 

Link para o comentário
Compartilhar em outros sites

  • 0
9 horas atrás, prs000 disse:

...quando zera no cliente o servidor envia o pacote de atualizar buff removendo...


Exatamente, caso o servidor não envie um novo pacote com os buffs, o valor permanece reduzindo e vai ficando negativo.
Adicionalmente, tem o pacote de aparência ( congelado, imune, envenenado ) e o de buff, não é o mesmo que mostra a skill E o efeito no personagem/mob
 

 

9 horas atrás, prs000 disse:

.. é o servidor que manda o pacote de remover item ...


O servidor que remove, é ele o autoritário para isso.

---

"A parte onde está o código" é o problema aqui. Você não vai encontrar o código fonte disso, terá que fazer vc mesmo, é uma parte da TM que poucos ousaram modificar ( ou precisaram fazer ).

Se quer adicionar mais buffs ( quantidade ) ou modificar o comportamento, terá que fazer o seu próprio hook/alteração.

Link para o comentário
Compartilhar em outros sites

  • 0
9 horas atrás, 987987987 disse:


Exatamente, caso o servidor não envie um novo pacote com os buffs, o valor permanece reduzindo e vai ficando negativo.
Adicionalmente, tem o pacote de aparência ( congelado, imune, envenenado ) e o de buff, não é o mesmo que mostra a skill E o efeito no personagem/mob

Citar

Como imaginei, esse pacote da aparencia to ligado nele tambem, sempre que acaba ou adiciona um buff, precisa atualizar a aparecencia pra si mesmo e pro restante dos clientes online.


 

 


O servidor que remove, é ele o autoritário para isso.

Citar

Entendi.. vou pensar em como fazer isso entao. 
É que ja vi servidores que decrementa o tempo do item dentro do item mesmo, vai passando os segundos dentro dele que eu digo, ai fiquei pensando como isso é controlado.



---

"A parte onde está o código" é o problema aqui. Você não vai encontrar o código fonte disso, terá que fazer vc mesmo, é uma parte da TM que poucos ousaram modificar ( ou precisaram fazer ).

Citar

Sobre o código fonte, como tem diversas sources de wyd por ai, pensei que encontraria o código fonte dessa parte, seria mais pra dar um apoio pra mim, entender como funciona e tals, ordem de envio de pacotes por exemplo.



Se quer adicionar mais buffs ( quantidade ) ou modificar o comportamento, terá que fazer o seu próprio hook/alteração.

Citar

A ideia não é essa não, só pra te dar um contexto, estou numa aventura de criar um emulador em c#, mais a nível de estudos, curiosidades e projeto pessoal mesmo.

 

 

Editado por prs000
Link para o comentário
Compartilhar em outros sites

  • 0

Hum..., entendi.
Agora com o contexto fica muito mais fácil.

Existem emuladores C# no Github, uns até mesmo deste fórum.
É bom ter exemplos, mas descobrir sozinho também é bem legal, muitas vezes até melhor para o aprendizado.
Definitivamente existem milhares de formas de se fazer.

Feito é melhor que bem feito, faça funcionar, teste, erre, volte e tente novamente.
Você não vai acertar de primeira, mas continue a tentar =)

Obs.:
- Classe estática chamada BUFF, somente o método Add()
- Add um buff vai adicionar numa lista interna o buff do player, além de enviar para todos essa atualização
- Uma thread interna é criada no start do servidor, ela que vai remover/reduzir o contador de buffs de geral
- O resto do código só add, tudo que ocorrer internamente não é culpa de ng

- Sempre que remover ou add um buff, gerar um evento/action para o recalculo dos status ( ou mais performático, registra os buffs que precisam/afetam os status )

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.