Ir para conteúdo
  • 0

Opcode Duvida


Pergunta

Galera copilei os opcode no meus erver mas nao to sabendo usar , queria saber como faço pro server enviar uma storage pro OTC por opencode , quero só um exemplo para poder enterder sobre essa vantagem q o OTC nos proporciona

Link para o comentário
https://xtibia.com/forum/topic/225746-opcode-duvida/
Compartilhar em outros sites

Posts Recomendados

  • 0

Server-side:

doSendPlayerExtendedOpcode(cid, 51, getPlayerStorageValue(cid, xxxxx))

Client-side:

ProtocolGame.registerExtendedOpcode(51, function (protocol, opcode, buffer) 
   print(buffer) 
end)

esse eh o exemplo q tenhu aki... -nunca testei-

Editado por Slicer
Link para o comentário
https://xtibia.com/forum/topic/225746-opcode-duvida/#findComment-1593537
Compartilhar em outros sites

  • 0
  Em 17/12/2013 em 02:43, caiohp1 disse:

Sim ué, você pode fazer por storage a vida dele po, só criar um storage e setar a vida do player nesse storage pelo server e chamar pelo otc..

lol,que pog

 

é so manda vida dele direto por

caso seja o cid do poke:

doSendPlayerExtendedOpcode(getCreatureMaster(cid), 51, getCreatureHealth(cid))

 

caso seja o cid do player:

doSendPlayerExtendedOpcode(cid, 51, getCreatureHealth(getCreatureSummons(cid)[1]))

 

vc pode mandar qualquer string que desejar por opcode

 

  Em 16/12/2013 em 23:51, Slicer disse:
ProtocolGame.registerExtendedOpcode(51, function (protocol, opcode, buffer)
   print(buffer)
end)

tá ligado que isso so vai printa no console né?

tem que usar algo do tipo

ProtocolGame.registerExtendedOpcode(51, function (protocol, opcode, buffer)
   health = tonumber(buffer)
end)
Editado por lordbug99
Link para o comentário
https://xtibia.com/forum/topic/225746-opcode-duvida/#findComment-1593732
Compartilhar em outros sites

  • 0

no caso doSendPlayerExtendedOpcode(getCreatureMaster(cid), 51, getCreatureHealth(cid)) envia so a health , se eu quise enviar getCreatureHealth(cid) eo getCreatureMaxHealth(cid) como faria?

Link para o comentário
https://xtibia.com/forum/topic/225746-opcode-duvida/#findComment-1593817
Compartilhar em outros sites

  • 0

doSendPlayerExtendedOpcode(getCreatureMaster(cid), 51, getCreatureHealth(cid).."/"..getCreatureMaxHealth(cid))

 

vai manda em forma de string "health/maxhealthg",dai só separa com string.explode

 

tem outros meios mais legais de fazer isso tbm, mas é bem mais complica

Link para o comentário
https://xtibia.com/forum/topic/225746-opcode-duvida/#findComment-1593845
Compartilhar em outros sites

  • 0

Cara, isso ai é bem gambiarra. Você teria que mandar um opcode em TODAS as possibilidades de adcionar e remover vida do pokemon. Go/back, exp2.0, potions, x-regen, nurse, e tudo mais. Minha dica é que tente fazer isso nas sources mesmo. Uma função igual a de mandar sua vida pro cliente, mandar a do seu summon, se ele existir. Não deve ser tão difícil assim. Mesmo sendo um opcode pelas sources, pra não ser tão complicado de mecher no otclient.

Link para o comentário
https://xtibia.com/forum/topic/225746-opcode-duvida/#findComment-1593955
Compartilhar em outros sites

  • 0

[spoile]

ERROR: protected lua call failed: LUA ERROR:
/corelib/ui/uiprogressbar.lua:59: attempt to perform arithmetic on field 'maximum' (a nil value)
stack traceback:
[C]: ?
/corelib/ui/uiprogressbar.lua:59: in function 'getProgress'
/corelib/ui/uiprogressbar.lua:64: in function 'updateBackground'
/corelib/ui/uiprogressbar.lua:98: in function </corelib/ui/uiprogressbar.lua:94>
ERROR: protected lua call failed: LUA ERROR:
/corelib/ui/uiprogressbar.lua:59: attempt to perform arithmetic on field 'maximum' (a nil value)
stack traceback:
[C]: ?
/corelib/ui/uiprogressbar.lua:59: in function 'getProgress'
/corelib/ui/uiprogressbar.lua:64: in function 'updateBackground'
/corelib/ui/uiprogressbar.lua:98: in function </corelib/ui/uiprogressbar.lua:94>[/spoile]
da esse erro no otc
a progress nao fuciona e se usar aquele tang ali nao fuciona so essa que fuciona e so manda a health nao manda a max doSendPlayerExtendedOpcode(cid, 51, getCreatureHealth(getCreatureSummons(cid)[1]))
no otc o mod coloquei so isso
ProtocolGame.registerExtendedOpcode(51, function (protocol, opcode, buffer)
localCreature, hp, maxHp = tonumber(buffer), tonumber(buffer)
pokeHealthBar:setText(hp .. ' / ' .. hp)
barWindow:recursiveGetChildById("pokeHealthIcon"):setTooltip(tr(pokeHealthTooltip, hp, maxHp))
pokeHealthBar:setValue(hp, 0, maxHp)
end)
se aqui pokeHealthBar:setText(hp .. ' / ' .. hp) colocar assim pokeHealthBar:setText(hp .. ' / ' .. maxHp) da outro erro com o nome maxHp no otc com essa tang doSendPlayerExtendedOpcode(cid, 51, getCreatureHealth(getCreatureSummons(cid)[1])) a outra nao funfa aaa e como coloco pra o do login do exp pq tentei varias vezes com tang diferente e nada de fuciona da erro no console quando o poke usa o exp erro de luagetcreaturehealth
Link para o comentário
https://xtibia.com/forum/topic/225746-opcode-duvida/#findComment-1594058
Compartilhar em outros sites

  • 0

No server, se você quer que o player fique com o life do poke no lugar do ml dele, você tem que fazer um script que cheque se tem sumon e se tiver setar o ml do player igual ao life do sumon..

Link para o comentário
https://xtibia.com/forum/topic/225746-opcode-duvida/#findComment-1594080
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

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