Ir para conteúdo

[Encerrado] Problema Login.lua PDA


narutochuuu

Posts Recomendados

Eu fui testar o account manager e deu isso aqui:

 

[19/01/2013 20:25:48] [Error - CreatureScript Interface]
[19/01/2013 20:25:48] data/creaturescripts/scripts/login.lua:onLogin
[19/01/2013 20:25:48] Description:
[19/01/2013 20:25:48] data/lib/level system.lua:55: attempt to perform arithmetic on local 'd' (a nil value)
[19/01/2013 20:25:48] stack traceback:
[19/01/2013 20:25:48]  data/lib/level system.lua:55: in function 'getPokemonXMLOutfit'
[19/01/2013 20:25:48]  data/creaturescripts/scripts/login.lua:39: in function <data/creaturescripts/scripts/login.lua:6>

 

e o erro está nesta linha eu acho:

 

  outfit = {lookType = getPokemonXMLOutfit(oldpokedex[math.random(151)][1])}

 

Tem como arrumar isso?

Link para o comentário
Compartilhar em outros sites

É obrigado colocar todos os shinys?

 

Eu adicionei apenas 4 por enquanto. Aqui a Level System:

 

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)
local johto = false
for i = 209, 308 do	   --alterado v1.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 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)
 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								   --alterado v1.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 gender = getItemAttribute(item, "gender") and getItemAttribute(item, "gender") or 0
addEvent(doCreatureSetSkullType, 10, pk, gender)
   setPlayerStorageValue(pk, 1001, pokes[getCreatureName(pk)].offense * (getMasterLevel(pk) + getPokemonBoost(pk)))
setPlayerStorageValue(pk, 1002, pokes[getCreatureName(pk)].defense)    --alterado v1.5		  
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 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
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)											    --alterado v1.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 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)
if not isCreature(cid) then return 0 end
   if ehMonstro(cid) and getPlayerStorageValue(cid, 1000) > 0 then  --alterado v1.8
   return getPlayerStorageValue(cid, 1000)
   elseif ehMonstro(cid) then
   return pokes[getCreatureName(cid)].wildLvl			
   end  
return pokes[getCreatureName(cid)].level
end
function getPokemonLevelByName(name)
if tostring(name) then					   --alterado v1.5
  return pokes[name].level
end
return 0
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)
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

Mas eu coloquei, olha o xml deles:

 

  <monster name="Shiny Sewaddle" file="pokes/Shiny/Shiny Sewaddle.xml"/>
  <monster name="Shiny Munna" file="pokes/Shiny/Shiny Munna.xml"/>
  <monster name="Shiny Musharna" file="pokes/Shiny/Shiny Musharna.xml"/>
  <monster name="Shiny Krookodile" file="pokes/Shiny/Shiny Krookodile.xml"/>

Link para o comentário
Compartilhar em outros sites

podes tb tentar fazer isso..

acha essa linha ali..

local d, e = c:find('look type="(.-)"') 

e adiciona isso embaixo..

if not d then
print("[xml] Error pokemon: "..name)
return 0
end

dai quando for dar o erro vai aparecer uma msg no console dizendo o nome do poke q ta errado.. dai tu ve aonde ele ta e me diz e manda o .xml dele...

Link para o comentário
Compartilhar em outros sites

@Edit

 

 <monster name="Shiny Alakazam cm" file="pokes/Control/CMShiny Alakazam.xml"/>
 <monster name="Shiny Gengar cm" file="pokes/Control/CMShiny Gengar.xml"/>
 <monster name="Shiny Tentacruel cm" file="pokes/Control/CMShiny Tentacruel.xml"/>
   <monster name="Shiny ScytherTeam" file="pokes/Shredder Team/Shiny Scyther.xml"/>

 

Os shinys que tem no monster.xml que não está na pasta Shiny

 

Será que não tem algo a ver com a pasta Spawn.lua? Eu não adicionei os novos pokes lá...

Link para o comentário
Compartilhar em outros sites

veio o problema n eh soh com os shinys.. faz oq eu flei ali emcima q deve apontar aonde ta o problema..

e esse shinys devem ficar ae ms...

e n, n tem a ver com o spawn.lua

Link para o comentário
Compartilhar em outros sites

podes tb tentar fazer isso..

acha essa linha ali..

local d, e = c:find('look type="(.-)"') 

e adiciona isso embaixo..

if not d then
print("[xml] Error pokemon: "..name)
return 0
end

dai quando for dar o erro vai aparecer uma msg no console dizendo o nome do poke q ta errado.. dai tu ve aonde ele ta e me diz e manda o .xml dele...

 

Linha de que arquivo? O_O

Link para o comentário
Compartilhar em outros sites

  • 5 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...