[Aide] Demandes de codes et d'explications |
Athesdrake « Citoyen » 1531665000000
| 0 | ||
Mistigrounet a dit : 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} 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
| 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
| 0 | ||
Sorenhl a dit : Arial Comic Sans MS Impact Lucida Console Tahoma Verdana |
Mangirl « Censeur » 1532335140000
| 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 Voila un petit code test x)) sinnon comment faire pour que la neige reste ? Dernière modification le 1532335320000 |
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
| 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
| 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
| 0 | ||
Mangirl a dit : Code Lua 1 2 3 4 5 6 7 8 Ligne 31 Znzm a dit : 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 : Prince_zuko a dit : 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) Dernière modification le 1534500180000 |
0 | ||
Mistigrounet a dit : Je vois merci ! |
Prince_zuko « Citoyen » 1534523160000
| 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
| 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
| 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 Je vais chercher la fonction aie="" Si il faut ajouter quelque chose pour ce début, dites le Merci |
Mistigrounet « Consul » 1534603500000
| 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 Dernière modification le 1534604400000 |
Soyloquisha « Citoyen » 1546846020000
| 0 | ||
Un script qui lorsque toutes les souris meurent et 2 sont laissés, les deux gagnent automatiquement. |
Athesdrake « Citoyen » 1546880160000
| 0 | ||
Soyloquisha a dit : Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 function eventPlayerDied(n) |
Soyloquisha « Citoyen » 1547016360000
| 0 | ||
Athesdrake a dit : Merci beaucoup Merci beaucoup! J'ai aussi besoin de celui qui sans 3 souris ne commence pas le jeu. |
Sourialp « Citoyen » 1568531340000
| 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
| 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) 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
| 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() |
Sourialp « Citoyen » 1568653200000
| 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() Dernière modification le 1568658780000 |