View difference between Paste ID: vSDk80yK and f8zysyR4
SHOW: | | - or go back to the newest paste.
1-
owner = "nobody" -- replace with your username 
1+
owner = "nobody" -- replace with your username
2
3
interval = 10
4
cannonInfo = {}
5
difficulty = 8
6
7
maps = {3107377,305748,1539148,4543602,390649,495880,1463332,1492805,292678,305753,1545834,3175437,2964900,1812056,852617,799141,1794907,2939549,459284,1519483,1794873,811211,306360,489829,479091,3419948,290546,276534,3220945,1754355,281649,390657,311496,295988,802958,2643833}
8
9
function main()
10
    tfm.exec.disableAutoNewGame(true)
11
    tfm.exec.disableAutoShaman(true)
12
    tfm.exec.disableAutoTimeLeft(true)
13
    tfm.exec.newGame(maps[math.random(#maps)])
14
end
15
16
function eventNewGame()
17
    interval = 10
18
end
19
20
function eventNewPlayer(name)
21
    ui.addTextArea(1, "<a href='event:easy'><VP><font size='14'>E", name, 728, 21, nil, nil, 0x000001, nil, 0.7)
22
    ui.addTextArea(2, "<a href='event:medium'><J><font size='14'>M", name, 753, 21, nil, nil, 0x000001, nil, 0.7)
23
    ui.addTextArea(3, "<a href='event:hard'><R><font size='14'>H", name, 781, 21, nil, nil, 0x000001, nil, 0.7)
24
end
25
26
function eventTextAreaCallback(id, name, cb)
27
    if (owner==name or owner=="nobody") and interval > 6 then
28
        interval = 10
29
        if cb == "easy" then
30
            difficulty = 7
31
        elseif cb == "medium" then
32
            difficulty = 8
33
        elseif cb == "hard" then
34
            difficulty = 9
35
        end
36
    end
37
end
38
39
function eventLoop(time, remaining) 
40
    if time>3000 then
41
        interval = interval - 1
42
        if interval == difficulty then
43
            ui.removeTextArea(4)
44
            local users = {}
45
            for name,p in pairs(tfm.get.room.playerList) do
46
                if not p.isDead then
47
                    users[#users+1] = name
48
                end
49
            end
50
            cannonInfo = spawnCannon(users[math.random(#users)])
51
            interval = 11
52
        elseif interval<=5 then
53
            tfm.exec.setUIMapName("<ROSE>The next map will start in "..interval)
54
            if interval == 0 then
55
                tfm.exec.newGame(maps[math.random(#maps)])
56
            end
57
        elseif interval == 10 then
58
            tfm.exec.addShamanObject(17, cannonInfo[1], cannonInfo[2], cannonInfo[3]-90)
59
            cannonInfo={}
60
        end
61
    end
62
    if remaining<=0 then
63
        ui.addTextArea(4, "<VP><p align='center'><B>CONGRATULATIONS</B>\n\n<CH><i>you beat the CPU!", nil, 290, 22, 180, nil, 0x000001, 0xCA0805, 0.8)
64
        tfm.exec.newGame(maps[math.random(#maps)])
65
    end
66
end
67
68
function eventPlayerDied(name)
69
    if playerCount() < 1 then
70
        interval = 6
71
    end
72
end
73
74
function playerCount()
75
    local n=0
76
    for name, player in pairs(tfm.get.room.playerList) do
77
        if not player.isDead then
78
            n=n+1
79
        end
80
    end
81
    return n
82
end
83
84
function spawnCannon(name)
85
    local info = {}
86
    local px = tfm.get.room.playerList[name].x
87
    local py = tfm.get.room.playerList[name].y
88
    local cnnx = math.random()*800
89
    local cnny = math.random()*400
90
    if cnny > py then
91
        cnny = py-math.random(50)-20
92
    end
93
    if math.abs(cnnx-px) > 300 then
94
        cnnx = px + math.random(-50, 50)
95
    end
96
    local ang = math.deg(math.atan2(cnny-py, cnnx-px))
97
    tfm.exec.addShamanObject(0, cnnx, cnny, ang+90)
98
    info[1] = cnnx
99
    info[2] = cnny
100
    info[3] = ang
101
    return info
102
end
103
104-
function eventChatCommand(name, cmd)
104+
105-
    if cmd == "easy" then
105+
106-
        difficulty = 8
106+
107-
        easy = true
107+
108
main()