Ir para conteúdo
  • 0

Retirar Bug Da Barra De Cd Dos Pokemons


Pergunta

Olá pessoal! Tem um problema meio chatinho que pertuba qualquer um. Bom como sempre existe um bug na barra de cd do meu server e ao clicar na imagem do pokemom rapidamente ele lança 2 pokemons ao mesmo tempo, assim você podendo jogar com 2 pokemons "bug chato". Bom! vamos lá na duvida! Eu conheço diversos tipos de programação, mas o c++ não tive a honrra de aprender, então eu gostaria de dar um -sleep- na troca de pokemons para me impedir de trocar rapidamente de pokemom. Exemplo: Eu clico na barra do pokemom ele chama um certo pokemom. Até ai tudo bem. Se eu clicar muito rapidamente em outro pokemom ele acaba chamando os 2, então seria bom um sleep que impedice você de chamar um pokemom durante uns 2 segundos.

 

 

 

--E se não for abusar demais queria saber se existe a possibilidade que fechar a barra de moves se você não tiver nenhum pokemom em uso no momento--

 

---BARRA DE POKEMONS QUE EU GOSTARIA DE DAR UM SLEEP DE 3 segundos antes de trocar de pokemons--- Para não acontecer de bugar 2 pokemons ao mesmo tempo--

barra.JPG

 

 

 

--Barra de moves que eu gostaria de oculta-la se eu não estiver usando nenhum pokemom--"Já que eu estou com o pokemom dentro da pokebola não necessito que a barra aparece na minha tela"-- Seria possivel isso no script?

 

barramove.JPG

 

 

 

 

--Eu sem pokemom e a barra ali inutilmente.--

Entenderam meu pensamento? Uma coisa prática.

tudo.JPG

 

 

 

 

 

 

 

SCRIPT DA BARRA DE CD:

 

 

 

 

 

function getPlayerPokeballs(cid)
local ret = {}
local container = 0
if isCreature(cid) then
container = getPlayerSlotItem(cid, 3).uid
local myball = getPlayerSlotItem(cid, 8)
if myball.uid > 0 then
table.insert(ret, myball)
end
else
container = cid
end
if isContainer(container) and getContainerSize(container) > 0 then
for slot = 0, (getContainerSize(container) - 1) do
local item = getContainerItem(container, slot)
if isContainer(item.uid) then
local itemsbag = getPlayerPokeballs(item.uid)
if itemsbag and #itemsbag > 0 then
for i = 0, #itemsbag do
table.insert(ret, itemsbag[i])
end
end
elseif isPokeball(item.itemid) then
table.insert(ret, item)
end
end
end
return ret
end
function doUpdatePokemonsBar(cid)
local ret = "p#,"
local balls = getPlayerPokeballs(cid)
local times = 0
for a = 1, #balls do
local item = balls[a]
local hp = math.ceil(getItemAttribute(item.uid, "hp") * 100)
local name = getItemAttribute(item.uid, "poke")
local port = getPlayerSlotItem(cid, CONST_SLOT_LEGS)
if fotos[name] >= 11137 and fotos[name] <= 11387 then
times = times + 1
local foto = fotos[name] - 911
doItemSetAttribute(item.uid, "ballorder", times)
ret = ret..""..foto..","..name..""..times..","..hp..","
else
times = times + 1
local foto = fotos[name] - 928
doItemSetAttribute(item.uid, "ballorder", times)
ret = ret..""..foto..","..name..""..times..","..hp..","
end
end
doPlayerSendCancel(cid, ret)
end
function getNewMoveTable(table, n)
if n == 1 and table.move1 then
return table.move1
elseif n == 2 and table.move2 then
return table.move2
elseif n == 3 and table.move3 then
return table.move3
elseif n == 4 and table.move4 then
return table.move4
elseif n == 5 and table.move5 then
return table.move5
elseif n == 6 and table.move6 then
return table.move6
elseif n == 7 and table.move7 then
return table.move7
elseif n == 8 and table.move8 then
return table.move8
elseif n == 9 and table.move9 then
return table.move9
elseif n == 10 and table.move10 then
return table.move10
elseif n == 11 and table.move11 then
return table.move11
elseif n == 12 and table.move12 then
return table.move12
else
return false
end
end

function doUpdateMoves(cid)
local summon = getCreatureSummons(cid)[1]
local ret = "12&,"
if not summon then
for a = 1, 12 do
ret = ret.."n/n,"
end
doPlayerSendCancel(cid, ret)
addEvent(doUpdateCooldowns, 100, cid)
return true
end
local ret = "12&,"
local moves = movestable[getCreatureName(summon)]
for a = 1, 12 do
local b = getNewMoveTable(moves, a)
if b then
ret = ret..""..b.name..","
else
ret = ret.."n/n,"
end
end
doPlayerSendCancel(cid, ret)
addEvent(doUpdateCooldowns, 100, cid)
end
function doUpdateCooldowns(cid)
local a = getPlayerSlotItem(cid, 8)
local ret = "12|,"
if a.uid <= 0 or #getCreatureSummons(cid) <= 0 then
for cds = 1, 12 do
ret = ret.."-1,"
end
doPlayerSendCancel(cid, ret)
return true
end
for cds = 1, 12 do
local cdzin = "move"..cds
if getCD(a.uid, cdzin) > 0 then
ret = ret..""..(getCD(a.uid, cdzin) - 1)..","
else
ret = ret.."0,"
end
end
doPlayerSendCancel(cid, ret)
end
function getBallsAttributes(item)
local t = {"boffense", "bdefense", "bagility", "bsattack",
"offense", "defense", "speed", "level", "specialattack",
"poke", "gender", "vitality", "nick", "boost", "happy", "hunger",
"burn", "burndmg", "poison", "poisondmg", "confuse", "blind",
"sleep", "hp", "description", "exp", "nextlevelexp", "transBegin",
"transLeft", "transTurn", "transOutfit", "transName", "trans",
"light", "blink", "move1", "move2", "move3", "move4", "move5",
"move6", "move7", "move8", "move9", "move10", "move11", "move12",
"ballorder", "firstpoke", "hands"}
local ret = {}
for a = 1, #t do
if getItemAttribute(item, t[a]) == "hands" then
return
end
ret[t[a]] = getItemAttribute(item, t[a]) or false
end
return ret
end
function doChangeBalls(cid, item1, item2)
if not isCreature(cid) then return true end
if item1.uid == item2.uid then
if #getCreatureSummons(cid) <= 0 then
doGoPokemon(cid, getPlayerSlotItem(cid, 8))
else
doReturnPokemon(cid, getCreatureSummons(cid)[1], getPlayerSlotItem(cid, 8), pokeballs[getPokeballType(getPlayerSlotItem(cid, 8).itemid)].effect)
end
return true
end
if item1.uid > 0 and item2.uid > 0 then
local io = getBallsAttributes(item1.uid)
local it = getBallsAttributes(item2.uid)
for a, b in pairs (io) do
if b then
doItemSetAttribute(item2.uid, a, b)
else
doItemEraseAttribute(item2.uid, a)
end
end
for a, b in pairs (it) do
if b then
doItemSetAttribute(item1.uid, a, b)
else
doItemEraseAttribute(item1.uid, a)
end
end
local id = item2.itemid
doTransformItem(item2.uid, item1.itemid)
doTransformItem(item1.uid, id)
doGoPokemon(cid, getPlayerSlotItem(cid, 8))
else
local id = item2.itemid
local b = getBallsAttributes(item2.uid)
local a = doPlayerAddItem(cid, 2643, false)
for c, d in pairs (b) do
if d then
doItemSetAttribute(a, c, d)
else
doItemEraseAttribute(a, c)
end
end
doRemoveItem(item2.uid, 1)
doTransformItem(a, id)
doGoPokemon(cid, getPlayerSlotItem(cid, 8))
end
end

 

 

 

 

Link para o comentário
https://xtibia.com/forum/topic/190945-retirar-bug-da-barra-de-cd-dos-pokemons/
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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