Postado Junho 4, 2022 3 anos Autor Solução Um amigo conseguiu arrumar, vou está deixando aqui caso outra pessoa tbm precise. Abraço @Fabi Marzan obrigado por tentar ajudar mano, por mais gente assim na comunidade. local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_TEAL) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 42) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -35.0, 0, -40.5, 0) local function onCastSpell1(parameters) if isCreature(parameters.cid) and getCreatureTarget(parameters.cid) then return isCreature(parameters.cid) and doCombat(parameters.cid, parameters.combat1, parameters.var) end end function rk1(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+0, y=getThingPosition(getCreatureTarget(cid)).y+0, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position1, 32) end end function onCastSpell(cid, var) local parameters = {cid = cid, var = var, combat1 = combat1} for k = 1, 10 do addEvent(function() if isCreature(cid) then addEvent(onCastSpell1, 1, parameters) end end, 1 + ((k-1) * 225)) end for i = 1, 10 do addEvent(function() if isCreature(cid) then addEvent(rk1,1,cid) end end, 1 + ((i-1) * 225)) end return true end
Postado Junho 5, 2022 3 anos @daniel.braga989 Se você notar, quando você parar de atacar o efeito para, não dá erro, mas para quando perde o alvo. @daniel.braga989 Os scripts que eu te passo, resolvem todos esses problemas apenas usando essas funções. function effect_1(cid, target) -- NOME DO FUCTION (EFFECT_1) if isCreature(cid) and isCreature(target) then local pos = getCreaturePosition(target) doSendMagicEffect({x = pos.x + 0, y = pos.y + 0, z = pos.z}, 32) -- Effect end end Abaixo do function onCastSpell(cid, var) Você coloca isso: local config = { hit = 1, -- Hits que vai dar time = 500, -- Delay (time for effect) configtarget = getCreatureTarget(cid), } for a = 1, config.hit do addEvent(effect_1, config.time * a, cid, config.configtarget) -- Se você olhar, você obterá o nome da função (effect_1) end Você deseja obter outra função com outros hits e tempo? O mesmo function effect_2(cid, target) -- NOME DO FUCTION (EFFECT_2) agr e 2. if isCreature(cid) and isCreature(target) then local pos = getCreaturePosition(target) doSendMagicEffect({x = pos.x + 0, y = pos.y + 0, z = pos.z}, 32) -- Effect end end O mesmo adiciona outro hit e tempo local config = { hit = 1, -- Hits que vai dar hit2 = 2, -- Hits que vai dar (Outro Hit para funcao do Effect_2) time = 500, -- Delay (time for effect) time2 = 500, -- Delay (time for effect) -- (Tempo para funcao do Effect_2) configtarget = getCreatureTarget(cid), } Então o final seria assim for a = 1, config.hit do addEvent(effect_1, config.time * a, cid, config.configtarget) for a = 1, config.hit2 do -- (Hit2 pra funcao Effect_2) addEvent(effect_2, config.time2 * a, cid, config.configtarget) end end A partir daqui é uma questão de saber ler os scripts. Editado Junho 5, 2022 3 anos por Fabi Marzan (veja o histórico de edições)
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.