Overwatch 2

Présentation de la Forge d’Overwatch

Blizzard Entertainment

Créez vos propres modes de jeu grâce à la Forge ! Ce système de programmation simplifié enrichit considérablement les possibilités de personnalisation du navigateur de parties. Dans la Forge, vous pourrez créer des scripts pour ajouter des règles uniques à vos modes préférés d’Overwatch. Il est possible d’altérer les mouvements et les capacités des héros, de changer la façon dont les joueurs perdent ou gagnent des points de vie, et même d’afficher du texte dans certaines situations.

Voici un exemple de mode bouillonnant qu’il est possible de créer : Le sol, c’est de la lave ! Si votre héros pose le pied par terre, il prendra feu !

Table des matières

Accéder à la Forge

Pour accéder à la Forge, cliquez sur Jouer > Navigateur de parties > Créer > Paramètres > Forge.

Créer un script

Pour créer un script, vous devrez :

  1. Ajouter une règle
  2. Sélectionner un évènement
  3. Ajouter une condition (optionnel)
  4. Ajouter une action

Une fois acquitté de ces prérequis, vous pourrez ajouter autant de règles, de conditions et d’actions qu’il vous plaira, jusqu’à une certaine limite.

Ajouter une règle

Les règles sont les briques entièrement personnalisables qui constituent votre script. Chaque script doit comporter une ou plusieurs règles.

Chaque règle est adjointe d’un commentaire optionnel, et contient :

  • Évènement : définit le moment où la règle sera exécutée. Pour plus d’informations, consultez Sélectionner un évènement.
  • Conditions : une liste optionnelle de critères à remplir pour que la règle s’applique. Pour plus d’informations, consultez Ajouter une condition.
  • Actions : une liste de ce qui arrivera si l’évènement se déclenche et les conditions sont valides. Pour plus d’informations, consultez Ajouter une action .

Pour ajouter une règle, cliquez sur Ajouter une règle.

Sélectionner un évènement

Un évènement définit le moment où la règle sera exécutée. Lorsqu’un évènement a lieu en jeu, une instance de la règle est créée. Chaque instance évalue les conditions et exécute les actions, indépendamment des autres instances.

Une fois une règle créée dans l’éditeur, un évènement est automatiquement ajouté. Vous devez spécifier le type d’évènement souhaité.

Pour spécifier un type d’évènement :

  1. Cliquez sur le menu déroulant à côté du bouton « Évènement ».
  2. Sélectionnez une des options suivantes :

    Type d’évènement Commentaire
    Toute la partie - Tout le monde

    Crée une instance unique de cette règle au début de la partie. Cette instance reste active tout au long de la partie.

    • Comme l’instance reste active pendant toute la partie, il est possible que les conditions réussissent ou échouent. Lorsqu’une condition réussit pour la première fois, les actions seront exécutées.
    • Quand la liste de conditions échoue, puis réussit de nouveau, cela donnera lieu à une nouvelle tentative d’exécution des actions.
    Toute la partie - Chaque joueur

    Crée une instance de cette règle pour chaque joueur qui rejoint la partie. Cette instance reste active jusqu’au départ du joueur ou jusqu’à la fin de la partie. Chaque instance surveille et exécute les conditions et actions séparément.

    • Comme l’instance reste active tant que le joueur est dans la partie, il est possible que les conditions réussissent ou échouent. Lorsqu’une condition réussit pour la première fois, les actions seront exécutées.
    • Quand la liste de conditions échoue, puis réussit de nouveau, cela donnera lieu à une nouvelle tentative d’exécution des actions.
    Un joueur obtient une élimination

    Exécute la règle lorsqu’un joueur obtient une élimination. Une seule instance de la règle peut être active pour un joueur spécifique à un moment donné.

    • Lorsqu’un joueur élimine quelqu’un, les conditions sont vérifiées. Si chaque condition est confirmée, les actions sont exécutées. Si une seule échoue, les actions ne sont pas exécutées.
    Un joueur inflige un coup de grâce

    Exécute la règle lorsqu’un joueur inflige un coup de grâce. Une seule instance de la règle peut être active pour un joueur spécifique à un moment donné.

    • Lorsqu’un joueur porte un coup fatal à un adversaire, les conditions sont vérifiées. Si chaque condition est confirmée, les actions sont exécutées. Si une seule échoue, les actions ne sont pas exécutées.
    Un joueur inflige des dégâts

    Exécute la règle lorsqu’un joueur inflige des dégâts. Une seule instance de la règle peut être active pour un joueur spécifique à un moment donné.

    • Lorsqu’un joueur inflige des dégâts à un adversaire, les conditions sont vérifiées. Si chaque condition est confirmée, les actions sont exécutées. Si une seule échoue, les actions ne sont pas exécutées.
    Un joueur subit des dégâts

    Exécute la règle lorsqu’un joueur subit des dégâts. Une seule instance de la règle peut être active pour un joueur spécifique à un moment donné.

    • Lorsqu’un joueur subit des dégâts infligés par un adversaire, les conditions sont vérifiées. Si chaque condition est confirmée, les actions sont exécutées. Si une seule échoue, les actions ne sont pas exécutées.
    Un joueur meurt

    Exécute la règle lorsqu’un joueur est tué. Une seule instance de la règle peut être active pour un joueur spécifique à un moment donné.

    • Lorsqu’un joueur est tué, les conditions sont vérifiées. Si chaque condition est confirmée, les actions sont exécutées. Si une seule échoue, les actions ne sont pas exécutées.
  3. Si nécessaire, spécifiez l’équipe ou le joueur qui doit être affecté par cet évènement. Voici les options :

    Option Commentaire
    Toutes L’évènement s’applique à toutes les équipes, y compris les joueurs en modes Chacun pour soi.
    Équipe 1 (ou nom actuel de l’équipe) L’évènement s’applique uniquement aux membres de cette équipe.
    Équipe 2 (ou nom actuel de l’équipe) L’évènement s’applique uniquement aux membres de cette équipe.
    Option Commentaire
    Toutes L’évènement s’applique à tous les joueurs.
    Emplacements 0 à 5 L’évènement s’applique uniquement aux joueurs des emplacements spécifiés. Dans une partie en équipe, deux joueurs peuvent occuper un même emplacement (un pour chaque équipe).
    Emplacements 6 à 11 L’évènement s’applique uniquement aux joueurs des emplacements spécifiés. Uniquement valide en modes Chacun pour soi.
    Héros spécifique L’évènement s’applique uniquement aux joueurs qui sont apparus aux commandes de ce héros.

Ajouter une condition

Après avoir ajouté une règle et un évènement, vous avez la possibilité d’ajouter une ou plusieurs conditions. Les conditions consistent en une liste de critères devant être remplis, avant que la règle ne puisse exécuter sa liste d’actions. Si la condition dépend d’une règle avec comme type d’évènement « Toute la partie - Tout le monde » ou « Toute la partie - Chaque joueur », elle est soumise à une vérification constante afin de voir si elle est vraie. Si elle dépend d’une règle de tout autre type, elle est vérifiée chaque fois que l’évènement spécifié survient. Si une règle n’a pas de condition, la liste d’actions tentera une exécution dès que l’évènement se produit. Chaque condition est composée de deux valeurs, qui font appel à un opérateur pour comparer et vérifier si elles sont vraies ou non. Consultez la section Valeurs pour plus d’informations.

Pour ajouter une condition :

  1. Cliquez sur Ajouter, à côté de « Conditions ».
  2. Remplissez les champs « Valeur ».
    • Remarque : lorsqu’une valeur elle-même possède une entrée (comme la valeur « Héros de », qui doit connaître le joueur duquel acquérir le héros), l’entrée de cette valeur sera précisée en dessous, en alinéa.
  3. Sélectionnez un opérateur parmi les suivants :
    • == Est égal à
    • != N’est pas égal à
    • > Est supérieur à
    • >= Est supérieur ou égal à
    • < Est inférieur à
    • <= Est inférieur ou égal à

Cette équation vérifie si le nombre total de joueurs dans la partie est égal au nombre de joueurs en vie.

  • Valeur : « Nombre de joueurs en vie », vérifie le nombre total de joueurs en vie.
    • Équipe : « Équipe », vérifie tous les joueurs d’une équipe.
    • Équipe : « Toutes », vérifie tous les joueurs de toutes les équipes.
  • Opérateur : « == », ce qui signifie que la première valeur doit être égale à la seconde, pour que cette condition soit déclarée vraie.
  • Valeur : « Nombre de joueurs en vie », vérifie le nombre total de joueurs en vie.
    • Équipe : « Équipe », vérifie tous les joueurs d’une équipe.
    • Équipe : « Toutes », vérifie tous les joueurs de toutes les équipes.

Autres exemples

  • IsFlagBeingCarried(Victim) == False : le joueur tué ne devait pas porter le drapeau.
  • IsCrouching(Event Player) == True : le joueur pour qui l’évènement est actif doit être accroupi.
  • NumberOfFinalBlows(Attacker) > 10 :le joueur en attaque a obtenu plus de 10 coups fatals.

Ajouter une action

Les actions sont des éléments qui modifient la partie. Elles sont exécutées dans un ordre allant de haut en bas. Pour démarrer l’exécution de la liste d’actions :

  • L’évènement associé à la règle doit être survenu.
  • Toutes les conditions de la règle doivent être vraies (sauf s’il n’y a pas de condition).
    • Si le type d’évènement est défini comme « Toute la partie - Tout le monde » ou « Toute la partie - Chaque joueur », la liste d’actions sera exécutée lorsque chaque condition est remplie pour la première fois. Quand la liste de conditions échoue, puis réussit de nouveau, cela donnera lieu à une nouvelle tentative d’exécution des actions.

À l’exception de l’action d’attente, (voir Action d’attente pour plus d’informations), toutes les actions s’exécutent et se terminent immédiatement. Chaque action est composée de zéro entrée ou plus, qui décrivent la façon dont la partie est modifiée. À chaque entrée est attribuée une valeur, c’est-à-dire une information ou une instruction décrivant comment obtenir une information. Pour plus d’informations, consultez la section Valeurs.

Pour ajouter une action :

  1. Cliquez sur Ajouter, à côté de « Actions ».
  2. Sélectionnez une action, qui décrit comment la partie sera modifiée.
  3. Sélectionnez une valeur dans le menu déroulant pour chaque nouvelle entrée apparue.
    • Remarque : certaines actions créeront un objet ou un comportement continu. Ces actions peuvent posséder une entrée appelée « Réévaluation ». Cette entrée détermine si les autres entrées de cette action sont fixes (l’objet ou le comportement continu ne changera donc pas) ou dynamiques (ce qui signifie que l’objet ou le comportement continu change en même temps que la valeur assignée à l’entrée).

Actions

  • Mettre en pause le temps de jeu : met le temps de jeu actuel en pause.
  • Modifier la variable globale (T, Ajouter, 5) : Augmente la variable globale « T » de 5.
  • Définir l’invisibilité (joueur exécutant, ennemis) : rend le joueur exécutant cette règle invisible aux yeux de ses ennemis.

Actions avec une entrée de réévaluation

  • Créer une icône (Tous les joueurs(Toutes les équipes), Variable globale(P), Alerte, Position) : crée une icône d’alerte visible pour tous les joueurs à l’emplacement spécifié par la variable globale « P ». Réévalue constamment la position ; si la variable globale « P » change ultérieurement, la position de l’icône se déplacera au nouvel emplacement.
  • Créer une icône (Tous les joueurs(Toutes les équipes), Variable globale(P), Alerte, Aucune) : crée une icône d’alerte visible pour tous les joueurs à l’emplacement spécifié par la variable globale « P ». Ne réévalue rien ; même si la variable globale « P » change ultérieurement, la position de l’icône ne sera pas modifiée.

Types d’action

Il existe de nombreux types d’action, en voici quelques-uns utiles à connaître :

Boucle est une action qui redémarre l’exécution de la liste d’actions depuis le début. Il existe 4 types d’actions de boucle :

  • Boucle : redémarre toujours la liste d’actions.
  • Boucle si : redémarre la liste d’actions si l’entrée de condition de l’action est évaluée comme une valeur autre que 0 ou « Faux ».
  • Boucle si la condition est vraie : redémarre la liste d’actions si toutes les conditions de la règle sont actuellement validées.
  • Boucle si la condition est fausse : redémarre la liste d’actions si une des conditions de la règle échoue.

Les actions de boucle sont uniquement autorisées si l’exécution d’une action d’attente est garantie avant le démarrage de la liste d’actions.

Bon Mauvais

Ceci est correct, car il y a une attente avant la boucle.

Ceci est incorrect, car l’exécution se poursuivrait sans fin et sans attente.

Attente est une action qui force à attendre un certain temps avant l’exécution de l’action suivante. Le temps d’attente minimum est fixé à 0,25 seconde.

Il existe trois options de comportement pour l’action d’attente :

  • Ignorer la condition : si cette option est sélectionnée, l’exécution des actions ne peut pas être interrompue par des conditions ou d’autres évènements.
    • Si le type d’évènement est défini comme « Toute la partie - Tout le monde » ou « Toute la partie - Chaque joueur », les conditions transitionnant entre échec et réussite ne changeront rien à la partie.
    • Si l’évènement est de tout autre type, et qu’un évènement de ce type est déclenché par le même joueur exécutant, l’évènement est complètement ignoré.
  • Interrompre quand faux : si cette option est sélectionnée, l’exécution de la liste d’actions est stoppée si les conditions commencent à échouer.
  • Redémarrer quand vrai : si cette option est sélectionnée, l’exécution des actions reprendra à partir de la première action dans les cas suivants :
    • Le type d’évènement est défini comme « Toute la partie - Tout le monde » ou « Toute la partie - Chaque joueur », et les conditions transitionnent entre échec et réussite.
    • L’évènement est de tout autre type, un évènement est déclenché par le même joueur exécutant, et toutes les conditions sont remplies.

Informations supplémentaires

La valeur Chaîne de texte génère une chaîne de texte. Elle est dotée des entrées suivantes :

  • Chaîne de texte : le texte à afficher. Si le texte contient un chiffre entre accolades, celui-ci sera remplacé par la valeur attribuée à l’entrée correspondante.
  • {0} : la valeur qui sera convertie en texte avant de remplacer « {0} » dans la chaîne de texte. Cette valeur peut être de n’importe quel type.
  • {1} : la valeur qui sera convertie en texte avant de remplacer « {1} » dans la chaîne de texte. Cette valeur peut être de n’importe quel type.
  • {2} : la valeur qui sera convertie en texte avant de remplacer « {2} » dans la chaîne de texte. Cette valeur peut être de n’importe quel type.
  • String(“Hello”, Null, Null, Null) : produit la chaîne de texte « Bonjour ».
  • String(“{0} vs {1}”, Hero(Ana), Hero(Pharah), Null) : produit la chaîne de texte « Ana vs Pharah ».

Les chaînes de caractères peuvent être combinées pour former des chaînes plus complexes :

  • String(“{0} vs {1}”, Hero(Ana), String("{0} and {1}", Hero(Pharah), Hero(Genji), Null), Null) : produit la chaîne de texte « Ana vs Pharah et Genji ».

Les chaînes de texte ne peuvent pas être utilisées dans des conditions ou conservées dans des variables, car cela compliquerait les choses pour les joueurs jouant dans d’autres langues dans la même partie personnalisée.

Une valeur est une information (ou une instruction décrivant comment obtenir une information) attribuée à l’entrée d’une condition, une action ou une autre valeur. Les valeurs peuvent être combinées entre elles.

Il existe de très nombreuses valeurs, nous ne les détaillerons donc pas toutes ici. Cependant, elles sont présentées dans l’éditeur de la Forge. En voici quelques-unes que vous croiserez certainement :

Valeur Commentaire
Nombre Indique un nombre réel dans l’intervalle spécifié par l’entrée.
Vecteur Indique une valeur tridimensionnelle dans l’intervalle spécifié par l’entrée. Sert aux positions et aux directions.
Équipe Indique une équipe spécifique, comme « Équipe 1 », « Équipe 2 » ou « Toutes les équipes ».
Héros Indique un héros spécifique.
Non applicable Indique l’absence d’un joueur ou d’une entité.
Vrai Indique la valeur pour « Vrai ».
Faux Indique la valeur pour « Faux ».
Comparer Indique « Faux » ou « Vrai », selon si la comparaison décrite était vraie ou fausse.
Joueur exécutant Indique le joueur qui exécute l’instance de la règle, ou « Non applicable » si aucun joueur ne correspond.
Attaquant Indique l’attaquant pour l’instance de la règle, ou « Non applicable » s’il n’y a pas d’attaquant.
Victime Indique la victime pour l’instance de la règle, ou « Non applicable » s’il n’y a pas de victime.
Élément de tableau actuel Indique la valeur actuellement prise en compte, en cas d’utilisation conjointe avec la valeur « Si vrai pour n’importe quel », « Si vrai pour tous », « Tableau filtré » ou « Tableau trié ».

Une valeur peut être conservée dans un tableau, qui est un rassemblement de plusieurs valeurs.

  • Diverses actions et valeurs sont capables de créer ou modifier un tableau.
    • Par exemple, la valeur « Tous les joueurs » crée un tableau contenant tous les joueurs actuellement dans la partie.
    • Vous pouvez également créer vos propres tableaux avec l’opération « Ajouter au tableau » de l’action « Modifier une variable globale » ou « Modifier une variable de joueur ».
  • Si une entrée suppose un tableau mais reçoit un autre genre de valeur, la valeur est copiée dans un tableau constitué d’un seul élément, afin d’être utilisée par l’entrée. De même, si une entrée suppose un autre genre de valeur mais reçoit un tableau, la première valeur du tableau sera utilisée (ou 0, si le tableau est vide).

Une variable est un endroit où une valeur peut être conservée, puis récupérée ultérieurement. À l’exception des chaînes de texte, n’importe quelle valeur peut être conservée dans une variable. Toutes les variables commencent par une valeur numérique de 0.

Il existe deux types de variables dans un script :

  • Variable globale : il y a 26 variables globales, allant de A à Z. Chaque variable contient une valeur ou un tableau de valeurs séparé.
  • Variable de joueur : chaque joueur possède 26 variables, allant de A à Z. Chaque variable contient une valeur ou un tableau de valeurs séparé.

Une variable peut être soumise à trois opérations :

  • Définir : « Définir une variable globale » et « Définir une variable de joueur » attribuent une nouvelle valeur à la variable, remplaçant la valeur précédente.
  • Modifier : « Modifier une variable globale » et « Modifier une variable de joueur » modifient la valeur d’une variable à l’aide d’une opération arithmétique bien précise (comme « Addition », « Multiplication », etc.) ou d’une opération de tableau (« Ajouter », « Supprimer »).
  • Modifier progressivement : « Modifier une variable globale sur la durée », « Modifier une variable de joueur sur la durée », « Modifier une variable globale selon un taux » et « Modifier une variable de joueur selon un taux » altèrent graduellement la variable sur la durée ou selon un taux spécifié.
    • La valeur cible de la modification progressive peut correspondre à un nombre ou un vecteur (ou n’importe quelle valeur résultant en un nombre ou un vecteur).
      • Si la valeur cible correspond à un nombre, la valeur de la variable doit correspondre à un nombre avant le début de la modification progressive, pour que cette dernière puisse fonctionner correctement.
      • Si la valeur cible correspond à un vecteur, la valeur de la variable doit correspondre à un vecteur avant le début de la modification progressive, pour que cette dernière puisse fonctionner correctement.
      • Si la réévaluation est activée pour la valeur cible, la modification progressive sera ajustée en conséquence pour atteindre la valeur cible modifiée, même si cette valeur a déjà été atteinte précédemment. Pour plus d’informations sur la réévaluation, consultez la section Ajouter une action.
    • Vous pouvez annuler une modification progressive avec les actions « Arrêter de modifier une variable globale » et « Arrêter de modifier une variable de joueur ».
      • Lors de l’arrêt d’une modification progressive, la variable conserve sa valeur actuelle, qui peut être comprise entre sa valeur de base (au moment où la modification progressive a été lancée) et la valeur cible.

Exemples

Prêt à vous lancer ? Essayez donc de créer un de ces modes de jeu ! Nous vous détaillerons tout ce que vous devrez faire, et vous expliquerons pourquoi :

Nous allons vous guider dans la création du mode « Le sol, c’est de la lave », dans lequel les héros prennent feu et subissent des dégâts s’ils touchent le sol.

  1. Tout d’abord, assurons-nous que la partie sera disputée sur la/les carte(s) désirée(s).
    • Cliquez sur Jouer > Navigateur de parties > Créer > Paramètres> Cartes.
    • Sélectionnez la carte sur laquelle vous voulez tester le mode, et désactivez toutes les autres.
  2. Ensuite, lancez la Forge.
    • Cliquez sur Retour.
    • Cliquez sur Forge.
  3. Il est temps de créer un script ! Ajoutons notre première règle.
    • Cliquez sur Ajouter une règle.
    • Dans la section « Commentaire », saisissez Commencer à brûler en cas de contact avec le sol. Cela indique que cette règle est la raison pour laquelle les joueurs prennent feu s’ils touchent le sol.
    • Maintenant, changez le type d’évènement, afin de déterminer quand cette règle doit être exécutée.
      • Dans le menu déroulant « Évènement », sélectionnez Toute la partie - Chaque joueur. Cela indique que la règle sera évaluée séparément pour chaque joueur dans la partie.
      • Conservez les options par défaut dans les autres menus déroulants.
    • Ajoutons à présent une condition. Celle-ci déterminera si la règle est exécutée ou non. Vous pouvez également laisser ce champ vierge si vous voulez que la règle soit toujours exécutée !
      • Sous « Conditions », cliquez sur Ajouter.
      • Dans le premier menu déroulant « Valeur », sélectionnez Au sol. Cette valeur renverra un résultat « Vrai » lorsque le joueur se trouve au sol.
      • Conservez les options par défaut dans les autres menus déroulants, et cliquez sur OK.
        • « Joueur exécutant » signifie « le joueur qui fait actuellement l’objet de la règle ».
    • Enfin, ajoutons une action. Les actions sont la conséquence d’une condition vraie.
      • Cette action enflammera les héros qui mettent le pied au sol.
        • Sous « Actions », cliquez surAjouter.
        • Dans le menu déroulant des actions, sélectionnez Définir un statut.
        • Dans le menu déroulant des statuts, sélectionnez Enflammé.
        • Sous « Durée », réglez sur curseur sur 10 000.
        • Conservez les options par défaut dans les autres menus déroulants, et cliquez sur OK.
  4. Testons si votre héros prend feu au sol !
    • Cliquez deux fois sur Retour.
    • Sur l’écran « Créer une partie », cliquez sur Commencer.
    • Sélectionnez un héros.
    • Dès que vous apparaissez dans la partie, vous devriez être en feu.
    • Appuyez sur Echap, et cliquez sur Éditeur de la Forge pour continuer à construire votre script.
  5. Maintenant, ajoutons une autre règle, afin de nous assurer que les héros qui sautent ou se trouvent en l’air ne brûlent pas.
    • Au lieu d’ajouter une nouvelle règle depuis le début, copions la dernière créée.
    • À côté de la règle que vous avez créée, cliquez sur Copier.
      • Cliquez sur Coller.
      • Modifiez la description et saisissez Arrêter de brûler en l’air. Cela indique que cette règle est la raison pour laquelle les joueurs cessent de brûler s’ils sautent ou se trouvent en l’air.
      • Gardez le même type d’évènement.
      • À présent, éditons la condition. Celle-ci déterminera si la règle est exécutée ou non.
        • Cliquez sur la condition existante indiquant « Au sol(Joueur exécutant) == Vrai. »
        • Dans le menu déroulant « Valeur », sélectionnez Faux.
        • Laissez tous les autres menus déroulants sur leurs options actuelles, et cliquez sur OK.
      • Ensuite, éditons l’action. Cette action éteindra les flammes de votre héros s’il n’est plus en contact avec le sol.
        • Cliquez sur l’action existante indiquant « Définir un statut (Joueur exécutant, Non applicable, Enflammé, 10000) ».
        • Dans le menu déroulant des actions, sélectionnez Effacer le statut.
        • Dans le menu déroulant des statuts, sélectionnez Enflammé.
        • Laissez tous les autres menus déroulants sur leurs options actuelles, et cliquez sur OK.
  6. Voyons si le héros cesse de brûler lorsqu’il est en l’air !
    • Cliquez deux fois sur Retour.
    • Dès que vous apparaissez dans la partie, votre héros devrait être en feu. Sautez pour voir si votre héros cesse de brûler.
    • Appuyez sur Echap, et cliquez sur Éditeur de la Forge pour continuer à construire votre script.
  7. Enfin, nous allons appliquer des dégâts aux héros qui se trouvent au sol.
    • Développez la règle « Commencer à brûler si en contact avec le sol ».
    • Sous « Actions », cliquez sur Ajouter. Cette action infligera des dégâts au héros qui se trouve au sol.
      • Dans le menu déroulant des actions, sélectionnez Dégâts sur la durée.
      • Sous « Durée », réglez sur curseur sur 9999.
      • Sous « Dégâts par seconde », réglez sur curseur sur 30.
      • Conservez les options par défaut dans les autres menus déroulants, et cliquez sur OK.
    • Développez la règle « Arrêter de brûler si pas en contact avec le sol ».
      • Sous « Actions », cliquez sur Ajouter. Cette action interrompra les dégâts infligés au héros qui ne se trouve pas au sol.
      • Dans le menu déroulant des actions, sélectionnez Arrêter tous les dégâts sur la durée.
  8. Testons si votre héros prend feu au sol, et s’il cesse de subir des dégâts lorsqu’il saute ou se trouve en l’air.
    1. Cliquez deux fois sur Retour.
    2. Sortez du point d’apparition et vérifiez si votre héros commence à subir des dégâts.
    3. Sautez pour voir si votre héros cesse de subir des dégâts.
  9. Vous avez réussi ! Maintenant, le sol est vraiment de la lave !

Voici un guide plus détaillé pour réaliser un autre mode de jeu : Combat à mort miroir. Il s’agit d’un mode composé de plusieurs manches courtes, au cours desquelles tout le monde joue le même héros. À la fin de chaque manche, chaque joueur réapparaît à l’endroit où il se trouvait, et le héros suivant est choisi au hasard, dans une liste déterminée à l’avance. Au terme de la dernière manche, le joueur ayant obtenu le plus d’éliminations l’emporte.

Par exemple, au cours d’une même partie, tout le monde peut débuter avec McCree, puis passer sur Pharah pour la deuxième manche. Dans une partie suivante, cela pourra être Fatale, puis Ashe. De par la façon même dont cette liste est générée, il est peu probable que vous obteniez deux fois la même liste de héros !

Sur ce, créons un script pour Combat à mort miroir !

  • Cliquez sur Jouer > Navigateur de parties > Créer > Paramètres > Forge.
  • Tout d’abord, créons la règle qui constituera une liste des héros pouvant être joués.
    • Cette liste sera conservée dans la variable globale « L » sous forme de tableau.
      • Un tableau peut contenir toutes sortes de données : une liste de joueurs, une liste de héros, une unique valeur, voire aucune valeur (on parle alors de « tableau vide »).
      • Chaque valeur du tableau est conservée avec un index unique, débutant à 0 et progressant. Un index et sa valeur sont parfois qualifiés d’« éléments ».
      • L’ordre d’un tableau est important : [Faucheur, Winston, Ange] est un tableau différent de [Ange, Winston, Faucheur].
      • Les tableaux peuvent être plus hétéroclites. Par exemple, le tableau suivant est tout à fait valable : [123, Faucheur, Vrai, -4,5].
      • Si une entrée suppose un tableau mais qu’une valeur seule est indiquée, l’entrée recevra cette valeur unique sous forme de tableau composé d’un seul élément.
      • Si une entrée suppose une seule valeur mais qu’on lui fournit un tableau, l’entrée recevra la première valeur du tableau (ou 0, si le tableau est vide).
    • Ajoutez une règle et saisissez un commentaire, afin que l’effet de cette règle soit évident.
    • Réglez le type d’évènement sur Toute la partie - Tout le monde. Cela signifie qu’une seule instance de la règle sera exécutée.
    • Comme la règle n’est soumise à aucune condition, son exécution démarrera dès le début de la partie.
    • Ajoutez une action selon le modèle suivant :
      • Action : Définir une variable globale
        • Variable : L
      • Valeur : Héros
        • Héros : un héros que vous souhaitez rendre jouable.
      Vous aurez ainsi créé le tableau des héros. L’action « Définir une variable globale » attribue « L » au héros initial de la liste.
    • N’avoir qu’un seul héros jouable de toute la partie ne serait pas très amusant ; ajoutons-en d’autres ! Ajoutez autant d’actions que vous le souhaitez selon le modèle suivant :
      • Action : Modifier une variable globale
        • Variable : L
      • Opération : Ajouter
      • Valeur : Héros
        • Héros : un héros que vous souhaitez rendre jouable.
      Cela ajoute d’autres héros au tableau créé auparavant, sous la variable « L ». Si la première action commençait par « Modifier une variable globale » au lieu de « Définir une variable globale », le tableau débuterait à 0. Toutes les variables sont de 0 par défaut ; si vous ne changez rien, vous obtiendrez un tableau du genre [0, Pharah, Hanzo, Ana, ...] .
    • Ajoutons la dernière action de cette règle. Cette règle prendra une copie randomisée de la variable globale « L » (le tableau des héros), copiera une partie du tableau désormais randomisé débutant à la position 0, et inclura le nombre de héros devant être présents dans le mode de jeu. Cette copie sera ensuite réinsérée dans la variable globale « L », résultant en un sous-ensemble randomisé de la liste originale de héros que vous avez indiquée.
      • Exemple : si la liste de héros initiale comprenait [Ashe, Doomfist, Hanzo, McCree, Pharah, Soldat : 76, Zenyatta, Fatale, Ana] , le tableau randomisé pourrait être [Hanzo, Pharah, Fatale, Ana, Ashe, Doomfist, Soldat : 76, Zenyatta, McCree] , et la section [Hanzo, Pharah, Fatale, Ana, Ashe, Doomfist].
  • La règle suivante garantit que tous les joueurs jouent le même héros à tout instant, en toute circonstance.
    • Ajoutez une règle et saisissez un commentaire, afin que l’effet de cette règle soit évident.
    • Réglez le type d’évènement sur Toute la partie - Chaque joueur. Cela signifie que chaque joueur exécutera sa propre instance de la règle.
    • Ajoutez deux conditions, qui doivent être vraies pour forcer le héros :
      • Le numéro de la manche, la variable globale « R », doit être inférieure au nombre total de héros dans la liste des héros. Dans le cas contraire, la partie est terminée, et aucun nouveau héros ne sera forcé. Le numéro de la manche débute à 0 et progresse ; s’il y a 6 manches, le dernier numéro de manche sera donc 5. Il n’est pas nécessaire de régler la variable globale « R » sur 0, comme toutes les variables débutent avec une valeur par défaut de 0.
        • Valeur : Variable globale
          • Variable : R
        • Opérateur : <
        • Valeur : Compte de
          • Tableau : Variable globale
            • Variable : L
      • Cela vérifie si le héros actuellement joué par un joueur donné doit être différent du héros souhaité pour ce numéro de manche. Le « joueur donné » est représenté par « Joueur exécutant », une valeur spéciale désignant le joueur qui exécute actuellement une instance de cette règle. Le « héros souhaité » pour la manche actuelle est le héros conservé à l’index correspondant de la liste des héros (variable globale « L »). Comme la manche actuelle est conservée dans la variable globale « R », le héros souhaité peut être obtenu en utilisant « Valeur dans le tableau ».
        • Valeur : Héros de
          • Joueur : Joueur exécutant
        • Opérateur : !=
        • Valeur : Valeur dans le tableau
          • Tableau : Variable globale
            • Variable : L
          • Index : Variable globale
            • Variable : R
    • Maintenant que nous savons que le joueur doit changer de héros, ajoutez deux actions à exécuter :
      • La première action forcera le joueur exécutant à jouer le héros souhaité. La première entrée de cette action correspond au joueur dont il faut forcer le héros. La deuxième entrée correspond au héros, afin d’indiquer le héros souhaité.
        • Action : Forcer un héros
        • Joueur : Joueur exécutant
        • Héros : Valeur dans le tableau
          • Tableau : Variable globale
            • Variable : L
          • Index : Variable globale
            • Variable : R
      • La deuxième action précharge le héros suivant de la liste, afin que le joueur n’ait pas à attendre avant le changement de héros. Chaque joueur précharge le héros séparément, bien que tout le monde joue le même héros. La raison est que chaque joueur devra potentiellement précharger un modèle différent pour le même héros. La valeur « Addition » pour ajouter 1 à la variable globale « R » ordonne à l’action de précharger le héros suivant au lieu du héros actuel. À la dernière manche, cela produira un index de tableau excédant les limites de la variable globale de tableau « L ». Cela ne pose pas de problème, car toutes les valeurs excédant les limites d’un tableau sont considérées comme égales à 0. Ainsi, toute action supposant un héros et recevant 0 n’aura aucun effet.
        • Action : Précharger héros
        • Joueur : Joueur exécutant
        • Héros : Valeur dans le tableau
          • Tableau : Variable globale
            • Variable : L
          • Index : Addition
            • Valeur : Variable globale
              • Variable : R
            • Valeur : Nombre
              • Nombre : 1.00
  • Notre règle suivante configure chaque manche qui n’a pas encore été initialisée.
    • Ajoutez une règle et saisissez un commentaire, afin que l’effet de cette règle soit précisé.
    • Réglez le type d’évènement sur Toute la partie - Tout le monde. Cela signifie qu’une seule instance de la règle sera exécutée.
    • Ajoutez trois conditions, qui doivent être vraies pour démarrer la manche :
      • La partie doit être en cours. Cela signifie que l’écran « Choisissez vos héros » et la phase de configuration ont déjà eu lieu, mais que la partie n’est pas encore terminée.
        • Valeur : Partie en cours
        • Opérateur : ==
        • Valeur : Vrai
      • La variable globale « I » doit être fausse. Cette variable sert à indiquer si la manche actuelle est initialisée. Si la variable globale « I » n’a jamais été définie, elle aura une valeur de 0, ce qui équivaut à « Faux » dans ce genre de comparaison.
        • Valeur : Variable globale
          • Variable : I
        • Opérateur : ==
        • Valeur : Faux
      • Le numéro de la manche, la variable globale « R », doit être inférieure au nombre total de héros dans la liste.
        • Valeur : Variable globale
          • Variable : R
        • Opérateur : <
        • Valeur : Compte de
          • Tableau : Variable globale
            • Variable : L
    • Maintenant que nous savons que les conditions sont toutes vraies, la manche doit être initialisée. Ajoutons quelques actions qui se chargeront de cela :
      • La première action indique au mode de jeu que la partie ne doit pas prendre fin selon les critères habituels. Dans le cas d’un combat à mort, cela signifie que la partie ne s’arrêtera pas quand le temps est écoulé ou quand un joueur atteint le score maximum. Une fois cette action exécutée, la partie ne s’arrêtera pas tant que le script ne réactive pas l’accomplissement prédéfini par le mode de jeu, ou qu’un joueur n’est pas explicitement déclaré vainqueur.
        • Action : Désactiver l’accomplissement prédéfini par le mode de jeu
      • L’action suivante règle la durée actuelle du mode de jeu sur la durée d’une manche.
        • Action : Définir le temps de jeu
        • Durée : Nombre
        • Nombre : 60.00
      • Cette action définit la variable globale « I » comme vraie, pour que l’initialisation ne se reproduise pas tant que la variable globale « I » n’est pas redéfinie comme fausse.
        • Action : Définir une variable globale
        • Variable : I
        • Valeur : Vrai
  • Cette règle attend que la durée de la manche actuelle expire avant de passer à la suivante.
    • Ajoutez une règle et saisissez un commentaire, afin que l’effet de cette règle soit précisé.
    • Réglez le type d’évènement sur Toute la partie - Tout le monde. Cela signifie qu’une seule instance de la règle sera exécutée.
    • Ajoutez deux conditions, qui doivent être vraies pour que la partie passe à la manche suivante :
      • La partie doit être en cours. Cela signifie que l’écran « Choisissez vos héros » et la phase de préparation ont déjà eu lieu, mais que la partie n’est pas encore terminée.
        • Valeur : Partie en cours
        • Opérateur : ==
        • Valeur : Vrai
      • La durée actuelle de la partie doit être de 0, ce qui signifie que le durée de la manche a expiré.
        • Valeur : Durée de la partie
        • Opérateur : ==
        • Valeur : Nombre
          • Nombre : 0.00
    • Lorsque ces conditions sont vraies et que la manche est terminée, la partie fera avancer le numéro de la manche et marquera la manche comme initialisée. Ajoutez deux actions à cette fin :
      • Cette action indique aux autres règles que la partie est passée à la manche suivante.
        • Action : Modifier une variable globale
        • Variable : R
        • Opération : Addition
        • Valeur : Nombre
          • Nombre : 1.00
      • Cette action définit la variable globale « I » comme fausse, indiquant aux autres règles qu’une nouvelle manche doit être initialisée.
        • Action : Définir une variable globale
        • Variable : I
        • Valeur : Faux
  • La dernière règle met fin à la partie une fois toutes les manches disputées.
    • Ajoutez une règle et saisissez un commentaire, afin que l’effet de cette règle soit précisé.
    • Réglez le type d’évènement sur Toute la partie - Tout le monde. Cela signifie qu’une seule instance de la règle sera exécutée.
    • Ajoutez une condition, qui vérifiera que la variable globale « R » est bien égale au nombre d’éléments dans la variable globale « L ». Si tel est le cas, cela signifie qu’une manche a été jouée pour chaque héros dans la liste. La partie devrait alors prendre fin.
      • Valeur : Variable globale
        • Variable : R
      • Opérateur : ==
      • Valeur : Compte de
        • Tableau : Variable globale
          • Variable : L
    • Une fois la condition vraie, cette action réactivera l’accomplissement prédéfini par le mode de jeu. Comme la durée de la partie sera de 0, le mode de jeu mettra immédiatement fin à la partie, et la procédure habituelle de fin de partie débutera.
      • Action : Activer l’accomplissement prédéfini par le mode de jeu

Déboguer votre script

Une fois votre script créé, vous pouvez utiliser le contrôleur de la Forge pour visualiser l’exécution de votre script en jeu, voir quelles actions et conditions sont actives, et repérer les problèmes.

Pour accéder au contrôleur de la Forge :

  1. Lancez une partie avec le script que vous avez créé.
  2. Appuyez sur Echap.
  3. Cliquez sur Ouvrir le débogueur de script.
  4. Cliquez sur Activer. Cette fonctionnalité n’est pas activée par défaut.

Le contrôleur de la Forge se compose de plusieurs éléments :

  • Entrée : l’entrée vous indique ce qui se passe.
  • Commentaire : affiche le commentaire associé à la règle.
  • Condition : dresse la liste des conditions devant être validées pour exécuter les actions.
  • Action : indique les actions exécutées.
  • Curseur chronologique : permet d’avancer ou de reculer dans la progression de la partie.

Partager votre script

Maintenant que vous avez créé un super script, partagez-le avec tous les autres joueurs (ou juste avec vos amis) pendant les six prochains mois. Les scripts créés peuvent être utilisés sur n’importe quelle plateforme, quelle que soit celle sur laquelle vous les avez réalisés.

Pour partager un script :

  1. Cliquez sur Jouer > Navigateur de parties > Créer > Paramètres > Partager .
  2. Cliquez sur Copier.
  3. Envoyez le lien à qui vous voudrez !

Ouvrir un script

Si quelqu’un vous a envoyé un script que vous aimeriez utiliser :

  1. Cliquez sur Jouer > Navigateur de parties > Créer > Paramètres > Importer .
  2. Saisissez le lien.
  3. Cliquez sur OK.

Trucs et astuces

  • Pour accéder au contrôleur de la Forge plus aisément, assignez un raccourci clavier. Pour ce faire, cliquez sur Echap > Options > Contrôles. Allez jusqu’à la ligne Contrôleur de la Forge, et attribuez-y une touche.
  • Le contrôleur de la Forge ne vous dira pas seulement ce qui s’est produit, mais aussi ce qui ne s’est pas produit (et pourquoi) !
  • Pensez aux modes préconfigurés ! Vous pourrez y trouver des paramètres tout faits dont vous pourrez vous servir, vous évitant d’avoir à trouver une nouvelle solution manuellement.
  • Si un évènement ne se déclenche pas comme prévu, il se peut que votre joueur exécutant soit déjà en train d’exécuter la liste d’actions. Vérifiez le(s) action(s) d’attente de votre règle, surtout si certaines sont censées ignorer les conditions.
  • Pour choisir un emplacement précis sur la carte, utilisez la valeur « Vecteur » et cliquez sur l’icône de caméra.
  • La valeur « Apparition » est utile si vous voulez lancer une logique après qu’un joueur a choisi un héros.
  • Si vous souhaitez uniquement exécuter vos règles après les phases de préparation et « Choisissez vos héros » de la partie, servez-vous de la valeur « Partie en cours ».
  • Assigner une valeur à une variable, puis l’observer dans le contrôleur de la Forge, est souvent le meilleur moyen de comprendre ce que la valeur renvoie pendant la partie.
  • Vous pouvez conserver le dernier effet ou la dernière icône créée dans une variable de joueur, avec la valeur « Dernière entité créée ». Cela vous permet de rappeler l’entité ultérieurement, pour la détruire.
  • Combiner les tableaux filtrés et les valeurs comme « Tous les joueurs sur l’objectif » ou « Joueurs dans un rayon » permet de filtrer aisément les joueurs remplissant certains critères (morts, vivants, statut, etc.)
  • Si vous nécessitez un comportement divergent, vous pouvez utiliser l’action « Passer si » pour sauter des actions, si une condition donnée est vraie. Dans ce cas, les actions sautées devront potentiellement comprendre une action « Interrompre » pour empêcher l’exécution conjointe des deux branches.
  • Vous pouvez filtrer les listes déroulantes en saisissant des mots.
  • Si votre valeur suppose un tableau en tant que paramètre mais n’en reçoit pas, elle placera l’entrée dans un tableau de dimensions 1.
    • L’inverse est également vrai : si votre valeur suppose une seule information mais reçoit un tableau, elle utilisera l’élément à la position 0 de ce tableau.
  • Diviser votre travail en plusieurs actions ou conditions vous aidera à mieux comprendre ce qui cloche.
  • Si vous n’êtes pas certain de comprendre l’effet d’une action, d’une valeur ou d’une entrée, vous pouvez passer votre curseur dessus sur PC et Mac, ou choisir « Voir les détails » sur console, pour lire une explication.
  • Remplissez toujours la section « Commentaire » pour vous rappeler l’effet de votre règle !
  • Procédez à des tests fréquents !