Jump to content
  • 0
Peixonauta

Scripting Opcodes - Erro

Question

Peixonauta
Posted (edited)

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!

Edited by Peixonauta

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0
Majesty

 

Share this post


Link to post
Share on other sites
  • 0
Gengo

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

 

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

Share this post


Link to post
Share on other sites
  • 0
Peixonauta
35 minutos atrás, Gengo disse:

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

 

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).

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

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

Share this post


Link to post
Share on other sites
  • 0
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)

Share this post


Link to post
Share on other sites
  • 0
Peixonauta
Posted (edited)
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..

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

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?

Edited by Peixonauta

Share this post


Link to post
Share on other sites
  • 0
Gengo
Posted (edited)
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..

Hidden Content

    Sign In here or Sign Up here to see this hidden content.

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

Edited by Gengo

Share this post


Link to post
Share on other sites
  • 0
Gengo

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

Share this post


Link to post
Share on other sites
  • 0
Peixonauta
Posted (edited)
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?

Edited by Peixonauta

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×