Ir para conteúdo

[Encerrado] XP do server pokemon PDA


tibiapk300

Posts Recomendados

["Electabuzz"] = {offense = 8.3, defense = 5.7, specialattack = 9.5, vitality = 6.5, agility = 160, exp = 156, level = 80, wildLvl = 80, type = "electric", type2 = "no type"},

<monster name="Electabuzz" nameDescription="a electabuzz" race="electric" experience="1084" speed="137" manacost="0">

 

Deixei a xp base do meu server 1x, e o Electabuzz esta dando 585 de xp, acredito eu que esteja errado como eu consigo colocar a xp exata q eu quero? Exemplo: 1200
(desculpe a formatação do post sou novo aqui e não sei direito)

Link para o comentário
Compartilhar em outros sites

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

local Exps = {
{minL = 1, maxL = 99, multipler = 1},
{minL = 100, maxL = 149, multipler = 0.8},
{minL = 150, maxL = 199, multipler = 0.6},
{minL = 200, maxL = 249, multipler = 0.5},
{minL = 250, maxL = 299, multipler = 0.4},
}

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 * 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)
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

Link para o comentário
Compartilhar em outros sites

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

local Exps = {
{minL = 1, maxL = 99, multipler = 1},
{minL = 100, maxL = 149, multipler = 0.8},
{minL = 150, maxL = 199, multipler = 0.6},
{minL = 200, maxL = 249, multipler = 0.5},
{minL = 250, maxL = 299, multipler = 0.4},
}

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 = pokes[getCreatureName(cid)].exp or 0

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 * 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)
             for i = 1, #party do
                 if isInArray(list, party[i]) then
                     playerAddExp(party[i], 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

Tenta isso.

Link para o comentário
Compartilhar em outros sites

Ainda não deu certo ta dando 3900 de xp eu quero saber como eu configuro pra dar a xp q eu quero com base nesses scripts não era pra dar nem 1500

["Electabuzz"] = {offense = 8.3, defense = 5.7, specialattack = 9.5, vitality = 6.5, agility = 160, exp = 156, level = 80, wildLvl = 80, type = "electric", type2 = "no type"},

<monster name="Electabuzz" nameDescription="a electabuzz" race="electric" experience="1084" speed="137" manacost="0">

Link para o comentário
Compartilhar em outros sites

bota a exp do seu bixo 1200 e a exp rate 1 ou vc calcula se o seu serv for mais de u de exp rate. exp: se o seu serv tem exp rate 10 pra seu monster der 1200 de xp ele te q tem no script 120 de experience...

Já fiz isso já e não da a xp q eu quero

Link para o comentário
Compartilhar em outros sites

No config.lua, procure por algo assim:

	experienceStages = true
	rateExperience = 25
	rateExperienceFromPlayers = 25

E deixe assim:

	experienceStages = false
	rateExperience = 0
	rateExperienceFromPlayers = 0

Depois vá até data/lib/configuration.lua e procure por:

pokemonExpPerLevelRate = 6

E deixe:

pokemonExpPerLevelRate = 1

Tenta ai, se não der certo avisa que farei uns testes ai te mando quando der certo!

Link para o comentário
Compartilhar em outros sites

No config.lua, procure por algo assim:

	experienceStages = true
	rateExperience = 25
	rateExperienceFromPlayers = 25

E deixe assim:

	experienceStages = false
	rateExperience = 0
	rateExperienceFromPlayers = 0

Depois vá até data/lib/configuration.lua e procure por:

pokemonExpPerLevelRate = 6

E deixe:

pokemonExpPerLevelRate = 1

Tenta ai, se não der certo avisa que farei uns testes ai te mando quando der certo!

Foi uma das primeiras coisas que tentei mudei até no base exp pra 1, não fica a xp exata

Link para o comentário
Compartilhar em outros sites

Ainda não deu certo ta dando 3900 de xp eu quero saber como eu configuro pra dar a xp q eu quero com base nesses scripts não era pra dar nem 1500

["Electabuzz"] = {offense = 8.3, defense = 5.7, specialattack = 9.5, vitality = 6.5, agility = 160, exp = 156, level = 80, wildLvl = 80, type = "electric", type2 = "no type"},

 

<monster name="Electabuzz" nameDescription="a electabuzz" race="electric" experience="1084" speed="137" manacost="0">

 

tente deixar essa linha

 

<monster name="Electabuzz" nameDescription="a electabuzz" race="electric" experience="100" speed="137" manacost="0">

 

e essa

 

["Electabuzz"] = {offense = 8.3, defense = 5.7, specialattack = 9.5, vitality = 6.5, agility = 160, exp = 1100, level = 80, wildLvl = 80, type = "electric", type2 = "no type"},

 

so pra ver.

Link para o comentário
Compartilhar em outros sites

 

Ainda não deu certo ta dando 3900 de xp eu quero saber como eu configuro pra dar a xp q eu quero com base nesses scripts não era pra dar nem 1500

["Electabuzz"] = {offense = 8.3, defense = 5.7, specialattack = 9.5, vitality = 6.5, agility = 160, exp = 156, level = 80, wildLvl = 80, type = "electric", type2 = "no type"},

 

<monster name="Electabuzz" nameDescription="a electabuzz" race="electric" experience="1084" speed="137" manacost="0">

 

tente deixar essa linha

 

<monster name="Electabuzz" nameDescription="a electabuzz" race="electric" experience="100" speed="137" manacost="0">

 

e essa

 

["Electabuzz"] = {offense = 8.3, defense = 5.7, specialattack = 9.5, vitality = 6.5, agility = 160, exp = 1100, level = 80, wildLvl = 80, type = "electric", type2 = "no type"},

 

so pra ver.

 

Deu 532 de xp, com todas as rates x1

Link para o comentário
Compartilhar em outros sites

  • 4 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...