Oi, eu preciso mudar formula de vida em pokemon NAO SALVAGENS .. y me da bug qndo abro server.
[12/08/2013 23:42:29] [Error - CreatureScript Interface]
[12/08/2013 23:42:29] In a timer event called from:
[12/08/2013 23:42:29] data/creaturescripts/scripts/spawn.lua:onSpawn
[12/08/2013 23:42:29] Description:
[12/08/2013 23:42:29] data/lib/level system.lua:11: attempt to perform arithmetic on field 'basevit' (a nil value)
[12/08/2013 23:42:29] stack traceback:
[12/08/2013 23:42:29] data/lib/level system.lua:11: in function <data/lib/level system.lua:1>
level system.lua
function adjustWildPoke(cid, optionalLevel)
if isMonster(cid) and pokes[getCreatureName(cid)] thenlocal level = (optionalLevel and optionalLevel >= 1) and optionalLevel or getPokemonLevel(cid)local level2 = ((optionalLevel and optionalLevel >= 1) and optionalLevel or getPokemonLevel(cid) - pokes[getCreatureName(cid)].level)setPlayerStorageValue(cid, 1000, level) --alterado v1.8setPlayerStorageValue(cid, 1001, pokes[getCreatureName(cid)].offense * level)setPlayerStorageValue(cid, 1002, pokes[getCreatureName(cid)].defense)setPlayerStorageValue(cid, 1003, pokes[getCreatureName(cid)].agility)setPlayerStorageValue(cid, 1004, pokes[getCreatureName(cid)].vitality * level2 + pokes[getCreatureName(cid)].basevit)setPlayerStorageValue(cid, 1005, pokes[getCreatureName(cid)].specialattack * level)doRegainSpeed(cid) --alterado!setCreatureMaxHealth(cid, pokes[getCreatureName(cid)].basevit)doCreatureAddHealth(cid, getCreatureMaxHealth(cid))if pokes[getCreatureName(cid)].exp thenlocal exp = pokes[getCreatureName(cid)].exp * baseExpRate + pokes[getCreatureName(cid)].vitality * pokemonExpPerLevelRatesetPlayerStorageValue(cid, 1006, (exp * generalExpRate/2)*10)if getPlayerStorageValue(cid, 22546) == 1 thensetPlayerStorageValue(cid, 1006, 750)doSetCreatureDropLoot(cid, false)endendendendfunction getPokemonXMLOutfit(name) --alterado v1.9 \/local path = "data/monster/pokes/Shiny/"..name..".xml"local tpw = io.type(io.open(path))if not tpw thenpath = "data/monster/pokes/geracao 2/"..name..".xml"tpw = io.type(io.open(path))endif not tpw thenpath = "data/monster/pokes/geracao 1/"..name..".xml"tpw = io.type(io.open(path))endif not tpw thenpath = "data/monster/pokes/"..name..".xml"tpw = io.type(io.open(path))endif not tpw thenreturn print("[getPokemonXMLOutfit] Poke with name: "..name.." ins't in any paste on monster/pokes/") and 2endlocal 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)endfunction doEvolutionOutfit(cid, oldout, outfit)if not isCreature(cid) then return true endif getCreatureOutfit(cid).lookType == oldout thendoSetCreatureOutfit(cid, {lookType = outfit}, -1)elsedoSetCreatureOutfit(cid, {lookType = oldout}, -1)endendfunction doSendEvolutionEffect(cid, pos, evolution, turn, ssj, evolve, f, h)if not isCreature(cid) thendoSendAnimatedText(pos, "CANCEL", 215)return trueendif evolve thendoEvolvePokemon(getCreatureMaster(cid), {uid = cid}, evolution, 0, 0)return trueenddoSendMagicEffect(pos, 18)if ssj thensendSSJEffect(evo)enddoEvolutionOutfit(cid, f, h)addEvent(doSendEvolutionEffect, math.pow(1900, turn/20), cid, getThingPos(cid), evolution, turn - 1, turn == 19, turn == 2, f, h)endfunction sendSSJEffect(cid)if not isCreature(cid) then return true endlocal 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)endfunction sendFinishEvolutionEffect(cid, alternate)if not isCreature(cid) then return true endlocal pos1 = getThingPos(cid)if alternate thenlocal 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 dolocal 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)endelsefor a = 0, 3 dodoSendDistanceShoot(pos1, getPosByDir(pos1, a), 37)endfor a = 4, 7 doaddEvent(doSendDistanceShoot, 600, pos1, getPosByDir(pos1, a), 37)endendendfunction doEvolvePokemon(cid, item2, theevo, stone1, stone2)if not isCreature(cid) then return true endif not pokes[theevo] or not pokes[theevo].offense thendoReturnPokemon(cid, item2.uid, getPlayerSlotItem(cid, 8), pokeballs[getPokeballType(getPlayerSlotItem(cid, 8).itemid)].effect, false, true)return trueendlocal 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)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 thendoItemSetAttribute(pokeball.uid, "happy", 255)endadjustStatus(pk, pokeball.uid, true, false)if useKpdoDlls thendoUpdateMoves(cid)endendfunction doMathDecimal(number, casas)if math.floor(number) == number then return number endlocal c = casas and casas + 1 or 3for a = 0, 10 doif math.floor(number) < math.pow(10, a) thenlocal str = string.sub(""..number.."", 1, a + c)return tonumber(str)endendreturn numberendfunction doAdjustWithDelay(cid, pk, health, vit, status)if isCreature(cid) thenadjustStatus(pk, getPlayerSlotItem(cid, 8).uid, health, vir, status)endendfunction adjustStatus(pk, item, health, vite, conditions)if not isCreature(pk) then return true endlocal gender = getItemAttribute(item, "gender") and getItemAttribute(item, "gender") or 0addEvent(doCreatureSetSkullType, 10, pk, gender)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)))if vite == true thenlocal pct = getCreatureHealth(pk) / getCreatureMaxHealth(pk)local vit = getVitality(pk)setCreatureMaxHealth(pk, ( vit * HPperVITsummon ))doCreatureAddHealth(pk, pct * vit * HPperVITsummon)enddoRegainSpeed(pk)local nick = getItemAttribute(item, "poke")if isGhostPokemon(pk) thensetPlayerStorageValue(pk, 8981, 1)updateGhostWalk(pk)endif string.find(tostring(nick), "Shiny") thennick = tostring(nick):match("Shiny (.*)")endif getItemAttribute(item, "nick") thennick = getItemAttribute(item, "nick")endsetPlayerStorageValue(pk, 1007, nick)doCreatureSetNick(pk, nick)if not getItemAttribute(item, "happy") thendoItemSetAttribute(item, "happy", 120)endif not getItemAttribute(item, "hunger") thendoItemSetAttribute(item, "hunger", 5)endlocal happy = getItemAttribute(item, "happy")if happy < 0 thenhappy = 1endsetPlayerStorageValue(pk, 1008, happy)local hunger = getItemAttribute(item, "hunger")setPlayerStorageValue(pk, 1009, hunger)if health == true thenlocal mh = HPperVITsummon * getVitality(pk)local rd = 1 - (tonumber(getItemAttribute(item, "hp")))setCreatureMaxHealth(pk, mh)doCreatureAddHealth(pk, getCreatureMaxHealth(pk))doCreatureAddHealth(pk, -(getCreatureMaxHealth(pk) * rd))endif isSummon(pk) and conditions thenlocal burn = getItemAttribute(item, "burn")if burn and burn >= 0 thenlocal ret = {id = pk, cd = burn, check = false, damage = getItemAttribute(item, "burndmg"), cond = "Burn"}addEvent(doCondition2, 3500, ret)endlocal poison = getItemAttribute(item, "poison")if poison and poison >= 0 thenlocal ret = {id = pk, cd = poison, check = false, damage = getItemAttribute(item, "poisondmg"), cond = "Poison"}addEvent(doCondition2, 1500, ret)endlocal confuse = getItemAttribute(item, "confuse")if confuse and confuse >= 0 thenlocal ret = {id = pk, cd = confuse, check = false, cond = "Confusion"}addEvent(doCondition2, 1200, ret)endlocal sleep = getItemAttribute(item, "sleep")if sleep and sleep >= 0 thenlocal ret = {id = pk, cd = sleep, check = false, first = true, cond = "Sleep"}doCondition2(ret)endlocal miss = getItemAttribute(item, "miss")if miss and miss >= 0 thenlocal ret = {id = pk, cd = miss, eff = getItemAttribute(item, "missEff"), check = false, spell = getItemAttribute(item, "missSpell"), cond = "Miss"}doCondition2(ret)endlocal fear = getItemAttribute(item, "fear")if fear and fear >= 0 thenlocal ret = {id = pk, cd = fear, check = false, skill = getItemAttribute(item, "fearSkill"), cond = "Fear"}doCondition2(ret)endlocal silence = getItemAttribute(item, "silence")if silence and silence >= 0 thenlocal ret = {id = pk, cd = silence, eff = getItemAttribute(item, "silenceEff"), check = false, cond = "Silence"}doCondition2(ret)endlocal stun = getItemAttribute(item, "stun")if stun and stun >= 0 thenlocal ret = {id = pk, cd = stun, eff = getItemAttribute(item, "stunEff"), check = false, spell = getItemAttribute(item, "stunSpell"), cond = "Stun"}doCondition2(ret)endlocal paralyze = getItemAttribute(item, "paralyze")if paralyze and paralyze >= 0 thenlocal ret = {id = pk, cd = paralyze, eff = getItemAttribute(item, "paralyzeEff"), check = false, first = true, cond = "Paralyze"}doCondition2(ret)endlocal slow = getItemAttribute(item, "slow")if slow and slow >= 0 thenlocal ret = {id = pk, cd = slow, eff = getItemAttribute(item, "slowEff"), check = false, first = true, cond = "Slow"}doCondition2(ret)endlocal leech = getItemAttribute(item, "leech")if leech and leech >= 0 thenlocal ret = {id = pk, cd = leech, attacker = 0, check = false, damage = getItemAttribute(item, "leechdmg"), cond = "Leech"}doCondition2(ret)endfor i = 1, 3 dolocal buff = getItemAttribute(item, "Buff"..i)if buff and buff >= 0 thenlocal 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)endendend--alterado v1.9if getItemAttribute(item, "boost") and getItemAttribute(item, "boost") >= 50 and getItemAttribute(item, "aura") thensendAuraEffect(pk, auraSyst[getItemAttribute(item, "aura")])endif getPlayerStorageValue(getCreatureMaster(pk), 6598754) >= 1 thensetPlayerStorageValue(pk, 6598754, 1)elseif getPlayerStorageValue(getCreatureMaster(pk), 6598755) >= 1 thensetPlayerStorageValue(pk, 6598755, 1)endreturn trueendfunction getOffense(cid)if not isCreature(cid) then return 0 endreturn tonumber(getPlayerStorageValue(cid, 1001))endfunction getDefense(cid)if not isCreature(cid) then return 0 endreturn tonumber(getPlayerStorageValue(cid, 1002))endfunction getSpeed(cid)if not isCreature(cid) then return 0 endreturn tonumber(getPlayerStorageValue(cid, 1003))endfunction getVitality(cid)if not isCreature(cid) then return 0 endreturn tonumber(getPlayerStorageValue(cid, 1004))endfunction getSpecialAttack(cid)if not isCreature(cid) then return 0 endreturn tonumber(getPlayerStorageValue(cid, 1005))endfunction getHappiness(cid)if not isCreature(cid) then return 0 endreturn tonumber(getPlayerStorageValue(cid, 1008))endfunction getSpecialDefense(cid)if not isCreature(cid) then return 0 endreturn getSpecialAttack(cid) * 0.85 + getDefense(cid) * 0.2endfunction getPokemonLevel(cid, dex)if not isCreature(cid) then return 0 endif not dex then --alterado v1.9if ehMonstro(cid) and getPlayerStorageValue(cid, 1000) > 0 thenreturn getPlayerStorageValue(cid, 1000)elseif ehMonstro(cid) thenreturn pokes[getCreatureName(cid)].wildLvlendendreturn pokes[getCreatureName(cid)].levelendfunction getPokemonLevelByName(name)return pokes[name] and pokes[name].level or 0 --alterado v1.9endfunction getMasterLevel(poke)if not isSummon(poke) then return 0 endreturn getPlayerLevel(getCreatureMaster(poke))endfunction getPokemonBoost(poke)if not isSummon(poke) then return 0 endreturn getItemAttribute(getPlayerSlotItem(getCreatureMaster(poke), 8).uid, "boost") or 0endfunction getPokeballBoost(ball)if not isPokeball(ball.itemid) then return 0 end --alterado v1.8return getItemAttribute(ball.uid, "boost") or 0endfunction getPokeName(cid)if not isSummon(cid) then return getCreatureName(cid) endif getCreatureName(cid) == "Evolution" then return getPlayerStorageValue(cid, 1007) endlocal item = getPlayerSlotItem(getCreatureMaster(cid), 8)if getItemAttribute(item.uid, "nick") thenreturn getItemAttribute(item.uid, "nick")endif string.find(tostring(getCreatureName(cid)), "Shiny") thenlocal newName = tostring(getCreatureName(cid)):match("Shiny (.*)")return newNameendreturn getCreatureName(cid)endfunction getPokeballName(item, truename)if not truename and getItemAttribute(item, "nick") thenreturn getItemAttribute(item, "nick")endreturn getItemAttribute(item, "poke")endfunction getPokemonName(cid)return getCreatureName(cid)endfunction getPokemonGender(cid) --alterado v1.9return getCreatureSkullType(cid)endfunction setPokemonGender(cid, gender)if isCreature(cid) and gender then --alterado v1.8doCreatureSetSkullType(cid, gender)return trueendreturn falseendfunction getWildPokemonExp(cid)return getPlayerStorageValue(cid, 1006)end
obrigado desde ja!