View difference between Paste ID: HCLt4eN0 and x7NF3m8v
SHOW: | | - or go back to the newest paste.
1
--------------------------------
2
--[[ HardSham' room. ]]--
3-
--[[ Version 1.9.1 Beta. ]]--
3+
--[[ Version 1.9.2 Beta. ]]--
4
--[[ Developped by TheLeetCoder. ]]--
5
--------------------------------
6
7
--// by TheLeetCoder \\--
8
mapXML1 = '<C><P F="1" /><Z><S><S L="200" H="50" X="100" Y="380" T="6" P="1,-1,0.3,0.2,0,0,0,0" /><S L="200" X="400" H="50" Y="250" T="6" P="1,-1,0.3,0.2,0,0,0,0" /><S L="200" H="50" X="700" Y="100" T="6" P="1,-1,0.3,0.2,0,0,0,0" /></S><D><P P="0,0" Y="356" T="1" X="173" /><P P="0,0" Y="360" T="5" X="168" /><P P="0,0" Y="244" T="5" X="311" /><P P="0,0" Y="240" T="5" X="485" /><P P="0,0" Y="239" T="5" X="437" /><P P="0,0" Y="227" T="4" X="460" /><P P="0,0" Y="225" T="3" X="338" /><P P="0,0" Y="76" T="0" X="761" /><P P="0,0" Y="91" T="5" X="611" /><P P="0,0" Y="74" T="11" X="731" /><P P="0,0" Y="356" T="12" X="38" /><P P="0,0" Y="356" T="4" X="40" /><DS Y="341" X="98" /><DC Y="59" X="692" /><T Y="356" X="99" /><F Y="73" X="705" /></D><O /></Z></C>'
9
mapXML2 = '<C><P F="2" /><Z><S><S P="0,0,0.3,0.2,0,0,0,0" L="440" X="218" c="2" Y="93" T="8" H="150" /><S L="160" X="80" H="53" Y="379" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S L="290" X="305" H="30" Y="369" T="9" P="0,0,,,,0,0,0" /><S L="190" H="53" X="545" Y="381" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S L="160" X="720" H="53" Y="196" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S L="160" H="53" X="357" Y="97" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S L="24" X="289" H="47" Y="47" T="1" P="0,0,0,0.2,0,0,0,0" /><S L="160" X="720" H="206" Y="325" T="8" P="0,0,0.3,0.2,0,0,0,0" /></S><D><F Y="348" X="82" /><DS Y="353" X="82" /><P X="143" Y="369" T="5" P="0,0" /><P X="11" Y="374" T="5" P="0,0" /><P X="139" Y="353" T="4" P="0,0" /><P X="26" Y="354" T="1" P="0,0" /><P X="477" Y="355" T="4" P="0,0" /><P X="482" Y="356" T="0" P="1,0" /><T Y="71" D="" X="349" /><P X="652" Y="184" T="5" P="0,0" /><P X="782" Y="183" T="5" P="0,0" /><P X="683" Y="177" T="5" P="0,0" /><P X="744" Y="173" T="0" P="0,0" /><P X="743" Y="170" T="1" P="0,0" /><P X="508" Y="354" T="3" P="0,0" /><P X="711" Y="172" T="11" P="0,0" /><P X="606" Y="354" T="12" P="0,0" /><P C="57703e,e7c3d6" Y="377" T="18" X="611" P="0,0" /></D><O /></Z></C>'
10
mapXML4 = '<C><P F="1" /><Z><S><S L="40" H="200" X="780" Y="290" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S L="40" X="20" H="200" Y="290" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S c="3" L="150" H="25" X="590" Y="339" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S c="1" L="320" H="99" X="640" Y="400" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S P="0,0,0.3,0.2,0,0,0,0" L="240" X="120" c="1" Y="400" T="6" H="99" /></S><D><P P="0,0" Y="351" T="1" X="712" /><P P="0,0" Y="349" T="3" X="727" /><T Y="351" X="128" /><F Y="323" D="" X="590" /><DS Y="336" X="97" /><P P="0,0" Y="351" T="12" X="194" /><P P="1,0" Y="351" T="0" X="510" /><P P="0,1" Y="190" T="6" X="20" /><DC Y="90" X="49" /></D><O /></Z></C>'
11
12
--// by Toonney \\--
13
mapXML3 = '<C><P F="1" /><Z><S><S L="160" X="80" H="35" Y="382" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S L="160" H="35" X="240" v="20000" Y="347" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S L="160" H="35" X="400" Y="382" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S L="160" X="560" H="35" v="20000" Y="347" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S L="160" X="720" H="35" Y="382" T="6" P="0,0,0.3,0.2,0,0,0,0" /><S P="0,0,0.3,0.2,0,0,0,0" L="53" o="ffffffffff" X="26" Y="84" T="12" H="58" /><S L="53" o="ffffffffff" X="776" H="58" Y="85" T="12" P="0,0,0.3,0.2,0,0,0,0" /></S><D><T Y="400" X="185" /><F Y="396" X="617" /><T Y="95" X="20" /><F Y="95" X="780" /><DS Y="361" X="399" /><DC Y="364" X="400" /><P P="1,0" Y="367" T="0" X="351" /><P P="0,0" Y="362" T="5" X="496" /><P P="0,0" Y="386" T="5" X="653" /><P P="0,0" Y="381" T="5" X="783" /><P P="0,0" Y="364" T="1" X="718" /><P P="0,0" Y="367" T="0" X="717" /><P P="0,0" Y="366" T="4" X="460" /><P P="0,0" Y="391" T="5" X="145" /><P P="0,0" Y="379" T="5" X="14" /><P P="0,0" Y="376" T="5" X="42" /><P P="0,0" Y="365" T="11" X="58" /><P P="0,0" Y="363" T="3" X="453" /><P P="0,0" Y="366" T="1" X="99" /><P P="1,0" Y="367" T="12" X="133" /><P P="0,0" Y="407" T="13" X="615" /><P P="0,0" Y="411" T="13" X="180" /><P X="226" Y="412" T="13" P="0,0" /><P P="0,0" Y="411" T="13" X="273" /><P X="316" Y="412" T="13" P="0,0" /><P X="501" Y="412" T="13" P="0,0" /><P P="0,0" Y="411" T="13" X="548" /><P X="586" Y="411" T="13" P="0,0" /><P P="0,0" Y="367" T="83" X="400" /></D><O /></Z></C>'
14
15-
maps =     { mapXML1, mapXML2, mapXML3, mapXML4 }
15+
maps =     	{ mapXML1, mapXML2, mapXML3, mapXML4 }
16
phrases = 	{ "C'est la fête !!!", "Let's dance *-* !", "FEEEEEEL FREEEE ^.^", "Everybody dance !!", "Cette partie est géniale!", "Savourez-ce moment !!", "PARTYYYYYYYY", "Bilie Jeans !!", "VIVE LE CHAMANE !! !", "Dansons-tous !!! <3" }
17
18
difficultLevel = {}
19
itemUsages = {}
20
21
currentSham = ""
22
currentMap = ""
23
lastSham = ""
24
maxSummon = 5
25
26
roundNumber = 0
27
freeRound = false
28
29
tfm.exec.newGame(maps[math.random(#maps)])
30
tfm.exec.disableAllShamanSkills(true)
31
tfm.exec.disableAutoNewGame(true)
32
33
for playerName in pairs(tfm.get.room.playerList) do
34
    difficultLevel[playerName] = 0
35
    itemUsages[playerName] = 0
36
    ui.addTextArea(100, "<p align='center'>« Bienvenue dans le salon #hardcham. »<br>Tapez !diff [level] afin de régler la difficulté.</p>", playerName, 250, 21, 300)
37
38
    if tfm.get.room.playerList[playerName].isShaman then
39
        currentSham = playerName
40
    end
41
end
42
43
function eventNewPlayer(playerName) -- Nouveau joueur entre.
44
    ui.addTextArea(100, "<p align='center'>« Bienvenue dans le salon #hardcham. »<br>Tapez !diff [level] afin de régler la difficulté.</p>", playerName, 250, 21, 300)
45
end
46
47
function eventNewGame() -- Démarrage d'une nouvelle partie.
48
    if roundNumber == 5 then
49
			ui.removeTextArea(100, nil)
50
        ui.addTextArea(115, "Le chamane à le droit à une partie sans limites !", nil, 250, 21, 320)
51
		freeRound = true
52
		roundNumber = 0
53
    elseif roundNumber ~= 5 then
54
		roundNumber = roundNumber + 1
55
		freeRound = false
56
        for playerName in pairs(tfm.get.room.playerList) do
57
            ui.addTextArea(100, "<p align='center'>Une nouvelle partie va commencer.<br>Tapez !diff [level] afin de régler la difficulté.</p>", playerName, 250, 21, 300)
58
            itemUsages[playerName] = 0
59
            lastSham = currentSham
60
            ui.removeTextArea(103, playerName)
61
            ui.removeTextArea(104, playerName)
62
            ui.removeTextArea(115, playerName)
63
    
64
            if tfm.get.room.playerList[playerName].isShaman then
65
                currentSham = playerName
66
                if difficultLevel[currentSham] > 3 then
67
                    itemUsages[currentSham] = (maxSummon - 1)
68
                elseif difficultLevel[currentSham] > 6 then
69
                    itemUsages[currentSham] = (maxSummon - 2)
70
                elseif difficultLevel[currentSham] > 9 then
71
                    itemUsages[currentSham] = (maxSummon - 3)
72
                end
73
            end
74
        end
75
    end
76
    ui.removeTextArea(102, lastSham)
77
end
78
79
function eventLoop(timer, remaining)
80-
        ui.addTextArea(101, "FEEL FREE *-* !!!", playerName, 5, 21, 150)
80+
81
        ui.addTextArea(101, phrases[math.random(#phrases)], playerName, 5, 21, 150)
82
		tfm.exec.addShamanObject(0, math.random(0, 800), math.random(0, 400), math.random(0, 360), 0, 0, false)
83
		tfm.exec.addShamanObject(0, math.random(0, 800), math.random(0, 400), math.random(0, 360), 0, 0, false)
84
		
85
		tfm.exec.addShamanObject(26, math.random(0, 800), math.random(0, 400), math.random(0, 360), 0, 0, false)
86
		tfm.exec.addShamanObject(27, math.random(0, 800), math.random(0, 400), math.random(0, 360), 0, 0, false)
87
		tfm.exec.addShamanObject(28, math.random(0, 800), math.random(0, 400), math.random(0, 360), 0, 0, true)
88
		tfm.exec.addShamanObject(28, math.random(0, 800), math.random(0, 400), math.random(0, 360), 0, 0, false)
89
	else
90
		ui.addTextArea(101, "Invocations restantes: "..(maxSummon - itemUsages[currentSham]), playerName, 5, 21, 150)
91
	end
92
	
93
	if remaining<=0 then
94
		nextMap = maps[math.random(#maps)]
95
		if nextMap ~= currentMap then
96
			tfm.exec.newGame(nextMap)
97
			currentMap = nextMap
98
		else
99
			nextMap = maps[math.random(#maps)]
100
			tfm.exec.newGame(nextMap)
101
			currentMap = nextMap
102
		end
103
	end
104
end
105
106
function eventChatCommand(playerName, command) -- Commandes.
107
    if command:sub(0, 4) == "diff" then
108
        if tonumber(command:sub(6)) < 0 or tonumber(command:sub(6)) > 10 then
109
            ui.addTextArea(104, "<p align='center'>« Format invalide. Format : !diff [level] (entre 0 et 10). »</p>", playerName, 250, 21, 300)
110
        else
111
            difficultLevel[playerName] = tonumber(command:sub(6))
112-
        ui.addTextArea(101, "FEEL FREE *-* !!!", playerName, 5, 21, 150)
112+
113
	elseif command == "mort" or command == "kill" or command == "die" then
114
		tfm.exec.killPlayer(playerName)
115
    end
116
end
117
118
function eventSummoningEnd(playerName, type, x, y, angle, xspeed, yspeed, object)
119
    if freeRound == true then
120
        ui.addTextArea(101, phrases[math.random(#phrases)], playerName, 5, 21, 150)
121
    else
122
        if maxSummon - itemUsages[playerName] == 0 then
123
            for playerName in pairs(tfm.get.room.playerList) do
124
                if tfm.get.room.playerList[playerName].isShaman then
125
                    ui.removeTextArea(100, playerName)
126
                    ui.addTextArea(102, "<p align='center'>« Vous-avez utilisé tout vos objets. Dommage. »</p>", playerName, 250, 21, 300)
127
                else
128
                    ui.removeTextArea(100, nil)
129
                    ui.addTextArea(103, "<p align='center'>« Votre chamane a utilisé tout ses objets. Il ne peut plus invoquer. »</p>", nil, 250, 21, 350)
130
                end
131
            end
132
            tfm.exec.removeObject(object.id)
133
        elseif object.id == 0 then
134
            -- Nothing.
135
        else
136
            itemUsages[playerName] = itemUsages[playerName] + 1
137
        end
138
    end
139
end
140
141
function eventPlayerWon(playerName)
142
	if tfm.get.room.playerList[playerName].isShaman then
143
		nextMap = maps[math.random(#maps)]
144
		if nextMap ~= currentMap then
145
			tfm.exec.newGame(nextMap)
146
			currentMap = nextMap
147
		else
148
			nextMap = maps[math.random(#maps)]
149
			tfm.exec.newGame(nextMap)
150
			currentMap = nextMap
151
		end
152
	end
153
end
154
155
function eventPlayerDied()
156
	local i=0
157
	for n,player in pairs(tfm.get.room.playerList) do
158
		if not player.isDead then
159
			i=i+1
160
		end
161
	end
162
	if i==0 then
163
		tfm.exec.newGame(maps[math.random(#maps)])
164
	end
165
end