×

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
  • /
  • [Aide] Demandes de codes et d'explications
« ‹ 69 / 70 › »
[Aide] Demandes de codes et d'explications
Athesdrake
« Citoyen »
1531665000000
    • Athesdrake#0000
    • Profil
    • Derniers messages
    • Tribu
#1361
  0
Mistigrounet a dit :

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
jeu = {1, 2, 2, 3, 4, 5}
joueurs = {}
jeu2 = {}

for pN in pairs (tfm.get.room.playerList) do -- 6 joueurs présents
joueurs[pN] = 0
end

for i = 1, #jeu do
r = math.random (1, #jeu)
jeu2[i] = jeu[r]
table.remove(jeu, r)
end

k = 1
for pN in pairs (tfm.get.room.playerList) do
joueurs[pN] = jeu2[k]
k = k + 1
end

Je suppose qu'il y a plus simple mais ça à l'air de fonctionner comme ça xD

Bien joué, tu as résolu ton problème tout seul. ^^
C'est très important de savoir résoudre ce genre de problème, surtout quand on comprend ce que l'on a fait.

La deuxième étape est l'optimisation du code ^^
Effectivement, on peut voir que tu fais 3 boucles dans ton code. Ça ne pose pas de problème avec 6 joueurs, mais imagine un peu avec 100 joueurs. Le code doit effectuer 3 boucles, ce qui fait 300 opérations (100 opérations par boucle, il y a 100 joueurs et la table `jeu`contient des nombres de 1 à 100).

Pour optimiser ton code, il faut déjà voir ce qu'il y a de commun entre les 3 boucles et les transformer en 2 boucles ou 1 si on fait ça bien ;)
La première boucle est inutile, on met à 0 la valeur d'un joueur pour ensuite mettre une autre valeur dans la 3ème boucle.
Ensuite, on peut faire une "fusion" de la 2ème boucle avec la 3ème, en utilisant plus la table `jeu2` ni la variable `k`.
Cela donne ça:
Code Lua

1
2
3
4
5
6
7
8
jeu = {1, 2, 2, 3, 4, 5}
joueurs = {}

for pN in pairs (tfm.get.room.playerList) do
r = math.random (1, #jeu) -- On choisit un index aléatoire de la table `jeu`
joueurs[pN] = jeu[r] -- On donne la valeur (de la table `jeu` à l'index `r`) au joueur
table.remove(jeu, r) --On retire la valeur de la table
end

C'est pas beau l'optimisation ? ^^
J'espère que j'ai pas trop été incompréhensible et que ça va t'aider dans le future :P
Mistigrounet
« Consul »
1531665540000
    • Mistigrounet#0000
    • Profil
    • Derniers messages
    • Tribu
#1362
  0
C'est sur c'est plus pratique de raccourcir xD

Mais le fonctionnel avant l'optimisé !

Dernière modification le 1531729680000
Okamitamashi
« Citoyen »
1532097300000
    • Okamitamashi#1684
    • Profil
    • Derniers messages
    • Tribu
#1363
  0
Sorenhl a dit :
jpeux avoir la liste des polices qu'on peut utiliser???????

Arial
Comic Sans MS
Impact
Lucida Console
Tahoma
Verdana
Mangirl
« Censeur »
1532335140000
    • Mangirl#0103
    • Profil
    • Derniers messages
    • Tribu
#1364
  0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
for pseudo,joueur in pairs(tfm.get.room.playerList) do
tfm.exec.giveMeep(pseudo)
end

function eventChatCommand(pseudo, message)
if message:sub(0,5) == "carte" then
tfm.exec.newGame(message:sub(7))
end
end

function eventChatCommand(pseudo, message)
if message:sub(0,4) == "tuer" then
if message:sub(6) ~= "" then
tfm.exec.killPlayer(message:sub(6))
else
tfm.exec.killPlayer(pseudo)
end
end
end

function eventChatCommand(pseudo, message)
if message:sub(0,7) == "fromage" then
if message:sub(9) ~= "" then
tfm.exec.giveCheese(message:sub(9))
else
tfm.exec.giveCheese(pseudo)
end
end
end

tfm.exec.snow()

for pseudo,joueur in pairs(tfm.get.room.playerList) do
tfm.exec.setVampirePlayer(pseudo)
end

-- Vous devez remplacer "Pseudo" par le pseudo en question, et "7BF47E" par le code hex de la couleur
tfm.exec.setNameColor("Mouyna#0000", "338581")

-- Vous devez remplacer "Pseudo" par le pseudo en question, et "7BF47E" par le code hex de la couleur
tfm.exec.setNameColor("Mangirl#0103", "7A7687")


Voila un petit code test x))

sinnon comment faire pour que la neige reste ?

Dernière modification le 1532335320000
Znzm
« Citoyen »
1532949120000
    • Znzm#0000
    • Profil
    • Derniers messages
#1365
  0
Bonjour je voudrais savoir si je peux fusionner entre ces 2 modules :

- Le premier module : c'est un lua qui permet de controler le mouvements d'une souris.
Voici son code lua
https://pastebin.com/J3H0a0EP


- Le deuxième module : c'est le lua du module #football
https://pastebin.com/3pFG8fVG


Donc je voudrai savoir si j'peu melanger entre ces 2 modules... de sorte à ce que je puisse controler les mouvement d'une souris dans le module #football !

Merci pour votre aide !
Taekii
« Citoyen »
1534424040000
    • Taekii#9595
    • Profil
    • Derniers messages
    • Tribu
#1366
  0
Bonjour nous somme en train de crée un lua avec un ami mais je ne sais pas trop par quoi commencer et j'ai besoin d'aide car je ne suis qu'un débutant .

Merci ^^
Prince_zuko
« Citoyen »
1534425300000
    • Prince_zuko#0000
    • Profil
    • Derniers messages
    • Tribu
#1367
  0
Bonjour,

Moi et mon ami du dessus sommes novices et nous voudrions créer un module de balles aux prisonniers. Nous avons donc décrit les idées principales et cherché quelques codes pour un début très simple :
Nous souhaitons mettre en place une map qui ne change pas donc pas de time non plus, il n'y aura pas de chamane. Par contre il faudra redémarrer la partie si il ne reste qu'une seule souris à la fin de la partie.

tfm.exec.disableAutoShaman(true)
tfm.exec.disableAutoTimeLeft (true)

Ensuite, nous voulons mettre en place deux équipes, une rouge et une bleue (j'ai un peu regardé le code lua du module football, peut-être que je pourrais en reprendre quelques parties?).
La souris pourra lancer une balle avec espace. Donc il faut 'écouter' l’événement de la touche espace (presser et relâcher).

function eventKeyboard(playerName, keyCode, down, xPlayerPosition, yPlayerPosition)
for playerName in pairs(tfm.get.room.playerList) do
tfm.exec.bindKeyboard(playerName, 32, true, true) -- on écoute l'événement "touche espace pressée"
tfm.exec.bindKeyboard(playerName, 32, false, true) -- on écoute l'événement "touche espace relachée"
end

(32 est la clé de la touche espace)

Il y aura une souris qui reçoit la balle et à partir d'un certain rayon de pixels deux cas se proposent : soit elle réussi à faire espace dans un laps de temps assez court ce qui lui permet d'attraper la balle, soit elle ne réussi pas à faire espace dans ce laps de temps et elle se retrouve téléportée dans la case prison de la map. Mais je pense que nous verrons cette dernière partie plus tard. Pour l'instant j'aimerais vraiment poser les bases principales du code le plus simplement possible.

Merci de votre aide.
Mistigrounet
« Consul »
1534500060000
    • Mistigrounet#0000
    • Profil
    • Derniers messages
    • Tribu
#1368
  0
  • Mangirl
  • Znzm
  • K_n_b & Prince_zuko
Mangirl a dit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
for pseudo,joueur in pairs(tfm.get.room.playerList) do
tfm.exec.giveMeep(pseudo)
end

function eventChatCommand(pseudo, message)
if message:sub(0,5) == "carte" then
tfm.exec.newGame(message:sub(7))
end
end

function eventChatCommand(pseudo, message)
if message:sub(0,4) == "tuer" then
if message:sub(6) ~= "" then
tfm.exec.killPlayer(message:sub(6))
else
tfm.exec.killPlayer(pseudo)
end
end
end

function eventChatCommand(pseudo, message)
if message:sub(0,7) == "fromage" then
if message:sub(9) ~= "" then
tfm.exec.giveCheese(message:sub(9))
else
tfm.exec.giveCheese(pseudo)
end
end
end

tfm.exec.snow()

for pseudo,joueur in pairs(tfm.get.room.playerList) do
tfm.exec.setVampirePlayer(pseudo)
end

-- Vous devez remplacer "Pseudo" par le pseudo en question, et "7BF47E" par le code hex de la couleur
tfm.exec.setNameColor("Mouyna#0000", "338581")

-- Vous devez remplacer "Pseudo" par le pseudo en question, et "7BF47E" par le code hex de la couleur
tfm.exec.setNameColor("Mangirl#0103", "7A7687")


Voila un petit code test x))

sinnon comment faire pour que la neige reste ?


Code Lua

1
2
3
4
5
6
7
8
Ligne 31

tfm.exec.snow (time, snowBallPower)
-- time correspond au temps où la neige tombe [en seconde] (tu as rien mis donc par défaut c'est 60s)
-- snowBallPower correspond à la puissance des boules de neige (mais t'en as pas besoin donc laisse vide)

-- ducoup t'obtiens
tfm.exec.snow (999999999) -- neige pendant 31,7 ans (environ bien sur :D) ou jusqu'à que tu stop ton module :p
Znzm a dit :
Bonjour je voudrais savoir si je peux fusionner entre ces 2 modules :

- Le premier module : c'est un lua qui permet de controler le mouvements d'une souris.
Voici son code lua
https://pastebin.com/J3H0a0EP


- Le deuxième module : c'est le lua du module #football
https://pastebin.com/3pFG8fVG


Donc je voudrai savoir si j'peu melanger entre ces 2 modules... de sorte à ce que je puisse controler les mouvement d'une souris dans le module #football !

Merci pour votre aide !


Déjà tu as coupé le premier module (il est incomplet sur ton lien) donc faut prendre lui https://pastebin.com/A61NNzgX
Après j'ai essayé, le contrôle de l'autre fonctionne mais football fonctionne pas car il comporte des éléments de code qu'on ne peut pas utilisé si on n'est pas dans la lua team (comme le system.newTimer L407)
Désolé :[
K_n_b a dit :
Bonjour nous somme en train de crée un lua avec un ami mais je ne sais pas trop par quoi commencer et j'ai besoin d'aide car je ne suis qu'un débutant .

Merci ^^

Prince_zuko a dit :
Bonjour,

Moi et mon ami du dessus sommes novices et nous voudrions créer un module de balles aux prisonniers. Nous avons donc décrit les idées principales et cherché quelques codes pour un début très simple :
Nous souhaitons mettre en place une map qui ne change pas donc pas de time non plus, il n'y aura pas de chamane. Par contre il faudra redémarrer la partie si il ne reste qu'une seule souris à la fin de la partie.

tfm.exec.disableAutoShaman(true)
tfm.exec.disableAutoTimeLeft (true)

Ensuite, nous voulons mettre en place deux équipes, une rouge et une bleue (j'ai un peu regardé le code lua du module football, peut-être que je pourrais en reprendre quelques parties?).
La souris pourra lancer une balle avec espace. Donc il faut 'écouter' l’événement de la touche espace (presser et relâcher).

function eventKeyboard(playerName, keyCode, down, xPlayerPosition, yPlayerPosition)
for playerName in pairs(tfm.get.room.playerList) do
tfm.exec.bindKeyboard(playerName, 32, true, true) -- on écoute l'événement "touche espace pressée"
tfm.exec.bindKeyboard(playerName, 32, false, true) -- on écoute l'événement "touche espace relachée"
end

(32 est la clé de la touche espace)

Il y aura une souris qui reçoit la balle et à partir d'un certain rayon de pixels deux cas se proposent : soit elle réussi à faire espace dans un laps de temps assez court ce qui lui permet d'attraper la balle, soit elle ne réussi pas à faire espace dans ce laps de temps et elle se retrouve téléportée dans la case prison de la map. Mais je pense que nous verrons cette dernière partie plus tard. Pour l'instant j'aimerais vraiment poser les bases principales du code le plus simplement possible.

Merci de votre aide.


AutoTimeLeft n'empêche pas de changer de carte, c'est AutoNewGame pour ça :p

Pour le reset du minijeu, à 1 souris, vous comptez les "prisonniers" comme étant encore 'en vie' ou non ?

Pour les 2 équipes, faites attention à ce que vous prenez des modules, certains éléments sont utilisables uniquement par la lua team
> après à voir si vous voulez faire les équipes manuellement (chacun choisi son équipe) ou séléction aléatoire

J'ai jamais fait de code comme ça (lancer une balle), faut choisir une vitesse et simuler un angle (lancer proche, loin, haut, bas, rapide, lent) me semble

Pour les deux cas, si être en prison = ne plus pouvoir jouer, possible de faire un rayon de R pixel autour des souris pour attraper la balle avec l'outil aie="" (dans le xml de la carte) qui permettrait de tuer une souris qui se prend la balle [mais faut une certaine puissance] (pour ensuite la faire respawn en prison)
Ou faire en sorte que la balle vivent X seconde après le lancer et qu'après elle disparaisse pour qu'elle soit redonné à une souris de l'équipe adverse (pareil avec la fonction aie="" pour savoir si une souris est touchée ou non
Je dis ça parce que je saurais pas comment vous aidez pour 2 rayons avec un temps
Prenons l'exemple de 2 souris proche et que la balle rentre dans le cercle de rayon R pour pouvoir attraper la balle, si aucune ne l'attrape, laquelle va en prison (ou après les deux mais vu que la balle est en mouvement, je suis pas sur que les coordonnées soient mises à jours assez rapidement [mais après j'ai jamais essayé :x])

Code Lua

1
2
3
4
5
6
7
8
9
10
11
tfm.exec.disableAutoNewGame (true)
tfm.exec.disableAutoShaman (true)

-- 1 souris = redemarrage
-- 2 équipes (Rouge / Bleu)
-- Balle = espace (32)
-- si Espace proche balle rayon = R1 survie + attrape
-- si Espace proche balle rayon = R2 prison
-- ou utilisation fonction aie=""

-- si j'ai bien compris ce que vous voulez

Dernière modification le 1534500180000
Znzm
« Citoyen »
1534507920000
    • Znzm#0000
    • Profil
    • Derniers messages
#1369
  0
Mistigrounet a dit :
[#Mangirl]
Mangirl a dit :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
for pseudo,joueur in pairs(tfm.get.room.playerList) do
tfm.exec.giveMeep(pseudo)
end

function eventChatCommand(pseudo, message)
if message:sub(0,5) == "carte" then
tfm.exec.newGame(message:sub(7))
end
end

function eventChatCommand(pseudo, message)
if message:sub(0,4) == "tuer" then
if message:sub(6) ~= "" then
tfm.exec.killPlayer(message:sub(6))
else
tfm.exec.killPlayer(pseudo)
end
end
end

function eventChatCommand(pseudo, message)
if message:sub(0,7) == "fromage" then
if message:sub(9) ~= "" then
tfm.exec.giveCheese(message:sub(9))
else
tfm.exec.giveCheese(pseudo)
end
end
end

tfm.exec.snow()

for pseudo,joueur in pairs(tfm.get.room.playerList) do
tfm.exec.setVampirePlayer(pseudo)
end

-- Vous devez remplacer "Pseudo" par le pseudo en question, et "7BF47E" par le code hex de la couleur
tfm.exec.setNameColor("Mouyna#0000", "338581")

-- Vous devez remplacer "Pseudo" par le pseudo en question, et "7BF47E" par le code hex de la couleur
tfm.exec.setNameColor("Mangirl#0103", "7A7687")


Voila un petit code test x))

sinnon comment faire pour que la neige reste ?


Code Lua

1
2
3
4
5
6
7
8
Ligne 31

tfm.exec.snow (time, snowBallPower)
-- time correspond au temps où la neige tombe [en seconde] (tu as rien mis donc par défaut c'est 60s)
-- snowBallPower correspond à la puissance des boules de neige (mais t'en as pas besoin donc laisse vide)

-- ducoup t'obtiens
tfm.exec.snow (999999999) -- neige pendant 31,7 ans (environ bien sur :D) ou jusqu'à que tu stop ton module :p
[/#Mangirl]





[#Znzm]
Znzm a dit :
Bonjour je voudrais savoir si je peux fusionner entre ces 2 modules :

- Le premier module : c'est un lua qui permet de controler le mouvements d'une souris.
Voici son code lua
https://pastebin.com/J3H0a0EP


- Le deuxième module : c'est le lua du module #football
https://pastebin.com/3pFG8fVG


Donc je voudrai savoir si j'peu melanger entre ces 2 modules... de sorte à ce que je puisse controler les mouvement d'une souris dans le module #football !

Merci pour votre aide !


Déjà tu as coupé le premier module (il est incomplet sur ton lien) donc faut prendre lui https://pastebin.com/A61NNzgX
Après j'ai essayé, le contrôle de l'autre fonctionne mais football fonctionne pas car il comporte des éléments de code qu'on ne peut pas utilisé si on n'est pas dans la lua team (comme le system.newTimer L407)
Désolé :[[/#Znzm]




[#K_n_b & Prince_zuko]
K_n_b a dit :
Bonjour nous somme en train de crée un lua avec un ami mais je ne sais pas trop par quoi commencer et j'ai besoin d'aide car je ne suis qu'un débutant .

Merci ^^

Prince_zuko a dit :
Bonjour,

Moi et mon ami du dessus sommes novices et nous voudrions créer un module de balles aux prisonniers. Nous avons donc décrit les idées principales et cherché quelques codes pour un début très simple :
Nous souhaitons mettre en place une map qui ne change pas donc pas de time non plus, il n'y aura pas de chamane. Par contre il faudra redémarrer la partie si il ne reste qu'une seule souris à la fin de la partie.

tfm.exec.disableAutoShaman(true)
tfm.exec.disableAutoTimeLeft (true)

Ensuite, nous voulons mettre en place deux équipes, une rouge et une bleue (j'ai un peu regardé le code lua du module football, peut-être que je pourrais en reprendre quelques parties?).
La souris pourra lancer une balle avec espace. Donc il faut 'écouter' l’événement de la touche espace (presser et relâcher).

function eventKeyboard(playerName, keyCode, down, xPlayerPosition, yPlayerPosition)
for playerName in pairs(tfm.get.room.playerList) do
tfm.exec.bindKeyboard(playerName, 32, true, true) -- on écoute l'événement "touche espace pressée"
tfm.exec.bindKeyboard(playerName, 32, false, true) -- on écoute l'événement "touche espace relachée"
end

(32 est la clé de la touche espace)

Il y aura une souris qui reçoit la balle et à partir d'un certain rayon de pixels deux cas se proposent : soit elle réussi à faire espace dans un laps de temps assez court ce qui lui permet d'attraper la balle, soit elle ne réussi pas à faire espace dans ce laps de temps et elle se retrouve téléportée dans la case prison de la map. Mais je pense que nous verrons cette dernière partie plus tard. Pour l'instant j'aimerais vraiment poser les bases principales du code le plus simplement possible.

Merci de votre aide.


AutoTimeLeft n'empêche pas de changer de carte, c'est AutoNewGame pour ça :p

Pour le reset du minijeu, à 1 souris, vous comptez les "prisonniers" comme étant encore 'en vie' ou non ?

Pour les 2 équipes, faites attention à ce que vous prenez des modules, certains éléments sont utilisables uniquement par la lua team
> après à voir si vous voulez faire les équipes manuellement (chacun choisi son équipe) ou séléction aléatoire

J'ai jamais fait de code comme ça (lancer une balle), faut choisir une vitesse et simuler un angle (lancer proche, loin, haut, bas, rapide, lent) me semble

Pour les deux cas, si être en prison = ne plus pouvoir jouer, possible de faire un rayon de R pixel autour des souris pour attraper la balle avec l'outil aie="" (dans le xml de la carte) qui permettrait de tuer une souris qui se prend la balle [mais faut une certaine puissance] (pour ensuite la faire respawn en prison)
Ou faire en sorte que la balle vivent X seconde après le lancer et qu'après elle disparaisse pour qu'elle soit redonné à une souris de l'équipe adverse (pareil avec la fonction aie="" pour savoir si une souris est touchée ou non
Je dis ça parce que je saurais pas comment vous aidez pour 2 rayons avec un temps
Prenons l'exemple de 2 souris proche et que la balle rentre dans le cercle de rayon R pour pouvoir attraper la balle, si aucune ne l'attrape, laquelle va en prison (ou après les deux mais vu que la balle est en mouvement, je suis pas sur que les coordonnées soient mises à jours assez rapidement [mais après j'ai jamais essayé :x])

Code Lua

1
2
3
4
5
6
7
8
9
10
11
tfm.exec.disableAutoNewGame (true)
tfm.exec.disableAutoShaman (true)

-- 1 souris = redemarrage
-- 2 équipes (Rouge / Bleu)
-- Balle = espace (32)
-- si Espace proche balle rayon = R1 survie + attrape
-- si Espace proche balle rayon = R2 prison
-- ou utilisation fonction aie=""

-- si j'ai bien compris ce que vous voulez
[/#K_n_b & Prince_zuko]

Je vois merci !
Prince_zuko
« Citoyen »
1534523160000
    • Prince_zuko#0000
    • Profil
    • Derniers messages
    • Tribu
#1370
  0
À Mistigrounet :

D'abord je tiens à te remercier de ton aide précieuse car nous sommes juste des débutants.

En fait je pensais que comme il n'y a que deux minutes de jeu sur une map normale, je croyais qu'il fallait aussi bloquer le temps. Merci de la correction. :)

Pour l'instant on comptera les prisonniers comme étant morts puisque si il ne reste qu'une seule souris, la partie sera forcément terminée.

D'accord on ne reprendra pas de codes du module football.

Désolé en fait je n'ai pas très bien compris ce qu'est la fonction aie="" (comment on l'utilise?). Donc si j'ai bien compris, tu voudrais que la souris puisse attraper la balle dans un intervalle de rayon [R1, R2] et ne l'attrape pas si la balle est dans un rayon < à R2 ?

En fait j'aimerais d'abord démarrer en codant les deux teams. Je n'y avais pas pensé mais imaginons : 2 teams se battent et la team rouge par exemple gagne avec 5 souris vivantes, il faudra là aussi redémarrer la partie donc je pense qu'il faut d'abord faire des tables de teams, puis y compter le nombre de souris vivantes et si ce compteur est à 0, on pourra alors mettre un message de fin de la partie (la team Rouge a gagné! par exemple) puis redémarrer la partie.
Aussi, mon ami a dit qu'une partie ne pourra commencer qu'une fois qu'il y a au minimum deux souris (comme pour le cas du Loup Garou qui ne commence qu'à six joueurs minimum). En définitive, nous devrions commencer par coder les équipes rouge/bleu.

On reviendra plus tard sur le cas de la balle car je t'avoue qu'il faut que je trifouille un peu.

D'ailleurs je me demandais comment vous écriviez les codes Lua avec les lignes, pour que mes propos soient plus lisibles à l'avenir.
J'ajoute que si quelqu'un veut bien nous aider avec notre essai de module, nous prenons tous les conseils
Tortuegreen
« Censeur »
1534530540000
    • Tortuegreen#0000
    • Profil
    • Derniers messages
    • Tribu
#1371
  0
Si vous voulez gérer le nombre de joueurs en vie, vous devez imaginer toutes les situations qui peuvent modifier ce nombre (un joueur est fait prisonnier, quitte le salon, meurt). Je vous conseille de gérer tout ça dans une fonction, ce qui vous permettra en même temps de vérifier si ce nombre est égal à 1 (= reset de partie).

Pour afficher du code, on utilise ces balises forum : [code=lua][/code]
Prince_zuko
« Citoyen »
1534599720000
    • Prince_zuko#0000
    • Profil
    • Derniers messages
    • Tribu
#1372
  0
Bonjour,

J'ai commencé un peu, si vous pouviez vérifier

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
teamBleu={ vivants = {} , morts = {}, name = "équipe bleu", players={}}; -- pour l'instant les morts
teamRouge={ vivants = {}, morts = {}, name = "équipe rouge", players={}}; -- sont les prisonniers

function makeTeams()
local playerList={}
for name,player in pairs(tfm.get.room.playerList) do
table.insert(playerList,name)
end
for i=1,#playerList,1 do
local index=math.random(#playerList)
local name=playerList[index]
if i%2==0 then
table.insert(teamRouge,name)
else
table.insert(teamBleu,name)
end
table.remove(playerList,index)
end
end

function debutPartie()
if #teamBleu.players > 0 and #teamRouge.players > 0 then
tfm.exec.newGame(mapCode)
end
end

function finDePartie()
str1= Bleu
str2= Rouge
if #teamBleu.vivants~= 0 and #teamRouge.vivants ==0 then
str3= "L'équipe"..str1.."a gagné!"
print (str3)
tfm.exec.newGame(mapCode)
elseif #teamBleu.vivants == 0 and #teamRouge.vivants ~= 0 then
str4= "L'équipe"..str2.."a gagné!"
print (str4)
tfm.exec.newGame(mapCode)
end
end

Je vais chercher la fonction aie=""
Si il faut ajouter quelque chose pour ce début, dites le

Merci
Mistigrounet
« Consul »
1534603500000
    • Mistigrounet#0000
    • Profil
    • Derniers messages
    • Tribu
#1373
  0
La fonction aie="" est à ajouter au début du xml de la carte du module (ou des cartes)

<C><P aie="" /><Z><S><S L="50" H="50" X="400" Y="350" T="0" P="0,0,0.3,0.2,0,0,0,0" /></S><D /><O /></Z></C>

Code Lua

1
2
3
4
--Ligne 13 et 15

table.insert (teamRouge.vivants)
--si tu veux les mettre dans vivants, parce que ça les mets dans teamRouge sinon (t'as accès après avec teamRouge.vivants[1] pour le 1er de la table)

Dernière modification le 1534604400000
Soyloquisha
« Citoyen »
1546846020000
    • Soyloquisha#0000
    • Profil
    • Derniers messages
    • Tribu
#1374
  0
Un script qui lorsque toutes les souris meurent et 2 sont laissés, les deux gagnent automatiquement.
Athesdrake
« Citoyen »
1546880160000
    • Athesdrake#0000
    • Profil
    • Derniers messages
    • Tribu
#1375
  0
Soyloquisha a dit :
Un script qui lorsque toutes les souris meurent et 2 sont laissés, les deux gagnent automatiquement.

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function eventPlayerDied(n)
local players = {}
for pl, data in next, tfm.get.room.playerList do
if not data.isDead then
players[#players+1] = pl
end
end
if #players<=2 then
for _, pl in next, players do
tfm.exec.giveCheese(pl)
tfm.exec.playerVictory(pl)
end
end
end
Soyloquisha
« Citoyen »
1547016360000
    • Soyloquisha#0000
    • Profil
    • Derniers messages
    • Tribu
#1376
  0
Athesdrake a dit :
Soyloquisha a dit :
Un script qui lorsque toutes les souris meurent et 2 sont laissés, les deux gagnent automatiquement.

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function eventPlayerDied(n)
local players = {}
for pl, data in next, tfm.get.room.playerList do
if not data.isDead then
players[#players+1] = pl
end
end
if #players<=2 then
for _, pl in next, players do
tfm.exec.giveCheese(pl)
tfm.exec.playerVictory(pl)
end
end
end

Merci beaucoup Merci beaucoup!

J'ai aussi besoin de celui qui sans 3 souris ne commence pas le jeu.
Sourialp
« Citoyen »
1568531340000
    • Sourialp#0000
    • Profil
    • Derniers messages
    • Tribu
#1377
  0
Slt tlm ! Cela fait un baïe ^^
J'aimerais savoir si vous pourriez m'aider un peut;
Car j'aurai besoins d'une fonction delay() ou wait() pour 0,5 ou 0,25 s, pour faire un affichage de caractères fluide, sauf que... j'ai essayé différentes solution et cela ne fonctionne pas, donc, est-ce que je m'y prend mal ? ou est-ce juste que nous n'avons pas le droit de faire de delay car on est restreint ?
(pck c pareil, faire un boucle infinie sa crash XD )
Mistigrounet
« Consul »
1568535780000
    • Mistigrounet#0000
    • Profil
    • Derniers messages
    • Tribu
#1378
  0
Tu as la fonction eventLoop (currentTime, timeRemaining) qui tourne en boucle toute les 0,5s environ, tu peux mettre des variables pour ce que tu souhaites, que ça s'active dans X conditions du style

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- action est par défaut sur 1 (inactif), lorsque l'action que tu veux faire patienter (ou la réponse d'une action), action passe à 0, qui augmente de 0,5s dans un premier tour de 0,5s puis la réponse se lance dans le second tour (donc après 0,5s) puis retourne à 1 (inactif) 

action = 1

-- reste à faire le déclenchement du délai

function eventLoop (cT, tR)
if action == 0,5 then
-- ce que tu veux faire après un délai de 0,5s environ
action = 1
elseif action == 0 then
action = action + 0,5
end
end

Sinon les fonctions timer() qui sont, je suppose plus précise, sont réservé aux membres de la lua team

J'espère que tu auras compris xD

Ok j'avais pas tout compris xD
En gros c'est faire un affichage de texte comme il y avait dans l'event lua piñata ? (si oui, ma solution n'est effectivement pas très adapté car trop lente)

Dernière modification le 1568535960000
Sourialp
« Citoyen »
1568572380000
    • Sourialp#0000
    • Profil
    • Derniers messages
    • Tribu
#1379
  0
Re, merci pour les infos
et tkt si tu n'as pas compris compris ^^, en gros je voulais faire affiché les lettres d'un texte une par une, au lieu d'affiché tous un pavé d'un coup XD
Mais bon une lettre / 0,5 s c un peut long, alors à la limite je peut éssayé de faire mot par mot
(et ce que tu ma donner ne fonction point... donc jsp si c moi qui l'utilise mal mais bon ... ^^')
sinon en att g réussi à faire un semblant de chargement XD tenez :

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function main()
end


LOADING = 1
n=1
function eventLoop (cT, tR)
if LOADING == 1 then
ui.addPopup(1, 0, string.sub ("||||||||||", 1,n), nil, 150, 200, 500, 1000, true)
n=n+1
if n > 10 then
n =0
end
end
end

main()


Sourialp
« Citoyen »
1568653200000
    • Sourialp#0000
    • Profil
    • Derniers messages
    • Tribu
#1380
  0
Re
(dsl double post, mais c pour montrer qu'il y a du new ^^' )

Alors finalement je me suis débrouiller avec l'eventloop (merci de m'avoir rappeler sont existance XD ), pour afficher une ligne toute les 0,5s d'un texte écrit dans une variable (qui est donc plutôt raisonnable ).
Et pour ce j'utilise un string.sub me permettant de trouver les limitation de ma ligne que j'ais définie comme "-"

Après jsp si c ouf ou non mais bon sa évite les pavés, le code ->
Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function main()
end

write_that = "- Bonjour tout le mondeee eeeee- - Bonjour tout le mondeee eeeee- - Bonjour tout le mondeee eeeee- - Bonjour tout le mondeee eeeee- - Bonjour tout le mondeee eeeee- - Bonjour tout le mondeee eeeee- "

n=0
old_n = 0


function eventLoop ()
n = string.find(write_that, "-", string.find(write_that, "-", old_n+1)+1) -- c chelou mais en gros un string(blablabla) me permet de trouver le premier "-" et donc le deuxieme l'autre "-" qui me permet de 'cadrer' une phrase ex: -bonjour tout le mondee ee -
old_n = n

ui.addTextArea ( 2, string.sub (write_that, 0,n), nil, 300, 150, 200, 100, 0x393939, 0x000000, 1.0, true )


if n == 197 then -- si valeur max alors on reset
n=0
old_n = 0
end
end


main()

Dernière modification le 1568658780000
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [Aide] Demandes de codes et d'explications
« ‹ 69 / 70 › »
© Atelier801 2018

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

Version 1.27