Ir para conteúdo
  • 0

Erro Poketibia pokeexp


Pergunta

Boa noite, estou com um erro na distro que esta me causando dor de cabeça.

 

[Error - CreatureScript Interface]
data/creaturescripts/scripts/pokeexp.lua:onDeath
Description:
data/lib/Experience.lua:23: attempt to compare number with boolean
stack traceback:
data/lib/Experience.lua:23: in function 'rate'
data/creaturescripts/scripts/pokeexp.lua:98: in function

[Error - CreatureScript Interface]
data/creaturescripts/scripts/pokeexp.lua:onDeath
Description:
(internalGetPlayerInfo) Player not found when requesting player info #3

 

pokeexp.lua

  Mostrar conteúdo oculto

 

Experience.lua da lib

  Mostrar conteúdo oculto

 

Alguem poderia me ajudar?

Rep+

Link para o comentário
https://xtibia.com/forum/topic/250325-erro-poketibia-pokeexp/
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

@Taiger Tenta assim:

 

local function doReceiveTeamRocket(cid)
	math.randomseed = os.time()
	local q1 = math.random(1,10)
	local q = math.random(q1, 20)
	local sto = 17067
	local Clans = {
		{1, stones={fire, fire}}, -- volcanic
		{2, stones={water, ice}}, -- seavell
		{3, stones={rock, earth}}, -- orebound
		{4, stones={heart, heart}}, -- wingeon
		{5, stones={dark, venom}}, -- malefic
		{6, stones={heart, punch}}, -- gardestrike
		{7, stones={enigma, enigma}}, -- psycraft
		{8, stones={grass, coccon}}, -- naturia
		{9, stones={thunder, thunder}}, -- raibolt
	}
	local function addStonePerClan(cid, table, q)
		for z=1, #table do
			doPlayerAddItem(cid, table[z], q)
		end
	end
	if Clans[getPlayerClanNum(cid)] then
		local clan = getPlayerClanNum(cid)
		addStonePerClan(cid, Clans[clan].stones, q)
		playerAddExp(cid, q*1000)
		setPlayerStorageValue(cid, sto, 1)
	else
		doPlayerAddItem(cid, 2160, q)
		playerAddExp(cid, q*1000)
		setPlayerStorageValue(cid, sto, 1)
	end
	doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
end

function onDeath(cid, corpse, deathList)
    --if not isCreature(cid) then return true end
    if isSummon(cid) or not deathList or getCreatureNameWithProtect(cid) == "Evolution" then return true end --alterado v1.8
	local pokedexp = getCreatureNameWithProtect(cid)
    -------------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, "Você foi o último sobrevivente da Golden arena tome sua recompensa!")
					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)
    ---local killer = getItemAttribute(corpse.uid, "corpseowner")  
    local pkpos = getThingPos(cid)
    local topleft = {x=1879, y=1027, z=8}
    local bottomright = {x=1893, y=1073, z=8}
    if pokedexp == "Unown Legion" and ((pkpos.x >= topleft.x and pkpos.x <= bottomright.x) and (pkpos.y >= topleft.y and pkpos.y <= bottomright.y))then
        addEvent(function() doSummonCreature("Unown Legion", pkpos) end, 60000)
    end
	if tonumber(givenexp) and givenexp >= 0 then
		for a = 1, #deathList do
			local pk = deathList[a]
			---
			local list = getSpectators(getThingPosWithDebug(pk), 30, 30, false)
			if pokedexp == "Rocket Team" and isInParty(pk) then
				break
			end 
			if isCreature(pk) then 
				--local expTotal = math.floor(givenexp * getDamageMapPercent(pk, cid))
				local expTotal = math.floor(givenexp)
				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)
							playerAddExp(getCreatureMaster(party), expTotal * ExperienceLib.rate(getPlayerLevel(getCreatureMaster(party))))
						end
					end
				elseif not isInParty(pk) then
					if pokedexp == "Rocket Team" then
						doReceiveTeamRocket(getCreatureMaster(pk))
					return true
					end
					--playerAddExp(pk, expTotal)
					playerAddExp(getCreatureMaster(pk), math.floor((ExperienceLib.rate(getPlayerLevel(getCreatureMaster(pk))) * (givenexp))))
				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

 

Link para o comentário
https://xtibia.com/forum/topic/250325-erro-poketibia-pokeexp/#findComment-1754005
Compartilhar em outros sites

  • 0

 

  Em 08/10/2019 em 19:35, gabrielzika disse:

@Taiger Tenta assim:

 

local function doReceiveTeamRocket(cid)
	math.randomseed = os.time()
	local q1 = math.random(1,10)
	local q = math.random(q1, 20)
	local sto = 17067
	local Clans = {
		{1, stones={fire, fire}}, -- volcanic
		{2, stones={water, ice}}, -- seavell
		{3, stones={rock, earth}}, -- orebound
		{4, stones={heart, heart}}, -- wingeon
		{5, stones={dark, venom}}, -- malefic
		{6, stones={heart, punch}}, -- gardestrike
		{7, stones={enigma, enigma}}, -- psycraft
		{8, stones={grass, coccon}}, -- naturia
		{9, stones={thunder, thunder}}, -- raibolt
	}
	local function addStonePerClan(cid, table, q)
		for z=1, #table do
			doPlayerAddItem(cid, table[z], q)
		end
	end
	if Clans[getPlayerClanNum(cid)] then
		local clan = getPlayerClanNum(cid)
		addStonePerClan(cid, Clans[clan].stones, q)
		playerAddExp(cid, q*1000)
		setPlayerStorageValue(cid, sto, 1)
	else
		doPlayerAddItem(cid, 2160, q)
		playerAddExp(cid, q*1000)
		setPlayerStorageValue(cid, sto, 1)
	end
	doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
end

function onDeath(cid, corpse, deathList)
    --if not isCreature(cid) then return true end
    if isSummon(cid) or not deathList or getCreatureNameWithProtect(cid) == "Evolution" then return true end --alterado v1.8
	local pokedexp = getCreatureNameWithProtect(cid)
    -------------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, "Você foi o último sobrevivente da Golden arena tome sua recompensa!")
					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)
    ---local killer = getItemAttribute(corpse.uid, "corpseowner")  
    local pkpos = getThingPos(cid)
    local topleft = {x=1879, y=1027, z=8}
    local bottomright = {x=1893, y=1073, z=8}
    if pokedexp == "Unown Legion" and ((pkpos.x >= topleft.x and pkpos.x <= bottomright.x) and (pkpos.y >= topleft.y and pkpos.y <= bottomright.y))then
        addEvent(function() doSummonCreature("Unown Legion", pkpos) end, 60000)
    end
	if tonumber(givenexp) and givenexp >= 0 then
		for a = 1, #deathList do
			local pk = deathList[a]
			---
			local list = getSpectators(getThingPosWithDebug(pk), 30, 30, false)
			if pokedexp == "Rocket Team" and isInParty(pk) then
				break
			end 
			if isCreature(pk) then 
				--local expTotal = math.floor(givenexp * getDamageMapPercent(pk, cid))
				local expTotal = math.floor(givenexp)
				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)
							playerAddExp(getCreatureMaster(party), expTotal * ExperienceLib.rate(getPlayerLevel(getCreatureMaster(party))))
						end
					end
				elseif not isInParty(pk) then
					if pokedexp == "Rocket Team" then
						doReceiveTeamRocket(getCreatureMaster(pk))
					return true
					end
					--playerAddExp(pk, expTotal)
					playerAddExp(getCreatureMaster(pk), math.floor((ExperienceLib.rate(getPlayerLevel(getCreatureMaster(pk))) * (givenexp))))
				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

 

Expand  

Agora em party não da xp.

Link para o comentário
https://xtibia.com/forum/topic/250325-erro-poketibia-pokeexp/#findComment-1754007
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

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