Ir para conteúdo
  • Cadastre-se

(Resolvido)Adicionar Cooldown na Magia


Ir para solução Resolvido por Celulose,

Posts Recomendados

galera, já tentei de tudo, mas nao consigo adicionar cooldown nessa magia!

poderiam me ajudar?

Spoiler

local tempo = 20 -- tempo em segundos.
local effect = {29} -- effect no player, caso queira apenas 1, basta remover os outros numeros.
local text = 'Skill Up!'

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1500)
setConditionParam(condition, CONDITION_PARAM_SKILL_MELEEPERCENT, 165)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 160)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1500)
setCombatCondition(combat, condition)


function magicEffect3(tempo2,tempo3,cid)
if (isCreature(cid)) then
    if getPlayerStorageValue(cid, 102053) ~= 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then
        for i=1, #effect do
        local position = {x=getPlayerPosition(cid).x+0, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
        doSendMagicEffect(position, effect)
        doSendAnimatedText(getCreaturePos(cid), text, TEXTCOLOR_RED)
        end
    end
end
end

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, 10569) == 1 then
doSendAnimatedText((getCreaturePosition(cid)), "Socorro!", 255)
doSendMagicEffect(getCreaturePosition(cid), 19)
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
return false 

elseif getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then
    doCombat(cid, combat, var)
    tempo2 = 0
    while (tempo2 ~= (tempo*1500)) do
        addEvent(magicEffect3, tempo2, tempo2, tempo*1500, cid)
        tempo2 = tempo2 + 1500
    end
    doCreatureSay(cid, "Exevo Grav", TALKTYPE_MONSTER)
else
    doPlayerSendCancel(cid, "Desculpe, mais você ainda está no efeito da magia.")
    doSendMagicEffect(getCreaturePosition(cid), 2)
end
end

 

tumblr_o70wteR8521r9n6kzo1_400.gif

Link para o post
Compartilhar em outros sites


local tempo = 20 -- tempo em segundos.
local effect = {29} -- effect no player, caso queira apenas 1, basta remover os outros numeros.
local text = 'Skill Up!'

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1500)
setConditionParam(condition, CONDITION_PARAM_SKILL_MELEEPERCENT, 165)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 160)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1500)
setCombatCondition(combat, condition)


function magicEffect3(tempo2,tempo3,cid)
if (isCreature(cid)) then
    if getPlayerStorageValue(cid, 102053) ~= 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then
        for i=1, #effect do
        local position = {x=getPlayerPosition(cid).x+0, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
        doSendMagicEffect(position, effect)
        doSendAnimatedText(getCreaturePos(cid), text, TEXTCOLOR_RED)
        end
    end
end
end

function onCastSpell(cid, var)
  if exhaustion.check(cid, 15000) == TRUE then
	doPlayerSendCancel(cid, "Podera usar novamente dentro de 2 segundos.")
 return false
    end
if getPlayerStorageValue(cid, 10569) == 1 then
doSendAnimatedText((getCreaturePosition(cid)), "Socorro!", 255)
doSendMagicEffect(getCreaturePosition(cid), 19)
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
return false 

elseif getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then
    doCombat(cid, combat, var)
    tempo2 = 0
    while (tempo2 ~= (tempo*1500)) do
        addEvent(magicEffect3, tempo2, tempo2, tempo*1500, cid)
        tempo2 = tempo2 + 1500
        exhaustion.set(cid, 15000, 2.0)
    end
    doCreatureSay(cid, "Exevo Grav", TALKTYPE_MONSTER)
else
    doPlayerSendCancel(cid, "Desculpe, mais você ainda está no efeito da magia.")
    doSendMagicEffect(getCreaturePosition(cid), 2)
end
end

edit : esqueci do return false'
 

Editado por Dragon Ball Hiper (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
4 minutos atrás, Dragon Ball Hiper disse:

local tempo = 20 -- tempo em segundos.
local effect = {29} -- effect no player, caso queira apenas 1, basta remover os outros numeros.
local text = 'Skill Up!'

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1500)
setConditionParam(condition, CONDITION_PARAM_SKILL_MELEEPERCENT, 165)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 160)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1500)
setCombatCondition(combat, condition)


function magicEffect3(tempo2,tempo3,cid)
if (isCreature(cid)) then
    if getPlayerStorageValue(cid, 102053) ~= 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then
        for i=1, #effect do
        local position = {x=getPlayerPosition(cid).x+0, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
        doSendMagicEffect(position, effect)
        doSendAnimatedText(getCreaturePos(cid), text, TEXTCOLOR_RED)
        end
    end
end
end

function onCastSpell(cid, var)
  if exhaustion.check(cid, 15000) == TRUE then
	doPlayerSendCancel(cid, "Podera usar novamente dentro de 2 segundos.")
if getPlayerStorageValue(cid, 10569) == 1 then
doSendAnimatedText((getCreaturePosition(cid)), "Socorro!", 255)
doSendMagicEffect(getCreaturePosition(cid), 19)
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
return false 

elseif getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then
    doCombat(cid, combat, var)
    tempo2 = 0
    while (tempo2 ~= (tempo*1500)) do
        addEvent(magicEffect3, tempo2, tempo2, tempo*1500, cid)
        tempo2 = tempo2 + 1500
        exhaustion.set(cid, 15000, 2.0)
    end
    doCreatureSay(cid, "Exevo Grav", TALKTYPE_MONSTER)
else
    doPlayerSendCancel(cid, "Desculpe, mais você ainda está no efeito da magia.")
    doSendMagicEffect(getCreaturePosition(cid), 2)
end
end

 

aonde eu edito os segundos para usar novamente??

tumblr_o70wteR8521r9n6kzo1_400.gif

Link para o post
Compartilhar em outros sites
1 minuto atrás, Yamborghini disse:

aonde eu edito os segundos para usar novamente??

 exhaustion.set(cid, 15000, 2.0)   2.0 = 2 segundos.
Link para o post
Compartilhar em outros sites
1 minuto atrás, Dragon Ball Hiper disse:

 exhaustion.set(cid, 15000, 2.0)   2.0 = 2 segundos.

lol, a magia "parou de existir"! não aconteceu nada, como se eu escrevesse algo no default, nem erro no console deu

tumblr_o70wteR8521r9n6kzo1_400.gif

Link para o post
Compartilhar em outros sites
  • Solução
4 minutos atrás, Yamborghini disse:

lol, a magia "parou de existir"! não aconteceu nada, como se eu escrevesse algo no default, nem erro no console deu

foi erro meu no script esqueci do return false end.

lembra onde está 2.0 voce coloca em segundos onde esta o 2 . exemplo 30 segundos 30.0.

local tempo = 20 -- tempo em segundos.
local effect = {29} -- effect no player, caso queira apenas 1, basta remover os outros numeros.
local text = 'Skill Up!'

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1500)
setConditionParam(condition, CONDITION_PARAM_SKILL_MELEEPERCENT, 165)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 160)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1500)
setCombatCondition(combat, condition)


function magicEffect3(tempo2,tempo3,cid)
if (isCreature(cid)) then
    if getPlayerStorageValue(cid, 102053) ~= 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then
        for i=1, #effect do
        local position = {x=getPlayerPosition(cid).x+0, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
        doSendMagicEffect(position, effect)
        doSendAnimatedText(getCreaturePos(cid), text, TEXTCOLOR_RED)
        end
    end
end
end

function onCastSpell(cid, var)
  if exhaustion.check(cid, 15000) == TRUE then
	doPlayerSendCancel(cid, "Podera usar novamente dentro de 20 segundos.")
 return false
    end
if getPlayerStorageValue(cid, 10569) == 1 then
doSendAnimatedText((getCreaturePosition(cid)), "Socorro!", 255)
doSendMagicEffect(getCreaturePosition(cid), 19)
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
return false 

elseif getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then
    doCombat(cid, combat, var)
    tempo2 = 0
    while (tempo2 ~= (tempo*1500)) do
        addEvent(magicEffect3, tempo2, tempo2, tempo*1500, cid)
        tempo2 = tempo2 + 1500
        exhaustion.set(cid, 15000, 20.0)
    end
    doCreatureSay(cid, "Exevo Grav", TALKTYPE_MONSTER)
else
    doPlayerSendCancel(cid, "Desculpe, mais você ainda está no efeito da magia.")
    doSendMagicEffect(getCreaturePosition(cid), 2)
end
end

testado.'

Link para o post
Compartilhar em outros sites
4 minutos atrás, Dragon Ball Hiper disse:

foi erro meu no script esqueci do return false end.

lembra onde está 2.0 voce coloca em segundos onde esta o 2 . exemplo 30 segundos 30.0.


local tempo = 20 -- tempo em segundos.
local effect = {29} -- effect no player, caso queira apenas 1, basta remover os outros numeros.
local text = 'Skill Up!'

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1500)
setConditionParam(condition, CONDITION_PARAM_SKILL_MELEEPERCENT, 165)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 160)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1500)
setCombatCondition(combat, condition)


function magicEffect3(tempo2,tempo3,cid)
if (isCreature(cid)) then
    if getPlayerStorageValue(cid, 102053) ~= 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then
        for i=1, #effect do
        local position = {x=getPlayerPosition(cid).x+0, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
        doSendMagicEffect(position, effect)
        doSendAnimatedText(getCreaturePos(cid), text, TEXTCOLOR_RED)
        end
    end
end
end

function onCastSpell(cid, var)
  if exhaustion.check(cid, 15000) == TRUE then
	doPlayerSendCancel(cid, "Podera usar novamente dentro de 20 segundos.")
 return false
    end
if getPlayerStorageValue(cid, 10569) == 1 then
doSendAnimatedText((getCreaturePosition(cid)), "Socorro!", 255)
doSendMagicEffect(getCreaturePosition(cid), 19)
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
return false 

elseif getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then
    doCombat(cid, combat, var)
    tempo2 = 0
    while (tempo2 ~= (tempo*1500)) do
        addEvent(magicEffect3, tempo2, tempo2, tempo*1500, cid)
        tempo2 = tempo2 + 1500
        exhaustion.set(cid, 15000, 20.0)
    end
    doCreatureSay(cid, "Exevo Grav", TALKTYPE_MONSTER)
else
    doPlayerSendCancel(cid, "Desculpe, mais você ainda está no efeito da magia.")
    doSendMagicEffect(getCreaturePosition(cid), 2)
end
end

testado.'

perfeito! tem alguma forma de aparecer o numero que falta, "40,39,38 second"

 

OBS: Deu uma olhada naquele outra magia lá?

tumblr_o70wteR8521r9n6kzo1_400.gif

Link para o post
Compartilhar em outros sites
9 minutos atrás, Yamborghini disse:

perfeito! tem alguma forma de aparecer o numero que falta, "40,39,38 second"

 

OBS: Deu uma olhada naquele outra magia lá?

não to conseguindo não kkk , marca melhor resposta pra fecha topico .

assim arruma te mando pv'

Link para o post
Compartilhar em outros sites
15 minutos atrás, Dragon Ball Hiper disse:

não to conseguindo não kkk , marca melhor resposta pra fecha topico .

assim arruma te mando pv'

blz

tumblr_o70wteR8521r9n6kzo1_400.gif

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