Postado Março 4, 2023 2 anos deve funcionar: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 70) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -35.0, 0, -40.5, 0) function onTargetCreature(cid, target) local position = {x = getThingPosition(target).x+0, y = getThingPosition(target).y+0, z = getThingPosition(target).z} -- aqui configura a posição do efeito doSendMagicEffect(position, 31) -- aqui muda o efeito ao acertar o player end setCombatCallback(combat1, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") 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 onCastSpell(cid, var) local parameters = {cid = cid, var = var, combat1 = combat1} for k = 1, 7 do addEvent(function() if isCreature(cid) then addEvent(onCastSpell1, 1, parameters) end end, 1 + ((k-1) * 225)) end return true end Host bom para hospedar seu jogo => https://shre.ink/OminiHost
Postado Março 5, 2023 2 anos Autor Ambos funcionaram, agradeço pelo ajuda de todos, vocês são feras !
Postado Março 7, 2023 2 anos local combat = createCombatObject() combat:setParam(COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN) combat:setParam(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) combat:setParam(COMBAT_PARAM_DISTANCEEFFECT, 70) combat:setFormula(COMBAT_FORMULA_LEVELMAGIC, -35.0, 0, -40.5, 0) local function onTargetCreature(cid, target) local position = getThingPosition(target) position.stackpos = 1 doSendMagicEffect(position, 31) end combat:setCallback(CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function onCastSpell(cid, var) for k = 1, 7 do addEvent(function() if isCreature(cid) then doCombat(cid, combat, var) end end, 1 + ((k - 1) * 225)) end return true end
Postado Março 8, 2023 2 anos Em 01/03/2023 em 22:29, Maahzeera disse: so tem este problema, quando o target morre, da este erro na distro quando der esse pensa, como vou acertar algo que ja está morto / não existe mais? como checar isso? local target = getCreatureTarget(cid) if target > 0 then if isCreature(target) then ... função ... end end checando se ainda existe aquele creature com "isCreature", pq se não tiver mais la, não fará nada no script pode ser basicamente assim: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_LIGHTGREEN) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 70) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -35.0, 0, -40.5, 0) local function onCastSpell1(cid, target, parameters) local position1 = {x=getThingPosition(target).x+0, y=getThingPosition(target).y+0, z=getThingPosition(target).z} doSendMagicEffect(position1, 31) if isCreature(parameters.cid) and isCreature(target) and getCreatureTarget(parameters.cid) > 0 then return isCreature(parameters.cid) and doCombat(parameters.cid, parameters.combat1, parameters.var) end end function onCastSpell(cid, var) local parameters = {cid = cid, var = var, combat1 = combat1} local target = getCreatureTarget(cid) if target <= 0 then return false -- se não tiver target retorna false end for k = 1, 7 do addEvent(function() if isCreature(cid) and isCreature(target) then --checa tanto o cid quanto o target addEvent(onCastSpell1, 1, cid, target, parameters) --passa o parametro do creature target pra função end end, 1 + ((k-1) * 225)) end return true end 2 minutos atrás, FeeTads disse: addEvent(onCastSpell1, 1, cid, target, parameters) nessa linha ele passa cid, target, parameters o que pode ser desnecessário, pq o parameters, ja possui na table o cid parameters.cid é a mesma coisa que cid
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.