RevScript TFS 1.3 Random Boss Room

Alex

Miembro del equipo
Webdesigner
LV
58
 
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

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()
 

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
no hay manera de hacerlo de palanca (lever)?
Un lever, que al ir, te salga un boss ?
Es differente el script,
Hacerlo aleatorio, seria coger cualquier script de palanca existente en tibia o en el foro,
En la parte que saldria: (o mas o menos:)
Código:
Game.createMonster
entre parentesis (), crear un local = de monstruos:

Código:
local bosses = {
boss1 = orshabaal,
boss2 = abyssador,
boss3 = the pale count
}

y entonces agregar algo similar a:
Código:
(math.random(100), bosses)
Y lo que haria es aleatoriamente crear un boss de la lista en esa palanca.

Cualquier duda, si encuentras el script escribe en la parte Soporte Tibia.
 
Arriba