Postado Setembro 25, 2017 7 anos Bom eu gostaria que essa spell fosse até o alvo se alguem puder me ajudar ... ( não adianta alterar no spell.xml) local config = { velocidade = 400, -- intervalo entre os giros (quanto menor, mais rapido) hits = 50, -- quantos hits vai dar key = 13871, -- storage que sera utilizado pro cooldown cooldown = 1, -- tempo em segundos de cooldown entre um uso da spell e outro. effect1 = 3, -- efeito de distancia que vai ficar rodando effect3 = 5, -- efeito ao castar a spell effect4 = 5 -- efeito ao acertar a roda no player } --[[Note que a velocidade multiplicada pelo numero de hits deve dar algo proximo de 8550 pra que a magia nao fique ruim ou um efeito acabe antes do outro. Nos valores que eu utilizei eles dao 8400, oque ja eh considerado perto pois temos 200 milisegundos iniciais, 8550 eh o tempo que o item sera removido e coincide com o tempo de duracao do efeito 56 (config.effect2)]] local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 255) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onTargetCreature(cid, target) doSendMagicEffect(getCreaturePosition(target), config.effect4) end setCombatCallback(combat, 4, "onTargetCreature") local arr = { {1, 1, 1}, {1, 3, 1}, -- area que vai acertar a spell enquanto estiver rodando {1, 1, 1}, } local area = createCombatArea(arr) setCombatArea(combat, area) function initEffect(position) for i = 0, 3 do local pos = {x = position.x, y = position.y, z = position.z} local dir = getPosByDir(pos, i) doSendDistanceShoot(position, dir, config.effect1) end return true end function middleEffect(uid, param, lim, count) n = count or 0 if isCreature(uid) and n < lim then for i = 0, 3 do local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z} local pos2 = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z} local dir = getPosByDir(pos, i) local dir2 = getPosByDir(pos2, i + 1 <= 3 and i + 1 or 0) doSendDistanceShoot(dir, dir2, config.effect1) end doCombat(uid, combat, { pos = getCreaturePosition(uid), type = 2 }) addEvent(middleEffect, config.velocidade, uid, param, lim, n + 1) end return true end function endEffect(uid) if isCreature(uid) then for i = 0, 3 do local pos = {x = getCreaturePosition(uid).x, y = getCreaturePosition(uid).y, z = getCreaturePosition(uid).z} local dir = getPosByDir(pos, i) doSendDistanceShoot(dir, getCreaturePosition(uid), config.effect1) end end return true end function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.key) - os.time() <= 0 then setPlayerStorageValue(cid, config.key, os.time() + config.cooldown) local position = getCreaturePosition(cid) doCreatureSay(cid, config.msg, 20) addEvent(endEffect, 8.55 * 1000, uid) doSendMagicEffect(position, config.effect3) initEffect(position) addEvent(middleEffect, 200, cid, var, config.hits) else doPlayerSendCancel(cid, "You're exhausted.") end return true end Editado Setembro 25, 2017 7 anos por Messe (veja o histórico de edições)
Postado Setembro 26, 2017 7 anos @Messe é totalmente proibido comentar up para subir tópico, use nosso botão que faz a mesma coisa que comentar. Leia as regras. Não adianta alterar na xml ? Colocar range não funciona ? Se não funciona sua distro ta bugada!
Postado Outubro 4, 2017 7 anos Em Tuesday, September 26, 2017 em 18:08, KotZletY disse: @Messe é totalmente proibido comentar up para subir tópico, use nosso botão que faz a mesma coisa que comentar. Leia as regras. Não adianta alterar na xml ? Colocar range não funciona ? Se não funciona sua distro ta bugada! Eu acho que ele quer tipo um amaterasu do itachi
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.