Postado Junho 1, 2014 11 anos estou tentando criar um otserv com spell para combar, mas não estou conseguindo adicionar cooldown em spells que dá mais que 1 hit segue a spell : local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end function onCastSpell(cid, var) if exhaustion.check(cid, 23006) == false then exhaustion.set(cid, 23006, 1) return doCombat(cid, combat1, var) else doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23006).."]") end local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2 } addEvent(onCastSpell1, 200, parameters) addEvent(onCastSpell2, 600, parameters) return true end alguém poderia me ajudar ? :s Editado Junho 1, 2014 11 anos por Mauricio Marcari (veja o histórico de edições)
Postado Junho 1, 2014 11 anos Em speels.xml vá ate a magia e em exaustion coloca o tempo que vc quiser em milésimos... lembrando 1s=1000milésimos.. se quiser cooldown de 10 s será = 10000. Att:lucas Scripter: |||||||||| 10% Te ajudei?? REP + e ficamos quites... Atenciosamente, Lucas. Abraços!
Postado Junho 1, 2014 11 anos Autor mas isso iria editar o exausted da magia em si... onde se eu mudar pra 10000, só vou poder usar qlqr outra magia de atk dentro de 10 segundos... e oq eu quero, é q mude somente o cooldown para aquela spell... onde eu só possa usar ele dentro de 10 segundos novamente, mas posso usar outras magias de ataque 1,5 segundo após usar essa ;s
Postado Junho 1, 2014 11 anos Solução A então deixa exausted em 1500 e substitua sua magia por essa V local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end local tempo = 10 local stor = 23232 function onCastSpell(cid, var) if exhaustion.check(cid, 23006) == false and (getPlayerStorageValue(cid, stor) - os.time() <= 0) then setPlayerStorageValue(cid, stor, os.time() + tempo) exhaustion.set(cid, 23006, 1) return doCombat(cid, combat1, var) else doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23006).."]") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Vc só pode usar essa magia 1 vez a cada 10 segundos.") end local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2 } addEvent(onCastSpell1, 200, parameters) addEvent(onCastSpell2, 600, parameters) return true end Obs: tinha um errinho lá no meio, pega e copia e coal denovo se estiver olhando agora isso... Editado Junho 1, 2014 11 anos por llucas75 (veja o histórico de edições) Scripter: |||||||||| 10% Te ajudei?? REP + e ficamos quites... Atenciosamente, Lucas. Abraços!
Postado Junho 1, 2014 11 anos Autor funcional, dando somente 1 erro, mas logo eu arrumo REP+ e pedido resolvido u.u
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.