Ir para conteúdo

Pergunta

 

Olá pessoal, eu sou meio novo em relação ao OTC e como já diz o título eu queria saber como colocar ou criar um spellbar no otclient, vou explicar melhor abaixo.

 

 

 

 

 

Eu queria criar (ou se ja tiver apenas colocar) um SpellBar por Vocation, onde eu possa adicionar livremente novas spells. Como por exemplo colocar um botão de Transformar.

 

 

 

 

 

Será que alguma boa alma pode me ajudar? Ficaria realmente muito grato :')

 

 

Link para o comentário
https://xtibia.com/forum/topic/241889-como-adicionar-um-spellbar-no-otclient/
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0
  Em 25/08/2016 em 22:11, Hi im Mell disse:

Certamente, mas creio que usaria um pouco da DATA. Eu acho.. 

Expand  

Sim, porque os icones e tal das magais seriam itens que executam magias ao clicar. Tipo aql cdbar dos poketibias

Link para o comentário
https://xtibia.com/forum/topic/241889-como-adicionar-um-spellbar-no-otclient/#findComment-1702596
Compartilhar em outros sites

  • 0

Exato! Mas se cada uma fosse um item, iria dar muito trabalho, e um sistema extremamente grande. Mas seria perfeito! Cada Spell com seu devido ícone.

Link para o comentário
https://xtibia.com/forum/topic/241889-como-adicionar-um-spellbar-no-otclient/#findComment-1702597
Compartilhar em outros sites

  • 0
  Em 27/08/2016 em 06:30, dalvorsn disse:

Usa opcodes, é o meio mais prático.

Expand  

Cara, sorry pela ignorância (acho que eu já disse isso pra ti HSUASHUAHUSA), mas opcode nesse caso significa código de operação?

Eu sempre achei que isso fosse algo relacionado a hardware ou sei lá ;x 

Link para o comentário
https://xtibia.com/forum/topic/241889-como-adicionar-um-spellbar-no-otclient/#findComment-1702745
Compartilhar em outros sites

  • 0
  Em 27/08/2016 em 06:32, Gabriel Netto disse:

Cara, sorry pela ignorância (acho que eu já disse isso pra ti HSUASHUAHUSA), mas opcode nesse caso significa código de operação?

Eu sempre achei que isso fosse algo relacionado a hardware ou sei lá ;x 

Expand  

Não deixa de ser, porém no contexto otclient quando eu me refiro a opcode(entenda extended opcode), me referi a um sistema flexivel de protocolos de rede implementado no otcliente onde não é necessario recompilar, o cliente para criar novos packets no protocolgame, pois o extended opcode é um packet que permite enviar "subpackets", ele tem um codigo de operação(opcode), que recebe um int que é um subcodigo de operação e uma string, possibilitando que através de um unico packet tu possa enviar diversas informações sem a necessidade de recompilar.

 

Caso o servidor que tu esteja usando não tenha inclua.

https://github.com/edubart/otclient/blob/master/tools/tfs_extendedopcode.patch

Esse é um patch para auxiliar nas modificações necessárias.

 

Para uso é bem simples, você tem duas opções, enviar informações do servidor para o cliente, e enviar do cliente para o servidor.

Do cliente para o servidor, voce precisa instanciar a classe protocol, e enviar o opcode. Dai tu recebe ele na creature script onExtendedOpcode no server e executa o que quer executar.

Exemplo: https://github.com/edubart/otclient/blob/7a8e6057046342828c607da7f7b249860a3a476c/modules/client_locales/locales.lua#L8-L15

 

E do servidor para o cliente tu usa a função doSendPlayerExtendedOpcode(cid, opcode, buffer). E no cliente voce registra uma função para receber esse opcode:

https://github.com/edubart/otclient/blob/7a8e6057046342828c607da7f7b249860a3a476c/modules/client_locales/locales.lua#L54-L59

O locales é um bom exemplo do opcode em uso

Link para o comentário
https://xtibia.com/forum/topic/241889-como-adicionar-um-spellbar-no-otclient/#findComment-1702747
Compartilhar em outros sites

  • 0
  Em 27/08/2016 em 06:32, Gabriel Netto disse:

Cara, sorry pela ignorância (acho que eu já disse isso pra ti HSUASHUAHUSA), mas opcode nesse caso significa código de operação?

Eu sempre achei que isso fosse algo relacionado a hardware ou sei lá ;x 

Expand  

 

Isso é uma referencia a um método de ação do processador.

 

Mas basicamente é enviar informações para o receptor agir de formas diferentes, e por isso essa referencia.

 

Ou seja você vai enviar informações do servidor para o client usando os ExtendedOpcodes que ja estão implantados na source do client ( E em alguns servidores tfs 1.x ), caso no seu servidor não tenha você pode adicionar manualmente nas source seguindo os tutoriais ja postados aqui.

 

 

Link para o comentário
https://xtibia.com/forum/topic/241889-como-adicionar-um-spellbar-no-otclient/#findComment-1702748
Compartilhar em outros sites

  • 0
  Em 27/08/2016 em 06:49, dalvorsn disse:

Não deixa de ser, porém no contexto otclient quando eu me refiro a opcode(entenda extended opcode), me referi a um sistema flexivel de protocolos de rede implementado no otcliente onde não é necessario recompilar, o cliente para criar novos packets no protocolgame, pois o extended opcode é um packet que permite enviar "subpackets", ele tem um codigo de operação(opcode), que recebe um int que é um subcodigo de operação e uma string, possibilitando que através de um unico packet tu possa enviar diversas informações sem a necessidade de recompilar.

 

Caso o servidor que tu esteja usando não tenha inclua.

https://github.com/edubart/otclient/blob/master/tools/tfs_extendedopcode.patch

Esse é um patch para auxiliar nas modificações necessárias.

 

Para uso é bem simples, você tem duas opções, enviar informações do servidor para o cliente, e enviar do cliente para o servidor.

Do cliente para o servidor, voce precisa instanciar a classe protocol, e enviar o opcode. Dai tu recebe ele na creature script onExtendedOpcode no server e executa o que quer executar.

Exemplo: https://github.com/edubart/otclient/blob/7a8e6057046342828c607da7f7b249860a3a476c/modules/client_locales/locales.lua#L8-L15

 

E do servidor para o cliente tu usa a função doSendPlayerExtendedOpcode(cid, opcode, buffer). E no cliente voce registra uma função para receber esse opcode:

https://github.com/edubart/otclient/blob/7a8e6057046342828c607da7f7b249860a3a476c/modules/client_locales/locales.lua#L54-L59

O locales é um bom exemplo do opcode em uso

Expand  

 

Então posso usar basicamente qualquer resposta vinda do servidor? Desde dar um item ao player até pegar o level dele?

Link para o comentário
https://xtibia.com/forum/topic/241889-como-adicionar-um-spellbar-no-otclient/#findComment-1702751
Compartilhar em outros sites

  • 0
  Em 27/08/2016 em 07:13, Gabriel Netto disse:

 

Então posso usar basicamente qualquer resposta vinda do servidor? Desde dar um item ao player até pegar o level dele?

Expand  

é uma string que tu envia, o que tu vai fazer quando receber essa string ai é contigo, pode fazer praticamente tudo que esteja dentro do escopo das funções lua do server/client

Link para o comentário
https://xtibia.com/forum/topic/241889-como-adicionar-um-spellbar-no-otclient/#findComment-1702752
Compartilhar em outros sites

  • 0
  Em 27/08/2016 em 17:53, dalvorsn disse:

Ainda acho mais elegante/eficiente usando opcodes, mas assim funciona também

Expand  

Dei um "base" com um bom conteúdo e básico, foi apenas oque ele quis um spell bar por vocation, agora edita quem quiser do jeito que quiser.

Infelizmente não tenho bom conhecimento para fazer melhor ;/:

Link para o comentário
https://xtibia.com/forum/topic/241889-como-adicionar-um-spellbar-no-otclient/#findComment-1702822
Compartilhar em outros sites

×
×
  • Criar Novo...