Ir para conteúdo

[Encerrado] Como colocar STAGES em PDA SEM LEVEL 1.9


guirlz

Posts Recomendados

o do smix pelo q sei a base eh do pokemon dash, q eh a versao antes do PDA....

 

oia, pelo q lembro achu q eh assim...

 

local function playerAddExp(cid, exp)

doPlayerAddExp(cid, exp)

doSendAnimatedText(getThingPos(cid), exp, 215)

end

 

local Exps = {

[{1, 49}] = 1,

[{50, 74}] = 0.8,

[{75, 99}] = 0.6,

[{100, 149}] = 0.5,

[{150, 199}] = 0.4,

}

 

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

 

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

 

 

dai eh soh configurar na tabela...

[{1, 49}] = 1,

no caso, do lvl 1 ao 49 o player ganha 100% da exp...

[{150, 199}] = 0.4,

no caso, do lvl 150 ao 199 o player ganha 40% da exp...

 

o resto dos lvls q n tiverem na tabela ganharam 10% da exp...

 

ps: nao eh la um sistema muito bem feito e perfeito mas neh... viva a gambiarra...

Link para o comentário
Compartilhar em outros sites

@Slicer, funcionou a parte de que o exp foi reduzido, mas em TODOS os leveis como na config abaixo fica x0.1 mesmo level 50 fica só 10% da exp

 

 

 

local function playerAddExp(cid, exp)

doPlayerAddExp(cid, exp)

doSendAnimatedText(getThingPos(cid), exp, 215)

end

 

local Exps = {

[{1, 99}] = 1,

[{100, 149}] = 0.8,

[{150, 199}] = 0.6,

[{200, 249}] = 0.5,

[{250, 299}] = 0.4,

}

 

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

 

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

 

 

 

Obrigado mesmo por estar ajudando !

Editado por guirlz
Link para o comentário
Compartilhar em outros sites

hum, estranhu... 1* tenta trocar isso..

if getPlayerLevel(cid) >= lvl[1] or getPlayerLevel(cid) <= lvl[2] then

por isso...

if getPlayerLevel(cid) >= lvl[1] and getPlayerLevel(cid) <= lvl[2] then

 

se ms assim n arrumar ainda me avisa q modifico o script...

Link para o comentário
Compartilhar em outros sites

Mesma coisa maninho, testei com um lvl 81 e com 1 lvl 300 e os 2 ganham apenas 10% da EXP total, é como se o script não checasse os leveis e ja vai direto pro fim dando 10% pra quem não está na lista..

Link para o comentário
Compartilhar em outros sites

malz mano kk erro escroto meu...

 

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

 

Editado por Slicer
Link para o comentário
Compartilhar em outros sites

Funcionou..

@Slicer, você é foda cara ! rs

Brigadão mesmo.. sei que você ta de saco xeio de responder perguntas bestas q nem essa, mas brigadão, ajudou demais !

 

Qlqer coisa pode mandar msg !

 

Abraço !

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