FlamesAdmin 261 Postado Janeiro 25, 2014 Share Postado Janeiro 25, 2014 Qeria saber como poe para quando o player invitar o outro para duel, qnd iniciar o duel, os players nao poderem se mover. order.lua: local skills = specialabilitieslocal surfborders = {4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663}local storages = {17000, 63215, 17001, 13008, 5700} --alterado v1.9 \/local unfix = {x = 1, y = 1, z = 1}local txt = {["rock smash"] = {"Quebre isso"},["cut"] = {"Corte isso!"},["move"] = {"Mova!", "Mova ali!", "Vá para lá!", "Ande até ali!"},["light"] = {"Luz!"},["dig"] = {"Abra isso!", "Cave aqui!"},["blink"] = {"Teleporte-se!"},["ride"] = {"Vamos andar!", "Deixe-me subir em você!"},["fly"] = {"Vamos voar!", "Deixe-me subir em você!"} ,["untransform"] = {"Volte ao normal!", "Pare a transformação!"},["headbutt"] = {"Quebre essa árvore", "Derrube essa árvore"},["levitate_fly"] = {"Vamos levitar!", "Deixe-me subir em você!"}, --alterado v1.8}function onUse(cid, item, frompos, item2, topos) local checkpos = topos checkpos.stackpos = 0 if getPlayerStorageValue(cid, 75846) >= 1 then return true end --alterado v1.9 if getTileThingByPos(checkpos).uid <= 0 then return true end--------END FLY/RIDE --------if getCreatureCondition(cid, CONDITION_OUTFIT) and (item2.uid == cid or getRecorderPlayer(topos) == cid) and (getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1) then if isInArray({460, 11675, 11676, 11677}, getTileInfo(getThingPos(cid)).itemid) then doPlayerSendCancel(cid, "You can\'t stop flying at this height!") return true end local item = getPlayerSlotItem(cid, 8) local pokemon = getItemAttribute(item.uid, "poke") local x = pokes[pokemon] if getTileInfo(getThingPos(cid)).itemid >= 4820 and getTileInfo(getThingPos(cid)).itemid <= 4825 then doPlayerSendCancel(cid, "You can\'t stop flying above the water!") return true end doSummonMonster(cid, pokemon) local pk = getCreatureSummons(cid)[1] if not isCreature(pk) then pk = doCreateMonster(pokemon, backupPos) if not isCreature(pk) then doPlayerSendCancel(cid, "You can't stop flying/riding here.") return true end doConvinceCreature(cid, pk) end doTeleportThing(pk, getThingPos(cid), false) doCreatureSetLookDir(pk, getCreatureLookDir(cid)) adjustStatus(pk, item.uid, true, false, true) doPlayerSay(cid, ""..getPokeName(getCreatureSummons(cid)[1])..", Deixe-me descer de você!", 1) doRegainSpeed(cid) doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 17000, -1) setPlayerStorageValue(cid, 17001, -1) if useOTClient then doUpdateMoves(cid) doPlayerSendCancel(cid, '12//,show') --alterado v1.9 endreturn trueend-----------------------------local player = getRecorderPlayer(topos) --alterado v1.8 \/-------- DUEL SYSTEM ------------------------if isPlayer(player) and player ~= cid and getPlayerStorageValue(player, 6598754) <= -1 and getPlayerStorageValue(player, 52480) <= -1 then if getPlayerStorageValue(cid, 52480) <= -1 or (getPlayerStorageValue(cid, 52481) >= 1 and getPlayerStorageValue(cid, 52482) ~= -1) then ---for s = 1, #storages do if getPlayerStorageValue(cid, storages) >= 1 then return doPlayerSendTextMessage(cid, 20, "You can't do that while is Flying, Riding, Surfing, Diving or mount a bike!") endendif getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 thenreturn doPlayerSendTextMessage(cid, 20, "You can't do that while in PVP zone!")endif #getCreatureSummons(cid) < 1 thenreturn doPlayerSendTextMessage(cid, 20, "You need a pokemon to invite someone to duel!")end---if getPlayerStorageValue(cid, 52480) <= -1 then doPlayerSetVocation(cid, 7) openChannelDialog(cid) setPlayerStorageValue(cid, 52480, 1) setPlayerStorageValue(cid, 6598754, 5) setPlayerStorageValue(cid, 52482, getCreatureName(cid)..",") setPlayerStorageValue(cid, 52483, getCreatureName(player)..",") doCreatureSetSkullType(cid, 2) doSendAnimatedText(getThingPosWithDebug(cid), "FIRST TEAM", 215) return trueelseif getPlayerStorageValue(cid, 52481) >= 1 and getPlayerStorageValue(cid, 52482) ~= -1 then local t1 = string.explode(getPlayerStorageValue(cid, 52482), ",") local t2 = string.explode(getPlayerStorageValue(cid, 52483), ",") if (#t1 >= getPlayerStorageValue(cid, 52480) and #t2 >= getPlayerStorageValue(cid, 52480)) or (isInArray(t1, getCreatureName(player)) or isInArray(t2, getCreatureName(player))) then return true end local sto2, sto3, name = getPlayerStorageValue(cid, 52482), getPlayerStorageValue(cid, 52483), getCreatureName(player) if getPlayerStorageValue(cid, 52480) == 2 then setPlayerStorageValue(cid, 52483, sto3.. name..",") --time adversario doSendAnimatedText(getThingPosWithDebug(player), "SECOND TEAM", 215) elseif getPlayerStorageValue(cid, 52480) == 3 and #t1 < 3 then setPlayerStorageValue(cid, 52482, sto2.. name..",") --time aliado doSendAnimatedText(getThingPosWithDebug(player), "FIRST TEAM", 215) elseif getPlayerStorageValue(cid, 52480) == 3 and #t1 >= 3 then setPlayerStorageValue(cid, 52483, sto3.. name..",") --time adversario doSendAnimatedText(getThingPosWithDebug(player), "SECOND TEAM", 215) end setPlayerStorageValue(player, 52481, getPlayerStorageValue(cid, 52481)) setPlayerStorageValue(player, 52485, getCreatureName(cid)) local players, pokes = getPlayerStorageValue(cid, 52480), getPlayerStorageValue(cid, 52481) local str = {} table.insert(str, getCreatureName(cid).." está lhe envitando para um Duel! Use o Poke Order para aceitar") table.insert(str, "Info Battle: Duel "..players.."x"..players.." - "..pokes.." pokes.") --alterado v1.9 doPlayerSendTextMessage(player, 20, table.concat(str)) return trueendend--- elseif isPlayer(player) and player ~= cid and getPlayerStorageValue(player, 6598754) == 5 and getPlayerStorageValue(player, 52481) >= 1 thenlocal t1 = string.explode(getPlayerStorageValue(player, 52482), ",")local t2 = string.explode(getPlayerStorageValue(player, 52483), ",")---if not isInArray(t1, getCreatureName(cid)) and not isInArray(t2, getCreatureName(cid)) thenreturn trueend---for s = 1, #storages do if getPlayerStorageValue(cid, storages) >= 1 then return doPlayerSendTextMessage(cid, 20, "You can't do that while is Flying, Riding, Surfing, Diving or mount a bike!") endendif getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 thenreturn doPlayerSendTextMessage(cid, 20, "You can't do that while in PVP zone!")endlocal pokes = getLivePokeballs(cid, getPlayerSlotItem(cid, 3).uid, true)if #pokes < getPlayerStorageValue(player, 52481) thenreturn doPlayerSendTextMessage(cid, 20, "You need atleast ".. getPlayerStorageValue(player, 52481).." pokemons to duel with this person!")endif getPlayerStorageValue(cid, 52482) ~= -1 thenreturn doPlayerSendTextMessage(cid, 20, "You already invit someone to duel!")endif #getCreatureSummons(cid) < 1 thenreturn doPlayerSendTextMessage(cid, 20, "Você precisa de um Pokémon para aceitar o Duel!")end--- setPlayerStorageValue(cid, 52480, getPlayerStorageValue(player, 52480)) setPlayerStorageValue(player, 52484, getPlayerStorageValue(player, 52484)-1) if getPlayerStorageValue(player, 52484) == 0 then for a = 1, #t1 do local pid, sid = getPlayerByName(t1[a]), getPlayerByName(t2[a]) if not isCreature(pid) or getPlayerStorageValue(pid, 52480) <= -1 then removeFromTableDuel(player, t1[a]) else doCreatureSetSkullType(pid, 1) end if not isCreature(sid) or getPlayerStorageValue(sid, 52480) <= -1 then removeFromTableDuel(player, t2[a]) else doCreatureSetSkullType(sid, 1) end end beginDuel(player, 6) else doCreatureSetSkullType(cid, 2) end doSendAnimatedText(getThingPos(cid), "BATTLE", COLOR_ELECTRIC) return trueelseif isPlayer(player) and player == cid and getPlayerStorageValue(player, 52480) >= 1 then doEndDuel(cid, true) return trueend------------------------------------------------------------------------------------if #getCreatureSummons(cid) == 0 then return doPlayerSendCancel(cid, "Você precisa soltar seu Pokémon para ordená-lo!") endif getCreatureNoMove(getCreatureSummons(cid)[1]) then return true endmarkLP(getCreatureSummons(cid)[1], -1)local marked = getMarkedPos(getCreatureSummons(cid)[1]) --alterado v1.8 \/if type(marked) == "table" and marked.x == topos.x and marked.y == topos.y thenreturn trueendlocal thisball = getPlayerSlotItem(cid, 8)local mysum = getCreatureSummons(cid)[1]local sid = mysum or cidlocal maxMoveDist = getDistanceBetween(getThingPos(sid), topos) * 2 + 1 markPos(mysum, topos) markOwnerPos(mysum, getThingPos(cid))-------- ROCK SMASH ---------if item2.itemid == 1285 and isInArray(skills["rock smash"], getPokemonName(mysum)) then doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["rock smash"][math.random(1, #txt["rock smash"])].."", 1) addEvent(goThere, 500, mysum, topos, "rock smash", isCreature(getCreatureTarget(cid)))return trueend------------------------------------- HEADBUTT -----------if item2.itemid == 12591 and getPokemonLevel(mysum) >= 15 then --alterado v1.6 --id do item arvore normaldoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["headbutt"][math.random(1, #txt["headbutt"])].."", 1)addEvent(goThere, 500, mysum, topos, "headbutt", isCreature(getCreatureTarget(cid)))return trueend------------------------------------- CUT ----------------if item2.itemid == 2767 and isInArray(skills["cut"], getPokemonName(mysum)) then doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["cut"][math.random(1, #txt["cut"])].."", 1) addEvent(goThere, 500, mysum, topos, "cut", isCreature(getCreatureTarget(cid)))return trueend------------------------------------- TRANSFORM ---------- --alterado v1.7if (getCreatureName(mysum) == "Ditto" or getCreatureName(mysum) == "Shiny Ditto") and isMonster(item2.uid) and pokes[getCreatureName(item2.uid)] then if item2.uid == mysum then --edited if isTransformed(mysum) then deTransform(mysum, getItemAttribute(thisball.uid, "transTurn")) markPos(mysum, unfix) doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["untransform"][math.random(1, #txt["untransform"])].."", 1) if useKpdoDlls then doUpdateMoves(cid) --alterado v1.9 end return true end doPlayerSendCancel(cid, "Seu Ditto não transformou.") markPos(mysum, unfix) return true end if getCreatureName(item2.uid) == "Ditto" or getCreatureName(item2.uid) == "Shiny Ditto" then --edited transform for shiny ditto doPlayerSendCancel(cid, "Seu Ditto não pode transformar em outro Ditto.") markPos(mysum, unfix) return true endlocal poke_transform = {"Articuno", "Zapdos", "Moltres", "Raikou", "Entei", "Suicune"} --Só ir colocando nessa tabela os pokémons que o Ditto não poderá se transformar. if isInArray(poke_transform, getCreatureName(item2.uid)) then return doPlayerSendCancel(cid, "Você não pode transformar seu Ditto neste pokémon.") end --if getCreatureName(item2.uid) == getPlayerStorageValue(mysum, 1010) then --doPlayerSendCancel(cid, "Seu Ditto já esta transformado nesse Pokémon.") --markPos(mysum, unfix) --return true --end local cd = getCD(thisball.uid, "trans", 40) --if cd > 0 then --doPlayerSendCancel(cid, "Tempo para usar Transform novamente: ("..getStringmytempo(cd)..")") --return true --end if getHappiness(mysum) <= 50 then doSendMagicEffect(getThingPos(mysum), happinessRate[1].effect) markPos(mysum, unfix) return true end local turn = getItemAttribute(thisball.uid, "transTurn") if not turn or turn > 10 then doItemSetAttribute(thisball.uid, "transTurn", 0) else doItemSetAttribute(thisball.uid, "transTurn", turn + 1) end local time = 1000 + 2 * getPokemonLevel(mysum) turn = getItemAttribute(thisball.uid, "transTurn") markPos(mysum, unfix) setPlayerStorageValue(mysum, 1010, getCreatureName(item2.uid)) doSetCreatureOutfit(mysum, {lookType = getPokemonXMLOutfit(getCreatureName(item2.uid))}, -1) --alterado v1.8 addEvent(deTransform, time * 1000, mysum, turn) doSendMagicEffect(getThingPos(mysum), 184) doCreatureSay(mysum, "TRANSFORM!", TALKTYPE_MONSTER) local name = getCreatureName(item2.uid) setCD(thisball.uid, "trans", 40) doItemSetAttribute(thisball.uid, "transBegin", os.clock()) doSetItemAttribute(thisball.uid, "transLeft", time) doSetItemAttribute(thisball.uid, "transOutfit", getPokemonXMLOutfit(getCreatureName(item2.uid))) --alterado v1.8 doSetItemAttribute(thisball.uid, "transName", getCreatureName(item2.uid)) doFaceCreature(mysum, getThingPos(item2.uid)) doPlayerSay(cid, ""..getPokeName(mysum)..", transforme em "..name.."!", 1) if useKpdoDlls then doUpdateMoves(cid) --alterado v1.6 endif dittoCopiesStatusToo then setPlayerStorageValue(mysum, 1001, dittoBonus*getOffense(item2.uid)) setPlayerStorageValue(mysum, 1002, dittoBonus*getDefense(item2.uid)) setPlayerStorageValue(mysum, 1003, getSpeed(item2.uid)) setPlayerStorageValue(mysum, 1004, dittoBonus*getVitality(item2.uid)) setPlayerStorageValue(mysum, 1005, dittoBonus*getSpecialAttack(item2.uid)) ------------------ local pct = getCreatureHealth(mysum) / getCreatureMaxHealth(mysum) local vit = (getVitality(mysum) * getMasterLevel(mysum)) / 100 setCreatureMaxHealth(mysum, ( vit * HPperVITsummon )) --alterado v1.6 doCreatureAddHealth(mysum, pct * vit * HPperVITsummon)endreturn trueend------------------------------------- LIGHT --------------if isMonster(item2.uid) and getCreatureMaster(item2.uid) == cid then markPos(mysum, unfix) if not isInArray(skills["light"], getPokemonName(item2.uid)) then doPlayerSendCancel(cid, "Seu Pokémon não possui a habilidade Light.") return true end local cd = getCD(thisball.uid, "light", 30) if cd > 0 then doPlayerSendCancel(cid, "Tempo para usar Light novamente: ("..getStringmytempo(cd)..")") return true end doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["light"][math.random(1, #txt["light"])].."", 1) doCreatureSay(mysum, "LIGHT!", TALKTYPE_MONSTER) doSendMagicEffect(getThingPos(mysum), 28) local size = 5 size = size + math.floor(getSpecialAttack(mysum) / 60) size = size + math.ceil(getPokemonLevel(mysum) / 60) if size > 11 then size = 11 end doSetCreatureLight(mysum, size, 215, 600*1000) local delay = math.floor(30 - getPokemonLevel(mysum) / 4) if delay > 0 then setCD(thisball.uid, "light", delay) endreturn trueend ------------------------------------- DIG ----------------if isInArray(skills["digholes"], item2.itemid) and isInArray(skills["dig"], getPokemonName(mysum)) then doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["dig"][math.random(1, #txt["dig"])].."", 1) addEvent(goThere, 500, mysum, topos, "dig", isCreature(getCreatureTarget(cid)))return trueend------------------------------------- BLINK / MOVE -------if not isCreature(item2.uid) and isInArray(skills["blink"], getPokemonName(mysum)) then local cd = getCD(thisball.uid, "blink", 30) if getPlayerStorageValue(mysum, 2365487) == 1 then return true --alterado v1.4 end if not isSightClear(getThingPos(mysum), getThingPos(item2.uid), false) then return doPlayerSendCancel(cid, "Você não pode teleportar seu pokémon aí!") end if cd > 0 or not canWalkOnPos(topos, false, false, true, true, true) then doPlayerSendCancel(cid, "Tempo para usar Blink: ("..getStringmytempo(cd)..")") doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["move"][math.random(1, #txt["move"])].."", 1) addEvent(goThere, 500, mysum, topos, "move", isCreature(getCreatureTarget(cid)), maxMoveDist) return true end local CD = isShinyName(getCreatureName(mysum)) and 20 or 30 --edited blink markPos(mysum, topos) markOwnerPos(mysum, getThingPos(cid)) setCD(thisball.uid, "blink", CD) doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["blink"][math.random(1, #txt["blink"])].."", 1) doSendDistanceShoot(getThingPos(mysum), topos, 39) doSendMagicEffect(getThingPos(mysum), 211) doTeleportThing(mysum, topos, false) doSendMagicEffect(topos, 134) doCreatureSay(mysum, "BLINK!", TALKTYPE_MONSTER) goThere(mysum, topos, "blink", isCreature(getCreatureTarget(cid))) --edited blinkreturn trueend----------------------------- ----START FLY or RIDE or LEVITATE ---------if (item2.uid == cid or getRecorderPlayer(topos) == cid) and (isInArray(skills["fly"], getPokemonName(mysum)) or isInArray(skills["ride"], getPokemonName(mysum)) or isInArray(skills["levitate_fly"], getPokemonName(mysum))) then--alterado v1.8 >>if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 thenreturn doPlayerSendCancel(cid, "You can't do it while in the PVP Zone!") --alterado v1.7endif #getCreatureSummons(cid) > 1 then --alterado v1.9return doPlayerSendCancel(cid, "You can't do it right now!")end if getPlayerStorageValue(cid, 91831) >= 1 then return doPlayerSendCancel(cid, "Não é permitido usar Fly/Ride aqui.") endif getPlayerStorageValue(cid, 52480) >= 1 thenreturn doPlayerSendCancel(cid, "You can't do it while a duel!") --alterado v1.6endif getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9doPlayerSendCancel(cid, "You can't do that while is mount in a bike!")return trueendif getPlayerStorageValue(cid, 22545) >= 1 and (isInArray(skills["fly"], getPokemonName(mysum)) or isInArray(skills["levitate_fly"], getPokemonName(mysum))) thenreturn doPlayerSendCancel(cid, "You can't do that while in the Golden Arena!") --alterado v1.8endlocal pct = getCreatureHealth(mysum) / getCreatureMaxHealth(mysum)doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", 1 - pct)if isInArray(skills["fly"], getPokemonName(mysum)) thendoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["fly"][math.random(1, #txt["fly"])].."", 1)addEvent(goThere, 500, mysum, topos, "fly", isCreature(getCreatureTarget(cid)))elseif isInArray(skills["levitate_fly"], getPokemonName(mysum)) thendoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["levitate_fly"][math.random(1, #txt["levitate_fly"])].."", 1) --alterado v1.8addEvent(goThere, 500, mysum, topos, "fly", isCreature(getCreatureTarget(cid)))elsedoPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["ride"][math.random(1, #txt["ride"])].."", 1)addEvent(goThere, 500, mysum, topos, "ride", isCreature(getCreatureTarget(cid)))endreturn trueend---------------------------------------------------------------Control Mind-------------------------------------------- alterado v1.5if isCreature(item2.uid) and ehMonstro(item2.uid) and isInArray(skills["control mind"], getCreatureName(mysum)) and item2.uid ~= mysum then if not isCreature(item2.uid) then return true end if isSleeping(mysum) then return doPlayerSendCancel(cid, "Seu Pokémon esta dormindo...zZzZ") end if getTileInfo(getThingPos(cid)).protection or getTileInfo(getThingPos(getCreatureSummons(cid)[1])).protection then return doPlayerSendCancel(cid, "Você ou seu Pokémon esta em uma Protection Zone!") end if #getCreatureSummons(cid) == 2 then return doPlayerSendCancel(cid, "Você só pode controlar um Pokémon!") end local cd = getCD(thisball.uid, "control", 120) if cd > 0 then doPlayerSendCancel(cid, "Você deve esperar "..cd.." segundos para usar Control Mind novamente!") return true end if getPokemonLevel(item2.uid) >= getPokemonLevel(mysum) then return doPlayerSendCancel(cid, "Seu Pokémon não possui a habilidade Control Mind!") end if getPlayerStorageValue(cid, 22545) >= 1 then --alterado v1.7 return doPlayerSendCancel(cid, "Você não pode fazer isso na Golden Arena!") endlocal cmed = item2.uidsetCD(thisball.uid, "control", 120)local gender = getPokemonGender(cmed)doSendDistanceShoot(getThingPos(mysum), getThingPos(cmed), 39)--------------setPlayerStorageValue(cid, 212124, 1)doConvinceCreature(cid, cmed)setPlayerStorageValue(cmed, 212123, 1)doCreatureSay(cid, ""..getCreatureName(mysum)..", control "..string.lower(getCreatureName(cmed)).."'s mind!", 1)local cmname = getCreatureName(mysum)local cmpos = getThingPos(mysum)local pokelife = (getCreatureHealth(mysum) / getCreatureMaxHealth(mysum))doItemSetAttribute(thisball.uid, "hp", pokelife)doRemoveCreature(mysum)local cmzao = doSummonCreature(""..cmname.." cm", cmpos)doConvinceCreature(cid, cmzao)setPlayerStorageValue(cid, 888, 1)if useKpdoDlls then doUpdateMoves(cid)endlocal function check(cid, controled, rod)if isCreature(cid) thenball2 = getPlayerSlotItem(cid, 8) if getPlayerStorageValue(cid, 888) <= 0 then return true end if not isCreature(controled) then setPlayerStorageValue(cid, 212124, 0) local sum = isCreature(getCreatureSummons(cid)[1]) and getCreatureSummons(cid)[1] or getCreatureSummons(cid)[2] local pkcmpos = getThingPos(sum) doRemoveCreature(sum) local item = getPlayerSlotItem(cid, 8) local pk = doSummonCreature(getItemAttribute(item.uid, "poke"), pkcmpos) doConvinceCreature(cid, pk) doCreatureSetLookDir(getCreatureSummons(cid)[1], 2) addEvent(doAdjustWithDelay, 100, cid, pk, true, true, false) setPlayerStorageValue(cid, 888, -1) --alterado v1.7 cleanCMcds(item.uid) registerCreatureEvent(pk, "SummonDeath") --alterado v1.6 if useKpdoDlls then doUpdateMoves(cid) end return true end if rod <= 0 then --Pokemon controlado local cmed2 = getCreatureSummons(cid)[1] local poscmed = getThingPos(cmed2) local cmeddir = getCreatureLookDir(cmed2) local namecmed = getCreatureName(cmed2) local gender = getPokemonGender(cmed2) local hp, maxHp = getCreatureHealth(getCreatureSummons(cid)[1]), getCreatureMaxHealth(getCreatureSummons(cid)[1]) doRemoveCreature(getCreatureSummons(cid)[1]) local back = doCreateMonster(namecmed, poscmed) addEvent(doCreatureSetSkullType, 150, back, gender) doWildAttackPlayer(back, cid) doCreatureSetLookDir(back, cmeddir) addEvent(doCreatureAddHealth, 100, back, hp-maxHp) -- pokemon controlador local mynewpos = getThingPos(getCreatureSummons(cid)[1]) doRemoveCreature(getCreatureSummons(cid)[1]) local pk2 = doSummonCreature(getItemAttribute(ball2.uid, "poke"), mynewpos) doConvinceCreature(cid, pk2) addEvent(doAdjustWithDelay, 100, cid, pk2, true, true, false) setPlayerStorageValue(cid, 888, -1) --alterado v1.7 doCreatureSetLookDir(getCreatureSummons(cid)[1], 2) setPlayerStorageValue(cid, 212124, 0) cleanCMcds(ball2.uid) registerCreatureEvent(pk2, "SummonDeath") --alterado v1.6 if useKpdoDlls then doUpdateMoves(cid) end else if isInArray({"Haunter", "Gengar", "Shiny Gengar"}, cmname) then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 214) else doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 220) end endendaddEvent(check, 500, cid, controled, rod-1)endcheck(cid, cmed, 40)return trueend----------------------------------------------------------------------------- MOVE / END --------- local onlyWater = false if isWater(getTileThingByPos(checkpos).itemid) then onlyWater = true for checkwater = 0, 7 do if not isWater(getTileThingByPos(getPosByDir(checkpos, checkwater)).itemid) then onlyWater = false end end end if onlyWater then doPlayerSendCancel(cid, "Desculpe, isso não é possivel.") return true end doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["move"][math.random(1, #txt["move"])].."", 1) if isCreature(getCreatureTarget(cid)) then goThere(mysum, topos, "move", isCreature(getCreatureTarget(cid)), maxMoveDist) else addEvent(goThere, 500, mysum, topos, "move", isCreature(getCreatureTarget(cid)), maxMoveDist) end -----------------------------return trueend Repe mais. Link para o comentário Compartilhar em outros sites More sharing options...
sailorv 5 Postado Janeiro 25, 2014 Share Postado Janeiro 25, 2014 doCreatureSetNoMove(cid, cannotMove) getCreatureNoMove(cid) mayNotMove = doCreatureSetNoMove doPlayerSetNoMove = doCreatureSetNoMove getPlayerNoMove = getCreatureNoMove how to use ( como usar ) doCreatureSetNoMove(cid, true)addEvent(doCreatureSetNoMove, 4000, cid, false) Link para o comentário Compartilhar em outros sites More sharing options...
FlamesAdmin 261 Postado Janeiro 25, 2014 Autor Share Postado Janeiro 25, 2014 doCreatureSetNoMove(cid, cannotMove) getCreatureNoMove(cid) mayNotMove = doCreatureSetNoMove doPlayerSetNoMove = doCreatureSetNoMove getPlayerNoMove = getCreatureNoMove how to use ( como usar ) doCreatureSetNoMove(cid, true)addEvent(doCreatureSetNoMove, 4000, cid, false) Onde eu ponho isso ? Pode me dizer ? Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Janeiro 25, 2014 Share Postado Janeiro 25, 2014 (editado) Duel System.lua, por favor. PS: Se não sabe onde é, data/lib. Editado Janeiro 25, 2014 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
FlamesAdmin 261 Postado Janeiro 25, 2014 Autor Share Postado Janeiro 25, 2014 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 thenreturn trueendlocal 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-1endaddEvent(beginDuel, 1000, cid, n)endfunction removeFromTableDuel(cid, value)if not isCreature(cid) then return true endlocal 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 "").."," endendsetPlayerStorageValue(cid, 52482, str1)setPlayerStorageValue(cid, 52483, str2)return trueendfunction 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 trueelseif table.find(t2, name1) ~= nil and table.find(t1, name2) ~= nil then return trueendreturn falseendfunction doEndDuel(cid, desisto)if isCreature(cid) thenif getPlayerStorageValue(cid, 52482) ~= -1 then t1 = string.explode(getPlayerStorageValue(cid, 52482), ",") t2 = string.explode(getPlayerStorageValue(cid, 52483), ",")endlocal invit = getPlayerByName(getPlayerStorageValue(cid, 52485))if isCreature(invit) then table1 = string.explode(getPlayerStorageValue(invit, 52482), ",") table2 = string.explode(getPlayerStorageValue(invit, 52483), ",")endif 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, "Seu oponente desistiu! Duelo foi cancelado!") end end -------------------------------- end if desisto then doSendAnimatedText(getThingPosWithDebug(cid), "GIVE UP", COLOR_BLUE) end return trueend 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 endendendfunction checkDuel(cid)if getPlayerStorageValue(cid, 52484) ~= 10 then return true endif getPlayerStorageValue(cid, 52481) >= 1 then setPlayerStorageValue(cid, 52481, getPlayerStorageValue(cid, 52481)-1) doSendAnimatedText(getThingPosWithDebug(cid), "POKE DOWN", 65)endif getPlayerStorageValue(cid, 52481) == 0 then doEndDuel(cid)end end--/////////////////////////////////////////////////////////////////////////////////////////////-- Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Janeiro 25, 2014 Share Postado Janeiro 25, 2014 Tenta: 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[i]), getPlayerByName(t2[i]) 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) doPlayerSetNoMove(pid, true) doPlayerSetNoMove(sid, true) end return true else for i = 1, #t1 do local pid, sid = getPlayerByName(t1[i]), getPlayerByName(t2[i]) 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[i] then str1 = str1..(t1[i] or "").."," end if t2[i] then str2 = str2..(t2[i] 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[i], -1) end if isCreature(sid) then setPlayerStorageValue(sid, storagesDuel[i], -1) end end end else for i = 1, #storagesDuel do setPlayerStorageValue(cid, storagesDuel[i], -1) end doCreatureSetSkullType(cid, 0) doRemoveCondition(cid, CONDITION_INFIGHT) --------------------------------- if table2 then local numero = 0 for i = 1, #table2 do local ppid = getPlayerByName(table2[i]) if not isCreature(ppid) or getPlayerStorageValue(ppid, 52480) ~= -1 then numero = numero+1 end end if numero == 0 then doEndDuel(invit) sendMsgToPlayer(invit, 20, "Seu oponente desistiu! Duelo foi cancelado!") doPlayerSetNoMove(invit, false) end end -------------------------------- end if desisto then doSendAnimatedText(getThingPosWithDebug(cid), "GIVE UP", COLOR_BLUE) doPlayerSetNoMove(cid, false) 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[i], -1) end doCreatureSetSkullType(winner, 0) doPlayerSetNoMove(winner, false) doRemoveCondition(winner, CONDITION_INFIGHT) end end addEvent(doSendAnimatedText, 500, getThingPosWithDebug(cid), "LOSE", COLOR_BURN) for i = 1, #storagesDuel do setPlayerStorageValue(cid, storagesDuel[i], -1) end doCreatureSetSkullType(cid, 0) doPlayerSetNoMove(cid, false) doRemoveCondition(cid, CONDITION_INFIGHT) else for i = 1, #storagesDuel do setPlayerStorageValue(cid, storagesDuel[i], -1) end doCreatureSetSkullType(cid, 0) doRemoveCondition(cid, CONDITION_INFIGHT) doPlayerSetNoMove(cid, false) 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 --/////////////////////////////////////////////////////////////////////////////////////////////-- Link para o comentário Compartilhar em outros sites More sharing options...
FlamesAdmin 261 Postado Janeiro 25, 2014 Autor Share Postado Janeiro 25, 2014 (editado) Tenta: 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[i]), getPlayerByName(t2[i]) 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) doPlayerSetNoMove(pid, true) doPlayerSetNoMove(sid, true) end return true else for i = 1, #t1 do local pid, sid = getPlayerByName(t1[i]), getPlayerByName(t2[i]) 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[i] then str1 = str1..(t1[i] or "").."," end if t2[i] then str2 = str2..(t2[i] 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[i], -1) end if isCreature(sid) then setPlayerStorageValue(sid, storagesDuel[i], -1) end end end else for i = 1, #storagesDuel do setPlayerStorageValue(cid, storagesDuel[i], -1) end doCreatureSetSkullType(cid, 0) doRemoveCondition(cid, CONDITION_INFIGHT) --------------------------------- if table2 then local numero = 0 for i = 1, #table2 do local ppid = getPlayerByName(table2[i]) if not isCreature(ppid) or getPlayerStorageValue(ppid, 52480) ~= -1 then numero = numero+1 end end if numero == 0 then doEndDuel(invit) sendMsgToPlayer(invit, 20, "Seu oponente desistiu! Duelo foi cancelado!") doPlayerSetNoMove(invit, false) end end -------------------------------- end if desisto then doSendAnimatedText(getThingPosWithDebug(cid), "GIVE UP", COLOR_BLUE) doPlayerSetNoMove(cid, false) 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[i], -1) end doCreatureSetSkullType(winner, 0) doPlayerSetNoMove(winner, false) doRemoveCondition(winner, CONDITION_INFIGHT) end end addEvent(doSendAnimatedText, 500, getThingPosWithDebug(cid), "LOSE", COLOR_BURN) for i = 1, #storagesDuel do setPlayerStorageValue(cid, storagesDuel[i], -1) end doCreatureSetSkullType(cid, 0) doPlayerSetNoMove(cid, false) doRemoveCondition(cid, CONDITION_INFIGHT) else for i = 1, #storagesDuel do setPlayerStorageValue(cid, storagesDuel[i], -1) end doCreatureSetSkullType(cid, 0) doRemoveCondition(cid, CONDITION_INFIGHT) doPlayerSetNoMove(cid, false) 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 --/////////////////////////////////////////////////////////////////////////////////////////////-- Jaja eu testo aqui, to terminando de adicionar os corpses dos pokes da out aki no server. ---EDIT-- Deu certo aki, vlw. rep+ Editado Janeiro 25, 2014 por FlamesAdmin Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados