Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- admin = "Corncycle"
- redTeamText = ""
- blueTeamText = ""
- lastMap = ""
- redTeam = {}
- redScore = 0
- blueTeam = {}
- blueScore = 0
- activePlayers = {}
- livingPlayers = {}
- ids = {}
- numPlayers = 0
- toggle = 0
- toggleBuffer = false
- menuOpen = true
- countdown = -1
- oneLeftToggle = 0
- oneLeftTimer = -1
- maxCountdown = 0
- maxOneLeftTimer = 5
- safetyTimer = -1
- goldAdmin = "#FFD700"
- redTeamColor = "#FF0000"
- redTeamBackground = 0x000001
- redTeamBorder = 0xFF0000
- redTeamOpacity = .5
- blueTeamColor = "#22AAFF"
- blueTeamBackground = 0x000001
- blueTeamBorder = 0x0000FF
- blueTeamOpacity = .5
- maps = {"4300791", "6469666", "4277918", "4280997", "4281375", "4284494", "4292764", "4293272", "7385953", "7386047", "7386050", "7386052", "7386690", "7386694", "7387984"}
- function main()
- tfm.exec.disableAfkDeath(true)
- tfm.exec.disableAutoShaman(true)
- tfm.exec.disableAutoScore(true)
- tfm.exec.disableAutoTimeLeft(true)
- tfm.exec.disableAutoNewGame(true)
- setupDefaultTeams()
- drawMenuSkeleton(true)
- drawMenuSkeleton(false)
- end
- function setupDefaultTeams()
- for name,player in pairs(tfm.get.room.playerList) do
- if (toggle % 2 == 0) then
- table.insert(redTeam, name)
- else
- table.insert(blueTeam, name)
- end
- toggle = toggle + 1
- numPlayers = numPlayers + 1
- end
- end
- function eventChatCommand(playerName, message)
- if (message == "test") then
- ui.addTextArea(10000, "ahh", nil, 350, 50, 100, 50, 0x5555FF, nil, .4, true)
- elseif (message == "quit") then
- system.exit()
- elseif (message == "skip") then
- playMap(getRandomMap())
- elseif (message == "p") then
- redScore = redScore + 100
- end
- end
- function eventTextAreaCallback(textAreaId, playerName, callback)
- if string.sub(callback,2,8)=="Button_" then
- t = {}
- othert = {}
- if string.sub(callback,1,1)=="r" then
- t = redTeam
- othert = blueTeam
- elseif string.sub(callback,1,1) == "b" then
- t = blueTeam
- othert = redTeam
- else
- print("Exception: Could not find " .. string.sub(callback,1,1) .. "team table")
- end
- nameChange = string.sub(callback,9,-1)
- index = -1
- for i=1,table.getn(t) do
- if t[i]==nameChange then
- index = i
- break
- end
- end
- if index==-1 then
- print("error!!")
- end
- table.remove(t,index)
- table.insert(othert,nameChange)
- drawMenuSkeleton(true)
- drawMenuSkeleton(false)
- elseif (callback == "beginGame") then
- menuOpen = false
- beginGameCountdown()
- end
- end
- function eventLoop(timeRemaining,timeRemaining)
- if (countdown > 0 and toggleBuffer) then
- toggleBuffer = false
- elseif (countdown > 0 and not toggleBuffer) then
- toggleBuffer = true
- countdown = countdown - 1
- showGameCountdown()
- end
- if (countdown == 0) then
- countdown = -1
- removeGameCountdown()
- removeMenus()
- beginGame()
- end
- if (oneLeftTimer > 0 and oneLeftToggle) then
- oneLeftToggle = false
- elseif (oneLeftTimer > 0 and not oneLeftToggle) then
- oneLeftToggle = true
- oneLeftTimer = oneLeftTimer - 1
- print(" oneLeftTimer: " .. oneLeftTimer)
- end
- if (oneLeftTimer == 0) then
- oneLeftTimer = -1
- playMap(getRandomMap())
- end
- if (safetyTimer > -1) then
- safetyTimer = safetyTimer - 1
- if (allPlayersDead()) then
- playMap(getRandomMap())
- end
- end
- end
- function eventNewGame()
- oneLeftTimer = -1
- updateActivePlayers()
- safetyTimer = 10
- tfm.exec.setGameTime(100000,true)
- end
- function eventPlayerLeft(name)
- removedPlayer = false
- for i=1,table.getn(activePlayers) do
- if (name == activePlayers[i]) then
- table.remove(activePlayers, i)
- removedPlayer = true
- break
- end
- end
- if (not removedPlayer) then
- print("Exception: Someone left, but they were not in the active table!")
- else
- print("Successfully removed " .. name .. " from the active table")
- end
- end
- function eventPlayerDied(name)
- removedPlayer = false
- for i=1,table.getn(livingPlayers) do
- if (name == livingPlayers[i]) then
- table.remove(livingPlayers, i)
- removedPlayer = true
- break
- end
- end
- if (not removedPlayer) then
- print("Exception: Someone died, but they were not in the living table!")
- else
- print("Successfully removed " .. name .. " from the living table")
- end
- checkForUpdate()
- end
- function eventPlayerWon(name, timeSinceMap, timeSinceRespawn)
- removedPlayer = false
- for i=1, table.getn(livingPlayers) do
- if (name == livingPlayers[i]) then
- table.remove(livingPlayers, i)
- removedPlayer = true
- end
- end
- if (not removedPlayer) then
- print("Exception: Someone finished the map, but they were not in the living table!")
- else
- print("Got rid of em")
- end
- for i=1, table.getn(redTeam) do
- if (name == redTeam[i]) then
- redScore = redScore + 1
- end
- end
- for i=1, table.getn(blueTeam) do
- if (name == blueTeam[i]) then
- blueScore = blueScore + 1
- end
- end
- checkForUpdate()
- end
- function eventNewPlayer(name)
- table.insert(activePlayers, name)
- print("Added " .. name .. " to the active table")
- end
- function drawMenuSkeleton(drawInteractive)
- redTeamText = "<p align='center'><font size='14' color='"..redTeamColor.."'>Red Team</font></p><br>"
- blueTeamText = "<p align='center'><font size='14' color='"..blueTeamColor.."'>Blue Team</font></p><br>"
- str1 = ""
- str2 = ""
- for i=1,table.getn(redTeam) do
- if (redTeam[i]==admin) then
- str1 = str1 .. "<font color='" .. goldAdmin .. "'>"
- str2 = "</font>" .. str2
- else
- str1 = ""
- str2 = ""
- end
- if (drawInteractive) then
- str1 = str1 .. "<a href='event:rButton_" .. redTeam[i] .. "'>"
- str2 = "</a>" .. str2
- end
- redTeamText = redTeamText .. "<p align='center'>" .. str1 .. redTeam[i] .. str2.. "</p>"
- end
- for i=1,table.getn(blueTeam) do
- if (blueTeam[i]==admin) then
- str1 = str1 .. "<font color='"..goldAdmin.."'>"
- str2 = "</font>" .. str2
- else
- str1 = ""
- str2 = ""
- end
- if (drawInteractive) then
- str1 = str1 .."<a href='event:bButton_".. blueTeam[i] .. "'>"
- str2 = "</a>" .. str2
- end
- blueTeamText = blueTeamText .. "<p align='center'>" .. str1 .. blueTeam[i] .. str2 .. "</p>"
- end
- rPadded = 42 + (16 * table.getn(redTeam))
- bPadded = 42 + (16 * table.getn(blueTeam))
- if (drawInteractive) then
- ui.addTextArea(0, redTeamText, admin, 5, 30, 100, rPadded, redTeamBackground, redTeamBorder, redTeamOpacity, true)
- ui.addTextArea(1, blueTeamText, admin, 695, 30, 100, bPadded, blueTeamBackground, blueTeamBorder, blueTeamOpacity, true)
- ui.addTextArea(5, "<a href='event:beginGame'><p align='center'><font size='19'>BEGIN</font></p></a>", admin, 350, 30, 100, 30, 0x000001, 0x000000, .5, true)
- else
- for name,player in pairs(tfm.get.room.playerList) do
- if not (name == admin) then
- ui.addTextArea(3, redTeamText, name, 5, 30, 100, rPadded, redTeamBackground, redTeamBorder, redTeamOpacity, true)
- ui.addTextArea(4, blueTeamText, name, 695, 30, 100, bPadded, blueTeamBackground, blueTeamBorder, blueTeamOpacity, true)
- end
- end
- end
- end
- function beginGameCountdown()
- countdown = maxCountdown + 1
- end
- function showGameCountdown()
- ui.addTextArea(6, "<p align='center'>Beginning game in " .. countdown .. "</p>", nil, 350, 150, 100, 50, 0x000000, 0x000000, .5, true)
- end
- function removeGameCountdown()
- ui.removeTextArea(6, nil)
- end
- function removeMenus()
- for i=0, 10 do
- ui.removeTextArea(i, nil)
- end
- end
- function beginGame()
- playMap(getRandomMap())
- end
- function getRandomMap()
- mapCode = lastMap
- while (mapCode == lastMap) do
- mapCode = maps[math.random(#maps)]
- print(mapCode)
- end
- print(mapCode .. " has been chosen, which is different from " .. lastMap)
- return (mapCode)
- end
- function playMap(code)
- for i=1,table.getn(redTeam) do
- tfm.exec.setNameColor(redTeam[i], redTeamBorder)
- end
- for i=1, table.getn(blueTeam) do
- tfm.exec.setNameColor(blueTeam[i], blueTeamBorder)
- end
- tfm.exec.newGame(code)
- lastMap = code
- showScores()
- end
- function updateActivePlayers()
- activePlayers = {}
- livingPlayers = {}
- menuIndex = 36531
- for name,player in pairs(tfm.get.room.playerList) do
- table.insert(activePlayers, name)
- activePlayers[name] = {menuIndex}
- menuIndex = menuIndex + 1
- end
- for i=1,table.getn(activePlayers) do
- table.insert(livingPlayers, activePlayers[i])
- print(livingPlayers[i])
- end
- end
- function allPlayersDead()
- if (table.getn(livingPlayers) == 0) then
- return true
- else
- return false
- end
- end
- function onePlayerLeft()
- if (table.getn(livingPlayers) == 1) then
- return true
- else
- return false
- end
- end
- function startOneLeftTimer()
- oneLeftTimer = maxOneLeftTimer + 1
- end
- function checkForUpdate()
- if (allPlayersDead()) then
- oneLeftTimer = -1
- playMap(getRandomMap())
- elseif (onePlayerLeft()) then
- tfm.exec.setGameTime(maxOneLeftTimer + 1,false)
- startOneLeftTimer()
- end
- end
- function showScores()
- createIds()
- if (not menuOpen) then
- for name,player in pairs(tfm.get.room.playerList) do
- xBuffer = 0
- wBuffer = 0
- if (redScore > 99) then
- xBuffer = -20
- wBuffer = 20
- end
- ui.addTextArea(ids[name], "<a href='event:checkScore_r'><p align='center'><font size='24' color = '"..redTeamColor.."'><b>"..redScore.."</b></font></p></a>", name, 355+xBuffer, 30, 40+wBuffer, 50, 0x000000, 0x000000, .5, true)
- xBuffer = 0
- if (blueScore < 100) then
- wBuffer = 0
- end
- ui.addTextArea(ids[name]+10000, "<a href='event:checkScore_b'><p align='center'><font size='24' color = '"..blueTeamColor.."'><b>"..blueScore.."</b></font></p></a>", name, 405, 30, wBuffer + 40, 50, 0x000000, 0x000000, .5, true)
- end
- end
- end
- function createIds()
- ids = {}
- tempId = 1
- for name,player in pairs(tfm.get.room.playerList) do
- ids[name] = tempId + 10000
- tempId = tempId + 1
- end
- end
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement