Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local elements = { }
- local voted = { }
- local finished = false
- local most_voted_element
- local admin
- do
- local _, nickname = pcall(nil)
- admin = string.match(nickname, '(.-)%.')
- local available_elements = {
- 'Racing', 'Bootcamp', 'Vanilla'
- }
- for i = 1, #available_elements do
- elements[available_elements[i]] = 0
- end
- end
- local function display_ui(name)
- ui.addTextArea(0, "<p align='center'><font size='14'><v>Poll", name, 250, 75, 300, 205, 0x0D181A)
- local str = ''
- for k in next, elements do
- str = str .. string.format("<j><a href='event:%s'>%s</a>\n\n\n", k, k)
- end
- ui.addTextArea(1, "<p align='center'><font size='12'>\n\n" .. str, name, 255, 104, 290, 170, 0x12272b)
- end
- local function update_ui(name)
- if (voted[name]) then
- local str = ''
- local color_tag
- for k, v in next, elements do
- color_tag = '<j>'
- if (finished) then
- color_tag = (k == most_voted_element) and '<vp>' or '<r>'
- end
- str = str .. string.format("%s<a href='event:%s'>%s</a>", color_tag, k, k)
- if (voted[name]) then
- str = str .. ': <n>' .. v .. ' votes.'
- end
- str = str .. '\n\n\n'
- end
- ui.updateTextArea(1, "<p align='center'><font size='12'>\n\n" .. str, name)
- end
- end
- local function start()
- voted = { }
- finished = false
- most_voted_element = ''
- for k in next, elements do
- elements[k] = 0
- end
- table.foreach(tfm.get.room.playerList, display_ui)
- end
- local function stop()
- local t = { }
- for k, v in next, elements do
- if (v > 0) then
- t[#t + 1] = { k, v }
- end
- end
- if (#t > 0) then
- finished = true
- table.sort(t, function(a, b) return a[2] > b[2] end)
- most_voted_element = t[1][1]
- table.foreach(tfm.get.room.playerList, update_ui)
- end
- end
- function eventChatCommand(name, command)
- if (admin ~= name) then return end
- if (command == 'start') then
- start()
- elseif (command == 'stop') then
- stop()
- end
- end
- function eventTextAreaCallback(_, name, callback)
- if (voted[name]) then return end
- if (elements[callback]) then
- elements[callback] = (elements[callback] + 1)
- voted[name] = true
- table.foreach(tfm.get.room.playerList, update_ui)
- end
- end
- system.disableChatCommandDisplay()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement