Drakopoulos 219 Postado Março 20, 2016 Share Postado Março 20, 2016 Tou com um projeto de poketibia e recentemente está me aparecendo esses erros na distro mas não afeta em nada no jogo (creio eu). Esse erro da quando o pokemon retorna: http://i.imgur.com/p0mVfCB.png Esse ao deslogar: http://i.imgur.com/yqycgs3.png E esse ao criar um pokemon: http://i.imgur.com/Uh8bkI7.png Como disse em cima, ele não afeta nada ingame mas fica spammando na distro e poderá causar lag. Se precisar de algum script eu passo e tenho a source tbm se precisar. ~up ~up, ninguem?.. Link para o comentário Compartilhar em outros sites More sharing options...
0 Deadpool 862 Postado Março 20, 2016 Share Postado Março 20, 2016 Esse é o problema, sua source/distro não é compatível com o PDA. Aliás, nenhuma source vai se dar bem com o PDA mano, isso é ilusão.. Procura BrPokeOt ou pfield com sources que você ganha mais.. Link para o comentário Compartilhar em outros sites More sharing options...
0 Refe 320 Postado Março 20, 2016 Share Postado Março 20, 2016 Me manda o goback e o link de onde achou essa base. Link para o comentário Compartilhar em outros sites More sharing options...
0 Drakopoulos 219 Postado Março 20, 2016 Autor Share Postado Março 20, 2016 Esse é o problema, sua source/distro não é compatível com o PDA. Aliás, nenhuma source vai se dar bem com o PDA mano, isso é ilusão.. Procura BrPokeOt ou pfield com sources que você ganha mais.. Entendi.. pensei q era erro em algum script, mas vlw a explicação. Me manda o goback e o link de onde achou essa base. A base foi essa http://www.xtibia.com/forum/topic/239738-pokemon-dash-v6-reupload-by-luizmachado1/ Goback local EFFECTS = { --[OutfitID] = {Effect} ["Magmar"] = 35, ["Jynx"] = 17, --alterado v1.5 ["Shiny Jynx"] = 17, ["Piloswine"] = 205, --alterado v1.8 ["Swinub"] = 205, } local exausted = 0 --Exausted, em segundos. local STORAGE_EXAUSTED = 918312 function onUse(cid, item, frompos, item2, topos) if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 << return true end ballName = getItemAttribute(item.uid, "poke") local thisball = getPlayerSlotItem(cid, 8) local ballName = getItemAttribute(thisball.uid, "poke") local bball = getItemAttribute(thisball.uid, "ball") btype = getPokeballType(thisball.itemid) usando = pokeballs[btype].use local effect = pokeballs[bball].effect if not effect then effect = 21 end unLock(item.uid) --alterado v1.8 if item.itemid == usando then if getPlayerStorageValue(cid, 990) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6 if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then BackTeam(cid) end end if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then doPlayerSendCancel(cid, "You can't do that while is controling a mind") return true --alterado v1.5 end if #getCreatureSummons(cid) <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "This pokemon is fainted.") return true end end local cd = getCD(item.uid, "blink", 30) if cd > 0 then setCD(item.uid, "blink", 0) end local z = getCreatureSummons(cid)[1] if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then return true end setPlayerStorageValue(cid, STORAGE_EXAUSTED, os.time() + exausted) doReturnPokemon(cid, z, item, effect) for j = 200000, 200014 do if getPlayerStorageValue(cid, j) >= 1 then setPlayerStorageValue(cid, storages.addonSystem, getPlayerStorageValue(cid, storages.addonSystem)..","..j) setPlayerStorageValue(cid, j, -1) end end setPlayerStorageValue(cid, 130390, 1) setPlayerStorageValue(cid, 130389, 1) setPlayerStorageValue(cid, 100, 1) setPlayerStorageValue(cid, 15024, -1) elseif item.itemid == pokeballs[btype].on then if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then doPlayerSendCancel(cid, "You must put your pokeball in the correct place!") return TRUE end local thishp = getItemAttribute(item.uid, "hp") if thishp <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "This pokemon is fainted.") return true end end if getPlayerStorageValue(cid, STORAGE_EXAUSTED) > os.time() then return doPlayerSendCancel(cid, string.format("Sorry, you're exausted. (%d second%s)", getPlayerStorageValue(cid, STORAGE_EXAUSTED) - os.time(), (getPlayerStorageValue(cid, STORAGE_EXAUSTED) - os.time()) > 1 and "s" or "")) end local pokemon = getItemAttribute(item.uid, "poke") if not pokes[pokemon] then return true end ----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto --------------------------------- if not isInArray({5, 6}, getPlayerGroupId(cid)) then local balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) local low = {} local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"} if #balls >= 1 then for _, uid in ipairs(balls) do local nome = getItemAttribute(uid, "poke") if not isInArray(lowPokes, pokemon) and nome == pokemon then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!") else if nome == pokemon then table.insert(low, nome) end end end end if #low >= 3 then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!") end end --------------------------------------------------------------------------------------------------------------------------------------------------- local x = pokes[pokemon] local boost = getItemAttribute(item.uid, "boost") or 0 if getPlayerLevel(cid) < (x.level+boost) then doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.") return true end ---------------------------- Sistema pokes de clan -------------------------------------- local shinysClan = { ["Shiny Fearow"] = {4, "Wingeon"}, ["Shiny Flareon"] = {1, "Volcanic"}, ["Shiny Vaporeon"] = {2, "Seavel"}, ["Shiny Jolteon"] = {9, "Raibolt"}, ["Shiny Hypno"] = {7, "Psycraft"}, ["Shiny Golem"] = {3, "Orebound"}, ["Shiny Vileplume"] = {8, "Naturia"}, ["Shiny Nidoking"] = {5, "Malefic"}, ["Shiny Hitmontop"] = {6, "Gardestrike"}, --alterado v1.4 } if shinysClan[pokemon] and (getPlayerGroupId(cid) < 4 or getPlayerGroupId(cid) > 6) then --alterado v1.9 \/ if getPlayerClanNum(cid) ~= shinysClan[pokemon][1] then doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!") return true elseif getPlayerClanRank(cid) ~= 5 then doPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!") return true end end -------------------------------------------------------------------------------------- doSummonMonster(cid, pokemon) local pk = getCreatureSummons(cid)[1] if not isCreature(pk) then return true end ------------------------passiva hitmonchan------------------------------ if isSummon(pk) then --alterado v1.8 \/ if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then if not getItemAttribute(item.uid, "hands") then doSetItemAttribute(item.uid, "hands", 0) end local hands = getItemAttribute(item.uid, "hands") doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1) end end ------------------------------------------------------------------------- ---------movement magmar, jynx------------- if EFFECTS[getCreatureName(pk)] then markPosEff(pk, getThingPos(pk)) sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk)) end -------------------------------------------------------------------------- if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end doCreatureSetLookDir(pk, 2) adjustStatus(pk, item.uid, true, true, true) --doTeleportThing(pk, getClosestFreeTile(pk, getThingPos(cid)), true) if not getCreatureCondition(cid, CONDITION_INFIGHT) then doRegenerateWithY(getCreatureMaster(pk), pk) doCureWithY(getCreatureMaster(pk), pk) end doAddPokemonInOwnList(cid, pokemon) doTransformItem(item.uid, item.itemid+1) local pokename = getPokeName(pk) --alterado v1.7 local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename) doCreatureSay(cid, mgo, TALKTYPE_SAY) if getItemAttribute(item.uid, "addonNow") then if getItemAttribute(item.uid, "color1") then local color1, color2, color3, color4 = getItemAttribute(item.uid, "color1"), getItemAttribute(item.uid, "color2"), getItemAttribute(item.uid, "color3"), getItemAttribute(item.uid, "color4") doCreatureChangeOutfit(pk, {lookType = getItemAttribute(item.uid, "addonNow"), lookBody = color1, lookHead = color2, lookLegs = color3, lookFeet = color4}) else doCreatureChangeOutfit(pk, {lookType = getItemAttribute(item.uid, "addonNow")}) end end if useOTClient then doPlayerSendCancel(cid, '12//,show') --alterado v1.7 end setPlayerStorageValue(cid, 130390, -1) setPlayerStorageValue(cid, 130389, -1) setPlayerStorageValue(cid, 15024, 1) if not pokeAddons[getItemAttribute(item.uid, "poke")] then setPlayerStorageValue(cid, 85091, -1) setPlayerStorageValue(cid, 130390, 1) setPlayerStorageValue(cid, 130389, 1) else for id1, id2 in pairs(itensAddons) do local a = {"addon", "addon2", "addon3", "addon4", "addon5", "addon6", "addon7"} for i = 1, #a do if getItemAttribute(getPlayerSlotItem(cid, 8).uid, a) == id2.addon then setPlayerStorageValue(cid, id2.stor, 1) setPlayerStorageValue(cid, pokeAddons[getCreatureName(pk)].default, 1) else setPlayerStorageValue(cid, pokeAddons[getCreatureName(pk)].default, 1) end end end end setPlayerStorageValue(cid, storages.addonSystem, "") for i = 181611, 181654 do if getPlayerStorageValue(cid, i) >= 1 then setPlayerStorageValue(cid, storages.addonSystem, getPlayerStorageValue(cid, storages.addonSystem)..","..i) setPlayerStorageValue(cid, i, 0) end end for j = 100, 111 do if getPlayerStorageValue(cid, j) >= 1 then setPlayerStorageValue(cid, storages.addonSystem, getPlayerStorageValue(cid, storages.addonSystem)..","..j) setPlayerStorageValue(cid, j, 0) end end doSendMagicEffect(getCreaturePosition(pk), effect) if getPlayerStorageValue(cid, 990) == 1 then setPlayerStorageValue(pk, 990, 1) else setPlayerStorageValue(pk, 990, -1) end function doDownHappy(cid) if not isCreature(cid) then return true end if #getCreatureSummons(cid) >= 1 then setPokemonHappy(cid, getPokemonHappy(cid)-5) --setPlayerStorageValue(pk, 1008, getPokemonHappy(cid)-5) --return addEvent(doDownHappy, 1800, cid) end end doDownHappy(cid) doSendHappyEffect(cid) else doPlayerSendCancel(cid, "This pokemon is fainted.") end if useKpdoDlls then doUpdateMoves(cid) end return true end Link para o comentário Compartilhar em outros sites More sharing options...
0 Refe 320 Postado Março 20, 2016 Share Postado Março 20, 2016 Isso não é PDA... vou tentar arrumar. Link para o comentário Compartilhar em outros sites More sharing options...
0 Drakopoulos 219 Postado Março 20, 2016 Autor Share Postado Março 20, 2016 Isso não é PDA... vou tentar arrumar. Sim, sei q não é PDA, editei e adicionei muitas coisas na source para funcionar com os scripts do pda, está funcionando tudo normal, mas aparece esses erros na distro. Link para o comentário Compartilhar em outros sites More sharing options...
0 klipstyle 13 Postado Março 20, 2016 Share Postado Março 20, 2016 (editado) Esse é o problema, sua source/distro não é compatível com o PDA. Aliás, nenhuma source vai se dar bem com o PDA mano, isso é ilusão.. Procura BrPokeOt ou pfield com sources que você ganha mais.. na realidade a source do erondino pode ser adaptada para PDA sem lv system sem problemas. Editado Março 20, 2016 por skylucky Link para o comentário Compartilhar em outros sites More sharing options...
0 LLossavaro 43 Postado Março 21, 2016 Share Postado Março 21, 2016 Amigo, isso é devido ao sistema de nick do pda, manda seu goback, e o createpokeball. Ou você pode compilar o sistema de nick.. Link para o comentário Compartilhar em outros sites More sharing options...
0 Drakopoulos 219 Postado Março 21, 2016 Autor Share Postado Março 21, 2016 Amigo, isso é devido ao sistema de nick do pda, manda seu goback, e o createpokeball. Ou você pode compilar o sistema de nick.. Goback local EFFECTS = { --[OutfitID] = {Effect} ["Magmar"] = 35, ["Jynx"] = 17, --alterado v1.5 ["Shiny Jynx"] = 17, ["Piloswine"] = 205, --alterado v1.8 ["Swinub"] = 205, } local exausted = 0 --Exausted, em segundos. local STORAGE_EXAUSTED = 918312 function onUse(cid, item, frompos, item2, topos) if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 << return true end ballName = getItemAttribute(item.uid, "poke") local thisball = getPlayerSlotItem(cid, 8) local ballName = getItemAttribute(thisball.uid, "poke") local bball = getItemAttribute(thisball.uid, "ball") btype = getPokeballType(thisball.itemid) usando = pokeballs[btype].use local effect = pokeballs[bball].effect if not effect then effect = 21 end unLock(item.uid) --alterado v1.8 if item.itemid == usando then if getPlayerStorageValue(cid, 990) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6 if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then BackTeam(cid) end end if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then doPlayerSendCancel(cid, "You can't do that while is controling a mind") return true --alterado v1.5 end if #getCreatureSummons(cid) <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "This pokemon is fainted.") return true end end local cd = getCD(item.uid, "blink", 30) if cd > 0 then setCD(item.uid, "blink", 0) end local z = getCreatureSummons(cid)[1] if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then return true end setPlayerStorageValue(cid, STORAGE_EXAUSTED, os.time() + exausted) doReturnPokemon(cid, z, item, effect) for j = 200000, 200014 do if getPlayerStorageValue(cid, j) >= 1 then setPlayerStorageValue(cid, storages.addonSystem, getPlayerStorageValue(cid, storages.addonSystem)..","..j) setPlayerStorageValue(cid, j, -1) end end setPlayerStorageValue(cid, 130390, 1) setPlayerStorageValue(cid, 130389, 1) setPlayerStorageValue(cid, 100, 1) setPlayerStorageValue(cid, 15024, -1) elseif item.itemid == pokeballs[btype].on then if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then doPlayerSendCancel(cid, "You must put your pokeball in the correct place!") return TRUE end local thishp = getItemAttribute(item.uid, "hp") if thishp <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "This pokemon is fainted.") return true end end if getPlayerStorageValue(cid, STORAGE_EXAUSTED) > os.time() then return doPlayerSendCancel(cid, string.format("Sorry, you're exausted. (%d second%s)", getPlayerStorageValue(cid, STORAGE_EXAUSTED) - os.time(), (getPlayerStorageValue(cid, STORAGE_EXAUSTED) - os.time()) > 1 and "s" or "")) end local pokemon = getItemAttribute(item.uid, "poke") if not pokes[pokemon] then return true end ----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto --------------------------------- if not isInArray({5, 6}, getPlayerGroupId(cid)) then local balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) local low = {} local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"} if #balls >= 1 then for _, uid in ipairs(balls) do local nome = getItemAttribute(uid, "poke") if not isInArray(lowPokes, pokemon) and nome == pokemon then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!") else if nome == pokemon then table.insert(low, nome) end end end end if #low >= 3 then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!") end end --------------------------------------------------------------------------------------------------------------------------------------------------- local x = pokes[pokemon] local boost = getItemAttribute(item.uid, "boost") or 0 if getPlayerLevel(cid) < (x.level+boost) then doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.") return true end ---------------------------- Sistema pokes de clan -------------------------------------- local shinysClan = { ["Shiny Fearow"] = {4, "Wingeon"}, ["Shiny Flareon"] = {1, "Volcanic"}, ["Shiny Vaporeon"] = {2, "Seavel"}, ["Shiny Jolteon"] = {9, "Raibolt"}, ["Shiny Hypno"] = {7, "Psycraft"}, ["Shiny Golem"] = {3, "Orebound"}, ["Shiny Vileplume"] = {8, "Naturia"}, ["Shiny Nidoking"] = {5, "Malefic"}, ["Shiny Hitmontop"] = {6, "Gardestrike"}, --alterado v1.4 } if shinysClan[pokemon] and (getPlayerGroupId(cid) < 4 or getPlayerGroupId(cid) > 6) then --alterado v1.9 \/ if getPlayerClanNum(cid) ~= shinysClan[pokemon][1] then doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!") return true elseif getPlayerClanRank(cid) ~= 5 then doPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!") return true end end -------------------------------------------------------------------------------------- doSummonMonster(cid, pokemon) local pk = getCreatureSummons(cid)[1] if not isCreature(pk) then return true end ------------------------passiva hitmonchan------------------------------ if isSummon(pk) then --alterado v1.8 \/ if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then if not getItemAttribute(item.uid, "hands") then doSetItemAttribute(item.uid, "hands", 0) end local hands = getItemAttribute(item.uid, "hands") doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1) end end ------------------------------------------------------------------------- ---------movement magmar, jynx------------- if EFFECTS[getCreatureName(pk)] then markPosEff(pk, getThingPos(pk)) sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk)) end -------------------------------------------------------------------------- if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end doCreatureSetLookDir(pk, 2) adjustStatus(pk, item.uid, true, true, true) --doTeleportThing(pk, getClosestFreeTile(pk, getThingPos(cid)), true) if not getCreatureCondition(cid, CONDITION_INFIGHT) then doRegenerateWithY(getCreatureMaster(pk), pk) doCureWithY(getCreatureMaster(pk), pk) end doAddPokemonInOwnList(cid, pokemon) doTransformItem(item.uid, item.itemid+1) local pokename = getPokeName(pk) --alterado v1.7 local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename) doCreatureSay(cid, mgo, TALKTYPE_SAY) if getItemAttribute(item.uid, "addonNow") then if getItemAttribute(item.uid, "color1") then local color1, color2, color3, color4 = getItemAttribute(item.uid, "color1"), getItemAttribute(item.uid, "color2"), getItemAttribute(item.uid, "color3"), getItemAttribute(item.uid, "color4") doCreatureChangeOutfit(pk, {lookType = getItemAttribute(item.uid, "addonNow"), lookBody = color1, lookHead = color2, lookLegs = color3, lookFeet = color4}) else doCreatureChangeOutfit(pk, {lookType = getItemAttribute(item.uid, "addonNow")}) end end if useOTClient then doPlayerSendCancel(cid, '12//,show') --alterado v1.7 end setPlayerStorageValue(cid, 130390, -1) setPlayerStorageValue(cid, 130389, -1) setPlayerStorageValue(cid, 15024, 1) if not pokeAddons[getItemAttribute(item.uid, "poke")] then setPlayerStorageValue(cid, 85091, -1) setPlayerStorageValue(cid, 130390, 1) setPlayerStorageValue(cid, 130389, 1) else for id1, id2 in pairs(itensAddons) do local a = {"addon", "addon2", "addon3", "addon4", "addon5", "addon6", "addon7"} for i = 1, #a do if getItemAttribute(getPlayerSlotItem(cid, 8).uid, a) == id2.addon then setPlayerStorageValue(cid, id2.stor, 1) setPlayerStorageValue(cid, pokeAddons[getCreatureName(pk)].default, 1) else setPlayerStorageValue(cid, pokeAddons[getCreatureName(pk)].default, 1) end end end end setPlayerStorageValue(cid, storages.addonSystem, "") for i = 181611, 181654 do if getPlayerStorageValue(cid, i) >= 1 then setPlayerStorageValue(cid, storages.addonSystem, getPlayerStorageValue(cid, storages.addonSystem)..","..i) setPlayerStorageValue(cid, i, 0) end end for j = 100, 111 do if getPlayerStorageValue(cid, j) >= 1 then setPlayerStorageValue(cid, storages.addonSystem, getPlayerStorageValue(cid, storages.addonSystem)..","..j) setPlayerStorageValue(cid, j, 0) end end doSendMagicEffect(getCreaturePosition(pk), effect) if getPlayerStorageValue(cid, 990) == 1 then setPlayerStorageValue(pk, 990, 1) else setPlayerStorageValue(pk, 990, -1) end function doDownHappy(cid) if not isCreature(cid) then return true end if #getCreatureSummons(cid) >= 1 then setPokemonHappy(cid, getPokemonHappy(cid)-5) --setPlayerStorageValue(pk, 1008, getPokemonHappy(cid)-5) --return addEvent(doDownHappy, 1800, cid) end end doDownHappy(cid) doSendHappyEffect(cid) else doPlayerSendCancel(cid, "This pokemon is fainted.") end if useKpdoDlls then doUpdateMoves(cid) end return true end Createpokeball local typess = { --alterado v2.9 \/ TUDO!! [1] = "normal", [2] = "great", [3] = "super", [4] = "ultra", [5] = "saffari", } function onSay(cid, words, param) if param == "" or param == " " then doPlayerSendCancel(cid, 'Command needs parameters, function structure: "/cb [Pokemon Name], [boost], [Gender], [ball type]".') return false end local t = string.explode(param, ",") -- local name = "" local btype = (tostring(t[4]) and pokeballs[t[4]]) and t[4] or typess[math.random(1, #typess)] local gender = (t[3] and tonumber(t[3])) and tonumber(t[3]) or t[3] and t[3] or nil if tostring(t[1]) then name = doCorrectString(t[1]) if not pokes[name] then doPlayerSendCancel(cid, "Sorry, a pokemon with the name "..name.." doesn't exists.") return true end print(""..name.." ball has been created by "..getPlayerName(cid)..".") end addPokeToPlayer(cid, name, (t[2] and tonumber(t[2]) or 0), gender, btype) return true end Então, ele não tinha nick system, eu adicionei o desse aqui. http://www.xtibia.com/forum/topic/238461-perfect-nick-system-100/ Link para o comentário Compartilhar em outros sites More sharing options...
0 LLossavaro 43 Postado Março 21, 2016 Share Postado Março 21, 2016 (editado) Manda o somefunctions.lua que fica na lib tambem.. Editado Março 21, 2016 por PkNfan Link para o comentário Compartilhar em outros sites More sharing options...
0 Drakopoulos 219 Postado Março 21, 2016 Autor Share Postado Março 21, 2016 Some functions function getVitalityByMaster(cid)if not isCreature(cid) then return 0 endlocal ball = getPlayerSlotItem(cid, 8).uidif not ball or ball <= 1 or not pokes[getItemAttribute(ball, 'poke')] then return true endreturn pokes[getItemAttribute(ball, 'poke')].vitality * (getPlayerLevel(cid) + (getItemAttribute(ball, 'boost') or 0))endfunction onPokeHealthChange(cid, zerar)if not isCreature(cid) then return true endif zerar then doPlayerSendCancel(cid, '#ph#,0,0') endlocal ball = getPlayerSlotItem(cid, 8).uidif not ball or ball <= 1 or not pokes[getItemAttribute(ball, 'poke')] then return true endif #getCreatureSummons(cid) >= 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6local pokemon = getCreatureSummons(cid)[1]local pokelife = (getCreatureHealth(pokemon) / getCreatureMaxHealth(pokemon))doItemSetAttribute(ball, "hp", pokelife)endlocal rd = 1 - (tonumber(getItemAttribute(ball, "hp")))local maxHp = HPperVITsummon * getVitalityByMaster(cid)local hp = maxHp -(maxHp * rd)doPlayerSendCancel(cid, '#ph#,'.. math.floor(hp) ..','.. math.floor(maxHp))endfunction addPokeToPlayer(cid, pokemon, boost, gender, ball, unique) --alterado v1.9 \/ peguem ele todo...local genders = {["male"] = 4,["female"] = 3,[1] = 4,[0] = 3,[4] = 4,[3] = 3,}if not isCreature(cid) then return false endlocal pokemon = doCorrectString(pokemon)if not pokes[pokemon] then return false endlocal GENDER = (gender and genders[gender]) and genders[gender] or getRandomGenderByName(pokemon)local btype = (ball and pokeballs[ball]) and ball or isShinyName(pokemon) and "shinynormal" or "normal"local happy = 250ballid = pokeballs[pokemon].onballcp = pokeballs[pokemon].onif (getPlayerMana(cid) < 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) thenitem = doCreateItemEx(ballid)elseitem = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, ballid, 1)endif not item then return false enddoItemSetAttribute(item, "poke", pokemon)doItemSetAttribute(item, "nome", pokemon)doItemSetAttribute(item, "hp", 1)doItemSetAttribute(item, "happy", happy)doItemSetAttribute(item, "gender", GENDER)doSetItemAttribute(item, "hands", 0)doItemSetAttribute(item, "description", "Contains a "..pokemon..".")doItemSetAttribute(item, "fakedesc", "Contains a "..pokemon..".")doItemSetAttribute(item, "ball", btype)doItemSetAttribute(item, "balls", "on")if boost and tonumber(boost) and tonumber(boost) > 0 and tonumber(boost) <= 50 thendoItemSetAttribute(item, "boost", boost)endif unique thendoItemSetAttribute(item, "unique", getCreatureName(cid))endif (getPlayerMana(cid) >= 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) thendoPlayerSendMailByName(getCreatureName(cid), item, 1)sendMsgToPlayer(cid, 27, "You are already holding six pokemons, so your new pokemon was sent to your depot.")enddoTransformItem(item, ballcp)return trueend---------------------------function unLock(ball)if not ball or ball <= 0 then return false endif getItemAttribute(ball, "lock") and getItemAttribute(ball, "lock") > 0 thenlocal vipTime = getItemAttribute(ball, "lock")local timeNow = os.time()local days = math.ceil((vipTime - timeNow)/(24 * 60 * 60))if days <= 0 thendoItemEraseAttribute(ball, "lock")doItemEraseAttribute(ball, "unique")return trueendendreturn falseendfunction getGuildMembersOnline(GuildId)local players = {}for _, pid in pairs(getPlayersOnline()) doif getPlayerGuildId(pid) == tonumber(GuildId) thentable.insert(players, pid)endend --by Vodkartreturn #players > 0 and players or falseendfunction getGuildMembers(GuildId)local players,query = {},db.getResult("SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " .. GuildId .. ");")if (query:getID() ~= -1) thenrepeattable.insert(players,query:getDataString("name"))until not query:next() --by Vodkartquery:free()endreturn #players > 0 and players or falseend--/////////////////////////////////////////////////////////////////////////////////---function sendMsgToPlayer(cid, tpw, msg) --alterado v1.7 \/\/\/if not isCreature(cid) or not tpw or not msg then return true endreturn doPlayerSendTextMessage(cid, tpw, msg)endfunction getPlayerDesc(cid, thing, TV)if (not isCreature(cid) or not isCreature(thing)) and not TV then return "" endlocal pos = getThingPos(thing)local ocup = youAre[getPlayerGroupId(thing)]local rank = (getPlayerStorageValue(thing, 86228) <= 0) and "a Pokemon Trainer" or lookClans[getPlayerStorageValue(thing, 86228)][getPlayerStorageValue(thing, 862281)]local name = thing == cid and "yourself" or getCreatureName(thing)local art = thing == cid and "You are" or (getPlayerSex(thing) == 0 and "She is" or "He is")local str = {}table.insert(str, "You see "..name..". "..art.." ")if youAre[getPlayerGroupId(thing)] thentable.insert(str, (ocup).." and "..rank.." from ".. getTownName(getPlayerTown(thing))..".")elsetable.insert(str, (rank).." from ".. getTownName(getPlayerTown(thing))..".")endif getPlayerGuildId(thing) > 0 thentable.insert(str, " "..art.." "..getPlayerGuildRank(thing).." from the "..getPlayerGuildName(thing)..".")endif TV thentable.insert(str, " "..art.." watching TV.")endtable.insert(str, ((isPlayer(cid) and youAre[getPlayerGroupId(cid)]) and "\nPosition: [X: "..pos.x.."][Y: "..pos.y.."][Z: "..pos.z.."]" or ""))return table.concat(str)end------------------------------------------------------------------------------------------------- /\/\function getLivePokeballs(cid, container, duel)if not isCreature(cid) then return {} endif not isContainer(container) then return {} endlocal items = {}---local ballSlot = getPlayerSlotItem(cid, 8)if ballSlot.uid ~= 0 thenfor a, b in pairs (pokeballs) doif ballSlot.itemid == b.on or ballSlot.itemid == b.use thenif duel and getPlayerLevel(cid) >= (pokes[getItemAttribute(ballSlot.uid, "poke")].level + getPokeballBoost(ballSlot)) thentable.insert(items, ballSlot.uid) --alterado v1.8elseif not duel thentable.insert(items, ballSlot.uid)endendendend---if isContainer(container) and getContainerSize(container) > 0 thenfor slot=0, (getContainerSize(container)-1) dolocal item = getContainerItem(container, slot)if isContainer(item.uid) thenlocal itemsbag = getPokeballsInContainer(item.uid)for i=0, #itemsbag doif not isInArray(items, itemsbag) thentable.insert(items, itemsbag)endendelseif isPokeball(item.itemid) thenfor a, b in pairs (pokeballs) doif item.itemid == b.on thenif duel and getPlayerLevel(cid) >= (pokes[getItemAttribute(item.uid, "poke")].level + getPokeballBoost(item)) thentable.insert(items, item.uid) --alterado v1.8elseif not duel thentable.insert(items, item.uid)endendendendendendreturn itemsendfunction addItemInFreeBag(container, item, num)if not isContainer(container) or not item then return false endif not num or num <= 0 then num = 1 end --alterado v1.6.1if getContainerSize(container) < getContainerCap(container) thenreturn doAddContainerItem(container, item, num)elsefor slot = 0, (getContainerSize(container)-1) dolocal container2 = getContainerItem(container, slot)if isContainer(container2.uid) and getContainerSize(container2.uid) < getContainerCap(container2.uid) thenreturn doAddContainerItem(container2.uid, item, num)endendendreturn falseend------------------------------------------------------------------------------------------------------function pokeHaveReflect(cid)if not isCreature(cid) then return false endlocal table = getTableMove(cid, "Reflect")if table and table.name then --alterado v1.6return trueendreturn falseend------------------------------------------------------------------------------------------------------function nextHorario(cid)horarioAtual = os.date("%X")horario = string.explode(horarioAtual, ":")for i = 1, #horas dohorarioComparacao = horashorarioComp = string.explode(horarioComparacao, ":")---------------if tonumber(horarioComp[1]) > tonumber(horario[1]) thenreturn horarioComparacaoelseif tonumber(horarioComp[1]) == tonumber(horario[1]) and tonumber(horario[2]) < tonumber(horarioComp[2]) thenreturn horarioComparacaoendendreturn horas[1]endfunction getTimeDiff(timeDiff)local dateFormat = {{'hour', timeDiff / 60 / 60}, --6%{'min', timeDiff / 60 % 60},}local out = {}for k, t in ipairs(dateFormat) dolocal v = math.floor(t[2])if(v > -1) thentable.insert(out, (k < #dateFormat and '' or ' and ') .. v .. '' .. (v <= 1 and t[1] or t[1].."s"))endendif tonumber(dateFormat[1][2]) == 0 and tonumber(dateFormat[2][2]) == 0 thenreturn "seconds"endreturn table.concat(out)endfunction getTimeDiff2(timeDiff)local dateFormat = {{'hour', timeDiff / 60 / 60}, --6%{'min', timeDiff / 60 % 60},{'sec', timeDiff % 60},}local out = {}for k, t in ipairs(dateFormat) dolocal v = math.floor(t[2])if(v > 0) thentable.insert(out, (k < #dateFormat and ' ' or ' and ') .. v .. '' .. (v <= 1 and t[1] or t[1].."s"))endendreturn table.concat(out)endfunction showTimeDiff(timeComp)local b = string.explode(os.date("%X"), ":")local c = string.explode(timeComp, ":")---local d, m, y = os.date("%d"), os.date("%m"), os.date("%Y")local hAtual, mAtual = tonumber(b[1]), tonumber(b[2])local hComp, mComp = tonumber(c[1]), tonumber(c[2])---local t = os.time{year= y, month= m, day= d, hour= hAtual, min= mAtual}local t1 = os.time{year= y, month= m, day= d, hour= hComp, min= mComp}---comparacao = t1-tif hComp < hAtual thenv = os.time{year= y, month= m, day= d, hour= 24, min= 0}v2 = os.time{year= y, month= m, day= d, hour= 0, min= 0}comparacao = (v-t)+(t1-v2)endreturn getTimeDiff(comparacao)end-------------------------------------------------------------------------function cleanCMcds(item)if item ~= 0 thenfor c = 1, 15 do --alterado v1.5local str = "cm_move"..csetCD(item, str, 0)endendendfunction ehNPC(cid) --alterado v1.9return isCreature(cid) and not isPlayer(cid) and not isSummon(cid) and not isMonster(cid)endfunction ehMonstro(cid) --alterado v1.9return cid and cid >= AUTOID_MONSTERS and cid < AUTOID_NPCS and getCreatureMaster(cid) == cidend --alterado v1.9.1 /\function doAppear(cid) --Faz um poke q tava invisivel voltar a ser visivel...if not isCreature(cid) then return true enddoRemoveCondition(cid, CONDITION_INVISIBLE)doRemoveCondition(cid, CONDITION_OUTFIT)doCreatureSetHideHealth(cid, false)endfunction doDisapear(cid) --Faz um pokemon ficar invisivelif not isCreature(cid) then return true enddoCreatureAddCondition(cid, permanentinvisible)doCreatureSetHideHealth(cid, true)doSetCreatureOutfit(cid, {lookType = 814}, -1)endfunction hasTile(pos) --Verifica se tem TILE na pospos.stackpos = 0if getTileThingByPos(pos).itemid >= 1 thenreturn trueendreturn falseendfunction getThingFromPosWithProtect(pos) --Pega uma creatura numa posiçao com proteçoesif hasTile(pos) thenif isCreature(getRecorderCreature(pos)) thenreturn getRecorderCreature(pos)elsepos.stackpos = 253pid = getThingfromPos(pos).uidendelsepid = getThingfromPos({x=1,y=1,z=10,stackpos=253}).uidendreturn pidendfunction getTileThingWithProtect(pos) --Pega um TILE com proteçoesif hasTile(pos) thenpos.stackpos = 0pid = getTileThingByPos(pos)elsepid = getTileThingByPos({x=1,y=1,z=10,stackpos=0})endreturn pidendfunction canAttackOther(cid, pid) --Function q verifica se um poke/player pode atacar outro poke/playerif not isCreature(cid) or not isCreature(pid) then return "Cant" endlocal master1 = isSummon(cid) and getCreatureMaster(cid) or cidlocal master2 = isSummon(pid) and getCreatureMaster(pid) or pid----if getPlayerStorageValue(master1, 6598754) >= 5 and getPlayerStorageValue(master2, 6598754) >= 5 thenif getPlayerStorageValue(master1, 6598754) ~= getPlayerStorageValue(master2, 6598754) thenif isDuelingAgainst(master1, master2) thenif isSummon(cid) and isPlayer(pid) thenreturn "Cant"elsereturn "Can"endendendend---- pvp systemif getPlayerStorageValue(master1, 6598754) >= 1 and getPlayerStorageValue(master2, 6598755) >= 1 thenreturn "Can"endif getPlayerStorageValue(master1, 99667) >= 3 and getPlayerStorageValue(master2, 99667) >= 3 thenreturn "Can"endif getPlayerStorageValue(master1, 6598755) >= 1 and getPlayerStorageValue(master2, 6598754) >= 1 then ---estar em times diferentesreturn "Can"end----if ehMonstro(cid) and ehMonstro(pid) thenreturn "Can"endreturn "Cant"endfunction stopNow(cid, time)if not isCreature(cid) or not tonumber(time) or isSleeping(cid) then return true end--alterado v1.9.1 \/local function podeMover(cid)if isPlayer(cid) thenmayNotMove(cid, false)elseif isCreature(cid) thendoRegainSpeed(cid)endendif isPlayer(cid) then mayNotMove(cid, true) else doChangeSpeed(cid, -getCreatureSpeed(cid)) endaddEvent(podeMover, time, cid)endfunction doReduceStatus(cid, off, def, agi) --reduz os statusif not isCreature(cid) then return true endlocal A = getOffense(cid)local B = getDefense(cid)local C = getSpeed(cid)if off > 0 thensetPlayerStorageValue(cid, 1001, A - off)endif def > 0 thensetPlayerStorageValue(cid, 1002, B - def)endif agi > 0 thensetPlayerStorageValue(cid, 1003, C - agi)if getCreatureSpeed(cid) ~= 0 thendoRegainSpeed(cid)end --alterado v1.5 functions arrumadas...endendfunction doRaiseStatus(cid, off, def, agi, time)if not isCreature(cid) then return true endlocal A = getOffense(cid)local B = getDefense(cid)local C = getSpeed(cid)if off > 0 thensetPlayerStorageValue(cid, 1001, A * off)endif def > 0 thensetPlayerStorageValue(cid, 1002, B * def)endif agi > 0 thensetPlayerStorageValue(cid, 1003, C + agi)if getCreatureSpeed(cid) ~= 0 thendoRegainSpeed(cid)endendlocal D = getOffense(cid)local E = getDefense(cid)local F = getSpeed(cid)---------------------------local G = D - Alocal H = E - Blocal I = F - CaddEvent(doReduceStatus, time*1000, cid, G, H, I)endfunction BackTeam(cid)if isCreature(cid) thenlocal summon = getCreatureSummons(cid) --alterado v1.6for i = 2, #summon dodoSendMagicEffect(getThingPos(summon), 211)doRemoveCreature(summon)endsetPlayerStorageValue(cid, 637501, -1)endendfunction choose(...) -- by mocklocal arg = {...}return arg[math.random(1,#arg)]endfunction AddPremium(cid, days)local function removerPlayer(cid)if isCreature(cid) thendoRemoveCreature(cid)endenddb.executeQuery("UPDATE `accounts` SET `premdays` = '"..days.."' WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos.")addEvent(removerPlayer, 5*1000, cid)return TRUEendfunction isShiny(cid)return isCreature(cid) and string.find(getCreatureName(cid), "Shiny") --alterado v1.9endfunction isShinyName(name)return tostring(name) and string.find(doCorrectString(name), "Shiny") --alterado v1.9endfunction doConvertTypeToStone(type, string)local t = {["fly"] = {heart, "heart"},["flying"] = {heart, "heart"},["normal"] = {heart, "heart"},["fire"] = {fire, "fire"},["grass"] = {leaf, "leaf"},["leaf"] = {leaf, "leaf"},["water"] = {water, "water"},["poison"] = {venom, "venom"},["venom"] = {venom, "venom"},["electric"] = {thunder, "thunder"},["thunder"] = {thunder, "thunder"},["rock"] = {rock, "rock"},["fight"] = {punch, "punch"},["fighting"] = {punch, "punch"},["bug"] = {coccon, "coccon"},["dragon"] = {crystal, "crystal"},["dark"] = {dark, "dark"},["ghost"] = {dark, "dark"},["ground"] = {earth, "earth"},["earth"] = {earth, "earth"},["psychic"] = {enigma, "enigma"},["steel"] = {metal, "metal"},["metal"] = {metal, "metal"},["ice"] = {ice, "ice"},["boost"] = {boostStone, "boost"}, --alterado v1.9}if string thenreturn t[type][2]elsereturn t[type][1]endendfunction doConvertStoneIdToString(stoneID)local t = {[11453] = "Heart Stone",[11441] = "Leaf Stone",[11442] = "Water Stone",[11443] = "Venom Stone",[11444] = "Thunder Stone",[11445] = "Rock Stone",[11446] = "Punch Stone",[11447] = "Fire Stone", --alterado v1.6[11448] = "Cocoon Stone",[11449] = "Crystal Stone",[11450] = "Darkess Stone",[11451] = "Earth Stone",[11452] = "Enigma Stone",[11454] = "Ancient Stone",[12244] = "King's Rock",[12232] = "Metal Stone",[12242] = "Sun Stone",[12401] = "Shiny Fire Stone",[12402] = "Shiny Water Stone",[12403] = "Shiny Leaf Stone",[12404] = "Shiny Heart Stone",[12405] = "Shiny Enigma Stone",[12406] = "Shiny Rock Stone",[12407] = "Shiny Venom Stone",[12408] = "Shiny Ice Stone",[12409] = "Shiny Thunder Stone",[12410] = "Shiny Crystal Stone",[12411] = "Shiny Cocoon Stone",[12412] = "Shiny Darkness Stone",[12413] = "Shiny Punch Stone",[12414] = "Shiny Earth Stone",[boostStone] = "Boost Stone", --alterado v1.9}if t[stoneID] thenreturn t[stoneID]elsereturn ""endendfunction isStone(id)if id >= leaf and id <= ice thenreturn trueendif id == boostStone then --alterado v1.9return trueendif id == 12232 or id == 12242 or id == 12244 or id == 12245 thenreturn trueendif (id >= sfire and id <= searth) or id == 12417 or id == 12419 thenreturn trueendreturn falseendfunction isWater(id)return tonumber(id) and id >= 4820 and id <= 4825 --alterado v1.9endfunction getTopCorpse(position)local pos = positionfor n = 1, 255 dopos.stackpos = nlocal item = getTileThingByPos(pos)if item.itemid >= 2 and (string.find(getItemNameById(item.itemid), "fainted ") or string.find(getItemNameById(item.itemid), "defeated ")) thenreturn getTileThingByPos(pos)endendreturn nullendbpslot = CONST_SLOT_BACKPACKfunction hasPokemon(cid)if not isCreature(cid) then return false endif getCreatureMana(cid) <= 0 then return false endif #getCreatureSummons(cid) >= 1 then return true endlocal item = getPlayerSlotItem(cid, CONST_SLOT_FEET)local bp = getPlayerSlotItem(cid, bpslot)for a, b in pairs (pokeballs) doif item.itemid == b.on or item.itemid == b.use thenreturn true --alterado v1.4endif #getItemsInContainerById(bp.uid, b.on) >= 1 thenreturn trueendendreturn falseendfunction isNpcSummon(cid)return isNpc(getCreatureMaster(cid))endfunction getPokemonHappinessDescription(cid)if not isCreature(cid) then return true endlocal str = {}if getPokemonGender(cid) == SEX_MALE thentable.insert(str, "He")elseif getPokemonGender(cid) == SEX_FEMALE thentable.insert(str, "She")elsetable.insert(str, "It")endif getPokemonHappy(cid) > 181 thentable.insert(str, " is very happy with you!")elseif getPokemonHappy(cid) > 145 and getPokemonHappy(cid) <= 180 thentable.insert(str, " is very happy with you!")elseif getPokemonHappy(cid) > 100 and getPokemonHappy(cid) <= 145 thentable.insert(str, " is happy.")elseif getPokemonHappy(cid) > 70 and getPokemonHappy(cid) <= 100 thentable.insert(str, " is unhappy.")elseif getPokemonHappy(cid) > 40 and getPokemonHappy(cid) <= 70 thentable.insert(str, " is sad.")elseif getPokemonHappy(cid) <= 40 thentable.insert(str, " is mad.")elsetable.insert(str, " is very mad at you!")endreturn table.concat(str)endfunction doSetItemAttribute(item, key, value)doItemSetAttribute(item, key, value)endfunction deTransform(cid, check)if not isCreature(cid) then return true endlocal m = getCreatureMaster(cid)local p = getPlayerSlotItem(m, 8)if getItemAttribute(p.uid, "transTurn") ~= check then return true endsetPlayerStorageValue(cid, 1010, getCreatureName(cid) == "Ditto" and "Ditto" or "Shiny Ditto") --editeddoRemoveCondition(cid, CONDITION_OUTFIT)doSendMagicEffect(getThingPos(cid), 184)doCreatureSay(cid, "DITTO!", TALKTYPE_MONSTER)doItemSetAttribute(p.uid, "transBegin", 0)doItemSetAttribute(p.uid, "transLeft", 0)doItemEraseAttribute(p.uid, "transName")adjustStatus(cid, p.uid, true, true, true)endfunction isTransformed(cid)return isCreature(cid) and not isInArray({-1, "Ditto", "Shiny Ditto"}, getPlayerStorageValue(cid, 1010)) --alterado v1.9endfunction doSendFlareEffect(pos)local random = {28, 29, 79}doSendMagicEffect(pos, random[math.random(1, 3)])endfunction isDay()local a = getWorldTime()if a >= 360 and a < 1080 thenreturn trueendreturn falseendfunction doPlayerSendTextWindow(cid, p1, p2)if not isCreature(cid) then return true endlocal item = 460local text = ""if type(p1) == "string" thendoShowTextDialog(cid, item, p1)elsedoShowTextDialog(cid, p1, p2)endendfunction getClockString(tw)local a = getWorldTime()local b = a / 60local hours = math.floor(b)local minut = a - (60 * hours)if not tw thenif hours < 10 thenhours = "0"..hours..""endif minut < 10 thenminut = "0"..minut..""endreturn hours..":"..minutelselocal sm = "a.m"if hours >= 12 thenhours = hours - 12sm = "p.m"endif hours < 10 thenhours = "0"..hours..""endif minut < 10 thenminut = "0"..minut..""endreturn hours..":"..minut.." "..smendendfunction doCorrectPokemonName(poke)return doCorrectString(poke)endfunction doCorrectString(str)local name = str:explode(" ") --alterado v1.9local final = {}for _, s in ipairs(name) dotable.insert(final, s:sub(1, 1):upper()..s:sub(2, #s):lower())endreturn table.concat(final, (name[2] and " " or ""))endfunction getHappinessRate(cid)if not isCreature(cid) then return 1 endif getPokemonHappy(cid) <= 0 then return 1 endif getPokemonHappy(cid) > 145 and getPokemonHappy(cid) <= 180 thenreturn happinessRate[5].rateelseif getPokemonHappy(cid) > 100 and getPokemonHappy(cid) <= 145 thenreturn happinessRate[4].rateelseif getPokemonHappy(cid) > 70 and getPokemonHappy(cid) <= 100 thenreturn happinessRate[3].rateelseif getPokemonHappy(cid) > 40 and getPokemonHappy(cid) <= 70 thenreturn happinessRate[2].rateelsereturn happinessRate[1].rateendreturn 1endfunction doBodyPush(cid, target, go, pos)if not isCreature(cid) or not isCreature(target) thendoRegainSpeed(cid)doRegainSpeed(target)return trueendif go thenlocal a = getThingPos(cid)doChangeSpeed(cid, -getCreatureSpeed(cid))if not isPlayer(target) thendoChangeSpeed(target, -getCreatureSpeed(target))enddoChangeSpeed(cid, 800)doTeleportThing(cid, getThingPos(target))doChangeSpeed(cid, -800)addEvent(doBodyPush, 350, cid, target, false, a)elsedoChangeSpeed(cid, 800)doTeleportThing(cid, pos)doRegainSpeed(cid)doRegainSpeed(target)endendfunction doReturnPokemon(cid, pokemon, pokeball, effect, hideeffects, blockevo)--////////////////////////////////////////////////////////////////////////////////////////----checkDuel(cid) --alterado v1.6 duel system--////////////////////////////////////////////////////////////////////////////////////////--if getPlayerStorageValue(cid, 52480) >= 1 and getPlayerStorageValue(cid, 52484) ~= 10 thenreturn sendMsgToPlayer(cid, 27, "You can't do that while the duel don't begins!") --alterado v1.8end--////////////////////////////////////////////////////////////////////////////////////////--if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 thenBackTeam(cid)endend-----------------local edit = trueif not pokeball thenpokeball = getPlayerSlotItem(cid, 8)endif blockevo thenedit = falsedoPlayerSendCancel(cid, "Your pokemon couldn't evolve due to server mistakes, please wait until we fix the problem.")endlocal happy = getPlayerStorageValue(pokemon, 1008)local hunger = getPlayerStorageValue(pokemon, 1009)local pokelife = (getCreatureHealth(pokemon) / getCreatureMaxHealth(pokemon))if edit thendoItemSetAttribute(pokeball.uid, "happy", happy)doItemSetAttribute(pokeball.uid, "hunger", hunger)doItemSetAttribute(pokeball.uid, "hp", pokelife)endif hideeffects thendoRemoveCreature(pokemon)return trueendlocal pokename = getPokeName(pokemon)local mbk = gobackmsgs[math.random(1, #gobackmsgs)].back:gsub("doka", pokename)if getCreatureCondition(cid, CONDITION_INFIGHT) thenif isCreature(getCreatureTarget(cid)) thendoItemSetAttribute(pokeball.uid, "happy", happy - 5)elsedoItemSetAttribute(pokeball.uid, "happy", happy - 2)endenddoTransformItem(pokeball.uid, pokeball.itemid-1)doCreatureSay(cid, mbk, TALKTYPE_SAY)doSendMagicEffect(getCreaturePosition(pokemon), effect)doRemoveCreature(pokemon)if not pokeAddons[getPokemonName(pokemon)] thensetPlayerStorageValue(cid, 85091, 1)elselocal oldStoragess = string.explode(getPlayerStorageValue(cid, storages.addonSystem3), ",")for i = 1, #oldStoragess dofor t1, t2 in pairs(pokeStrings) doif i >= 1 and oldStoragess == t1 thensetPlayerStorageValue(cid, t2, 0)setPlayerStorageValue(cid, pokeAddons[getPokemonName(pokemon)].default, 0)endendendendif not pokeAddons[getPokemonName(pokemon)] thenelsefor id1, id2 in pairs(itensAddons) dolocal a = {"addon", "addon2", "addon3", "addon4", "addon5", "addon6", "addon7"}for i = 1, #a doif getItemAttribute(getPlayerSlotItem(cid, 8).uid, a) == id2.addon thensetPlayerStorageValue(cid, id2.stor, 0)setPlayerStorageValue(cid, pokeAddons[getPokemonName(pokemon)].default, 0)elsesetPlayerStorageValue(cid, pokeAddons[getPokemonName(pokemon)].default, 0)endendendenddoRemoveCreature(pokemon)setPlayerStorageValue(cid, 130390, 1)setPlayerStorageValue(cid, 130389, 1)setPlayerStorageValue(cid, 15024, -1)local oldStorages = string.explode(getPlayerStorageValue(cid, storages.addonSystem), ",")for i = 1, #oldStorages dofor t1, t2 in pairs(stringStorages) doif oldStorages == t1 thensetPlayerStorageValue(cid, t2, 1)endendendunLock(pokeball.uid) --alterado v1.8if useOTClient thendoPlayerSendCancel(cid, '12//,hide') --alterado v1.7endif useKpdoDlls thendoUpdateMoves(cid)endendlocal EFFECTS = {--[OutfitID] = {Effect}["Magmar"] = 35, --alterado v1.5["Jynx"] = 17,["Shiny Jynx"] = 17,["Piloswine"] = 205, --alterado v1.8["Swinub"] = 205,}function doGoPokemon(cid, item)if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 thenreturn trueend---------------------------------------------------------------local ballName = getItemAttribute(item.uid, "poke")btype = getPokeballType(item.itemid)local effect = pokeballs[btype].effectif not effect theneffect = 21end-----------------------------------------------------------------if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid thendoPlayerSendCancel(cid, "You must put your pokeball in the correct place!")return TRUEendlocal thishp = getItemAttribute(item.uid, "hp")if thishp <= 0 thenif isInArray(pokeballs[btype].all, item.itemid) thendoTransformItem(item.uid, pokeballs[btype].off)doItemSetAttribute(item.uid, "hp", 0)doPlayerSendCancel(cid, "This pokemon is fainted.")return trueendendlocal pokemon = getItemAttribute(item.uid, "poke")if not pokes[pokemon] thenreturn trueend----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto ---------------------------------if not isInArray({5, 6}, getPlayerGroupId(cid)) thenlocal balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) --alterado v1.9 \/local low = {}local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"}if #balls >= 1 thenfor _, uid in ipairs(balls) dolocal nome = getItemAttribute(uid, "poke")if not isInArray(lowPokes, pokemon) and nome == pokemon thenreturn doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!")elseif nome == pokemon thentable.insert(low, nome)endendendendif #low >= 3 thenreturn doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!")endend---------------------------------------------------------------------------------------------------------------------------------------------------local x = pokes[pokemon]local boosts = getItemAttribute(item.uid, "boost") or 0if getPlayerLevel(cid) < (x.level + boosts) then --alterado v1.8 \/doPlayerSendCancel(cid, "You need level "..(x.level + boosts).." to use this pokemon.")return trueend--------------------------------------------------------------------------------------shinysClan = {["Shiny Fearow"] = {4, "Wingeon"},["Shiny Flareon"] = {1, "Volcanic"},["Shiny Vaporeon"] = {2, "Seavel"},["Shiny Jolteon"] = {9, "Raibolt"},["Shiny Hypno"] = {7, "Psycraft"},["Shiny Golem"] = {3, "Orebound"},["Shiny Vileplume"] = {8, "Naturia"},["Shiny Nidoking"] = {5, "Malefic"},["Shiny Hitmontop"] = {6, "Gardestrike"},}if shinysClan[pokemon] and (getPlayerGroupId(cid) < 4 or getPlayerGroupId(cid) > 6) then --alterado v1.9if getPlayerStorageValue(cid, 86228) ~= shinysClan[pokemon][1] thendoPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!")return trueelseif getPlayerStorageValue(cid, 862281) ~= 5 thendoPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!")return trueendend--------------------------------------------------------------------------------------doSummonMonster(cid, pokemon)local pk = getCreatureSummons(cid)[1]if not isCreature(pk) then return true end------------------------passiva hitmonchan------------------------------if isSummon(pk) then --alterado v1.8 \/if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" thenif not getItemAttribute(item.uid, "hands") thendoSetItemAttribute(item.uid, "hands", 0)endlocal hands = getItemAttribute(item.uid, "hands")doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1)endend----------------------------------------------------------------------------------movement magmar, jynx-------------if EFFECTS[getCreatureName(pk)] thenmarkPosEff(pk, getThingPos(pk))sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk))end--------------------------------------------------------------------------if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) enddoCreatureSetLookDir(pk, 2)adjustStatus(pk, item.uid, true, true, true)doAddPokemonInOwnList(cid, pokemon)doTransformItem(item.uid, item.itemid+1)local pokename = getPokeName(pk) --alterado v1.7local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)doCreatureSay(cid, mgo, TALKTYPE_SAY)doSendMagicEffect(getCreaturePosition(pk), effect)unLock(item.uid) --alterado v1.8if useKpdoDlls thendoUpdateMoves(cid)endendfunction doRegainSpeed(cid) --alterado v1.9 \/if not isCreature(cid) then return true endlocal speed = PlayerSpeedif isMonster(cid) thenspeed = getSpeed(cid)elseif isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) thenspeed = 200*getPlayerGroupId(cid)enddoChangeSpeed(cid, -getCreatureSpeed(cid))if getCreatureCondition(cid, CONDITION_PARALYZE) == true thendoRemoveCondition(cid, CONDITION_PARALYZE)addEvent(doAddCondition, 10, cid, paralizeArea2)enddoChangeSpeed(cid, speed)return speedendfunction isPosEqualPos(pos1, pos2, checkstackpos)if pos1.x ~= pos2.x or pos1.y ~= pos2.y and pos1.z ~= pos2.z thenreturn falseendif checkstackpos and pos1.stackpos and pos2.stackpos and pos1.stackpos ~= pos2.stackpos thenreturn falseendreturn trueendfunction getRandomGenderByName(name)local rate = newpokedex[name]if not rate then return 0 endif getCreatureName(name) == "Nidoran Male" or "Nidorino" thengender = 4endif getCreatureName(name) == "Nidoran Female" or "Nidorina" thengender = 3endrate = rate.genderif rate == 0 thengender = 3elseif rate == 1000 thengender = 4elseif rate == -1 thengender = 0elseif math.random(1, 1000) <= rate thengender = 4elsegender = 3endreturn genderendfunction getRecorderPlayer(pos, cid)local ret = 0if cid and isPosEqual(getThingPos(cid), pos) then --alterado v1.9return cidendlocal s = {}s.x = pos.xs.y = pos.ys.z = pos.zfor a = 0, 255 dos.stackpos = alocal b = getTileThingByPos(s).uidif b > 1 and isPlayer(b) and getCreatureOutfit(b).lookType ~= 814 thenret = bendendreturn retendfunction getRecorderCreature(pos, cid)local ret = 0if cid and isPosEqual(getThingPos(cid), pos) then --alterado v1.9return cidendlocal s = {}s.x = pos.xs.y = pos.ys.z = pos.zfor a = 0, 255 dos.stackpos = alocal b = getTileThingByPos(s).uidif b > 1 and isCreature(b) and getCreatureOutfit(b).lookType ~= 814 thenret = bendendreturn retendfunction doCreatureSetOutfit(cid, outfit, time)doSetCreatureOutfit(cid, outfit, time)endfunction doMagicalFlower(cid, away)if not isCreature(cid) then return true endfor x = -3, 3 dofor y = -3, 3 dolocal a = getThingPos(cid)a.x = a.x + xa.y = a.y + yif away thendoSendDistanceShoot(a, getThingPos(cid), 21)elsedoSendDistanceShoot(getThingPos(cid), a, 21)endendendendfunction isItemPokeball(item) --alterado v1.9 \/if not item then return false endfor a, b in pairs (pokeballs) doif isInArray(b.all, item) then return true endendreturn falseendfunction isPokeball(item)return isItemPokeball(item)end --/\function getPokeballType(id)for a, b in pairs (pokeballs) doif isInArray(b.all, id) thenreturn aendendreturn "none"endrandomdiagonaldir = {[NORTHEAST] = {NORTH, EAST},[sOUTHEAST] = {SOUTH, EAST},[NORTHWEST] = {NORTH, WEST},[sOUTHWEST] = {SOUTH, WEST}}function doFaceOpposite(cid)local a = getCreatureLookDir(cid)local d = {[NORTH] = SOUTH,[sOUTH] = NORTH,[EAST] = WEST,[WEST] = EAST,[NORTHEAST] = SOUTHWEST,[NORTHWEST] = SOUTHEAST,[sOUTHEAST] = NORTHWEST,[sOUTHWEST] = NORTHEAST}doCreatureSetLookDir(cid, d[a])endfunction doFaceRandom(cid)local a = getCreatureLookDir(cid)local d = {[NORTH] = {SOUTH, WEST, EAST},[sOUTH] = {NORTH, WEST, EAST},[WEST] = {SOUTH, NORTH, EAST},[EAST] = {SOUTH, WEST, NORTH}}doChangeSpeed(cid, 1)doCreatureSetLookDir(cid, d[a][math.random(1, 3)])doChangeSpeed(cid, -1)endfunction getFaceOpposite(dir)local d = {[NORTH] = SOUTH,[sOUTH] = NORTH,[EAST] = WEST,[WEST] = EAST,[NORTHEAST] = SOUTHWEST,[NORTHWEST] = SOUTHEAST,[sOUTHEAST] = NORTHWEST,[sOUTHWEST] = NORTHEAST}return d[dir]endfunction getResistance(cid, combat)if isPlayer(cid) then return false endlocal poketype1 = pokes[getCreatureName(cid)].typelocal poketype2 = pokes[getCreatureName(cid)].type2local multiplier = 1if effectiveness[combat].super and isInArray(effectiveness[combat].super, poketype1) thenmultiplier = multiplier * 2endif poketype2 and effectiveness[combat].super and isInArray(effectiveness[combat].super, poketype2) thenmultiplier = multiplier * 2endif effectiveness[combat].weak and isInArray(effectiveness[combat].weak, poketype1) thenmultiplier = multiplier * 0.5endif poketype2 and effectiveness[combat].weak and isInArray(effectiveness[combat].weak, poketype2) thenmultiplier = multiplier * 0.5endif effectiveness[combat].non and isInArray(effectiveness[combat].non, poketype1) thenmultiplier = multiplier * 0endif poketype2 and effectiveness[combat].non and isInArray(effectiveness[combat].non, poketype2) thenmultiplier = multiplier * 0endif multiplier == 0.25 thenmultiplier = 0.5elseif multiplier == 4 thenmultiplier = 2endreturn multiplierendfunction getCreatureDirectionToTarget(cid, target, ranged)if not isCreature(cid) then return true endif not isCreature(target) then return getCreatureLookDir(cid) endlocal dirs = {[NORTHEAST] = {NORTH, EAST},[sOUTHEAST] = {SOUTH, EAST},[NORTHWEST] = {NORTH, WEST},[sOUTHWEST] = {SOUTH, WEST}}local x = getDirectionTo(getThingPos(cid), getThingPos(target), false)if x <= 3 then return xelselocal xdistance = math.abs(getThingPos(cid).x - getThingPos(target).x)local ydistance = math.abs(getThingPos(cid).y - getThingPos(target).y)if xdistance > ydistance thenreturn dirs[x][2]elseif ydistance > xdistance thenreturn dirs[x][1]elseif isInArray(dirs[x], getCreatureLookDir(cid)) thenreturn getCreatureLookDir(cid)elsereturn dirs[x][math.random(1, 2)]endendendfunction getSomeoneDescription(cid)if isPlayer(cid) then return getPlayerNameDescription(cid) endreturn getMonsterInfo(getCreatureName(cid)).descriptionendfunction isGhostPokemon(cid)if not isCreature(cid) then return false endlocal ghosts = {"Gastly", "Haunter", "Gengar", "Shiny Gengar", "Misdreavus", "Shiny Abra"}return isInArray(ghosts, getCreatureName(cid))endfunction updateGhostWalk(cid)if not isCreature(cid) then return false endlocal pos = getThingPos(cid)pos.x = pos.x + 1pos.y = pos.y + 1local ret = getThingPos(cid)doTeleportThing(cid, pos, false)doTeleportThing(cid, ret, false)return trueendfunction doRemoveElementFromTable(t, e)local ret = {}for a = 1, #t doif t[a] ~= e thentable.insert(ret, t[a])endendreturn retendfunction doFaceCreature(sid, pos)if not isCreature(sid) then return true endif getThingPos(sid).x == pos.x and getThingPos(sid).y == pos.y then return true endlocal ret = 0local ld = getCreatureLookDir(sid)local dir = getDirectionTo(getThingPos(sid), pos)local al = {[NORTHEAST] = {NORTH, EAST},[NORTHWEST] = {NORTH, WEST},[sOUTHEAST] = {SOUTH, EAST},[sOUTHWEST] = {SOUTH, WEST}}if dir >= 4 and isInArray(al[dir], ld) then return true enddoChangeSpeed(sid, 1)if dir == 4 thenret = math.random(2, 3)elseif dir == 5 thenret = math.random(1, 2)elseif dir == 6 thenlocal dirs = {0, 3}ret = dirs[math.random(1, 2)]elseif dir == 7 thenret = math.random(0, 1)elseret = getDirectionTo(getThingPos(sid), pos)enddoCreatureSetLookDir(sid, ret)doChangeSpeed(sid, -1)return trueendfunction doCreatureAddCondition(cid, condition)if not isCreature(cid) then return true enddoAddCondition(cid, condition)endfunction doCreatureRemoveCondition(cid, condition)if not isCreature(cid) then return true enddoRemoveCondition(cid, condition)endfunction setCD(item, tipo, tempo)if not tempo or not tonumber(tempo) thendoItemEraseAttribute(item, tipo)return trueenddoItemSetAttribute(item, tipo, "cd:"..(tempo + os.time()).."")return tempo + os.time()endfunction getCD(item, tipo, limite)if not getItemAttribute(item, tipo) thenreturn 0endlocal string = getItemAttribute(item, tipo):gsub("cd:", "")local number = tonumber(string) - os.time()if number <= 0 thenreturn 0endif limite and limite < number thenreturn 0endreturn numberendfunction doSendMoveEffect(cid, target, effect)if not isCreature(cid) or not isCreature(target) then return true enddoSendDistanceShoot(getThingPos(cid), getThingPos(target), effect)return trueendfunction doSetItemActionId(uid, actionid)doItemSetAttribute(uid, "aid", actionid)return trueendfunction threeNumbers(number)if number <= 9 thenreturn "00"..number..""elseif number <= 99 thenreturn "0"..number..""endreturn ""..number..""endfunction isBr(cid)if getPlayerStorageValue(cid, 105505) ~= -1 thenreturn trueendreturn falseendfunction isBeingUsed(ball)if not ball then return false endfor a, b in pairs (pokeballs) do --alterado v1.9if b.use == ball then return true endendreturn falseendfunction doRemoveTile(pos)-- Script by mockpos.stackpos = 0local sqm = getTileThingByPos(pos)doRemoveItem(sqm.uid,1)endfunction doCreateTile(id,pos) -- By mockdoAreaCombatHealth(0,0,pos,0,0,0,CONST_ME_NONE)doCreateItem(id,1,pos)endfunction hasSqm(pos)local f = getTileThingByPos(pos)if f.itemid ~= 0 and f.itemid ~= 1 thenreturn trueendreturn falseendfunction getPosDirs(p, dir) -- By MatheusMkaloreturn dir == 1 and {x=p.x-1, y=p.y, z=p.z} or dir == 2 and {x=p.x-1, y=p.y+1, z=p.z} or dir == 3 and {x=p.x, y=p.y+1, z=p.z} or dir == 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x+1, y=p.y, z=p.z} or dir == 6 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 7 and {x=p.x, y=p.y-1, z=p.z} or dir == 8 and {x=p.x-1, y=p.y-1, z=p.z}endfunction canWalkOnPos(pos, creature, pz, water, sqm, proj)if not pos then return false endif not pos.x then return false endif getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid <= 1 and sqm then return false endif getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 919 then return false endif isInArray({4820, 4821, 4822, 4823, 4824, 4825}, getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid) and water then return false endif getTopCreature(pos).uid > 0 and creature then return false endif getTileInfo(pos).protection and pz then return false endlocal n = not proj and 3 or 2 --alterado v1.6for i = 0, 255 dopos.stackpos = ilocal tile = getTileThingByPos(pos)if tile.itemid ~= 0 and i ~= 253 and not isCreature(tile.uid) then --editedif hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) thenreturn falseendendendreturn trueendfunction canWalkOnPos2(pos, creature, pz, water, sqm, proj) --alterado v1.6if not pos then return false endif not pos.x then return false endif getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid <= 1 and sqm then return false endif getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 919 then return false endif isInArray({4820, 4821, 4822, 4823, 4824, 4825}, getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid) and water then return false endif getTopCreature(pos).uid > 0 and creature then return false endif getTileInfo(pos).protection and pz then return false end--[[local n = not proj and 3 or 2for i = 0, 255 dopos.stackpos = i --edited pra retirar um bug.. ;xlocal tile = getTileThingByPos(pos)if tile.itemid ~= 0 and i ~= 253 and not isCreature(tile.uid) then --editedif hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) thenreturn falseendendend ]]return trueendfunction getFreeTile(pos, cid)if canWalkOnPos(pos, true, false, true, true, false) thenreturn posendlocal positions = {}for a = 0, 7 doif canWalkOnPos(getPosByDir(pos, a), true, false, true, true, false) thentable.insert(positions, pos)endendif #positions >= 1 thenif isCreature(cid) thenlocal range = 1000local ret = getThingPos(cid)for b = 1, #positions doif getDistanceBetween(getThingPos(cid), positions) < range thenret = positionsrange = getDistanceBetween(getThingPos(cid), positions)endendreturn retelsereturn positions[math.random(#positions)]endendreturn getThingPos(cid)endfunction isWalkable(pos, creature, proj, pz, water)-- by Nordif getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false endif isWater(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid) and water then return false endif getTopCreature(pos).uid > 0 and creature then return false endif getTileInfo(pos).protection and pz then return false, true endlocal n = not proj and 3 or 2for i = 0, 255 dopos.stackpos = ilocal tile = getTileThingByPos(pos)if tile.itemid ~= 0 and not isCreature(tile.uid) thenif hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) thenreturn falseendendendreturn trueendfunction isPlayerSummon(cid, uid)return getCreatureMaster(uid) == cid --alterado v1.9endfunction isSummon(sid)return isCreature(sid) and getCreatureMaster(sid) ~= sid and isPlayer(getCreatureMaster(sid)) --alterado v1.9endfunction getItemsInContainerById(container, itemid) -- Function By Kydrailocal items = {}if isContainer(container) and getContainerSize(container) > 0 thenfor slot=0, (getContainerSize(container)-1) dolocal item = getContainerItem(container, slot)if isContainer(item.uid) thenlocal itemsbag = getItemsInContainerById(item.uid, itemid)for i=0, #itemsbag dotable.insert(items, itemsbag)endelseif itemid == item.itemid thentable.insert(items, item.uid)endendendendreturn itemsendfunction getPokeballsInContainer(container) -- Function By Kydraiif not isContainer(container) then return {} endlocal items = {}if isContainer(container) and getContainerSize(container) > 0 thenfor slot=0, (getContainerSize(container)-1) dolocal item = getContainerItem(container, slot)if isContainer(item.uid) thenlocal itemsbag = getPokeballsInContainer(item.uid)for i=0, #itemsbag dotable.insert(items, itemsbag)endelseif isPokeball(item.itemid) thentable.insert(items, item.uid)endendendreturn itemsendfunction getItensUniquesInContainer(container) --alterado v1.6if not isContainer(container) then return {} endlocal items = {}if isContainer(container) and getContainerSize(container) > 0 thenfor slot=0, (getContainerSize(container)-1) dolocal item = getContainerItem(container, slot)if isContainer(item.uid) thenlocal itemsbag = getItensUniquesInContainer(item.uid)for i=0, #itemsbag dotable.insert(items, itemsbag)endelseif getItemAttribute(item.uid, "unique") thentable.insert(items, item)endendendreturn itemsendfunction hasSpaceInContainer(container) --alterado v1.6if not isContainer(container) then return false endif getContainerSize(container) < getContainerCap(container) then return true endfor slot = 0, (getContainerSize(container)-1) dolocal item = getContainerItem(container, slot)if isContainer(item.uid) thenif hasSpaceInContainer(item.uid) thenreturn trueendendendreturn falseendfunction doPlayerAddItemStacking(cid, itemid, quant) -- by mkalolocal item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid)local piles = 0if #item > 0 thenfor i,x in pairs(item) doif getThing(x).type < 100 thenlocal it = getThing(x)doTransformItem(it.uid, itemid, it.type+quant)if it.type+quant > 100 thendoPlayerAddItem(cid, itemid, it.type+quant-100)endelsepiles = piles+1endendelsereturn doPlayerAddItem(cid, itemid, quant)endif piles == #item thendoPlayerAddItem(cid, itemid, quant)endendfunction isPlayerOnline(uid)return isInArray(getPlayersOnline(), uid)endfunction doRegenerateWithY(cid, sid)if isPlayerOnline(cid) thenlocal ball = getPlayerSlotItem(cid, 8) or getPlayerSlotItem(getCreatureMaster(cid), 8)local Tiers = {[1] = {bonus = Regen1},[2] = {bonus = Regen2},[3] = {bonus = Regen3},[4] = {bonus = Regen4},[5] = {bonus = Regen5},[6] = {bonus = Regen6},[7] = {bonus = Regen7},}if isPlayer(cid) and #getCreatureSummons(cid) > 0 thenlocal Tier = getItemAttribute(ball.uid, "heldy")if Tier and Tier > 0 and Tier < 8 thenif not getCreatureCondition(cid, CONDITION_INFIGHT) thenif getCreatureHealth(sid) < getCreatureMaxHealth(sid) thenaddEvent(function() doCreatureAddHealth(sid,Tiers[Tier].bonus) doSendAnimatedText(getThingPos(sid), "+ "..Tiers[Tier].bonus, 30) end, 0)endaddEvent(doRegenerateWithY, 1000, cid, sid)elseaddEvent(doRegenerateWithY, 1000, cid, sid)endendendendendfunction doCureWithY(cid, sid)if isPlayerOnline(cid) thenlocal ball = getPlayerSlotItem(cid, 8) or getPlayerSlotItem(getCreatureMaster(cid), 8)local Tiers = {[8] = {chance = Cure1},[9] = {chance = Cure2},[10] = {chance = Cure3},[11] = {chance = Cure4},[12] = {chance = Cure5},[13] = {chance = Cure6},[14] = {chance = Cure7},}local Tier = getItemAttribute(ball.uid, "heldy")if isPlayer(cid) and #getCreatureSummons(cid) > 0 and Tier thenif Tier > 7 and Tier < 15 thenif math.random(1,100) <= Tiers[Tier].chance thendoCureStatus(sid, "all")doSendMagicEffect(getThingPosWithDebug(sid), 14)endaddEvent(doCureWithY, 1000, cid, sid)endendendend Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Drakopoulos 219
Tou com um projeto de poketibia e recentemente está me aparecendo esses erros na distro mas não afeta em nada no jogo (creio eu).
Esse erro da quando o pokemon retorna:
http://i.imgur.com/p0mVfCB.png
Esse ao deslogar:
http://i.imgur.com/yqycgs3.png
E esse ao criar um pokemon:
http://i.imgur.com/Uh8bkI7.png
Como disse em cima, ele não afeta nada ingame mas fica spammando na distro e poderá causar lag. Se precisar de algum script eu passo e tenho a source tbm se precisar.
~up
~up, ninguem?..
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados