Ir para conteúdo

[Encerrado] Erro no Duel System...


lgan

Posts Recomendados

Fala pessoal... uso o servido PDA1.9, e estou com um problema no duel sistem...

 

o erro é o seguinte... O duel não encerra qd eu mato todos os pokes do adversário... mesmo q o duel seja 1x1 ou 2x2 ou 3x3, ou com qualquer quantidade de pokes... o duel não encerra.. soh encerra qd um player da order em si mesmo (leaveduel) ou se ele ficar puxando os pokes, pelo que pude perceber, quando eu puxo os pokes antes de ele morrer aparece um texto dizendo "POKE DOWN" e quando ele morre isso não acontece. (não sei se isso tem alguma coisa a ver com o fato de ele não encerrar o duel, sei la como se quando o poke morre o systema não reconhece como pokemon derrotado).

 

segue aki o meu DuelSystem:

 

storagesDuel = {52480, 52481, 52482, 52482, 52483, 52484, 52485, 6598754}
--[[ Lista das storages Duel!
52480 = sto de duelo e do modo de duel;
52481 = sto de pokes no duel;
52482 = sto do seu time;
52483 = sto do time adversario;
52484 = sto de aceitaçao de duel e do começo do duel;
52485 = sto do nome do 'invitador';
6598754 = sto do canAttackOther;
]]

function beginDuel(cid, n)
if getPlayerStorageValue(cid, 52482) == -1 or getPlayerStorageValue(cid, 52483) == -1 then
return true
end
local t1 = string.explode(getPlayerStorageValue(cid, 52482), ",")
local t2 = string.explode(getPlayerStorageValue(cid, 52483), ",")
local sto2, sto3 = getPlayerStorageValue(cid, 52482), getPlayerStorageValue(cid, 52483)

if n == 0 then
for i = 1, #t1 do
local pid, sid = getPlayerByName(t1), getPlayerByName(t2)
if isCreature(pid) and getPlayerStorageValue(pid, 52480) >= 1 then
setPlayerStorageValue(pid, 6598754, 5)
setPlayerStorageValue(pid, 52482, sto2)
setPlayerStorageValue(pid, 52483, sto3)
setPlayerStorageValue(pid, 52484, 10)
end
---
if isCreature(sid) and getPlayerStorageValue(sid, 52480) >= 1 then
setPlayerStorageValue(sid, 6598754, 10)
setPlayerStorageValue(sid, 52482, sto2)
setPlayerStorageValue(sid, 52483, sto3)
setPlayerStorageValue(sid, 52484, 10)
end
---
doSendAnimatedText(getThingPosWithDebug(pid), "START", 215)
doSendAnimatedText(getThingPosWithDebug(sid), "START", 215)
end
return true
else
for i = 1, #t1 do
local pid, sid = getPlayerByName(t1), getPlayerByName(t2)
if isCreature(pid) and getPlayerStorageValue(pid, 52480) >= 1 then
doSendAnimatedText(getThingPosWithDebug(pid), (n == 6 and "" or ""..n.."!"), 215)
end
if isCreature(sid) and getPlayerStorageValue(sid, 52480) >= 1 then
doSendAnimatedText(getThingPosWithDebug(sid), (n == 6 and "" or ""..n.."!"), 215)
end
end
n = n-1
end
addEvent(beginDuel, 1000, cid, n)
end


function removeFromTableDuel(cid, value)
if not isCreature(cid) then return true end
local t1 = string.explode(getPlayerStorageValue(cid, 52482), ",")
local t2 = string.explode(getPlayerStorageValue(cid, 52483), ",")

table.remove(t1, table.find(t1, value) or -1)
table.remove(t2, table.find(t2, value) or -1)
---
local str1, str2 = "", ""
for i = 1, 3 do
if t1 then str1 = str1..(t1 or "").."," end
if t2 then str2 = str2..(t2 or "").."," end
end
setPlayerStorageValue(cid, 52482, str1)
setPlayerStorageValue(cid, 52483, str2)
return true
end

function isDuelingAgainst(cid, pid)
if not isCreature(cid) or not isCreature(pid) then return false end
-----
local t1 = string.explode(getPlayerStorageValue(cid, 52482), ",")
local t2 = string.explode(getPlayerStorageValue(cid, 52483), ",")
-----
local name1, name2 = getCreatureName(cid), getCreatureName(pid)
-----
if table.find(t1, name1) ~= nil and table.find(t2, name2) ~= nil then
return true
elseif table.find(t2, name1) ~= nil and table.find(t1, name2) ~= nil then
return true
end
return false
end

function doEndDuel(cid, desisto)
if isCreature(cid) then
if getPlayerStorageValue(cid, 52482) ~= -1 then
t1 = string.explode(getPlayerStorageValue(cid, 52482), ",")
t2 = string.explode(getPlayerStorageValue(cid, 52483), ",")
end

local invit = getPlayerByName(getPlayerStorageValue(cid, 52485))
if isCreature(invit) then
table1 = string.explode(getPlayerStorageValue(invit, 52482), ",")
table2 = string.explode(getPlayerStorageValue(invit, 52483), ",")
end

if getPlayerStorageValue(cid, 52484) ~= 10 then
if getPlayerStorageValue(cid, 52482) ~= -1 then
for a = 1, 3 do
local pid, sid = getPlayerByName(t1[a]), getPlayerByName(t2[a])
if isCreature(pid) then doCreatureSetSkullType(pid, 0) doRemoveCondition(pid, CONDITION_INFIGHT) end
if isCreature(sid) then doCreatureSetSkullType(sid, 0) doRemoveCondition(sid, CONDITION_INFIGHT) end
for i = 1, #storagesDuel do
if isCreature(pid) then setPlayerStorageValue(pid, storagesDuel, -1) end
if isCreature(sid) then setPlayerStorageValue(sid, storagesDuel, -1) end
end
end
else
for i = 1, #storagesDuel do
setPlayerStorageValue(cid, storagesDuel, -1)
end
doCreatureSetSkullType(cid, 0)
doRemoveCondition(cid, CONDITION_INFIGHT)
---------------------------------
if table2 then
local numero = 0
for i = 1, #table2 do
local ppid = getPlayerByName(table2)
if not isCreature(ppid) or getPlayerStorageValue(ppid, 52480) ~= -1 then
numero = numero+1
end
end
if numero == 0 then doEndDuel(invit) sendMsgToPlayer(invit, 20, "The opponents are give up! Duel is canceled!") end
end
--------------------------------
end
if desisto then doSendAnimatedText(getThingPosWithDebug(cid), "GIVE UP", COLOR_BLUE) end
return true
end

for a = 1, #t1 do
local pid, sid = getPlayerByName(t1[a]), getPlayerByName(t2[a])
removeFromTableDuel(pid, getCreatureName(cid))
removeFromTableDuel(sid, getCreatureName(cid))
end

local t3 = string.explode(getPlayerStorageValue(cid, 52482), ",")
local t4 = string.explode(getPlayerStorageValue(cid, 52483), ",")
if (#t3 == 0 and #t4 >= 1) or (#t4 == 0 and #t3 >= 1) then

for j = 1, (#t3 > 0 and #t3 or #t4) do
local winner = #t3 > 0 and getPlayerByName(t3[j]) or getPlayerByName(t4[j])
if isCreature(winner) then
addEvent(doSendAnimatedText, 500, getThingPosWithDebug(winner), "WIN", COLOR_ELECTRIC)
for i = 1, #storagesDuel do
setPlayerStorageValue(winner, storagesDuel, -1)
end
doCreatureSetSkullType(winner, 0)
doRemoveCondition(winner, CONDITION_INFIGHT)
end
end
addEvent(doSendAnimatedText, 500, getThingPosWithDebug(cid), "LOSE", COLOR_BURN)
for i = 1, #storagesDuel do
setPlayerStorageValue(cid, storagesDuel, -1)
end
doCreatureSetSkullType(cid, 0)
doRemoveCondition(cid, CONDITION_INFIGHT)

else
for i = 1, #storagesDuel do
setPlayerStorageValue(cid, storagesDuel, -1)
end
doCreatureSetSkullType(cid, 0)
doRemoveCondition(cid, CONDITION_INFIGHT)
if desisto then
doSendAnimatedText(getThingPosWithDebug(cid), "GIVE UP", COLOR_BLUE)
else
addEvent(doSendAnimatedText, 500, getThingPosWithDebug(cid), "LOSE", COLOR_BURN)
end
end
end
end

function checkDuel(cid)
if getPlayerStorageValue(cid, 52484) ~= 10 then return true end
if getPlayerStorageValue(cid, 52481) >= 1 then
setPlayerStorageValue(cid, 52481, getPlayerStorageValue(cid, 52481)-1)
doSendAnimatedText(getThingPosWithDebug(cid), "POKE DOWN", 65)
end
if getPlayerStorageValue(cid, 52481) == 0 then
doEndDuel(cid)
end
end

 

 

e também o duelLibSystem:

 

function checkPokeballsInDuel(cid)
if getGlobalStorageValue(1203) >= 1 and getPlayerStorageValue(cid, 12541) >= getGlobalStorageValue(12542) then
doSendAnimatedText(getThingPos(cid), "LOOSES", 118)
setPlayerStorageValue(cid, 12541, 0)
setPlayerStorageValue(cid, 6598755, 0)
setPlayerStorageValue(cid, 6598754, 0)
setGlobalStorageValue(1203, 0)
for _, sid in ipairs(getPlayersOnline())do
if getPlayerStorageValue(sid, 12541) < 7 and getPlayerStorageValue(sid, 6598754) >= 1 or getPlayerStorageValue(sid, 12541) < 7 and getPlayerStorageValue(sid, 6598755) >= 1 then
doSendAnimatedText(getThingPos(sid), "WINS", 118)
setPlayerStorageValue(sid, 12541, 0)
setPlayerStorageValue(sid, 6598755, 0)
setPlayerStorageValue(sid, 6598754, 0)
end
end
end
if getGlobalStorageValue(1203) >= 1 and getPlayerStorageValue(cid, 12541) <= getGlobalStorageValue(12542) then
setPlayerStorageValue(cid, 12541, getPlayerStorageValue(cid, 12541) +1)
doSendAnimatedText(getThingPos(cid), "POKEIN", 28)
end
end

function doBackPokeballsInDuel(cid)
if getGlobalStorageValue(1203) >= 1 and getPlayerStorageValue(cid, 12541) >= 0 then
doSendAnimatedText(getThingPos(cid), "POKEOUT", 118)
end
end

 

 

se for necessário postar outro script avisa ae...

 

desde ja Obrigado...

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 4 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

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