Use esse pokeexp.lua: É para server sem lvl
local balls = {11826, 11828, 11829, 11831, 11832, 11834, 11835, 11837,
11737, 11739, 11740, 11742, 11743, 11745, 11746, 11748}
local Exps = {
[{1, 49}] = 1,
[{50, 74}] = 0.8,
[{75, 99}] = 0.6,
[{100, 149}] = 0.5,
[{150, 199}] = 0.4,
}
--2798 -normal- //
local function playerAddExp(cid, exp)
doPlayerAddExp(cid, exp)
doSendAnimatedText(getThingPos(cid), exp, 215)
end
local function calculaExp(cid, expTotal)
if not isPlayer(cid) then return 0 end
local expFinal = expTotal
for lvl, exp in pairs(Exps) do
if getPlayerLevel(cid) >= lvl[1] or getPlayerLevel(cid) <= lvl[2] then
expFinal = expFinal * exp
break
end
end
if expFinal == expTotal then expFinal = expFinal * 0.1 end --lvl 200+
return math.floor(expFinal)
end
local function giveExpToPlayer(pk, expTotal, givenexp, expstring) --alterado v2.7
playerAddExp(pk, expTotal)
local firstball = getPlayerSlotItem(pk, 8)
if not isInParty(pk) and firstball and getItemAttribute(firstball.uid, expstring) and getItemAttribute(firstball.uid, expstring) > 0 then
local percent = getItemAttribute(firstball.uid, expstring) <= 1 and getItemAttribute(firstball.uid, expstring) or 1
local gainexp = math.ceil(percent * givenexp)
doItemSetAttribute(firstball.uid, expstring, 0)
givePokemonExp(pk, firstball, expTotal) --alterado v2.7
elseif isInParty(pk) and firstball.uid ~= 0 then
givePokemonExp(pk, firstball, expTotal*3) --alterado v2.7
end
for b = 1, #balls do
local pokes = getItemsInContainerById(getPlayerSlotItem(pk, 3).uid, balls)
if #pokes >= 1 then
for _, uid in pairs (pokes) do
if not isInParty(pk) and getItemAttribute(uid, expstring) and getItemAttribute(uid, expstring) > 0 then
local percent = getItemAttribute(uid, expstring) <= 1 and getItemAttribute(uid, expstring) or 1
local gainexp = math.ceil(percent * givenexp)
doItemSetAttribute(uid, expstring, 0)
givePokemonExpInBp(pk, uid, gainexp, balls) --alterado v2.7
elseif isInParty(pk) and getItemAttribute(uid, expstring) and getItemAttribute(uid, expstring) > 0 then
givePokemonExpInBp(pk, uid, expTotal*3, balls)
end
end
end
end
end
function onDeath(cid, corpse, deathList)
--if not isCreature(cid) then return true end
if isSummon(cid) or not deathList or corpse.itemid == 0 or getCreatureName(cid) == "Evolution" then return true end
-------------Edited Golden Arena------------------------- --alterado v2.7 \/\/
if getPlayerStorageValue(cid, 22546) == 1 then
setGlobalStorageValue(22548, getGlobalStorageValue(22548)-1)
doItemSetAttribute(corpse.uid, "golden", 1)
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, 21, "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)
local expstring = ""..cid.."expEx"
if givenexp > 0 then
for a = 1, #deathList do
local pk = deathList[a]
if isCreature(pk) then
local list = getSpectators(getThingPosWithDebug(pk), 30, 30, false)
local expTotal = math.floor(playerExperienceRate * givenexp * getDamageMapPercent(pk, cid))
expTotal = calculaExp(pk, expTotal)
local party = getPartyMembers(pk)
if isInParty(pk) and getPlayerStorageValue(pk, 4875498) <= -1 then
expTotal = math.floor(expTotal/#party) --alterado v2.6.1
for i = 1, #party do
if isInArray(list, party) and getDamageMapPercent(party, cid) > 0 then --alterado v2.8
giveExpToPlayer(party, expTotal, givenexp, expstring)--alterado v2.7
end
end
else
giveExpToPlayer(pk, expTotal, givenexp, expstring) --alterado v2.7
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
doItemSetAttribute(corpse.uid, "level", getPokemonLevel(cid))
return true
end
Ediçoes aqui:
local Exps = {
[{1, 49}] = 1,
[{50, 74}] = 0.8,
[{75, 99}] = 0.6,
[{100, 149}] = 0.5,
[{150, 199}] = 0.4,







info
Grupo: Infante
Registrado: 27/08/11
Posts: 1.9k
Reputação: +85
Gênero: Masculino
Char no Tibia: Bruno Maciel
Estou com uma duvida relacionado a stage eo PDA !!
eu fiquei sabendo nao sei se e verdade puriso vim pergunta ^^ se o systema de stage pega no pda pq ouvi fala que nao pegava no pda nao sei se tava bugado ou algo do tipo nao vo lembra agr mais este e minha duvida se o stage pega no pda normal ?