×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • Module tribu vs tribu (IT) pour Vanilla
Module tribu vs tribu (IT) pour Vanilla
V_incentsgm
« Citoyen »
1488060960000
    • V_incentsgm#0000
    • Profil
    • Derniers messages
    • Tribu
#1
  0
Bonjour, bonsoir, je vous présente "mon" module IT Vanilla. Mon entre guillemet car j'ai en fait repris un module similaire de racing (trouvé sur la chaîne YouTube de Pgmsule). J'y ai modifié les maps, rajouté une ligne pour désactiver les consommables troll, et mis en langue française (il était en anglais). Il vous servira bien sur à faire des matchs tribu vs tribu ( ou team vs team ). J'espère qu'il vous plaira :)

http://i.prntscr.com/d8639400d6584a85b80ff1e07a010fa5.png



Assurez vous d'avoir les droits nécessaires dans votre tribu pour pouvoir lancer le module, puis allez dans votre maison de tribu. Pour inviter quelqu'un dans la maison de tribu :
/inv pseudodujoueur

Vous devez copier/coller le script dans l'éditeur qui apparaîtra sur votre écran en écrivant la commande /lua
Une fois le code mis et les joueurs présents, cliquez sur valider pour lancer le module. Pour l'arrêter, /module stop
Vous devrez l'arrêter si vous voulez lancer une autre partie sinon le message annonçant la team gagnante restera là !
La toute première chose à faire sera de mettre votre pseudo entre guillemet à la 4è ligne du script
local ADMINISTRADOR = "votre pseudo"

local WINS = 20

et le nom des équipes
local names = {
"Equipe rouge",
"Equipe bleue"
}


Après avoir lancé le script, utilisez la commande !team1 Joueurs et !team2 Joueurs pour mettre les joueurs dans l'équipe voulue (les pseudos doivent se suivrent et avec un espace, par exemple pour mettre Ilovelevel et Vincentsgm dans l'équipe 2 : !team2 Ilovelevel Vincentsgm )

Vous n'aurez plus qu'à appuyer sur GO ! au milieu du tableau.

Tapez !np @codedelamap pour choisir la prochaine carte.

Tapez !score team1/team2 et le score que vous voulez mettre ( je veux mettre 10 points à l'équipe 1 : !score team1 10 ) si vous devez changer le score ( arbitrage par exemple ).

Tapez !pause pour mettre ou enlever une pause du module.

Voici le script :
tfm.exec.disableAutoShaman()
tfm.exec.disableAutoNewGame()
tfm.exec.disableAutoTimeLeft()

local ADMINISTRADOR = "Ilovelevel" -- CHEF DU MODULE
local WINS = 20 -- POINTS POUR GAGNER
system.disableChatCommandDisplay("np", true)
system.disableChatCommandDisplay("pause", true)
local names = {
"Equipe rouge",
"Equipe bleue"
}

local teams = {
[1] = {},
[2] = {},
}
local points = {
[1] = 0,
[2] = 0,
}
local isfirst = false
local gameRunning = false
local winTime = false
local playersInGame = {}
local maps = {
1, 2, 6, 10, 11, 12, 19, 22, 24, 26, 27, 30, 40, 41, 42, 44, 45, 49, 53, 55, 57, 58, 59, 61, 62, 67, 69, 70, 71, 73, 74, 75, 76, 77, 79, 80, 85, 86, 96, 100, 119, 121, 122, 123, 127, 138, 142, 145, 149, 150
}
local colors = {
[1] = "ff6347",
[2] = "19b5fe"
}
local queue = {}

function newMap()
local mapcode = maps[math.random(#maps)]
if #queue > 0 then
mapcode = queue[1]
table.remove(queue, 1)
end
tfm.exec.newGame(mapcode)
for player, data in pairs(tfm.get.room.playerList) do
if not playersInGame[player] then
tfm.exec.killPlayer(player)
end
end
tfm.exec.setGameTime(60)
tfm.exec.disablePhysicalConsumables (yes)
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'>L'équipe %s est vainqueur!\nBravo!", names[winner]), nil, 0, 171, 800, 500, 0, 0, 0, true)
ui.addTextArea(21, string.format("<p align='center'><font size='37' color='#000000'>L'équipe %s est vainqueur!\nBravo!", names[winner]), nil, 1, 170, 800, 500, 0, 0, 0, true)
ui.addTextArea(22, string.format("<p align='center'><font size='37'><font color='#FFFFFF'>L'équipe <font color='#%s'>%s</font> est vainqueur!\nBravo!", colors[winner], names[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 string.title(s)
return string.gsub(s, "%a", function(c)
return string.upper(c)
end, 1)
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
player = string.title(player)
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
player = string.title(player)
table.insert(teams[2], player)
playersInGame[player] = true
end
displayTeams()

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
elseif args[1] == "np" then
if args[2] then
table.insert(queue, args[2])
end
elseif args[1] == "pause" then
gameRunning = not gameRunning
if not gameRunning then
ui.addTextArea(90, "<p align='center'><font size='25'><R>P A U S E D", nil, 0, 200, 800, nil, 0, 0, 0, true)
tfm.exec.disableAutoTimeLeft(true)
else
ui.removeTextArea(90)
tfm.exec.disableAutoTimeLeft(false)
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()
local alive = 0
for k,v in pairs(tfm.get.room.playerList) do
if not v.isDead then
alive = alive+1
end
end
if alive < 2 then
tfm.exec.setGameTime(5)
end
end

Dernière modification le 1488114360000
Flottante
« Censeur »
1488061320000
    • Flottante#0000
    • Profil
    • Derniers messages
    • Tribu
#2
  0
C'est comme Tribewar à l'époque ! c'est fun
Survoltaje
« Censeur »
1488061680000
    • Survoltaje#0000
    • Profil
    • Derniers messages
    • Tribu
#3
  1
Il marche bien ! Enfin des it propres. Il faudrait vraiment une version 2.0 avec un cham et les maps constructions, je pense qu'il aura pas mal de succès, la plupart des gros joueurs sont des vanilleurs maintenant.

Dernière modification le 1488061740000
V_incentsgm
« Citoyen »
1488061800000
    • V_incentsgm#0000
    • Profil
    • Derniers messages
    • Tribu
#4
  0
Si tu veux remettre les chamanes et rajouter les map constructions supprime cette ligne (c'est la 1ère):
tfm.exec.disableAutoShaman()

et change la liste des maps ici
local maps = {
1, 2, 6, 10, 11, 12, 19, 22, 24, 26, 27, 30, 40, 41, 42, 44, 45, 49, 53, 55, 57, 58, 59, 61, 62, 67, 69, 70, 71, 73, 74, 75, 76, 77, 79, 80, 85, 86, 96, 100, 119, 121, 122, 123, 127, 138, 142, 145, 149, 150
}

Dernière modification le 1488114600000
Nicodoublet
« Citoyen »
1488065520000
    • Nicodoublet#0000
    • Profil
    • Derniers messages
    • Tribu
#5
  0
dans le script delete le map 0 sinon beau lua
Flottante
« Censeur »
1488065760000
    • Flottante#0000
    • Profil
    • Derniers messages
    • Tribu
#6
  0
J'ai essayer le module, il y a que des map vanilla ?
Boueuse
« Censeur »
1488065760000
    • Boueuse#0000
    • Profil
    • Derniers messages
    • Tribu
#7
  0
Il est super le module !
Survoltaje
« Censeur »
1488105840000
    • Survoltaje#0000
    • Profil
    • Derniers messages
    • Tribu
#8
  0
Ya un truc un peu lourd, c'est par exemple quand tout le monde meurt sauf moi, le temps passe à 4s et on peut pas finir la map alors que c'était un point gratuit.. Tu me diras l'arbitre peut changer les scores mais en 1v1 c'est chiant
V_incentsgm
« Citoyen »
1488114480000
    • V_incentsgm#0000
    • Profil
    • Derniers messages
    • Tribu
#9
  0
J'éditerais le post de temps en temps en prenant les remarques en compte et je vous dirais ce qui a changé X)
Oui il n'a que des map vanilla c'est le but ^^ Mais tu peux toujours en rajouter (sans le @ au début du code de la carte)

Dernière modification le 1488114720000
Survoltaje
« Censeur »
1488130800000
    • Survoltaje#0000
    • Profil
    • Derniers messages
    • Tribu
#10
  0
Tout en bas du code "if alive < 2" met 1 à la place de 2 ça devrait régler mon pb
Ambre8
« Consul »
1488160440000
    • Ambre8#0000
    • Profil
    • Derniers messages
    • Tribu
#11
  0
génial ton modulle
Ahbonnnmec
« Citoyen »
1620145500000
    • Ahbonnnmec#0614
    • Profil
    • Derniers messages
    • Tribu
#12
  0
Survoltaje a dit :
Ya un truc un peu lourd, c'est par exemple quand tout le monde meurt sauf moi, le temps passe à 4s et on peut pas finir la map alors que c'était un point gratuit.. Tu me diras l'arbitre peut changer les scores mais en 1v1 c'est chiant


pareilll
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • Module tribu vs tribu (IT) pour Vanilla
© Atelier801 2018

Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

Version 1.27