<globalevent name="LMS_Event" interval="1000" event="script">
<![CDATA[
domodlib("lms_config")
function onThink(interval, lastExecution)
if getStorage(configFire.eventStorage) == 1 then
local xTable, yTable, playerTable = {}, {}, {}
for x = arena.fromPos.x, arena.toPos.x do
for y = arena.fromPos.y, arena.toPos.y do
table.insert(xTable, x)
table.insert(yTable, y)
local n, i = getTileInfo({x=x, y=y, z=7}).creatures, 1
if n ~= 0 then
local v = getThingfromPos({x=x, y=y, z=7, stackpos=i}).uid
while v ~= 0 do
if isPlayer(v) then
table.insert(playerTable, v)
if n == #playerTable then
break
end
end
i = i + 1
v = getThingfromPos({x=x, y=y, z=7, stackpos=i}).uid
end
end
end
end
if #playerTable == 1 then
local prize = math.random(#configFire.rewardID)
doTeleportThing(playerTable[1], getTownTemplePosition(getPlayerTown(playerTable[1])), true)
doPlayerAddItem(playerTable[1], configFire.rewardID[prize], 1)
doPlayerSendTextMessage(playerTable[1], MESSAGE_EVENT_ADVANCE, 'You win. Your reward is ' .. getItemNameById(configFire.rewardID[prize]) .. '.')
doBroadcastMessage('Fire Storm Event have finished. The winner is ' .. getCreatureName(playerTable[1]) .. '. Congratulations.', MESSAGE_EVENT_ADVANCE)
doSetStorage(configFire.eventStorage, -1)
x, y = 1, 1
elseif #playerTable > 1 then
for a = 1, y do
local pos = {x=xTable[math.random(#xTable)], y=yTable[math.random(#yTable)], z=7}
for _, player in ipairs(playerTable) do
local pPos = getThingPos(player)
if pPos.x == pos.x and pPos.y == pos.y and pPos.z == pos.z then
doCreatureAddHealth(player, - getCreatureMaxHealth(player))
end
end
doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE)
addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE)
addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA)
end
if x == 5 * y then
y = y + 1
end
x = x + 1
else
doBroadcastMessage('No one Won the Fire Storm Event.', MESSAGE_EVENT_ADVANCE)
doSetStorage(configFire.eventStorage, -1)
x, y = 1, 1
end
end
return true
end
]]>
</globalevent>