command /smelt:
trigger:
if command sender is a player:
loop all items in inventory of player:
if loop-item is iron ore:
set loop-item to iron ingot
else if loop-item is gold ore:
set loop-item to gold ingot
send "&aTous les minerais de fer et d'or de votre inventaire ont été fondus!" to player
Salut ! Comment faire un compte à rebours sur skriptSalut à tous!
Je vous propose aujourd'hui un grand tuto sur le plugin Skript qui permet à son tour de faire des plugins pour Minecraft! N'hésitez pas à me dire ce qui ne vas pas ou ce qui est mal expliqué pour que je règle ça
Vous pouvez le télécharger ici: http://www.curse.com/bukkit-plugins/minecraft/skript
Qu'est ce que c'est??
Skript est un plugin qui permet de créer d'autres plugins pour votre serveur Minecraft mais en bien plus simple. Le langage est ici extrêmement simple. Les seules compétences à avoir pour pouvoir coder en Skript est de savoir parler un minimum anglais!
Mais pourquoi choisir Skript plutôt que le java par exemple?
Je vous ai fait ci-dessous un comparatif de l'un par rapport à l'autre:
Les avantages du Skript:
- Langage simple
- Création du plugin rapide (pas besoin de compilation)
- Pas besoin de reload TOUS le serveur pour reload un plugin
- Besoin seulement d'un éditeur de texte pour coder (pas d'IDE)
Les inconvénients:
- Implémentation d'API externe impossible (exemple: Citizens, WorldGuard, TagAPI etc...)
- Limite du code (exemple: les fonctions et les return ne son pas disponibles)
- Langage non universel (la publication d'un plugin en Skript est plus difficile qu'un plugin en java qui peut être mis facilement sur un serveur)
- Impossible de logger dans le fichier de log général
- Impossible de créer des fichiers de configuration à proprement parler (on verra ça plus tard)
Je vous ai fait une comparaison des deux languages
Pour annuler la casse d'un bloc si le joueur ne tient pas une pioche en diamant (exemple totalement pourri)
En Skript:
Code:on break: #Quand le bloc est cassé if player's tool is not diamond pickaxe: #Si le joueur ne tient pas une pioche en diamant cancel event # Annuler l'evenement
En Java:
Code:@EventHandler //Annontation public void onBreak(BlockBreakEvent e) Blablabla... [/SPOILER] ?
broadcast "&aLe jeu commence dans 1 minute"
wait 30 seconds
broadcast "&aLe jeu commence dans 30 secondes"
wait 10 seconds
broadcast "&aLe jeu commence dans 20 secondes"
wait 10 seconds
broadcast "&aLe jeu commence dans 10 secondes"
wait 5 seconds
broadcast "&aLe jeu commence dans 5 secondes"
wait 1 seconds
broadcast "&aLe jeu commence dans 4 secondes"
wait 1 seconds
broadcast "&aLe jeu commence dans 3 secondes"
wait 1 seconds
broadcast "&aLe jeu commence dans 2 secondes"
wait 1 seconds
broadcast "&aLe jeu commence dans 1 seconde"
wait 1 seconds
#Le code qui doit être executé après le compte à rebours
loop all players:
teleport loop-player to {spawn.game}
Merci infiniment !Tu dois utiliser l'effet "wait X times"
Un exemple de code:
Code:broadcast "&aLe jeu commence dans 1 minute" wait 30 seconds broadcast "&aLe jeu commence dans 30 secondes" wait 10 seconds broadcast "&aLe jeu commence dans 20 secondes" wait 10 seconds broadcast "&aLe jeu commence dans 10 secondes" wait 5 seconds broadcast "&aLe jeu commence dans 5 secondes" wait 1 seconds broadcast "&aLe jeu commence dans 4 secondes" wait 1 seconds broadcast "&aLe jeu commence dans 3 secondes" wait 1 seconds broadcast "&aLe jeu commence dans 2 secondes" wait 1 seconds broadcast "&aLe jeu commence dans 1 seconde" wait 1 seconds #Le code qui doit être executé après le compte à rebours
Par contre je vois souvent une erreur chez les Skripteurs débutants, c'est qu'à chaque fois qu'un joueur rejoint un mini-jeu, le code est exécuté que pour cette personne. Il faut utiliser à chaque groupes d'actions sans wait la fonction "loop all players:".
Par exemple:
Code:loop all players: teleport loop-player to {spawn.game}
Par contre comment faire pour qu'un message s'affiche en boucle jusqu'à ce que le joueur fasse la commande /ok ?Tu dois utiliser l'effet "wait X times"
Un exemple de code:
Code:broadcast "&aLe jeu commence dans 1 minute" wait 30 seconds broadcast "&aLe jeu commence dans 30 secondes" wait 10 seconds broadcast "&aLe jeu commence dans 20 secondes" wait 10 seconds broadcast "&aLe jeu commence dans 10 secondes" wait 5 seconds broadcast "&aLe jeu commence dans 5 secondes" wait 1 seconds broadcast "&aLe jeu commence dans 4 secondes" wait 1 seconds broadcast "&aLe jeu commence dans 3 secondes" wait 1 seconds broadcast "&aLe jeu commence dans 2 secondes" wait 1 seconds broadcast "&aLe jeu commence dans 1 seconde" wait 1 seconds #Le code qui doit être executé après le compte à rebours
Par contre je vois souvent une erreur chez les Skripteurs débutants, c'est qu'à chaque fois qu'un joueur rejoint un mini-jeu, le code est exécuté que pour cette personne. Il faut utiliser à chaque groupes d'actions sans wait la fonction "loop all players:".
Par exemple:
Code:loop all players: teleport loop-player to {spawn.game}