Minecraft Wiki
Mondemen (discussion | contributions)
mAucun résumé des modifications
Mondemen (discussion | contributions)
Aucun résumé des modifications
Ligne 17 : Ligne 17 :
 
* Pour un même système fait avec des [[bloc de commande|blocs de commande]] ou une fonction, l’exécution de la fonction sera plus optimisée et générera moins de ''lags'' que les [[bloc de commande|blocs de commande]].
 
* Pour un même système fait avec des [[bloc de commande|blocs de commande]] ou une fonction, l’exécution de la fonction sera plus optimisée et générera moins de ''lags'' que les [[bloc de commande|blocs de commande]].
 
* Les fonctions peuvent vous permettre de créer des commandes personnalisables à l'aide de la commande {{cmd|function}}.
 
* Les fonctions peuvent vous permettre de créer des commandes personnalisables à l'aide de la commande {{cmd|function}}.
 
* L'utilisation de récursivité (invoquer des fonctions en boucle) est possible et ne génère normalement ni crash ni lag.
* Dans votre fichier de fonction, chaque commande doit être écrite sur une ligne (une ligne vierge ou ne contenant qu'un commentaire sera ignorée) et ne doit pas être précédée par un "/" (slash).
 
  +
* Vous pouvez dorénavant colorer vos commandes (exemple: noms personnalisés, nom de scoreboard, etc...) qui utilise le système de code couleur du jeu directement dans les fichiers <code>.mcfunction</code>. Avant vous n'aviez pas d'autre choix que d'utiliser des programmes externes comme MCEdit et autres.
* L'utilisation de récursivité (invoquer des fonctions en boucle) est possible et ne génère normalement ni crash ni lag. (Si la correction du bug [https://bugs.mojang.com/browse/MC-117581 MC-117581] est faite d'ici la sortie final de la 1.12)
 
   
 
En revanche, les fonctions manquent d'une fonctionnalité pouvant être importante pour certains systèmes, le principe de [[bloc de commande|bloc de commande]] conditionnel. Il peut néanmoins être reproduit à l'aide de [[Tableau de score|tableau de score]] et de la commande {{cmd|stats}} mais cela devient plus complexe à mettre en place et à utiliser.
 
En revanche, les fonctions manquent d'une fonctionnalité pouvant être importante pour certains systèmes, le principe de [[bloc de commande|bloc de commande]] conditionnel. Il peut néanmoins être reproduit à l'aide de [[Tableau de score|tableau de score]] et de la commande {{cmd|stats}} mais cela devient plus complexe à mettre en place et à utiliser.
Ligne 43 : Ligne 43 :
 
}
 
}
 
}
 
}
  +
  +
== Notes diverses ==
 
* Dans votre fichier de fonction, chaque commande doit être écrite sur une ligne (une ligne vierge ou ne contenant qu'un commentaire sera ignorée) et ne doit pas être précédée par un "/" (slash).
   
 
== Historique ==
 
== Historique ==

Version du 18 mai 2017 à 17:50

Modèle:Ordinateur

Pousse de chêne
Cet article est une ébauche. 
Vous pouvez partager vos connaissances en l'améliorant.
Bloc d'herbe
Cette page concerne des fonctionnalités qui seront ajoutées dans la prochaine mise à jour. 
Ces fonctionnalités sont apparues dans des versions de développement, mais la mise à jour complète contenant ces fonctionnalités n'est pas encore sortie.

Les fonctions sont une fonctionnalité à venir permettant aux joueurs de créer facilement des scripts de commandes.

Utilisation

Les fonctions sont des fichiers texte créés par des joueurs contenant des commandes. Pour utiliser les fonctions sur votre monde, vous devez placer vos fichiers dans le dossier data/functions de votre monde. Il existe actuellement trois façons d'exécuter des fonctions. Pour chacune d'entre elles, la fonction à exécuter doit être spécifiée en utilisant namespace:chemin/vers/la/fonction. Par exemple custom:example/test fait référence à la fonction située dans data/functions/custom/example/test.mcfunction.

Une fonction doit obligatoirement être placée dans un sous-dossier, par exemple, si le chemin est data/functions/test.mcfunction, elle ne sera pas chargée par le jeu, en revanche data/functions/custom/test.mcfunction. Il faut aussi que les fichiers de fonctions utilisent l'extension .mcfunction.

Utiliser les fonctions présente de nombreux avantages.

  • Vous pouvez réduire la taille de vos systèmes de blocs de commande en créant des fonctions contenant un tas de commandes dépendantes les unes des autres et potentiellement utilisables dans plusieurs systèmes.
  • Simplifier la création de vos systèmes, vous pouvez déplacer, supprimer, ajouter et même commenter (avec # commentaire, la syntaxe // n'est plus supportée depuis la pré-release 1.12-pre3) des commandes au milieu de votre système sans devoir faire la même chose avec les blocs de commande, ce qui peut vite devenir un véritable casse-tête.
  • Pour un même système fait avec des blocs de commande ou une fonction, l’exécution de la fonction sera plus optimisée et générera moins de lags que les blocs de commande.
  • Les fonctions peuvent vous permettre de créer des commandes personnalisables à l'aide de la commande /function.
  • L'utilisation de récursivité (invoquer des fonctions en boucle) est possible et ne génère normalement ni crash ni lag.
  • Vous pouvez dorénavant colorer vos commandes (exemple: noms personnalisés, nom de scoreboard, etc...) qui utilise le système de code couleur du jeu directement dans les fichiers .mcfunction. Avant vous n'aviez pas d'autre choix que d'utiliser des programmes externes comme MCEdit et autres.

En revanche, les fonctions manquent d'une fonctionnalité pouvant être importante pour certains systèmes, le principe de bloc de commande conditionnel. Il peut néanmoins être reproduit à l'aide de tableau de score et de la commande /stats mais cela devient plus complexe à mettre en place et à utiliser.

/function

La commande /function permet au joueur d’exécuter la fonction une seule fois. Les commandes dans la fonction sont exécutées en tant qu'entité ou bloc de commande qui a exécuté la commande /function.

/function <namespace:chemin/vers/la/fonction>

/gamerule gameLoopFunction

La règle de jeu /gamerule gameLoopFunction exécute la fonction à chaque tick. Les commandes de la fonction sont exécutées par le serveur lui-même, de la même façon que les commandes que vous exécutez dans la console de votre serveur.

/gamerule gameLoopFunction <namespace:chemin/vers/la/fonction>

Récompenses des progrès

Les progrès peuvent exécuter une fonction en tant que récompense lorsque les conditions sont respectées. Les commandes de la fonction sont exécutées par le joueur ayant complété le progrès.

{
    "rewards": {
        "function": "namespace:chemin/vers/la/fonction"
    }
}

Notes diverses

  • Dans votre fichier de fonction, chaque commande doit être écrite sur une ligne (une ligne vierge ou ne contenant qu'un commentaire sera ignorée) et ne doit pas être précédée par un "/" (slash).

Historique

À venir (Version Java)
1.121.12-pre1Ajout des fonctions.
1.12-pre3Les fichiers utilisent désormais l'extension .mcfunction.

Les commandes ne doivent pas commencer par un / (slash).

Les commentaires ne peuvent plus commencer par //.

L'usage de récursivité est possible.