Base: pda com source tfs 0.3.6
Demostração de como eu quero Mightyena (1) a 100 o level
to querendo colocar um level a 1 a 100 para saber que nível o pokemon esta pois eu upo meu pokemon e aparecer no chat e muito chato alguém o script ai ?, meu script de level system vou deixar aqui e o do level tables sendo que o poketibia só tem ate a 2 geração na 3 geração esta imcompleta ainda
servidor/data/lib/level system
function getPokemonBaseStatus(name, multiplier)
local a = pokes[name]
local m = 1
if not a then return false end
if not a.offense then return false end
if multiplier then m = multiplier end
local ret = {}
ret.off = a.offense * m
ret.offense = ret.off
ret.def = a.defense * m
ret.defense = ret.def
ret.agi = a.agility * m
ret.agility = ret.agi
ret.spatk = a.specialattack * m
ret.specialattack = ret.spatk
ret.vit = a.vitality * m
ret.vitality = ret.vit
return ret
end
function getPokemonStatus(name, multiplier)
local a = pokes[name]
local m = 1
if not a then return false end
if not a.offense then return false end
if multiplier then m = multiplier end
local ret = {}
ret.off = a.offense * m
ret.offense = ret.off
ret.def = a.defense * m
ret.defense = ret.def
ret.agi = a.agility * m
ret.agility = ret.agi
ret.spatk = a.specialattack * m
ret.specialattack = ret.spatk
ret.vit = a.vitality * m
ret.vitality = ret.vit
return ret
end
function getPokeballStatus(owner,pokeball)
local a = getItemAttribute(owner,pokeball.uid,"poke")
if not a then return false end
local ret = {}
ret.off = getItemAttribute(owner,pokeball.uid,"offense")
ret.offense = getItemAttribute(owner,pokeball.uid,"offense")
ret.def = getItemAttribute(owner,pokeball.uid,"defense")
ret.defense = getItemAttribute(owner,pokeball.uid,"defense")
ret.agi = getItemAttribute(owner,pokeball.uid,"speed")
ret.agility = getItemAttribute(owner,pokeball.uid,"speed")
ret.spatk = getItemAttribute(owner,pokeball.uid,"specialattack")
ret.specialattack = getItemAttribute(owner,pokeball.uid,"specialattack")
ret.vit = getItemAttribute(owner,pokeball.uid,"vitality")
ret.vitality = getItemAttribute(owner,pokeball.uid,"vitality")
return ret
end
function getPokemonXMLOutfit(name)
local johto = false
for i = 209, 308 do --alterado v2.6
if oldpokedex[i][1] and oldpokedex[i][1] == name then
johto = true
end
end
if isShinyName(name) then
a = "data/monster/pokes/Shiny/"..name..".xml"
elseif johto then
a = "data/monster/pokes/geracao 2/"..name..".xml" --edited pra melhorar a pasta monster
else
a = "data/monster/pokes/geracao 1/"..name..".xml"
end
local b = io.open(a, "a+")
local c = b:read("*all")
b:close()
local d, e = c:find('look type="(.-)"')
c = string.sub(c, d + 11, e - 1)
return tonumber(c)
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 doStartEvolution(cid, evolution, seconds)
if not isCreature(cid) then return true end
local a = getPlayerStorageValue(cid, 1007)
local b = getCreatureHealth(cid) / getCreatureMaxHealth(cid)
local d = getThingPos(cid)
local e = getCreatureMaster(cid)
if getHappinessRate(cid) < 1 then return true end
local f = getCreatureOutfit(cid).lookType
local g = getItemAttribute(getPlayerSlotItem(e, 8).uid, "nick") or getCreatureName(cid)
local h = getPokemonXMLOutfit(evolution)
doItemSetAttribute(getPlayerSlotItem(e, 8).uid, "hp", b)
doCreatureSay(e, "What? My "..g.." is evolving!", TALKTYPE_SAY)
doSummonMonster(e, "Evolution")
doReturnPokemon(e, cid, getPlayerSlotItem(e, 8), 0, true)
local evo = getCreatureSummons(e)[1]
doEvolutionOutfit(evo, h, f)
doCreatureSetHideHealth(evo, true)
doCreatureSetLookDir(evo, 2)
setPlayerStorageValue(evo, 1007, g)
doTeleportThing(evo, d, false)
addEvent(sendSSJEffect, 250, evo)
doSendAnimatedText(getThingPos(evo), "EVOLUTION", COLOR_GRASS)
doSendEvolutionEffect(evo, getThingPos(evo), evolution, 20, false, false, f, h)
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 pct = getCreatureHealth(item2.uid) / getCreatureMaxHealth(item2.uid)
doItemSetAttribute(pokeball.uid, "hp", pct)
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)
local oldlvl = getPokemonLevel(item2.uid)
doRemoveCreature(item2.uid)
doSummonMonster(cid, theevo)
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)
local happy = getItemAttribute(pokeball.uid, "happy")
doItemSetAttribute(pokeball.uid, "happy", happy + happyGainedOnEvolution)
if happy + happyGainedOnEvolution > 255 then
doItemSetAttribute(pokeball.uid, "happy", 255)
end
adjustStatus(pk, pokeball.uid, true, false)
if useKpdoDlls then
doUpdateMoves(cid)
end
end
function givePokemonExp(cid, item, expe, pct, rarecandy)
if expe <= 0 or not isCreature(cid) then return true end
local leveltable = getPokemonExperienceTable(getPokeballName(item.uid, true))
if getItemAttribute(item.uid, "exp") + expe > leveltable[100] then
givePokemonExp(cid, item, leveltable[100] - getItemAttribute(item.uid, "exp"))
return true
end
doItemSetAttribute(item.uid, "exp", getItemAttribute(item.uid, "exp") + expe)
doItemSetAttribute(item.uid, "happy", getItemAttribute(item.uid, "happy") + 1)
doItemSetAttribute(item.uid, "nextlevelexp", getItemAttribute(item.uid, "nextlevelexp") - expe)
if pct then
doPlayerSendTextMessage(cid, 19, "Seu "..getPokeballName(item.uid).." recebeu ("..expe..") pontos de experiencia ("..pct.."%).")
else
if getItemAttribute(item.uid, "nextlevelexp") > 0 then
doPlayerSendTextMessage(cid, 19, "Seu Pokemon "..getPokeballName(item.uid).." ["..getItemAttribute(item.uid, "level").."] recebeu ("..expe..") de experiencia. Faltam ("..getItemAttribute(item.uid, "nextlevelexp")..") de experiencia para o próximo level.")
else
doPlayerSendTextMessage(cid, 19, "[LEVEL UP] Parabens, seu Pokemon "..getPokeballName(item.uid).." ["..getItemAttribute(item.uid, "level").."] recebeu ("..expe..") de experiencia e avançou de level!")
end
end
if isBeingUsed(item.itemid) then
doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), expe, 215)
end
if getItemAttribute(item.uid, "nextlevelexp") <= 0 then
local summon = getCreatureSummons(cid)[1]
if not isCreature(summon) then return true end
doSendFlareEffect(getThingPos(summon))
setPlayerStorageValue(summon,5050,getPlayerStorageValue(summon,5050)+1) ------ STORAGE QUE GANHA AO UPAR DE LVL POKE
doSendAnimatedText(getThingPos(summon), "Level UP!", 215)
adjustPokemonLevel(item.uid, cid, item.itemid)
doCreatureAddHealth(summon, getCreatureMaxHealth(summon))
end
end
function givePokemonExpInBp(cid, item, expe, ballid, pct, hidemessage)
if expe <= 0 or not isCreature(cid) then return true end
local leveltable = getPokemonExperienceTable(getPokeballName(item, true))
if getItemAttribute(item, "exp") + expe > leveltable[100] then
givePokemonExpInBp(cid, item, leveltable[100] - getItemAttribute(item, "exp"), ballid)
return true
end
doItemSetAttribute(item, "exp", getItemAttribute(item, "exp") + expe)
doItemSetAttribute(item, "happy", getItemAttribute(item, "happy") + 1)
doItemSetAttribute(item, "nextlevelexp", getItemAttribute(item, "nextlevelexp") - expe)
if not hidemessage then
if pct then
doPlayerSendTextMessage(cid, 19, "Seu "..getPokeballName(item).." Recebeu ("..expe..") experience points ("..pct.."%).")
else
if getItemAttribute(item, "nextlevelexp") > 0 then
doPlayerSendTextMessage(cid, 19, "Seu "..getPokeballName(item).." ["..getItemAttribute(item, "level").."] recebeu ("..expe..") de experiencia dentro de sua pokeball. Faltam ("..getItemAttribute(item, "nextlevelexp")..") de experiencia para o próximo level.")
else
doPlayerSendTextMessage(cid, 19, "Seu "..getPokeballName(item).." ["..getItemAttribute(item, "level").."] recebeu ("..expe..") de experiencia, e avançou de level dentro de sua Pokeball!.")
adjustPokemonLevel(item, cid, ballid)
end
end
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 adjustPokemonLevel(item, cid, id, rarecandy)
if not isCreature(cid) then return true end
local exp = getItemAttribute(item, "exp")
local level = getItemAttribute(item, "level")
local bonus_level = getItemAttribute(item, "b_level") or 0
local leveltable = getPokemonExperienceTable(getPokeballName(item, true))
local newlevel = 1
for x = 1, 100 do
if exp >= leveltable[x] and exp < leveltable[x+1] then
newlevel = x
end
end
if newlevel <= 1 then return true end
local levelsup = (newlevel - level)
local pokemon = getItemAttribute(item, "poke")
local happy = getItemAttribute(item, "happy")
local rate = happy / happy
local newhappiness = happy
if happy >= 250 then
newhappiness = 255
elseif happy >= 230 then
newhappiness = happy + 4
elseif happy >= 210 then
newhappiness = happy + 6
elseif happy >= 180 then
newhappiness = happy + 8
elseif happy >= 140 then
newhappiness = happy + 10
elseif happy >= 110 then
newhappiness = happy + 12
else
newhappiness = happy + 15
end
local status = getPokemonStatus(pokemon)
local off = status.off * rate * levelsup
local def = status.def * rate * levelsup
local agi = status.agi * rate * levelsup
local spatk = status.spatk * rate * levelsup
local vit = status.vit * rate * levelsup
doItemSetAttribute(item, "level", newlevel)
doItemSetAttribute(item, "b_level", bonus_level + 1)
if not rarecandy then
doItemSetAttribute(item, "happy", newhappiness)
end
local nextexp = leveltable[newlevel + 1] - exp
doItemSetAttribute(item, "nextlevelexp", nextexp)
doItemSetAttribute(item, "offense", getItemAttribute(item, "offense") + off)
doItemSetAttribute(item, "defense", getItemAttribute(item, "defense") + def)
doItemSetAttribute(item, "speed", getItemAttribute(item, "speed") + agi)
doItemSetAttribute(item, "specialattack", getItemAttribute(item, "specialattack") + spatk)
doItemSetAttribute(item, "vitality", getItemAttribute(item, "vitality") + vit)
if newlevel > getPlayerLevel(cid) + pokemonMaxLevelAbovePlayer then
addEvent(doPlayerSendTextMessage, 30, cid, 18, "Warning: Your "..getPokeballName(item).."'s ["..newlevel.."] level is much higher than yours, so you will not be able to call him to battles.")
end
if isCreature(cid) and id >= 1 and isBeingUsed(id) then
adjustStatus(getCreatureSummons(cid)[1], item, false, true)
doPlayerSendTextMessage(cid, 27, "Level: "..newlevel.." (+"..levelsup..") - Offense: +"..doMathDecimal(off).." - Defense: +"..doMathDecimal(def).." - Spc. Atk: +"..doMathDecimal(spatk).." - Agility: +"..doMathDecimal(agi).." - Vitality: +"..doMathDecimal(vit)..".")
if happy < minHappyToEvolve then return true end
if pokemonsCanEvolveByLevel then
local summon = getCreatureSummons(cid)[1]
local reqlevel = poevo[getCreatureName(summon)] and poevo[getCreatureName(summon)].level or -1
local level = getItemAttribute(item, "level")
local evolution = "none"
local name = getCreatureName(summon)
if name == "Tyrogue" and level >= 20 then
if getOffense(summon) == getDefense(summon) then
evolution = "Hitmontop"
elseif getOffense(summon) > getDefense(summon) then
evolution = "Hitmonlee"
else
evolution = "Hitmonchan"
end
elseif name == "Eevee" then
if happy >= maxHappyToEvolve then
if isDay() then
evolution = "Espeon"
else
evolution = "Umbreon"
end
end
elseif name == "Slowpoke" and level >= 28 then
evolution = "Slowbro"
elseif name == "Poliwhirl" and level >= 36 then
evolution = "Poliwrath"
elseif reqlevel > 4 and level >= reqlevel then
evolution = poevo[getCreatureName(summon)].evolution
elseif reqlevel == 2 and happy >= maxHappyToEvolve then
evolution = poevo[getCreatureName(summon)] and poevo[getCreatureName(summon)].evolution or "none"
end
if evolution ~= "none" then
doStartEvolution(summon, evolution, 4)
end
end
end
end
function doAdjustWithDelay(cid, pk, health, vit, status)
if isCreature(cid) then --alterado v2.5
if not isCreature(cid) then return true end
adjustStatus(pk, getPlayerSlotItem(cid, 8).uid, health, vir, status)
end
end
function adjustStatus(pk, item, health, vite, conditions)
if not isCreature(pk) then return true end
local bonusoffense = getItemAttribute(item, boffense) or 0
local bonusdefense = getItemAttribute(item, bdefense) or 0
local bonusagility = getItemAttribute(item, bagility) or 0
local bonussattack = getItemAttribute(item, bsattack) or 0
if (getItemAttribute(item, "ehditto") == 1) then
setPlayerStorageValue(pk, 1000, getItemAttribute(item, "level"))
setPlayerStorageValue(pk, 1001, getItemAttribute(item, "offense") + bonusoffense * 0.75)
setPlayerStorageValue(pk, 1002, getItemAttribute(item, "defense") + bonusdefense * 0.75)
setPlayerStorageValue(pk, 1003, getItemAttribute(item, "speed") + bonusagility * 0.75)
setPlayerStorageValue(pk, 1005, getItemAttribute(item, "specialattack") + bonussattack * 0.75)
elseif (getItemAttribute(item, "ehshinyditto") == 1) then
setPlayerStorageValue(pk, 1000, getItemAttribute(item, "level"))
setPlayerStorageValue(pk, 1001, getItemAttribute(item, "offense") + bonusoffense * 0.50)
setPlayerStorageValue(pk, 1002, getItemAttribute(item, "defense") + bonusdefense * 0.50)
setPlayerStorageValue(pk, 1003, getItemAttribute(item, "speed") + bonusagility * 0.50)
setPlayerStorageValue(pk, 1005, getItemAttribute(item, "specialattack") + bonussattack * 0.50)
else
setPlayerStorageValue(pk, 1000, getItemAttribute(item, "level"))
setPlayerStorageValue(pk, 1001, getItemAttribute(item, "offense") + bonusoffense)
setPlayerStorageValue(pk, 1002, getItemAttribute(item, "defense") + bonusdefense)
setPlayerStorageValue(pk, 1003, getItemAttribute(item, "speed") + bonusagility)
setPlayerStorageValue(pk, 1005, getItemAttribute(item, "specialattack") + bonussattack)
end
-- setPlayerStorageValue(pk, 1000, pokes[getCreatureName(pk)].level)
-- setPlayerStorageValue(pk, 1001, pokes[getCreatureName(pk)].offense * (getMasterLevel(pk) + getPokemonBoost(pk)))
-- setPlayerStorageValue(pk, 1002, pokes[getCreatureName(pk)].defense)
-- setPlayerStorageValue(pk, 1003, pokes[getCreatureName(pk)].agility)
-- setPlayerStorageValue(pk, 1004, pokes[getCreatureName(pk)].vitality * (getMasterLevel(pk) + getPokemonBoost(pk)))
-- setPlayerStorageValue(pk, 1005, pokes[getCreatureName(pk)].specialattack * (getMasterLevel(pk) + getPokemonBoost(pk)))
-- end
local gender = getItemAttribute(item, "gender") and getItemAttribute(item, "gender") or 0
doCreatureSetSkullType(pk, gender)
if vite == true then
local pct = getCreatureHealth(pk) / getCreatureMaxHealth(pk)
local vit = getItemAttribute(item, "vitality") - getPlayerStorageValue(pk, 1004)
setCreatureMaxHealth(pk, getCreatureMaxHealth(pk) + ( vit * HPperVIT ))
doCreatureAddHealth(pk, pct * vit * HPperVIT)
end
setPlayerStorageValue(pk, 1004, getItemAttribute(item, "vitality")) -- retirar caso n funfar
doRegainSpeed(pk)
local nick = getItemAttribute(item, "poke")
if string.find(tostring(nick), "Shiny") then
nick = tostring(nick):match("Shiny (.*)")
end
if string.find(tostring(nick), "Mega ") then
nick = tostring(nick):match("Mega (.*)")
end
if getItemAttribute(item, "nick") then
nick = getItemAttribute(item, "nick")
end
if isGhostPokemon(pk) then
setPlayerStorageValue(pk, 8981, 1)
updateGhostWalk(pk)
end
setPlayerStorageValue(pk, 1007, nick)
local boostlevel = getItemAttribute(item, "boost") or 0
local boostshow = hideBoost and "]" or " + "..boostlevel.."]"
local lvlstr = ""
if showBoostSeparated then
boostshow = hideBoost and "]" or "] [+"..boostlevel.."]"
end
if hideSummonsLevel then
if not hideBoost then
nick = nick.." [+"..boostlevel.."]"
else
nick = nick.." ["..getItemAttribute(item, "level")..""..boostshow..""
end
end
doCreatureSetNick(pk, 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 health == true then
local mh = getCreatureMaxHealth(pk) + HPperVIT * getVitality(pk)
local rd = 1 - (tonumber(getItemAttribute(item, "hp")))
setCreatureMaxHealth(pk, mh)
doCreatureAddHealth(pk, getCreatureMaxHealth(pk))
doCreatureAddHealth(pk, -(getCreatureMaxHealth(pk) * rd))
end
if isSummon(pk) and conditions then --alterado v2.5 daki pra baixo!!
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) --alterado v2.5
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
if getItemAttribute(item, "boost") and getItemAttribute(item, "boost") == 50 and getItemAttribute(item, "aura") then
sendAuraEffect(pk, auraSyst[getItemAttribute(item, "aura")]) --edited aura system
end
if getPlayerStorageValue(getCreatureMaster(pk), 6598754) >= 1 then
setPlayerStorageValue(pk, 6598754, 1) --edited pvp system
elseif getPlayerStorageValue(getCreatureMaster(pk), 6598755) >= 1 then
setPlayerStorageValue(pk, 6598755, 1)
end
return true
end
function setWildPokemonLevel(cid, optionalLevel, optionalStatus, optionalNick, optionalExtraExp)
if not isCreature(cid) then return true end
if not pokes[getCreatureName(cid)] then return true end --alterado v2.6
local levelRange = 0
local off = 0
local def = 0
local agi = 0
local spatk = 0
local vit = 0
local this = getCreatureName(cid)
local ee = 1
if optionalExtraExp then
ee = optionalExtraExp
end
if optionalLevel and tonumber(optionalLevel) >= 1 then --alterado v2.8\/
levelRange = optionalLevel
else
levelRange = math.random(pokes[this].wildLvlMin, pokes[this].wildLvlMax)
end
local status = getPokemonBaseStatus(this)
if status then
off = status.off
def = status.def
agi = status.agi
vit = status.vit
spatk = status.spatk
end
setPlayerStorageValue(cid, 1000, (levelRange > 100 and 100 or levelRange)) --alterado v2.8
if optionalStatus and optionalStatus.off then
setPlayerStorageValue(cid, 1001, optionalStatus.offense)
setPlayerStorageValue(cid, 1002, optionalStatus.defense)
setPlayerStorageValue(cid, 1003, optionalStatus.agility)
setPlayerStorageValue(cid, 1004, optionalStatus.vitality)
setPlayerStorageValue(cid, 1005, optionalStatus.specialattack)
setPlayerStorageValue(cid, 1011, optionalStatus.offense)
setPlayerStorageValue(cid, 1012, optionalStatus.defense)
setPlayerStorageValue(cid, 1013, optionalStatus.agility)
setPlayerStorageValue(cid, 1014, optionalStatus.vitality)
setPlayerStorageValue(cid, 1015, optionalStatus.specialattack)
else
setPlayerStorageValue(cid, 1001, 5 + math.random(off * levelRange * 0.9, off * levelRange * 1.8))
setPlayerStorageValue(cid, 1002, 5 + math.random(def * levelRange * 0.9, def * levelRange * 1.8))
setPlayerStorageValue(cid, 1003, math.random(agi * levelRange * 0.9, agi * levelRange * 1.8))
setPlayerStorageValue(cid, 1004, math.random(vit * levelRange * 0.9, vit * levelRange * 1.8))
setPlayerStorageValue(cid, 1005, 5 + math.random(spatk * levelRange * 0.9, spatk * levelRange * 1.8))
setPlayerStorageValue(cid, 1011, getPlayerStorageValue(cid, 1001))
setPlayerStorageValue(cid, 1012, getPlayerStorageValue(cid, 1002))
setPlayerStorageValue(cid, 1013, getPlayerStorageValue(cid, 1003))
setPlayerStorageValue(cid, 1014, getPlayerStorageValue(cid, 1004))
setPlayerStorageValue(cid, 1015, getPlayerStorageValue(cid, 1005))
end
doRegainSpeed(cid)
setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + getPlayerStorageValue(cid, 1004) * HPperVIT * vitReductionForWild)
doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
if pokes[getCreatureName(cid)].exp then
--getMonsterInfo(getCreatureName(cid)).experience
local exp = (50 + pokes[getCreatureName(cid)].exp) * baseExpRate + pokes[getCreatureName(cid)].vitality * levelRange * pokemonExpPerLevelRate
setPlayerStorageValue(cid, 1006, exp * generalExpRate * ee)
if getPlayerStorageValue(cid, 22546) == 1 then
setPlayerStorageValue(cid, 1006, 750)
doSetCreatureDropLoot(cid, false) --edited golden arena
end
end
local wildshow = wildBeforeNames and "Wild " or ""
if optionalNick then
if hideWildsLevel then
doCreatureSetNick(cid, optionalNick)
else
doCreatureSetNick(cid, optionalNick.." ["..getWildPokemonLevel(cid).."]")
end
else
if hideWildsLevel then
doCreatureSetNick(cid, ""..wildshow..""..getCreatureName(cid).."")
end
end
end
function getOffense(cid)
if not isCreature(cid) then return 0 end
--[[if getPlayerStorageValue(cid, 3894) >= 1 then
return tonumber(getPlayerStorageValue(cid, 1001)) / 2
end ]]
return tonumber(getPlayerStorageValue(cid, 1001))
end
function getDefense(cid)
if not isCreature(cid) then return 0 end
--[[ if getPlayerStorageValue(cid, 3894) >= 1 then
return tonumber(getPlayerStorageValue(cid, 1002)) / 2
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 getWildPokemonExp(cid)
return getPlayerStorageValue(cid, 1006)
end
function getWildPokemonLevel(cid)
return getPlayerStorageValue(cid, 1000)
end
function getLevel(cid)
if isSummon(cid) then
return getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "level")
end
return getPlayerStorageValue(cid, 1000)
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 getMasterLevel(poke)
if not isSummon(poke) then return 0 end
return getPlayerLevel(getCreatureMaster(poke)) --alterado v2.5
end
function getPokemonBoost(poke)
if not isSummon(poke) then return 0 end --alterado v2.5
return getItemAttribute(getPlayerSlotItem(getCreatureMaster(poke), 8).uid, "boost") or 0
end
function getPokemonLevelByName(name)
if tostring(name) then --alterado v2.5
return pokes[name].level
end
return 0
end
function getPokemonLevel(cid)
if not isCreature(cid) then return 0 end
return getPlayerStorageValue(cid, 1000)
end
function getPokemonGender(cid)
return getCreatureSkullType(cid)
end
servidor/data/lib/level table
function getPokemonExperienceTable(pokemonname)
if isInArray(fastexppokes, pokemonname) then
return fastexptable
elseif isInArray(mediumfastexppokes, pokemonname) then
return mediumfastexptable
elseif isInArray(mediumslowexppokes, pokemonname) then
return mediumslowexptable
elseif isInArray(slowexppokes, pokemonname) then
return slowexptable
end
print(""..pokemonname.." doesn't have an experience table speed gain. Check it at data/lib/level tables.lua.")
return mediumfastexptable
end
fastexppokes = {"Clefairy", "Clefable", "Iglybuff", "Jigglypuff", "Wigglytuff", "Chansey", "Shiny Clefairy", "Shiny Clefable", "Shiny Iglybuff", "Shiny Jigglypuff", "Shiny Wigglytuff", "Shiny Chansey", "Ledyba", "Ledian", "Spinarak", "Ariados", "Cleffa", "Togepi", "Togetic", "Marill", "Azumarill", "Aipom", "Misdreavus", "Snubbull", "Granbull", "Corsola", "Delibird", "Smeargle", "Blissey"}
fastexptable = {
[1] = 0,
[2] = 51,
[3] = 172,
[4] = 409,
[5] = 800,
[6] = 1382,
[7] = 2195,
[8] = 3276,
[9] = 4665,
[10] = 6400,
[11] = 8518,
[12] = 11059,
[13] = 14060,
[14] = 17561,
[15] = 21600,
[16] = 26214,
[17] = 31443,
[18] = 37324,
[19] = 43897,
[20] = 51200,
[21] = 59270,
[22] = 68147,
[23] = 77868,
[24] = 88473,
[25] = 100000,
[26] = 112486,
[27] = 125971,
[28] = 140492,
[29] = 156089,
[30] = 172800,
[31] = 190662,
[32] = 209715,
[33] = 229996,
[34] = 251545,
[35] = 274400,
[36] = 298598,
[37] = 324179,
[38] = 351180,
[39] = 379641,
[40] = 409600,
[41] = 441094,
[42] = 474163,
[43] = 508844,
[44] = 545177,
[45] = 583200,
[46] = 622950,
[47] = 664467,
[48] = 707788,
[49] = 752953,
[50] = 800000,
[51] = 848966,
[52] = 899891,
[53] = 952812,
[54] = 1007769,
[55] = 1064800,
[56] = 1123942,
[57] = 1185235,
[58] = 1248716,
[59] = 1314425,
[60] = 1382400,
[61] = 1452678,
[62] = 1525299,
[63] = 1600300,
[64] = 1677721,
[65] = 1757600,
[66] = 1839974,
[67] = 1924883,
[68] = 2012364,
[69] = 2102457,
[70] = 2195200,
[71] = 2290630,
[72] = 2388787,
[73] = 2489708,
[74] = 2593433,
[75] = 2700000,
[76] = 2809446,
[77] = 2921811,
[78] = 3037132,
[79] = 3155449,
[80] = 3276800,
[81] = 3401222,
[82] = 3528755,
[83] = 3659436,
[84] = 3793305,
[85] = 3930400,
[86] = 4070758,
[87] = 4214419,
[88] = 4361420,
[89] = 4511801,
[90] = 4665600,
[91] = 4822854,
[92] = 4983603,
[93] = 5147884,
[94] = 5315737,
[95] = 5487200,
[96] = 5662310,
[97] = 5841107,
[98] = 6023628,
[99] = 6209913,
[100] = 6400000,
[101] = 999999999}
mediumfastexppokes = {"Caterpie", "Metapod", "Torchic", "Treecko", "Mudkip", "Butterfree", "Weedle", "Kakuna", "Beedrill", "Rattata", "Raticate", "Spearow", "Fearow", "Ekans", "Arbok", "Pikachu", "Raichu", "Sandshrew", "Sandslash", "Vulpix", "Ninetales", "Zubat", "Golbat", "Paras", "Parasect", "Diglett", "Dugtrio", "Meowth", "Persian", "Psyduck", "Golduck", "Mankey", "Primeape", "Ponyta", "Rapidash", "Magnemite", "Magneton", "Doduo", "Dodrio", "Seel", "Dewgong", "Grimer", "Muk", "Onix", "Steelix", "Drowzee", "Hypno", "Krabby", "Kingler", "Voltorb", "Electrode", "Cubone", "Marowak", "Hitmonlee", "Tyrogue", "Hitmonchan", "Lickitung", "Koffing", "Weezing", "Kangaskhan", "Horsea", "Seadra", "Goldeen", "Seaking", "Mr. Mime", "Scyther", "Jynx", "Smoochum", "Electabuzz", "Magmar", "Ditto", "Eevee", "Jolteon", "Flareon", "Porygon", "Omanyte", "Omastar", "Kabuto", "Kabutops", "Shiny Caterpie", "Shiny Metapod", "Shiny Butterfree", "Shiny Weedle", "Shiny Kakuna", "Shiny Beedrill", "Shiny Rattata", "Shiny Raticate", "Shiny Spearow", "Shiny Fearow",
"Shiny Ekans", "Shiny Arbok", "Shiny Pikachu", "Shiny Raichu", "Shiny Sandshrew", "Shiny Sandslash", "Shiny Vulpix", "Shiny Ninetales", "Shiny Zubat", "Shiny Golbat", "Shiny Paras", "Shiny Parasect", "Shiny Diglett", "Shiny Dugtrio", "Shiny Meowth", "Shiny Persian", "Shiny Psyduck", "Shiny Golduck", "Shiny Mankey", "Shiny Primeape", "Shiny Ponyta", "Shiny Rapidash", "Shiny Magnemite", "Shiny Magneton", "Shiny Doduo", "Shiny Dodrio", "Shiny Seel", "Shiny Dewgong", "Shiny Grimer", "Shiny Muk", "Shiny Onix", "Shiny Steelix", "Shiny Drowzee", "Shiny Hypno", "Shiny Krabby", "Shiny Kingler", "Shiny Voltorb", "Shiny Electrode", "Shiny Cubone", "Shiny Marowak", "Shiny Hitmonlee", "Shiny Hitmontop", "Tyrogue", "Shiny Hitmonchan", "Shiny Lickitung", "Shiny Koffing", "Shiny Weezing", "Shiny Kangaskhan", "Shiny Horsea", "Shiny Seadra", "Shiny Goldeen", "Shiny Seaking", "Shiny Mr. Mime", "Shiny Scyther", "Shiny Jynx", "Smoochum", "Shiny Electabuzz", "Shiny Magmar", "Shiny Ditto", "Shiny Eevee", "Shiny Jolteon", "Shiny Flareon",
"Shiny Porygon", "Shiny Omanyte", "Shiny Omastar", "Shiny Kabuto", "Shiny Kabutops", "Sentret", "Furret", "Hoothoot", "Noctowl", "Crobat", "Pichu", "Natu", "Xatu", "Wooper", "Quagsire", "Espeon", "Umbreon", "Girafarig", "Pineco", "Forretress", "Dunsparce", "Qwilfish", "Scizor", "Magcargo", "Slugma", "Remoraid", "Octillery", "Kingdra", "Phanpy", "Donphan", "Porygon2", "Hitmontop", "Elekid", "Magby", "Vaporeon", "Shiny Vaporeon", "Venonat", "Venomoth", "Slowpoke", "Shiny Slowpoke", "Slowbro", "Slowking", "Farfetch'd", "Tangela", "Shiny Tangela", "Sudowoodo", "Yanma", "Unown", "Wobbuffet", "Teddiursa", "Ursaring", "Shiny Farfetch'd"} --alterado v2.4
mediumfastexptable = {
[1] = 0,
[2] = 64,
[3] = 216,
[4] = 512,
[5] = 1000,
[6] = 1728,
[7] = 2744,
[8] = 4096,
[9] = 5832,
[10] = 8000,
[11] = 10648,
[12] = 13824,
[13] = 17576,
[14] = 21952,
[15] = 27000,
[16] = 32768,
[17] = 39304,
[18] = 46656,
[19] = 54872,
[20] = 64000,
[21] = 74088,
[22] = 85184,
[23] = 97336,
[24] = 110592,
[25] = 125000,
[26] = 140608,
[27] = 157464,
[28] = 175616,
[29] = 195112,
[30] = 216000,
[31] = 238328,
[32] = 262144,
[33] = 287496,
[34] = 314432,
[35] = 343000,
[36] = 373248,
[37] = 405224,
[38] = 438976,
[39] = 474552,
[40] = 512000,
[41] = 551368,
[42] = 592704,
[43] = 636056,
[44] = 681472,
[45] = 729000,
[46] = 778688,
[47] = 830584,
[48] = 884736,
[49] = 941192,
[50] = 1000000,
[51] = 1061208,
[52] = 1124864,
[53] = 1191016,
[54] = 1259712,
[55] = 1331000,
[56] = 1404928,
[57] = 1481544,
[58] = 1560896,
[59] = 1643032,
[60] = 1728000,
[61] = 1815848,
[62] = 1906624,
[63] = 2000376,
[64] = 2097152,
[65] = 2197000,
[66] = 2299968,
[67] = 2406104,
[68] = 2515456,
[69] = 2628072,
[70] = 2744000,
[71] = 2863288,
[72] = 2985984,
[73] = 3112136,
[74] = 3241792,
[75] = 3375000,
[76] = 3511808,
[77] = 3652264,
[78] = 3796416,
[79] = 3944312,
[80] = 4096000,
[81] = 4251528,
[82] = 4410944,
[83] = 4574296,
[84] = 4741632,
[85] = 4913000,
[86] = 5088448,
[87] = 5268024,
[88] = 5451776,
[89] = 5639752,
[90] = 5832000,
[91] = 6028568,
[92] = 6229504,
[93] = 6434856,
[94] = 6644672,
[95] = 6859000,
[96] = 7077888,
[97] = 7301384,
[98] = 7529536,
[99] = 7762392,
[100] = 8000000,
[101] = 999999999}
mediumslowexppokes = {"Bulbasaur", "Ivysaur", "Marshtomp", "Combusken", "Grovyle", "Venusaur", "Charmander", "Charmeleon", "Charizard", "Squirtle", "Wartortle", "Blastoise", "Pidgey", "Pidgeotto", "Pidgeot", "Nidoran Female", "Nidorina", "Nidoqueen", "Nidoran Male", "Nidorino", "Nidoking", "Oddish", "Gloom", "Vileplume", "Poliwag", "Poliwhirl", "Poliwrath", "Abra", "Kadabra", "Alakazam", "Machop", "Machoke", "Machamp", "Bellsprout", "Weepinbell", "Victreebel", "Geodude", "Graveler", "Golem", "Gastly", "Haunter", "Gengar", "Mew", "Shiny Bulbasaur", "Shiny Ivysaur", "Shiny Venusaur", "Shiny Charmander", "Shiny Charmeleon", "Shiny Charizard", "Shiny Squirtle", "Shiny Wartortle", "Shiny Blastoise", "Shiny Pidgey", "Shiny Pidgeotto", "Shiny Pidgeot", "Shiny Nidoran Female", "Shiny Nidorina", "Shiny Nidoqueen", "Shiny Nidoran Male", "Shiny Nidorino", "Shiny Nidoking", "Shiny Oddish", "Shiny Gloom", "Shiny Vileplume", "Shiny Poliwag", "Shiny Poliwhirl", "Shiny Poliwrath", "Shiny Abra", "Shiny Kadabra", "Shiny Alakazam", "Shiny Machop", "Shiny Machoke", "Shiny Machamp", "Shiny Bellsprout", "Shiny Weepinbell", "Shiny Victreebel", "Shiny Geodude", "Shiny Graveler", "Shiny Golem", "Shiny Gastly", "Shiny Haunter", "Shiny Gengar", "Shiny Mew", "Chikorita", "Bayleef", "Meganium", "Cyndaquil", "Quilava", "Typhlosion", "Totodile", "Croconaw", "Feraligatr", "Mareep", "Flaaffy", "Ampharos", "Bellossom", "Politoed", "Hoppip", "Skiploom", "Jumpluff", "Sunkern", "Sunflora", "Murkrow", "Gligar", "Shuckle", "Sneasel", "Celebi"}
mediumslowexptable = {
[1] = 0,
[2] = 72,
[3] = 456,
[4] = 768,
[5] = 1080,
[6] = 1432,
[7] = 1888,
[8] = 2512,
[9] = 3352,
[10] = 4480,
[11] = 5936,
[12] = 7784,
[13] = 10088,
[14] = 12896,
[15] = 16280,
[16] = 20280,
[17] = 24960,
[18] = 30384,
[19] = 36600,
[20] = 43680,
[21] = 51664,
[22] = 60616,
[23] = 70600,
[24] = 81664,
[25] = 93880,
[26] = 107288,
[27] = 121952,
[28] = 137936,
[29] = 155288,
[30] = 174080,
[31] = 194352,
[32] = 216168,
[33] = 239592,
[34] = 264672,
[35] = 291480,
[36] = 320056,
[37] = 350464,
[38] = 382768,
[39] = 417016,
[40] = 453280,
[41] = 491600,
[42] = 532040,
[43] = 574664,
[44] = 619520,
[45] = 666680,
[46] = 716184,
[47] = 768096,
[48] = 822480,
[49] = 879384,
[50] = 938880,
[51] = 1001008,
[52] = 1065832,
[53] = 1133416,
[54] = 1203808,
[55] = 1277080,
[56] = 1353272,
[57] = 1432448,
[58] = 1514672,
[59] = 1599992,
[60] = 1688480,
[61] = 1780176,
[62] = 1875144,
[63] = 1973448,
[64] = 2075136,
[65] = 2180280,
[66] = 2288920,
[67] = 2401120,
[68] = 2516944,
[69] = 2636440,
[70] = 2759680,
[71] = 2886704,
[72] = 3017576,
[73] = 3152360,
[74] = 3291104,
[75] = 3433880,
[76] = 3580728,
[77] = 3731712,
[78] = 3886896,
[79] = 4046328,
[80] = 4210080,
[81] = 4378192,
[82] = 4550728,
[83] = 4727752,
[84] = 4909312,
[85] = 5095480,
[86] = 5286296,
[87] = 5481824,
[88] = 5682128,
[89] = 5887256,
[90] = 6097280,
[91] = 6312240,
[92] = 6532200,
[93] = 6757224,
[94] = 6987360,
[95] = 7222680,
[96] = 7463224,
[97] = 7709056,
[98] = 7960240,
[99] = 8216824,
[100] = 8478880,
[101] = 999999999}
slowexppokes = {"Ho-oh", "Lucario", "Shiny Lucario", "Growlithe", "Arcanine", "Blaziken", "Sceptile", "Swampert", "Tentacool", "Tentacruel", "Shellder", "Cloyster", "Exeggcute", "Exeggutor", "Rhyhorn", "Rhydon", "Staryu", "Starmie", "Pinsir", "Tauros", "Magikarp", "Gyarados", "Lapras", "Aerodactyl", "Snorlax", "Articuno", "Zapdos", "Moltres", "Dratini", "Dragonair", "Dragonite", "Mewtwo", "Mew", "Chinchou", "Lanturn", "Heracross", "Swinub", "Piloswine", "Mantine", "Skarmory", "Houndour", "Houndoom", "Stantler", "Miltank", "Raikou", "Entei", "Suicune", "Larvitar", "Pupitar", "Tyranitar", "Lugia", "Shiny Growlithe", "Shiny Arcanine", "Shiny Tentacool", "Shiny Tentacruel", "Shiny Shellder", "Shiny Cloyster", "Shiny Exeggcute", "Shiny Exeggutor", "Shiny Rhyhorn", "Shiny Rhydon", "Shiny Staryu", "Shiny Starmie", "Shiny Pinsir", "Shiny Tauros", "Shiny Magikarp", "Shiny Gyarados", "Shiny Lapras", "Shiny Aerodactyl", "Shiny Snorlax", "Shiny Articuno", "Shiny Zapdos", "Shiny Moltres", "Shiny Dratini", "Shiny Dragonair", "Shiny Dragonite", "Mega Charizard Y", "Shiny Mew",}
slowexptable = {
[1] = 0,
[2] = 80,
[3] = 270,
[4] = 640,
[5] = 1250,
[6] = 2160,
[7] = 3430,
[8] = 5120,
[9] = 7290,
[10] = 10000,
[11] = 13310,
[12] = 17280,
[13] = 21970,
[14] = 27440,
[15] = 33750,
[16] = 40960,
[17] = 49130,
[18] = 58320,
[19] = 68590,
[20] = 80000,
[21] = 92610,
[22] = 106480,
[23] = 121670,
[24] = 138240,
[25] = 156250,
[26] = 175760,
[27] = 196830,
[28] = 219520,
[29] = 243890,
[30] = 270000,
[31] = 297910,
[32] = 327680,
[33] = 359370,
[34] = 393040,
[35] = 428750,
[36] = 466560,
[37] = 506530,
[38] = 548720,
[39] = 593190,
[40] = 640000,
[41] = 689210,
[42] = 740880,
[43] = 795070,
[44] = 851840,
[45] = 911250,
[46] = 973360,
[47] = 1038230,
[48] = 1105920,
[49] = 1176490,
[50] = 1250000,
[51] = 1326510,
[52] = 1406080,
[53] = 1488770,
[54] = 1574640,
[55] = 1663750,
[56] = 1756160,
[57] = 1851930,
[58] = 1951120,
[59] = 2053790,
[60] = 2160000,
[61] = 2269810,
[62] = 2383280,
[63] = 2500470,
[64] = 2621440,
[65] = 2746250,
[66] = 2874960,
[67] = 3007630,
[68] = 3144320,
[69] = 3285090,
[70] = 3430000,
[71] = 3579110,
[72] = 3732480,
[73] = 3890170,
[74] = 4052240,
[75] = 4218750,
[76] = 4389760,
[77] = 4565330,
[78] = 4745520,
[79] = 4930390,
[80] = 5120000,
[81] = 5314410,
[82] = 5513680,
[83] = 5717870,
[84] = 5927040,
[85] = 6141250,
[86] = 6360560,
[87] = 6585030,
[88] = 6814720,
[89] = 7049690,
[90] = 7290000,
[91] = 7535710,
[92] = 7786880,
[93] = 8043570,
[94] = 8305840,
[95] = 8573750,
[96] = 8847360,
[97] = 9126730,
[98] = 9411920,
[99] = 9702990,
[100] = 10000000,
[101] = 999999999}