• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Lua Last man standing event - i get this error

MohamedRefaat

Marketing and Coding
Premium User
Joined
Jan 18, 2014
Messages
991
Solutions
3
Reaction score
232
Location
Egypt
Hi,

i get this error


Code:
[11:44:46.894] [Error - GlobalEvent Interface]
[11:44:46.894] data/globalevents/scripts/arena.lua:onThink
[11:44:46.894] Description:
[11:44:46.894] (LuaInterface::luaGetTileInfo) Tile not found

[11:44:46.894] [Error - GlobalEvent Interface]
[11:44:46.894] data/globalevents/scripts/arena.lua:onThink
[11:44:46.894] Description:
[11:44:46.894] data/globalevents/scripts/arena.lua:28: attempt to index a boolean value
[11:44:46.909] stack traceback:
[11:44:46.909]  data/globalevents/scripts/arena.lua:28: in function <data/globalevents/scripts/arena.lua:21>
[11:44:46.909] [Error - GlobalEvents::think] Couldn't execute event: arena

this is the script


Code:
local t = {
 tmp = {
 {x = 1491, y = 2575, z = 7}, -- North west corner of Area where players must stand in order to join the event
 {x = 1505, y = 2585, z = 7} -- South east corner of Area
 },
 arena = {
 {x = 1531, y = 2617, z = 6}, -- North west Corner of Arena
 {x = 1542, y = 2629, z = 7}, -- South East corner of Arena
 {x = 1553, y = 2639, z = 8} -- Center of Arena
 },

 from = {x = 1534, y = 2620, z = 7}, -- Top left cornor of the playground (random players teleportation)
 to = {x = 1552, y = 2638, z = 7}, -- Bottom right cornor of the playground (random players teleportation)

 minPlayers = 2, -- min players required to start the battle
 noPlayers = 1, -- Leave it as it is
 prize = {6527} -- Reward that player recives
 }
 local kick = 0

 function onThink()
 local arenaPlayers = {}

 for x = t.arena[1].x, t.arena[2].x do
 for y = t.arena[1].y, t.arena[2].y do
 for z = t.arena[1].z, t.arena[2].z do
 local pos = {x = x, y = y, z = z}
 local n = getTileInfo(pos).creatures
 if n ~= 0 then
 pos.stackpos = 1
 local c = getThingfromPos(pos)
 while c.uid ~= 0 do
 if c.itemid == 1 and c.type == 1 then
 table.insert(arenaPlayers, c.uid)
 if #arenaPlayers == n then
 break
 end
 end
 pos.stackpos = pos.stackpos + 1
 c = getThingfromPos(pos)
 end
 end
 end
 end
 end

 if #arenaPlayers == 1 then
 local p = getPlayerMasterPos(arenaPlayers[1])
 doTeleportThing(arenaPlayers[1], p)
 doSendMagicEffect(p, CONST_ME_TELEPORT)
 doPlayerSendTextMessage(arenaPlayers[1], MESSAGE_STATUS_CONSOLE_BLUE, "You have won the event and received your reward.")
 doBroadcastMessage(getCreatureName(arenaPlayers[1]) .." won a Last Man Standing Event.")
 doPlayerAddItem(arenaPlayers[1], t.prize[math.random(#t.prize)], 10)
 kick = 0
 elseif #arenaPlayers > 1 then
 if kick == 0 then
 kick = os.time()
 else
 if os.time() - kick >= 840 then
 kick = 0
 for i = 1, #arenaPlayers do
 doTeleportThing(arenaPlayers[i], {x=2001, y=2030, z=7})
 doPlayerSendTextMessage(arenaPlayers[i], MESSAGE_STATUS_WARNING, "Too even, try harder next time.")
 end
 end
 end
 elseif #arenaPlayers == 0 then
 kick = 0

 local players = {}
 for x = t.tmp[1].x, t.tmp[2].x do
 for y = t.tmp[1].y, t.tmp[2].y do
 for z = t.tmp[1].z, t.tmp[2].z do
 local c = getTopCreature({x = x, y = y, z = z})
 if c.type == 1 then
 table.insert(players, c.uid)
 end
 end
 end
 end

 if #players >= t.minPlayers then
 for i = 1, #players do
 local p = {x = math.random(t.from.x, t.to.x), y = math.random(t.from.y, t.to.y), z = math.random(t.from.z, t.to.z)}
 doTeleportThing(players[i], p)
 doSendMagicEffect(p, CONST_ME_TELEPORT)
 doPlayerSendTextMessage(players[i], MESSAGE_STATUS_WARNING, "The battle begins. Survive for glory!")
 end
else
 for i = 1, #players do
 doTeleportThing(players[i], {x=2001, y=2030, z=7})
 doPlayerSendTextMessage(players[i], MESSAGE_STATUS_WARNING, "The event didn't start because there isn't enough players in area!")
 end
 end
 end
 return true
 end

any help?
 
Back
Top