Ir para conteúdo
  • 0

Script De Hp E Mana Por Level


MonsterOt

Pergunta

7 respostass a esta questão

Posts Recomendados

  • 0

tem sim, basta mudar pro player ganhar 2 hp por level no vocations.xml e 0 de mana por level...

 

aí você cria um script chamado levelup.lua em data/creaturescripts/scripts e coloca isso dentro:

 

function onAdvance(cid, skill, oldLevel, newLevel)
if skill == 8 and newLevel % 3 == 0 then
setCreatureMaxMana(cid, getCreatureMaxMana(cid) + 1)
end
return true
end

 

Aí você coloca essa tag no seu creature scripts:

 

<event type="advance" name="IncreaseManaOnLevelUp" event="script" value="levelup.lua"/>

 

agora abra seu login.lua (data/creaturescripts/scripts) e adicione essa linha:

 

registerCreatureEvent(cid, "IncreaseManaOnLevelUp")

 

é só adicionar embaixo das outras vezes que essa função foi utilizada (registerCreatureEvent)

 

Só um detalhe:

Essa script faz com que o player ao atiginr level 3, 6, 9, 12, 15... 30... 60... ganha mais 1 de mana (máximo), ou seja, se o player começar no level 8, ao chegar no level 9 ele já ganha a mana extra... se quiser fazer com que o player ganhe a mana nos leveis 11, 14, 17, 20, 23... você tem que modificar essa linha do script:

 

if skill == 8 and newLevel % 3 == 0 then

 

por essa:

 

if skill == 8 and (newLevel + 1) % 3 == 0 then

 

Agora se o player começar no level 1, ele vai ganhar mana no level 3, ou seja, após upar 2 leveis, e só depois começa a ganhar de 3 em 3 leveis, se quiser que ele ganhe apenas no level 4, depois no 7, aí 10, 13, 16 etc... é só modificar aquela mesma linha por essa:

 

if skill == 8 and (newLevel - 1) % 3 == 0 then

 

qualquer dúvida só perguntar

Link para o comentário
Compartilhar em outros sites

  • 0

EDIT: eu falei errado!!

queria isso na verdade:

cada 2 lv, o player ganhar 1 de hp

 

 

Obrigado pela atenção =)

 

vou dar o rep+ assim que eu puder denovo

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

  • 0

Aqui:

 

function onAdvance(cid, skill, oldLevel, newLevel)

   if skill == 8 then
    if newLevel % 3 == 0 then -- vai ganhar mp nos leveis 3, 6, 9, 12, 15, 18, 21...
	    setCreatureMaxMana(cid, getCreatureMaxMana(cid) + 1)
    elseif newLevel % 2 == 0 then -- vai ganhar hp nos leveis 2, 4, 6, 8, 10, 12...
	    setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + 1)
    end
   end

return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

Tem que registrar o evento, lê o meu post la em cima que explica certinho como registrar e atualiza sua script com essa:

 

function onAdvance(cid, skill, oldLevel, newLevel)

   if skill == 8 then
       if newLevel % 3 == 0 then -- vai ganhar mp nos leveis 3, 6, 9, 12, 15, 18, 21...
           setCreatureMaxMana(cid, getCreatureMaxMana(cid) + 1)
       end   	  
       if newLevel % 2 == 0 then -- vai ganhar hp nos leveis 2, 4, 6, 8, 10, 12...
           setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + 1)
       end
   end

return true
end

 

Só percebi agora que usando elseif fica errado, vai chegar alguns leveis que o player deveria ganhar mana e hp junto, mas só ia ganhar mana devido ao uso do elseif.

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

×
×
  • Criar Novo...