Ir para conteúdo
  • 0

Opcode Duvida


Aberos

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
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
Compartilhar em outros sites

  • 0

Vlw ai slicer pela ajuda ^^


#PARTIU ACABA COM A GAMBIARRA DO SENDCANCEL KKKKKKKKKKKKK


slcier só uma duvida , teria como pegar a vida do poke por opencode?

Link para o comentário
Compartilhar em outros sites

  • 0

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

 

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
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
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
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
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
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
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

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