Ir para conteúdo
  • 0

Erro Pokeexp e Level System


gutaxavier

Pergunta

 

Olá, estou com esses erros e não sei como arrumar

 

https://prnt.sc/reuao7

 

https://prnt.sc/reuazw

 

Meu pokeexp.lua

Citar

local function playerAddExp(cid, exp)

local Tiers = {

[71] = {bonus = Exp1},

}

local exx = exp

local bonusvip = getConfigValue("BonusXpVip")

local msg = ""

local ball = getPlayerSlotItem(cid, 8)

local Tier = getItemAttribute(ball.uid, "heldx")

if isPremium(cid) then

exx = math.floor((exx / 100) * (100 + bonusvip))

end

if Tier and Tier > 70 and Tier < 78 then

exx = math.floor(exx * Tiers[Tier].bonus)

end

if getGlobalStorageValue(8445641) > os.time() then

exx = math.floor(exx * 2)

end

if getPlayerStorageValue(cid, 8445642) > os.time() then

exx = math.floor(exx * 1.5)

end

doPlayerAddExp(cid, exx)

   doSendAnimatedText(getThingPos(cid), exx, 215)

end

 

function onDeath(cid, corpse, deathList)

        

   if isSummon(cid) or not deathList or getCreatureName(cid) == "Evolution" then return true end --alterado v1.8

 

    -------------Edited Golden Arena-------------------------   --alterado v1.7 \/\/

    if getPlayerStorageValue(cid, 22546) == 1 then

       setGlobalStorageValue(22548, getGlobalStorageValue(22548)-1)

       if corpse.itemid ~= 0 then doItemSetAttribute(corpse.uid, "golden", 1) end  --alterado v1.8    

    end   

    if getPlayerStorageValue(cid, 22546) == 1 and getGlobalStorageValue(22548) == 0 then

       local wave = getGlobalStorageValue(22547)

       for _, sid in ipairs(getPlayersOnline()) do

           if isPlayer(sid) and getPlayerStorageValue(sid, 22545) == 1 then

              if getGlobalStorageValue(22547) < #wavesGolden+1 then

                 doPlayerSendTextMessage(sid, 20, "Wave "..wave.." will begin in "..timeToWaves.."seconds!")   

                 doPlayerSendTextMessage(sid, 28, "Wave "..wave.." will begin in "..timeToWaves.."seconds!") 

                 addEvent(creaturesInGolden, 100, GoldenUpper, GoldenLower, false, true, true)

                 addEvent(doWave, timeToWaves*1000)

              elseif getGlobalStorageValue(22547) == #wavesGolden+1 then

                 doPlayerSendTextMessage(sid, 20, "You have win the golden arena! Take your reward!")

                 doPlayerAddItem(sid, 2152, getPlayerStorageValue(sid, 22551)*2)    --premio

                 setPlayerStorageValue(sid, 22545, -1)

                 doTeleportThing(sid, getClosestFreeTile(sid, posBackGolden), false) 

                 setPlayerRecordWaves(sid)

              end

           end

       end

       if getGlobalStorageValue(22547) == #wavesGolden+1 then

          endGoldenArena()

       end

    end   

    ---------------------------------------------------   /\/\

   local givenexp = getWildPokemonExp(cid)  

 

if givenexp > 0 then

for a = 1, #deathList do

local pk = deathList[a]

---

local list = getSpectators(getThingPosWithDebug(pk), 30, 30, false)

if isCreature(pk) then 

   local expTotal = math.floor(givenexp)--playerExperienceRate * givenexp * getDamageMapPercent(pk, cid))   

   local party = getPartyMembers(pk)

   if isInParty(pk) and getPlayerStorageValue(pk, 4875498) <= -1 then

      expTotal = math.floor(expTotal/#party)         --alterado v1.6.1

      for i = 1, #party do

          if isInArray(list, party) then

             playerAddExp(party, expTotal)

          end

      end

   else

      playerAddExp(pk, expTotal)  

   end       

end

end

end

 

   if isNpcSummon(cid) then

      local master = getCreatureMaster(cid)

      doSendMagicEffect(getThingPos(cid), getPlayerStorageValue(cid, 10000))

      doCreatureSay(master, getPlayerStorageValue(cid, 10001), 1)

      doRemoveCreature(cid)

   return false

   end

 

if corpse.itemid ~= 0 then   --alterado v1.8

   doItemSetAttribute(corpse.uid, "level", getPokemonLevel(cid))

   doItemSetAttribute(corpse.uid, "gender", getPokemonGender(cid))  

end

return true

end

 

 

Meu level system.lua

Citar

function adjustWildPoke(cid, optionalLevel)

if isMonster(cid) and pokes[getCreatureName(cid)] then

 

    local level = (optionalLevel and optionalLevel >= 1) and optionalLevel or getPokemonLevel(cid)  --alterado v1.8

    

    setPlayerStorageValue(cid, 1000, level) --alterado v1.8

    setPlayerStorageValue(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 * level)

    setPlayerStorageValue(cid, 1005, pokes[getCreatureName(cid)].specialattack * level)

    

    doRegainSpeed(cid)       --alterado!

    setCreatureMaxHealth(cid, (getVitality(cid) * HPperVITwild)) 

    doCreatureAddHealth(cid,  getCreatureMaxHealth(cid))

   

    if pokes[getCreatureName(cid)].exp then

       local exp = pokes[getCreatureName(cid)].exp * baseExpRate + pokes[getCreatureName(cid)].vitality * pokemonExpPerLevelRate

       setPlayerStorageValue(cid, 1006, (exp * generalExpRate/2)*10)

       if getPlayerStorageValue(cid, 22546) == 1 then

          setPlayerStorageValue(cid, 1006, 750)

          doSetCreatureDropLoot(cid, false)      

       end   

    end

end

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 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 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])

        doItemSetAttribute(pokeball.uid, "tadport", fotos[theevo])

        doUpdatePokemonsBar(cid)

        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 then

            doItemSetAttribute(pokeball.uid, "happy", 255)

        end

 

        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 adjustStatus(pk, item, health, vite, conditions)

 

    if not isCreature(pk) then return true end

 

    local gender = getItemAttribute(item, "gender") and getItemAttribute(item, "gender") or 0

    addEvent(doCreatureSetSkullType, 10, pk, gender)

 

-- Defense -- 

local bonusdef = {}

local Tiers = {

[1] = {bonus = DefBonus1},

}

local Tier = getItemAttribute(item, "heldx")

 

if Tier and Tier > 0 and Tier < 8 then

bonusdef = Tiers[Tier].bonus

else

bonusdef = 1

end

-- Defense --

-- Boost -- 

local bonusboost = {}

local Tiers2 = {

[36] = {bonus = BoostBonus1},

}

if Tier and Tier > 35 and Tier < 43 then

bonusboost = Tiers2[Tier].bonus

else

bonusboost = 0

end

-- Boost -- 

-- Haste -- 

local hastespeed = {}

local Tiers3 = {

[99] = {bonus = Hasteadd1},

}

if Tier and Tier > 98 and Tier < 106 then

hastespeed = Tiers3[Tier].bonus

else

hastespeed = 0

end

-- Haste -- 

-- Vitality -- 

local vitapoint = {}

local Tiers4 = {

[92] = {bonus = Vitality1},

}

if Tier and Tier > 91 and Tier < 99 then

vitapoint = Tiers4[Tier].bonus

else

vitapoint = 1

end

-- Vitality -- 

     setPlayerStorageValue(pk, 1001, pokes[getCreatureName(pk)].offense * (((getMasterLevel(pk) / 100) * 80) + getPokemonBoost(pk)) + bonusboost)

    setPlayerStorageValue(pk, 1002, (pokes[getCreatureName(pk)].defense) * bonusdef + bonusboost)             

    setPlayerStorageValue(pk, 1003, pokes[getCreatureName(pk)].agility + hastespeed)

    setPlayerStorageValue(pk, 1004, (pokes[getCreatureName(pk)].vitality * (((getMasterLevel(pk) / 100) * 80) + getPokemonBoost(pk)) + bonusboost) * vitapoint) 

    setPlayerStorageValue(pk, 1005, pokes[getCreatureName(pk)].specialattack * (((getMasterLevel(pk) / 100) * 80) + getPokemonBoost(pk)) + bonusboost)

    

    if vite == true then

        local pct = getCreatureHealth(pk) / getCreatureMaxHealth(pk)

        local vit = getVitality(pk)

        setCreatureMaxHealth(pk, ( vit * HPperVITsummon ))

        doCreatureAddHealth(pk, pct * vit * HPperVITsummon)

    end

                                                                      

    doRegainSpeed(pk)  

 

    local nick = getItemAttribute(item, "poke")

 

    if isGhostPokemon(pk) then

       setPlayerStorageValue(pk, 8981, 1)

       updateGhostWalk(pk)

    end

        

    if string.find(tostring(nick), "Shiny") then

       nick = tostring(nick):match("Shiny (.*)")

    end

 

    if getItemAttribute(item, "nick") then

        nick = getItemAttribute(item, "nick")

    end

    local boostnick = getItemAttribute(item, "boost")

    if boostnick then

        nick = nick.." [+"..boostnick.."]"

    end

 

    setPlayerStorageValue(pk, 1007, nick)

 

    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 = HPperVITsummon * 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

        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 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) 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 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 getPlayerStorageValue(cid, 1006)

end

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...