Ir para conteúdo

Casting Time!


othereality

Posts Recomendados

Então, eu fiz uma spell e queria que durante o tempo que o player casteia ele não pudesse se mexer...

Aqui está a spell:

 

 

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 43)

function getCombatFormulas(cid, lv, maglv)
       local formula_min = -((lv*2 + maglv*6) * 0.5)
       local formula_max = -((lv*2 + maglv*6) * 1.5)


       if(formula_max < formula_min) then
               local tmp = formula_max
               formula_max = formula_min
               formula_min = tmp
       end
       return formula_min, formula_max
end

setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")

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, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 3, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 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},
}

local area1 = createCombatArea(arr1)
setCombatArea(combat1, area1)

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

function onCastSpell(cid, var)

if exhaustion.check(cid, 23069) == FALSE then
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 2000, parameters)
exhaustion.set(cid, 23069, 7)
return TRUE
else
doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23069).."]")
end

end

 

Ali no final tem:

 

addEvent(onCastSpell1, 2000, parameters)

Isso significa que ao usar a magia ela ainda leva 2s sendo castiada, eu queria que o player tivesse que ficar parado durante esses dois segundos.

Alguém sabe como fazer?

Link para o comentário
Compartilhar em outros sites

tenta usar addEvent


local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 43)

function getCombatFormulas(cid, lv, maglv)
       local formula_min = -((lv*2 + maglv*6) * 0.5)
       local formula_max = -((lv*2 + maglv*6) * 1.5)


       if(formula_max < formula_min) then
               local tmp = formula_max
               formula_max = formula_min
               formula_min = tmp
       end
       return formula_min, formula_max
end

setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")

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, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 3, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 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},
}

local area1 = createCombatArea(arr1)
setCombatArea(combat1, area1)

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

function onCastSpell(cid, var)
if exhaustion.check(cid, 23069) == FALSE then
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 2000, parameters)
doCreatureSetNoMove(cid, false)
addEvent(doCreatureSetNoMove,2000,cid, true)
exhaustion.set(cid, 23069, 7)
else
doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23069).."]")
end
return true
end

Link para o comentário
Compartilhar em outros sites

Aahhh vlw!

Só fiz uma alteração porque tava tirando o movimento depois de 2seg.

 

function onCastSpell(cid, var)

if exhaustion.check(cid, 23069) == FALSE then
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 2000, parameters)
doCreatureSetNoMove(cid, false)
addEvent(doCreatureSetNoMove,10,cid, true)
addEvent(doCreatureSetNoMove,2000,cid, false)
exhaustion.set(cid, 23069, 7)
else
doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23069).."]")
end
return true
end

 

ps: já dei rep hj, mas não vou esquecer.

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...