Ir para conteúdo

msousay

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    msousay deu reputação a xWhiteWolf em Frozen Orb   
    o primeiro passo é aumentar a area que a spell acerta:

    local arr = {
    {1, 1, 1},
    {1, 3, 1}, -- area que vai acertar a spell enquanto estiver rodando
    {1, 1, 1},
    }

    O dano da spell só depende dessa area, todo o resto é só efeito.

    Pra modificar os efeitos vc precisa modificar 3 funções: a init, a middle e a end effect.


    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
    addEvent(doSendMagicEffect, 300, position, config.effect2)
    return true
    end
    function middleEffect(cid, param, position, lim, count)
    n = count or 0
        if isCreature(cid) and n < lim then
            local position = getCreaturePosition(cid)
            for i = 0, 3 do
                local pos = {x = position.x, y = position.y, z = position.z}
                local pos2 = {x = position.x, y = position.y, z = position.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(cid, combat, param)
            addEvent(middleEffect, config.velocidade, cid, param, position, lim, n + 1)
        end
    return true
    end
    function endEffect(position)
        local position = getCreaturePosition(cid)
        for i = 0, 3 do
            local pos = {x = position.x, y = position.y, z = position.z}
            local dir = getPosByDir(pos, i)
            doSendDistanceShoot(dir, position, config.effect1)
        end
    return true
    end


    tenta entender como elas funcionam, vai debugando o código na sua cabeça ou num papel pra entender o que cada função faz e como ela faz isso. Mas basicamente a primeira função solta 1 efeito até cada sqm norte, sul, leste e oeste. A segunda fica fazendo o efeito de ir de uma quina a outra e a terceira faz o contrário da primeira pra voltar o efeito e dar a sensação de que a magia saiu, ficou rodando e voltou...

    Com esse entendimento e percebendo como cada for atua pra soltar esses efeitos você consegue editar pra aumentar a area;
    Pra primeira função e a ultima função, tudo que vc precisa fazer é adicionar +1 sqm nessa função aqui:
     local dir = getPosByDir(pos, i)

    essa função tem 3 parametros, sendo o terceiro opcional:
    1- a posição
    2- a direção
    3- a distancia.
    pos é a posição e i é a direção, pra aumentar em +1 sqm temos que modificar isso para usar o terceiro parametro:
     local dir = getPosByDir(pos, i, 2)

    O processo é semelhante para a função middle, com a diferença de que ela utiliza duas posições ao invés de somente uma.
                local dir = getPosByDir(pos, i, 2)
                local dir2 = getPosByDir(pos2, i + 1 <= 3 and i + 1 or 0, 2)
  2. Gostei
    msousay deu reputação a xWhiteWolf em Frozen Orb   
    tenta assim amigo:
     
     

Informação Importante

Confirmação de Termo