• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua Teleport Storage

adrenysny

Member
Joined
Feb 17, 2021
Messages
140
Reaction score
14
hello help me with a script of a teleport or tile that asks for several storages to pass

  • Storage.GraveDanger.CobraBastion.FacelesKill
  • Storage.GraveDanger.CobraBastion.DukeKill
and that of a message that says "You can not pass"
 
Solution
Lua:
local function hasAllStorages(player)
    local storageKeys = {
        Storage.GraveDanger.CobraBastion.FacelesKill,
        Storage.GraveDanger.CobraBastion.DukeKill   
    }
    for _, storageKey in pairs(storageKeys) do
        if player:getStorageValue(storageKey) <= 0 then
            return false
        end
    end
    return true
end

local config = {
    ACTION_ID = 12345
}

local mevent = MoveEvent('bossTeleport')
mevent:type('stepin')
function mevent.onStepIn(player, item, position, fromPosition)
    if not hasAllStorages(player) then
        player:sendTextMessage(MESSAGE_STATUS_SMALL, 'You may not pass.')
        player:teleportTo(fromPosition)
        return true
    end
    -- passed, do something.
    return true
end...
Lua:
local function hasAllStorages(player)
    local storageKeys = {
        Storage.GraveDanger.CobraBastion.FacelesKill,
        Storage.GraveDanger.CobraBastion.DukeKill   
    }
    for _, storageKey in pairs(storageKeys) do
        if player:getStorageValue(storageKey) <= 0 then
            return false
        end
    end
    return true
end

local config = {
    ACTION_ID = 12345
}

local mevent = MoveEvent('bossTeleport')
mevent:type('stepin')
function mevent.onStepIn(player, item, position, fromPosition)
    if not hasAllStorages(player) then
        player:sendTextMessage(MESSAGE_STATUS_SMALL, 'You may not pass.')
        player:teleportTo(fromPosition)
        return true
    end
    -- passed, do something.
    return true
end
mevent:aid(config.ACTION_ID)
mevent:register()
 
Solution
Lua:
local function hasAllStorages(player)
    local storageKeys = {
        Storage.GraveDanger.CobraBastion.FacelesKill,
        Storage.GraveDanger.CobraBastion.DukeKill 
    }
    for _, storageKey in pairs(storageKeys) do
        if player:getStorageValue(storageKey) <= 0 then
            return false
        end
    end
    return true
end

local config = {
    ACTION_ID = 12345
}

local mevent = MoveEvent('bossTeleport')
mevent:type('stepin')
function mevent.onStepIn(player, item, position, fromPosition)
    if not hasAllStorages(player) then
        player:sendTextMessage(MESSAGE_STATUS_SMALL, 'You may not pass.')
        player:teleportTo(fromPosition)
        return true
    end
    -- passed, do something.
    return true
end
mevent:aid(config.ACTION_ID)
mevent:register()
sorry if it worked
 
How do I put only one storage?
Lua:
local config = {
    actionId = 12345,
    storageKey = 45001
}

local moveEvent = MoveEvent("boss_teleport")
moveEvent:type("stepin")

function moveEvent.onStepIn(player, item, position, fromPosition)
    if player:getStorageValue(config.storageKey) < 1 then
        player:sendTextMessage(MESSAGE_STATUS_SMALL, "You may not pass.")
        player:teleportTo(fromPosition)
        return true
    end
    -- passed, do something.
    return true
end

moveEvent:aid(config.actionId)
moveEvent:register()
 
Back
Top