✅solicitud de script

T

thefrancis

Invited
Buenas noches, estoy trabajando con el hellgrave 12.72.
me parece un mapa genial el cual se nota las ganas que le han puesto por editarlo, y decidi tambien agregarle algunas modificaciones y nuevas zonas.

- quisiera saber si hay alguna forma de agregar zonas en la cual los summons ya sean por el spells "utevo res" o familiares no puedan ingresar ni ser invocados.
- esto es debido a que he intentado con varios scripts y cuando hay summons en la parte de las palancas salta error en la consola.
- lo otro es que cuando entran grupos de 2 o mas player. solo se le agrega cooldown de bosses al que tiro la palanca a los demas que participan pueden volver a intentarlo y hacer que el que ya la tiro, pueda volver a entrar.

Captura.PNG

me pasa con todos los bosses de palancas quisiera saber si alguien tiene alguna solucion o alguna mejor idea.
Code:
local config = {
    cooldown = 60 * 60 * 24, -- in seconds - (Make it 'seconds * minutes * hours' - its will be '60 * 60 * 20' for 20 hours) (player cooldown)
    cooldown_storage = 811307,
    duration = 10, -- time till reset, in minutes (lever cooldown)
    level_req = 100, -- minimum level to do quest
    min_players = 1, -- minimum players to join quest
    lever_id = 1945, -- id of lever before pulled
    pulled_id = 1946, -- id of lever after pulled
}

local player_positions = {
    [1] = {fromPos = Position(32211, 32272, 6), toPos = Position(31940, 31935, 7)},
    [2] = {fromPos = Position(32212, 32272, 6), toPos = Position(31941, 31935, 7)},
    [3] = {fromPos = Position(32213, 32272, 6), toPos = Position(31942, 31935, 7)},
    [4] = {fromPos = Position(32214, 32272, 6), toPos = Position(31943, 31936, 7)}
}

local monsters = {
    [1] = {pos = Position(31937, 31941, 7), name = "Dragon Lord"},
    [2] = {pos = Position(31941, 31944, 7), name = "Dragon"},
    [3] = {pos = Position(31945, 31942, 7), name = "Dragon"}
}
local quest_range = {fromPos = Position(31934, 31941, 7), toPos = Position(31950, 31950, 7)}

local exit_position = Position(32215, 32268, 6) -- Position completely outside the quest area

local fireArena = Action()

function doResetTheBossDukeKrule(position, cid_array)
 
    local tile = Tile(position)
 
    local item = tile and tile:getItemById(config.pulled_id)
    if not item then
        return
    end
 
    local monster_names = {}
    for key, value in pairs(monsters) do
        if not isInArray(monster_names, value.name) then
            monster_names[#monster_names + 1] = value.name
        end
    end
 
    for i = 1, #monsters do
        local creatures = Tile(monsters.pos):getCreatures()
        for key, creature in pairs(creatures) do
            if isInArray(monster_names, creature:getName()) then
                creature:remove()
            end
        end
    end
 
    for i = 1, #player_positions do
        local creatures = Tile(player_positions.toPos):getCreatures()
        for key, creature in pairs(creatures) do
            if isInArray(monster_names, creature:getName()) then
                creature:remove()
            end
        end
    end
 
    for key, cid in pairs(cid_array) do
        local participant = Player(cid)
    if participant and isInRange(participant:getPosition(), quest_range.fromPos, quest_range.toPos) then
            participant:teleportTo(exit_position)
            exit_position:sendMagicEffect(CONST_ME_TELEPORT)
        end
    end
 
    item:transform(config.lever_id)
end

local function removeBoss()
local specs, spec = Game.getSpectators(Position(33919, 31646, 8), false, false, 18, 18, 18, 18) -- Do not change
    for j = 1, #specs do
        spec = specs[j]
        if spec:getName():lower() == 'Dragon lord' then
            spec:remove()
        end
    end
end

function fireArena.onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if player:getStorageValue(config.cooldown_storage) >= os.time() then
        player:sendTextMessage(MESSAGE_INFO_DESCR, "Try Again in 24 Hours.")
        return true
    end
 
 
    local participants, pull_player = {}, false
    for i = 1, #player_positions do
        local fromPos = player_positions.fromPos
        local tile = Tile(fromPos)
        if not tile then
            print(">> ERROR: Arena Fire tile does not exist for Position(" .. fromPos.x .. ", " .. fromPos.y .. ", " .. fromPos.z .. ").")
            return player:sendCancelMessage("There is an issue with this quest. Please contact an administrator.")
        end
 
        local creature = tile:getBottomCreature()
        if creature then
            local participant = creature:getPlayer()
            if not participant then
                return player:sendCancelMessage(participant:getName() .. " is not a valid participant.")
            end
 
            if participant:getLevel() < config.level_req then
                return player:sendCancelMessage(participant:getName() .. " is not the required level.")
            end
 
            if participant.uid == player.uid then
                pull_player = true
            end
 
            participants[#participants + 1] = {participant = participant, toPos = player_positions.toPos}
        end
    end
 
    if #participants < config.min_players then
        return player:sendCancelMessage("You do not have the required amount of participants.")
    end
 
    if not pull_player then
        return player:sendCancelMessage("You are in the wrong position.")
    end
 
    for i = 1, #monsters do
        local toPos = monsters.pos
        if not Tile(toPos) then
            print(">> ERROR: Arena Fire tile does not exist for Position(" .. toPos.x .. ", " .. toPos.y .. ", " .. toPos.z .. ").")
            return player:sendCancelMessage("There is an issue with this quest. Please contact an administrator.")
        end
        removeBoss()
        Game.createMonster(monsters.name, monsters.pos, false, true)
    end
 
    local cid_array = {}
    for i = 1, #participants do
        participants.participant:teleportTo(participants.toPos)
        participants.toPos:sendMagicEffect(CONST_ME_TELEPORT)
        cid_array[#cid_array + 1] = participants.participant.uid
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have 20 minutes to kill and loot all monsters. Otherwise you will lose that chance and will be kicked out.")
    end
 
    item:transform(config.pulled_id)
    player:setStorageValue(config.cooldown_storage, os.time() + config.cooldown)
    addEvent(doResetTheBossDukeKrule, config.duration * 20 * 60000,  toPosition, cid_array)
    return true
end

fireArena:uid(41383)
fireArena:register()

pasa con todos los bosses y quisiera saber si es posible repararlo, y que le cuente a todos los que entren al boss el cd.
 
Last edited by a moderator:
Solution
Buenas noches, estoy trabajando con el hellgrave 12.72.
me parece un mapa genial el cual se nota las ganas que le han puesto por editarlo, y decidi tambien agregarle algunas modificaciones y nuevas zonas.

- quisiera saber si hay alguna forma de agregar zonas en la cual los summons ya sean por el spells "utevo res" o familiares no puedan ingresar ni ser invocados.
- esto es debido a que he intentado con varios scripts y cuando hay summons en la parte de las palancas salta error en la consola.
- lo otro es que cuando entran grupos de 2 o mas player. solo se le agrega cooldown de bosses al que tiro la palanca a los demas que participan pueden volver a intentarlo y hacer que el que ya la tiro, pueda volver a entrar.

View attachment 3083

me...
Buenas noches, estoy trabajando con el hellgrave 12.72.
me parece un mapa genial el cual se nota las ganas que le han puesto por editarlo, y decidi tambien agregarle algunas modificaciones y nuevas zonas.

- quisiera saber si hay alguna forma de agregar zonas en la cual los summons ya sean por el spells "utevo res" o familiares no puedan ingresar ni ser invocados.
- esto es debido a que he intentado con varios scripts y cuando hay summons en la parte de las palancas salta error en la consola.
- lo otro es que cuando entran grupos de 2 o mas player. solo se le agrega cooldown de bosses al que tiro la palanca a los demas que participan pueden volver a intentarlo y hacer que el que ya la tiro, pueda volver a entrar.

View attachment 3083

me pasa con todos los bosses de palancas quisiera saber si alguien tiene alguna solucion o alguna mejor idea.
Code:
local config = {
    cooldown = 60 * 60 * 24, -- in seconds - (Make it 'seconds * minutes * hours' - its will be '60 * 60 * 20' for 20 hours) (player cooldown)
    cooldown_storage = 811307,
    duration = 10, -- time till reset, in minutes (lever cooldown)
    level_req = 100, -- minimum level to do quest
    min_players = 1, -- minimum players to join quest
    lever_id = 1945, -- id of lever before pulled
    pulled_id = 1946, -- id of lever after pulled
}

local player_positions = {
    [1] = {fromPos = Position(32211, 32272, 6), toPos = Position(31940, 31935, 7)},
    [2] = {fromPos = Position(32212, 32272, 6), toPos = Position(31941, 31935, 7)},
    [3] = {fromPos = Position(32213, 32272, 6), toPos = Position(31942, 31935, 7)},
    [4] = {fromPos = Position(32214, 32272, 6), toPos = Position(31943, 31936, 7)}
}

local monsters = {
    [1] = {pos = Position(31937, 31941, 7), name = "Dragon Lord"},
    [2] = {pos = Position(31941, 31944, 7), name = "Dragon"},
    [3] = {pos = Position(31945, 31942, 7), name = "Dragon"}
}
local quest_range = {fromPos = Position(31934, 31941, 7), toPos = Position(31950, 31950, 7)}

local exit_position = Position(32215, 32268, 6) -- Position completely outside the quest area

local fireArena = Action()

function doResetTheBossDukeKrule(position, cid_array)
 
    local tile = Tile(position)
 
    local item = tile and tile:getItemById(config.pulled_id)
    if not item then
        return
    end
 
    local monster_names = {}
    for key, value in pairs(monsters) do
        if not isInArray(monster_names, value.name) then
            monster_names[#monster_names + 1] = value.name
        end
    end
 
    for i = 1, #monsters do
        local creatures = Tile(monsters.pos):getCreatures()
        for key, creature in pairs(creatures) do
            if isInArray(monster_names, creature:getName()) then
                creature:remove()
            end
        end
    end
 
    for i = 1, #player_positions do
        local creatures = Tile(player_positions.toPos):getCreatures()
        for key, creature in pairs(creatures) do
            if isInArray(monster_names, creature:getName()) then
                creature:remove()
            end
        end
    end
 
    for key, cid in pairs(cid_array) do
        local participant = Player(cid)
    if participant and isInRange(participant:getPosition(), quest_range.fromPos, quest_range.toPos) then
            participant:teleportTo(exit_position)
            exit_position:sendMagicEffect(CONST_ME_TELEPORT)
        end
    end
 
    item:transform(config.lever_id)
end

local function removeBoss()
local specs, spec = Game.getSpectators(Position(33919, 31646, 8), false, false, 18, 18, 18, 18) -- Do not change
    for j = 1, #specs do
        spec = specs[j]
        if spec:getName():lower() == 'Dragon lord' then
            spec:remove()
        end
    end
end

function fireArena.onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if player:getStorageValue(config.cooldown_storage) >= os.time() then
        player:sendTextMessage(MESSAGE_INFO_DESCR, "Try Again in 24 Hours.")
        return true
    end
 
 
    local participants, pull_player = {}, false
    for i = 1, #player_positions do
        local fromPos = player_positions.fromPos
        local tile = Tile(fromPos)
        if not tile then
            print(">> ERROR: Arena Fire tile does not exist for Position(" .. fromPos.x .. ", " .. fromPos.y .. ", " .. fromPos.z .. ").")
            return player:sendCancelMessage("There is an issue with this quest. Please contact an administrator.")
        end
 
        local creature = tile:getBottomCreature()
        if creature then
            local participant = creature:getPlayer()
            if not participant then
                return player:sendCancelMessage(participant:getName() .. " is not a valid participant.")
            end
 
            if participant:getLevel() < config.level_req then
                return player:sendCancelMessage(participant:getName() .. " is not the required level.")
            end
 
            if participant.uid == player.uid then
                pull_player = true
            end
 
            participants[#participants + 1] = {participant = participant, toPos = player_positions.toPos}
        end
    end
 
    if #participants < config.min_players then
        return player:sendCancelMessage("You do not have the required amount of participants.")
    end
 
    if not pull_player then
        return player:sendCancelMessage("You are in the wrong position.")
    end
 
    for i = 1, #monsters do
        local toPos = monsters.pos
        if not Tile(toPos) then
            print(">> ERROR: Arena Fire tile does not exist for Position(" .. toPos.x .. ", " .. toPos.y .. ", " .. toPos.z .. ").")
            return player:sendCancelMessage("There is an issue with this quest. Please contact an administrator.")
        end
        removeBoss()
        Game.createMonster(monsters.name, monsters.pos, false, true)
    end
 
    local cid_array = {}
    for i = 1, #participants do
        participants.participant:teleportTo(participants.toPos)
        participants.toPos:sendMagicEffect(CONST_ME_TELEPORT)
        cid_array[#cid_array + 1] = participants.participant.uid
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have 20 minutes to kill and loot all monsters. Otherwise you will lose that chance and will be kicked out.")
    end
 
    item:transform(config.pulled_id)
    player:setStorageValue(config.cooldown_storage, os.time() + config.cooldown)
    addEvent(doResetTheBossDukeKrule, config.duration * 20 * 60000,  toPosition, cid_array)
    return true
end

fireArena:uid(41383)
fireArena:register()

pasa con todos los bosses y quisiera saber si es posible repararlo, y que le cuente a todos los que entren al boss el cd.
Hola.

Exacto, eso fue reparado en la nueva versión Hellgrave v6.0, como tarda en salir, obviamente, la versión 5.5 no lo trae corregido.
Aquí te dejo el script por el cual funciona y deberás reemplazar el script de cada boss ( 1 solo ) por este,
Toma nota que el nombre del boss tiene que estar en minúsculas,
Si hay alguien dentro, no podrán entrar, si terminan de matar el boss y no salen de la room, nadie podrá entrar ( pero hay un cooldown , que lo que hace expulsa el jugador de ahí ),


Code:
local config = {
    actionId = 42689,
    bossName = "goshnar hatred",
    bossPosition = Position(32489, 31567, 8),
    bossArea = {
        fromPos = Position(32477, 31558, 8),
        toPos = Position(32499, 31575, 8),
        entrancePos = Position(32487, 31563, 8),
        exitPosition = Position(32525, 31568, 8)
    },
    participantsAllowAnyCount = true,
    participantsPos = {
        Position(32519, 31568, 8),
        Position(32520, 31568, 8),
        Position(32521, 31568, 8),
        Position(32522, 31568, 8)
    },
    attempts = {
        level = 300,
        storage = 720005,
        seconds = 14400 -- 4h
    },
    createTeleportPos = Position(32489, 31573, 8),
    teleportToPosition = Position(32525, 31568, 8),
    teleportRemoveSeconds = 60,
    kickParticipantAfterSeconds = 60 * 30,
    leverIds = {1945, 1946}
}

local function getSpectators()
    if not config.centerPosition then
        config.diffX = math.ceil((config.bossArea.toPos.x - config.bossArea.fromPos.x) / 2)
        config.diffY = math.ceil((config.bossArea.toPos.y - config.bossArea.fromPos.y) / 2)
        config.centerPosition = config.bossArea.fromPos + Position(config.diffX, config.diffY, 0)
    end
    return Game.getSpectators(config.centerPosition, false, false, config.diffX, config.diffX, config.diffY, config.diffY)
end

local goshnarHatredAction = Action()

function goshnarHatredAction.onUse(player, item, fromPos, target, toPos, isHotkey)
    local participants = {}
    for index, pos in pairs(config.participantsPos) do
        local tile = Tile(pos)
        if not tile then error("[Warning - Tile not found]") end
        local participant = tile:getTopVisibleCreature(player)
        if participant and participant:isPlayer() then
            if index == 1 and participant ~= player then
                player:sendCancelMessage("Only the first participant can pull the lever.")
                return true
            end

            if participant:getStorageValue(config.attempts.storage) >= os.time() then
                player:sendCancelMessage(string.format("The player %s must wait 4 hours before being able to enter again.", participant:getName()))
                return true
            elseif participant:getLevel() < config.attempts.level then
                player:sendCancelMessage(string.format("The player %s is not level %d.", participant:getName(), config.attempts.level))
                return true
            end
            participants[#participants +1] = participant  
        end
    end

    local spectators = getSpectators()
    for _, spectator in pairs(spectators) do
        if spectator:isPlayer() then
            player:sendCancelMessage("At this time the room is occupied, please try again later.")
            return true
        end
    end

    for _, spectator in pairs(spectators) do spectator:remove() end
    local boss = Game.createMonster(config.bossName, config.bossPosition)
    if not boss then error(Game.getReturnMessage(RETURNVALUE_NOTENOUGHROOM)) end
    boss:registerEvent("goshnarHatredSystemDeath")
    for index, participant in pairs(participants) do
        config.participantsPos[index]:sendMagicEffect(CONST_ME_POFF)
        participant:teleportTo(config.bossArea.entrancePos, false)
        config.bossArea.entrancePos:sendMagicEffect(CONST_ME_TELEPORT)
        participant:setStorageValue(config.attempts.storage, os.time() + config.attempts.seconds)
    end

    config.kickEventId = addEvent(function ()
        for _, spectator in pairs(getSpectators()) do
            if spectator:isPlayer() then
                spectator:getPosition():sendMagicEffect(CONST_ME_POFF)
                spectator:teleportTo(config.bossArea.exitPosition, false)
                config.bossArea.exitPosition:sendMagicEffect(CONST_ME_TELEPORT)
                spectator:sendTextMessage(MESSAGE_INFO_DESCR, "It's been a long time and you haven't managed to defeat the boss.")
            else
                spectator:remove()
            end
        end
    end, config.kickParticipantAfterSeconds * 1000)

    item:transform(item:getId() == config.leverIds[1] and config.leverIds[2] or config.leverIds[1])
    return true
end

goshnarHatredAction:aid(config.actionId)
goshnarHatredAction:register()

local creatureEvent = CreatureEvent("goshnarHatredSystemDeath")

function creatureEvent.onDeath()
    stopEvent(config.kickEventId)
    local teleport = Game.createItem(1387, 1, config.createTeleportPos)
    if teleport then
        teleport:setDestination(config.teleportToPosition)
        addEvent(function ()
            local tile = Tile(config.createTeleportPos)
            if tile then
                local teleport = tile:getItemById(1387)
                if teleport then
                    teleport:remove()
                    config.teleportToPosition:sendMagicEffect(CONST_ME_POFF)
                end
            end

            for _, spectator in pairs(getSpectators()) do
                if spectator:isPlayer() then
                    spectator:getPosition():sendMagicEffect(CONST_ME_POFF)
                    spectator:teleportTo(config.teleportToPosition, false)
                    config.teleportToPosition:sendMagicEffect(CONST_ME_TELEPORT)
                end
            end
        end, config.teleportRemoveSeconds * 1000)
    end
    return true
end

creatureEvent:register()
 
Solution
Hola.

Exacto, eso fue reparado en la nueva versión Hellgrave v6.0, como tarda en salir, obviamente, la versión 5.5 no lo trae corregido.
Aquí te dejo el script por el cual funciona y deberás reemplazar el script de cada boss ( 1 solo ) por este,
Toma nota que el nombre del boss tiene que estar en minúsculas,
Si hay alguien dentro, no podrán entrar, si terminan de matar el boss y no salen de la room, nadie podrá entrar ( pero hay un cooldown , que lo que hace expulsa el jugador de ahí ),


Code:
local config = {
    actionId = 42689,
    bossName = "goshnar hatred",
    bossPosition = Position(32489, 31567, 8),
    bossArea = {
        fromPos = Position(32477, 31558, 8),
        toPos = Position(32499, 31575, 8),
        entrancePos = Position(32487, 31563, 8),
        exitPosition = Position(32525, 31568, 8)
    },
    participantsAllowAnyCount = true,
    participantsPos = {
        Position(32519, 31568, 8),
        Position(32520, 31568, 8),
        Position(32521, 31568, 8),
        Position(32522, 31568, 8)
    },
    attempts = {
        level = 300,
        storage = 720005,
        seconds = 14400 -- 4h
    },
    createTeleportPos = Position(32489, 31573, 8),
    teleportToPosition = Position(32525, 31568, 8),
    teleportRemoveSeconds = 60,
    kickParticipantAfterSeconds = 60 * 30,
    leverIds = {1945, 1946}
}

local function getSpectators()
    if not config.centerPosition then
        config.diffX = math.ceil((config.bossArea.toPos.x - config.bossArea.fromPos.x) / 2)
        config.diffY = math.ceil((config.bossArea.toPos.y - config.bossArea.fromPos.y) / 2)
        config.centerPosition = config.bossArea.fromPos + Position(config.diffX, config.diffY, 0)
    end
    return Game.getSpectators(config.centerPosition, false, false, config.diffX, config.diffX, config.diffY, config.diffY)
end

local goshnarHatredAction = Action()

function goshnarHatredAction.onUse(player, item, fromPos, target, toPos, isHotkey)
    local participants = {}
    for index, pos in pairs(config.participantsPos) do
        local tile = Tile(pos)
        if not tile then error("[Warning - Tile not found]") end
        local participant = tile:getTopVisibleCreature(player)
        if participant and participant:isPlayer() then
            if index == 1 and participant ~= player then
                player:sendCancelMessage("Only the first participant can pull the lever.")
                return true
            end

            if participant:getStorageValue(config.attempts.storage) >= os.time() then
                player:sendCancelMessage(string.format("The player %s must wait 4 hours before being able to enter again.", participant:getName()))
                return true
            elseif participant:getLevel() < config.attempts.level then
                player:sendCancelMessage(string.format("The player %s is not level %d.", participant:getName(), config.attempts.level))
                return true
            end
            participants[#participants +1] = participant 
        end
    end

    local spectators = getSpectators()
    for _, spectator in pairs(spectators) do
        if spectator:isPlayer() then
            player:sendCancelMessage("At this time the room is occupied, please try again later.")
            return true
        end
    end

    for _, spectator in pairs(spectators) do spectator:remove() end
    local boss = Game.createMonster(config.bossName, config.bossPosition)
    if not boss then error(Game.getReturnMessage(RETURNVALUE_NOTENOUGHROOM)) end
    boss:registerEvent("goshnarHatredSystemDeath")
    for index, participant in pairs(participants) do
        config.participantsPos[index]:sendMagicEffect(CONST_ME_POFF)
        participant:teleportTo(config.bossArea.entrancePos, false)
        config.bossArea.entrancePos:sendMagicEffect(CONST_ME_TELEPORT)
        participant:setStorageValue(config.attempts.storage, os.time() + config.attempts.seconds)
    end

    config.kickEventId = addEvent(function ()
        for _, spectator in pairs(getSpectators()) do
            if spectator:isPlayer() then
                spectator:getPosition():sendMagicEffect(CONST_ME_POFF)
                spectator:teleportTo(config.bossArea.exitPosition, false)
                config.bossArea.exitPosition:sendMagicEffect(CONST_ME_TELEPORT)
                spectator:sendTextMessage(MESSAGE_INFO_DESCR, "It's been a long time and you haven't managed to defeat the boss.")
            else
                spectator:remove()
            end
        end
    end, config.kickParticipantAfterSeconds * 1000)

    item:transform(item:getId() == config.leverIds[1] and config.leverIds[2] or config.leverIds[1])
    return true
end

goshnarHatredAction:aid(config.actionId)
goshnarHatredAction:register()

local creatureEvent = CreatureEvent("goshnarHatredSystemDeath")

function creatureEvent.onDeath()
    stopEvent(config.kickEventId)
    local teleport = Game.createItem(1387, 1, config.createTeleportPos)
    if teleport then
        teleport:setDestination(config.teleportToPosition)
        addEvent(function ()
            local tile = Tile(config.createTeleportPos)
            if tile then
                local teleport = tile:getItemById(1387)
                if teleport then
                    teleport:remove()
                    config.teleportToPosition:sendMagicEffect(CONST_ME_POFF)
                end
            end

            for _, spectator in pairs(getSpectators()) do
                if spectator:isPlayer() then
                    spectator:getPosition():sendMagicEffect(CONST_ME_POFF)
                    spectator:teleportTo(config.teleportToPosition, false)
                    config.teleportToPosition:sendMagicEffect(CONST_ME_TELEPORT)
                end
            end
        end, config.teleportRemoveSeconds * 1000)
    end
    return true
end

creatureEvent:register()
wow eres increible, lo probare hoy estuve todo el dia en el trabajo tratando de hacer correr el ultimo script que adjunte me parece una buena idea crear items loteables que puedan invocar bosses en X lugares, pero lo arruine y no se que fue lo que toque jaja
 
wow eres increible, lo probare hoy estuve todo el dia en el trabajo tratando de hacer correr el ultimo script que adjunte me parece una buena idea crear items loteables que puedan invocar bosses en X lugares, pero lo arruine y no se que fue lo que toque jaja
Únicamente la parte revscript, escribiste keys en un lugar y bosskeys en otro y deben de tener todos el mismo nombre.
 

Tibia Server Lists

#1 FEATURED US Ultron OT 1,445 / 5,000 EXPStages PROTO8.6 ENGINEUltron OT RANK PTS6.6 -9% VOTES0 #2 FEATURED US Nefera 0 / 0 EXPx1 PROTO15.20 ENGINECrystal Server RANK PTS5.9 +24% VOTES0 #3 FEATURED CL ZHYRAVEX 13 / 500 EXPx5 PROTO10.98 ENGINETFS 1.4.2 RANK PTS4.8 +100% VOTES0 #4 FEATURED ES Deixis 0 / 0 EXPStages PROTO1098 ENGINETFS RANK PTS4.0 -60% VOTES1 #5 DE DBU Online 64 / 400 EXP11 PROTO8.6 ENGINETFS 1.0 RANK PTS6.1 +1,000% VOTES0 #6 BR Exordion Legacy 60 / 2,000 EXPx2 PROTO7.72 ENGINEExordion RANK PTS5.7 +1% VOTES0 #7 MX Marlboro War 41 / 300 EXP999 PROTO8.6 ENGINETFS 0.3.7 RANK PTS5.5 -27% VOTES0 #8 BR Tibinha YurOts 31 / 150 EXPStages PROTO7.4 ENGINEYurOTS 1.5 RANK PTS5.5 +5% VOTES0 #9 US Wiki Ots 55 / 1,000 EXPx9999 PROTOcustom client ENGINETFS 1.4.2 RANK PTS5.1 +100% VOTES0 #10 ES JustRL FreeTC 1530 15 / 250 EXPx2 PROTO15.30 ENGINECrystal Server RANK PTS5.0 +15% VOTES0 #11 PL Lubelski 2 / 1,000 EXP200 PROTO7.6 ENGINELubelskiOTS 2.56.0 RANK PTS4.9 -16% VOTES0 #12 PL ReWar 0 / 2,000 EXPcustom PROTO8.6 ENGINEOther RANK PTS4.6 +100% VOTES0 #13 US Halera 0 / 0 EXPStages PROTO10.98 ENGINETFS 1.4.2 RANK PTS4.4 -82% VOTES0 #14 PL Velesta 0 / 1,000 EXP20 PROTO8.0 ENGINETFS 1.4.2 RANK PTS4.4 -100% VOTES0 #15 BR Turion Server 0 / 2,000 EXPx1 PROTO7.4 ENGINETurion 7.7 Project RANK PTS4.4 +155% VOTES0 #16 US BerethaOnline 0 / 2,000 EXPStages PROTO15.0 ENGINETFS RANK PTS4.3 -71% VOTES0 #17 ES Farlia Global 2026 0 / 333 EXPx5 PROTO15.25 ENGINEFarliaServ 1.525 RANK PTS4.0 -100% VOTES0 #18 SE MortalisOT Custom 0 / 500 EXP100x -1.2x PROTO10.98 ENGINEMortalisOT V1 RANK PTS4.0 -100% VOTES0 #19 RU Oldavia | 8.60 0 / 0 EXPx9999 PROTO8.6 ENGINETFS 1.3 RANK PTS3.9 +100% VOTES0 #20 BR Rethoria OpenToday 7.4 Custom 7 / 0 EXPx10 PROTO10.98 ENGINEOther RANK PTS3.8 +100% VOTES0 #21 US Rommania 0 / 3,000 EXPstages, x10 PROTO7.4 ENGINETFS 0.4 RANK PTS3.7 -88% VOTES0 #22 MX Maeli 0 / 150 EXPx10 PROTO10.98 ENGINETFS 1.4.2 RANK PTS3.5 -36% VOTES0 #23 ES DarkDragon EXPx10 PROTO8.6 ENGINECanary RANK PTS0.0 0% VOTES0
Top