resumindo... eu troco meu arquivo exp.lua... por esse conteudo aí ... correto?
- Forums
- OTServ
- Suporte
- Tópicos Sem Resposta
- [Encerrado] Pda Exp Reduzida Em Determinado Level
[Encerrado] Pda Exp Reduzida Em Determinado Level
By rodrigoorgirdor, 29 de out. de 2012 in Tópicos Sem Resposta
info
Group: Artesão
Joined: 28/09/12
Posts: 106
Reputation: +1

info
Group: Príncipe
Joined: 19/08/10
Posts: 4k
Reputation: +1.1k
Gender: Masculino

nao neh u,U
eh o creaturescript/scripts/pokeexp.lua
info
Group: Artesão
Joined: 28/09/12
Posts: 106
Reputation: +1

kkk de boa, boiei aki.... vou testar aki
Deu Certo. porem quando o pokemon selvagem morre... da o seguinte erro ...
[30/10/2012 10:57:22] [Error - CreatureScript Interface]
[30/10/2012 10:57:22] data/creaturescripts/scripts/pokeexp.lua:onDeath
[30/10/2012 10:57:22] Description:
[30/10/2012 10:57:22] data/creaturescripts/scripts/pokeexp.lua:138: attempt to call global 'getLevel' (a nil value)
[30/10/2012 10:57:22] stack traceback:
[30/10/2012 10:57:22] data/creaturescripts/scripts/pokeexp.lua:138: in function <data/creaturescripts/scripts/pokeexp.lua:63>
info
Group: Conde
Joined: 03/01/12
Posts: 884
Reputation: +233
Tibia Character: Segredo

troca essa linha
doItemSetAttribute(corpse.uid, "level", getLevel(cid))
por essa
doItemSetAttribute(corpse.uid, "level", getPokemonLevel(cid))
info
Group: Príncipe
Joined: 19/08/10
Posts: 4k
Reputation: +1.1k
Gender: Masculino

notle, getLevel eh pra por o lvl atual do poke no corpse... ;x ta certo ali..
vc ta usando o serv sem lvl neh? como da pra ver.. aquele script eh pro serv COM lvl...
info
Group: Artesão
Joined: 28/09/12
Posts: 106
Reputation: +1

to usando sem level
aki deu certinho ! resolvido aki vlw
info
Group: Conde
Joined: 25/04/12
Posts: 752
Reputation: +125
Gender: Masculino

Duvida sanada, reportado para moverem...
info
Group: Artesão
Joined: 28/09/12
Posts: 106
Reputation: +1

pessoal... desculpem... dei uma bobeira gigante aki........ to até emcabulado ainda.. pensei ter visto o resultado ok hj pela manhã... mas agora fui testar novamente não deu certo... NÃO está diminuindo o xp nos intervalos 50, 75, 100, 125 ... mauz ae... alguem pode me ajudar?
eu devo criar novo tópico?
info
Group: Herói
Joined: 28/11/10
Posts: 3.4k
Reputation: +585
Gender: Masculino

+ 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.




info
Group: Príncipe
Joined: 19/08/10
Posts: 4k
Reputation: +1.1k
Gender: Masculino
usa esse aki.. '--'
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, "offense", getPlayerStorageValue(cid, 1011))
doItemSetAttribute(corpse.uid, "defense", getPlayerStorageValue(cid, 1012))
doItemSetAttribute(corpse.uid, "speed", getPlayerStorageValue(cid, 1013))
doItemSetAttribute(corpse.uid, "vitality", getPlayerStorageValue(cid, 1014))
doItemSetAttribute(corpse.uid, "spattack", getPlayerStorageValue(cid, 1015))
doItemSetAttribute(corpse.uid, "level", getLevel(cid))
doItemSetAttribute(corpse.uid, "gender", getPokemonGender(cid))
return true
end