Postado Janeiro 31, 2015 10 anos Óla galerinha do tk mais 1 vez venho perturba 1 pouco vocês espero que mim ajudem preciso muito desse scripting. E o seguinte queria 1 scripting que quando o player entrasse duel desativasse os helds itens dos pokemons porque ta tendo muita briga no meu servidor por conta disso ae resolvir pedir a ajuda de voçês . outra coisa tou com 2 pequeno bug no duel system o primeiro e quando o player entra duel e desloga o char dele buga ele n pode colocar poker para fora e tal fala que ele ta duel e que n pode puxar pokemon nem por para fora o segundo e que se 2 player tipo vai para 1 lugar apertado e 1 player fica de fly ae o outro manda duel ai o que tava de fly desce e acc duel quando mata o pokémon do que tava de fly pode cata ele tipo ele fica como se fosse 1 pokémon selvagem. outra coisa que eu ia esquecendo quando os players estão duel eles podem mata 1 ao outro ou seja 1 player pode mata o outro player. Duel System.lua 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 --/////////////////////////////////////////////////////////////////////////////////////////////-- +Rep para todos que tentarem ajudar e melhor resposta para aquele que conseguir mim ajudar. @up Editado Janeiro 31, 2015 10 anos por jjailton (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.