Ir para conteúdo

Featured Replies

Postado

Tenta isso, crie um arquivo em data/globalevents/scripts com o nome de areahit.lua e ponha isso dentro:
 

local areas = {
    {leftUpPoint = {x = 1, y = 2, z = 3}, rightDownPoint = {x = 6, y = 7, z = 8}, minHit = 100, maxHit = 500, effect = 30},

}

function onThink(interval, lastExecution, thinkInterval)
    for id, arr in pairs(areas) do
        for x = arr.leftUpPoint.x, arr.rightDownPoint.x do
            for y = arr.leftUpPoint.y, arr.rightDownPoint.y do
                for z = arr.leftUpPoint.z, arr.rightDownPoint.z do
                    local pos = {x = x, y = y, z = z}
                    local uid = getTopCreature(pos).uid
                    doSendMagicEffect(pos, arr.effect)
                    if isCreature(uid) then
                        doCreatureAddHealth(uid, -(math.random(arr.minHit, arr.maxHit)))
                    end
                end
            end
        end
    end
    return true
end

Em globalevents.xml adicione isso:
 

<globalevent name="think" interval="30000" event="script" value="areahit.lua"/>

Modifique o intervalo a seu gosto.

 

 

Configuração do script:
Modifique primeiro essa linha:
 

{leftUpPoint = {x = 1, y = 2, z = 3}, rightDownPoint = {x = 6, y = 7, z = 8}, minHit = 100, maxHit = 500, effect = 30},

• leftUpPoint coloque as coordenadas do ponto superior esquerdo da área que você quer que de os danos.

• rightDownPoint coloque as posições do canto inferior direito.

• minHit coloque o dano mínimo.

• maxHit coloque o dano máximo.

• effect coloque o id do efeito que você quer.

 

 

Após isso, é só copiar essa linha inteira e ir colocando e configurando mais áreas a seu gosto, exemplo:
 

local areas = {
    {leftUpPoint = {x = 1, y = 2, z = 3}, rightDownPoint = {x = 6, y = 7, z = 8}, minHit = 100, maxHit = 500, effect = 30},
    {leftUpPoint = {x = 178978, y = 213, z = 5}, rightDownPoint = {x = 612321312, y = 789890, z = 8}, minHit = 17800, maxHit = 4569000, effect = 20},
    {leftUpPoint = {x = 567856, y = 123123, z = 6}, rightDownPoint = {x = 6567778, y = 7798, z = 10}, minHit = 19500, maxHit = 7890000, effect = 4},
}
  • Respostas 20
  • Visualizações 1.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Tenta isso, crie um arquivo em data/globalevents/scripts com o nome de areahit.lua e ponha isso dentro:   local areas = { {leftUpPoint = {x = 1, y = 2, z = 3}, rightDownPoint = {x = 6, y = 7, z

  • local areas = { {leftUpPoint = {x = 1, y = 2, z = 3}, rightDownPoint = {x = 6, y = 7, z = 8}, minHit = 100, maxHit = 500, effect = 30}, } function onThink(interval, lastExecution, thinkInterval)

  • Troca: if isCreature(uid) then por: if not isMonster(uid) then

Posted Images

Postado
  • Autor

Obrigado pela ajuda, vou testar assim que possível. Tô com uns problemas de saúde e longe do acesso ao meu servidor pra testar agora, assim que possível vou editar esse comentário. <3

 

 

-- edit

Deixa eu perguntar, como funciona o interval? No caso aí tá quanto tempo?

Editado por Spoonkly (veja o histórico de edições)

Postado

Obrigado pela ajuda, vou testar assim que possível. Tô com uns problemas de saúde e longe do acesso ao meu servidor pra testar agora, assim que possível vou editar esse comentário. <3

 

 

-- edit

Deixa eu perguntar, como funciona o interval? No caso aí tá quanto tempo?

Creio que seja 30 segundos, caso não aconteça em 30 segundos, só mude o valor para 30.

Postado
  • Autor

Tenho uma outra dúvida, não sei como ficou no jogo ou se a configuração já tá assim, mas teria um jeito de aparecer o dano causado em tipo um daqueles AnimatedText?

Postado
  • Solução
local areas = {
    {leftUpPoint = {x = 1, y = 2, z = 3}, rightDownPoint = {x = 6, y = 7, z = 8}, minHit = 100, maxHit = 500, effect = 30},

}

function onThink(interval, lastExecution, thinkInterval)
    for id, arr in pairs(areas) do
        for x = arr.leftUpPoint.x, arr.rightDownPoint.x do
            for y = arr.leftUpPoint.y, arr.rightDownPoint.y do
                for z = arr.leftUpPoint.z, arr.rightDownPoint.z do
                    local pos = {x = x, y = y, z = z}
                    local uid = getTopCreature(pos).uid
                    doSendMagicEffect(pos, arr.effect)
                    if isCreature(uid) then
                        local random = math.random(arr.minHit, arr.maxHit)
                        doCreatureAddHealth(uid, -random)
                        doSendAnimatedText(pos,"-"..random, 180)
                    end
                end
            end
        end
    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