othereality 46 Postado Março 5, 2012 Share Postado Março 5, 2012 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 More sharing options...
Vodkart 1515 Postado Março 5, 2012 Share Postado Março 5, 2012 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 More sharing options...
othereality 46 Postado Março 5, 2012 Autor Share Postado Março 5, 2012 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 More sharing options...
Vodkart 1515 Postado Março 5, 2012 Share Postado Março 5, 2012 é que eu esqueci... false é para não se mover né? true é para mover normalmente acho kk Link para o comentário Compartilhar em outros sites More sharing options...
othereality 46 Postado Março 5, 2012 Autor Share Postado Março 5, 2012 é o contrario.. true não se move e false volta a se mover. Link para o comentário Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Março 5, 2012 Share Postado Março 5, 2012 ah isso mesmo iahiuhaiua eu inverti tudo vlw ai cara abraços Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados