Ir para conteúdo
  • 0

Duvida Função lua OTC


Aberos

Pergunta

galera do ekz , eu queria saber se alguem poderia me dar um exemplo de uma funççao tipo:

--o server envia por opcode um valor ai no lua fazer um função que inbterprete o opcode e retorne o valor do opcode

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

ss é que eu to fazendo uma cd bar pro meu ot poke ai eu queria que o timespell fosse igual o valor enviado pelo server

script

 

 

function SpellSkill(numeskill)
local spellText = ''
local Spell = ''
local GrpSpell = ''
local TimeSpell = 0
local player = g_game.getLocalPlayer()
if numeskill == '1' then
Spell = 'move1'
GrpSpell = 'move01'
TimeSpell = 1200
spellText = 'm1'
elseif numeskill == '2' then
Spell = 'move2'
GrpSpell = 'move02'
TimeSpell = 150
spellText = 'm2'
elseif numeskill == '3' then
Spell = 'move3'
GrpSpell = 'move03'
TimeSpell = 800
spellText = 'm3'
elseif numeskill == '4' then
Spell = 'move4'
GrpSpell = 'move04'
TimeSpell = 1200
spellText = 'm4'
elseif numeskill == '5' then
Spell = 'move5'
GrpSpell = 'move05'
TimeSpell = 150
spellText = 'm5'
elseif numeskill == '6' then
Spell = 'move6'
GrpSpell = 'move06'
TimeSpell = 800
spellText = 'm6'
elseif numeskill == '7' then
Spell = 'move7'
GrpSpell = 'move07'
TimeSpell = 1200
spellText = 'm7'
elseif numeskill == '8' then
Spell = 'move8'
GrpSpell = 'move08'
TimeSpell = 150
spellText = 'm8'
elseif numeskill == '9' then
Spell = 'move9'
GrpSpell = 'move09'
TimeSpell = 800
spellText = 'm9'
elseif numeskill == '10' then
Spell = 'move10'
GrpSpell = 'move010'
TimeSpell = 1200
spellText = 'm10'
elseif numeskill == '11' then
Spell = 'move11'
GrpSpell = 'move011'
TimeSpell = 150
spellText = 'm11'
elseif numeskill == '12' then
Spell = 'move12'
GrpSpell = 'move012'
TimeSpell = 800
spellText = 'm12'
end
local groupRct = info:recursiveGetChildById(GrpSpell)
if not groupRct:isEnabled() then
return
end
local progressSpell= info:recursiveGetChildById(Spell)
if progressSpell:getPercent() < 100 then
return
end
updateProgressSpell(progressSpell, TimeSpell, true)
g_game.talk(spellText)
end

ai no caso vai ser 12 opcodes diferentes
Editado por Aberos
Link para o comentário
Compartilhar em outros sites

  • 0

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.

http://www.xtibia.com/forum/topic/210543-opcodes-estudo/

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

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...