Ir para conteúdo
  • Cadastre-se

(Resolvido)[Pedido] Dar dano em determinaria área


Ir para solução Resolvido por Snowsz,

Posts Recomendados

Boa noite galera, preciso de ajuda :cc

Eu gostaria de um script (creio que globalevents) que faria o seguinte: A cada determinado tempo, um efeito aparecesse em uma posição determinada do mapa. Lá nessa posição, se um player estiver em cima quando ela aparecer, ele perde vida. 

Se alguém puder ajudar, agradeceria :333

 

Link para o post
Compartilhar em outros sites

Boa noite galera, preciso de ajuda :cc

Eu gostaria de um script (creio que globalevents) que faria o seguinte: A cada determinado tempo, um efeito aparecesse em uma posição determinada do mapa. Lá nessa posição, se um player estiver em cima quando ela aparecer, ele perde vida. 

Se alguém puder ajudar, agradeceria :333

Em que local vai ocorrer esse dano? Vai ser somente um local?

Link para o post
Compartilhar em outros sites

Não, na verdade diversas posições onde o efeito aparecer. Como se fosse uma flecha, onde ela passar vai dar dano

Link para o post
Compartilhar em outros sites

Não sei o tamanho :/ Mas pode me ajudar com o código mesmo assim?

Link para o post
Compartilhar em outros sites

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},
}
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

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)
Link para o post
Compartilhar em outros sites

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.

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

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?

Link para o post
Compartilhar em outros sites
  • 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
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Testei aqui, tá 100% :3333 Obrigado. Teria algum jeito de os monsters não tomarem dano quando tiverem na pos?

Link para o post
Compartilhar em outros sites

Acho que com isso já da para selecionar melhor resposta, não ?

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo