Ir para conteúdo
  • Cadastre-se

[Spell] Descanso para curar mana


Posts Recomendados

Olá, hoje estou trazendo um script de uma spell que uso no meu servidor. Quando o jogador utiliza, recupera mana a cada segundo, porém não pode se mover e caso leve algum dano a spell é cancelada. Adicionei também para que o jogador só possa utilizar a magia caso esteja com a condição "SOUL", então ele precisa ter matado algum monstro recentemente.

 

Em spells crie um arquivo chamado rest.lua e coloque o seguinte:

 

local config = { 
  storage = 3482142, -- storage para verificar se a spell ta ativa antes de healar
  cooldownStorage = 3910229, --- storage do cooldown
  cooldown = 23,  --- tempo entre um uso e outro
  duration = 6, --- duração
  effect = 12 -- efeito que sai ao falar a spell
} 



function onCastSpell(cid, var)
  if getCreatureCondition(cid, CONDITION_SOUL) then
    if os.time() - getPlayerStorageValue(cid, config.cooldownStorage) >= 0 then
      setPlayerStorageValue(cid, config.storage, os.time() + config.duration)
      setPlayerStorageValue(cid, config.cooldownStorage, os.time() + config.cooldown)
      doSendMagicEffect(getCreaturePosition(cid), config.effect)
      doCreatureSay(cid,"Rest!!!", 19)
      for i=1,5 do
        addEvent(healMana, i * 1000, cid)
      end
      doCreatureSetNoMove(cid, true)
      addEvent(doCreatureSetNoMove, 5000, cid, false)
      return true
    else
      doPlayerSendCancel(cid, "Rest in cooldown, you must wait "..(-1 * (os.time() - getPlayerStorageValue(cid, config.cooldownStorage))).." seconds.")
      return false
    end
  else
    doPlayerSendCancel(cid, "You are not in fight")
    return false
  end
end


function healMana(cid)
  if getPlayerStorageValue(cid, config.storage) > 0 then
    local level = getPlayerLevel(cid)
    local extraMana = math.ceil(level/2)
    local manaToAdd = 50 + extraMana
    local maxMana = getCreatureMaxMana(cid)
    if (manaToAdd > math.ceil(maxMana / 10)) then
      manaToAdd = math.ceil(maxMana/10)
    end
    doCreatureAddMana(cid, manaToAdd)
  end

end

 

Em spells.xml coloque:

 

<instant name="Rest" words="exura kor" lvl="35" manapercent="5" prem="1" range="4" exhaustion="2000" needlearn="0" event="script" value="rest.lua">
		<vocation id="9"/>
	</instant>

Em creaturescripts crie um arquivo chamado rest.lua e coloque:

function onStatsChange(cid, attacker, type, combat, value)
    if value >= 1 and (type == STATSCHANGE_HEALTHLOSS) or (getCreatureCondition(cid, CONDITION_MANASHIELD) and type == (STATSCHANGE_MANALOSS)) then
        if (getPlayerStorageValue(cid,3482142) - os.time() > 0) and isCreature(attacker) then
            setPlayerStorageValue(cid, 3482142, -1)
            doCreatureSetNoMove(cid, false)
            return true
        end
    end
    return true
end

Adicione no creaturescript.xml

<event type="statschange" name="sleepcancel" event="script" value="rest.lua"/>

 

Agora para garantir que funcione é necessário adicionar no login.lua o creatureevent:

registerCreatureEvent(cid, "rest")
if getPlayerStorageValue(cid, 3482142) ~= 0 then
        setPlayerStorageValue(cid, 3482142, 0) 
end

 

 

Se eu não esqueci de nada, é para funcionar, agora vou mostrar um gif da spell:

 

https://giphy.com/gifs/5nrWO73TnLj4Bkra24

 

Sugestão: também é possível mudar o cálculo da cura utilizando um math.random, assim não fica valores estáticos.

 


 

Editado por Reds (veja o histórico de edições)

Toda terça-feira um tópico novo:

Descanso para curar mana (Spell): https://tibiaking.com/forums/topic/94615-spell-descanso-para-curar-mana/

Peça sua spell (Suporte):                https://tibiaking.com/forums/topic/84162-peça-sua-spell/                        

Chuva de flechas (Spell):                https://tibiaking.com/forums/topic/72232-chuva-de-flechas-spell/

Doom (Spell):                                https://tibiaking.com/forums/topic/51622-doom-spell/

Utilização do VS Code (Infra)       https://tibiaking.com/forums/topic/94463-utilizando-o-visual-studio-code-notepad-nunca-mais/

SD com Combo (Spell):                 https://tibiaking.com/forums/topic/94520-sd-modificada/

Alteração attack speed (C++):        https://tibiaking.com/forums/topic/94714-c-attack-speed-spells-itens-e-onde-você-quiser/  

Bônus de Speed (NPC)                  https://tibiaking.com/forums/topic/94809-npc-concede-bônus-aos-players/
 

Link para o post
Compartilhar em outros sites

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo