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},
}