DE

Cooldown Para Spells

Por Demonbholder, 18 de jun. de 2011 em Mods, funções e outros

script
5.0 (1)
27
7.5k
22 de junho de 2011 às 13:09

Assim vai:

 

function onCastSpell(cid, var)

if exhaustion.check(cid, 23006) == FALSE then
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 1000, parameters)
addEvent(onCastSpell2, 3000, parameters)
addEvent(onCastSpell3, 5000, parameters)
addEvent(onCastSpell4, 7000, parameters)
addEvent(onCastSpell5, 9000, parameters)
exhaustion.set(cid, 23006, 12)
return TRUE
else
doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23006).."]")
end

end

 

OBS: Foda-se rep.

otherealityO
22 de junho de 2011 às 13:22

AEEEE!!

sai pulando e gritando pela rua de pantufa o/

funcionou pode cre..

Brigadão :thumbsupsmiley:

 

 

@ OBS: Foda-se rep.

hehehe euri

 

Eu seu que você não esta me ajudando para ganhar rep,

mas eu me sinto tendo que retribuir..

e é o melhor que eu posso fazer, dar rep.

 

mesmo que o sistema de rep seja meio, mal planejado..

as vezes umas pessoas ganham rep por nada e outras se matam ajudando alguem (como vc fez me respondendo 300x)

pra não ganhar rep..

 

mas é isso. acho que é o unico modo de agradecer =P

 

vlw mesmo Demonb.

=D

Editado Junho 22 por OtheReality

1 mês depois...
KotzK
08 de julho de 2011 às 23:59

o Problema estav no return true no final do script.

uma pergunta se eu uso divine caldera ganha 1 storage eu entro em exausted só pra ela ou pra todas? (ja que é 1 storage só)

otherealityO
09 de julho de 2011 às 00:31

editado.

Editado Junho 22 por OtheReality

1 ano depois...
Fausto32F
23 de abril de 2013 às 20:56

Uma pergunta se eu uso divine caldera ganha 1 storage eu entro em exausted só pra ela ou pra todas? (ja que é 1 storage só)

Como eu poderia spearar o exaust de uma spell da outra?

1 mês depois...
tiuguedorT
07 de maio de 2013 às 23:05

amigo da pra da uma maozinha nao consegui coloca nesa magia

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, 52)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -17.0, -190, -17.5, -200)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, 52)

setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -17.0, -190, -17.5, -200)

 

arr1 = {

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

}

 

arr2 = {

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},

}

 

local area1 = createCombatArea(arr1)

local area2 = createCombatArea(arr2)

setCombatArea(combat1, area1)

setCombatArea(combat2, area2)

 

local function onCastSpell2(parameters)

doCombat(parameters.combat2, parameters.var)

end

 

local function onCastSpell3(parameters)

doCombat(parameters.combat3, parameters.var)

end

 

function onCastSpell(cid, var)

if exhaustion.check(cid, 23006) == false then

exhaustion.set(cid, 23006, 10)

return doCombat(cid, combat, var)

else

doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23006).."]")

end

end

dalvorsnD
10 de maio de 2013 às 18:32

Tem um problema sério em fazer assim, storages tem limite de caracteres, se não me engano é 255 caracteres.

Mas usar um para cada spell também é ruim pois pesa a database

o ideal mesmo seria que as spells tivessem ids, ai poderia usar numeros, que seriam bem mais leves de se gravar

ou entao deixa assim e aumenta o limite de caracteres das storages

11 de maio de 2013 às 19:58

Tem um problema sério em fazer assim, storages tem limite de caracteres, se não me engano é 255 caracteres.

Mas usar um para cada spell também é ruim pois pesa a database

o ideal mesmo seria que as spells tivessem ids, ai poderia usar numeros, que seriam bem mais leves de se gravar

ou entao deixa assim e aumenta o limite de caracteres das storages

 

sim... não esquece que eu postei isso em junho de 2011

1 mês depois...
Tiag017T
04 de junho de 2013 às 20:49

Bom, estava atrás disso para meu servidor 8.60 mais resolvi não utilizar mais vlw por trazer o tutorial vai ajudar quem precisa concerteza.

1 mês depois...
markindootM
23 de julho de 2013 às 12:10

ae desculpa reviver é pq eu estou com 1 script de uma magia de 5 efeitos,
eu queria que o player usasse ela em 3 em 3 minutos e tinha que possuir uma bota equipada!.

se puder na parte da bota eu esqueci o id, coloca xxx.

a spell é esta

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_MORTDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 5)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, -100, -3.0, -250)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_MORTDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 5)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680)

local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_MORTDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, 5)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680)

local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_MORTDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_EFFECT, 5)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680)

local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_MORTDAMAGE)
setCombatParam(combat5, COMBAT_PARAM_EFFECT, 5)
setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680)

arr1 = {
{1, 1, 1, 1, 1},
{1, 0, 0, 0, 1},
{1, 0, 2, 0, 1},
{1, 0, 0, 0, 1},
{1, 1, 1, 1, 1}
}




arr2 = {
{1, 1, 1, 1, 1},
{1, 0, 0, 0, 1},
{1, 0, 2, 0, 1},
{1, 0, 0, 0, 1},
{1, 1, 1, 1, 1}
}




arr3 = {
{1, 1, 1, 1, 1},
{1, 0, 0, 0, 1},
{1, 0, 2, 0, 1},
{1, 0, 0, 0, 1},
{1, 1, 1, 1, 1}
}




arr4 = {
{1, 1, 1, 1, 1},
{1, 0, 0, 0, 1},
{1, 0, 2, 0, 1},
{1, 0, 0, 0, 1},
{1, 1, 1, 1, 1}
}




arr5 = {
{1, 1, 1, 1, 1},
{1, 0, 0, 0, 1},
{1, 0, 2, 0, 1},
{1, 0, 0, 0, 1},
{1, 1, 1, 1, 1}
}




local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
local area3 = createCombatArea(arr3)
local area4 = createCombatArea(arr4)
local area5 = createCombatArea(arr5)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(combat3, area3)
setCombatArea(combat4, area4)
setCombatArea(combat5, area5)

local function onCastSpell1(parameters)
doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell2(parameters)
doCombat(parameters.cid, combat2, parameters.var)
end

local function onCastSpell3(parameters)
doCombat(parameters.cid, combat3, parameters.var)
end

local function onCastSpell4(parameters)
doCombat(parameters.cid, combat4, parameters.var)
end

local function onCastSpell5(parameters)
doCombat(parameters.cid, combat5, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 400, parameters)
addEvent(onCastSpell3, 700, parameters)
addEvent(onCastSpell4, 900, parameters)
addEvent(onCastSpell5, 1200, parameters)

return TRUE
end

 

 

 

 

OBS: já tentei colocar nesta linha da tag (exaustion="xxx") coloquei 30000 e quando lança a spell o player n consegui mais usar a runa até o tempo passar.


Responde rapido porfavor, estrou a procura dessa formula a 1 mes!!


consegui ja xD minha duvida sanada


Manow teria como colocar Cooldown em Runas?

minha runa é a Ultimate Healing Rune


Responde pls!!

Editado Julho 22 por markindoot

1 mês depois...
joismanJ
01 de agosto de 2013 às 13:13

Revivendo porque n achei outro tópico melhor..

 

Cara, eu to com quase o mesmo o problema..

deu certo, só que agr o player fica com uns 3000segundos de exaust na spell.. como arrumar?

 

function onCastSpell(cid, var)

if exhaustion.check(cid, 23006) == FALSE then
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 1000, parameters)
addEvent(onCastSpell2, 3000, parameters)
addEvent(onCastSpell3, 5000, parameters)
addEvent(onCastSpell4, 7000, parameters)
addEvent(onCastSpell5, 9000, parameters)
exhaustion.set(cid, 23006, 12)
return TRUE
else
doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23006).."]")
end

end

markindootM
04 de agosto de 2013 às 02:07

joisman muda a storage que ta ai deve tar igual de outra spell sei la e abaixa o tempo ex:

function onCastSpell(cid, var)

 

if exhaustion.check(cid, 23006) == FALSE then

local parameters = { cid = cid, var = var}

addEvent(onCastSpell1, 1000, parameters) <~ esse tempo entre as spells 1 hita dps do tempo hita dnv... no meu la emcima coloquei em 300~300

addEvent(onCastSpell2, 3000, parameters)

addEvent(onCastSpell3, 5000, parameters)

addEvent(onCastSpell4, 7000, parameters)

addEvent(onCastSpell5, 9000, parameters)

exhaustion.set(cid, 23006, 1) <~ aqui é o tempo para o player lançar dnv, no seu voce pois 12, 12segundos

return TRUE

else

doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23006).."]")

end

 

end