• 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!

snake event start hours

vexler222

Active Member
Joined
Apr 22, 2012
Messages
714
Solutions
15
Reaction score
47
Hi, can someone add to this event, more options to start than one? I want start this event 3-4 times in one day

 
Solution
X
Hi, can someone add to this event, more options to start than one? I want start this event 3-4 times in one day

replace
LUA:
misc = {
            exitPosition = Position(3191, 1809, 7),
            minPlayers = 2,
            maxPlayers = 10,
            timeEventStart = "16:24:10"
        },
with
LUA:
misc = {
            exitPosition = Position(3191, 1809, 7),
            minPlayers = 2,
            maxPlayers = 10,
            timeEventStart = {"16:24:10", "16:24:10", "16:24:10", "16:24:10"} -- make sure these are like 3 hours apart.
        },

replace
LUA:
local snakeEvent = GlobalEvent("SnakeEventEventGlobal")

function...
Hey, i tried add it and i added it, but i have little problem in this function, cuz event started at X hours, but when i eat a food, tail didn't make :/
All the others function in the event, they work, only after eat food i dont got a tail, if event start with time from original config SnakeEvent.misc.time, then tail work normal.
I add this function:

Code:
local snakeStart = GlobalEvent("SnakeEventStart")
function snakeStart.onThink(interval)
    if SnakeEvent.czas[os.date("%A")] then
        print("start 1 test")
        local hrs = tostring(os.date("%X")):sub(1, 5)
        if isInArray(SnakeEvent.czas[os.date("%A")], hrs) then
            print("start 2 test")
            SnakeEvent.clear()
            SnakeEvent.state = "waiting"
            SnakeEvent.createTeleport()
        end
    end
    return true
end

snakeStart:interval(60000)
snakeStart:register()
 
Hi, can someone add to this event, more options to start than one? I want start this event 3-4 times in one day

replace
LUA:
misc = {
            exitPosition = Position(3191, 1809, 7),
            minPlayers = 2,
            maxPlayers = 10,
            timeEventStart = "16:24:10"
        },
with
LUA:
misc = {
            exitPosition = Position(3191, 1809, 7),
            minPlayers = 2,
            maxPlayers = 10,
            timeEventStart = {"16:24:10", "16:24:10", "16:24:10", "16:24:10"} -- make sure these are like 3 hours apart.
        },

replace
LUA:
local snakeEvent = GlobalEvent("SnakeEventEventGlobal")

function snakeEvent.onTime(interval)
    SnakeEvent.clear()
    SnakeEvent.state = "waiting"
    SnakeEvent.createTeleport()
    return true
end

snakeEvent:time(SnakeEvent.misc.timeEventStart)
snakeEvent:register()
with
LUA:
for i = 1, #SnakeEvent.misc.timeEventStart do
    local snakeEvent = GlobalEvent("SnakeEventEventGlobal_ " .. i .. "") -- changing each eventName to be unique
    
    function snakeEvent.onTime(interval)
        SnakeEvent.clear()
        SnakeEvent.state = "waiting"
        SnakeEvent.createTeleport()
        return true
    end
    
    snakeEvent:time(SnakeEvent.misc.timeEventStart[i])
    snakeEvent:register()
end
 
Solution
replace
LUA:
misc = {
            exitPosition = Position(3191, 1809, 7),
            minPlayers = 2,
            maxPlayers = 10,
            timeEventStart = "16:24:10"
        },
with
LUA:
misc = {
            exitPosition = Position(3191, 1809, 7),
            minPlayers = 2,
            maxPlayers = 10,
            timeEventStart = {"16:24:10", "16:24:10", "16:24:10", "16:24:10"} -- make sure these are like 3 hours apart.
        },

replace
LUA:
local snakeEvent = GlobalEvent("SnakeEventEventGlobal")

function snakeEvent.onTime(interval)
    SnakeEvent.clear()
    SnakeEvent.state = "waiting"
    SnakeEvent.createTeleport()
    return true
end

snakeEvent:time(SnakeEvent.misc.timeEventStart)
snakeEvent:register()
with
LUA:
for i = 1, #SnakeEvent.misc.timeEventStart do
    local snakeEvent = GlobalEvent("SnakeEventEventGlobal_ " .. i .. "") -- changing each eventName to be unique
   
    function snakeEvent.onTime(interval)
        SnakeEvent.clear()
        SnakeEvent.state = "waiting"
        SnakeEvent.createTeleport()
        return true
    end
   
    snakeEvent:time(SnakeEvent.misc.timeEventStart[i])
    snakeEvent:register()
end

Work like my script, but same situation with tail, after eat a food, i don't get tail :/
 
Work like my script, but same situation with tail, after eat a food, i don't get tail :/
Not sure why that's not working.

Added some prints

change
LUA:
                if size < food then
                    local createPos = SnakeEvent.cache.tiles[playerGuid][tiles] or position
                    local tail = Game.createMonster("SnakeEvent Tail Ex", createPos)
                    if tail then
                        tail:setMaxHealth(player:getGuid())
                        tail:setOutfit(player:getOutfit())
                        tail:changeSpeed(player:getSpeed())
                        table.insert(SnakeEvent.cache.tails[playerGuid], tail)
                    end
                end
to
LUA:
                if size < food then
                    local createPos = SnakeEvent.cache.tiles[playerGuid][tiles] or position
                    local tail = Game.createMonster("SnakeEvent Tail Ex", createPos)
                    if tail then
                        tail:setMaxHealth(player:getGuid())
                        tail:setOutfit(player:getOutfit())
                        tail:changeSpeed(player:getSpeed())
                        table.insert(SnakeEvent.cache.tails[playerGuid], tail)
                    else
                        print("Warning: Tail unable to spawn. Reason unknown, but it gives us something to work with..")
                    end
                end


--
Ninja Edit


Are you in a protection zone?

That would make the tails fail to spawn I think, since monsters generally can't be created there?

Idk, just a guess.
 
Not sure why that's not working.

Added some prints

change
LUA:
                if size < food then
                    local createPos = SnakeEvent.cache.tiles[playerGuid][tiles] or position
                    local tail = Game.createMonster("SnakeEvent Tail Ex", createPos)
                    if tail then
                        tail:setMaxHealth(player:getGuid())
                        tail:setOutfit(player:getOutfit())
                        tail:changeSpeed(player:getSpeed())
                        table.insert(SnakeEvent.cache.tails[playerGuid], tail)
                    end
                end
to
LUA:
                if size < food then
                    local createPos = SnakeEvent.cache.tiles[playerGuid][tiles] or position
                    local tail = Game.createMonster("SnakeEvent Tail Ex", createPos)
                    if tail then
                        tail:setMaxHealth(player:getGuid())
                        tail:setOutfit(player:getOutfit())
                        tail:changeSpeed(player:getSpeed())
                        table.insert(SnakeEvent.cache.tails[playerGuid], tail)
                    else
                        print("Warning: Tail unable to spawn. Reason unknown, but it gives us something to work with..")
                    end
                end


--
Ninja Edit


Are you in a protection zone?

That would make the tails fail to spawn I think, since monsters generally can't be created there?

Idk, just a guess.
Oh shit, right! I forgot it, tail is a monster and i add PZ zone in event area, my fault :D
Btw, do you know maybe how to block spells in X area? in tfs 1.5
 
Back
Top