Ir para conteúdo
  • 0

Opcode Duvida


Aberos

Pergunta

Galera copilei os opcode no meus erver mas nao to sabendo usar , queria saber como faço pro server enviar uma storage pro OTC por opencode , quero só um exemplo para poder enterder sobre essa vantagem q o OTC nos proporciona

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

tem auguma tang que mande a life do poke sem o poke esta sumonado?

tenta tang de morango

 

n entendi nada de nenhum dos dois post,recomendo que reformule seu post de uma forma mais coerente e sucinta.

aparentemente vc n declarou as variaveis...

 

Cara, isso ai é bem gambiarra. Você teria que mandar um opcode em TODAS as possibilidades de adcionar e remover vida do pokemon. Go/back, exp2.0, potions, x-regen, nurse, e tudo mais. Minha dica é que tente fazer isso nas sources mesmo. Uma função igual a de mandar sua vida pro cliente, mandar a do seu summon, se ele existir. Não deve ser tão difícil assim. Mesmo sendo um opcode pelas sources, pra não ser tão complicado de mecher no otclient.

é só manda periodicamente(checando se mudou antes de eviar), com um loop de addEvent (n recomendo onThinck porque ficaria muito pesado)

 

esse exemplos que vc deu e do server enviando pro client, agora como seria client enviando pro server?

protocol = g_game.getProtocolGame()
protocol:sendExtendedOpcode(seuopcode, buffer)

buffer pode ser qualquer string ou number que vc queira mandar

seuopcode o numero do opcode

para receber vc usaria no server

function onExtendedOpcode(cid, opcode, buffer)
        if opcode == seuopcode then
               bloco de codigo             
        end
end

lembrando de colocar a tag no creaturescript.xml

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

  • 0

@lordbug99 no caso tipo eu tenho um shop no otc que o player compra itens ao clicar no botao executando uma talk q add o item ao player,isso seria possivel em opcode?

Link para o comentário
Compartilhar em outros sites

  • 0

sim

algo do tipo:

 

buy = {
[2160] = 10000,
 
}
function onExtendedOpcode(cid, opcode, buffer)
        if opcode == 30 then
               local item,quant = string.explode(buffer,":") 
               item,quant = tonumber(item),tonumber(quant)
               if buy[item] and doPlayerRemoveMoney(cid, buy[item]*quant  ) then
                         doPlayerAddItem(cid, item, quant, false) 
               else 
                         doPlayerSendCancel(cid, "Você não tem dinheiro suficiente para comprar "..quant.." "..getItemNameById(item)..". ")     
              end
        end
end

e no cliente vc mandaria na forma "itemid:quantidade" por opcode

Link para o comentário
Compartilhar em outros sites

  • 0

quando se trata de rede quanto mais resumido for a mensagem melhor, quando se tratam de numero entao, a melhor opcao e usar bytes

o proprio client ja tem suporte para reeceber nesse formato

 

Cara, isso ai é bem gambiarra. Você teria que mandar um opcode em TODAS as possibilidades de adcionar e remover vida do pokemon. Go/back, exp2.0, potions, x-regen, nurse, e tudo mais. Minha dica é que tente fazer isso nas sources mesmo. Uma função igual a de mandar sua vida pro cliente, mandar a do seu summon, se ele existir. Não deve ser tão difícil assim. Mesmo sendo um opcode pelas sources, pra não ser tão complicado de mecher no otclient.

discordo disso, nao precisa ser uma baita gambiarra nao, voce precisaria somente de duas coisas, um onthink para quando o pokemon nao esta summonado e um onstatschange para quando esta summonado

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...