- Awards
- 38
Script por Marco mejorado por Rombadr
Este script permite crear un boss aleatorio en una room por Tiempo, es decir en el tiempo indicado abajo aparecera el boss.
Hay una talkaction que permite empezar el script /startBoss
El script va en data/scripts
Este script permite crear un boss aleatorio en una room por Tiempo, es decir en el tiempo indicado abajo aparecera el boss.
Hay una talkaction que permite empezar el script /startBoss
El script va en data/scripts
Código:
local configRoom = {
centerRoom = Position(100, 100, 7),
fromPos = Position(100, 100, 7),
toPos = Position(100, 100, 7),
rangeX = 20,
rangeY = 20
}
local configBosses = {
[1] = {
bossName = "The Many",
summon = {
name = "Hydra",
amount = 30
},
},
[2] = {
bossName = "Orshabaal",
summon = {
name = "Demon",
amount = 10
},
}
}
local function getRandomSpawnPosition(fromPos, toPos)
return Position(math.random(fromPos.x, toPos.x), math.random(fromPos.y, toPos.y), math.random(fromPos.z, toPos.z))
end
local function startBossRoom()
local specs = Game.getSpectators(configRoom.centerRoom, false, false, configRoom.rangeX, configRoom.rangeX, configRoom.rangeY, configRoom.rangeY)
for _, spec in pairs(specs) do
if spec:isMonster() then
spec:remove()
end
end
-- Create Boss:
local bossIndex = math.random(1, 2)
local boss = configBosses[bossIndex]
local bossName = boss.bossName
Game.createMonster(bossName, configRoom.centerRoom, true, true)
-- Create Summons:
local summon = boss.summon
if summon then
local summonName = boss.summon.name
local summonAmount = boss.summon.amount
for i = 1, summonAmount do
local randomPos = getRandomSpawnPosition(configRoom.fromPos, configRoom.toPos)
Game.createMonster(summonName, randomPos, true, true)
end
end
Game.broadcastMessage("The boss room was cleaned and the boss " .. bossName.. " was spawned.", MESSAGE_EVENT_ADVANCE)
end
local bossRoom = GlobalEvent("Random Boss Room")
function bossRoom.onTime(interval)
startBossRoom()
return true
end
bossRoom:interval(3 * 60 * 60 * 1000)
bossRoom:register()
local startBossRoomTalk = TalkAction("/startBoss")
function startBossRoomTalk.onSay(player, words, param)
if not player:getGroup():getAccess() or player:getAccountType() < ACCOUNT_TYPE_GOD then
return true
end
startBossRoom()
return false
end
startBossRoomTalk:register()