Ir para conteúdo
  • 0

Como Colocar Limite De Level?


felipapusco

Pergunta

to precisando de um script que o level máximo seja 200

 

ou seja quando o player pegar lvl 200 não tem como upar mais que isso

 

OBS: não adianta colocar no stages level 200+ exp = 0, pois meu server é enforced entao só por meio de script msm

 

:thumbsupsmiley:

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

em creaturescripts/scripts crie um arquivo chamado levelmax.lua e cole o seguinte código:

 

local LevelMax = 200


function onAdvance(cid, skill, oldLevel, newLevel)
if skill == 8 then
	if oldLevel == LevelMax	then
		doPlayerAddLevel(cid, -1)
	end
end
return true
end

 

depois na mesma pasta procure o login.lua e registre o evento como

registerCreatureEvent(cid, "LevelMax")

 

na pasta anterior no arquivo creaturescripts.xml adc a seguinte tag:

<event type="advance" name="LevelMax" event="script" value="levelmax.lua"/>

 

para configurar o level max é bem simples é só mudar no script:

 

local LevelMax = 200

 

flw's

Link para o comentário
Compartilhar em outros sites

  • 0

Só para complementar, tem outro jeito meio gambiarra de fazer, por stages:

 

<?xml version="1.0" encoding="UTF-8"?>
<stages>
<world id="0" multiplier="1">
	<stage minlevel="1" maxlevel="199" multiplier="XP"/>
	<stage minlevel="200" multiplier="0"/>
</world>
</stages>

 

Até.

 

--

 

Nesse jeito não sobe mana nem health.

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

  • 0

em creaturescripts/scripts crie um arquivo chamado levelmax.lua e cole o seguinte código:

 

local LevelMax = 200


function onAdvance(cid, skill, oldLevel, newLevel)
if skill == 8 then
	if oldLevel == LevelMax	then
		doPlayerAddLevel(cid, -1)
	end
end
return true
end

 

depois na mesma pasta procure o login.lua e registre o evento como

registerCreatureEvent(cid, "LevelMax")

 

na pasta anterior no arquivo creaturescripts.xml adc a seguinte tag:

<event type="advance" name="LevelMax" event="script" value="levelmax.lua"/>

 

para configurar o level max é bem simples é só mudar no script:

 

local LevelMax = 200

 

flw's

 

acho que não funfo fiz um char pra testar e..

20:27 You advanced from Level 172 to Level 181.

continuei lvl 181 :|

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

  • 0

Tente assim:

local LevelMax = 180


function onAdvance(cid, skill, oldLevel, newLevel)
       if skill == 8 then
               if newLevel >= LevelMax then
                   doPlayerAddExp(cid, getExperienceForLevel(LevelMax)-getPlayerExperience(cid))
                   return false
               end
       end
       return true
end

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

  • 0

Eu não manjo de LUA direito, mas pelo que vi no script do xotservx faltou fazer um loop de repetição pra voltar até o Level Max. No dele, se o max for 200 e o cara pegar level 170 até 230, vai voltar pro 229 e ficar nisso.

Link para o comentário
Compartilhar em outros sites

  • 0

Tente assim:

local LevelMax = 180


function onAdvance(cid, skill, oldLevel, newLevel)
       if skill == 8 then
               if newLevel >= LevelMax then
                   doPlayerAddExp(cid, getExperienceForLevel(LevelMax)-getPlayerExperience(cid))
                   return false
               end
       end
       return true
end

 

Mas ai a mana e o hp iriam acumular...

Tentei ajustar seu script aqui, mas não sei se vai pegar

 

local LevelMax = 180
locallocal LevelMax = 180
local base = {
     get = getPlayerVocationName(cid),
     magemana = ((LevelMax-8)*30)+35,
     kinamana = (LevelMax-1)*5,
     palymana = ((LevelMax-8)*15)+35,
     magehp = ((LevelMax-8)*5)+185,
     kinahp = ((LevelMax-8)*15)+185,
     palyhp = ((LevelMax-8)*10)+185
}



function onAdvance(cid, skill, oldLevel, newLevel)
       if skill == 8 then
               if newLevel >= LevelMax then
                   doPlayerAddExp(cid, getExperienceForLevel(LevelMax)-getPlayerExperience(cid))
                          if base.get == 'sorcerer' or base.get == 'master sorcerer' or base.get == 'druid' or base.get == 'elder druid' then
                             setCreatureMaxHealth(cid, base.magehp)
                             setCreatureMaxMana(cid, base.magemana)
                          elseif base.get == 'paladin' or base.get == 'royal paladin' then
                             setCreatureMaxHealth(cid, base.palyhp)
                             setCreatureMaxMana(cid, base.palymana)
                          elseif getPlayerVocationName(cid) == 'knight' or base.get == 'elite knight' then   
                             setCreatureMaxHealth(cid, base.kinahp)
                             setCreatureMaxMana(cid, base.kinamana)                           
                          end
                   return FALSE
               end
       end
       return TRUE
end

 

NÃO TESTEI.

Ah ai você poe a tag e o register que o xotservx postou.

 

não mecha nas configurações 'base' lá são as fórmulas para achar a mana/hp das vocações pelo level que você colocar em LevelMax.

Só altere lá, ou caso as vocações do seu ot sejam editadas você mude o nome nos ifs.

 

Testa ai e me diz se pegou

(pelo menos erro de sintaxe não tem)

 

Abraços

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

  • 0

Tente assim:

local LevelMax = 180


function onAdvance(cid, skill, oldLevel, newLevel)
       if skill == 8 then
               if newLevel >= LevelMax then
                   doPlayerAddExp(cid, getExperienceForLevel(LevelMax)-getPlayerExperience(cid))
                   return false
               end
       end
       return true
end

 

Mas ai a mana e o hp iriam acumular...

Tentei ajustar seu script aqui, mas não sei se vai pegar

 

local LevelMax = 180
locallocal LevelMax = 180
local base = {
     get = getPlayerVocationName(cid),
     magemana = ((LevelMax-8)*30)+35,
     kinamana = (LevelMax-1)*5,
     palymana = ((LevelMax-8)*15)+35,
     magehp = ((LevelMax-8)*5)+185,
     kinahp = ((LevelMax-8)*15)+185,
     palyhp = ((LevelMax-8)*10)+185
}



function onAdvance(cid, skill, oldLevel, newLevel)
       if skill == 8 then
               if newLevel >= LevelMax then
                   doPlayerAddExp(cid, getExperienceForLevel(LevelMax)-getPlayerExperience(cid))
                          if base.get == 'sorcerer' or base.get == 'master sorcerer' or base.get == 'druid' or base.get == 'elder druid' then
                             setCreatureMaxHealth(cid, base.magehp)
                             setCreatureMaxMana(cid, base.magemana)
                          elseif base.get == 'paladin' or base.get == 'royal paladin' then
                             setCreatureMaxHealth(cid, base.palyhp)
                             setCreatureMaxMana(cid, base.palymana)
                          elseif getPlayerVocationName(cid) == 'knight' or base.get == 'elite knight' then   
                             setCreatureMaxHealth(cid, base.kinahp)
                             setCreatureMaxMana(cid, base.kinamana)                           
                          end
                   return FALSE
               end
       end
       return TRUE
end

 

NÃO TESTEI.

Ah ai você poe a tag e o register que o xotservx postou.

 

não mecha nas configurações 'base' lá são as fórmulas para achar a mana/hp das vocações pelo level que você colocar em LevelMax.

Só altere lá, ou caso as vocações do seu ot sejam editadas você mude o nome nos ifs.

 

Testa ai e me diz se pegou

(pelo menos erro de sintaxe não tem)

 

Abraços

ja conssigui fazer um script copiando do otro

lá era level minimo ai qnd baixava de 130 ele voltava pro 130

só q ele só vai voltar pro 180 denovo quando ele morrer ou logar xD

mas ja conssigui vlw ai

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...