Ir para conteúdo

[Arquivado]Opcodes Estudo


Darckx13

Posts Recomendados

Esta dando erro de falta de função =\

[29/3/2013 21:21:14] data/actions/scripts/teste1.lua:5: attempt to call global 'doSendPlayerExtendedOpcode' (a nil value)

[29/3/2013 21:21:14] stack traceback:

[29/3/2013 21:21:14] data/actions/scripts/teste1.lua:5: in function <data/actions/scripts/teste1.lua:3>

 

mas esta compilado com a função direitinho, alem de compilar a função eu tenho que colocala na lib?

 

script server - side

 

OPCODE_SOM = 52

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

 

doSendPlayerExtendedOpcode(cid, 52, musica)

 

return true

end

 

 

Client - side

 

local musicFilename = "/sounds/startup"

local musicChannel = g_sounds.getChannel(1)

local OPCODE_SOM = 52

 

function musica(filename)

musicFilename = filename

local protocolGame = g_game.getProtocolGame()

if protocolGame then

protocolGame:sendExtendedOpcode(OPCODE_SOM, musicFilename)

return true

end

ProtocolGame.registerExtendedOpcode(52, musica)

end

 

function startup()

 

musicChannel:enqueue(musicFilename, 3)

connect(g_game, { onGameStart = function() musicChannel:stop(3) end })

 

end

 

function init()

connect(g_app, { onRun = startup,

onExit = exit })

 

g_sounds.preload(musicFilename)

 

 

end

 

function terminate()

disconnect(g_app, { onRun = startup,

onExit = exit })

-- save window configs

g_settings.set('window-size', g_window.getUnmaximizedSize())

g_settings.set('window-pos', g_window.getUnmaximizedPos())

g_settings.set('window-maximized', g_window.isMaximized())

 

local protocolVersion = g_game.getProtocolVersion()

if protocolVersion ~= 0 then

g_settings.set('protocol-version', protocolVersion)

end

end

 

oque poderia ser =\

Link para o comentário
Compartilhar em outros sites

Esta dando erro de falta de função =\

[29/3/2013 21:21:14] data/actions/scripts/teste1.lua:5: attempt to call global 'doSendPlayerExtendedOpcode' (a nil value)

[29/3/2013 21:21:14] stack traceback:

[29/3/2013 21:21:14] data/actions/scripts/teste1.lua:5: in function <data/actions/scripts/teste1.lua:3>

 

mas esta compilado com a função direitinho, alem de compilar a função eu tenho que colocala na lib?

 

script server - side

 

OPCODE_SOM = 52

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

 

doSendPlayerExtendedOpcode(cid, 52, musica)

 

return true

end

 

 

Client - side

 

local musicFilename = "/sounds/startup"

local musicChannel = g_sounds.getChannel(1)

local OPCODE_SOM = 52

 

function musica(filename)

musicFilename = filename

local protocolGame = g_game.getProtocolGame()

if protocolGame then

protocolGame:sendExtendedOpcode(OPCODE_SOM, musicFilename)

return true

end

ProtocolGame.registerExtendedOpcode(52, musica)

end

 

function startup()

 

musicChannel:enqueue(musicFilename, 3)

connect(g_game, { onGameStart = function() musicChannel:stop(3) end })

 

end

 

function init()

connect(g_app, { onRun = startup,

onExit = exit })

 

g_sounds.preload(musicFilename)

 

 

end

 

function terminate()

disconnect(g_app, { onRun = startup,

onExit = exit })

-- save window configs

g_settings.set('window-size', g_window.getUnmaximizedSize())

g_settings.set('window-pos', g_window.getUnmaximizedPos())

g_settings.set('window-maximized', g_window.isMaximized())

 

local protocolVersion = g_game.getProtocolVersion()

if protocolVersion ~= 0 then

g_settings.set('protocol-version', protocolVersion)

end

end

 

oque poderia ser =\

 

Parece besteira, mas pode ser que voce tenha compilado e não tenha trocado o executavel pelo gerado na compilação no server, ai e como se não tivesse mudado nada.

Link para o comentário
Compartilhar em outros sites

acabei de recompilar ela, e mudar o exe para a pasta do server, eu sempre movo o arquivo e n copio ele então ele foi com certeza, outra coisa estou usando o OTX 252 8.7, usei a função isPlayerUsingOtclient(cid) e fuincina perfeitamente mas a doSendPlayerExtendedOpcode não ta funcionando =\ Dalvorsn se possivel posta uma versão ja compilado pode ser so o exe do 8.7 queria muito aprende faze esse trem =p

Link para o comentário
Compartilhar em outros sites

  • 3 months later...

Ta dando esse erro aqui oque poreria ser ?

Esse erro da no CLient:

beurk.gif

/client_topmenu/topmenu.lua:31: in function </client_topmenu/topmenu.lua:29>
ERROR: protected lua call failed: LUA ERROR:
/game_print/print.lua:44: attempt to index upvalue 'printWindow' (a nil value)
stack traceback:
[C]: ?
/game_print/print.lua:44: in function 'callback'
/client_topmenu/topmenu.lua:31: in function </client_topmenu/topmenu.lua:29>
ERROR: protected lua call failed: LUA ERROR:
/game_print/print.lua:44: attempt to index upvalue 'printWindow' (a nil value)
stack traceback:
[C]: ?
/game_print/print.lua:44: in function 'callback'
/client_topmenu/topmenu.lua:31: in function </client_topmenu/topmenu.lua:29>
ERROR: /game_print/print.otui:4: [@onEscape]:2: attempt to call global 'terminate' (a nil value)
ERROR: /game_print/print.otui:4: [@onEscape]:2: attempt to call global 'terminate' (a nil value)
ERROR: protected lua call failed: LUA ERROR:
/game_print/print.lua:39: attempt to index upvalue 'printWindow' (a nil value)
stack traceback:
[C]: ?
/game_print/print.lua:39: in function </game_print/print.lua:38>
ERROR: protected lua call failed: LUA ERROR:
/game_print/print.otui:25: [@onClick]:2: attempt to call global 'enviarMensagem' (a nil value)
stack traceback:
[C]: in function 'enviarMensagem'
/game_print/print.otui:25: [@onClick]:2: in function </game_print/print.otui:25: [@onClick]:1>
ERROR: protected lua call failed: LUA ERROR:
/game_print/print.otui:32: [@onClick]:2: attempt to call global 'toggle' (a nil value)

 

 

Editado por garep
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Como adicionar OPCODE em tfs 0.3.6? desse jeito aí é pra versões novas :/

 

-----------------------

RESOLVIDO

Editado por xS0NYx
Link para o comentário
Compartilhar em outros sites

  • 5 months later...

Oi pessoal...

eu peguei o codigo q postaram aí em cima e mudei apenas algumas linhas:

 

local printWindow = nil
local topMenuButton = nil
function init()
connect(g_game, { onGameStart = createWindow, onGameEnd = destroyWindow })
if TopMenu then
topMenuButton = TopMenu.addRightGameToggleButton('printPopButton', tr('Print'), 'icon.png', toggle)
else
topMenuButton = modules.client_topmenu.addRightGameToggleButton('printPopButton', tr('Print'), 'icon', toggle)
end
topMenuButton:setOn(false)
ProtocolGame.registerExtendedOpcode(76, -----------------AQUI!!!
function (protocol, opcode, buffer)
vocation = buffer
print(vocation)
return vocation
end
)
end
function enviarMensagem()
getPlayerVocation()---------------------AQUI!!
local text = printWindow:getChildById('text'):getText()-----CODIGO ORIGINAL
local protocolGame = g_game.getProtocolGame()
if protocolGame then
protocolGame:sendExtendedOpcode(60, text)
return true
end
end
function terminate()
disconnect(g_game, { onGameStart = createWindow, onGameEnd = destroyWindow })
end
function createWindow()
printWindow = g_ui.displayUI('print.otui')
printWindow:setOn(false)
printWindow:hide()
end
function destroyWindow()
printWindow:destroy()
printWindow = nil
end
function toggle()
if printWindow:isOn() then
printWindow:setOn(false)
printWindow:hide()
topMenuButton:setOn(false)
else
printWindow:setOn(true)
printWindow:show()
topMenuButton:setOn(true)
end
end
EM game.lua adicionei isso:
function getPlayerVocation()
local protocol = g_game.getProtocolGame()
protocol:sendExtendedOpcode(75, 5)
end

 

e em extendedopcode.lua (no server) adicionei isso:

elseif opcode == 75 then
doSendPlayerExtendedOpcode(cid, 76, getPlayerName(cid))-------------------
Esse codigo faz plotar no CLIENT o NOME DO PLAYER....
mas o que eu queria mesmo era no arquivo do codigo (no caso print.lua), armezenar o valor do nome em uma variavel...
ex voltando ao print.lua... na parte da funçao enviarMensagem()

function enviarMensagem()
getPlayerVocation()
local text = printWindow:getChildById('text'):getText()-----CODIGO ORIGINAL
local protocolGame = g_game.getProtocolGame()
if protocolGame then
protocolGame:sendExtendedOpcode(60, text)
return true
end
end

 

que AO INVES de COLOCAR "getPlayerVocation()" e plotar o nome no client

queria fazer algo tipo assim:

local variavel1=getPlayerVocation()

para entao armazenar o valor do nome em uma variavel....

 

ALGUEM sabe como poderia fazer isso.... =/

passo uma semana dando rep+....

Link para o comentário
Compartilhar em outros sites

  • 4 years later...
Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...