Voserv Posté(e) le 21 juin 2015 Posté(e) le 21 juin 2015 Bonjour, Nous allons entrer dans mon premier tutoriel pour les Skripteurs avancés. Si vous êtes débutants, veuillez d'abord apprendre les bases, et regarder des tutoriels. Je vous invite à aller voir mes tutoriels pour débutants ici: Créer des menus > http://skript-mc.fr/forum/index.php?threads/d%C3%A9butant-cr%C3%A9er-un-inventaire.74/ Les loops > http://skript-mc.fr/forum/index.php?threads/d%C3%A9butant-les-loops.57/ Les variables > http://skript-mc.fr/forum/index.php?threads/d%C3%A9butant-les-variables.52/ Les commandes > http://skript-mc.fr/forum/index.php?threads/d%C3%A9butant-les-commandes.53/#post-355 La première partie se trouve ici: http://skript-mc.fr/forum/index.php?threads/avanc%C3%A9-cr%C3%A9er-un-minigame-commande-pour-rejoindre.104/ III/Une commande pour quitter: C'est la même chose, mais en sens inverse. Nous allons repartir du même principe: command /game <text>: trigger: if argument 1 is "leave": if {game.%player%.join} is false: send "&cVous n'êtes pas en jeu !" stop Pour commençer, nous débutons par cela. Si la variable {game.%player%.join} est en false, il considère que le joueur n'est pas en jeu. Donc grâce à cette condition, on peux détecter si le joueur n'est pas en jeu. Si non, le message d'erreur lui est communiqué. Ensuite, il ne reste plus qu'a faire que cela retire un slot et que le joueur soit considéré comme n'étant plus en jeu: command /game <text>: trigger: if argument 1 is "leave": if {game.%player%.join} is false: send "&cVous n'êtes pas en jeu !" stop set {game.%player%.join} to false teleport player to spawn remove 1 from {game.slots} Là, nous avons fait que le joueur soit téléporté au spawn et que cela retire "1" dans la variable {game.slots}, pour indiquer qu'un joueur est parti. Il est aussi important de mettre "set {game.%player%.join} to false" pour indiquer que le joueur n'est plus en jeu. Mais on ne s'arrête pas là, car imaginez qu'il reste deux joueurs en partie et que l'un des deux quitte, le jeu reseterait bloqué. Il faut donc faire que si un joueur quitte et qu'il ne reste plus qu'un joueur, ce soit le dernier joueur qui gagne. Pour cela nous allons devoir utiliser les loop, avec "loop all players" et détecter si "{game.%loop-player%.join}" est activé ou non: command /game <text>: trigger: if argument 1 is "leave": if {game.%player%.join} is false: send "&cVous n'êtes pas en jeu !" stop set {game.%player%.join} to false teleport player to spawn remove 1 from {game.slots} wait 1 tick if {game.slots} is 1: loop all players: if {game.%loop-player%.join} is true: broadcast "%loop-player% a gagné !" teleport loop-player to spawn Grâce à cette partie: if {game.slots} is 1: loop all players: if {game.%loop-player%.join} is true: broadcast "%loop-player% a gagné !" teleport loop-player to spawn set {game.start} to false set {game.%loop-player%.join} to false set {game.slots} to 0 Il est important de désactiver {game.start} pour dire que la partie est terminée ! Nous pouvons détecter si il ne reste plus qu'un joueur. Grâce au "loop all players", nous sélectionnons tout les joueurs. Ensuite on fait un tri, entre ceux qui ont {game.%loop-player%.join} activé et ceux qu'il ne l'ont pas. Soyons logiques, si un joueur quitte, cela retire un slot, si il ne reste plus qu'un joueur, ce dernier joueur doit avoir sa variable encore activée. Donc grâce au "loop all players" et à sa condition nous pouvons détecter le dernier joueur qui est encore là. III/Lors de la mort d'un joueur Comme quand on quitte, il faut faire que si le joueur meurt, qu'il ne soit plus considéré comme étant en jeu et il faut faire que si il ne reste plus qu'un dernier joueur en vie, que ce soit lui le gagnant. Nous allons donc utiliser l'event "on death of player": on death of player: remove 1 from {game.slots} set {game.%victim%.join} to false broadcast "&a%victim% &ea été tué par &a%attacker% Il est important d'utiliser victim et attacker car c'est un event de mort (on death), cela fonctionne aussi pour "on damage". Comme quand on quitte, cela fait que sa variable soit désactivée et que cela enlève "1" de la variable {game.slots}. Après, nous allons devoir faire comme la commande "/game leave", faire que si il reste un dernier joueur, que ce soit lui le gagnant, pour cela nous allons faire: on death of player: remove 1 from {game.slots} set {game.%victim%.join} to false broadcast "&a%victim% &ea été tué par &a%attacker% if {game.slots} is 1: broadcast "&e%attacker% a gagné la partie !" teleport attacker to spawn set {game.start} to false set {game.slots} to 0 set {game.%attacker%.join} to false Là, si il ne reste plus qu'un slot, le dernier joueur (celui qui a tué) gagnera la partie. Il est important de noter que dans cet event, il n'y a pas besoin d'utiliser "loop all players" car c'est le dernier joueur qui tue l'autre qui gagne. 3
Voserv Posté(e) le 22 juin 2015 Auteur Posté(e) le 22 juin 2015 Merci :D Je suis heureux d'aider les joueurs :)
Azen Posté(e) le 22 juin 2015 Posté(e) le 22 juin 2015 Bien expliqué, même si je n'en ai pas besoin, bravo pour le temps que tu passe là dessus ! :) J'aime !
TheDarkDeimon Posté(e) le 22 juin 2015 Posté(e) le 22 juin 2015 Merci beaucoup sa ma permis de faire la base de DaC maintennt il ne me manque plus cas reset la map a chaque fois :D
MinePlugins Posté(e) le 26 juin 2015 Posté(e) le 26 juin 2015 Bien pour ce qui veulent ce lancé a toutte allure dans un mini-jeu
Im_PasteK Posté(e) le 29 juin 2015 Posté(e) le 29 juin 2015 Super tuto ! On va enfin commencer notre projet
Im_PasteK Posté(e) le 30 juin 2015 Posté(e) le 30 juin 2015 Il faudrait ajouter le /fstart (forcer la partie a se lancer) et /vote (le fait de voter permet de demarrer la partie plus rapidement il faut que la majorité des joueurs votent pour lancer) Je vais essayer tout à l'heure car là j'ai pas le temps :/ Sinon il faudrait faire un système de teams. (En attendant le debut du jeu, permettre de choisir sa team) et être tp entre teams ! Comme un UHC par exemple !
ISoulBlade Posté(e) le 5 décembre 2015 Posté(e) le 5 décembre 2015 J'aimerais savoir, pour une équipe je fais comment ? Pour que c'est l'équipe qui gagne et pas que le joueur.
Snowach Posté(e) le 5 décembre 2015 Posté(e) le 5 décembre 2015 Tu créée une variable pour chaque équipe dans ce cas ^^
ISoulBlade Posté(e) le 5 décembre 2015 Posté(e) le 5 décembre 2015 Tu créée une variable pour chaque équipe dans ce cas ^^ Et quel est cette variable ? ^^
Snowach Posté(e) le 5 décembre 2015 Posté(e) le 5 décembre 2015 Et quel est cette variable ? ^^ Celle que tu vas créé évidemment -.- Regarde d'abord des tutoriels sur les bases de skript.
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant