TO

Opcode

Por Tony Araujo, 19 de abr. de 2014 em Clients

8
3.5k
Tony AraujoT
19 de abril de 2014 às 12:09

Como eu faço pra receber os dados dentro do OTClient?

 

Exemplo : Eu envio uns dados do servidor para o client

como eu reconheço esses dados dentro do client?

TechrlzT
19 de abril de 2014 às 12:13

Você adicionou extended code na source do servidor?

SlicerS
19 de abril de 2014 às 12:17

 

Server-side:
   Enviar:
          doSendPlayerExtendedOpcode(cid, opcode, buffer)
          Ex.: doSendPlayerExtendedOpcode(cid, 51, "oibls")

   Receber:
          Você deve ter visto a callback

          OPCODE_LANGUAGE = 1

          function onExtendedOpcode(cid, opcode, buffer)
                if opcode == OPCODE_LANGUAGE then
                  -- otclient language
                  if buffer == 'en' or buffer == 'pt' then
                                  -- example, setting player language, because otclient is multi-language...
                                  --doCreatureSetStorage(cid, CREATURE_STORAGE_LANGUAGE, buffer)
                  end
                else
                  -- other opcodes can be ignored, and the server will just work fine...
                end
          end
          
Client-side:
   Enviar:
          local protocol = g_game.getProtocolGame()
          protocol:sendExtendedOpcode(51, "oibls") -- opcode, buffer

   Receber:
          ProtocolGame.registerExtendedOpcode(opcode, callback)
          Ex.: ProtocolGame.registerExtendedOpcode(51, function (protocol, opcode, buffer) print(buffer) end)

 

isso foi oq o bananaFight me mando uma vez a um tempo atras... talvez ajude...

Tony AraujoT
19 de abril de 2014 às 12:21

Então Slicer

só pra ver se eu tendi

 

 

Vamos dizer que eu uso

doSendPlayerExtendedOpcode(cid, 51, "oibls")

 

 

Se eu ultiliza-se dentro do client

ProtocolGame.registerExtendedOpcode(51, function (protocol, opcode, buffer) print(buffer) end)

 

retornaria a oibls

?

SlicerS
19 de abril de 2014 às 12:29

sim, printaria isso ae...

NoninhouhN
19 de abril de 2014 às 16:57

vlw slicer, tb tava precisando saber uma base de como funcionava ;p

StrogmanS
23 de abril de 2014 às 23:10

essa ai é uma forma no caso isso ai seria tipo os gambiarras de sendcancel kkk usar byte é a melhor forma mais o ruim que nao vejo tutor de bytes

4 anos depois...
JeanzeraahJ
11 de novembro de 2018 às 21:50

/gamelib/protocolgame.lua:43: in function 'registerExtendedOpcode'
    /game_chidorinagashi/chidorinagashi.lua:20: in function 'callback'
    /client_topmenu/topmenu.lua:31: in function </client_topmenu/topmenu.lua:29>

 

da esse erro , fiz isso ó 

function toggle()


ProtocolGame.registerExtendedOpcode(90, function (protocol, opcode, buffer) print(buffer) end)

 

não ta funcionando a callback , '-'