Ir para conteúdo
  • 0
Peixonauta

Scripting Opcodes - Erro

Pergunta

Peixonauta    0
Peixonauta

Antes de fazer a sua pergunta, tenha certeza de ter lido as regras da seção e o guia abaixo:

https://forums.otserv.com.br/index.php?/forums/topic/168583-regras-da-seção/

https://forums.otserv.com.br/index.php?/forums/topic/165121-como-fazer-uma-pergunta-ou-o-grande-guia-do-usuário-com-dúvidas/

Descreva em algumas palavras a base utilizada. (Nome do servidor / Nome do cliente / Nome do website / etc.).

Ex: The Forgotten Server 1.3, Versão: 10.98.

Base:

 

Qual é a sua pergunta?

Eai, rapaziada. Não sei se o estilo do tópico está correto, peço desculpas se tiver algo errado. Seguinte, já procurei em todos os lugares algo que podia me auxiliar em relação a Opcodes, até mesmo aqui no OTServ Brasil, li alguns tópicos sobre e mesmo assim não consegui nenhum resultado. Como escrito ali em cima, estou usando o TFS 1.3 e até onde sei isso já vem instalado na source.

Estou usando o OTClientV8.

Não consigo passar informações simples do servidor para o client e vice versa. Quando tento mandar do client pro servidor obtenho esse erro.

ERROR: Unable to send extended opcode 110, extended opcodes are not enabled on this server

Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo:

Exemplos que causaram o erro abaixo:

Tenho isso no meu \creaturescripts\creaturescripts.xml

Spoiler

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

Estou usando esse código no meu \creaturescripts\scripts\opcodes.lua

Spoiler

local OPCODE_LANGUAGE = 1
local OPCODE_TESTE = 110

function onExtendedOpcode(player, 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...
            -- player:setStorageValue(SOME_STORAGE_ID, SOME_VALUE)
        end
    elseif opcode == OPCODE_TESTE then
            --player:sendExtendedOpCodes(OPCODE_TESTE, )
            print(buffer) -- other opcodes can be ignored, and the server will just work fine...
        
    end
end

 

Partindo para o otclient, tenho o meu \modules\game_teste\teste.lua

Spoiler


local window  = nil
local lblName = nil

local Opcodes = 110

function init()    
    ProtocolGame.registerExtendedOpcode(Opcodes, function(protocol, opcode, buffer)
        lblName:setText('Name: '..buffer)
        print(buffer)
    end)
    
    window = g_ui.displayUI('teste')
    window:hide()
    
    lblName = window:getChildById('lblName')
    
    g_keyboard.bindKeyPress('Ctrl+X', toggle)
end

function terminate()
    disconnect(g_game, { onGameEnd = offline })    
    ProtocolGame.unregisterExtendedOpcode(Opcodes)
    window:destroy()
    g_keyboard.unbindKeyPress('Ctrl+X')
end

function toggle()
    if window:isVisible() then
        window:setFocusable(false)
        window:hide()
    else
        window:show()
    end
end

function getName()
    g_game.getProtocolGame():sendExtendedOpcode(Opcodes, 'OPCODES CADE SEU DEUS AGORA')
    g_game.talk('af')
end

Tenho isso também no meu \modules\game_teste\teste.otui

Spoiler

MainWindow
  id: window
  size: 250 100
  !text: tr('Teste')
  &focusable: false

  Label
    id: lblName
    anchors.top: parent.top
    anchors.left: parent.left
    text-auto-resize: true
    text: Name:

  Button
    id: btn
    anchors.bottom: parent.bottom
    anchors.left: parent.left
    text: Get Name
    @onClick: getName()

 

Já rachei minha cabeça e não saí do lugar. Existe algum problema com a TFS 1.3 referente a Opcodes? Testei com um TFS 1.2 e não obtive problemas.

Me ajudem, por favor!

Editado por Peixonauta

Compartilhar este post


Link para o post
Compartilhar em outros sites

8 respostass a esta questão

Recommended Posts

  • 0
Majesty    1755
Majesty

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Gengo    19
Gengo
  if #server_params <= 3 then
    g_game.setCustomOs(2) -- set os to windows
  end

 

Remova isso do entergame.lua por padrão é detectado como client clássico do tibia.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Peixonauta    0
Peixonauta
35 minutos atrás, Gengo disse:

  if #server_params <= 3 then
    g_game.setCustomOs(2) -- set os to windows
  end

 

Remova isso do entergame.lua por padrão é detectado como client clássico do tibia.

Valeu por responder, cara!

Eu fiz isso e continuo tendo retorno de erro no terminal do client (deixei comentado no entergame.lua).

image.png.bed49b2f390df6c34abc8d09681d6510.png

image.png.2856b65b8524634b25a39e98e4e40d22.png

Acho que deve ser algum erro referente ao servidor mesmo, sei la..

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Gengo    19
Gengo

Você ativou opcodes em features?
Vá até a pasta game_features abra o arquivo features.lua  e coloque o seguinte g_game.enableFeature(GameExtendedOpcode)

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Peixonauta    0
Peixonauta
7 minutos atrás, Gengo disse:

Você ativou opcodes em features?
Vá até a pasta game_features abra o arquivo features.lua  e coloque o seguinte g_game.enableFeature(GameExtendedOpcode)

Pior que sim, cara. Testei com uma source TFS 1.2 no mesmo client e funcionou. Só não funcionou com essa versão que mencionei no tópico..

image.png.16186a9d7ec4a1ce072ec3dd68046c03.png

Postei la no github pra ver se pode ser algum bug na source, sei la.

Além de ativar no client, preciso ativar no servidor de alguma forma? Não, né?

Só colocar em creaturescripts.xml e no creaturescripts, certo?

Editado por Peixonauta

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Gengo    19
Gengo
30 minutos atrás, Peixonauta disse:

Pior que sim, cara. Testei com uma source TFS 1.2 no mesmo client e funcionou. Só não funcionou com essa versão que mencionei no tópico..

image.png.16186a9d7ec4a1ce072ec3dd68046c03.png

Postei la no github pra ver se pode ser algum bug na source, sei la.

Além de ativar no client, preciso ativar no servidor de alguma forma? Não, né?

Só colocar em creaturescripts.xml e no creaturescripts, certo?

 

Só colocar em creaturescripts.xml e no creaturescripts, certo?

Também tem que registrar no login player:registerEvent('ExtendedOpcode')

 

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

Estou vendo que você colocou o nome do script extendedopcode.lua

E o nome do arquivo opcodes.lua

stou usando esse código no meu \creaturescripts\scripts\opcodes.lua

Editado por Gengo

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Gengo    19
Gengo

Peixonauta essa base deles estão desativado mesmo o opcodes, ja confirmei com o pessoal.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
Peixonauta    0
Peixonauta
1 hora atrás, Gengo disse:

 

Só colocar em creaturescripts.xml e no creaturescripts, certo?

Também tem que registrar no login player:registerEvent('ExtendedOpcode')

 

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

Estou vendo que você colocou o nome do script extendedopcode.lua

E o nome do arquivo opcodes.lua

stou usando esse código no meu \creaturescripts\scripts\opcodes.lua

Isso foi erro na hora de fazer o tópico mesmo, eu mudava os arquivos toda hora. 

30 minutos atrás, Gengo disse:

Peixonauta essa base deles estão desativado mesmo o opcodes, ja confirmei com o pessoal.

Que bad hein :/ Tava montando umas coisas legais nessa base que precisam de Opcodes.

Bom, valeu ai pelo aviso. Será que eles ativam em breve?

Editado por Peixonauta

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×