Ir para conteúdo

Featured Replies

  • Respostas 12
  • Visualizações 942
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

Posted Images

Postado
  • Solução

//solução:
 

local SKILL_NAME = "Lava Plume"
local SKILL_AREAS = {
    createCombatArea(AREA_CROSS6X6)
}

local combats = {}
for i, skillArea in ipairs(SKILL_AREAS) do
    combats[i] = createCombatObject()
    onTargetCreature_LavaPlume = function(cid, target)
        doSkillDamage(cid, target, SKILL_NAME)
        if (not isCreature(target)) then return end -- Defeated
        if (not doPokemonSpecialAbilityCheck(target, POKEMON_SPECIAL_ABILITY_IDS.SHIELD_DUST, nil) and getRandom(0, 100) <=
                (doPokemonSpecialAbilityCheck(cid, POKEMON_SPECIAL_ABILITY_IDS.SERENA_GRACE, nil) and 60 or 30)) then
            doCreatureAddStatus(target, CREATURE_STATUS_BURN, getMonsterLevel(cid), cid)
        end
    end
    setCombatCallback(combats[i], CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature_LavaPlume")
    setCombatArea(combats[i], skillArea)
end

local function doSpell(cid, combat, var)
    if (isCreature(cid)) then
        doCombat(cid, combat, var)
    end
end

local function fallProjectile(cid, pos)
    if not isCreature(cid) then return true end
    local apos = pos
    local frompos = {x=apos.x-7,y=apos.y-6,z=apos.z}
    doSendDistanceShoot(frompos, pos, 7)
end
 
local function sendEff(cid, pos) 
    if not isCreature(cid) then return true end
    local apos = pos
    doSendMagicEffect(apos, CONST_ME_ICEATTACK)
end

function onCastSpell(cid, var)
 local t = {}
    local posic = getThingPos(cid)
 
    for x = -6, 6 do
        for y = -7, 8 do
            local posi = {x = posic.x + x, y = posic.y-5 + y, z = posic.z, stackpos = 0}
            table.insert(t, posi)
        end
    end
 
    for v = 1, #t do
        if (#t >= 1) then
            local random = math.random(1, #t)
            addEvent(fallProjectile, v * 12, cid, t[random])
            addEvent(sendEff, v * 14, cid, t[random])
        end
    end
    for i, combat in ipairs(combats) do
        addEvent(doSpell, 500 * (i - 1) + 1, cid, combat, var)
    end
    return true
end

 

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo