Ir para conteúdo
  • Cadastre-se

(Resolvido)[PEDIDO] Spell regeneração


Ir para solução Resolvido por Storm,

Posts Recomendados

Queria uma spell que ao usa-la apareça x effect no player por 30 seg (esse também sera o tempo da spell, quanto vai durar), e o char fique totalmente paralisado sem poder se mover ou usar spells e que a vida do player fique se regenerando x quantidade de hp a cada 2 seg, 30 seg como falei sera o tempo de duração da spell quando os 30 segundos acabarem o effect desaparece e o player volta a usar spells, movimentar-se normalmente e a regeneração acaba. quem poder me ajudar agradeço <3

Link para o post
Compartilhar em outros sites

Armei essa gambiarra aqui :

local function LoopEff(time2, time3, uid, effect, position, health)

  if isCreature(uid) then
 
    for i= 1, #effect do
    
    local position = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z }
    
    doSendMagicEffect(position, effect[i])
    doCreatureAddHealth(uid, health)
    
    end
  end
end

function doLoopEffect(uid, effect, time, position, health)

local time2 = 0 

     while (time2 ~= (time*1000)) do 
     
     addEvent(LoopEff, time2, time2, time3, uid, effect, position)
     time2 = time2 + 300
     
     end
return true
end

function onCastSpell(cid, var)

local effect = 200 -- Efeito
local time = 30 -- em segundos
local health = 200 -- Quanto ganhará de vida em aproximadamente alguns segundos quebrados

     if isPlayer(cid) then
     
     doLoopEffect(cid, effect, time, getCreaturePosition(cid), health)
     doCreatureSetNoMove(cid, true)
     addEvent(doCreatureSetNoMove, time * 1000, cid, false)
     
     return true
     end
return true
end

 

Link para o post
Compartilhar em outros sites

@Sttorm deu esse probleminha aqui:

[11/05/2018 21:01:13] [Error - Spell Interface] 
[11/05/2018 21:01:13] In a timer event called from: 
[11/05/2018 21:01:13] data/spells/scripts/minato/lvl3.lua:onCastSpell
[11/05/2018 21:01:13] Description: 
[11/05/2018 21:01:14] data/spells/scripts/minato/lvl3.lua:5: attempt to get length of local 'effect' (a number value)
[11/05/2018 21:01:14] stack traceback:
[11/05/2018 21:01:14]     data/spells/scripts/minato/lvl3.lua:5: in function <data/spells/scripts/minato/lvl3.lua:1>

Link para o post
Compartilhar em outros sites
function repeatEff(cid, eff, tempo, health)

local pos = {x = getCreaturePosition(cid).x + 0, y = getCreaturePosition(cid).y + 0, z = getCreaturePosition(cid).z}

   if not isCreature(cid) or tempo == 0 then return end
   doSendMagicEffect(pos, eff)
   doCreatureAddHealth(cid, health)
   addEvent(repeatEff, 1000, cid, eff, tempo-1)
end

function onCastSpell(cid, var)

local eff = 7 -- Efeito
local tempo = 30 -- em segundos
local health = 200 -- Quanto ganhará de vida em aproximadamente alguns segundos quebrados

     if isPlayer(cid) then
     
     doCreatureSetNoMove(cid, true)
     repeatEff(cid, eff, tempo, health)
     addEvent(doCreatureSetNoMove, tempo * 1000, cid, false)
     
     return true
     end
return true
end

 

Link para o post
Compartilhar em outros sites

@Sttorm a spell funcionou sem erros porém quando eu uso a spell o hp heala apenas 1 vez eu queria que o player ficasse healando o hp de 2 em 2 seg até o tempo da spell acabar, o char ficou paralisado mais ainda da pra usar os atacks eu queria que tb n fosse possivel usar atacks até o tempo da spell acabar

Link para o post
Compartilhar em outros sites

@bismarkzika

function repeatEff(cid, eff, tempo, health)

local pos = {x = getCreaturePosition(cid).x + 0, y = getCreaturePosition(cid).y + 0, z = getCreaturePosition(cid).z}

   if not isCreature(cid) or tempo == 0 then return end
   doSendMagicEffect(pos, eff)
   doCreatureAddHealth(cid, health)
   addEvent(repeatEff, 1000, cid, eff, tempo-1, health)
end

function onCastSpell(cid, var)

local eff = 7 -- Efeito
local tempo = 30 -- em segundos
local health = 200 -- Quanto ganhará de vida em aproximadamente alguns segundos quebrados

     if isPlayer(cid) then
     
     doCreatureSetNoMove(cid, true)
     repeatEff(cid, eff, tempo, health)
     doAddCondition(cid, CONDITION_MUTED)
     addEvent(doRemoveCondition, tempo * 1000, cid, CONDITION_MUTED)
     addEvent(doCreatureSetNoMove, tempo * 1000, cid, false)
     
     return true
     end
return true
end

 

Link para o post
Compartilhar em outros sites

@Sttorm healando normalmente como eu queria, mais o player ainda consegue usar spells e tb tá dando esse erro na distro

[16/05/2018 19:33:38] [Error - Spell Interface] 
[16/05/2018 19:33:38] data/spells/scripts/Orochimaru/lvl40.lua:onCastSpell
[16/05/2018 19:33:38] Description: 
[16/05/2018 19:33:38] (luaDoAddCondition) Condition not found
 

Link para o post
Compartilhar em outros sites
  • Solução

Agora vai @bismarkzika

local tempo = 30 -- em segundos

local condition = createConditionObject(CONDITION_MUTED)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo * 1000)

function repeatEff(cid, eff, tempo, health)

local pos = {x = getCreaturePosition(cid).x + 0, y = getCreaturePosition(cid).y + 0, z = getCreaturePosition(cid).z}

   if not isCreature(cid) or tempo == 0 then return end
   doSendMagicEffect(pos, eff)
   doCreatureAddHealth(cid, health)
   addEvent(repeatEff, 1000, cid, eff, tempo-1, health)
end

function onCastSpell(cid, var)

local eff = 7 -- Efeito
local health = 200 -- Quanto ganhará de vida em aproximadamente alguns segundos quebrados

     if isPlayer(cid) then
     
     doCreatureSetNoMove(cid, true)
     repeatEff(cid, eff, tempo, health)
     doAddCondition(cid, condition)
     addEvent(doCreatureSetNoMove, tempo * 1000, cid, false)
     
     return true
     end
return true
end

 

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo