Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tfm.exec.disableAutoShaman()
- tfm.exec.disableAutoNewGame()
- tfm.exec.disableAutoTimeLeft()
- tfm.exec.disablePhysicalConsumables(true)
- tfm.exec.disableAfkDeath(true)
- local ADMINISTRADOR = "Owl#3124" -- CHANGE TO YOUR NICKNAME, SO YOU WILL BE GAME ADMIN
- local WINS = 10 -- POINTS TO WIN THE GAME
- --[[
- After running the script, use the command !team1 Players and !team2 Players to set both players in the specified team
- Then you just need to press GO!
- Type !score team1/team2 number to change its score.
- Type !skip to skip to the next map
- ]]
- local teams = {
- [1] = {},
- [2] = {},
- }
- local points = {
- [1] = 0,
- [2] = 0,
- }
- local isfirst = false
- local gameRunning = false
- local winTime = false
- local playersInGame = {}
- local colors = {
- [1] = "ff6347",
- [2] = "19b5fe"
- }
- function newMap()
- tfm.exec.newGame("#3")
- tfm.exec.setGameTime(303)
- end
- function eventPlayerWon(player)
- if not isfirst then
- isfirst = true
- tfm.exec.setGameTime(5)
- if table.contains(teams[1], player) then
- tfm.exec.setGameTime(5)
- for i = 0, 3 do
- defaultEffect(9, {13}, math.random(800), math.random(400), 20)
- end
- points[1] = points[1]+1
- elseif table.contains(teams[2], player) then
- tfm.exec.setGameTime(5)
- for i = 0, 3 do
- defaultEffect(9, {9}, math.random(800), math.random(400), 20)
- end
- points[2] = points[2]+1
- else
- isfirst = false
- end
- winner = false
- if points[1] >= WINS then
- winner = 1
- elseif points[2] >= WINS then
- winner = 2
- end
- if winner then
- gameRunning = false
- winTime = os.time()
- ui.addTextArea(20, string.format("<p align='center'><font size='37' color='#000000'>TEAM %s IS THE WINNER!", winner), nil, 0, 171, 800, 500, 0, 0, 0, true)
- ui.addTextArea(21, string.format("<p align='center'><font size='37' color='#000000'>TEAM %s IS THE WINNER!", winner), nil, 1, 170, 800, 500, 0, 0, 0, true)
- ui.addTextArea(22, string.format("<p align='center'><font size='37' color='#%s'>TEAM %s IS THE WINNER!", colors[winner], winner), nil, 1, 170, 800, 500, 0, 0, 0, true)
- end
- displayScore()
- end
- end
- function eventLoop(elapsed, remain)
- if gameRunning then
- remain = remain/1000
- if remain < 0 then
- remain = 100
- newMap()
- end
- else
- if winTime then
- if winTime > os.time()-30000 then
- for i = 0, 2 do
- defaultEffect(9, {11, 9, 0, 13}, math.random(800), math.random(400), 80)
- end
- else
- winTime = false
- ui.removeTextArea(20)
- ui.removeTextArea(21)
- ui.removeTextArea(22)
- displayTeams()
- teams = {
- [1] = {},
- [2] = {},
- }
- points = {
- [1] = 0,
- [2] = 0,
- }
- playersInGame = {}
- end
- end
- end
- end
- function eventChatCommand(player, command)
- if player:lower() == ADMINISTRADOR:lower() then
- args = string.split(command, " ")
- if args[1] == "team1" then
- table.remove(args, 1)
- teams[1] = {}
- points[1] = 0
- for index, player in pairs(args) do
- table.insert(teams[1], player)
- playersInGame[player] = true
- end
- displayTeams()
- elseif args[1] == "team2" then
- table.remove(args, 1)
- teams[2] = {}
- points[2] = 0
- for index, player in pairs(args) do
- table.insert(teams[2], player)
- playersInGame[player] = true
- end
- displayTeams()
- elseif args[1] == "skip" then
- newMap()
- elseif args[1] == "score" then
- if args[2] and args[3] then
- local team = tonumber(args[2]:match("team(%d+)") or 0)
- if team > 0 and team < 3 then
- local newScore = tonumber(args[3]) or points[team]
- points[team] = newScore
- displayScore()
- end
- end
- end
- end
- end
- function eventNewGame()
- if gameRunning then
- isfirst = false
- for i, p in pairs(teams[1]) do
- tfm.exec.setNameColor(p, "0x"..colors[1])
- end
- for i, p in pairs(teams[2]) do
- tfm.exec.setNameColor(p, "0x"..colors[2])
- end
- displayScore()
- end
- end
- function displayScore()
- ui.addTextArea(17, string.format("<p align='center'><font size='23' color='#000000'>%s x %s", points[1], points[2]), nil, 0, 21, 800, 30, 0, 0, 0, true)
- ui.addTextArea(18, string.format("<p align='center'><font size='23' color='#000000'>%s x %s", points[1], points[2]), nil, 1, 20, 800, 30, 0, 0, 0, true)
- ui.addTextArea(19, string.format("<p align='center'><font size='23'><font color='#%s'>%s<N> x <font color='#%s'>%s", colors[1], points[1], colors[2], points[2]), nil, 0, 20, 800, 30, 0, 0, 0, true)
- end
- function displayTeams()
- ui.addTextArea(1, "", nil, 199, 69, 400, 260, 0x5A7A8B, 0x5A7A8B, 1, true)
- ui.addTextArea(2, "", nil, 201, 71, 400, 260, 0x0E1417, 0x0E1417, 1, true)
- ui.addTextArea(3, "", nil, 200, 70, 400, 260, 0x324650, 0x324650, 1, true)
- ui.addTextArea(4, "", nil, 209, 79, 142, 22, 0x324650, 0x5A7A8B, 1, true)
- ui.addTextArea(5, "<p align='center'><V>Team 1", nil, 210, 80, 140, 20, 0x324650, 0x324650, 1, true)
- ui.addTextArea(6, "", nil, 449, 79, 142, 22, 0x324650, 0x5A7A8B, 1, true)
- ui.addTextArea(7, "<p align='center'><V>Team 2", nil, 450, 80, 140, 20, 0x324650, 0x324650, 1, true)
- ui.addTextArea(8, "<p align='center'><font color='#5A7A8B'>|</font>", nil, 210, 102, 140, 200, 0, 0, 0, true)
- ui.addTextArea(9, "<p align='center'><font color='#5A7A8B'>|</font>", nil, 450, 102, 140, 200, 0, 0, 0, true)
- ui.addTextArea(10, "", nil, 209, 120, 140, 200, 0x5A7A8B, 0x5A7A8B, 1, true)
- ui.addTextArea(11, "<p align='center'><font color='#"..colors[1].."'>"..table.concat(teams[1], "\n"), nil, 210, 121, 138, 198, 0x324650, 0x324650, 1, true)
- ui.addTextArea(12, "", nil, 451, 120, 140, 200, 0x5A7A8B, 0x5A7A8B, 1, true)
- ui.addTextArea(13, "<p align='center'><font color='#"..colors[2].."'>"..table.concat(teams[2], "\n"), nil, 452, 121, 138, 198, 0x324650, 0x324650, 1, true)
- ui.addTextArea(14, "<p align='center'><font color='#5A7A8B'>____ ____</font>", nil, 330, 200, 140, 200, 0, 0, 0, true)
- ui.addTextArea(15, "", nil, 380, 202, 40, 20, 0x5A7A8B, 0x5A7A8B, 1, true)
- ui.addTextArea(16, "<p align='center'><V>VS", nil, 381, 203, 38, 18, 0x324650, 0x324650, 1, true)
- ui.addTextArea(16, "<p align='center'><V><a href='event:iniciarJogo'>GO", ADMINISTRADOR, 381, 203, 38, 18, 0x324650, 0x324650, 1, true)
- end
- function eventTextAreaCallback(id, player, callback)
- if callback == 'iniciarJogo' then
- if #teams[2] > 0 and #teams[1] > 0 then
- gameRunning = true
- for i = 1, 16 do
- ui.removeTextArea(i)
- end
- defaultEffect(9, {9}, 400, 212, 80)
- newMap()
- end
- end
- end
- function string.split(s, pattern, n)
- local st = {}
- for sb in string.gmatch(s, "[^"..pattern.."]+") do
- if not n or n > -1 then
- table.insert(st,sb)
- else
- st[#st] = st[#st]..pattern..sb
- end
- n = n and n-1 or false
- end
- return st
- end
- function table.contains(tableT, element)
- for _, value in pairs(tableT) do
- if value == element then
- return true
- end
- end
- return false
- end
- defaultEffect=function(id,p,x,y,rand) -- thanks for the function santah
- local minDist = 1
- local outerBorder = 20
- local maxDist = 30
- local totalParticles = rand and 40 or (id == -1 and 35 or 75)
- for i = 1, totalParticles do
- if rand then
- id = p[math.random(#p)]
- end
- local dist = math.min(math.random(minDist, maxDist), outerBorder)
- local angle = math.random(0, 360)
- local r = math.rad(angle)
- local dx = math.cos(r)
- local dy = math.sin(r)
- local vx = dist * dx / 10
- local vy = dist * dy / 10
- local ax = -vx / dist / 15
- local ay = (-vy / dist / 15) + 0.05
- if id == -1 then
- tfm.exec.displayParticle(9, x + dx, y + dy, vx, vy, ax, ay, nil)
- tfm.exec.displayParticle(1, x + dx, y + dy, vx, vy, ax, ay, nil)
- else
- tfm.exec.displayParticle(id, x + dx, y + dy, vx, vy, ax, ay, nil)
- end
- end
- end
- displayTeams()
- function eventPlayerDied(name)
- tfm.exec.respawnPlayer(name)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement