Ir para conteúdo
  • Cadastre-se

Posts Recomendados

olá estou com um bug no meu ot alguém pode me ajudar  no meu otserver pokémon não sai da ball e da um erro 

[14/05/2017 01:19:07] [Error - Action Interface] 
[14/05/2017 01:19:07] data/actions/scripts/Basic/goback.lua:onUse
[14/05/2017 01:19:07] Description: 
[14/05/2017 01:19:07] data/actions/scripts/Basic/goback.lua:140: attempt to perform arithmetic on a nil value
[14/05/2017 01:19:07] stack traceback:

 

segue abaixo o goback.lua

 

local EFFECTS = {
    --[OutfitID] = {Effect}
    ["Magmar"] = 35,   
    ["Shiny Magmar"] = 35,
    ["Shiny Magmortar"] = 35,
    ["Shiny Electivire"] = 48,
    ["Magmortar"] = 35,
    ["Electivire"] = 48,    
    ["Jynx"] = 17,          --alterado v1.5
    ["Shiny Jynx"] = 17, 
    ["Piloswine"] = 205,  --alterado v1.8
    ["Swinub"] = 205,   
}

function onUse(cid, item, frompos, item2, topos)

if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end
if isRiderOrFlyOrSurf(cid) then return true end

if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 
or getPlayerStorageValue(cid, 75846) >= 1   then    --alterado v1.9 <<
doPlayerSendCancel(cid, "You cant use ur poke while riding")
   return true                                                                                                                        
end

local ballName = getItemAttribute(item.uid, "poke")
local btype = getPokeballType(item.itemid)
local usando = pokeballs[btype].use

local effect = pokeballs[btype].effect
    if not effect then
        effect = 21
    end
    
unLock(item.uid) --alterado v1.8

if item.itemid == usando and #getCreatureSummons(cid) > 0 then                           
    local summon = getCreatureSummons(cid)[1]
    if getPlayerStorageValue(summon, 9658783) == 1 and isInArray({"Aggron", "Sudowoodo", "Mega Aggron"}, getCreatureName(summon)) then
       doKillWildPoke(getCreatureSummons(cid)[1], getCreatureSummons(cid)[1])
       doPlayerSendCancel(cid, "This pokemon is fainted.")
       if isInDuel(cid) then
          doRemoveCountPokemon(cid)
       end
       return true
    end

    if getPlayerStorageValue(cid, 990) == 1 then -- GYM
        doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
    return true
    end
    if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then     --alterado v1.6
       if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then  
          BackTeam(cid)       
       end
    end   
    if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then
       doPlayerSendCancel(cid, "You can't do that while is controling a mind")
       return true     --alterado v1.5
    end

    if #getCreatureSummons(cid) <= 0 then
        if isInArray(pokeballs[btype].all, item.itemid) then
            doTransformItem(item.uid, pokeballs[btype].off)
            doItemSetAttribute(item.uid, "hp", 0)
            doPlayerSendCancel(cid, "This pokemon is fainted.")
            return true
        end
    end
    
    

    local cd = getCD(item.uid, "blink", 30)
    if cd > 0 then
       setCD(item.uid, "blink", 0)
    end
    
    local z = getCreatureSummons(cid)[1]
    
    if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then
       return true
    end
    
    if isInDuel(cid) then
       doRemoveCountPokemon(cid)
    end
    
    checkGiveUp(cid)
    
    doReturnPokemon(cid, z, item, effect)
    doPlayerSendCancel(cid, '12//,hide') --alterado v1.7
    doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_DITTO_MEMORY, "sair") -- ditto memory system
    

elseif item.itemid == pokeballs[btype].on then

        if #getCreatureSummons(cid) >= 1  then
       doPlayerSendCancel(cid, "You can't do that.")
       BackTeam(cid) 
       return true     --alterado v1.5
    end
    if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
        doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
    return TRUE
    end

    -- rever a seguranca do pokemon ser sumanado com 0 de hp

    local pokemon = getItemAttribute(item.uid, "poke")
    
    if not pokes[pokemon] then
    return true
    end

----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto ---------------------------------
if not isInArray({5, 6}, getPlayerGroupId(cid)) then
   local balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)
   local low = {}
   local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"}
   if #balls >= 1 then
      for _, uid in ipairs(balls) do
          local nome = getItemAttribute(uid, "poke")
          if not isInArray(lowPokes, pokemon) and nome == pokemon and not isGod(cid) then
             return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!")
          else
             if nome == pokemon then
                table.insert(low, nome)
             end
          end
      end
   end
if #low >= 3 then
   return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!")
end   
end
---------------------------------------------------------------------------------------------------------------------------------------------------

    local x = pokes[pokemon]
    local boost = getItemAttribute(item.uid, "boost") or 0
    local levelpoke = getItemAttribute(item.uid, "level")*2
    
    
    if getPlayerLevel(cid) < 220 and (levelpoke >=160 and levelpoke <=178) then 
    doPlayerSendCancel(cid, "You need level (220) to use this pokemon.")
       return true
    end
    
    if getPlayerLevel(cid) < 250 and (levelpoke >=180) then 
    doPlayerSendCancel(cid, "You need level (250) to use this pokemon.")
       return true
    end
    
    if getPlayerLevel(cid) < levelpoke then
    doPlayerSendCancel(cid, "You need level ("..levelpoke..") to use this pokemon.")
       return true
    end
    
    if getPlayerLevel(cid) < (x.level+boost) and getPlayerLevel(cid) < levelpoke * 2 then
       doPlayerSendCancel(cid, "You need higher level to use this pokemon.")
       return true
    end
    
    ---------------------------- Sistema pokes de clan --------------------------------------
    local shinysClan = {
    ["Shiny Fearow"] = {4, "Wingeon"},
    ["Shiny Flareon"] = {1, "Volcanic"},
    ["Shiny Vaporeon"] = {2, "Seavel"}, 
    ["Shiny Jolteon"] = {9, "Raibolt"},
    ["Shiny Hypno"] = {7, "Psycraft"},           
    ["Shiny Golem"] = {3, "Orebound"},
    ["Shiny Vileplume"] = {8, "Naturia"},
    ["Shiny Nidoking"] = {5, "Malefic"},
    ["Shiny Hitmontop"] = {6, "Gardestrike"},   --alterado v1.4
    }
    
    if shinysClan[pokemon] and getPlayerGroupId(cid) < 4 then  --alterado v1.9 \/
       if getPlayerClanNum(cid) ~= shinysClan[pokemon][1] then
          doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!")
          return true   
       elseif getPlayerClanRank(cid) < 3 then
          doPlayerSendCancel(cid, "You need be atleast rank 3 to use this pokemon!")
          return true
       end
    end
    --------------------------------------------------------------------------------------
    local isNicked, nick, pokemonRealName = false, pokemon, pokemon
    local pokeSourceCode = "sim"
    
    if getItemAttribute(item.uid, "copyName") then -- ditto system
        pokemon = getItemAttribute(item.uid, "copyName")
        pokemonRealName = getItemAttribute(item.uid, "poke")
    end
    
    if getItemAttribute(item.uid, "level") then -- level system
        levelin = getItemAttribute(item.uid, "level")
    end
    
    
    if getItemAttribute(item.uid, "nick") and getItemAttribute(item.uid, "nick") ~= "" then
        isNicked = true nick = getItemAttribute(item.uid, "nick")
        pokeSourceCode = doCreateMonsterNick(cid, pokemon, ""..getItemAttribute(item.uid, "nick").."["..levelin.."]", getThingPos(cid), true)
    else 
        pokeSourceCode = doCreateMonsterNick(cid, pokemon, ""..retireShinyName(pokemonRealName).."["..levelin.."]", getThingPos(cid), true) -- chama o pokemon com nome verdadeiro, mas se for shiny ja tera seu nome alterado
    end
    
    
    
    if pokeSourceCode == "Nao" then
       doSendMsg(cid, "Não há espaço para seu pokemon.")
       return true 
    end       
    

    local pk = getCreatureSummons(cid)[1]
    
          setMoveSummon(cid, true)
    if not isCreature(pk) then return true end
    
    ------------------------passiva hitmonchan------------------------------
    if isSummon(pk) then                                                  --alterado v1.8 \/
       if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then
          if not getItemAttribute(item.uid, "hands") then
             doSetItemAttribute(item.uid, "hands", 0)
          end
          local hands = getItemAttribute(item.uid, "hands")
          doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1)
       end
    end
    -------------------------------------------------------------------------
    ---------movement magmar, jynx-------------
    if EFFECTS[getCreatureName(pk)] then             
       markPosEff(pk, getThingPos(pk))
       sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk))  
    end
    --------------------------------------------------------------------------      

    doCreatureSetLookDir(pk, 2)
    

    adjustStatus(pk, item.uid, true, true, true)
    doRegenerateWithY(getCreatureMaster(pk), pk)
    doCureWithY(getCreatureMaster(pk), pk)

    doTransformItem(item.uid,  pokeballs[btype].use)


    local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", (isNicked and nick or retireShinyName(pokemon)))
    doCreatureSay(cid, mgo, TALKTYPE_ORANGE_1)
    
    doSendMagicEffect(getCreaturePosition(pk), effect)
    doSendParticleAura(pk, 81)
    doPlayerSendCancel(cid, '12//,show')
    doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_BATTLE_POKEMON, tostring(pk))
    setPokemonGhost(pk)
        
    
else

    doPlayerSendCancel(cid, "This pokemon is fainted.")

end
    
    -- otclient life
        doSendLifePokeToOTC(cid)
        doUpdateMoves(cid)
    -- otclient life
    
return true
end
 

Editado por richardmb (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 month later...
  • 1 month later...

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo