PO

[Encerrado] ERRO POKEEXP

Por Poke X Ice, 06 de set. de 2018 em Tópicos Sem Resposta

4
942
06 de setembro de 2018 às 13:26

estou com um problema no meu poketibia

 

Servidor 

Versão:0.3.6

Derivado:Poketibia

 

oq está acontecendo quando um player mata vários megar gengar, está  acontecendo esse erro:

Spoiler


[06/09/2018 13:20:35] [Error - CreatureScript Interface] 
[06/09/2018 13:20:35] data/creaturescripts/scripts/pokeexp.lua:onDeath
[06/09/2018 13:20:35] Description: 
[06/09/2018 13:20:35] (luaDoPlayerAddExperience) Player not found

 

script pokeexp:

Spoiler

local function playerAddExp(cid, exp)
    doPlayerAddExp(cid, exp)
    doSendAnimatedText(getThingPos(cid), exp, 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(playerExperienceRate * 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)
          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

 

Editado Setembro 6 por Poke X Ice

MarshmelloM
06 de setembro de 2018 às 16:01

@Poke X Ice

Spoiler

local function playerAddExp(cid, exp)
   doPlayerAddExp(cid, exp)
   doSendAnimatedText(getThingPos(cid), exp, 215)
end

local Exps = {
{minL = 1, maxL = 51, multipler = 1.6},
{minL = 51, maxL = 150, multipler = 1.4},
{minL = 150, maxL = 199, multipler = 1.2},
{minL = 200, maxL = 249, multipler = 1.0},
{minL = 250, maxL = 299, multipler = 0.9},
}

local function calculaExp(cid, expTotal)
if not isPlayer(cid) then return 0 end
   local expFinal = expTotal
   local flag = false
   for _, TABLE in pairs(Exps) do
          if getPlayerLevel(cid) >= TABLE.minL and getPlayerLevel(cid) <= TABLE.maxL then
                 flag = true
                 expFinal = expFinal * TABLE.multipler
                 break
          end
   end
   if not flag then expFinal = expFinal * 0.1 end --lvl 300+
return math.floor(expFinal)
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-------------------------
   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(playerExperienceRate * givenexp / 1.9)
                                   expTotal = calculaExp(pk, expTotal)
                         local party = getPartyMembers(pk)
                         if isInParty(pk) and getPlayerStorageValue(pk, 4875498) <= -1 then
                            expTotal = math.floor(expTotal/#party)
                            for i = 1, #party do
                                    if isInArray(list, party) then
                                           playerAddExp(party, expTotal)
                                    end
                            end
                         else
                                 playerAddExp(pk, expTotal)
                                 -- setPlayerStorageValue(pk, 300522413, getPlayerStorageValue(cid, 300522413))
                                 
                         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, "nick", getPokemonLevel(cid))
          doItemSetAttribute(corpse.uid, "level", getPokeLevel(cid))
          doItemSetAttribute(corpse.uid, "gender", getPokemonGender(cid))
   end
return true
end

 

CrypterC
11 de setembro de 2018 às 04:41
local function playerAddExp(cid, exp)
	if not isCreature(cid) then return false end
	doPlayerAddExp(cid, exp)
	doSendAnimatedText(getThingPos(cid), exp, 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(playerExperienceRate * 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)
						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 and corpse.itemid ~= 0 then   --alterado v1.8
	  --doItemSetAttribute(corpse.uid, "level", getPokemonLevel(cid))
		doItemSetAttribute(corpse.uid, "gender", getPokemonGender(cid))  
	end
	return true
end

 

5 meses depois...
MarshmelloM
20 de fevereiro de 2019 às 16:33
A questão neste 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.