Advertisement
Guest User

Untitled

a guest
Feb 17th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.20 KB | None | 0 0
  1. admin = "Corncycle"
  2.  
  3. redTeamText = ""
  4. blueTeamText = ""
  5.  
  6. lastMap = ""
  7.  
  8. redTeam = {}
  9. redScore = 0
  10. blueTeam = {}
  11. blueScore = 0
  12.  
  13.  
  14. activePlayers = {}
  15. livingPlayers = {}
  16. ids = {}
  17.  
  18. numPlayers = 0
  19.  
  20. toggle = 0
  21. toggleBuffer = false
  22. menuOpen = true
  23. countdown = -1
  24. oneLeftToggle = 0
  25. oneLeftTimer = -1
  26.  
  27. maxCountdown = 0
  28. maxOneLeftTimer = 15
  29. safetyTimer = -1
  30.  
  31. goldAdmin = "#FFD700"
  32. redTeamColor = "#FF0000"
  33. redTeamBackground = 0x000001
  34. redTeamBorder = 0xFF0000
  35. redTeamOpacity = .5
  36.  
  37. blueTeamColor = "#22AAFF"
  38. blueTeamBackground = 0x000001
  39. blueTeamBorder = 0x0000FF
  40. blueTeamOpacity = .5
  41.  
  42. maps = {"4300791", "6469666", "4277918", "4280997", "4281375", "4284494", "4292764", "4293272", "7385953", "7386047", "7386050", "7386052", "7386690", "7386694", "7387984", "7389409", "7389423","7390338"}
  43.  
  44. function main()
  45. tfm.exec.disableAfkDeath(true)
  46. tfm.exec.disableAutoShaman(true)
  47. tfm.exec.disableAutoScore(true)
  48. tfm.exec.disableAutoTimeLeft(true)
  49. tfm.exec.disableAutoNewGame(true)
  50. setupDefaultTeams()
  51. drawMenuSkeleton(true)
  52. drawMenuSkeleton(false)
  53. playMap(7390339)
  54. end
  55.  
  56. function setupDefaultTeams()
  57. for name,player in pairs(tfm.get.room.playerList) do
  58. if (toggle % 2 == 0) then
  59. table.insert(redTeam, name)
  60. else
  61. table.insert(blueTeam, name)
  62. end
  63. toggle = toggle + 1
  64. numPlayers = numPlayers + 1
  65. end
  66. end
  67.  
  68. function eventChatCommand(playerName, message)
  69. if (message == "test") then
  70. ui.addTextArea(10000, "ahh", nil, 350, 50, 100, 50, 0x5555FF, nil, .4, true)
  71. elseif (message == "quit") then
  72. system.exit()
  73. elseif (message == "skip") then
  74. playMap(getRandomMap())
  75. elseif (message == "p") then
  76. redScore = redScore + 100
  77. showScores()
  78. end
  79. end
  80.  
  81. function eventTextAreaCallback(textAreaId, playerName, callback)
  82. if string.sub(callback,2,8)=="Button_" then
  83. t = {}
  84. othert = {}
  85. if string.sub(callback,1,1)=="r" then
  86. t = redTeam
  87. othert = blueTeam
  88. elseif string.sub(callback,1,1) == "b" then
  89. t = blueTeam
  90. othert = redTeam
  91. else
  92. print("Exception: Could not find " .. string.sub(callback,1,1) .. "team table")
  93. end
  94. nameChange = string.sub(callback,9,-1)
  95. index = -1
  96. for i=1,table.getn(t) do
  97. if t[i]==nameChange then
  98. index = i
  99. break
  100. end
  101. end
  102. if index==-1 then
  103. print("error!!")
  104. end
  105. table.remove(t,index)
  106. table.insert(othert,nameChange)
  107. drawMenuSkeleton(true)
  108. drawMenuSkeleton(false)
  109. setColors()
  110. elseif (callback == "beginGame") then
  111. menuOpen = false
  112. beginGameCountdown()
  113. end
  114. end
  115.  
  116. function eventLoop(timeRemaining,timeRemaining)
  117. if (countdown > 0 and toggleBuffer) then
  118. toggleBuffer = false
  119. elseif (countdown > 0 and not toggleBuffer) then
  120. toggleBuffer = true
  121. countdown = countdown - 1
  122. showGameCountdown()
  123. end
  124. if (countdown == 0) then
  125. countdown = -1
  126. removeGameCountdown()
  127. removeMenus()
  128. beginGame()
  129. end
  130. if (oneLeftTimer > 0 and oneLeftToggle) then
  131. oneLeftToggle = false
  132. elseif (oneLeftTimer > 0 and not oneLeftToggle) then
  133. oneLeftToggle = true
  134. oneLeftTimer = oneLeftTimer - 1
  135. print(" oneLeftTimer: " .. oneLeftTimer)
  136. end
  137. if (oneLeftTimer == 0) then
  138. oneLeftTimer = -1
  139. playMap(getRandomMap())
  140. end
  141. if (safetyTimer > -1) then
  142. safetyTimer = safetyTimer - 1
  143. if (allPlayersDead()) then
  144. playMap(getRandomMap())
  145. end
  146. end
  147. end
  148.  
  149. function eventNewGame()
  150. oneLeftTimer = -1
  151. updateActivePlayers()
  152. safetyTimer = 10
  153. tfm.exec.setGameTime(100000,true)
  154. end
  155.  
  156. function eventPlayerLeft(name)
  157. removedPlayer = false
  158. for i=1,table.getn(activePlayers) do
  159. if (name == activePlayers[i]) then
  160. table.remove(activePlayers, i)
  161. removedPlayer = true
  162. break
  163. end
  164. end
  165. if (not removedPlayer) then
  166. print("Exception: Someone left, but they were not in the active table!")
  167. else
  168. print("Successfully removed " .. name .. " from the active table")
  169. end
  170. end
  171.  
  172. function eventPlayerDied(name)
  173. removedPlayer = false
  174. for i=1,table.getn(livingPlayers) do
  175. if (name == livingPlayers[i]) then
  176. table.remove(livingPlayers, i)
  177. removedPlayer = true
  178. break
  179. end
  180. end
  181. if (not removedPlayer) then
  182. print("Exception: Someone died, but they were not in the living table!")
  183. else
  184. print("Successfully removed " .. name .. " from the living table")
  185. end
  186. checkForUpdate()
  187. end
  188.  
  189. function eventPlayerWon(name, timeSinceMap, timeSinceRespawn)
  190. removedPlayer = false
  191. for i=1, table.getn(livingPlayers) do
  192. if (name == livingPlayers[i]) then
  193. table.remove(livingPlayers, i)
  194. removedPlayer = true
  195. end
  196. end
  197. if (not removedPlayer) then
  198. print("Exception: Someone finished the map, but they were not in the living table!")
  199. else
  200. print("Got rid of em")
  201. end
  202. for i=1, table.getn(redTeam) do
  203. if (name == redTeam[i]) then
  204. redScore = redScore + 1
  205. end
  206. end
  207. for i=1, table.getn(blueTeam) do
  208. if (name == blueTeam[i]) then
  209. blueScore = blueScore + 1
  210. end
  211. end
  212. showScores()
  213. checkForUpdate()
  214. end
  215.  
  216. function eventNewPlayer(name)
  217. table.insert(activePlayers, name)
  218. print("Added " .. name .. " to the active table")
  219. end
  220.  
  221. function drawMenuSkeleton(drawInteractive)
  222. redTeamText = "<p align='center'><font size='14' color='"..redTeamColor.."'>Red Team</font></p><br>"
  223. blueTeamText = "<p align='center'><font size='14' color='"..blueTeamColor.."'>Blue Team</font></p><br>"
  224. str1 = ""
  225. str2 = ""
  226. for i=1,table.getn(redTeam) do
  227. if (redTeam[i]==admin) then
  228. str1 = str1 .. "<font color='" .. goldAdmin .. "'>"
  229. str2 = "</font>" .. str2
  230. else
  231. str1 = ""
  232. str2 = ""
  233. end
  234. if (drawInteractive) then
  235. str1 = str1 .. "<a href='event:rButton_" .. redTeam[i] .. "'>"
  236. str2 = "</a>" .. str2
  237. end
  238. redTeamText = redTeamText .. "<p align='center'>" .. str1 .. redTeam[i] .. str2.. "</p>"
  239. end
  240. for i=1,table.getn(blueTeam) do
  241. if (blueTeam[i]==admin) then
  242. str1 = str1 .. "<font color='"..goldAdmin.."'>"
  243. str2 = "</font>" .. str2
  244. else
  245. str1 = ""
  246. str2 = ""
  247. end
  248. if (drawInteractive) then
  249. str1 = str1 .."<a href='event:bButton_".. blueTeam[i] .. "'>"
  250. str2 = "</a>" .. str2
  251. end
  252. blueTeamText = blueTeamText .. "<p align='center'>" .. str1 .. blueTeam[i] .. str2 .. "</p>"
  253. end
  254. rPadded = 42 + (16 * table.getn(redTeam))
  255. bPadded = 42 + (16 * table.getn(blueTeam))
  256. if (drawInteractive) then
  257. ui.addTextArea(0, redTeamText, admin, 5, 30, 100, rPadded, redTeamBackground, redTeamBorder, redTeamOpacity, true)
  258. ui.addTextArea(1, blueTeamText, admin, 695, 30, 100, bPadded, blueTeamBackground, blueTeamBorder, blueTeamOpacity, true)
  259. 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)
  260. else
  261. for name,player in pairs(tfm.get.room.playerList) do
  262. if not (name == admin) then
  263. ui.addTextArea(3, redTeamText, name, 5, 30, 100, rPadded, redTeamBackground, redTeamBorder, redTeamOpacity, true)
  264. ui.addTextArea(4, blueTeamText, name, 695, 30, 100, bPadded, blueTeamBackground, blueTeamBorder, blueTeamOpacity, true)
  265. end
  266. end
  267. end
  268. end
  269.  
  270. function beginGameCountdown()
  271. countdown = maxCountdown + 1
  272. end
  273.  
  274. function showGameCountdown()
  275. ui.addTextArea(6, "<p align='center'>Beginning game in " .. countdown .. "</p>", nil, 350, 150, 100, 50, 0x000000, 0x000000, .5, true)
  276. end
  277.  
  278. function removeGameCountdown()
  279. ui.removeTextArea(6, nil)
  280. end
  281.  
  282. function removeMenus()
  283. for i=0, 10 do
  284. ui.removeTextArea(i, nil)
  285. end
  286. end
  287.  
  288. function beginGame()
  289. playMap(getRandomMap())
  290. end
  291.  
  292. function getRandomMap()
  293. mapCode = lastMap
  294. while (mapCode == lastMap) do
  295. mapCode = maps[math.random(#maps)]
  296. print(mapCode)
  297. end
  298. print(mapCode .. " has been chosen, which is different from " .. lastMap)
  299. return (mapCode)
  300. end
  301.  
  302. function playMap(code)
  303. tfm.exec.newGame(code)
  304. lastMap = code
  305. showScores()
  306. setColors()
  307. end
  308.  
  309. function updateActivePlayers()
  310. activePlayers = {}
  311. livingPlayers = {}
  312. menuIndex = 36531
  313. for name,player in pairs(tfm.get.room.playerList) do
  314. table.insert(activePlayers, name)
  315. activePlayers[name] = {menuIndex}
  316. menuIndex = menuIndex + 1
  317. end
  318.  
  319. for i=1,table.getn(activePlayers) do
  320. table.insert(livingPlayers, activePlayers[i])
  321. print(livingPlayers[i])
  322. end
  323. end
  324.  
  325. function allPlayersDead()
  326. if (table.getn(livingPlayers) == 0) then
  327. return true
  328. else
  329. return false
  330. end
  331. end
  332.  
  333. function onePlayerLeft()
  334. if (table.getn(livingPlayers) == 1) then
  335. return true
  336. else
  337. return false
  338. end
  339. end
  340.  
  341. function startOneLeftTimer()
  342. oneLeftTimer = maxOneLeftTimer + 1
  343. end
  344.  
  345. function checkForUpdate()
  346. if (allPlayersDead()) then
  347. oneLeftTimer = -1
  348. playMap(getRandomMap())
  349. elseif (onePlayerLeft()) then
  350. tfm.exec.setGameTime(maxOneLeftTimer + 1,false)
  351. startOneLeftTimer()
  352. end
  353. end
  354.  
  355. function showScores()
  356. createIds()
  357. if (not menuOpen) then
  358. for name,player in pairs(tfm.get.room.playerList) do
  359. xBuffer = 0
  360. wBuffer = 0
  361. if (redScore > 99) then
  362. xBuffer = -20
  363. wBuffer = 20
  364. end
  365. 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)
  366. xBuffer = 0
  367. if (blueScore < 100) then
  368. wBuffer = 0
  369. end
  370. 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)
  371. end
  372. end
  373. end
  374.  
  375. function createIds()
  376. ids = {}
  377. tempId = 1
  378. for name,player in pairs(tfm.get.room.playerList) do
  379. ids[name] = tempId + 10000
  380. tempId = tempId + 1
  381. end
  382. end
  383.  
  384. function setColors()
  385. for i=1,table.getn(redTeam) do
  386. tfm.exec.setNameColor(redTeam[i], redTeamBorder)
  387. end
  388. for i=1, table.getn(blueTeam) do
  389. tfm.exec.setNameColor(blueTeam[i], blueTeamBorder)
  390. end
  391. end
  392.  
  393. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement