Ir para conteúdo
  • Cadastre-se

Programação Me ajude a entender o opcodes pfvr


Posts Recomendados

eu uso tfs 1.2

 

estou a dias quebrando cabeça com o opcodes, queria enviar uma função no cliente executar ela, já vi diversos topicos, mas ainda sim não rola, eu não quero que façam nada somente me ajudem a entender 

 

eu percebi que na lib /data/lib/core/player.lua há isso..

 

function Player.sendExtendedOpcode(self, opcode, buffer)
	if not self:isUsingOtClient() then
		return false
	end

	local networkMessage = NetworkMessage()
	networkMessage:addByte(0x32)
	networkMessage:addByte(opcode)
	networkMessage:addString(buffer)
	networkMessage:sendToPlayer(self)
	networkMessage:delete()
	retu

eu tenho q usar a função Player.sendExtendedOpcode, para enviar um opcode pro cliente correto? mas como eu posso fazer isso? ela precisa estar dentro do creaturescripts junto com a onExtendedOpcode? ou não necessariamente ?

 

eu estou tentando algo como: Player.sendExtendedOpcode(115, getWorldLight()) esta errado? eu quero enviar a função getWorldLight para o cliente

pra receber eu uso ProtocolGame.registerExtendedOpcode(115, (TESTE) e coloco em init, até ai ok

 

e em terminate ProtocolGame.unregisterExtendedOpcode(115)

 

e também na module eu coloco:

function TESTE(getWorldLight()) 

local protocolGame = g_game.getProtocolGame()

if protocolGame then

if getWorldLight <= 160 then

Image:setVisible(true)

else

Image:hide()
end

end

 

eu simplesmente quero utilizar a função getWorldLight para ele ativar ou desativar uma imagem no cliente, estou a dias tentando, minha ultima opção pra tentar entender como usar esse opcodes foi recorrer aqui ;//

 

 

Editado por shanden4502 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Vou te dar um exemplo de como é na versão 8.6 (otx ou tfs mais antiga), que é o que eu uso.

data/creaturescripts/creaturescripts.xml:

<event type="extendedopcode" name="ExtendedOpcode" event="script" value="opcode.lua"/>


data/creaturescripts/scripts/opcodes.lua:

function onExtendedOpcode(cid, opcode, buffer) --> Recebe os extendedopcodes enviados pelo client.

    if opcode == 80 and buffer == "apple" then --> O buffer é a informação que foi enviada do client pro server side.
        doPlayerFeed(cid, 50)
    elseif opcode == 80 and buffer == "cake" then
        doPlayerFeed(cid, 150)
    elseif opcode == 80 and buffer == "coconut" then
        doPlayerFeed(cid, 50)
        doSendPlayerExtendedOpcode(cid, 82, texto) --> Envia informação pro client, mas a informação tem que do tipo string. 
		--> Até tem como enviar outros tipos, mas tem que fazer todo um rolê no client e na pasta data.
    end
    return true
end


Como a doSendPlayerExtendedOpcode é uma função, você pode usar ela em qualquer .LUA, seja de dentro da creaturescripts ou em actions, movements, spells, etc.

E no caso nos modules, o que você disse ter feito ta certo, exceto na function TESTE.
Teria que ser algo assim:

function TESTE(protocol, code, buffer) 
  local protocolGame = g_game.getProtocolGame()
  if protocolGame then
      if buffer == "160" then
        Image:setVisible(true)
      else
        Image:hide()
      end
  end
end


Não faço idéia do quanto isso tudo muda de tfs 0.4 pra 1.2, mas acho que deve te dar uma luz.

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

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

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Muvuka
      Alguem tem anti-nuker igual a esse 
       

       
    • Por Muvuka
      [SQLite] -=[TFS]=- 0.4 8.60 Alguem faz apk mobile pra mim ip: dexsoft.ddns.net
       
      pra mim
       
      https://www.mediafire.com/file/5klqnyy6k7jda0u/OTClientV8.rar/file
       
      TA TUDO AI
    • Por yuriowns
      Salve rapazes, estou precisando de um client próprio para o meu servidor 7.4, preciso que algum programador experiente e com referências faça um client do jeito que eu procuro. Responda aqui para fazermos um orçamento, obrigado!

      Não sei se estou no lugar certo, se não me desculpem e peço que movam por gentileza!
    • Por paulo thush
      Pessoal to com um grande problema, estou com um servidor TFS 1.4x 10.98, recentemente começou dar um problema, sempre quando falava "trade" com o npc dava um erros, com qual quer npc, o erro e o seguinte.
       
       
      me falaram que o problema e nas sourcer que precisava mudar umas coisas me passaram um link no github esse aqui 
      https://github.com/otland/forgottenserver/pull/3996/files
       
      porem eu vi vídeos no youtube ensinando a compilar, já vi muitos tópicos como compilar a sourcer, ai quando vou compilar da esse erro
      já tentei instalar, desinstala muitas coisas, alterar também não vai, minha sourcer e essa 
      https://github.com/otland/forgottenserver
       
       
      Alguém poderia me ajuda com esse erro, ou ate compilar 100% as sourcer. os Tópicos que eu tentei para compilar e esse daqui, se não poder o link me desculpe.
      https://forums.otserv.com.br/index.php?/forums/topic/169234-windowsvc2019-compilando-sources-tfs-14-vcpkg/
       
      alguém me da uma luz por favor kkk
    • Por Ryzek
      Uso tfs 0.4 trunk3884 bem simples.
      Queria acrescentar magic effects para 255 pois o meu só vai até 69. Encontrei um tópico que falava sobre porém parece ter sido removido, não consigo acessar!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo