[21:14:10.854] [Error - GlobalEvent Interface]
[21:14:10.854] domodlib('config')
[21:14:10.854] function onThink(interval, lastExecution, thinkInterval)
[21:14:10.854] if t.main.event_config.start_automatically then
[21:14:10.870] doBroadcastMessage(t.main.messages.event_started, MESSAGE_STATUS_WARNING)
[21:14:10.870] if t.main.event_config.use_waiting_room then
[21:14:10.870] addEvent(moveToEvent, t.main.event_config.waiting_time*1000*60)
[21:14:10.885] doCreateTeleport(1387,t.main.positions.waiting_room_area.top_left, t.main.positions.tp_to_paintball)
[21:14:10.901] else
[21:14:10.901] if t.main.tfs_version == "0.3" then
[21:14:10.901] doItemSetAttribute(doCreateItem(1387, t.main.positions.tp_to_paintball), "aid", 2880)
[21:14:10.916] else
[21:14:10.916] doSetItemActionId(doCreateItem(1387, t.main.positions.tp_to_paintball),2880)
[21:14:10.932] end
[21:14:10.932] if(t.main.event_config.event_duration > 0) then
[21:14:10.948] addEvent(endPaintball, t.main.event_config.event_duration*1000*60)
[21:14:10.979] end
[21:14:10.979] end
[21:14:11.026] end
[21:14:11.073] return true
[21:14:11.073] end
[21:14:11.104]
[21:14:11.120] function endPaintball()
[21:14:11.166] local score = {}
[21:14:11.166] if not t.main.event_config.use_waiting_room then
[21:14:11.198] doRemoveItem(getTileItemById(t.main.positions.tp_to_paintball,1387).uid)
[21:14:11.229] end
[21:14:11.245] for _, pid in ipairs(getPlayersOnline()) do
[21:14:11.276] if getPlayerStorageValue(pid, t.main.storages.is_in_event) > 0 then
[21:14:11.307] table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, t.main.storages.score)})
[21:14:11.354] doPlayerSetStorageValue(pid, t.main.storages.is_in_event, 0)
[21:14:11.370] doPlayerSetStorageValue(pid, t.main.storages.score, 0)
[21:14:11.412] doPlayerSetStorageValue(pid, t.onShoot.storages.ammo, 0)
[21:14:11.447] doTeleportThing(pid, t.main.positions.event_ending_pos)
[21:14:11.487] end
[21:14:11.529] end
[21:14:11.533] table.sort(score, function(a, b) return a[2] > b[2] end)
[21:14:11.571] if table.getn(score) > 0 then
[21:14:11.605] if t.main.event_config.winner_gets_item then
[21:14:11.666] for _, pid in ipairs(getPlayersOnline()) do
[21:14:11.682] if getCreatureName(pid) == score[1][1] then
[21:14:11.698] doPlayerAddItem(pid, t.main.event_config.prize_item_id)
[21:14:11.745] break
[21:14:11.791] end
[21:14:11.791] end
[21:14:11.823] end
[21:14:11.838] doBroadcastMessage("Paintball event has ended, "..score[1][1].." won paintball event with "..score[1][2].." points", MESSAGE_STATUS_WARNING)
[21:14:11.885] end
[21:14:11.932] end
[21:14:11.932] local t_l = t.main.positions.paintball_spawn_area.top_left
[21:14:11.963] local b_r = t.main.positions.paintball_spawn_area.bottom_right
[21:14:11.979] function moveToEvent()
[21:14:12.010] for _, pid in ipairs(getPlayersOnline()) do
[21:14:12.135] if isInRange(getCreaturePosition(pid), t.main.positions.waiting_room_area.top_left, t.main.positions.waiting_room_area.bottom_right) then
[21:14:12.182] doTeleportThing(pid, {x=math.random(t_l.x,b_r.x), y=math.random(t_l.y, b_r.y), z=math.random(t_l.z, b_r.z)})
[21:14:12.229] doPlayerSetStorageValue(pid, t.main.storages.is_in_event,1)
[21:14:12.229] doPlayerSetStorageValue(pid, t.onShoot.storages.ammo, t.main.event_config.min_bullets_on_spawn)
[21:14:12.276] doPlayerSetStorageValue(pid, t.main.storages.score, 0)
[21:14:12.276] doPlayerSendTextMessage(pid,27,"Welcome to paintball, here are the commands:\n!shoot bullet --This will shot a bullet.\n!shoot ammo --This will give you "..t.main.event_config.ammo_per_point.." bullets and take 1 point from your current score (you need at least 1 point to use this command).\n!shoot info --This will show you your current score and ammo, it'll also show the current high score of the event.\nIt is strongly recommended that you bind these commands to your hotkeys.")
[21:14:12.385] end
[21:14:12.432] end
[21:14:12.432] doRemoveItem(getTileItemById(t.main.positions.tp_to_paintball,1387).uid)
[21:14:12.510] addEvent(endPaintball, t.main.event_config.event_duration*1000*60)
[21:14:12.526] end
[21:14:12.541] :onThink
[21:14:12.573] Description:
[21:14:12.573] [string "LuaInterface::loadBuffer"]:3: attempt to index field 'main' (a nil value)
[21:14:12.620] stack traceback:
[21:14:12.620] [string "LuaInterface::loadBuffer"]:3: in function <[string "LuaInterface::loadBuffer"]:2>
[21:14:12.666] [Error - GlobalEvents::think] Couldn't execute event: StartPaintBall
[21:14:14.482] [Error - GlobalEvent Interface]
[21:14:14.502] domodlib('config')
[21:14:14.506] function onThink(interval, lastExecution, thinkInterval)
[21:14:14.542] if t.main.event_config.start_automatically then
[21:14:14.542] doBroadcastMessage(t.main.messages.event_started, MESSAGE_STATUS_WARNING)
[21:14:14.588] if t.main.event_config.use_waiting_room then
[21:14:14.588] addEvent(moveToEvent, t.main.event_config.waiting_time*1000*60)
[21:14:14.620] doCreateTeleport(1387,t.main.positions.waiting_room_area.top_left, t.main.positions.tp_to_paintball)
[21:14:14.667] else
[21:14:14.667] if t.main.tfs_version == "0.3" then
[21:14:14.713] doItemSetAttribute(doCreateItem(1387, t.main.positions.tp_to_paintball), "aid", 2880)
[21:14:14.760] else
[21:14:14.760] doSetItemActionId(doCreateItem(1387, t.main.positions.tp_to_paintball),2880)
[21:14:14.807] end
[21:14:14.807] if(t.main.event_config.event_duration > 0) then
[21:14:14.854] addEvent(endPaintball, t.main.event_config.event_duration*1000*60)
[21:14:14.901] end
[21:14:14.901] end
[21:14:14.948] end
[21:14:14.948] return true
[21:14:14.979] end
[21:14:14.995]
[21:14:15.042] function endPaintball()
[21:14:15.042] local score = {}
[21:14:15.073] if not t.main.event_config.use_waiting_room then
[21:14:15.088] doRemoveItem(getTileItemById(t.main.positions.tp_to_paintball,1387).uid)
[21:14:15.135] end
[21:14:15.135] for _, pid in ipairs(getPlayersOnline()) do
[21:14:15.167] if getPlayerStorageValue(pid, t.main.storages.is_in_event) > 0 then
[21:14:15.182] table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, t.main.storages.score)})
[21:14:15.229] doPlayerSetStorageValue(pid, t.main.storages.is_in_event, 0)
[21:14:15.229] doPlayerSetStorageValue(pid, t.main.storages.score, 0)
[21:14:15.276] doPlayerSetStorageValue(pid, t.onShoot.storages.ammo, 0)
[21:14:15.276] doTeleportThing(pid, t.main.positions.event_ending_pos)
[21:14:15.307] end
[21:14:15.323] end
[21:14:15.354] table.sort(score, function(a, b) return a[2] > b[2] end)
[21:14:15.354] if table.getn(score) > 0 then
[21:14:15.417] if t.main.event_config.winner_gets_item then
[21:14:15.417] for _, pid in ipairs(getPlayersOnline()) do
[21:14:15.463] if getCreatureName(pid) == score[1][1] then
[21:14:15.463] doPlayerAddItem(pid, t.main.event_config.prize_item_id)
[21:14:15.510] break
[21:14:15.542] end
[21:14:15.579] end
[21:14:15.588] end
[21:14:15.620] doBroadcastMessage("Paintball event has ended, "..score[1][1].." won paintball event with "..score[1][2].." points", MESSAGE_STATUS_WARNING)
[21:14:15.682] end
[21:14:15.682] end
[21:14:15.713] local t_l = t.main.positions.paintball_spawn_area.top_left
[21:14:15.760] local b_r = t.main.positions.paintball_spawn_area.bottom_right
[21:14:15.760] function moveToEvent()
[21:14:15.792] for _, pid in ipairs(getPlayersOnline()) do
[21:14:15.807] if isInRange(getCreaturePosition(pid), t.main.positions.waiting_room_area.top_left, t.main.positions.waiting_room_area.bottom_right) then
[21:14:15.854] doTeleportThing(pid, {x=math.random(t_l.x,b_r.x), y=math.random(t_l.y, b_r.y), z=math.random(t_l.z, b_r.z)})
[21:14:15.885] doPlayerSetStorageValue(pid, t.main.storages.is_in_event,1)
[21:14:15.917] doPlayerSetStorageValue(pid, t.onShoot.storages.ammo, t.main.event_config.min_bullets_on_spawn)
[21:14:15.932] doPlayerSetStorageValue(pid, t.main.storages.score, 0)
[21:14:15.979] doPlayerSendTextMessage(pid,27,"Welcome to paintball, here are the commands:\n!shoot bullet --This will shot a bullet.\n!shoot ammo --This will give you "..t.main.event_config.ammo_per_point.." bullets and take 1 point from your current score (you need at least 1 point to use this command).\n!shoot info --This will show you your current score and ammo, it'll also show the current high score of the event.\nIt is strongly recommended that you bind these commands to your hotkeys.")
[21:14:16.057] end
[21:14:16.104] end
[21:14:16.104] doRemoveItem(getTileItemById(t.main.positions.tp_to_paintball,1387).uid)
[21:14:16.151] addEvent(endPaintball, t.main.event_config.event_duration*1000*60)
[21:14:16.151] end
[21:14:16.182] :onThink
[21:14:16.198] Description:
[21:14:16.229] [string "LuaInterface::loadBuffer"]:3: attempt to index field 'main' (a nil value)
[21:14:16.229] stack traceback:
[21:14:16.276] [string "LuaInterface::loadBuffer"]:3: in function <[string "LuaInterface::loadBuffer"]:2>
[21:14:16.292] [Error - GlobalEvents::think] Couldn't execute event: StartPaintBall