Jump to content
  • 0

Como adicionar um SpellBar no OTClient


Hi im Mell

Question

 

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 to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0
4 minutos atrás, Hi im Mell disse:

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

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

Link to comment
Share on other sites

  • 0
1 minuto atrás, dalvorsn disse:

Usa opcodes, é o meio mais prático.

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 to comment
Share on other sites

  • 0
6 minutos atrás, 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 

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 to comment
Share on other sites

  • 0
20 minutos atrás, 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 

 

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 to comment
Share on other sites

  • 0
16 minutos atrás, 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

 

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

Link to comment
Share on other sites

  • 0
2 minutos atrás, Gabriel Netto disse:

 

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

é 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 to comment
Share on other sites

  • 0
4 horas atrás, dalvorsn disse:

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

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 to comment
Share on other sites

×
×
  • Create New...