Ir para conteúdo
  • 0

[Resolvido] Potion que cura por segundo


Koring4

Pergunta

Olá, gostaria de por fazer um potion que cura por segundo (Exemplo: a potion dura 30 segundos e cada 2 segundos vai cura)

 

eu consegui fazer isso mas não sei por pra cura a cada 2 segundos por durante 30 segundos

 

Spoiler
local config = {    storage = 19030, --use empty storage    exhaust = 35 --Exhaust is in seconds 600 equals 10min} function onUse(cid, item, fromPos, itemEx, toPos)    if (getPlayerStorageValue(cid, config.storage) <= os.time()) then        if (item.itemid == 7440) then            doCreatureAddHealth(cid, 12*getCreatureMaxHealth(cid)/100)            doPlayerAddMana(cid, 12*getPlayerMaxMana(cid)/100)            doCreatureSay(cid, "Muahaha!",TALKTYPE_ORANGE_1)            doSendMagicEffect(getPlayerPosition(cid),14)			doPlayerAddSoul(cid,-1)            doRemoveItem(item.uid, 1)            setPlayerStorageValue(cid, config.storage, os.time() + config.exhaust)        end	endend

 

 

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 2

Coloquei para curar o life e a mana, como tinha no seu script, mas não testei. 

 

Em actions/scripts:

 

potionHpMp.lua



 

Spoiler
local t = {duration = 20, -- tempo de duração em segundosinterval = 2, -- intervalo para aumentar X hp/mphp = 30,  -- quanto vai aumentar de hpmp = 20 -- quanto vai aumentar de mp}function onUse(cid, item, fromPosition, itemEx, toPosition)    if(not isPlayer(itemEx.uid)) then        return false    end    doRemoveItem(item.uid, 1)    doCreatureSay(cid, "Muahaha!", TALKTYPE_ORANGE_1, cid)    setPlayerStorageValue(cid, 14421, os.time() + t.duration)    AddHpMp(cid)endfunction AddHpMp(cid)    if isCreature(cid) and (getPlayerStorageValue(cid, 14421) - os.time() >= 0) then        doCreatureAddHealth(cid, t.hp)        doCreatureAddMana(cid, t.mp)    end        addEvent(AddHpMp, t.interval*1000, cid)end

 

 

 

Em actions.xml:  <action itemid="ID_DO_ITEM" script="potionHpMp.lua" />

 

 

Link para o comentário
Compartilhar em outros sites

  • 1

No meu servidor eu fiz ssse sistema.

Citar

local EMPTY_POTION,ITEM_POOL,LVL = 7635,2016,80 
local condition = createConditionObject(CONDITION_REGENERATION) 
setConditionParam(condition, CONDITION_PARAM_SUBID, 1) 
setConditionParam(condition, CONDITION_PARAM_BUFF, true) 
setConditionParam(condition, CONDITION_PARAM_TICKS, 10 * 1000) -- tempo 10 segundos
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, math.random(7,9)) -- quantidade de vida ganha por segundo
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 125) 

 

function onUse(cid, item, fromPosition, itemEx, toPosition) 
   if(isPlayer(itemEx.uid) == true and itemEx.uid ~= cid)then 
      return true,doPlayerSendCancel(cid,'Essa pocao so pode ser consumido por tu mesmo.') 
   elseif((not(isKnight(itemEx.uid)) or getPlayerLevel(itemEx.uid) < LVL) and 
      getPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then 
   return true,doCreatureSay(itemEx.uid, "esse pote so pode ser consumido por "..getVocationNameById(4).." e seu respectivo superior de level "..LVL.." ou mais.", TALKTYPE_ORANGE_1) 
   elseif(isPlayer(itemEx.uid) == FALSE)then 
   local splash = doCreateItem(ITEM_POOL,2,toPosition) 
      doDecayItem(splash) 
      doTransformItem(item.uid, EMPTY_POTION) 
      return true 
   end 
   doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE) 
   doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) 
   if(getConfigInfo('useEventPotions'))then doAddCondition(cid, condition) else doCreatureAddHealth(cid,math.random(450,550)) end 
   if(getConfigInfo('removepotions'))then doRemoveItem(item.uid, 1) else doTransformItem(item.uid,EMPTY_POTION)end 
   return true 
end 

 

Adicione ao seu config.lua essa variável 

Citar

useEventPotions = true

 

Link para o comentário
Compartilhar em outros sites

  • 0
10 minutos atrás, Koring4 disse:

@Leoxtibia  testei aqui, não da pra usar o item no jogo, não mostra nenhuma mensagem de erro.

 

@Koring4 Qual item que você tá usando? Achei que fosse algo como um potion mesmo que você teria que usar no player. Se não for, apague essa parte:

 

    if(not isPlayer(itemEx.uid)) then
        return false
    end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
12 minutos atrás, Koring4 disse:

@Leoxtibia Funciono valeu mesmo rep+ pra ti.  (como faz pra dar rep+?)

@Poccnn não consegui usa o teu mas valeu pela ajuda.

 

@Koring4 É só clicar ali na seta verde pra cima

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...