Postado Janeiro 19, 2018 7 anos Olá, obrigado pela atenção!!! Eu estou usando atualmente o HUATSON OT (DXP com lvl) e eu gostaria de saber como faço pro pokemon evoluir quando ele chegar em um certo level ??? Meu evolution.lua Spoiler local special = specialevo --alterado v1.9 \/ peguem ele todo! local types = { [leaf] = {"Bulbasaur", "Ivysaur", "Oddish", "Gloom", "Bellsprout", "Weepinbell", "Exeggcute", "Chikorita", "Bayleef", "Hoppip", "Skiploom", "Sunkern"}, [water] = {"Squirtle", "Wartortle", "Horsea", "Goldeen", "Magikarp", "Psyduck", "Poliwag", "Poliwhirl", "Tentacool", "Krabby", "Staryu", "Omanyte", "Eevee", "Totodile", "Croconow", "Chinchou", "Marill", "Wooper", "Slowpoke", "Remoraid", "Seadra"}, [venom] = {"Zubat", "Ekans", "Nidoran male", "Nidoran female", "Nidorino", "Nidorina", "Gloom", "Venonat", "Tentacool", "Grimer", "Koffing", "Spinarak", "Golbat"}, [thunder] = {"Magnemite", "Pikachu", "Voltorb", "Eevee", "Chinchou", "Pichu", "Mareep", "Flaaffy", "Elekid"}, [rock] = {"Geodude", "Graveler", "Rhyhorn", "Kabuto", "Slugma", "Pupitar"}, [punch] = {"Machop", "Machoke", "Mankey", "Poliwhirl", "Tyrogue"}, [fire] = {"Charmander", "Charmeleon", "Vulpix", "Growlithe", "Ponyta", "Eevee", "Cyndaquil", "Quilava", "Slugma", "Houndour", "Magby"}, [coccon] = {"Caterpie", "Metapod", "Weedle", "Kakuna", "Paras", "Venonat", "Scyther", "Ledyba", "Spinarak", "Pineco"}, [crystal] = {"Dratini", "Dragonair", "Magikarp", "Omanyte", "Kabuto", "Seadra"}, [dark] = {"Gastly", "Haunter", "Eevee", "Houndour", "Pupitar"}, [earth] = {"Cubone", "Sandshrew", "Nidorino", "Nidorina", "Diglett", "Onix", "Rhyhorn", "Wooper", "Swinub", "Phanpy", "Larvitar"}, [enigma] = {"Abra", "Kadabra", "Psyduck", "Slowpoke", "Drowzee", "Eevee", "Natu", "Smoochum"}, [heart] = {"Rattata", "Pidgey", "Pidgeotto", "Spearow", "Clefairy", "Jigglypuff", "Meowth", "Doduo", "Porygon", "Chansey", "Sentret", "Hoothoot", "Cleffa", "Igglybuff", "Togepi", "Snubull", "Teddiursa"}, [ice] = {"Seel", "Shellder", "Smoochum", "Swinub"}, [metal] = {"Onix", "Scyther"}, [ancient] = {"Sunkern", "Gloom", "Slowpoke", "Poliwhirl", "Seadra", "Porygon"}, [sfire] = {"Shiny Charmander", "Shiny Charmeleon", "Shiny Magmortar", "Shiny Vulpix", "Shiny Growlithe", "Shiny Ponyta", "Shiny Eevee"}, [swater] = {"Shiny Squirtle", "Shiny Wartortle", "Shiny Horsea", "Shiny Goldeen", "Shiny Magikarp", "Shiny Psyduck", "Shiny Poliwag", "Shiny Poliwhirl", "Shiny Tentacool", "Shiny Krabby", "Shiny Staryu", "Shiny Omanyte", "Shiny Eevee"}, [sleaf] = {"Shiny Bulbasaur", "Shiny Ivysaur", "Shiny Oddish", "Shiny Gloom", "Shiny Bellsprout", "Shiny Weepinbell", "Shiny Exeggcute"}, [sheart] = {"Shiny Rattata", "Shiny Pidgey", "Shiny Pidgeotto", "Shiny Spearow", "Shiny Clefairy", "Shiny Jigglypuff", "Shiny Meowth", "Shiny Doduo", "Shiny Porygon", "Shiny Chansey"}, [senigma] = {"Shiny Abra", "Shiny Kadabra", "Shiny Psyduck", "Shiny Slowpoke", "Shiny Drowzee", "Shiny Eevee"}, [srock] = {"Shiny Geodude", "Shiny Graveler", "Shiny Rhyhorn", "Shiny Kabuto"}, [svenom] = {"Shiny Zubat", "Shiny Ekans", "Shiny Nidoran male", "Shiny Nidoran female", "Shiny Nidorino", "Shiny Nidorina", "Shiny Gloom", "Shiny Venonat", "Shiny Tentacool", "Shiny Grimer", "Shiny Koffing"}, [sice] = {"Shiny Seel", "Shiny Shellder"}, [sthunder] = {"Shiny Magnemite", "Shiny Pikachu", "Shiny electivire", "Shiny Voltorb", "Shiny Eevee"}, [scrystal] = {"Shiny Dratini", "Shiny Dragonair", "Shiny Magikarp", "Shiny Omanyte", "Shiny Kabuto"}, [scoccon] = {"Shiny Caterpie", "Shiny Metapod", "Shiny Weedle", "Shiny Kakuna", "Shiny Paras", "Shiny Venonat", "Shiny Scyther"}, [sdarkness] = {"Shiny Gastly", "Shiny Haunter", "Shiny Eevee"}, [spunch] = {"Shiny Machop", "Shiny Machoke", "Shiny Mankey", "Shiny Poliwhirl"}, [searth] = {"Shiny Cubone", "Shiny Sandshrew", "Shiny Nidorino", "Shiny Nidorina", "Shiny Diglett", "Shiny Onix", "Shiny Rhyhorn"} } local specEvos = { --alterado v1.9 \/ ["Eevee"] = { [thunder] = "Jolteon", [water] = "Vaporeon", [fire] = "Flareon", [enigma] = "Espeon", [dark] = "Umbreon", [ice] = "Glaceon", [leaf] = "Leafeon", [heart] = "Sylveon", }, } function onUse(cid, item, frompos, item2, topos) local pokeball = getPlayerSlotItem(cid, 8) if not isMonster(item2.uid) or not isSummon(item2.uid) then return true end if #getCreatureSummons(cid) > 1 then return true --alterado v1.9 end if isInArray({"ditto", "shiny ditto"}, getItemAttribute(pokeball.uid, "poke"):lower()) then doSendMsg(cid, "Ditto não tem evolução.") return true end if getCreatureCondition(item2.uid, CONDITION_INVISIBLE) then return true end local pevo = poevo[getCreatureName(item2.uid)] if not isInArray(specialevo, getCreatureName(item2.uid)) then if not pevo then doPlayerSendCancel(cid, "This pokemon can't evolve.") return true end if not isPlayer(getCreatureMaster(item2.uid)) or getCreatureMaster(item2.uid) ~= cid then doPlayerSendCancel(cid, "You can only use stones on pokemons you own.") return true end if pevo.stoneid ~= item.itemid and pevo.stoneid2 ~= item.itemid then doPlayerSendCancel(cid, "This isn't the needed stone to evolve this pokemon.") return true end end local minlevel = 0 if getPokemonName(item2.uid) == "Eevee" then local eevee = specEvos["Eevee"][item.itemid] if not eevee then doPlayerSendCancel(cid, "This isn't the required stone to evolve this pokemon.") return true end minlevel = pokes[eevee].level local pb = getPlayerSlotItem(cid, 8) local levelon = getItemAttribute(pb.uid, "level") if levelon < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end doRemoveItem(item.uid, 1) doEvolvePokemon(cid, item2, eevee, 0, 0) local ball = getPlayerSlotItem(cid, 8).uid doItemEraseAttribute(ball, "boost") return true end if isInArray(specialevo, getPokemonName(item2.uid)) then if getPokemonName(item2.uid) == "Poliwhirl" then local evolution = 0 local theevo = "" if item.itemid == water then if getPlayerItemCount(cid, king) >= 1 then evolution = king theevo = "Politoed" elseif getPlayerItemCount(cid, punch) >= 1 then evolution = punch theevo = "Poliwrath" else doPlayerSendCancel(cid, "You need a water stone and a punch stone (Poliwrath) or a King's Rock (Politoed) to evolve this pokemon.") return true end minlevel = pokes[theevo].level local pb = getPlayerSlotItem(cid, 8) local levelon = getItemAttribute(pb.uid, "level") if levelon < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, punch) >= 1 and getPlayerItemCount(cid, king) >= 1 then doPlayerSendCancel(cid, "Please, use your Punch Stone to evolve this pokemon to a Poliwrath, or a King's Rock to a Politoed.") return true end doEvolvePokemon(cid, item2, theevo, evolution, water) local ball = getPlayerSlotItem(cid, 8).uid doItemEraseAttribute(ball, "boost") doTransformItem(ball, pokeballs[theevo:lower()].use) elseif item.itemid == punch then minlevel = pokes["Poliwrath"].level local pb = getPlayerSlotItem(cid, 8) local levelon = getItemAttribute(pb.uid, "level") if levelon < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, water) <= 0 then doPlayerSendCancel(cid, "You need at least one Punch Stone and one Water Stone to evolve this pokemon.") return true end local theevo = "Poliwrath" doEvolvePokemon(cid, item2, theevo, water, punch) local ball = getPlayerSlotItem(cid, 8).uid doItemEraseAttribute(ball, "boost") doItemSetAttribute(ball, "morta", "no") doItemSetAttribute(ball, "Icone", "yes") doTransformItem(ball, pokeballs[theevo:lower()].use) elseif item.itemid == king then minlevel = pokes["Politoed"].level local pb = getPlayerSlotItem(cid, 8) local levelon = getItemAttribute(pb.uid, "level") if levelon < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, water) <= 0 then doPlayerSendCancel(cid, "You need at least one Punch Stone and one King's Rock to evolve this pokemon.") return true end local theevo = "Politoed" doEvolvePokemon(cid, item2, theevo, water, king) local ball = getPlayerSlotItem(cid, 8).uid doItemEraseAttribute(ball, "boost") end elseif getPokemonName(item2.uid) == "Gloom" then local theevo = "" local evolution = 0 if item.itemid == leaf then if getPlayerItemCount(cid, leaf) >= 1 then theevo = "Vileplume" evolution = leaf elseif getPlayerItemCount(cid, sun) >= 1 then theevo = "Bellossom" evolution = sun else doPlayerSendCancel(cid, "You need at least one Leaf Stone, and a Sun Stone (Bellossom) or a 2 Leaf Stone (Vileplume) to evolve this pokemon.") return true end minlevel = pokes[theevo].level local pb = getPlayerSlotItem(cid, 8) local levelon = getItemAttribute(pb.uid, "level") if levelon < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, venom) >= 1 and getPlayerItemCount(cid, sun) >= 1 then doPlayerSendCancel(cid, "Please, use your Leaf Stone to evolve this pokemon to a Vileplume, or a Sun Stone to a Bellossom.") return true end doEvolvePokemon(cid, item2, theevo, evolution, leaf) local ball = getPlayerSlotItem(cid, 8).uid doItemEraseAttribute(ball, "boost") elseif item.itemid == leaf then minlevel = pokes["Vileplume"].level local pb = getPlayerSlotItem(cid, 8) local levelon = getItemAttribute(pb.uid, "level") if levelon < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, leaf) <= 0 then doPlayerSendCancel(cid, "You need at least 2 Leaf Stones to evolve this pokemon.") return true end doEvolvePokemon(cid, item2, "Vileplume", leaf, leaf) local ball = getPlayerSlotItem(cid, 8).uid doItemEraseAttribute(ball, "boost") elseif item.itemid == sun then minlevel = pokes["Bellossom"].level local pb = getPlayerSlotItem(cid, 8) local levelon = getItemAttribute(pb.uid, "level") if levelon < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end if getPlayerItemCount(cid, leaf) <= 0 then doPlayerSendCancel(cid, "You need at least one Leaf Stone and one Sun Stone to evolve this pokemon.") return true end doEvolvePokemon(cid, item2, "Bellossom", sun, leaf) local ball = getPlayerSlotItem(cid, 8).uid doItemEraseAttribute(ball, "boost") end elseif getPokemonName(item2.uid) == "Slowpoke" then if item.itemid == enigma then minlevel = pokes["Slowbro"].level local pb = getPlayerSlotItem(cid, 8) local levelon = getItemAttribute(pb.uid, "level") if levelon < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end doEvolvePokemon(cid, item2, "Slowbro", enigma, 0) local ball = getPlayerSlotItem(cid, 8).uid doItemEraseAttribute(ball, "boost") elseif item.itemid == king then minlevel = pokes["Slowking"].level local pb = getPlayerSlotItem(cid, 8) local levelon = getItemAttribute(pb.uid, "level") if levelon < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end doEvolvePokemon(cid, item2, "Slowking", king, 0) local ball = getPlayerSlotItem(cid, 8).uid doItemEraseAttribute(ball, "boost") end elseif getPokemonName(item2.uid) == "Tyrogue" then local evolution = "" evolution = choose("Hitmonlee", "Hitmonchan", "Hitmontop") minlevel = pokes[evolution].level local pb = getPlayerSlotItem(cid, 8) local levelon = getItemAttribute(pb.uid, "level") if levelon < minlevel then doPlayerSendCancel(cid, "You don't have enough level to evolve this pokemon ("..minlevel..").") return true end doEvolvePokemon(cid, item2, evolution, punch, 0) local ball = getPlayerSlotItem(cid, 8).uid doItemEraseAttribute(ball, "boost") end return true end local count = poevo[getPokemonName(item2.uid)].count local stnid = poevo[getPokemonName(item2.uid)].stoneid local stnid2 = poevo[getPokemonName(item2.uid)].stoneid2 local evo = poevo[getPokemonName(item2.uid)].evolution if not pokes[evo] then doSendMsg(cid, "Este pokemon nao existe.") print(">>>>>>EVO BUG: " .. evo) return true end if stnid2 > 1 and (getPlayerItemCount(cid, stnid2) < count or getPlayerItemCount(cid, stnid) < count) then doPlayerSendCancel(cid, "You need at least one "..getItemNameById(stnid).." and one "..getItemNameById(stnid2).." to evolve this pokemon!") return true end if getPlayerItemCount(cid, stnid) < count then local str = "" if count >= 2 then str = "s" end return doPlayerSendCancel(cid, "You need at least "..count.." "..getItemNameById(stnid)..""..str.." to evolve this pokemon!") end minlevel = pokes[evo].level local poke = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8) local levelon = getItemAttribute(pb.uid, "level") if levelon < minlevel then doPlayerSendCancel(cid, "El pokemon no tiene el nivel necesario ("..minlevel..").") return true end if count >= 2 then stnid2 = stnid end doEvolvePokemon(cid, item2, evo, stnid, stnid2) local ball = getPlayerSlotItem(cid, 8).uid doItemEraseAttribute(ball, "boost") return TRUE end Meu level sytem.lua Spoiler function getPokemonHealth(name) if not pokes[string.lower(name)] then return false end return getMonsterInfo(string.lower(name)).healthMax end function adjustWildPoke(cid, optionalLevel) if not isCreature(cid) then return true end if isSummon(cid) then return true end if getPlayerStorageValue(cid, 154585) ~= 1 then doSendMagicEffect(getThingPos(cid), 21) end local nick = doCorrectString(getCreatureName(cid)) local level = getPokemonWildLevelByName(nick) local levelreducido = level if level >= 200 then levelreducido = 200 end if not pokes[nick] then return false end -- rever isto setPlayerStorageValue(cid, 1000, level) --alterado v1.8 setPlayerStorageValue(cid, 1001, (pokes[nick].offense*(levelreducido/10)) / 3.5) setPlayerStorageValue(cid, 1002, pokes[nick].defense * ((levelreducido/100)+1) ) setPlayerStorageValue(cid, 1003, pokes[nick].agility) setPlayerStorageValue(cid, 1004, pokes[nick].vitality * level) setPlayerStorageValue(cid, 1005, pokes[nick].specialattack) if getPlayerStorageValue(cid, 1002) >50 then setPlayerStorageValue(cid, 1002, 50) end doRegainSpeed(cid) --alterado! local pokeLifeMin = (pokes[nick].life + (pokes[nick].vitality * (pokes[nick].wildLvl)) * 15) setCreatureMaxHealth(cid, pokeLifeMin) -- perfeita formula, os pokemons "ruins" só precisam de ajustes no pokemonStatus, tabela vitality. doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) end function adjustStatus(pk, item, health, dittoLife, conditions, isPassiva) if not isCreature(pk) then return true end -- Defense -- local heldBonusAttack = 1 local heldBonusDefense = 1 local heldBonusSpeed = 1 local heldBonusVitality = 1 local heldx = getItemAttribute(item, "xHeldItem") if heldx then local heldName, heldTier = string.explode(heldx, "|")[1], string.explode(heldx, "|")[2] if heldName == "X-Attack" then heldBonusAttack = heldAttack[tonumber(heldTier)] end if heldName == "X-Defense" then heldBonusDefense = heldDefense[tonumber(heldTier)] end if heldName == "X-Haste" then heldBonusSpeed = heldHaste[tonumber(heldTier)] end if heldName == "X-Vitality" then heldBonusVitality = heldVitality[tonumber(heldTier)] end end local nick = getItemAttribute(item, "poke") local dittostat = 1 if isInArray({"ditto", "shiny ditto"}, nick) then if getItemAttribute(item, "copyName") then nick = getItemAttribute(item, "copyName") dittostat = 0.7 end end local offense = pokes[nick].offense if pokes[nick].offense <=0 then --alterado v1.7 doCreatureSay(cid, string.upper(spell).."!", TALKTYPE_MONSTER) offense = 7 end local statmultiplier = getItemAttribute(item, "multiplier") local pb = getItemAttribute(item, "level") local masterLevel = pb local clanatt = getClanBonusAtt(getCreatureMaster(pk), pokes[getCreatureName(pk)].type, pokes[getCreatureName(pk)].type2) local specialat = (((pokes[nick].specialattack * heldBonusAttack) * (masterLevel + getPokemonBoost(pk)))*dittostat ) * statmultiplier if clanatt == nil then --- METODO POR SI SE BUGEA EL CLAN clanatt = 0 else clanatt = specialat * clanatt end--- METODO POR SI SE BUGEA EL CLAN local porcentajeclandef = getClanBonusDef(getCreatureMaster(pk), pokes[getCreatureName(pk)].type, pokes[getCreatureName(pk)].type2) if porcentajeclandef == nil then --- METODO POR SI SE BUGEA EL CLAN porcentajeclandef = 0 end--- METODO POR SI SE BUGEA EL CLAN local defensareal = (pokes[nick].defense * heldBonusDefense * ((getPokemonBoost(pk)+masterLevel)/100 +1)) local defensaclan = (defensareal * porcentajeclandef) local defensavisual = (pokes[nick].defense * heldBonusDefense * ((getPokemonBoost(pk)+masterLevel)/100 +1))*statmultiplier porcentajeclandef = defensavisual * porcentajeclandef setPlayerStorageValue(pk, 1001, (offense*(masterLevel/10)) * heldBonusAttack) setPlayerStorageValue(pk, 1002, (defensareal + defensaclan) *statmultiplier) setPlayerStorageValue(pk, 1003, pokes[nick].agility + heldBonusSpeed) setPlayerStorageValue(pk, 1004, pokes[nick].vitality * (getMasterLevel(pk) + getPokemonBoost(pk))) setPlayerStorageValue(pk, 1005, pokes[nick].specialattack * heldBonusAttack) doItemSetAttribute(item, "def", defensavisual + porcentajeclandef) if getPlayerStorageValue(pk, 1002) >50 then setPlayerStorageValue(pk, 1002, 50) doItemSetAttribute(item, "def", 50) end local boost = getPokemonBoost(pk) doItemSetAttribute(item, "spatt", specialat+clanatt) doItemSetAttribute(item, "clanatt", clanatt) doItemSetAttribute(item, "clandef", porcentajeclandef) local life_boost = 100 * getPokemonBoost(pk) local pokeLifeMin = pokes[nick].life local boost = getPokemonBoost(pk) local life = (pokeLifeMin + (pokes[nick].vitality * (masterLevel + boost)) * 20.0) * (heldBonusVitality / 100 + 1) life = (life * dittostat)*statmultiplier local clanhp = getClanBonusDef(getCreatureMaster(pk), pokes[getCreatureName(pk)].type, pokes[getCreatureName(pk)].type2) if clanhp == nil then --- METODO POR SI SE BUGEA EL CLAN clanhp = 0 end--- METODO POR SI SE BUGEA EL CLAN clanhp = life * clanhp doItemSetAttribute(item, "hp", life + clanhp) doItemSetAttribute(item, "clanhp",clanhp) --if getItemAttribute(item, "initialKit") then -- life = getBallMaxHealthUnique(cid, item) --end setCreatureMaxHealth(pk, life + clanhp) -- perfeita formula, os pokemons "ruins" só precisam de ajustes no pokemonStatus, tabela vitality. local hpToDraw = not isPassiva and getItemAttribute(item, "hpToDraw") or 0 if(not hpToDraw)then doItemSetAttribute(item, "hpToDraw", 0) end if type(dittoLife) == "number" then hpToDraw = dittoLife end doCreatureAddHealth(pk, getCreatureMaxHealth(pk)) if hpToDraw > getCreatureHealth(pk) then hpToDraw = getCreatureHealth(pk)-1 end doCreatureAddHealth(pk, -hpToDraw) setBallHealth(item, getCreatureHealth(pk), getCreatureMaxHealth(pk)) local cid = getCreatureMaster(pk) doSendLifePokeToOTC(cid) --doRegainSpeed(cid) if isGhostPokemon(pk) then setPlayerStorageValue(pk, 8981, 1) updateGhostWalk(pk) end if getItemAttribute(item, "nick") then nick = getItemAttribute(item, "nick") end setPlayerStorageValue(pk, 1007, nick) if not getItemAttribute(item, "happy") then doItemSetAttribute(item, "happy", 120) end if not getItemAttribute(item, "hunger") then doItemSetAttribute(item, "hunger", 5) end local happy = getItemAttribute(item, "happy") if happy < 0 then happy = 1 end setPlayerStorageValue(pk, 1008, happy) local hunger = getItemAttribute(item, "hunger") setPlayerStorageValue(pk, 1009, hunger) if isSummon(pk) and conditions then local burn = getItemAttribute(item, "burn") if burn and burn >= 0 then local ret = {id = pk, cd = burn, check = false, damage = getItemAttribute(item, "burndmg"), cond = "Burn"} addEvent(doCondition2, 3500, ret) end local poison = getItemAttribute(item, "poison") if poison and poison >= 0 then local ret = {id = pk, cd = poison, check = false, damage = getItemAttribute(item, "poisondmg"), cond = "Poison"} addEvent(doCondition2, 1500, ret) end local confuse = getItemAttribute(item, "confuse") if confuse and confuse >= 0 then local ret = {id = pk, cd = confuse, check = false, cond = "Confusion"} addEvent(doCondition2, 1200, ret) end local sleep = getItemAttribute(item, "sleep") if sleep and sleep >= 0 then local ret = {id = pk, cd = sleep, check = false, first = true, cond = "Sleep"} doCondition2(ret) end local miss = getItemAttribute(item, "miss") if miss and miss >= 0 then local ret = {id = pk, cd = miss, eff = getItemAttribute(item, "missEff"), check = false, spell = getItemAttribute(item, "missSpell"), cond = "Miss"} doCondition2(ret) end local fear = getItemAttribute(item, "fear") if fear and fear >= 0 then local ret = {id = pk, cd = fear, check = false, skill = getItemAttribute(item, "fearSkill"), cond = "Fear"} doCondition2(ret) end local silence = getItemAttribute(item, "silence") if silence and silence >= 0 then local ret = {id = pk, cd = silence, eff = getItemAttribute(item, "silenceEff"), check = false, cond = "Silence"} doCondition2(ret) end local stun = getItemAttribute(item, "stun") if stun and stun >= 0 then local ret = {id = pk, cd = stun, eff = getItemAttribute(item, "stunEff"), check = false, spell = getItemAttribute(item, "stunSpell"), cond = "Stun"} doCondition2(ret) end local paralyze = getItemAttribute(item, "paralyze") if paralyze and paralyze >= 0 then local ret = {id = pk, cd = paralyze, eff = getItemAttribute(item, "paralyzeEff"), check = false, first = true, cond = "Paralyze"} doCondition2(ret) end local slow = getItemAttribute(item, "slow") if slow and slow >= 0 then local ret = {id = pk, cd = slow, eff = getItemAttribute(item, "slowEff"), check = false, first = true, cond = "Slow"} doCondition2(ret) end local leech = getItemAttribute(item, "leech") if leech and leech >= 0 then local ret = {id = pk, cd = leech, attacker = 0, check = false, damage = getItemAttribute(item, "leechdmg"), cond = "Leech"} doCondition2(ret) end for i = 1, 3 do local buff = getItemAttribute(item, "Buff"..i) if buff and buff >= 0 then local ret = {id = pk, cd = buff, eff = getItemAttribute(item, "Buff"..i.."eff"), check = false, buff = getItemAttribute(item, "Buff"..i.."skill"), first = true, attr = "Buff"..i} doCondition2(ret) end end end --alterado v1.9 if getItemAttribute(item, "boost") and getItemAttribute(item, "boost") >= 50 and getItemAttribute(item, "aura") then sendAuraEffect(pk, auraSyst[getItemAttribute(item, "aura")]) end if getPlayerStorageValue(getCreatureMaster(pk), 6598754) >= 1 then setPlayerStorageValue(pk, 6598754, 1) elseif getPlayerStorageValue(getCreatureMaster(pk), 6598755) >= 1 then setPlayerStorageValue(pk, 6598755, 1) end return true end function getPokemonXMLOutfit(name) --alterado v1.9 \/ local path = "data/monster/pokes/Shiny/"..name..".xml" local tpw = io.type(io.open(path)) if not tpw then path = "data/monster/pokes/geracao 2/"..name..".xml" tpw = io.type(io.open(path)) end if not tpw then path = "data/monster/pokes/geracao 1/"..name..".xml" tpw = io.type(io.open(path)) end if not tpw then path = "data/monster/pokes/"..name..".xml" tpw = io.type(io.open(path)) end if not tpw then return print("[getPokemonXMLOutfit] Poke with name: "..name.." ins't in any paste on monster/pokes/") and 2 end local arq = io.open(path, "a+") local txt = arq:read("*all") arq:close() local a, b = txt:find('look type="(.-)"') txt = string.sub(txt, a + 11, b - 1) return tonumber(txt) end function getNPCXMLLOOKDIR(name) --alterado v1.9 \/ local path = name local tpw = io.type(io.open(path)) if not tpw then return false end local arq = io.open(path, "a+") local txt = arq:read("*all") arq:close() local a, b = txt:find('lookdir="(.-)"') txt = string.sub(txt, a + 9, b - 1) return tonumber(txt) end function doEvolutionOutfit(cid, oldout, outfit) if not isCreature(cid) then return true end if getCreatureOutfit(cid).lookType == oldout then doSetCreatureOutfit(cid, {lookType = outfit}, -1) else doSetCreatureOutfit(cid, {lookType = oldout}, -1) end end function doSendEvolutionEffect(cid, pos, evolution, turn, ssj, evolve, f, h) if not isCreature(cid) then doSendAnimatedText(pos, "CANCEL", 215) return true end if evolve then doEvolvePokemon(getCreatureMaster(cid), {uid = cid}, evolution, 0, 0) return true end doSendMagicEffect(pos, 18) if ssj then sendSSJEffect(evo) end doEvolutionOutfit(cid, f, h) addEvent(doSendEvolutionEffect, math.pow(1900, turn/20), cid, getThingPos(cid), evolution, turn - 1, turn == 19, turn == 2, f, h) end function sendSSJEffect(cid) if not isCreature(cid) then return true end local pos1 = getThingPos(cid) local pos2 = getThingPos(cid) pos2.x = pos2.x + math.random(-1, 1) pos2.y = pos2.y - math.random(1, 2) doSendDistanceShoot(pos1, pos2, 37) addEvent(sendSSJEffect, 45, cid) end function sendFinishEvolutionEffect(cid, alternate) if not isCreature(cid) then return true end local pos1 = getThingPos(cid) if alternate then local pos = { [1] = {-2, 0}, [2] = {-1, -1}, [3] = {0, -2}, [4] = {1, -1}, [5] = {2, 0}, [6] = {1, 1}, [7] = {0, 2}, [8] = {-1, 1}} for a = 1, 8 do local pos2 = getThingPos(cid) pos2.x = pos2.x + pos[a][1] pos2.y = pos2.y + pos[a][2] local pos = getThingPos(cid) doSendDistanceShoot(pos2, pos, 37) addEvent(doSendDistanceShoot, 300, pos, pos2, 37) end else for a = 0, 3 do doSendDistanceShoot(pos1, getPosByDir(pos1, a), 37) end for a = 4, 7 do addEvent(doSendDistanceShoot, 600, pos1, getPosByDir(pos1, a), 37) end end end function doEvolvePokemon(cid, item2, theevo, stone1, stone2) if not isCreature(cid) then return true end if not pokes[theevo] or not pokes[theevo].offense then doReturnPokemon(cid, item2.uid, getPlayerSlotItem(cid, 8), pokeballs[getPokeballType(getPlayerSlotItem(cid, 8).itemid)].effect, false, true) return true end local owner = getCreatureMaster(item2.uid) local pokeball = getPlayerSlotItem(cid, 8) local description = "Contains a "..theevo.."." local nick = getItemAttribute(pokeball.uid, "nick") doItemSetAttribute(pokeball.uid, "poke", theevo) doItemSetAttribute(pokeball.uid, "description", "Contains a "..theevo..".") doPlayerSendTextMessage(cid, 27, "Congratulations! Your "..getPokeName(item2.uid).." evolved into a "..theevo.."!") doSendMagicEffect(getThingPos(item2.uid), 18) doTransformItem(getPlayerSlotItem(cid, 7).uid, fotos[theevo]) doSendMagicEffect(getThingPos(cid), 173) local oldpos = getThingPos(item2.uid) local oldlod = getCreatureLookDir(item2.uid) doRemoveCreature(item2.uid) if not nick then nick = theevo end local levelin = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "level") pokeSourceCode = doCreateMonsterNick(cid, theevo, nick.."["..levelin.."]", getThingPos(cid), true) if not pokeSourceCode then doSendMsg(cid, "Erro. Comunique esse codigo ao GM. [31121994]") return true end local pk = getCreatureSummons(cid)[1] doTeleportThing(pk, oldpos, false) doCreatureSetLookDir(pk, oldlod) sendFinishEvolutionEffect(pk, true) addEvent(sendFinishEvolutionEffect, 550, pk, true) addEvent(sendFinishEvolutionEffect, 1050, pk) doPlayerRemoveItem(cid, stone1, 1) doPlayerRemoveItem(cid, stone2, 1) doAddPokemonInOwnList(cid, theevo) adjustStatus(pk, pokeball.uid, true, false) if useKpdoDlls then doUpdateMoves(cid) end end function doMathDecimal(number, casas) if math.floor(number) == number then return number end local c = casas and casas + 1 or 3 for a = 0, 10 do if math.floor(number) < math.pow(10, a) then local str = string.sub(""..number.."", 1, a + c) return tonumber(str) end end return number end function doAdjustWithDelay(cid, pk, health, vit, status) if isCreature(cid) then adjustStatus(pk, getPlayerSlotItem(cid, 8).uid, health, vir, status) end end function getOffense(cid) if not isCreature(cid) then return 0 end return tonumber(getPlayerStorageValue(cid, 1001)) end function getDefense(cid) if not isCreature(cid) then return 0 end return tonumber(getPlayerStorageValue(cid, 1002)) end function getSpeed(cid) if not isCreature(cid) then return 0 end return tonumber(getPlayerStorageValue(cid, 1003)) end function getVitality(cid) if not isCreature(cid) then return 0 end return tonumber(getPlayerStorageValue(cid, 1004)) end function getSpecialAttack(cid) if not isCreature(cid) then return 0 end return tonumber(getPlayerStorageValue(cid, 1005)) end function getHappiness(cid) if not isCreature(cid) then return 0 end return tonumber(getPlayerStorageValue(cid, 1008)) end function getSpecialDefense(cid) if not isCreature(cid) then return 0 end return getSpecialAttack(cid) * 0.85 + getDefense(cid) * 0.2 end function getPokemonLevel(cid, dex) if not isCreature(cid) or not pokes[getCreatureName(cid)] then return 0 end if not dex then --alterado v1.9 if ehMonstro(cid) and getPlayerStorageValue(cid, 1000) > 0 then return getPlayerStorageValue(cid, 1000) elseif ehMonstro(cid) then return pokes[getCreatureName(cid)].wildLvl end end return pokes[getCreatureName(cid)].level end function getPokemonLevelByName(name) return pokes[name] and pokes[name].level or 0 --alterado v1.9 end function getPokemonWildLevelByName(name) return pokes[name] and pokes[name].wildLvl or 0 --alterado v1.9 end function getMasterLevel(poke) if not isSummon(poke) then return 0 end return getPlayerLevel(getCreatureMaster(poke)) end function getPokemonBoost(poke) if not isSummon(poke) then return 0 end return getItemAttribute(getPlayerSlotItem(getCreatureMaster(poke), 8).uid, "boost") or 0 end function getPokeballBoost(ball) if not isPokeball(ball.itemid) then return 0 end --alterado v1.8 return getItemAttribute(ball.uid, "boost") or 0 end function getPokeName(cid) if not isSummon(cid) then return getCreatureName(cid) end if getCreatureName(cid) == "Evolution" then return getPlayerStorageValue(cid, 1007) end local item = getPlayerSlotItem(getCreatureMaster(cid), 8) if getItemAttribute(item.uid, "nick") then return getItemAttribute(item.uid, "nick") end if string.find(tostring(getCreatureName(cid)), "Shiny") then local newName = tostring(getCreatureName(cid)):match("Shiny (.*)") return newName end return getCreatureName(cid) end function getPokeballName(item, truename) if not truename and getItemAttribute(item, "nick") then return getItemAttribute(item, "nick") end return getItemAttribute(item, "poke") end function getPokemonName(cid) return getCreatureName(cid) end function getPokemonGender(cid) --alterado v1.9 return getCreatureSkullType(cid) end function setPokemonGender(cid, gender) if isCreature(cid) and gender then --alterado v1.8 doCreatureSetSkullType(cid, gender) return true end return false end function getWildPokemonExp(cid) return getMonsterInfo(getCreatureName(cid)).experience end FusionPoké Estará aberto este mês para testes ! Curta A Page e Fique Por Dentro Das Novidades Do Servidor! Like Aqui!
Postado Abril 2, 2020 5 anos up https://www.facebook.com/groups/659018184245665/ https://www.facebook.com/profile.php?id=133706320308745
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.