TI
resolvido

[Encerrado] XP do server pokemon PDA

Por tibiapk300, 17 de nov. de 2013 em Tópicos Sem Resposta

script
15
1.3k
tibiapk300T
17 de novembro de 2013 às 01:55

["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)

vinnevinneV
17 de novembro de 2013 às 02:08

vc quer q o bixo de 1200 de xp?

tibiapk300T
17 de novembro de 2013 às 13:21

vc quer q o bixo de 1200 de xp?

Sim

akumahA
17 de novembro de 2013 às 14:47

vc quer q o bixo de 1200 de xp?

Post meio desnecessário hein?

 

@tibiapk300

Poste o seu pokeexp.lua, da pasta creaturescripts, que eu resolvo pra você.

tibiapk300T
17 de novembro de 2013 às 17:57

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

akumahA
17 de novembro de 2013 às 22:13
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.

tibiapk300T
17 de novembro de 2013 às 22:48

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">

vinnevinneV
18 de novembro de 2013 às 00:35

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

tibiapk300T
18 de novembro de 2013 às 08:15

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

GuhPkG
19 de novembro de 2013 às 01:57

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!

tibiapk300T
19 de novembro de 2013 às 11:19

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

SamueLGuedesS
19 de novembro de 2013 às 11:24

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.

tibiapk300T
19 de novembro de 2013 às 14:14

 

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

GabrieltxuG
26 de novembro de 2013 às 09:35

Tópico movido para a seção de dúvidas e pedidos resolvidos.

4 anos depois...
StigalS
21 de abril de 2018 às 03:13
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.