Darckx13 26 Postado Março 24, 2013 Share Postado Março 24, 2013 Ola pessoal Como podemos ver os artigos e coisas relacionadas com o OTC e muito poucos então venho aqui sugerir que abrimos um grupo de estudo em relação a opcodes. Oque seria OPCODES? Opcodes é um sistema para permite a adição de novos opcodes ao protocolo do jogo usando os scripts apenas .Lua em ambos os lados cliente e servidor, tornando assim fácil de implementação de novas funcionalidades de cliente / servidor, independentemente da progranação feito em C + +. Apenas um código de operação é suportado, no momento, a 0x01, que é enviado pelo cliente para informa ao jogador a linguagem corrente. Opcodes novos serão adicionados no futuro, incluindo opcodes para reprodução de sons e novas interfaces. Modificaçãos necessarias na Source do servidor! protocolgame.h -[Diff] protocolgame.h - Pastebin.com protocolgame.cpp -[Diff] protocolgame.cpp - Pastebin.com const.h -[Diff] const.h - Pastebin.com luascript.h -[Diff] luascript.h - Pastebin.com luascript.cpp -[Diff] luascript.cpp - Pastebin.com player.h -[Diff] player.h - Pastebin.com creatureevent.h -[Diff] creatureevent.h - Pastebin.com creatureevent.cpp -[Diff] creatureevent.cpp - Pastebin.com game.h -[Diff] game.h - Pastebin.com game.cpp -[Diff] game.cpp - Pastebin.com /creaturescripts/creaturescrips.xml -[Diff] creaturescripts.xml - Pastebin.com /creaturescripts/extendedopcode.lua -[Lua] extendedopcode.lua - Pastebin.com Creditos edubart Bem com essas informações podemos abrir mais o leque de possibilidades e apenas com uma função opcodes daria para fazermos "pog" em funções do cliente? Postem oque vcs acha, e oque conseguem fazer! Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/ Compartilhar em outros sites More sharing options...
BananaFight 196 Postado Março 24, 2013 Share Postado Março 24, 2013 Bom amigo, isso já foi postado no Xtibia. http://www.xtibia.com/forum/topic/208678-extended-opcodes-otclient/ Mais mesmo assim agradeço a sua preocupação de trazer novos conteúdos para o Xtibia Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1492501 Compartilhar em outros sites More sharing options...
Slicer 1070 Postado Março 24, 2013 Share Postado Março 24, 2013 bom seria alguns exemplos praticos '--' Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1492515 Compartilhar em outros sites More sharing options...
BananaFight 196 Postado Março 24, 2013 Share Postado Março 24, 2013 (editado) 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) Créditos ao @dalvorsn, por ter me passado esse tutorial. @Off, Slicer me perguntaram se sua versão 2.9 do PDA ainda tinha o bug das pokebolas que depois de um tempo o pokemon não sai mais, e manda chamar o God. Editado Março 24, 2013 por BananaFight Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1492543 Compartilhar em outros sites More sharing options...
Slicer 1070 Postado Março 24, 2013 Share Postado Março 24, 2013 /\ avisa q isso ocorre em todas as versoes do PDA e ainda n tem soluçao, ja q ngm sabe pq isso ocorre... Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1492610 Compartilhar em outros sites More sharing options...
Darckx13 26 Postado Março 24, 2013 Autor Share Postado Março 24, 2013 Minha intenção com esse poste e "arrumar" nova funcionabilidade para isso, como não intendo muito pensei em cria algo para estudo cada um posta oque pensa e todos nos aprendemos um poquinho, minha ideia seria com isso fazer um opcode para um globalevent tipo no pxg que quando entra em x area muda o shader ou som etc estou montando uma coisa aqui espero que de certo se tudo ocorrer bem postarei aqui Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1492639 Compartilhar em outros sites More sharing options...
BananaFight 196 Postado Março 25, 2013 Share Postado Março 25, 2013 Bom, uma boa iniciativa é ensinar o pessoal a compilar os opcode em ot 8.6, pois no tutorial quando você tenta instalar não consegue. Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1492775 Compartilhar em outros sites More sharing options...
Darckx13 26 Postado Março 26, 2013 Autor Share Postado Março 26, 2013 Bom, uma boa iniciativa é ensinar o pessoal a compilar os opcode em ot 8.6, pois no tutorial quando você tenta instalar não consegue. Olha ensinar não vou conseguir pois uso windows e tem que fazer as adaptação na unha, estou terminando de adapitar o meu mas pra quem quiser eu posto as sources do 8,6 ja com as opcode intalado so mais uma coisinha =p não e o tfs e o otx mas e com a mesma base do tfs então creio que funcione todos scripts e libs normal Dll 32bits Dll 64bits Sources Compilado mais sources Creditos Kaiser Banana Fight por favor faz um scan e posta ae a net aqui ta a manivela Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1493278 Compartilhar em outros sites More sharing options...
Baxnie 7 Postado Março 27, 2013 Share Postado Março 27, 2013 Como exemplo de uso, o modulo client_locales utiliza para enviar o locale escolhido para o servidor. Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1493875 Compartilhar em outros sites More sharing options...
Darckx13 26 Postado Março 27, 2013 Autor Share Postado Março 27, 2013 Como exemplo de uso, o modulo client_locales utiliza para enviar o locale escolhido para o servidor. Voce teria algum exemplo de como utilizar so servidor para o cliente tipo usar um onuse em x objeto e o cliente apresentar alguma caracteristica dele tipo som com as informações que temos ta dificil pra alguns mais leigos e fuçados tentar execultar algo a unica coisa que consegui utilizar ate agora foi o isPlayerUsingOtclient(cid) ainda n intendi como usar o opcode Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1494146 Compartilhar em outros sites More sharing options...
dalvorsn 268 Postado Março 28, 2013 Share Postado Março 28, 2013 (editado) Exemplo bem básico: Client: #modules/game_print/print.otmod de0vrxyU[/pastebin] #modules/game_print/print.otui S8SDFciL[/pastebin] #modules/game_print/print.lua DRv7GHbY[/pastebin] Server: #data/creaturescripts/extendedopcode.lua GfG1mZF9[/pastebin] Obs.: É necessário que tenhas o codigo compilado nas sources, se não tiver não vai funcionar a callback. Modulo anexado game_print.rar Edit: Como exemplo de uso, o modulo client_locales utiliza para enviar o locale escolhido para o servidor. Voce teria algum exemplo de como utilizar so servidor para o cliente tipo usar um onuse em x objeto e o cliente apresentar alguma caracteristica dele tipo som com as informações que temos ta dificil pra alguns mais leigos e fuçados tentar execultar algo a unica coisa que consegui utilizar ate agora foi o isPlayerUsingOtclient(cid) ainda n intendi como usar o opcode É só usar essa função no script do server doSendPlayerExtendedOpcode(cid, opcode, buffer) E no otclient voce usa essa função aqui: ProtocolGame.registerExtendedOpcode(opcode, callback) lembrando que callback deve ser uma função qualquer criada por voce, que tenha como parametros isso: protocol, opcode, buffer Ex.: function minhafuncao(protocol, opcode, buffer) print(opcode, buffer) ehd ProtocolGame.registerExtendedOpcode(opcode, minhafuncao) Editado Março 28, 2013 por dalvorsn Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1494375 Compartilhar em outros sites More sharing options...
BananaFight 196 Postado Março 28, 2013 Share Postado Março 28, 2013 Muito bom Dalvo, bem pratico e alto explicativo, muito obrigador por estar sempre ajudando nessa parte. Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1494545 Compartilhar em outros sites More sharing options...
rohfagundes 78 Postado Março 28, 2013 Share Postado Março 28, 2013 (editado) tem como colocar no ot 8.54? edit: no arquivo const.h n tem essa parte enum OperatingSystem_t { CLIENTOS_LINUX = 0x01, CLIENTOS_WINDOWS = 0x02, CLIENTOS_FLASH = 0x03 CLIENTOS_LINUX = 0x01, CLIENTOS_WINDOWS = 0x02, CLIENTOS_FLASH = 0x03, + CLIENTOS_OTCLIENT_LINUX = 0x0A, + CLIENTOS_OTCLIENT_WINDOWS = 0x0B, + CLIENTOS_OTCLIENT_MAC = 0x0C, }; Editado Março 28, 2013 por rohfagundes Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1494572 Compartilhar em outros sites More sharing options...
Darckx13 26 Postado Março 28, 2013 Autor Share Postado Março 28, 2013 tem como colocar no ot 8.54? edit: no arquivo const.h n tem essa parte enum OperatingSystem_t { CLIENTOS_LINUX = 0x01, CLIENTOS_WINDOWS = 0x02, CLIENTOS_FLASH = 0x03 CLIENTOS_LINUX = 0x01, CLIENTOS_WINDOWS = 0x02, CLIENTOS_FLASH = 0x03, + CLIENTOS_OTCLIENT_LINUX = 0x0A, + CLIENTOS_OTCLIENT_WINDOWS = 0x0B, + CLIENTOS_OTCLIENT_MAC = 0x0C, }; então essa parte que esta em verde e para vc adicionar nas sources, se vc usa linux e so da uma pesquisada sobre diff que os arquivos aqui postados são para auto adição dos codigos na source, se não acho que o unico jeito de adicionar isso e na unha me corrijam se eu estiver errado por favor. Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1494645 Compartilhar em outros sites More sharing options...
dalvorsn 268 Postado Março 28, 2013 Share Postado Março 28, 2013 tem como colocar no ot 8.54? edit: no arquivo const.h n tem essa parte enum OperatingSystem_t { CLIENTOS_LINUX = 0x01, CLIENTOS_WINDOWS = 0x02, CLIENTOS_FLASH = 0x03 CLIENTOS_LINUX = 0x01, CLIENTOS_WINDOWS = 0x02, CLIENTOS_FLASH = 0x03, + CLIENTOS_OTCLIENT_LINUX = 0x0A, + CLIENTOS_OTCLIENT_WINDOWS = 0x0B, + CLIENTOS_OTCLIENT_MAC = 0x0C, }; e porque esse diff foi feito com base numa source bem recente da svn privada do tfs pra usar em tfs 036 vai ter que ler todas as modificaçoes, entender e adaptar, isso e bem complicado se voce for leigo em c++ Link para o comentário https://xtibia.com/forum/topic/210543-arquivadoopcodes-estudo/#findComment-1494699 Compartilhar em outros sites More sharing options...
Posts Recomendados