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

Solved Zombile event

i did channel call event but its normal channel like rl-chat world chat and brodcast don't appear in it :S and event work good
 
Last edited:
chnage
Code:
doBroadcastMessage("A Big foot has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " Big foot in the Big foot event!", MESSAGE_STATUS_CONSOLE_RED)

for

Code:
doPlayerSendChannelMessage(cid, "", "A Big foot has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " Big foot in the Big foot event!", TALKTYPE_CHANNEL_O, CHANNEL_Event)
???
 
for _, pid in ipairs(getPlayersOnline()) do
if isInRange(getPlayerPosition(cid), config.fromPosition, config.toPosition) then
doPlayerSendChannelMessage(pid, MESSAGE_STATUS_CONSOLE_RED, "A Big foot has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " Big foot in the Big foot event!", TALKTYPE_CHANNEL_12, CHANNEL_Event")
end
end

like this ?
 
TALKTYPE_CHANNEL_12 doesn't exist, you can find them in data/lib/000-constant.lua, the ones that start with TALKTYPE_CHANNEL are the ones you can use for the channl message.
Change CHANNEL_Event to the id of the channel and remove the " after it.
 
for _, pid in ipairs(getPlayersOnline()) do
if isInRange(getPlayerPosition(cid), config.fromPosition, config.toPosition) then
doPlayerSendChannelMessage(pid, MESSAGE_STATUS_CONSOLE_RED, "A Big foot has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " Big foot in the Big foot event!", TALKTYPE_CHANNEL_Y,12)
end
end
 
i got idea about open event channel when u enter event
u can make when u spetin action 2000 open Channel-event?
 
k i want player can't write in event channel i did normal channel
<channel id="12" name="Event" logged="yes"/>

this my idea

<channel id="12" name="Event" level="999999" muted="999999" conditionId="2" conditionMessage="Welcome to Event channel.">

Bug :S
qjtn8dV0E.png
 
Last edited by a moderator:
You can use active so people can't talk in it (rest is not needed).
Code:
active="no"

Replace function isInRange in data/lib/032-position.lua
Code:
function isInRange(position, fromPosition, toPosition)
     return (position.x >= fromPosition.x and position.y >= fromPosition.y and position.z >= fromPosition.z and position.x <= toPosition.x and position.y <= toPosition.y and position.z <= toPosition.z)
end
 
Change cid to pid here
Code:
for _, pid in ipairs(getPlayersOnline()) do
     if isInRange(getPlayerPosition(pid), config.fromPosition, config.toPosition) then
         doPlayerSendChannelMessage(pid, "", "A Big foot has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " Big foot in the Big foot event!", TALKTYPE_CHANNEL_Y,12)
     end
end
 
:( k

i edite it to say in channel
Code:
  doPlayerSendChannelMessage(pid, "", "(getPlayerName(pid) .. have been eated by Big foot!", TALKTYPE_CHANNEL_Y,12)
but when player kick it say
05:37 (getPlayerName(pid) .. have been eated by Big foot!

and i edite it
Code:
doBroadcastMessage("Big foot event starting in " .. config.timeToStartEvent .. " minutes " .. getGlobalStorageValue(config.playerCount) .. " players have joined The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)
    for x = 1, config.timeToStartEvent - 1 do
     addEvent(doBroadcastMessage, x * 60 * 1000, "Big foot event starting in " .. (config.timeToStartEvent - x) .. " minutes " .. getGlobalStorageValue(config.playerCount) .. " players have joined The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)
end

to say how many player joined in event but its say
06:17 Big foot event starting in 2 minutes 0 players have joined The teleport will be closed when the event start!
06:18 Big foot event starting in 1 minutes 0 players have joined The teleport will be closed when the event start!
and was 3 player joined how to fix this
 
Last edited by a moderator:
Code:
doPlayerSendChannelMessage(pid, "", getPlayerName(cid) .. " have been eated by Zombies!", TALKTYPE_CHANNEL_Y,12)
About the player count, did you edited the global storage somewhere? Can you posts the scripts how they look like now?
 
Code:
local config = {
    playerCount = 2001, -- Global storage for counting the players left/entered in the event
    zombieCount = 2002, -- Global storage for counting the zombies in the event
    teleportActionId = 2000, -- Action id of the teleport needed for the movement script
    teleportPosition = {x = 1003, y = 996, z = 7, stackpos = 1}, -- Where the teleport will be created
    teleportsPosition = {x = 997, y = 996, z = 7, stackpos = 1}, -- Where the teleport will be created
    teleportToPosition = {x = 1050, y = 1919, z = 7}, -- Where the teleport will take you
    teleportId = 1387, -- Id of the teleport
    timeToStartEvent = 3, -- Minutes, after these minutes the teleport will be removed and the event will be declared started
    timeBetweenSpawns = 20, -- Seconds between each spawn of zombie
    zombieName = "Big foot", -- Name of the zombie that should be summoned
    playersNeededToStartEvent = 2, -- Players needed before the zombies can spawn.
   
    -- Should be the same as in the creaturescript!
    -- The zombies will spawn randomly inside this area
     fromPosition = {x = 978, y = 1870, z = 7}, -- top left cornor of the playground
    toPosition = {x = 1077, y = 1954, z = 7}, -- bottom right cornor of the playground
    }

function onThink(interval, lastExecution, thinkInterval)
    local tp = doCreateTeleport(config.teleportId, config.teleportToPosition, config.teleportPosition)
    doItemSetAttribute(tp, "aid", config.teleportActionId)
    local tp = doCreateTeleport(config.teleportId, config.teleportToPosition, config.teleportsPosition)
doItemSetAttribute(tp, "aid", config.teleportActionId)
    doBroadcastMessage("Big foot event starting in " .. config.timeToStartEvent .. " minutes " .. getGlobalStorageValue(config.playerCount) .. " players have joined The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)
    for x = 1, config.timeToStartEvent - 1 do
     addEvent(doBroadcastMessage, x * 60 * 1000, "Big foot event starting in " .. (config.timeToStartEvent - x) .. " minutes " .. getGlobalStorageValue(config.playerCount) .. " players have joined The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)
end
    setGlobalStorageValue(config.playerCount, 0)
    setGlobalStorageValue(config.zombieCount, 0)
    addEvent(startEvent, config.timeToStartEvent * 1000 * 60)
    print(getGlobalStorageValue(2001))
end

function startEvent()
    local get = getTileItemById(config.teleportPosition, config.teleportId).uid
if get > 0 then
     doRemoveItem(get, 1)
end
local get = getTileItemById(config.teleportsPosition, config.teleportId).uid
if get > 0 then
     doRemoveItem(get, 1)
end
   
    local fromp, top = config.fromPosition, config.toPosition

    if getGlobalStorageValue(config.playerCount) >= config.playersNeededToStartEvent then
        addEvent(spawnZombie, config.timeBetweenSpawns * 1000)
        doBroadcastMessage("Good luck in the Big foot event people! The teleport has closed!", MESSAGE_STATUS_WARNING)
       
        for x = fromp.x, top.x do
            for y = fromp.y, top.y do
                for z = fromp.z, top.z do
                    areapos = {x = x, y = y, z = z, stackpos = 253}
                   getPlayers = getTopCreature(areapos)
                   print(getPlayers.uid)
                    if isPlayer(getPlayers.uid) then
                        doPlayerSendTextMessage(getPlayers.uid, MESSAGE_EVENT_ADVANCE, "The first Big foot will spawn in " .. config.timeBetweenSpawns .. " seconds! Good luck!")
                    end
                end
            end
        end
    else
        doBroadcastMessage("The Big foot event could not start because of to few players participating.\n At least " .. config.playersNeededToStartEvent .. " players is needed!", MESSAGE_STATUS_WARNING)
        for x = fromp.x, top.x do
            for y = fromp.y, top.y do
                for z = fromp.z, top.z do
                    areapos = {x = x, y = y, z = z, stackpos = 253}
                    getPlayers = getTopCreature(areapos)
                    print(getPlayers.uid)
                    if isPlayer(getPlayers.uid) then
                        doTeleportThing(getPlayers.uid, getTownTemplePosition(getPlayerTown(getPlayers.uid)), false)
                        doSendMagicEffect(getPlayerPosition(getPlayers.uid), CONST_ME_TELEPORT)
                    end
                end
            end
        end
    end
end

function spawnZombie()
    if getGlobalStorageValue(config.playerCount) >= 2 then
       pos = {x = math.random(config.fromPosition.x, config.toPosition.x), y = math.random(config.fromPosition.y, config.toPosition.y), z = math.random(config.fromPosition.z, config.toPosition.z)}
        doSummonCreature(config.zombieName, pos)
        doSendMagicEffect(pos, CONST_ME_MORTAREA)
        setGlobalStorageValue(config.zombieCount, getGlobalStorageValue(config.zombieCount)+1)
        for _, pid in ipairs(getPlayersOnline()) do
     if isInRange(getPlayerPosition(pid), config.fromPosition, config.toPosition) then
         doPlayerSendChannelMessage(pid, "", "A Big foot has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " Big foot in the Big foot event!", TALKTYPE_CHANNEL_RN,12)
     end
end
        addEvent(spawnZombie, config.timeBetweenSpawns * 1000)
    end
end
 
Back
Top