FE

Como Colocar Limite De Level?

Por felipapusco, 12 de jun. de 2011 em Scripts

otserv
tibia
script
14
8.8k
12 de junho de 2011 às 17:49

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:

meubkM
12 de junho de 2011 às 18:50

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

12 de junho de 2011 às 18:53

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 Junho 12 por Demonbholder

meubkM
12 de junho de 2011 às 18:57

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

 

ele que diz...

12 de junho de 2011 às 19:03

Ahuahuhauha, é mesmo, nem tinha visto.

 

Mas usa return FALSE pra não subir health nem mana. Não sei se diminuindo um level tira a health e a mana.

 

Abraços.

12 de junho de 2011 às 20:24

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 Junho 12 por felipapusco

meubkM
12 de junho de 2011 às 21:09

que levelMax você pois, por que tá 200 e de 171 á 182 num passa nem pelo 200

Editado Junho 12 por xotservx

15 de junho de 2011 às 19:11

que levelMax você pois, por que tá 200 e de 171 á 182 num passa nem pelo 200

uhum mas eu mudei pra 180

local LevelMax = 180

:|

MatheusGladM
15 de junho de 2011 às 19:46

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 Junho 15 por MatheusMkalo

LordfireL
16 de junho de 2011 às 22:40

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.

17 de junho de 2011 às 17:39

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 Junho 17 por RenatoRibeiro

20 de junho de 2011 às 16:21

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

joao33J
23 de junho de 2011 às 21:50

Mano tava prescisando disso pois meu server slayer yurots nao passava do level 717k entalz agora ja resolvi flws

1 ano depois...
evolutionskyE
14 de agosto de 2012 às 23:37

Tem como editar limite de Skill tbm ?