Create
Return to post

Comparing difference between and

View raw
  • variables
  • {
  • globale:
  • 0: HeroRoster
  • 1: LavaLocations
  • 2: LavaRadius
  • 3: CheckpointLocations
  • 4: ZoneLocations
  • 5: ZoneText
  • 6: PortalLocations
  • 7: PortalDestinations
  • 8: PortalUnlockDefaults
  • 9: PortalText
  • 10: HeroLocations
  • 11: UnlockLocations
  • 12: SpeedrunLocation
  • 13: BouncepadLocations
  • 14: BouncepadStrength
  • 15: MaxObjectIndex
  • 16: LoadingObjectIndex
  • 17: LoadingElementIndex
  • 18: MaxZones
  • 19: MaxHeroes
  • 20: SpawnFaceDirection
  • 21: ShareCode
  • 22: Version
  • 23: Author
  • 24: InWorldText
  • 25: MatchTime
  • 26: SkiPoints
  • 27: SkillSpots
  • 28: Visibilities
  • de joueur:
  • 0: Victory
  • 1: TutorialMode
  • 2: ZonesReached
  • 3: HeroesUnlocked
  • 4: ZoneCount
  • 5: HeroCount
  • 6: FoundSecretHero
  • 7: Respawn
  • 8: AlternativeRespawn
  • 9: SpeedRunMode
  • 10: Timer
  • 11: Deaths
  • 12: MyHUD
  • 13: CanDie
  • 14: LoopCounter
  • 15: PortalUnlocked
  • 16: SkiPoint
  • 17: Impact
  • 18: SymmetraPads
  • 19: Moving
  • 20: SkillsUnlocked
  • 21: SkillCount
  • 22: ExtraSkillCount
  • 23: ExtraHeroCount
  • 24: Visibilities
  • 25: FoundSecretHero2
  • 26: Compass
  • }
  • sous-programmes
  • {
  • 0: ResetProgress
  • 1: UpdateCount
  • }
  • règle("---------- INITIALIZATION ----------")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • }
  • règle("Global")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Désactiver l’enregistrement du contrôleur;
  • Global.MatchTime = 60 * 180;
  • Désactiver le calcul des points prédéfini par le mode de jeu;
  • Désactiver l’accomplissement prédéfini par le mode de jeu;
  • "Lava | Checkpoints | Zones | Portals | Heroes | Unlocks | Speedrun | Bouncepads"
  • Global.MaxObjectIndex = Tableau(79, 2, 4, 5, 6, 8, 0, 9);
  • "Center HUD"
  • Créer du texte d’interface(Tous les joueurs(Toutes les équipes), Non applicable, Non applicable, Chaîne personnalisée(
  • "|| discord.me/lavaparkour ||"), Haut, -2, Couleur(Blanc), Couleur(Blanc), Couleur(Orange),
  • Visible pour et Chaîne de texte, Visibilité par défaut);
  • Créer du texte d’interface(Tableau filtré(Tous les joueurs(Toutes les équipes),
  • Élément de tableau actuel.Victory == Vrai && Élément de tableau actuel.SpeedRunMode == Faux), Chaîne de texte("Fini"),
  • Non applicable, Non applicable, Haut, 1, Couleur(Violet), Couleur(Violet), Couleur(Violet), Visible pour et Chaîne de texte,
  • Visibilité par défaut);
  • Élément de tableau actuel.Victory == Vrai && Élément de tableau actuel.SpeedRunMode == Faux), Chaîne personnalisée(
  • " Finished "), Non applicable, Non applicable, Haut, 1, Couleur(Violet), Couleur(Violet), Couleur(Violet),
  • Visible pour et Chaîne de texte, Visibilité par défaut);
  • Créer du texte d’interface(Tableau filtré(Tous les joueurs(Toutes les équipes), Élément de tableau actuel.TutorialMode == Faux),
  • Non applicable, Non applicable, Chaîne personnalisée("Hold [Reload] To Start Tutorial Mode"), Haut, 2, Couleur(Blanc), Couleur(
  • Blanc), Couleur(Jaune), Visible pour et Chaîne de texte, Visibilité par défaut);
  • Créer du texte d’interface(Tableau filtré(Tous les joueurs(Toutes les équipes), Élément de tableau actuel.TutorialMode == Vrai),
  • Chaîne personnalisée("TUTORIAL MODE"), Non applicable, Non applicable, Haut, 2, Couleur(Jaune), Couleur(Jaune), Couleur(Jaune),
  • Visible pour et Chaîne de texte, Visibilité par défaut);
  • Chaîne personnalisée(" TUTORIAL MODE "), Non applicable, Non applicable, Haut, 2, Couleur(Jaune), Couleur(Jaune), Couleur(
  • Jaune), Visible pour et Chaîne de texte, Visibilité par défaut);
  • Créer du texte d’interface(Tableau filtré(Tous les joueurs(Toutes les équipes), Élément de tableau actuel.TutorialMode == Vrai),
  • Non applicable, Non applicable, Chaîne personnalisée(
  • "Press [Interact] to use portals/hero swaps\r\n Hold [Reload] to place checkpoint\r\n Hold [Melee] for a tip"),
  • Haut, 3, Couleur(Jaune), Couleur(Jaune), Couleur(Jaune), Visible pour et Chaîne de texte, Visibilité par défaut);
  • Créer du texte d’interface(Tableau filtré(Tous les joueurs(Toutes les équipes), Élément de tableau actuel.TutorialMode == Faux),
  • Non applicable, Non applicable, Chaîne personnalisée("Press [Ultimate] To Respawn\r\n Press [Interact] To Use"), Haut, 3,
  • Couleur(Blanc), Couleur(Blanc), Couleur(Blanc), Visible pour et Chaîne de texte, Visibilité par défaut);
  • Attente(1, Ignorer la condition);
  • "Left-Side HUD"
  • Créer du texte d’interface(Tableau filtré(Tous les joueurs(Toutes les équipes), Élément de tableau actuel.TutorialMode == Faux),
  • Non applicable, Chaîne personnalisée("Hold [Ultimate] to restart"), Non applicable, Gauche, 0, Couleur(Blanc), Couleur(Violet),
  • Couleur(Blanc), Visible pour et Chaîne de texte, Visibilité par défaut);
  • Créer du texte d’interface(Tableau filtré(Tous les joueurs(Toutes les équipes), Élément de tableau actuel.TutorialMode == Vrai),
  • Non applicable, Chaîne personnalisée("Hold [Ultimate] to exit tutorial mode (resets progress)"), Non applicable, Gauche, 0,
  • Couleur(Jaune), Couleur(Jaune), Couleur(Jaune), Visible pour et Chaîne de texte, Visibilité par défaut);
  • Créer du texte d’interface(Tous les joueurs(Toutes les équipes), Chaîne personnalisée("PROGRESS:"), Non applicable, Non applicable,
  • Gauche, 1, Couleur(Violet), Couleur(Blanc), Couleur(Blanc), Visible pour et Chaîne de texte, Visibilité par défaut);
  • Créer du texte d’interface(Tous les joueurs(Toutes les équipes), Chaîne personnalisée(" PROGRESS "), Non applicable,
  • Non applicable, Gauche, 1, Couleur(Violet), Couleur(Blanc), Couleur(Blanc), Visible pour et Chaîne de texte,
  • Visibilité par défaut);
  • Attente(1, Ignorer la condition);
  • "Right-Side HUD"
  • Créer du texte d’interface(Tous les joueurs(Toutes les équipes), Chaîne personnalisée("
Share Code: {0} ", Global.ShareCode),
  • Non applicable, Non applicable, Droite, -3, Couleur(Blanc), Couleur(Blanc), Couleur(Blanc), Visible pour et Chaîne de texte,
  • Visibilité par défaut);
  • Créer du texte d’interface(Tous les joueurs(Toutes les équipes), Non applicable, Chaîne personnalisée(
  • "Look for \"{0}\" on Youtube if you're Stuck", Global.ShareCode), Non applicable, Droite, -3, Couleur(Blanc), Couleur(Rouge),
  • Couleur(Blanc), Visible pour et Chaîne de texte, Visibilité par défaut);
  • Créer du texte d’interface(Tous les joueurs(Toutes les équipes), Non applicable, Non applicable, Chaîne personnalisée(
  • "Created By: {0}", Global.Author), Droite, -2, Couleur(Blanc), Couleur(Blanc), Couleur(Blanc), Visible pour et Chaîne de texte,
  • Visibilité par défaut);
  • Créer du texte d’interface(Tous les joueurs(Toutes les équipes), Non applicable, Non applicable, Chaîne personnalisée(
  • "version {0}", Global.Version), Droite, -1, Couleur(Blanc), Couleur(Blanc), Couleur(Blanc), Visible pour et Chaîne de texte,
  • Visibilité par défaut);
  • }
  • }
  • règle("Player")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • actions
  • {
  • Joueur exécutant.CanDie = Faux;
  • Forcer un héros(Joueur exécutant, Global.HeroRoster[0]);
  • Tant que(Apparition(Joueur exécutant) == Faux);
  • Attente(0.025, Ignorer la condition);
  • Fin;
  • Désactiver l’interface en jeu du mode de jeu(Joueur exécutant);
  • Désactiver l’interface du mode de jeu(Joueur exécutant);
  • Désactiver la collision des mouvements avec les joueurs(Joueur exécutant);
  • Joueur exécutant.SpeedRunMode = Faux;
  • Définir les dégâts infligés(Joueur exécutant, 0);
  • Attente(0.300, Ignorer la condition);
  • Sous-programme à appeler(ResetProgress);
  • Attente(0.300, Ignorer la condition);
  • Créer du texte d’interface(Joueur exécutant, Non applicable, Non applicable, Chaîne personnalisée(
  • "Zones Reached {0} / 3\r\nHeroes Unlocked {1} / 4\r\n{2}", Joueur exécutant.ZoneCount, Joueur exécutant.HeroCount,
  • Chaîne personnalisée("Abilities unlocked {0} / 8", Joueur exécutant.SkillCount)), Gauche, 2, Couleur(Cyan), Couleur(Cyan),
  • Couleur(Bleu), Visible pour et Chaîne de texte, Visibilité par défaut);
  • Attente(0.300, Ignorer la condition);
  • Créer du texte d’interface(Joueur exécutant.Visibilities[0], Non applicable, Non applicable, Chaîne personnalisée(
  • "Secret Hero Found {0} / 1", Joueur exécutant.FoundSecretHero ? Chaîne personnalisée("1") : Chaîne personnalisée("0")), Gauche,
  • 3, Couleur(Blanc), Couleur(Blanc), Couleur(Blanc), Visible pour et Chaîne de texte, Visibilité par défaut);
  • Créer du texte d’interface(Joueur exécutant.Visibilities[1], Non applicable, Non applicable, Chaîne personnalisée(
  • "Extra abilities unlocked {0} / 5\r\nExtra Heroes found {1} / 5", Joueur exécutant.ExtraSkillCount,
  • Joueur exécutant.ExtraHeroCount), Gauche, 4, Couleur(Blanc), Couleur(Blanc), Couleur(Blanc), Visible pour et Chaîne de texte,
  • Visibilité par défaut);
  • Définir la description d’objectif(Joueur exécutant, Chaîne personnalisée("Find All Zones and Heroes"), Chaîne de texte);
  • Joueur exécutant.CanDie = Vrai;
  • désactivé Créer du texte d’interface(Tous les joueurs(Toutes les équipes), Chaîne personnalisée("{0}", Distance entre(Position de(
  • Joueur exécutant), Global.SkillSpots[0])), Non applicable, Non applicable, Droite, 0, Couleur(Blanc), Couleur(Blanc), Couleur(
  • Blanc), Visible pour et Chaîne de texte, Visibilité par défaut);
  • Attente(5, Ignorer la condition);
  • Définir l’activation du tir secondaire(Joueur exécutant, Faux);
  • Attente(5, Ignorer la condition);
  • Définir l’activation du tir secondaire(Joueur exécutant, Faux);
  • }
  • }
  • règle("----- DATA -----")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • }
  • règle("Release Information")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Global.ShareCode = Chaîne personnalisée("VJ5JG");
  • Global.Version = Chaîne personnalisée("1.0.0 Bêta");
  • Global.Version = Chaîne personnalisée("1.0.2");
  • Global.Author = Chaîne personnalisée("UltimaLinky");
  • }
  • }
  • règle("Goal Counts")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Global.MaxZones = 3;
  • Global.MaxHeroes = 4;
  • }
  • }
  • règle("Hero Roster")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "Spawning Hero - Yellow"
  • Global.HeroRoster[0] = Héros(Soldat : 76);
  • "Unlockable Hero 1 - Green"
  • Global.HeroRoster[1] = Héros(Mei);
  • "Unlockable Hero 2 - Blue"
  • Global.HeroRoster[2] = Héros(Bouldozer);
  • "Unlockable Hero 3 - Purple"
  • Global.HeroRoster[3] = Héros(Symmetra);
  • "Unlockable Hero 4 - Red"
  • Global.HeroRoster[4] = Héros(Écho);
  • "Secret Hero - White"
  • Global.HeroRoster[5] = Héros(Torbjörn);
  • "Extra Heroes"
  • Global.HeroRoster[6] = Héros(Tracer);
  • Global.HeroRoster[7] = Héros(Ashe);
  • Global.HeroRoster[8] = Héros(Hanzo);
  • Global.HeroRoster[9] = Héros(Fatale);
  • Global.HeroRoster[10] = Héros(Doomfist);
  • "Last Secret"
  • Global.HeroRoster[11] = Héros(Zenyatta);
  • }
  • }
  • règle("Lava Locations")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Global.LavaLocations[0] = Vecteur(93.600, 130.850, 64.650);
  • Global.LavaLocations[1] = Vecteur(77.550, 129, 67.250);
  • Global.LavaLocations[2] = Vecteur(72.150, 131.500, 45);
  • Global.LavaLocations[3] = Vecteur(80.950, 96.550, 52.300);
  • Global.LavaLocations[4] = Vecteur(64.300, 133.400, 24.200);
  • Global.LavaLocations[5] = Vecteur(57.100, 122.600, 34.050);
  • Global.LavaLocations[6] = Vecteur(89.900, 131.450, 45.050);
  • Global.LavaLocations[7] = Vecteur(81, 134.550, 19);
  • Global.LavaLocations[8] = Vecteur(102.150, 135.300, 47.950);
  • Global.LavaLocations[9] = Vecteur(107, 128.200, 18);
  • Global.LavaLocations[10] = Vecteur(63, 124.900, 0.150);
  • Global.LavaLocations[11] = Vecteur(86.250, 132.950, -21.500);
  • Global.LavaLocations[12] = Vecteur(97, 133, 0);
  • Global.LavaLocations[13] = Vecteur(111.050, 133.800, -32);
  • Global.LavaLocations[14] = Vecteur(62.700, 104.300, -36.300);
  • Global.LavaLocations[15] = Vecteur(81, 132.100, -52);
  • Global.LavaLocations[16] = Vecteur(98, 136, -74);
  • Global.LavaLocations[17] = Vecteur(-50, 16, 0);
  • Global.LavaLocations[18] = Vecteur(-25.200, 10, 17.800);
  • Global.LavaLocations[19] = Vecteur(-50, 11.500, 29.950);
  • Global.LavaLocations[20] = Vecteur(-29.700, 12.800, -9.600);
  • Global.LavaLocations[21] = Vecteur(-72.750, 13.250, 20.800);
  • Global.LavaLocations[22] = Vecteur(-49.950, -12.250, -37.850);
  • Global.LavaLocations[23] = Vecteur(-37.450, -11, -39.050);
  • Global.LavaLocations[24] = Vecteur(-47, 22.500, -46.350);
  • Global.LavaLocations[25] = Vecteur(-34.800, 17.900, -44.950);
  • Global.LavaLocations[26] = Vecteur(-59.750, 15.900, -38.900);
  • Global.LavaLocations[27] = Vecteur(-73, 12, -21);
  • Global.LavaLocations[28] = Vecteur(-34.050, 11.600, -18);
  • Global.LavaLocations[29] = Vecteur(-34.050, 11.600, -18);
  • Global.LavaLocations[30] = Vecteur(-67.550, -9, -42.650);
  • Global.LavaLocations[31] = Vecteur(-64.800, 17.250, 50.800);
  • Global.LavaLocations[32] = Vecteur(-33.500, 14.300, 45.750);
  • Global.LavaLocations[33] = Vecteur(-40, 21, 50.650);
  • Global.LavaLocations[34] = Vecteur(-26.500, 23, 54);
  • Global.LavaLocations[35] = Vecteur(-24.250, 23.050, -47.050);
  • Global.LavaLocations[36] = Vecteur(-41.100, 16.700, -71.750);
  • Global.LavaLocations[37] = Vecteur(-24.050, 7.500, -81.050);
  • Global.LavaLocations[38] = Vecteur(-153.200, -86.400, 49.900);
  • Global.LavaLocations[39] = Vecteur(-165.650, -94.450, 55.250);
  • Global.LavaLocations[40] = Vecteur(-169.600, -96.800, 71.250);
  • Global.LavaLocations[41] = Vecteur(-175.200, -85.400, 74.150);
  • Global.LavaLocations[42] = Vecteur(-184.350, -90.600, 58.300);
  • Global.LavaLocations[43] = Vecteur(-187.100, -120.050, 72.100);
  • Global.LavaLocations[44] = Vecteur(-194.350, -124.550, 32.800);
  • Global.LavaLocations[45] = Vecteur(-215.500, -88.250, 26.700);
  • Global.LavaLocations[46] = Vecteur(-182.650, -83.400, 26.250);
  • Global.LavaLocations[47] = Vecteur(-170.150, -84.550, 33.400);
  • Global.LavaLocations[48] = Vecteur(-181.550, -88.400, 47);
  • Global.LavaLocations[49] = Vecteur(-44.600, 18.700, 76.450);
  • Global.LavaLocations[50] = Vecteur(-38.800, 36.750, 94.200);
  • Global.LavaLocations[51] = Vecteur(-15.750, 35.950, -56.550);
  • Global.LavaLocations[52] = Vecteur(-66.650, 37.600, 53.300);
  • Global.LavaLocations[53] = Vecteur(-88.100, 15.050, 46.750);
  • Global.LavaLocations[54] = Vecteur(-225.900, -85, 16.150);
  • Global.LavaLocations[55] = Vecteur(-195.050, -137, 0);
  • Global.LavaLocations[56] = Vecteur(-193.400, -81.550, -34.550);
  • Global.LavaLocations[57] = Vecteur(-214.250, -78.950, 0);
  • Global.LavaLocations[58] = Vecteur(-157.050, -74.900, -20.900);
  • Global.LavaLocations[59] = Vecteur(-181.650, -72.500, -21.150);
  • Global.LavaLocations[60] = Vecteur(-209.950, -83.500, -17.350);
  • Global.LavaLocations[61] = Vecteur(-166.500, -80, -39.650);
  • Global.LavaLocations[62] = Vecteur(-194.450, -112.450, -35.350);
  • Global.LavaLocations[63] = Vecteur(-166.550, -164.300, -0.050);
  • Global.LavaLocations[64] = Vecteur(-187.650, -193.250, -61.600);
  • Global.LavaLocations[65] = Vecteur(-55.800, 13.850, -25.900);
  • Global.LavaLocations[66] = Vecteur(-50, 25.150, -29.850);
  • Global.LavaLocations[67] = Vecteur(-36.850, 29.550, -30.100);
  • Global.LavaLocations[68] = Vecteur(-23.750, 28.600, -19.550);
  • Global.LavaLocations[69] = Vecteur(-47.600, 26.550, -17.800);
  • Global.LavaLocations[70] = Vecteur(-178.930, -86.710, -21.550);
  • Global.LavaLocations[71] = Vecteur(-155.650, -79.250, 82.100);
  • Global.LavaLocations[72] = Vecteur(-167, -98.100, -57.150);
  • Global.LavaLocations[73] = Vecteur(-168.050, -95.250, 20.050);
  • Global.LavaLocations[74] = Vecteur(-149.050, -51.350, -18.550);
  • Global.LavaLocations[75] = Vecteur(0, 0, 0);
  • Global.LavaLocations[75] = Vecteur(95.200, 153.600, -55.200);
  • Global.LavaLocations[76] = Vecteur(0, 0, 0);
  • Global.LavaLocations[77] = Vecteur(0, 0, 0);
  • Global.LavaLocations[78] = Vecteur(0, 0, 0);
  • Global.LavaLocations[79] = Vecteur(0, 0, 0);
  • }
  • }
  • règle("Lava Radius")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Global.LavaRadius[0] = 10;
  • Global.LavaRadius[1] = 10;
  • Global.LavaRadius[2] = 8.900;
  • Global.LavaRadius[3] = 35;
  • Global.LavaRadius[4] = 5.500;
  • Global.LavaRadius[5] = 7.500;
  • Global.LavaRadius[6] = 8.900;
  • Global.LavaRadius[7] = 10;
  • Global.LavaRadius[8] = 10;
  • Global.LavaRadius[9] = 5;
  • Global.LavaRadius[10] = 10;
  • Global.LavaRadius[11] = 12.500;
  • Global.LavaRadius[12] = 5;
  • Global.LavaRadius[13] = 2;
  • Global.LavaRadius[14] = 25;
  • Global.LavaRadius[15] = 17.500;
  • Global.LavaRadius[16] = 12.500;
  • Global.LavaRadius[17] = 16.500;
  • Global.LavaRadius[18] = 10;
  • Global.LavaRadius[19] = 7.500;
  • Global.LavaRadius[20] = 7.500;
  • Global.LavaRadius[21] = 7.500;
  • Global.LavaRadius[22] = 25;
  • Global.LavaRadius[23] = 25;
  • Global.LavaRadius[24] = 10;
  • Global.LavaRadius[25] = 7.500;
  • Global.LavaRadius[26] = 7.500;
  • Global.LavaRadius[27] = 10;
  • Global.LavaRadius[28] = 6;
  • Global.LavaRadius[29] = 6;
  • Global.LavaRadius[30] = 25;
  • Global.LavaRadius[31] = 10;
  • Global.LavaRadius[32] = 6.500;
  • Global.LavaRadius[33] = 5;
  • Global.LavaRadius[34] = 5;
  • Global.LavaRadius[35] = 7.500;
  • Global.LavaRadius[36] = 15;
  • Global.LavaRadius[37] = 15;
  • Global.LavaRadius[38] = 10;
  • Global.LavaRadius[39] = 10;
  • Global.LavaRadius[40] = 10;
  • Global.LavaRadius[41] = 10;
  • Global.LavaRadius[42] = 10;
  • Global.LavaRadius[43] = 25;
  • Global.LavaRadius[44] = 35;
  • Global.LavaRadius[45] = 11;
  • Global.LavaRadius[46] = 10;
  • Global.LavaRadius[47] = 7.500;
  • Global.LavaRadius[48] = 10;
  • Global.LavaRadius[49] = 20;
  • Global.LavaRadius[50] = 24;
  • Global.LavaRadius[51] = 3;
  • Global.LavaRadius[52] = 20;
  • Global.LavaRadius[53] = 20;
  • Global.LavaRadius[54] = 10;
  • Global.LavaRadius[55] = 50;
  • Global.LavaRadius[56] = 15;
  • Global.LavaRadius[57] = 15;
  • Global.LavaRadius[58] = 15;
  • Global.LavaRadius[59] = 12.500;
  • Global.LavaRadius[60] = 12.500;
  • Global.LavaRadius[61] = 15;
  • Global.LavaRadius[62] = 25;
  • Global.LavaRadius[63] = 75;
  • Global.LavaRadius[64] = 100;
  • Global.LavaRadius[65] = 4;
  • Global.LavaRadius[66] = 10;
  • Global.LavaRadius[67] = 10;
  • Global.LavaRadius[68] = 10;
  • Global.LavaRadius[69] = 5;
  • Global.LavaRadius[70] = 4;
  • Global.LavaRadius[71] = 5;
  • Global.LavaRadius[72] = 17.500;
  • Global.LavaRadius[73] = 10;
  • Global.LavaRadius[74] = 12.500;
  • Global.LavaRadius[75] = 0;
  • Global.LavaRadius[75] = 20;
  • Global.LavaRadius[76] = 0;
  • Global.LavaRadius[77] = 0;
  • Global.LavaRadius[78] = 0;
  • Global.LavaRadius[79] = 0;
  • }
  • }
  • règle("Checkpoint Locations")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Global.CheckpointLocations[0] = Vecteur(-25.500, 17, -21);
  • Global.CheckpointLocations[1] = Vecteur(-148.050, -92.100, 62.150);
  • Global.CheckpointLocations[2] = Vecteur(-187.300, -92.450, -71.900);
  • Global.CheckpointLocations[3] = Vecteur(-220.250, -92.200, -22.300);
  • }
  • }
  • règle("Zone Locations")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "Spawn"
  • Global.ZoneLocations[0] = Vecteur(81.650, 131.800, 79.800);
  • "Zone 1"
  • Global.ZoneLocations[1] = Vecteur(83.200, 128.300, 0);
  • "Zone 2"
  • Global.ZoneLocations[2] = Vecteur(-80, 8, 0);
  • "Zone 3"
  • Global.ZoneLocations[3] = Vecteur(-166.500, -89.200, 0);
  • "Zone 4"
  • Global.ZoneLocations[4] = Vecteur(0, 0, 0);
  • }
  • }
  • règle("Zone Text")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "Spawn - Cannot Edit"
  • Global.ZoneText[0] = Non applicable;
  • "Zone 1"
  • Global.ZoneText[1] = Chaîne personnalisée("Zone 1");
  • "Zone 2"
  • Global.ZoneText[2] = Chaîne personnalisée("Zone 2");
  • "Zone 3"
  • Global.ZoneText[3] = Chaîne personnalisée("Zone 3");
  • "Zone 4"
  • Global.ZoneText[4] = Chaîne personnalisée("Zone 4");
  • }
  • }
  • règle("Portal Locations")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Global.PortalLocations[0] = Vecteur(79, 129, 2);
  • Global.PortalLocations[1] = Vecteur(79, 129, -2);
  • Global.PortalLocations[2] = Vecteur(-82, 9, 3.750);
  • Global.PortalLocations[3] = Vecteur(-82, 9, -3.750);
  • Global.PortalLocations[4] = Vecteur(-174, -87, 4);
  • Global.PortalLocations[5] = Vecteur(-174, -87, -4);
  • }
  • }
  • règle("Portal Destinations")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Global.PortalDestinations[0] = Vecteur(-80, 8, 0);
  • Global.PortalDestinations[1] = Vecteur(-166.500, -89.200, 0);
  • Global.PortalDestinations[2] = Vecteur(83.200, 128.300, 0);
  • Global.PortalDestinations[3] = Vecteur(-166.500, -89.200, 0);
  • Global.PortalDestinations[4] = Vecteur(83.200, 128.300, 0);
  • Global.PortalDestinations[5] = Vecteur(-80, 8, 0);
  • }
  • }
  • règle("Portal Unlock Defaults")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "True = Usable from Start | False = Locked until destination is reached"
  • Global.PortalUnlockDefaults[0] = Faux;
  • Global.PortalUnlockDefaults[1] = Faux;
  • Global.PortalUnlockDefaults[2] = Faux;
  • Global.PortalUnlockDefaults[3] = Faux;
  • Global.PortalUnlockDefaults[4] = Faux;
  • Global.PortalUnlockDefaults[5] = Faux;
  • }
  • }
  • règle("Portal Text")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Global.PortalText[0] = Chaîne personnalisée("Zone 2");
  • Global.PortalText[1] = Chaîne personnalisée("Zone 3");
  • Global.PortalText[2] = Chaîne personnalisée("Zone 1");
  • Global.PortalText[3] = Chaîne personnalisée("Zone 3");
  • Global.PortalText[4] = Chaîne personnalisée("Zone 1");
  • Global.PortalText[5] = Chaîne personnalisée("Zone 2");
  • }
  • }
  • règle("Hero Locations")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "Starting Hero - Yellow"
  • Global.HeroLocations[0] = Vecteur(84, 129, -5);
  • "Unlockable Hero 1 - Green"
  • Global.HeroLocations[1] = Vecteur(87, 129, -3);
  • "Unlockable Hero 2 - Blue"
  • Global.HeroLocations[2] = Vecteur(88, 129, 0);
  • "Unlockable Hero 3 - Purple"
  • Global.HeroLocations[3] = Vecteur(87, 129, 3);
  • "Unlockable Hero 4 - Red"
  • Global.HeroLocations[4] = Vecteur(84, 129, 5);
  • "Secret Hero - White"
  • Global.HeroLocations[5] = Vecteur(-15.750, 35.950, -56.550);
  • "Secret Hero - White (Shortcut)"
  • Global.HeroLocations[10] = Vecteur(104, 129, 0);
  • "Secret Hero 2 - White"
  • Global.HeroLocations[6] = Vecteur(81, 137.500, 52.300);
  • }
  • }
  • règle("Unlock Locations")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "Unlockable Hero 1 - Green"
  • Global.UnlockLocations[0] = Vecteur(51.350, 130.700, 0);
  • "Unlockable Hero 2 - Blue"
  • Global.UnlockLocations[1] = Vecteur(-18.950, 23, -56.050);
  • "Unlockable Hero 3 - Purple"
  • Global.UnlockLocations[2] = Vecteur(-168.650, -83.700, -72.300);
  • "Unlockable Hero 4 - Red"
  • Global.UnlockLocations[3] = Vecteur(102.850, 173.900, -33.500);
  • "Extra Heroes"
  • Global.UnlockLocations[4] = Vecteur(-133.900, -81.550, 55.650);
  • Global.UnlockLocations[5] = Vecteur(-60.650, 22.550, 94.100);
  • Global.UnlockLocations[6] = Vecteur(-22.750, 11, -26);
  • Global.UnlockLocations[7] = Vecteur(-176.800, -89.300, 19.900);
  • Global.UnlockLocations[8] = Vecteur(-24.700, 16.350, 69.950);
  • }
  • }
  • règle("Speedrun Location")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Global.SpeedrunLocation = Vecteur(88, 129, 8);
  • }
  • }
  • règle("Bouncepad Locations")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Global.BouncepadLocations[0] = Vecteur(44.750, 143.350, 0);
  • Global.BouncepadLocations[1] = Vecteur(0, 0, 0);
  • Global.BouncepadLocations[2] = Vecteur(0, 0, 0);
  • Global.BouncepadLocations[3] = Vecteur(0, 0, 0);
  • Global.BouncepadLocations[4] = Vecteur(0, 0, 0);
  • Global.BouncepadLocations[5] = Vecteur(0, 0, 0);
  • Global.BouncepadLocations[6] = Vecteur(0, 0, 0);
  • Global.BouncepadLocations[7] = Vecteur(0, 0, 0);
  • Global.BouncepadLocations[8] = Vecteur(0, 0, 0);
  • Global.BouncepadLocations[9] = Vecteur(0, 0, 0);
  • }
  • }
  • règle("Bouncepad Strengths")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Global.BouncepadStrength[0] = 75;
  • Global.BouncepadStrength[1] = 10;
  • Global.BouncepadStrength[2] = 10;
  • Global.BouncepadStrength[3] = 10;
  • Global.BouncepadStrength[4] = 10;
  • Global.BouncepadStrength[5] = 10;
  • Global.BouncepadStrength[6] = 10;
  • Global.BouncepadStrength[7] = 10;
  • Global.BouncepadStrength[8] = 10;
  • Global.BouncepadStrength[9] = 10;
  • }
  • }
  • règle("Spawn Face Direction")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "First time spawn direction"
  • Global.SpawnFaceDirection = Vecteur(-1, 0, 0);
  • }
  • }
  • règle("Ski Points")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "Ski Portal"
  • Créer un effet(Tous les joueurs(Toutes les équipes), Bonne aura, Couleur(Blanc), Vecteur(-71.250, 17, 64.650), 1,
  • Visible pour Position et Rayon);
  • "Points"
  • Global.SkiPoints[0] = Vecteur(-133.500, -32, 17);
  • Global.SkiPoints[1] = Vecteur(-134.890, -35.800, 5.510);
  • Global.SkiPoints[2] = Vecteur(-135.170, -38, -11.950);
  • Global.SkiPoints[3] = Vecteur(-131.550, -40.790, -38.350);
  • Global.SkiPoints[4] = Vecteur(-127.550, -43.600, -58.610);
  • Global.SkiPoints[5] = Vecteur(-122.810, -45.630, -74.440);
  • Global.SkiPoints[6] = Vecteur(-129.650, -51.140, -59.470);
  • Global.SkiPoints[7] = Vecteur(-135.670, -56.230, -46.240);
  • Global.SkiPoints[8] = Vecteur(-138.700, -62.130, -32.490);
  • Global.SkiPoints[9] = Vecteur(-142.690, -67.890, -16.080);
  • Global.SkiPoints[10] = Vecteur(-142.870, -70.310, 0.680);
  • Global.SkiPoints[11] = Vecteur(-142.840, -75.170, 17.710);
  • Global.SkiPoints[12] = Vecteur(-142.560, -76.240, 36.560);
  • Global.SkiPoints[13] = Vecteur(-137.600, -77.500, 46.100);
  • }
  • }
  • règle("Visibilities (Global)")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "Player on Heroes"
  • Global.Visibilities[0] = Joueurs sur le héros(Héros(Soldat : 76), Toutes les équipes);
  • Global.Visibilities[1] = Joueurs sur le héros(Héros(Mei), Toutes les équipes);
  • Global.Visibilities[2] = Joueurs sur le héros(Héros(Bouldozer), Toutes les équipes);
  • Global.Visibilities[3] = Joueurs sur le héros(Héros(Symmetra), Toutes les équipes);
  • Global.Visibilities[4] = Joueurs sur le héros(Héros(Écho), Toutes les équipes);
  • "Heroes locked"
  • Global.Visibilities[5] = Tableau filtré(Tous les joueurs(Toutes les équipes), Élément de tableau actuel.HeroesUnlocked[0] == Faux);
  • Global.Visibilities[6] = Tableau filtré(Tous les joueurs(Toutes les équipes), Élément de tableau actuel.HeroesUnlocked[1] == Faux);
  • Global.Visibilities[7] = Tableau filtré(Tous les joueurs(Toutes les équipes), Élément de tableau actuel.HeroesUnlocked[2] == Faux);
  • Global.Visibilities[8] = Tableau filtré(Tous les joueurs(Toutes les équipes), Élément de tableau actuel.HeroesUnlocked[3] == Faux);
  • "Portals locked"
  • Global.Visibilities[9] = Tableau filtré(Tous les joueurs(Toutes les équipes), Élément de tableau actuel.PortalUnlocked[0] == Faux);
  • Global.Visibilities[10] = Tableau filtré(Tous les joueurs(Toutes les équipes),
  • Élément de tableau actuel.PortalUnlocked[1] == Faux);
  • Global.Visibilities[11] = Tableau filtré(Tous les joueurs(Toutes les équipes),
  • Élément de tableau actuel.PortalUnlocked[2] == Faux);
  • Global.Visibilities[12] = Tableau filtré(Tous les joueurs(Toutes les équipes),
  • Élément de tableau actuel.PortalUnlocked[3] == Faux);
  • Global.Visibilities[13] = Tableau filtré(Tous les joueurs(Toutes les équipes),
  • Élément de tableau actuel.PortalUnlocked[4] == Faux);
  • Global.Visibilities[14] = Tableau filtré(Tous les joueurs(Toutes les équipes),
  • Élément de tableau actuel.PortalUnlocked[5] == Faux);
  • "Secrets"
  • Global.Visibilities[15] = Tableau filtré(Joueurs sur le héros(Héros(Soldat : 76), Toutes les équipes), Distance entre(Position de(
  • Élément de tableau actuel), Global.UnlockLocations[4]) <= 50);
  • Global.Visibilities[16] = Tableau filtré(Joueurs sur le héros(Héros(Mei), Toutes les équipes), Distance entre(Position de(
  • Élément de tableau actuel), Global.UnlockLocations[5]) <= 20);
  • Global.Visibilities[17] = Tableau filtré(Joueurs sur le héros(Héros(Bouldozer), Toutes les équipes), Distance entre(Position de(
  • Élément de tableau actuel), Global.UnlockLocations[6]) <= 15);
  • Global.Visibilities[18] = Tableau filtré(Joueurs sur le héros(Héros(Symmetra), Toutes les équipes), Distance entre(Position de(
  • Élément de tableau actuel), Global.UnlockLocations[7]) <= 20);
  • Global.Visibilities[19] = Tableau filtré(Joueurs sur le héros(Héros(Écho), Toutes les équipes), Distance entre(Position de(
  • Élément de tableau actuel), Global.UnlockLocations[8]) <= 20);
  • "Torb Unlocked"
  • Global.Visibilities[20] = Tableau filtré(Tous les joueurs(Toutes les équipes), Élément de tableau actuel.FoundSecretHero == Vrai);
  • "All Unlocked"
  • Global.Visibilities[21] = Tableau filtré(Tous les joueurs(Toutes les équipes),
  • Élément de tableau actuel.FoundSecretHero == Vrai && Élément de tableau actuel.ExtraHeroCount == 5);
  • Attente(1, Ignorer la condition);
  • Boucle;
  • }
  • }
  • règle("Visibilities (Global) - Faster reload")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "Player on Heroes"
  • Global.Visibilities[50] = Tableau filtré(Tous les joueurs(Toutes les équipes), Accroupi(Élément de tableau actuel)
  • == Faux || Élément de tableau actuel.HeroesUnlocked[4] != Vrai);
  • Global.Visibilities[51] = Tableau filtré(Tous les joueurs(Toutes les équipes), Accroupi(Élément de tableau actuel)
  • == Faux || Élément de tableau actuel.HeroesUnlocked[5] != Vrai);
  • Global.Visibilities[52] = Tableau filtré(Tous les joueurs(Toutes les équipes), Accroupi(Élément de tableau actuel)
  • == Faux || Élément de tableau actuel.HeroesUnlocked[6] != Vrai);
  • Global.Visibilities[53] = Tableau filtré(Tous les joueurs(Toutes les équipes), Accroupi(Élément de tableau actuel)
  • == Faux || Élément de tableau actuel.HeroesUnlocked[7] != Vrai);
  • Global.Visibilities[54] = Tableau filtré(Tous les joueurs(Toutes les équipes), Accroupi(Élément de tableau actuel)
  • == Faux || Élément de tableau actuel.HeroesUnlocked[8] != Vrai);
  • Global.Visibilities[55] = Tableau filtré(Tous les joueurs(Toutes les équipes), Accroupi(Élément de tableau actuel)
  • && Élément de tableau actuel.HeroesUnlocked[4] == Vrai);
  • Global.Visibilities[56] = Tableau filtré(Tous les joueurs(Toutes les équipes), Accroupi(Élément de tableau actuel)
  • && Élément de tableau actuel.HeroesUnlocked[5] == Vrai);
  • Global.Visibilities[57] = Tableau filtré(Tous les joueurs(Toutes les équipes), Accroupi(Élément de tableau actuel)
  • && Élément de tableau actuel.HeroesUnlocked[6] == Vrai);
  • Global.Visibilities[58] = Tableau filtré(Tous les joueurs(Toutes les équipes), Accroupi(Élément de tableau actuel)
  • && Élément de tableau actuel.HeroesUnlocked[7] == Vrai);
  • Global.Visibilities[59] = Tableau filtré(Tous les joueurs(Toutes les équipes), Accroupi(Élément de tableau actuel)
  • && Élément de tableau actuel.HeroesUnlocked[8] == Vrai);
  • Attente(0.250, Ignorer la condition);
  • Boucle;
  • }
  • }
  • règle("Visibilities (Player)")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • actions
  • {
  • Joueur exécutant.Visibilities[0] = Tableau filtré(Joueur exécutant, Joueur exécutant.Victory == Vrai);
  • Joueur exécutant.Visibilities[1] = Tableau filtré(Joueur exécutant, Joueur exécutant.ExtraSkillCount > 0);
  • Attente(1, Ignorer la condition);
  • Boucle;
  • }
  • }
  • règle("---------- EXTRA DATA ----------")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • }
  • règle("In World Text Locations")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "\"Heroes\" Text"
  • Global.InWorldText[0] = Vecteur(0, 0, 0);
  • }
  • }
  • règle("Tutorial Mode Tip Messages")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Joueur exécutant.TutorialMode == Vrai;
  • Bouton maintenu enfoncé(Joueur exécutant, Bouton(Mêlée)) == Vrai;
  • }
  • actions
  • {
  • Attente(0.500, Interrompre quand faux);
  • désactivé Si(Distance entre(Position de(Joueur exécutant), Global.HeroLocations[5]) > 66);
  • désactivé Créer du texte d’interface de barre de progression(Joueur exécutant, 100 - Distance entre(Position de(Joueur exécutant),
  • Global.HeroLocations[5]), Chaîne personnalisée("Distance"), Haut, 10, Couleur(Bleu ciel), Couleur(Bleu ciel), Visible pour,
  • Visibilité par défaut);
  • désactivé Sinon Si(Distance entre(Position de(Joueur exécutant), Global.HeroLocations[5]) > 33);
  • désactivé Créer du texte d’interface de barre de progression(Joueur exécutant, 100 - Distance entre(Position de(Joueur exécutant),
  • Global.HeroLocations[5]), Chaîne personnalisée("Distance"), Haut, 10, Couleur(Jaune), Couleur(Jaune), Visible pour,
  • Visibilité par défaut);
  • désactivé Sinon;
  • désactivé Créer du texte d’interface de barre de progression(Joueur exécutant, 100 - Distance entre(Position de(Joueur exécutant),
  • Global.HeroLocations[5]), Chaîne personnalisée("Distance"), Haut, 10, Couleur(Rouge), Couleur(Rouge), Visible pour,
  • Visibilité par défaut);
  • désactivé Fin;
  • désactivé Attente(0.100, Ignorer la condition);
  • désactivé Joueur exécutant.Compass = Dernier identifiant de texte;
  • désactivé Attente(2, Ignorer la condition);
  • désactivé Détruire le texte d’interface de barre de progression(Dernier identifiant de texte);
  • Si(Joueur exécutant.SkillsUnlocked[0] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: Search for the first {0} Ability\r\nUse the wall ledges which are landable", Chaîne d’icône du héros(Héros(
  • Soldat : 76))));
  • Sinon Si(Joueur exécutant.SkillsUnlocked[1] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: Search for the second {0} Ability\r\nThe sculpture in the middle of Zenyatta Statues get 2 steps",
  • Chaîne d’icône du héros(Héros(Soldat : 76))));
  • Sinon Si(Joueur exécutant.ZonesReached[0] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: You can now reach the first zone using your abilities",
  • Chaîne d’icône du héros(Héros(Soldat : 76))));
  • Sinon Si(Joueur exécutant.HeroesUnlocked[0] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Find {0} near Zone 1", Chaîne d’icône du héros(Héros(Mei))));
  • Sinon Si(Joueur exécutant.SkillsUnlocked[3] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Search for the first {0} Ability\r\nUse some wall ledges again",
  • Chaîne d’icône du héros(Héros(Mei))));
  • Sinon Si(Joueur exécutant.SkillsUnlocked[4] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: Search for the second {0} Ability\r\nYou can now go through small lava zones with {1}", Chaîne d’icône du héros(Héros(
  • Mei)), Chaîne d’icône de la capacité(Héros(Mei), Bouton(Capacité 1))));
  • Sinon Si(Joueur exécutant.ZonesReached[1] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: Use {0} and its abilities to reach Zone 2\r\nSearch near the place you found {0}, something could help you",
  • Chaîne d’icône du héros(Héros(Mei))));
  • Sinon Si(Joueur exécutant.HeroesUnlocked[1] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: Find {0} in Zone 2 using {1}\r\nSearch for the CheckPoint first and go ahead", Chaîne d’icône du héros(Héros(Bouldozer)),
  • Chaîne d’icône du héros(Héros(Soldat : 76))));
  • Sinon Si(Joueur exécutant.SkillsUnlocked[6] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Search for the first {0} Ability in Zone 1", Chaîne d’icône du héros(
  • Héros(Bouldozer))));
  • Sinon Si(Joueur exécutant.SkillsUnlocked[7] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: Search for the second {0} Ability in Zone 2\r\n/!\\ Don't teleport back to zone after getting it",
  • Chaîne d’icône du héros(Héros(Bouldozer))));
  • Sinon Si(Joueur exécutant.ZonesReached[2] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: Use {0} and its abilities to reach Zone 3\r\nFrom the {0} unlock point go ahead to reach a portal",
  • Chaîne d’icône du héros(Héros(Bouldozer))));
  • Sinon Si(Joueur exécutant.HeroesUnlocked[2] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: Find {0} in Zone 3 using {1}\r\nSearch for a new CheckPoint first and go ahead", Chaîne d’icône du héros(Héros(
  • Symmetra)), Chaîne d’icône du héros(Héros(Mei))));
  • Sinon Si(Joueur exécutant.SkillsUnlocked[9] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Search for the {0} Ability in Zone 3", Chaîne d’icône du héros(Héros(
  • Symmetra))));
  • Sinon Si(Joueur exécutant.HeroesUnlocked[3] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Find {0} in Zone 1 using {1}", Chaîne d’icône du héros(Héros(Écho)),
  • Chaîne d’icône du héros(Héros(Symmetra))));
  • Sinon Si(Joueur exécutant.SkillsUnlocked[11] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Search for the {0} Ability in Zone 3", Chaîne d’icône du héros(Héros(
  • Écho))));
  • Sinon Si(Joueur exécutant.FoundSecretHero == Faux);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Find the secret character hidden somewhere in this map !"));
  • Sinon Si(Héros de(Joueur exécutant) == Héros(Soldat : 76) && Joueur exécutant.SkillsUnlocked[2] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Find the {0} secret ability hidden in Zone 3",
  • Chaîne d’icône du héros(Héros de(Joueur exécutant))));
  • Sinon Si(Héros de(Joueur exécutant) == Héros(Mei) && Joueur exécutant.SkillsUnlocked[5] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Find the {0} secret ability hidden in Zone 3",
  • Chaîne d’icône du héros(Héros de(Joueur exécutant))));
  • Sinon Si(Héros de(Joueur exécutant) == Héros(Bouldozer) && Joueur exécutant.SkillsUnlocked[8] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Find the {0} secret ability hidden in Zone 3",
  • Chaîne d’icône du héros(Héros de(Joueur exécutant))));
  • Sinon Si(Héros de(Joueur exécutant) == Héros(Symmetra) && Joueur exécutant.SkillsUnlocked[10] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Find the {0} secret ability hidden in Zone 2",
  • Chaîne d’icône du héros(Héros de(Joueur exécutant))));
  • Sinon Si(Héros de(Joueur exécutant) == Héros(Écho) && Joueur exécutant.SkillsUnlocked[12] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Find the {0} secret ability hidden in Zone 1",
  • Chaîne d’icône du héros(Héros de(Joueur exécutant))));
  • Sinon Si(Héros de(Joueur exécutant) == Héros(Soldat : 76) && Joueur exécutant.HeroesUnlocked[4] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: {0} Likes speed and his glasses are\r\na good wind and snow protection !", Chaîne d’icône du héros(Héros(Soldat : 76))));
  • Sinon Si(Héros de(Joueur exécutant) == Héros(Mei) && Joueur exécutant.HeroesUnlocked[5] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: With enough speed, the {0} can break big glasses",
  • Chaîne d’icône de la capacité(Héros(Mei), Bouton(Capacité 1))));
  • Sinon Si(Héros de(Joueur exécutant) == Héros(Bouldozer) && Joueur exécutant.HeroesUnlocked[6] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: You can now dig through the ground.\r\nJumping from stairs seems a good idea to use the {0}",
  • Chaîne d’icône de la capacité(Héros(Bouldozer), Bouton(S’accroupir))));
  • Sinon Si(Héros de(Joueur exécutant) == Héros(Symmetra) && Joueur exécutant.HeroesUnlocked[7] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: There are some places near bell clusters\r\nthat you can now enter with your new ability", Chaîne d’icône du héros(Héros(
  • Mei))));
  • Sinon Si(Héros de(Joueur exécutant) == Héros(Écho) && Joueur exécutant.HeroesUnlocked[8] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: You can now go through anything except those spheres\r\nyou should try on some doors to see what is hidden behind",
  • Chaîne d’icône du héros(Héros(Mei))));
  • Sinon Si(
  • Joueur exécutant.HeroesUnlocked[4] != Vrai || Joueur exécutant.HeroesUnlocked[5] != Vrai || Joueur exécutant.HeroesUnlocked[6] != Vrai || Joueur exécutant.HeroesUnlocked[7] != Vrai || Joueur exécutant.HeroesUnlocked[8] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Check tips on other heroes,\r\nextra heroes remain undiscovered"));
  • Sinon Si(Joueur exécutant.FoundSecretHero2 == Faux);
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "Tip: Find the last secret character (not really) hidden somewhere in this map !"));
  • Sinon;
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tip: Join discord.me/lavaparkour for more maps !"));
  • Fin;
  • }
  • }
  • règle("---------- EFFECTS ----------")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • }
  • règle("Loading Data")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Si(Global.LoadingElementIndex > Global.MaxObjectIndex[Global.LoadingObjectIndex]);
  • Global.LoadingObjectIndex += 1;
  • Global.LoadingElementIndex = 0;
  • Fin;
  • "Load Lava"
  • Si(Global.LoadingObjectIndex == 0);
  • Si(Global.LavaLocations[Global.LoadingElementIndex] != Vecteur(0, 0, 0)
  • && Global.LavaLocations[Global.LoadingElementIndex] != Non applicable);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Sphère, Couleur(Bleu ciel), Global.LavaLocations[Global.LoadingElementIndex],
  • Global.LavaRadius[Global.LoadingElementIndex], Visible pour);
  • Fin;
  • Attente(0.030, Ignorer la condition);
  • Global.LoadingElementIndex += 1;
  • Boucle;
  • "Load Checkpoints"
  • Sinon Si(Global.LoadingObjectIndex == 1);
  • Si(Global.CheckpointLocations[Global.LoadingElementIndex] != Vecteur(0, 0, 0)
  • && Global.CheckpointLocations[Global.LoadingElementIndex] != Non applicable);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Puits de lumière, Couleur(Blanc),
  • Global.CheckpointLocations[Global.LoadingElementIndex], 1, Visible pour);
  • Fin;
  • Attente(0.030, Ignorer la condition);
  • Global.LoadingElementIndex += 1;
  • Boucle;
  • "Load Zones"
  • Sinon Si(Global.LoadingObjectIndex == 2);
  • Si(Global.ZoneLocations[Global.LoadingElementIndex] != Vecteur(0, 0, 0)
  • && Global.ZoneLocations[Global.LoadingElementIndex] != Non applicable);
  • "Zones"
  • Si(Global.LoadingElementIndex > 0);
  • Créer du texte en jeu(Tous les joueurs(Toutes les équipes), Global.ZoneText[Global.LoadingElementIndex],
  • Global.ZoneLocations[Global.LoadingElementIndex] + Vecteur(0, 3, 0), 3, Masquer derrière les surfaces, Visible pour, Couleur(
  • Blanc), Visibilité par défaut);
  • Attente(0.030, Ignorer la condition);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Puits de lumière, Couleur(Blanc),
  • Global.ZoneLocations[Global.LoadingElementIndex], 2, Visible pour);
  • Fin;
  • Fin;
  • Attente(0.030, Ignorer la condition);
  • Global.LoadingElementIndex += 1;
  • Boucle;
  • "Load Portals"
  • Sinon Si(Global.LoadingObjectIndex == 3);
  • Si(Global.PortalLocations[Global.LoadingElementIndex] != Vecteur(0, 0, 0)
  • && Global.PortalLocations[Global.LoadingElementIndex] != Non applicable);
  • Créer du texte en jeu(Tous les joueurs(Toutes les équipes), Global.PortalText[Global.LoadingElementIndex],
  • Global.PortalLocations[Global.LoadingElementIndex], 1.500, Masquer derrière les surfaces, Visible pour, Couleur(Blanc),
  • Visibilité par défaut);
  • Attente(0.030, Ignorer la condition);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Bonne aura, Couleur(Blanc),
  • Global.PortalLocations[Global.LoadingElementIndex], 1, Visible pour);
  • Fin;
  • Attente(0.030, Ignorer la condition);
  • Global.LoadingElementIndex += 1;
  • Boucle;
  • "Load Heroes"
  • Sinon Si(Global.LoadingObjectIndex == 4);
  • Si(Global.HeroLocations[Global.LoadingElementIndex] != Vecteur(0, 0, 0)
  • && Global.HeroLocations[Global.LoadingElementIndex] != Non applicable);
  • Attente(0.030, Ignorer la condition);
  • Si(Global.LoadingElementIndex == 0);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Mauvaise aura, Couleur(Jaune), Global.HeroLocations[0], 1, Visible pour);
  • Créer du texte en jeu(Global.Visibilities[50], Chaîne d’icône du héros(Global.HeroRoster[0]), Global.HeroLocations[0] + Vecteur(0,
  • -0.300, 0), 2, Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Créer du texte en jeu(Global.Visibilities[55], Chaîne d’icône du héros(Global.HeroRoster[6]), Global.HeroLocations[0] + Vecteur(0,
  • -0.300, 0), 2, Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Sinon Si(Global.LoadingElementIndex == 1);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Mauvaise aura, Couleur(Vert), Global.HeroLocations[1], 1, Visible pour);
  • Créer du texte en jeu(Global.Visibilities[51], Chaîne d’icône du héros(Global.HeroRoster[1]), Global.HeroLocations[1] + Vecteur(0,
  • -0.300, 0), 2, Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Créer du texte en jeu(Global.Visibilities[56], Chaîne d’icône du héros(Global.HeroRoster[7]), Global.HeroLocations[1] + Vecteur(0,
  • -0.300, 0), 2, Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Sinon Si(Global.LoadingElementIndex == 2);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Mauvaise aura, Couleur(Bleu), Global.HeroLocations[2], 1, Visible pour);
  • Créer du texte en jeu(Global.Visibilities[52], Chaîne d’icône du héros(Global.HeroRoster[2]), Global.HeroLocations[2] + Vecteur(0,
  • -0.300, 0), 2, Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Créer du texte en jeu(Global.Visibilities[57], Chaîne d’icône du héros(Global.HeroRoster[8]), Global.HeroLocations[2] + Vecteur(0,
  • -0.300, 0), 2, Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Sinon Si(Global.LoadingElementIndex == 3);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Mauvaise aura, Couleur(Violet), Global.HeroLocations[3], 1, Visible pour);
  • Créer du texte en jeu(Global.Visibilities[53], Chaîne d’icône du héros(Global.HeroRoster[3]), Global.HeroLocations[3] + Vecteur(0,
  • -0.300, 0), 2, Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Créer du texte en jeu(Global.Visibilities[58], Chaîne d’icône du héros(Global.HeroRoster[9]), Global.HeroLocations[3] + Vecteur(0,
  • -0.300, 0), 2, Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Sinon Si(Global.LoadingElementIndex == 4);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Mauvaise aura, Couleur(Rouge), Global.HeroLocations[4], 1, Visible pour);
  • Créer du texte en jeu(Global.Visibilities[54], Chaîne d’icône du héros(Global.HeroRoster[4]), Global.HeroLocations[4] + Vecteur(0,
  • -0.300, 0), 2, Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Créer du texte en jeu(Global.Visibilities[59], Chaîne d’icône du héros(Global.HeroRoster[10]), Global.HeroLocations[4] + Vecteur(0,
  • -0.300, 0), 2, Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Sinon Si(Global.LoadingElementIndex == 5);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Mauvaise aura, Couleur(Blanc), Global.HeroLocations[5], 1, Visible pour);
  • Créer un effet(Global.Visibilities[20], Mauvaise aura, Couleur(Blanc), Global.HeroLocations[10], 1, Visible pour);
  • Sinon Si(Global.LoadingElementIndex == 6);
  • Créer un effet(Global.Visibilities[21], Mauvaise aura, Couleur(Blanc), Global.HeroLocations[6], 1, Visible pour);
  • Fin;
  • Fin;
  • Attente(0.030, Ignorer la condition);
  • Global.LoadingElementIndex += 1;
  • Boucle;
  • "Load Unlocks"
  • Sinon Si(Global.LoadingObjectIndex == 5);
  • Si(Global.UnlockLocations[Global.LoadingElementIndex] != Vecteur(0, 0, 0)
  • && Global.UnlockLocations[Global.LoadingElementIndex] != Non applicable);
  • Si(Global.LoadingElementIndex <= 3);
  • Créer du texte en jeu(Tous les joueurs(Toutes les équipes), Chaîne d’icône du héros(
  • Global.HeroRoster[Global.LoadingElementIndex + 1]), Global.UnlockLocations[Global.LoadingElementIndex], 2,
  • Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Fin;
  • Attente(0.030, Ignorer la condition);
  • Si(Global.LoadingElementIndex == 0);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Etincelles, Couleur(Vert), Global.UnlockLocations[0], 1, Visible pour);
  • Sinon Si(Global.LoadingElementIndex == 1);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Etincelles, Couleur(Bleu), Global.UnlockLocations[1], 1, Visible pour);
  • Sinon Si(Global.LoadingElementIndex == 2);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Etincelles, Couleur(Violet), Global.UnlockLocations[2], 1, Visible pour);
  • Sinon Si(Global.LoadingElementIndex == 3);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Etincelles, Couleur(Rouge), Global.UnlockLocations[3], 1, Visible pour);
  • "Secret Heroes"
  • Sinon Si(Global.LoadingElementIndex == 4);
  • Créer un effet(Global.Visibilities[15], Etincelles, Couleur(Vert), Global.UnlockLocations[4], 1, Visible pour);
  • Créer du texte en jeu(Global.Visibilities[15], Chaîne d’icône du héros(Global.HeroRoster[6]), Global.UnlockLocations[4], 2,
  • Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Sinon Si(Global.LoadingElementIndex == 5);
  • Créer un effet(Global.Visibilities[16], Etincelles, Couleur(Vert), Global.UnlockLocations[5], 1, Visible pour);
  • Créer du texte en jeu(Global.Visibilities[16], Chaîne d’icône du héros(Global.HeroRoster[7]), Global.UnlockLocations[5], 2,
  • Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Sinon Si(Global.LoadingElementIndex == 6);
  • Créer un effet(Global.Visibilities[17], Etincelles, Couleur(Vert), Global.UnlockLocations[6], 1, Visible pour);
  • Créer du texte en jeu(Global.Visibilities[17], Chaîne d’icône du héros(Global.HeroRoster[8]), Global.UnlockLocations[6], 2,
  • Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Sinon Si(Global.LoadingElementIndex == 7);
  • Créer un effet(Global.Visibilities[18], Etincelles, Couleur(Vert), Global.UnlockLocations[7], 1, Visible pour);
  • Créer du texte en jeu(Global.Visibilities[18], Chaîne d’icône du héros(Global.HeroRoster[9]), Global.UnlockLocations[7], 2,
  • Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Sinon Si(Global.LoadingElementIndex == 8);
  • Créer un effet(Global.Visibilities[19], Etincelles, Couleur(Vert), Global.UnlockLocations[8], 1, Visible pour);
  • Créer du texte en jeu(Global.Visibilities[19], Chaîne d’icône du héros(Global.HeroRoster[10]), Global.UnlockLocations[8], 2,
  • Masquer derrière les surfaces, Visible pour, Couleur(Blanc), Visibilité par défaut);
  • Fin;
  • Fin;
  • Attente(0.030, Ignorer la condition);
  • Global.LoadingElementIndex += 1;
  • Boucle;
  • "Load Speedrun"
  • Sinon Si(Global.LoadingObjectIndex == 6);
  • Si(Global.SpeedrunLocation != Vecteur(0, 0, 0) && Global.SpeedrunLocation != Non applicable);
  • Créer du texte en jeu(Tous les joueurs(Toutes les équipes), Chaîne personnalisée("Speedrun Mode"), Global.SpeedrunLocation, 1,
  • Masquer derrière les surfaces, Visible pour, Couleur(Rouge), Visibilité par défaut);
  • Attente(0.030, Ignorer la condition);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Bonne aura, Couleur(Rouge), Global.SpeedrunLocation, 1, Visible pour);
  • Fin;
  • Attente(0.030, Ignorer la condition);
  • Global.LoadingElementIndex += 1;
  • Boucle;
  • "Load Bouncepads"
  • Sinon Si(Global.LoadingObjectIndex == 7);
  • Si(Global.BouncepadLocations[Global.LoadingElementIndex] != Vecteur(0, 0, 0)
  • && Global.BouncepadLocations[Global.LoadingElementIndex] != Non applicable);
  • Créer un effet(Tous les joueurs(Toutes les équipes), Orbe, Couleur(Vert), Global.BouncepadLocations[Global.LoadingElementIndex], 1,
  • Visible pour);
  • Fin;
  • Attente(0.030, Ignorer la condition);
  • Global.LoadingElementIndex += 1;
  • Boucle;
  • Fin;
  • }
  • }
  • règle("Locked Text Effects")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "Heroes"
  • Si(Global.HeroLocations[1] != Vecteur(0, 0, 0));
  • Créer du texte en jeu(Global.Visibilities[5], Chaîne personnalisée("L O C K E D"), Global.HeroLocations[1] + Vecteur(0, -0.750, 0),
  • 1.250, Masquer derrière les surfaces, Visible pour, Couleur(Orange), Visibilité par défaut);
  • Fin;
  • Si(Global.HeroLocations[2] != Vecteur(0, 0, 0));
  • Créer du texte en jeu(Global.Visibilities[6], Chaîne personnalisée("L O C K E D"), Global.HeroLocations[2] + Vecteur(0, -0.750, 0),
  • 1.250, Masquer derrière les surfaces, Visible pour, Couleur(Orange), Visibilité par défaut);
  • Fin;
  • Attente(0.510, Ignorer la condition);
  • Si(Global.HeroLocations[3] != Vecteur(0, 0, 0));
  • Créer du texte en jeu(Global.Visibilities[7], Chaîne personnalisée("L O C K E D"), Global.HeroLocations[3] + Vecteur(0, -0.750, 0),
  • 1.250, Masquer derrière les surfaces, Visible pour, Couleur(Orange), Visibilité par défaut);
  • Fin;
  • Si(Global.HeroLocations[4] != Vecteur(0, 0, 0));
  • Créer du texte en jeu(Global.Visibilities[8], Chaîne personnalisée("L O C K E D"), Global.HeroLocations[4] + Vecteur(0, -0.750, 0),
  • 1.250, Masquer derrière les surfaces, Visible pour, Couleur(Orange), Visibilité par défaut);
  • Fin;
  • "Portals"
  • Si(Global.PortalLocations[0] != Vecteur(0, 0, 0));
  • Créer du texte en jeu(Global.Visibilities[9], Chaîne personnalisée("L O C K E D"), Global.PortalLocations[0] + Vecteur(0, -0.500,
  • 0), 1.250, Masquer derrière les surfaces, Visible pour, Couleur(Orange), Visibilité par défaut);
  • Fin;
  • Si(Global.PortalLocations[1] != Vecteur(0, 0, 0));
  • Créer du texte en jeu(Global.Visibilities[10], Chaîne personnalisée("L O C K E D"), Global.PortalLocations[1] + Vecteur(0, -0.500,
  • 0), 1.250, Masquer derrière les surfaces, Visible pour, Couleur(Orange), Visibilité par défaut);
  • Fin;
  • Si(Global.PortalLocations[2] != Vecteur(0, 0, 0));
  • Créer du texte en jeu(Global.Visibilities[11], Chaîne personnalisée("L O C K E D"), Global.PortalLocations[2] + Vecteur(0, -0.500,
  • 0), 1.250, Masquer derrière les surfaces, Visible pour, Couleur(Orange), Visibilité par défaut);
  • Fin;
  • Attente(0.510, Ignorer la condition);
  • Si(Global.PortalLocations[3] != Vecteur(0, 0, 0));
  • Créer du texte en jeu(Global.Visibilities[12], Chaîne personnalisée("L O C K E D"), Global.PortalLocations[3] + Vecteur(0, -0.500,
  • 0), 1.250, Masquer derrière les surfaces, Visible pour, Couleur(Orange), Visibilité par défaut);
  • Fin;
  • Si(Global.PortalLocations[4] != Vecteur(0, 0, 0));
  • Créer du texte en jeu(Global.Visibilities[13], Chaîne personnalisée("L O C K E D"), Global.PortalLocations[4] + Vecteur(0, -0.500,
  • 0), 1.250, Masquer derrière les surfaces, Visible pour, Couleur(Orange), Visibilité par défaut);
  • Fin;
  • Si(Global.PortalLocations[5] != Vecteur(0, 0, 0));
  • Créer du texte en jeu(Global.Visibilities[14], Chaîne personnalisée("L O C K E D"), Global.PortalLocations[5] + Vecteur(0, -0.500,
  • 0), 1.250, Masquer derrière les surfaces, Visible pour, Couleur(Orange), Visibilité par défaut);
  • Fin;
  • }
  • }
  • règle("In World Text Effects")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "\"Heroes\" Text"
  • Si(Global.InWorldText[0] != Vecteur(0, 0, 0));
  • Créer du texte en jeu(Tous les joueurs(Toutes les équipes), Chaîne de texte("Héros"), Global.InWorldText[0], 3,
  • Masquer derrière les surfaces, Visible pour et Chaîne de texte, Couleur(Blanc), Visibilité par défaut);
  • Fin;
  • Créer du texte en jeu(Global.Visibilities[0], Chaîne personnalisée("Find your abilities first to enable it"), Vecteur(81.450,
  • 133.650, 85.200), 1, Masquer derrière les surfaces, Visible pour, Couleur(Jaune), Visibilité par défaut);
  • Créer du texte en jeu(Global.Visibilities[0], Chaîne personnalisée("Each hero has to unlock his own abilities"), Vecteur(81.450,
  • 133.350, 85.200), 1, Masquer derrière les surfaces, Visible pour, Couleur(Jaune), Visibilité par défaut);
  • }
  • }
  • règle("---------- FUNCTIONALITY ----------")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • }
  • désactivé règle("Spawn Room Move")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Dans la salle d’apparition(Joueur exécutant) == Vrai;
  • }
  • actions
  • {
  • Téléportation(Joueur exécutant, Joueur exécutant.Respawn);
  • Attente(0.025, Ignorer la condition);
  • Définir la direction du regard(Joueur exécutant, Global.SpawnFaceDirection, Au monde);
  • }
  • }
  • règle("Lava Death")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Apparition(Joueur exécutant) == Vrai;
  • En vie(Joueur exécutant) == Vrai;
  • Héros de(Joueur exécutant) != Global.HeroRoster[5];
  • Héros de(Joueur exécutant) != Global.HeroRoster[11];
  • Joueur exécutant.CanDie == Vrai;
  • désactivé Vrai pour n’importe qui(Global.LavaLocations, Distance entre(Position de(Joueur exécutant) + Vecteur(0, 0.300, 0),
  • Élément de tableau actuel) < Global.LavaRadius[Index de la valeur de tableau(Global.LavaLocations, Élément de tableau actuel)])
  • == Vrai;
  • }
  • actions
  • {
  • Si(Vrai pour n’importe qui(Global.LavaLocations, Distance entre(Position de(Joueur exécutant) + Vecteur(0, 0.300, 0),
  • Élément de tableau actuel) < Global.LavaRadius[Index de la valeur de tableau(Global.LavaLocations, Élément de tableau actuel)])
  • == Vrai);
  • Si(Héros de(Joueur exécutant) == Héros(Moira) && Capacité 1 utilisée(Joueur exécutant) == Vrai);
  • Attente(0.100, Ignorer la condition);
  • Boucle si la condition est vraie;
  • Sinon Si(Héros de(Joueur exécutant) == Héros(Faucheur) && Capacité 1 utilisée(Joueur exécutant) == Vrai);
  • Attente(0.100, Ignorer la condition);
  • Boucle si la condition est vraie;
  • Sinon Si(Héros de(Joueur exécutant) == Héros(Mei) && Capacité 1 utilisée(Joueur exécutant) == Vrai);
  • Attente(0.100, Ignorer la condition);
  • Boucle si la condition est vraie;
  • Fin;
  • Tuer(Joueur exécutant, Non applicable);
  • Fin;
  • Attente(0.100, Ignorer la condition);
  • Attente(0.200, Ignorer la condition);
  • Boucle si la condition est vraie;
  • }
  • }
  • règle("Respawning")
  • {
  • évènement
  • {
  • Un joueur meurt;
  • Les deux;
  • Tout;
  • }
  • actions
  • {
  • Si(Joueur exécutant.Victory == Faux);
  • Joueur exécutant.Deaths += 1;
  • Fin;
  • Attente(0.400, Ignorer la condition);
  • Téléportation(Joueur exécutant, Joueur exécutant.Respawn);
  • Attente(0.400, Ignorer la condition);
  • Ressusciter(Joueur exécutant);
  • Effacer le statut(Joueur exécutant, Déphasé);
  • Désactiver la collision des mouvements avec les joueurs(Joueur exécutant);
  • Si(Joueur exécutant.Respawn == Global.ZoneLocations[0]);
  • Si(Décompte de(Tableau filtré(Joueur exécutant.HeroesUnlocked, Élément de tableau actuel == Vrai)) == 0);
  • Joueur exécutant.Timer = 0;
  • Joueur exécutant.Deaths = 0;
  • Fin;
  • Fin;
  • Définir le temps de recharge de la capacité(Joueur exécutant, Bouton(Capacité 1), 0);
  • Définir le temps de recharge de la capacité(Joueur exécutant, Bouton(Capacité 2), 0);
  • Définir le temps de recharge de la capacité(Joueur exécutant, Bouton(Tir secondaire), 0);
  • }
  • }
  • règle("Checkpoint")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Apparition(Joueur exécutant) == Vrai;
  • Héros de(Joueur exécutant) != Global.HeroRoster[5];
  • Héros de(Joueur exécutant) != Global.HeroRoster[11];
  • Joueur exécutant.CanDie == Vrai;
  • désactivé Vrai pour n’importe qui(Tableau filtré(Global.CheckpointLocations, Élément de tableau actuel != Vecteur(0, 0, 0)), Distance entre(
  • Position des yeux(Joueur exécutant), Élément de tableau actuel) < 1) == Vrai;
  • Vrai pour n’importe qui(Global.CheckpointLocations, Distance entre(Position de(Joueur exécutant), Élément de tableau actuel) <= 1)
  • == Vrai;
  • }
  • actions
  • {
  • Si(Joueur exécutant.Respawn != Global.CheckpointLocations[0] && Distance entre(Position de(Joueur exécutant),
  • Global.CheckpointLocations[0]) <= 1);
  • Joueur exécutant.Respawn = Global.CheckpointLocations[0];
  • Joueur exécutant.AlternativeRespawn = Global.CheckpointLocations[0];
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Checkpoint !"));
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Joueur exécutant.Respawn != Global.CheckpointLocations[1] && Distance entre(Position de(Joueur exécutant),
  • Global.CheckpointLocations[1]) <= 1);
  • Joueur exécutant.Respawn = Global.CheckpointLocations[1];
  • Joueur exécutant.AlternativeRespawn = Global.CheckpointLocations[1];
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Checkpoint !"));
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Joueur exécutant.Respawn != Global.CheckpointLocations[2] && Distance entre(Position de(Joueur exécutant),
  • Global.CheckpointLocations[2]) <= 1);
  • Joueur exécutant.Respawn = Global.CheckpointLocations[2];
  • Joueur exécutant.AlternativeRespawn = Global.CheckpointLocations[2];
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Checkpoint !"));
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Joueur exécutant.Respawn != Global.CheckpointLocations[3] && Distance entre(Position de(Joueur exécutant),
  • Global.CheckpointLocations[3]) <= 1);
  • Joueur exécutant.Respawn = Global.CheckpointLocations[3];
  • Joueur exécutant.AlternativeRespawn = Global.CheckpointLocations[3];
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Hidden Checkpoint !"));
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Fin;
  • Attente(0.100, Ignorer la condition);
  • Boucle si la condition est vraie;
  • }
  • }
  • règle("Zones")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Apparition(Joueur exécutant) == Vrai;
  • Héros de(Joueur exécutant) != Global.HeroRoster[5];
  • Joueur exécutant.CanDie == Vrai;
  • }
  • actions
  • {
  • Si(Global.ZoneLocations[1] != Vecteur(0, 0, 0));
  • Si(Joueur exécutant.Respawn != Global.ZoneLocations[1] && Distance entre(Position de(Joueur exécutant), Global.ZoneLocations[1])
  • <= 2);
  • Joueur exécutant.Respawn = Global.ZoneLocations[1];
  • Message en petit(Joueur exécutant, Chaîne personnalisée("{0}!", Chaîne de texte("Point de contrôle")));
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Si(Joueur exécutant.ZonesReached[0] == Faux);
  • Joueur exécutant.ZonesReached[0] = Vrai;
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée(" \r\n{0} {1} {2}", Joueur exécutant, Chaîne de texte(
  • "Atteint"), Global.ZoneText[1]));
  • Sous-programme à appeler(UpdateCount);
  • Fin;
  • Fin;
  • Fin;
  • Si(Global.ZoneLocations[2] != Vecteur(0, 0, 0));
  • Si(Joueur exécutant.Respawn != Global.ZoneLocations[2] && Distance entre(Position de(Joueur exécutant), Global.ZoneLocations[2])
  • <= 2);
  • Joueur exécutant.Respawn = Global.ZoneLocations[2];
  • Joueur exécutant.AlternativeRespawn = Global.ZoneLocations[2];
  • Message en petit(Joueur exécutant, Chaîne personnalisée("{0}!", Chaîne de texte("Point de contrôle")));
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Si(Joueur exécutant.ZonesReached[1] == Faux);
  • Joueur exécutant.ZonesReached[1] = Vrai;
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée(" \r\n{0} {1} {2}", Joueur exécutant, Chaîne de texte(
  • "Atteint"), Global.ZoneText[2]));
  • Sous-programme à appeler(UpdateCount);
  • Fin;
  • Fin;
  • Fin;
  • Si(Global.ZoneLocations[3] != Vecteur(0, 0, 0));
  • Si(Joueur exécutant.Respawn != Global.ZoneLocations[3] && Distance entre(Position de(Joueur exécutant), Global.ZoneLocations[3])
  • <= 2);
  • Joueur exécutant.Respawn = Global.ZoneLocations[3];
  • Joueur exécutant.AlternativeRespawn = Global.ZoneLocations[3];
  • Message en petit(Joueur exécutant, Chaîne personnalisée("{0}!", Chaîne de texte("Point de contrôle")));
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Si(Joueur exécutant.ZonesReached[2] == Faux);
  • Joueur exécutant.ZonesReached[2] = Vrai;
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée(" \r\n{0} {1} {2}", Joueur exécutant, Chaîne de texte(
  • "Atteint"), Global.ZoneText[3]));
  • Sous-programme à appeler(UpdateCount);
  • Fin;
  • Fin;
  • Fin;
  • Si(Global.ZoneLocations[4] != Vecteur(0, 0, 0));
  • Si(Joueur exécutant.Respawn != Global.ZoneLocations[4] && Distance entre(Position de(Joueur exécutant), Global.ZoneLocations[4])
  • <= 2);
  • Joueur exécutant.Respawn = Global.ZoneLocations[4];
  • Joueur exécutant.AlternativeRespawn = Global.ZoneLocations[4];
  • Message en petit(Joueur exécutant, Chaîne personnalisée("{0}!", Chaîne de texte("Point de contrôle")));
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Si(Joueur exécutant.ZonesReached[3] == Faux);
  • Joueur exécutant.ZonesReached[3] = Vrai;
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée(" \r\n{0} {1} {2}", Joueur exécutant, Chaîne de texte(
  • "Atteint"), Global.ZoneText[4]));
  • Sous-programme à appeler(UpdateCount);
  • Fin;
  • Fin;
  • Fin;
  • Attente(0.100, Ignorer la condition);
  • Boucle si la condition est vraie;
  • }
  • }
  • règle("Hero Swap")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Bouton maintenu enfoncé(Joueur exécutant, Bouton(Interaction)) == Vrai;
  • Vrai pour n’importe qui(Tableau filtré(Global.HeroLocations, Élément de tableau actuel != Vecteur(0, 0, 0)), Distance entre(
  • Position des yeux(Joueur exécutant), Élément de tableau actuel) < 1.500) == Vrai;
  • }
  • actions
  • {
  • Pour variable de joueur(Joueur exécutant, LoopCounter, 0, Global.MaxObjectIndex[4] + 1, 1);
  • Si(Global.HeroLocations[Joueur exécutant.LoopCounter] != Vecteur(0, 0, 0)
  • && Global.HeroLocations[Joueur exécutant.LoopCounter] != 0);
  • Si(Joueur exécutant.HeroesUnlocked[Joueur exécutant.LoopCounter - 1] == Vrai || Joueur exécutant.LoopCounter == 0);
  • Si(Distance entre(Position des yeux(Joueur exécutant), Global.HeroLocations[Joueur exécutant.LoopCounter]) <= 1.500);
  • Si(Accroupi(Joueur exécutant) && Joueur exécutant.HeroesUnlocked[Joueur exécutant.LoopCounter + 4]);
  • Forcer un héros(Joueur exécutant, Global.HeroRoster[Joueur exécutant.LoopCounter + 6]);
  • Sinon;
  • Forcer un héros(Joueur exécutant, Global.HeroRoster[Joueur exécutant.LoopCounter]);
  • Si(Joueur exécutant.Respawn == Global.ZoneLocations[1]);
  • Joueur exécutant.AlternativeRespawn = Non applicable;
  • Fin;
  • Joueur exécutant.SymmetraPads = Non applicable;
  • Définir l’activation du tir secondaire(Joueur exécutant, Faux);
  • Définir l’activation de la capacité 1(Joueur exécutant, Faux);
  • Définir l’activation de la capacité 2(Joueur exécutant, Faux);
  • Attente(0.100, Ignorer la condition);
  • "Secondary Shot"
  • Si((Héros de(Joueur exécutant) == Héros(Soldat : 76) && Joueur exécutant.SkillsUnlocked[1] == Vrai) || (Héros de(Joueur exécutant)
  • == Héros(Bouldozer) && Joueur exécutant.SkillsUnlocked[7] == Vrai) || (Héros de(Joueur exécutant) == Héros(Symmetra)
  • && Joueur exécutant.SkillsUnlocked[10] == Vrai));
  • Définir l’activation du tir secondaire(Joueur exécutant, Vrai);
  • Fin;
  • "Ability 1"
  • Si((Héros de(Joueur exécutant) == Héros(Soldat : 76) && Joueur exécutant.SkillsUnlocked[0] == Vrai) || (Héros de(Joueur exécutant)
  • == Héros(Mei) && Joueur exécutant.SkillsUnlocked[3] == Vrai) || (Héros de(Joueur exécutant) == Héros(Symmetra)
  • && Joueur exécutant.SkillsUnlocked[9] == Vrai) || (Héros de(Joueur exécutant) == Héros(Écho)
  • && Joueur exécutant.SkillsUnlocked[11] == Vrai));
  • Définir l’activation de la capacité 1(Joueur exécutant, Vrai);
  • Fin;
  • "Ability 2"
  • Si((Héros de(Joueur exécutant) == Héros(Soldat : 76) && Joueur exécutant.SkillsUnlocked[2] == Vrai) || (Héros de(Joueur exécutant)
  • == Héros(Mei) && Joueur exécutant.SkillsUnlocked[4] == Vrai) || (Héros de(Joueur exécutant) == Héros(Écho)
  • && Joueur exécutant.SkillsUnlocked[12] == Vrai));
  • Définir l’activation de la capacité 2(Joueur exécutant, Vrai);
  • Fin;
  • Fin;
  • Arrêter;
  • Fin;
  • Fin;
  • Fin;
  • Fin;
  • }
  • }
  • règle("Hero Swap - Secret Shortcut")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Bouton maintenu enfoncé(Joueur exécutant, Bouton(Interaction)) == Vrai;
  • (Distance entre(Position de(Joueur exécutant), Global.HeroLocations[10]) <= 1.500) == Vrai;
  • Joueur exécutant.FoundSecretHero == Vrai;
  • }
  • actions
  • {
  • désactivé Pour variable de joueur(Joueur exécutant, LoopCounter, 0, Global.MaxObjectIndex[4] + 1, 1);
  • désactivé Si(Global.HeroLocations[Joueur exécutant.LoopCounter] != Vecteur(0, 0, 0)
  • && Global.HeroLocations[Joueur exécutant.LoopCounter] != 0);
  • désactivé Si(Joueur exécutant.HeroesUnlocked[Joueur exécutant.LoopCounter - 1] == Vrai || Joueur exécutant.LoopCounter == 0);
  • désactivé Si(Distance entre(Position des yeux(Joueur exécutant), Global.HeroLocations[Joueur exécutant.LoopCounter]) <= 1.500);
  • Forcer un héros(Joueur exécutant, Global.HeroRoster[5]);
  • Si(Joueur exécutant.Respawn == Global.ZoneLocations[1]);
  • Joueur exécutant.AlternativeRespawn = Non applicable;
  • Fin;
  • désactivé Joueur exécutant.SymmetraPads = Non applicable;
  • Définir l’activation du tir secondaire(Joueur exécutant, Faux);
  • Définir l’activation de la capacité 1(Joueur exécutant, Faux);
  • Définir l’activation de la capacité 2(Joueur exécutant, Faux);
  • désactivé Attente(0.100, Ignorer la condition);
  • "Secondary Shot"
  • désactivé Si((Héros de(Joueur exécutant) == Héros(Soldat : 76) && Joueur exécutant.SkillsUnlocked[1] == Vrai) || (Héros de(Joueur exécutant)
  • == Héros(Bouldozer) && Joueur exécutant.SkillsUnlocked[7] == Vrai) || (Héros de(Joueur exécutant) == Héros(Symmetra)
  • && Joueur exécutant.SkillsUnlocked[10] == Vrai));
  • désactivé Définir l’activation du tir secondaire(Joueur exécutant, Vrai);
  • désactivé Fin;
  • "Ability 1"
  • désactivé Si((Héros de(Joueur exécutant) == Héros(Soldat : 76) && Joueur exécutant.SkillsUnlocked[0] == Vrai) || (Héros de(Joueur exécutant)
  • == Héros(Mei) && Joueur exécutant.SkillsUnlocked[3] == Vrai) || (Héros de(Joueur exécutant) == Héros(Symmetra)
  • && Joueur exécutant.SkillsUnlocked[9] == Vrai) || (Héros de(Joueur exécutant) == Héros(Écho)
  • && Joueur exécutant.SkillsUnlocked[11] == Vrai));
  • désactivé Définir l’activation de la capacité 1(Joueur exécutant, Vrai);
  • désactivé Fin;
  • "Ability 2"
  • désactivé Si((Héros de(Joueur exécutant) == Héros(Soldat : 76) && Joueur exécutant.SkillsUnlocked[2] == Vrai) || (Héros de(Joueur exécutant)
  • == Héros(Mei) && Joueur exécutant.SkillsUnlocked[4] == Vrai) || (Héros de(Joueur exécutant) == Héros(Écho)
  • && Joueur exécutant.SkillsUnlocked[12] == Vrai));
  • désactivé Définir l’activation de la capacité 2(Joueur exécutant, Vrai);
  • désactivé Fin;
  • désactivé Arrêter;
  • désactivé Fin;
  • désactivé Fin;
  • désactivé Fin;
  • désactivé Fin;
  • }
  • }
  • règle("Hero Swap Tip")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Apparition(Joueur exécutant) == Vrai;
  • Vrai pour n’importe qui(Tableau filtré(Global.HeroLocations, Élément de tableau actuel != Vecteur(0, 0, 0)), Distance entre(
  • Position des yeux(Joueur exécutant), Élément de tableau actuel) < 1.500) == Vrai;
  • }
  • actions
  • {
  • Attente(2, Interrompre quand faux);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Press [Interact]"));
  • }
  • }
  • règle("Hero Unlock")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Apparition(Joueur exécutant) == Vrai;
  • désactivé Joueur exécutant.HeroCount < Global.MaxHeroes;
  • Héros de(Joueur exécutant) != Global.HeroRoster[5];
  • Vrai pour n’importe qui(Tableau filtré(Global.UnlockLocations, Élément de tableau actuel != Vecteur(0, 0, 0)), Distance entre(
  • Position des yeux(Joueur exécutant), Élément de tableau actuel) < 1.500) == Vrai;
  • }
  • actions
  • {
  • Pour variable de joueur(Joueur exécutant, LoopCounter, 0, Global.MaxObjectIndex[5] + 1, 1);
  • Si(Global.UnlockLocations[Joueur exécutant.LoopCounter] != Vecteur(0, 0, 0)
  • && Global.UnlockLocations[Joueur exécutant.LoopCounter] != 0 && Joueur exécutant.HeroesUnlocked[Joueur exécutant.LoopCounter] != Vrai);
  • Si(Distance entre(Position des yeux(Joueur exécutant), Global.UnlockLocations[Joueur exécutant.LoopCounter]) <= 1.500);
  • Si(Joueur exécutant.LoopCounter <= 3 || (Joueur exécutant.LoopCounter == 4 && Héros de(Joueur exécutant) == Héros(Soldat : 76))
  • || (Joueur exécutant.LoopCounter == 5 && Héros de(Joueur exécutant) == Héros(Mei)) || (
  • Joueur exécutant.LoopCounter == 6 && Héros de(Joueur exécutant) == Héros(Bouldozer)) || (
  • Joueur exécutant.LoopCounter == 7 && Héros de(Joueur exécutant) == Héros(Symmetra)) || (
  • Joueur exécutant.LoopCounter == 8 && Héros de(Joueur exécutant) == Héros(Écho)));
  • Si(Joueur exécutant.LoopCounter <= 3);
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée(" \r\n{0} {1} {2}", Joueur exécutant, Chaîne de texte(
  • "Déverrouillé"), Chaîne d’icône du héros(Global.HeroRoster[Joueur exécutant.LoopCounter + 1])));
  • Sinon;
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée(" \r\n{0} {1} {2}", Joueur exécutant, Chaîne de texte(
  • "Déverrouillé"), Chaîne d’icône du héros(Global.HeroRoster[Joueur exécutant.LoopCounter + 2])));
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Crouch and interact at heroes Swap to get the secret heroes"));
  • Fin;
  • désactivé Sous-programme à appeler(UpdateCount);
  • Joueur exécutant.HeroesUnlocked[Joueur exécutant.LoopCounter] = Vrai;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Si(Joueur exécutant.LoopCounter <= 3);
  • Joueur exécutant.HeroCount += 1;
  • Sinon;
  • Joueur exécutant.ExtraHeroCount += 1;
  • Fin;
  • Fin;
  • Arrêter;
  • Fin;
  • Fin;
  • Fin;
  • }
  • }
  • règle("Portal Usage")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Bouton maintenu enfoncé(Joueur exécutant, Bouton(Interaction)) == Vrai;
  • Vrai pour n’importe qui(Tableau filtré(Global.PortalLocations, Élément de tableau actuel != Vecteur(0, 0, 0)), Distance entre(
  • Position des yeux(Joueur exécutant), Élément de tableau actuel) < 1.500) == Vrai;
  • }
  • actions
  • {
  • Pour variable de joueur(Joueur exécutant, LoopCounter, 0, Global.MaxObjectIndex[3] + 1, 1);
  • Si(Joueur exécutant.PortalUnlocked[Joueur exécutant.LoopCounter] == Vrai);
  • Si(Global.PortalLocations[Joueur exécutant.LoopCounter] != Vecteur(0, 0, 0)
  • && Global.PortalLocations[Joueur exécutant.LoopCounter] != 0);
  • Si(Global.PortalDestinations[Joueur exécutant.LoopCounter] != Vecteur(0, 0, 0)
  • && Global.PortalDestinations[Joueur exécutant.LoopCounter] != 0);
  • Si(Distance entre(Position des yeux(Joueur exécutant), Global.PortalLocations[Joueur exécutant.LoopCounter]) <= 1.500);
  • Téléportation(Joueur exécutant, Global.PortalDestinations[Joueur exécutant.LoopCounter]);
  • Arrêter;
  • Fin;
  • Fin;
  • Fin;
  • Fin;
  • Fin;
  • }
  • }
  • règle("Unlocking a Portal (reach the destination)")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Héros de(Joueur exécutant) != Global.HeroRoster[5];
  • Vrai pour n’importe qui(Tableau filtré(Global.PortalDestinations, Élément de tableau actuel != Vecteur(0, 0, 0)), Distance entre(
  • Élément de tableau actuel, Position de(Joueur exécutant)) < 2) == Vrai;
  • }
  • actions
  • {
  • Pour variable de joueur(Joueur exécutant, LoopCounter, 0, Global.MaxObjectIndex[3] + 1, 1);
  • Si(Global.PortalDestinations[Joueur exécutant.LoopCounter] != Vecteur(0, 0, 0)
  • && Global.PortalDestinations[Joueur exécutant.LoopCounter] != 0);
  • Si(Joueur exécutant.PortalUnlocked[Joueur exécutant.LoopCounter] == Faux);
  • Si(Distance entre(Position de(Joueur exécutant), Global.PortalDestinations[Joueur exécutant.LoopCounter]) <= 2);
  • Joueur exécutant.PortalUnlocked[Joueur exécutant.LoopCounter] = Vrai;
  • Fin;
  • Fin;
  • Fin;
  • Fin;
  • }
  • }
  • règle("Teleport Back to a Spawn Point")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Bouton maintenu enfoncé(Joueur exécutant, Bouton(Capacité ultime)) == Vrai;
  • désactivé Héros de(Joueur exécutant) != Global.HeroRoster[5];
  • }
  • actions
  • {
  • Si(Distance entre(Position de(Joueur exécutant), Joueur exécutant.Respawn) > 1);
  • Téléportation(Joueur exécutant, Joueur exécutant.Respawn);
  • Attente(0.050, Ignorer la condition);
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon;
  • Si(Joueur exécutant.AlternativeRespawn != Non applicable);
  • Si(Distance entre(Position de(Joueur exécutant), Joueur exécutant.AlternativeRespawn) > 1);
  • Téléportation(Joueur exécutant, Joueur exécutant.AlternativeRespawn);
  • Joueur exécutant.Respawn = Joueur exécutant.AlternativeRespawn;
  • Sinon;
  • Si(Joueur exécutant.ZonesReached[0] == Vrai);
  • Téléportation(Joueur exécutant, Global.ZoneLocations[1]);
  • Fin;
  • Fin;
  • Fin;
  • Fin;
  • }
  • }
  • règle("Bouncepad Interaction")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Vrai pour n’importe qui(Tableau filtré(Global.BouncepadLocations, Élément de tableau actuel != Vecteur(0, 0, 0)), Distance entre(
  • Position de(Joueur exécutant), Élément de tableau actuel) < 1.500) == Vrai;
  • }
  • actions
  • {
  • Pour variable de joueur(Joueur exécutant, LoopCounter, 0, Global.MaxObjectIndex[7] + 1, 1);
  • Si(Global.BouncepadLocations[Joueur exécutant.LoopCounter] != Vecteur(0, 0, 0)
  • && Global.BouncepadLocations[Joueur exécutant.LoopCounter] != 0);
  • Si(Distance entre(Position de(Joueur exécutant), Global.BouncepadLocations[Joueur exécutant.LoopCounter]) <= 1.500);
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’impact d’affaiblissement, Couleur(Blanc), Joueur exécutant, 75);
  • Si(Joueur exécutant.LoopCounter != 0);
  • Appliquer une impulsion(Joueur exécutant, Vecteur(0, 1, 0), Global.BouncepadStrength[Joueur exécutant.LoopCounter], Au monde,
  • Annuler le mouvement contraire);
  • Sinon;
  • Appliquer une impulsion(Joueur exécutant, Vecteur(-2, 1, 0), Global.BouncepadStrength[Joueur exécutant.LoopCounter], Au monde,
  • Annuler le mouvement contraire);
  • Désactiver la collision des mouvements avec l’environnement(Joueur exécutant, Faux);
  • Attente(1, Ignorer la condition);
  • Activer la collision des mouvements avec l’environnement(Joueur exécutant);
  • Fin;
  • Arrêter;
  • Fin;
  • Fin;
  • Fin;
  • }
  • }
  • règle("Victory")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Joueur exécutant.Victory == Faux;
  • Joueur exécutant.ZoneCount == Global.MaxZones;
  • Joueur exécutant.HeroCount == Global.MaxHeroes;
  • Joueur exécutant.SkillCount >= 8;
  • Joueur exécutant.SkillsUnlocked[9] == Vrai;
  • Joueur exécutant.SkillsUnlocked[11] == Vrai;
  • }
  • actions
  • {
  • Joueur exécutant.Victory = Vrai;
  • Si(Joueur exécutant.SpeedRunMode == Vrai);
  • Détruire du texte d’interface(Joueur exécutant.MyHUD[1]);
  • Créer du texte d’interface(Joueur exécutant, Chaîne personnalisée("Finished"), Chaîne personnalisée("Deaths: {0}",
  • Créer du texte d’interface(Joueur exécutant, Chaîne personnalisée(" Finished "), Chaîne personnalisée("Deaths: {0}",
  • Joueur exécutant.Deaths), Chaîne personnalisée("Time: {0}:{1}", Arrondir à l’entier(Joueur exécutant.Timer / 60, En dessous),
  • Arrondir à l’entier(Joueur exécutant.Timer % 60, En dessous)), Haut, 1, Couleur(Violet), Couleur(Vert), Couleur(Vert),
  • Visible pour et Chaîne de texte, Visibilité par défaut);
  • Joueur exécutant.MyHUD[0] = Dernier identifiant de texte;
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée(" \r\n{0} FINISHED IN {1}:{2}!", Joueur exécutant,
  • Arrondir à l’entier(Joueur exécutant.Timer / 60, En dessous), Arrondir à l’entier(Joueur exécutant.Timer % 60, En dessous)));
  • Sinon;
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée(" \r\n{0} {1}!", Joueur exécutant, Chaîne de texte(
  • "Fini")));
  • Fin;
  • }
  • }
  • règle("Secret Hero")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Apparition(Joueur exécutant) == Vrai;
  • Global.HeroLocations[5] != Vecteur(0, 0, 0);
  • Distance entre(Position des yeux(Joueur exécutant), Global.HeroLocations[5]) <= 1.500;
  • Héros de(Joueur exécutant) != Global.HeroRoster[5];
  • Héros de(Joueur exécutant) != Global.HeroRoster[11];
  • }
  • actions
  • {
  • Forcer un héros(Joueur exécutant, Global.HeroRoster[5]);
  • Si(Joueur exécutant.FoundSecretHero == Faux);
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée(" \r\n{0} {1} {2}", Joueur exécutant, Chaîne de texte(
  • "Trouvé"), Chaîne d’icône du héros(Global.HeroRoster[5])));
  • Fin;
  • Attente(0.250, Ignorer la condition);
  • Téléportation(Joueur exécutant, Global.ZoneLocations[1]);
  • Joueur exécutant.FoundSecretHero = Vrai;
  • }
  • }
  • règle("Secret Hero 2")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Apparition(Joueur exécutant) == Vrai;
  • Global.HeroLocations[6] != Vecteur(0, 0, 0);
  • Distance entre(Position des yeux(Joueur exécutant), Global.HeroLocations[6]) <= 1.500;
  • Héros de(Joueur exécutant) != Global.HeroRoster[5];
  • Héros de(Joueur exécutant) != Global.HeroRoster[11];
  • Joueur exécutant.FoundSecretHero == Vrai;
  • Joueur exécutant.ExtraHeroCount == 5;
  • }
  • actions
  • {
  • Forcer un héros(Joueur exécutant, Global.HeroRoster[11]);
  • Si(Joueur exécutant.FoundSecretHero2 == Faux);
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée(" \r\n{0} {1} {2}", Joueur exécutant, Chaîne de texte(
  • "Trouvé"), Chaîne d’icône du héros(Global.HeroRoster[11])));
  • Fin;
  • Attente(0.250, Ignorer la condition);
  • Téléportation(Joueur exécutant, Global.ZoneLocations[1]);
  • Joueur exécutant.FoundSecretHero2 = Vrai;
  • }
  • }
  • règle("Secret Hero Jump")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Bouton maintenu enfoncé(Joueur exécutant, Bouton(Sauter)) == Vrai;
  • désactivé Héros de(Joueur exécutant) == Global.HeroRoster[5];
  • (Héros de(Joueur exécutant) == Global.HeroRoster[5] || Héros de(Joueur exécutant) == Global.HeroRoster[11]) == Vrai;
  • }
  • actions
  • {
  • Appliquer une impulsion(Joueur exécutant, Vecteur(0, 1, 0), 30, Au monde, Annuler le mouvement contraire);
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’impact d’affaiblissement, Couleur(Blanc), Joueur exécutant, 75);
  • }
  • }
  • règle("Secret Hero Speed")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • désactivé Héros de(Joueur exécutant) == Global.HeroRoster[5];
  • (Héros de(Joueur exécutant) == Global.HeroRoster[5] || Héros de(Joueur exécutant) == Global.HeroRoster[11]) == Vrai;
  • }
  • actions
  • {
  • Définir la vitesse de déplacement(Joueur exécutant, 400);
  • Attente(0.250, Ignorer la condition);
  • Boucle si la condition est vraie;
  • Définir la vitesse de déplacement(Joueur exécutant, 100);
  • }
  • }
  • règle("Self-Restart")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Bouton maintenu enfoncé(Joueur exécutant, Bouton(Capacité ultime)) == Vrai;
  • }
  • actions
  • {
  • Attente(0.750, Interrompre quand faux);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Resetting Progress... 3"));
  • Attente(0.750, Interrompre quand faux);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Resetting Progress... 2"));
  • Attente(0.750, Interrompre quand faux);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Resetting Progress... 1"));
  • Attente(0.750, Interrompre quand faux);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Progress Reset!"));
  • Attente(0.050, Ignorer la condition);
  • Sous-programme à appeler(ResetProgress);
  • }
  • }
  • règle("Speed Run Toggle")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Bouton maintenu enfoncé(Joueur exécutant, Bouton(Interaction)) == Vrai;
  • Global.SpeedrunLocation != Vecteur(0, 0, 0);
  • Distance entre(Position des yeux(Joueur exécutant), Global.SpeedrunLocation) < 1.500;
  • }
  • actions
  • {
  • Si(Joueur exécutant.SpeedRunMode == Faux);
  • Attente(0.250, Ignorer la condition);
  • Si(!Bouton maintenu enfoncé(Joueur exécutant, Bouton(Interaction)));
  • Message en petit(Joueur exécutant, Chaîne personnalisée(
  • "WARNING: Enabling speed run will reset all progress\r\n Hold [Interact] to enable speed run mode"));
  • Fin;
  • Attente(1, Interrompre quand faux);
  • Joueur exécutant.SpeedRunMode = Vrai;
  • Joueur exécutant.Victory = Faux;
  • Sous-programme à appeler(ResetProgress);
  • Créer du texte d’interface(Joueur exécutant, Chaîne personnalisée("Speed Run"), Chaîne personnalisée("Deaths: {0}",
  • Joueur exécutant.Deaths), Chaîne personnalisée("Time: {0}:{1}", Arrondir à l’entier(Joueur exécutant.Timer / 60, En dessous),
  • Arrondir à l’entier(Joueur exécutant.Timer % 60, En dessous)), Haut, 1, Couleur(Orange), Couleur(Rouge), Couleur(Orange),
  • Visible pour et Chaîne de texte, Visibilité par défaut);
  • Joueur exécutant.MyHUD[1] = Dernier identifiant de texte;
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Speed Run Mode Activated"));
  • Sinon;
  • Détruire du texte d’interface(Joueur exécutant.MyHUD[0]);
  • Détruire du texte d’interface(Joueur exécutant.MyHUD[1]);
  • Joueur exécutant.SpeedRunMode = Faux;
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Speed Run Mode Disabled"));
  • Fin;
  • }
  • }
  • règle("Speed Run Timer Increase")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Joueur exécutant.SpeedRunMode == Vrai;
  • Joueur exécutant.Victory == Faux;
  • Distance entre(Position de(Joueur exécutant), Global.ZoneLocations[0]) > 1;
  • }
  • actions
  • {
  • Attente(0.992, Interrompre quand faux);
  • Joueur exécutant.Timer += 1;
  • Boucle;
  • }
  • }
  • règle("Tutorial Mode Toggle")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Joueur exécutant.TutorialMode == Faux;
  • Bouton maintenu enfoncé(Joueur exécutant, Bouton(Rechargement)) == Vrai;
  • }
  • actions
  • {
  • Attente(0.250, Interrompre quand faux);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Starting Tutorial Mode... 3"));
  • Attente(0.750, Interrompre quand faux);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Starting Tutorial Mode... 2"));
  • Attente(0.750, Interrompre quand faux);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Starting Tutorial Mode... 1"));
  • Attente(0.750, Interrompre quand faux);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Tutorial Mode Activated!"));
  • Joueur exécutant.TutorialMode = Vrai;
  • }
  • }
  • règle("Tutorial Mode Set Checkpoint")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Joueur exécutant.TutorialMode == Vrai;
  • Bouton maintenu enfoncé(Joueur exécutant, Bouton(Rechargement)) == Vrai;
  • Distance entre(Position de(Joueur exécutant), Joueur exécutant.Respawn) > 2;
  • Vitesse verticale de(Joueur exécutant) == 0;
  • Vitesse horizontale de(Joueur exécutant) == 0;
  • }
  • actions
  • {
  • Attente(0.500, Interrompre quand faux);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Checkpoint Set!"));
  • Joueur exécutant.Respawn = Position de(Joueur exécutant);
  • Joueur exécutant.AlternativeRespawn = Position de(Joueur exécutant);
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Si(Bouton maintenu enfoncé(Joueur exécutant, Bouton(Interaction)));
  • Joueur exécutant.HeroesUnlocked = Tableau(Vrai, Vrai, Vrai, Vrai);
  • Joueur exécutant.ZonesReached = Tableau(Vrai, Vrai, Vrai);
  • Joueur exécutant.PortalUnlocked = Tableau(Vrai, Vrai, Vrai, Vrai, Vrai, Vrai);
  • Joueur exécutant.SkillsUnlocked = Tableau(Vrai, Vrai, Faux, Vrai, Vrai, Faux, Vrai, Vrai, Faux, Vrai, Faux, Vrai, Faux);
  • Joueur exécutant.SkillsUnlocked = Tableau(Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai);
  • Joueur exécutant.ZoneCount = 3;
  • Joueur exécutant.HeroCount = 4;
  • Joueur exécutant.SkillCount = 8;
  • désactivé Joueur exécutant.ExtraSkillCount = 5;
  • désactivé Joueur exécutant.FoundSecretHero = Vrai;
  • désactivé Joueur exécutant.ExtraHeroCount = 4;
  • Fin;
  • }
  • }
  • règle("Reset Progress | Subroutine")
  • {
  • évènement
  • {
  • Sous-programme;
  • ResetProgress;
  • }
  • actions
  • {
  • Forcer un héros(Joueur exécutant, Global.HeroRoster[0]);
  • Si(Joueur exécutant.SpeedRunMode == Vrai && Joueur exécutant.Victory == Vrai);
  • Créer du texte d’interface(Joueur exécutant, Chaîne personnalisée("Speed Run"), Chaîne personnalisée("Deaths: {0}",
  • Joueur exécutant.Deaths), Chaîne personnalisée("Time: {0}:{1}", Arrondir à l’entier(Joueur exécutant.Timer / 60, En dessous),
  • Arrondir à l’entier(Joueur exécutant.Timer % 60, En dessous)), Haut, 1, Couleur(Orange), Couleur(Rouge), Couleur(Orange),
  • Visible pour et Chaîne de texte, Visibilité par défaut);
  • Joueur exécutant.MyHUD[1] = Dernier identifiant de texte;
  • Fin;
  • Détruire du texte d’interface(Joueur exécutant.MyHUD[0]);
  • Joueur exécutant.PortalUnlocked = Global.PortalUnlockDefaults;
  • Joueur exécutant.Victory = Faux;
  • Joueur exécutant.ZonesReached = Tableau(Faux, Faux, Faux);
  • Joueur exécutant.HeroesUnlocked = Tableau(Faux, Faux, Faux, Faux, Faux, Faux, Faux, Faux, Faux, Faux);
  • Si(Global.ZoneLocations[0] != Vecteur(0, 0, 0));
  • Joueur exécutant.Respawn = Global.ZoneLocations[0];
  • Fin;
  • Joueur exécutant.Deaths = 0;
  • Joueur exécutant.Timer = 0;
  • Joueur exécutant.ZoneCount = 0;
  • Joueur exécutant.HeroCount = 0;
  • Joueur exécutant.AlternativeRespawn = Non applicable;
  • Téléportation(Joueur exécutant, Joueur exécutant.Respawn);
  • Attente(0.100, Ignorer la condition);
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion concentrique, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Joueur exécutant.TutorialMode = Faux;
  • Joueur exécutant.FoundSecretHero = Faux;
  • Définir la direction du regard(Joueur exécutant, Direction(Position des yeux(Joueur exécutant), Position des yeux(Joueur exécutant)
  • + Vecteur(-1, 0, 0)), Au monde);
  • Joueur exécutant.SkillCount = 0;
  • Joueur exécutant.ExtraSkillCount = 0;
  • Joueur exécutant.ExtraHeroCount = 0;
  • Joueur exécutant.SkillsUnlocked = Non applicable;
  • Définir l’activation du tir secondaire(Joueur exécutant, Faux);
  • Définir l’activation de la capacité 1(Joueur exécutant, Faux);
  • Définir l’activation de la capacité 2(Joueur exécutant, Faux);
  • }
  • }
  • règle("Update Count | Subroutine")
  • {
  • évènement
  • {
  • Sous-programme;
  • UpdateCount;
  • }
  • actions
  • {
  • Joueur exécutant.ZoneCount = Décompte de(Tableau filtré(Joueur exécutant.ZonesReached, Élément de tableau actuel == Vrai));
  • désactivé Joueur exécutant.HeroCount = Décompte de(Tableau filtré(Joueur exécutant.HeroesUnlocked, Élément de tableau actuel == Vrai));
  • Si(Joueur exécutant.HeroCount > 4);
  • Joueur exécutant.HeroCount = 4;
  • Fin;
  • désactivé Joueur exécutant.SkillCount = Décompte de(Tableau filtré(Joueur exécutant.SkillsUnlocked, Élément de tableau actuel == Vrai));
  • désactivé Si(Joueur exécutant.SkillCount > 8);
  • désactivé Joueur exécutant.HeroCount = 8;
  • désactivé Fin;
  • }
  • }
  • règle("Match Time Initiation")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • conditions
  • {
  • Partie en cours == Vrai;
  • Phase de choix de héros == Faux;
  • }
  • actions
  • {
  • Créer du texte d’interface(Tous les joueurs(Toutes les équipes), Non applicable, Non applicable, Chaîne personnalisée(
  • "Match Time - {0}:{1}", Arrondir à l’entier(Global.MatchTime / 60, En dessous), Arrondir à l’entier(Global.MatchTime % 60,
  • En dessous)), Haut, -10, Couleur(Blanc), Couleur(Blanc), Couleur(Blanc), Visible pour et Chaîne de texte,
  • Visibilité par défaut);
  • Définir le temps de jeu(3599);
  • Attente(5, Ignorer la condition);
  • Mettre en pause le temps de jeu;
  • }
  • }
  • règle("Match Time Warning")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • conditions
  • {
  • "10 Min Warning"
  • Global.MatchTime < 600;
  • }
  • actions
  • {
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée("10 Minute Warning"));
  • Attente(300, Ignorer la condition);
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée("5 Minute Warning"));
  • Attente(240, Ignorer la condition);
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée("1 Minute Warning"));
  • Attente(60, Ignorer la condition);
  • Message en grand(Tous les joueurs(Toutes les équipes), Chaîne personnalisée("Match Time Is Up!"));
  • Activer l’accomplissement prédéfini par le mode de jeu;
  • Activer l’interface en jeu du mode de jeu(Tous les joueurs(Toutes les équipes));
  • Activer l’interface du mode de jeu(Tous les joueurs(Toutes les équipes));
  • Définir le temps de jeu(0);
  • Attente(0.250, Ignorer la condition);
  • Reprendre le temps de jeu;
  • }
  • }
  • règle("Match Time")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • Attente(0.998, Ignorer la condition);
  • Global.MatchTime -= 1;
  • Si(Global.MatchTime <= 0);
  • Interrompre;
  • Fin;
  • Boucle;
  • }
  • }
  • règle("Skip Assembling Heroes")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • conditions
  • {
  • Phase de choix de héros == Vrai;
  • }
  • actions
  • {
  • Définir le temps de jeu(1);
  • }
  • }
  • règle("---------- Others ----------")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • }
  • règle("SymmetraPads")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Héros de(Joueur exécutant) == Héros(Symmetra);
  • Capacité 1 utilisée(Joueur exécutant) == Vrai;
  • }
  • actions
  • {
  • Définir l’activation de la capacité 1(Joueur exécutant, Faux);
  • Attente(0.240, Ignorer la condition);
  • Joueur exécutant.Impact = Position d’impact du rayon émis(Position des yeux(Joueur exécutant), Position des yeux(Joueur exécutant)
  • + Regard en direction de(Joueur exécutant) * 100, Non applicable, Tous les joueurs(Toutes les équipes), Faux)
  • - Regard en direction de(Joueur exécutant);
  • Attente(0.260, Ignorer la condition);
  • - Regard en direction de(Joueur exécutant) * 1;
  • Attente(0.035 * Distance entre(Position des yeux(Joueur exécutant), Joueur exécutant.Impact), Ignorer la condition);
  • Joueur exécutant.SymmetraPads[2] = Joueur exécutant.SymmetraPads[1];
  • Joueur exécutant.SymmetraPads[1] = Joueur exécutant.SymmetraPads[0];
  • Joueur exécutant.SymmetraPads[0] = Joueur exécutant.Impact;
  • Attente(0.250, Ignorer la condition);
  • Si(Héros de(Joueur exécutant) == Héros(Symmetra));
  • Définir l’activation de la capacité 1(Joueur exécutant, Vrai);
  • Fin;
  • }
  • }
  • règle("SymmetraPads Interraction")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Vrai pour n’importe qui(Joueur exécutant.SymmetraPads, Élément de tableau actuel != Non applicable && Distance entre(Position de(
  • Joueur exécutant), Élément de tableau actuel) <= 2) == Vrai;
  • désactivé Vrai pour n’importe qui(Joueur exécutant.SymmetraPads, Élément de tableau actuel != Non applicable && Distance entre(Position de(
  • Joueur exécutant), Élément de tableau actuel) <= 1.500) == Vrai;
  • Héros de(Joueur exécutant) == Héros(Symmetra);
  • }
  • actions
  • {
  • désactivé Message en petit(Tous les joueurs(Toutes les équipes), Chaîne personnalisée("Test"));
  • Appliquer une impulsion(Joueur exécutant, Vecteur(0, 1, 0), 15, Au monde, Annuler le mouvement contraire);
  • Si(Vrai pour n’importe qui(Joueur exécutant.SymmetraPads, Élément de tableau actuel != Non applicable && Distance entre(
  • Position de(Joueur exécutant), Élément de tableau actuel) <= 1.500));
  • Appliquer une impulsion(Joueur exécutant, Vecteur(0, 1, 0), 15, Au monde, Annuler le mouvement contraire);
  • Fin;
  • Attente(0.100, Ignorer la condition);
  • Boucle si la condition est vraie;
  • }
  • }
  • règle("No collision")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • (Distance entre(Position de(Joueur exécutant), Vecteur(81, 172.500, 0)) <= 7.500 || Distance entre(Position de(Joueur exécutant),
  • Vecteur(-28, 46, 0)) <= 12.500) == Vrai;
  • désactivé (Distance entre(Position de(Joueur exécutant), Vecteur(-50, 140, 0)) <= 90 || Distance entre(Position de(Joueur exécutant),
  • Vecteur(-25, 48, 0)) <= 10 || Distance entre(Position de(Joueur exécutant), Vecteur(81, 173.750, 0)) <= 7.500) == Vrai;
  • désactivé Distance entre(Vecteur(-28, 45, 0), Position de(Joueur exécutant)) < 12.500;
  • }
  • actions
  • {
  • Désactiver la collision des mouvements avec l’environnement(Joueur exécutant, Vrai);
  • Attente(0.200, Ignorer la condition);
  • Attente(0.100, Ignorer la condition);
  • Boucle si la condition est vraie;
  • Activer la collision des mouvements avec l’environnement(Joueur exécutant);
  • }
  • }
  • règle("Piledriver")
  • règle("Piledriver Improved")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Vitesse verticale de(Joueur exécutant) < -30;
  • Héros de(Joueur exécutant) == Héros(Bouldozer);
  • Joueur exécutant.SkillsUnlocked[8] == Vrai;
  • }
  • actions
  • {
  • Attente(0.100, Ignorer la condition);
  • Boucle si la condition est vraie;
  • Si(Héros de(Joueur exécutant) == Héros(Bouldozer) && Bouton maintenu enfoncé(Joueur exécutant, Bouton(S’accroupir))
  • && Joueur exécutant.SkillsUnlocked[8] == Vrai);
  • Désactiver la collision des mouvements avec l’environnement(Joueur exécutant, Vrai);
  • Attente(0.500, Ignorer la condition);
  • Activer la collision des mouvements avec l’environnement(Joueur exécutant);
  • Fin;
  • }
  • }
  • règle("Frosty Jet Pack")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Héros de(Joueur exécutant) == Héros(Mei);
  • Tir principal(Joueur exécutant) == Vrai;
  • Joueur exécutant.SkillsUnlocked[5] == Vrai;
  • }
  • actions
  • {
  • Appliquer une impulsion(Joueur exécutant, Regard en direction de(Joueur exécutant), -2.500, Au monde,
  • Incorporer un mouvement contraire);
  • Attente(0.100, Ignorer la condition);
  • Boucle si la condition est vraie;
  • }
  • }
  • règle("Mei Secret")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Héros de(Joueur exécutant) == Héros(Mei);
  • Vitesse verticale de(Joueur exécutant) < -20;
  • Capacité 1 utilisée(Joueur exécutant) == Vrai;
  • désactivé Distance entre(Vecteur(-68.950, 29.400, 94.200), Position de(Joueur exécutant)) < 3.500;
  • (Distance entre(Vecteur(55, 144, 90.500), Position de(Joueur exécutant)) < 3.500 || Distance entre(Vecteur(55, 144, -90.500),
  • désactivé (Distance entre(Vecteur(55, 144, 90.500), Position de(Joueur exécutant)) < 3.500 || Distance entre(Vecteur(55, 144, -90.500),
  • Position de(Joueur exécutant)) < 3.500 || Distance entre(Vecteur(-69.700, 29.200, 94), Position de(Joueur exécutant))
  • < 3.500 || Distance entre(Vecteur(-69.700, 29.200, -93.900), Position de(Joueur exécutant)) < 3.500 || Distance entre(Vecteur(
  • -183.400, -84.600, 96.500), Position de(Joueur exécutant)) < 3.500 || Distance entre(Vecteur(-185, -84.500, -96.350),
  • Position de(Joueur exécutant)) < 3.500) == Vrai;
  • }
  • actions
  • {
  • Désactiver la collision des mouvements avec l’environnement(Joueur exécutant, Vrai);
  • Attente(0.250, Ignorer la condition);
  • Activer la collision des mouvements avec l’environnement(Joueur exécutant);
  • Si(Distance entre(Vecteur(55, 144, 90.500), Position de(Joueur exécutant)) < 3.500 || Distance entre(Vecteur(55, 144, -90.500),
  • Position de(Joueur exécutant)) < 3.500 || Distance entre(Vecteur(-69.700, 29.200, 94), Position de(Joueur exécutant))
  • < 3.500 || Distance entre(Vecteur(-69.700, 29.200, -93.900), Position de(Joueur exécutant)) < 3.500 || Distance entre(Vecteur(
  • -183.400, -84.600, 96.500), Position de(Joueur exécutant)) < 3.500 || Distance entre(Vecteur(-185, -84.500, -96.350),
  • Position de(Joueur exécutant)) < 3.500);
  • Désactiver la collision des mouvements avec l’environnement(Joueur exécutant, Vrai);
  • Attente(0.250, Ignorer la condition);
  • Activer la collision des mouvements avec l’environnement(Joueur exécutant);
  • Fin;
  • Attente(0.100, Ignorer la condition);
  • Boucle si la condition est vraie;
  • }
  • }
  • règle("Ski Portal")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Distance entre(Position de(Joueur exécutant), Vecteur(-71.300, 17, 64.600)) < 1.500;
  • désactivé Distance entre(Position de(Joueur exécutant), Vecteur(-71.300, 17, 64.600)) < 1.500;
  • Bouton maintenu enfoncé(Joueur exécutant, Bouton(Interaction)) == Vrai;
  • }
  • actions
  • {
  • Joueur exécutant.SkiPoint = 0;
  • Désactiver la collision des mouvements avec l’environnement(Joueur exécutant, Vrai);
  • Définir la gravité(Joueur exécutant, 1);
  • Téléportation(Joueur exécutant, Vecteur(-133.500, -32, 17));
  • Définir la vitesse de déplacement(Joueur exécutant, 25);
  • Joueur exécutant.Moving = Position de(Joueur exécutant);
  • Attente(0.050, Ignorer la condition);
  • Forcer la position du joueur(Joueur exécutant, Joueur exécutant.Moving, Vrai);
  • Attente(0.050, Ignorer la condition);
  • Modifier une variable de joueur sur la durée(Joueur exécutant, Moving, Global.SkiPoints[Joueur exécutant.SkiPoint], 1,
  • Destination et Durée);
  • Si(Distance entre(Position de(Joueur exécutant), Vecteur(-71.300, 17, 64.600)) < 1.500);
  • Joueur exécutant.SkiPoint = 0;
  • Désactiver la collision des mouvements avec l’environnement(Joueur exécutant, Vrai);
  • Définir la gravité(Joueur exécutant, 1);
  • Téléportation(Joueur exécutant, Vecteur(-133.500, -32, 17));
  • Définir la vitesse de déplacement(Joueur exécutant, 25);
  • Joueur exécutant.Moving = Position de(Joueur exécutant);
  • Attente(0.050, Ignorer la condition);
  • Forcer la position du joueur(Joueur exécutant, Joueur exécutant.Moving, Vrai);
  • Attente(0.050, Ignorer la condition);
  • Modifier une variable de joueur sur la durée(Joueur exécutant, Moving, Global.SkiPoints[Joueur exécutant.SkiPoint], 1,
  • Destination et Durée);
  • Fin;
  • }
  • }
  • règle("Reaching SkiPoint")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • (Vrai pour n’importe qui(Global.SkiPoints, Distance entre(Élément de tableau actuel, Position de(Joueur exécutant))
  • désactivé (Vrai pour n’importe qui(Global.SkiPoints, Distance entre(Élément de tableau actuel, Position de(Joueur exécutant))
  • <= 1.500 && Joueur exécutant.SkiPoint != Non applicable) || Distance entre(Global.SkiPoints[0], Position de(Joueur exécutant))
  • <= 1.500) == Vrai;
  • Apparition(Joueur exécutant) == Vrai;
  • }
  • actions
  • {
  • Arrêter de forcer la position du joueur(Joueur exécutant);
  • Joueur exécutant.SkiPoint += 1;
  • Si(Joueur exécutant.SkiPoint < Décompte de(Global.SkiPoints));
  • Modifier une variable de joueur sur la durée(Joueur exécutant, Moving, Global.SkiPoints[Joueur exécutant.SkiPoint], 1,
  • Destination et Durée);
  • Forcer la position du joueur(Joueur exécutant, Joueur exécutant.Moving, Vrai);
  • Sinon;
  • Joueur exécutant.SkiPoint = Non applicable;
  • Définir la vitesse de déplacement(Joueur exécutant, 100);
  • Définir la gravité(Joueur exécutant, 100);
  • Activer la collision des mouvements avec l’environnement(Joueur exécutant);
  • Si(Vrai pour n’importe qui(Global.SkiPoints, Distance entre(Élément de tableau actuel, Position de(Joueur exécutant))
  • <= 1.500 && Joueur exécutant.SkiPoint != Non applicable) || Distance entre(Global.SkiPoints[0], Position de(Joueur exécutant))
  • <= 1.500);
  • Arrêter de forcer la position du joueur(Joueur exécutant);
  • Joueur exécutant.SkiPoint += 1;
  • Si(Joueur exécutant.SkiPoint < Décompte de(Global.SkiPoints));
  • Modifier une variable de joueur sur la durée(Joueur exécutant, Moving, Global.SkiPoints[Joueur exécutant.SkiPoint], 1,
  • Destination et Durée);
  • Forcer la position du joueur(Joueur exécutant, Joueur exécutant.Moving, Vrai);
  • Sinon;
  • Joueur exécutant.SkiPoint = Non applicable;
  • Définir la vitesse de déplacement(Joueur exécutant, 100);
  • Définir la gravité(Joueur exécutant, 100);
  • Activer la collision des mouvements avec l’environnement(Joueur exécutant);
  • Fin;
  • Fin;
  • Attente(0.200, Ignorer la condition);
  • Boucle;
  • }
  • }
  • règle("Skill Spots + Effects")
  • {
  • évènement
  • {
  • Toute la partie - Tout le monde;
  • }
  • actions
  • {
  • "Soldier"
  • Global.SkillSpots[0] = Vecteur(60, 129.500, 24);
  • Global.SkillSpots[1] = Vecteur(75.350, 133.250, 28.950);
  • Global.SkillSpots[2] = Vecteur(-201.850, -87.750, -49.550);
  • "Mei"
  • Global.SkillSpots[3] = Vecteur(55.250, 137.200, -90.300);
  • Global.SkillSpots[4] = Vecteur(106.050, 133.050, -52);
  • Global.SkillSpots[5] = Vecteur(-155.650, -79.250, 82.100);
  • "Hammond"
  • Global.SkillSpots[6] = Vecteur(61, 131, 19);
  • Global.SkillSpots[7] = Vecteur(-15.500, 23, 76);
  • Global.SkillSpots[8] = Vecteur(-170.800, -68.450, 22);
  • "Symmetra"
  • Global.SkillSpots[9] = Vecteur(-182.550, -90.400, -41.900);
  • Global.SkillSpots[10] = Vecteur(-47.850, 19.900, -93.900);
  • "Echo"
  • Global.SkillSpots[11] = Vecteur(-215.200, -95, -24.900);
  • Global.SkillSpots[12] = Vecteur(100.500, 159, 0);
  • Attente(1, Ignorer la condition);
  • "Soldier"
  • Créer un effet(Global.Visibilities[0], Etincelles, Couleur(Jaune), Global.SkillSpots[0], 1, Visible pour);
  • Créer un effet(Global.Visibilities[0], Etincelles, Couleur(Jaune), Global.SkillSpots[1], 1, Visible pour);
  • Créer un effet(Global.Visibilities[0], Etincelles, Couleur(Jaune), Global.SkillSpots[2], 1, Visible pour);
  • "Mei"
  • Créer un effet(Global.Visibilities[1], Etincelles, Couleur(Vert), Global.SkillSpots[3], 1, Visible pour);
  • Créer un effet(Global.Visibilities[1], Etincelles, Couleur(Vert), Global.SkillSpots[4], 1, Visible pour);
  • Créer un effet(Global.Visibilities[1], Etincelles, Couleur(Vert), Global.SkillSpots[5], 1, Visible pour);
  • "Hammond"
  • Créer un effet(Global.Visibilities[2], Etincelles, Couleur(Bleu), Global.SkillSpots[6], 1, Visible pour);
  • Créer un effet(Global.Visibilities[2], Etincelles, Couleur(Bleu), Global.SkillSpots[7], 1, Visible pour);
  • Créer un effet(Global.Visibilities[2], Etincelles, Couleur(Bleu), Global.SkillSpots[8], 1, Visible pour);
  • "Symmetra"
  • Créer un effet(Global.Visibilities[3], Etincelles, Couleur(Violet), Global.SkillSpots[9], 1, Visible pour);
  • Créer un effet(Global.Visibilities[3], Etincelles, Couleur(Violet), Global.SkillSpots[10], 1, Visible pour);
  • "Echo"
  • Créer un effet(Global.Visibilities[4], Etincelles, Couleur(Rouge), Global.SkillSpots[11], 1, Visible pour);
  • Créer un effet(Global.Visibilities[4], Etincelles, Couleur(Rouge), Global.SkillSpots[12], 1, Visible pour);
  • }
  • }
  • règle("Get Skill")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Vrai pour n’importe qui(Global.SkillSpots, Distance entre(Élément de tableau actuel, Position de(Joueur exécutant)) <= 1.500)
  • désactivé Vrai pour n’importe qui(Global.SkillSpots, Distance entre(Élément de tableau actuel, Position de(Joueur exécutant)) <= 1.500)
  • == Vrai;
  • Apparition(Joueur exécutant) == Vrai;
  • }
  • actions
  • {
  • "Soldier"
  • Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[0]) <= 1.500 && Héros de(Joueur exécutant) == Héros(Soldat : 76)
  • && Joueur exécutant.SkillsUnlocked[0] != Vrai);
  • Définir l’activation de la capacité 1(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Sprint)", Chaîne d’icône de la capacité(Héros(
  • Soldat : 76), Bouton(Capacité 1))));
  • Joueur exécutant.SkillsUnlocked[0] = Vrai;
  • Joueur exécutant.SkillCount = 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[1]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Soldat : 76) && Joueur exécutant.SkillsUnlocked[1] != Vrai);
  • Définir l’activation du tir secondaire(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Rockets)", Chaîne d’icône de la capacité(Héros(
  • Soldat : 76), Bouton(Tir secondaire))));
  • Joueur exécutant.SkillsUnlocked[1] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[2]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Soldat : 76) && Joueur exécutant.SkillsUnlocked[2] != Vrai);
  • Définir l’activation de la capacité 2(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the the {0} (Invulnerability Heal)",
  • Chaîne d’icône de la capacité(Héros(Soldat : 76), Bouton(Capacité 2))));
  • Joueur exécutant.SkillsUnlocked[2] = Vrai;
  • Joueur exécutant.ExtraSkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Attente(3, Ignorer la condition);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Your {0} make you invulnerable in Lava zones",
  • Chaîne d’icône de la capacité(Héros(Soldat : 76), Bouton(Capacité 2))));
  • "Mei"
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[3]) <= 1.500 && Héros de(Joueur exécutant) == Héros(Mei)
  • && Joueur exécutant.SkillsUnlocked[3] != Vrai);
  • Définir l’activation de la capacité 1(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the the {0} (Cryo-Freeze)", Chaîne d’icône de la capacité(
  • Héros(Mei), Bouton(Capacité 1))));
  • Joueur exécutant.SkillsUnlocked[3] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[4]) <= 1.500 && Héros de(Joueur exécutant) == Héros(Mei)
  • && Joueur exécutant.SkillsUnlocked[4] != Vrai);
  • Définir l’activation de la capacité 2(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Ice Wall)", Chaîne d’icône de la capacité(Héros(
  • Mei), Bouton(Capacité 2))));
  • Joueur exécutant.SkillsUnlocked[4] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[5]) <= 1.500 && Héros de(Joueur exécutant) == Héros(Mei)
  • && Joueur exécutant.SkillsUnlocked[5] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Your {0} has been improved", Chaîne d’icône de la capacité(Héros(Mei),
  • Bouton(Tir principal))));
  • Joueur exécutant.SkillsUnlocked[5] = Vrai;
  • Joueur exécutant.ExtraSkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Attente(3, Ignorer la condition);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Your {0} will act like a Frosty JetPack", Chaîne d’icône de la capacité(
  • Héros(Mei), Bouton(Tir principal))));
  • "Hammond"
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[6]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Bouldozer) && Joueur exécutant.SkillsUnlocked[6] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Piledriver)", Chaîne d’icône de la capacité(Héros(
  • Bouldozer), Bouton(S’accroupir))));
  • Joueur exécutant.SkillsUnlocked[6] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[7]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Bouldozer) && Joueur exécutant.SkillsUnlocked[7] != Vrai);
  • Définir l’activation du tir secondaire(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Grappling Claw)", Chaîne d’icône de la capacité(
  • Héros(Bouldozer), Bouton(Tir secondaire))));
  • Joueur exécutant.SkillsUnlocked[7] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[8]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Bouldozer) && Joueur exécutant.SkillsUnlocked[8] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Your {0} has been improved", Chaîne d’icône de la capacité(Héros(
  • Bouldozer), Bouton(S’accroupir))));
  • Joueur exécutant.SkillsUnlocked[8] = Vrai;
  • Joueur exécutant.ExtraSkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Attente(3, Ignorer la condition);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Hold the {0} when landing to dig through the ground",
  • Chaîne d’icône de la capacité(Héros(Bouldozer), Bouton(S’accroupir))));
  • "Symmetra"
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[9]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Symmetra) && Joueur exécutant.SkillsUnlocked[9] != Vrai);
  • Définir l’activation de la capacité 1(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Bouncy Turrets)", Chaîne d’icône de la capacité(
  • Héros(Symmetra), Bouton(Capacité 1))));
  • Joueur exécutant.SkillsUnlocked[9] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[10]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Symmetra) && Joueur exécutant.SkillsUnlocked[10] != Vrai);
  • Définir l’activation du tir secondaire(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Teleporting Shot)", Chaîne d’icône de la capacité(
  • Héros(Symmetra), Bouton(Tir secondaire))));
  • Joueur exécutant.SkillsUnlocked[10] = Vrai;
  • Joueur exécutant.ExtraSkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Attente(3, Ignorer la condition);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You will be teleported at the impact point of your secondary shot"));
  • "Echo"
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[11]) <= 1.500 && Héros de(Joueur exécutant) == Héros(Écho)
  • && Joueur exécutant.SkillsUnlocked[11] != Vrai);
  • Définir l’activation de la capacité 1(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Flight)", Chaîne d’icône de la capacité(Héros(Écho),
  • Bouton(Capacité 1))));
  • Joueur exécutant.SkillsUnlocked[11] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[12]) <= 1.500 && Héros de(Joueur exécutant) == Héros(Écho)
  • && Joueur exécutant.SkillsUnlocked[12] != Vrai);
  • Définir l’activation de la capacité 2(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Unphasing Laser)", Chaîne d’icône de la capacité(
  • Héros(Écho), Bouton(Capacité 2))));
  • Joueur exécutant.SkillsUnlocked[12] = Vrai;
  • Joueur exécutant.ExtraSkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Attente(3, Ignorer la condition);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You will be able to pass through things at the laser impact point"));
  • Si(Vrai pour n’importe qui(Global.SkillSpots, Distance entre(Élément de tableau actuel, Position de(Joueur exécutant)) <= 1.500));
  • "Soldier"
  • Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[0]) <= 1.500 && Héros de(Joueur exécutant) == Héros(Soldat : 76)
  • && Joueur exécutant.SkillsUnlocked[0] != Vrai);
  • Définir l’activation de la capacité 1(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Sprint)", Chaîne d’icône de la capacité(Héros(
  • Soldat : 76), Bouton(Capacité 1))));
  • Joueur exécutant.SkillsUnlocked[0] = Vrai;
  • Joueur exécutant.SkillCount = 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[1]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Soldat : 76) && Joueur exécutant.SkillsUnlocked[1] != Vrai);
  • Définir l’activation du tir secondaire(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Rockets)", Chaîne d’icône de la capacité(Héros(
  • Soldat : 76), Bouton(Tir secondaire))));
  • Joueur exécutant.SkillsUnlocked[1] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[2]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Soldat : 76) && Joueur exécutant.SkillsUnlocked[2] != Vrai);
  • Définir l’activation de la capacité 2(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the the {0} (Invulnerability Heal)",
  • Chaîne d’icône de la capacité(Héros(Soldat : 76), Bouton(Capacité 2))));
  • Joueur exécutant.SkillsUnlocked[2] = Vrai;
  • Joueur exécutant.ExtraSkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Attente(3, Ignorer la condition);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Your {0} make you invulnerable in Lava zones",
  • Chaîne d’icône de la capacité(Héros(Soldat : 76), Bouton(Capacité 2))));
  • "Mei"
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[3]) <= 1.500 && Héros de(Joueur exécutant) == Héros(Mei)
  • && Joueur exécutant.SkillsUnlocked[3] != Vrai);
  • Définir l’activation de la capacité 1(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the the {0} (Cryo-Freeze)", Chaîne d’icône de la capacité(
  • Héros(Mei), Bouton(Capacité 1))));
  • Joueur exécutant.SkillsUnlocked[3] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[4]) <= 1.500 && Héros de(Joueur exécutant) == Héros(Mei)
  • && Joueur exécutant.SkillsUnlocked[4] != Vrai);
  • Définir l’activation de la capacité 2(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Ice Wall)", Chaîne d’icône de la capacité(Héros(
  • Mei), Bouton(Capacité 2))));
  • Joueur exécutant.SkillsUnlocked[4] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[5]) <= 1.500 && Héros de(Joueur exécutant) == Héros(Mei)
  • && Joueur exécutant.SkillsUnlocked[5] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Your {0} has been improved", Chaîne d’icône de la capacité(Héros(Mei),
  • Bouton(Tir principal))));
  • Joueur exécutant.SkillsUnlocked[5] = Vrai;
  • Joueur exécutant.ExtraSkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Attente(3, Ignorer la condition);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Your {0} will act like a Frosty JetPack", Chaîne d’icône de la capacité(
  • Héros(Mei), Bouton(Tir principal))));
  • "Hammond"
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[6]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Bouldozer) && Joueur exécutant.SkillsUnlocked[6] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Piledriver)", Chaîne d’icône de la capacité(Héros(
  • Bouldozer), Bouton(S’accroupir))));
  • Joueur exécutant.SkillsUnlocked[6] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[7]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Bouldozer) && Joueur exécutant.SkillsUnlocked[7] != Vrai);
  • Définir l’activation du tir secondaire(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Grappling Claw)", Chaîne d’icône de la capacité(
  • Héros(Bouldozer), Bouton(Tir secondaire))));
  • Joueur exécutant.SkillsUnlocked[7] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[8]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Bouldozer) && Joueur exécutant.SkillsUnlocked[8] != Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Your {0} has been improved", Chaîne d’icône de la capacité(Héros(
  • Bouldozer), Bouton(S’accroupir))));
  • Joueur exécutant.SkillsUnlocked[8] = Vrai;
  • Joueur exécutant.ExtraSkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Attente(3, Ignorer la condition);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("Hold the {0} when landing to dig through the ground",
  • Chaîne d’icône de la capacité(Héros(Bouldozer), Bouton(S’accroupir))));
  • "Symmetra"
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[9]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Symmetra) && Joueur exécutant.SkillsUnlocked[9] != Vrai);
  • Définir l’activation de la capacité 1(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Bouncy Turrets)", Chaîne d’icône de la capacité(
  • Héros(Symmetra), Bouton(Capacité 1))));
  • Joueur exécutant.SkillsUnlocked[9] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[10]) <= 1.500 && Héros de(Joueur exécutant) == Héros(
  • Symmetra) && Joueur exécutant.SkillsUnlocked[10] != Vrai);
  • Définir l’activation du tir secondaire(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Teleporting Shot)", Chaîne d’icône de la capacité(
  • Héros(Symmetra), Bouton(Tir secondaire))));
  • Joueur exécutant.SkillsUnlocked[10] = Vrai;
  • Joueur exécutant.ExtraSkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Attente(3, Ignorer la condition);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You will be teleported at the impact point of your secondary shot"));
  • "Echo"
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[11]) <= 1.500 && Héros de(Joueur exécutant) == Héros(Écho)
  • && Joueur exécutant.SkillsUnlocked[11] != Vrai);
  • Définir l’activation de la capacité 1(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Flight)", Chaîne d’icône de la capacité(Héros(Écho),
  • Bouton(Capacité 1))));
  • Joueur exécutant.SkillsUnlocked[11] = Vrai;
  • Joueur exécutant.SkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Sinon Si(Distance entre(Position de(Joueur exécutant), Global.SkillSpots[12]) <= 1.500 && Héros de(Joueur exécutant) == Héros(Écho)
  • && Joueur exécutant.SkillsUnlocked[12] != Vrai);
  • Définir l’activation de la capacité 2(Joueur exécutant, Vrai);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You Unlocked the {0} (Unphasing Laser)", Chaîne d’icône de la capacité(
  • Héros(Écho), Bouton(Capacité 2))));
  • Joueur exécutant.SkillsUnlocked[12] = Vrai;
  • Joueur exécutant.ExtraSkillCount += 1;
  • Jouer un effet(Tous les joueurs(Toutes les équipes), Son d’explosion d’amélioration, Couleur(Blanc), Position de(Joueur exécutant),
  • 100);
  • Attente(3, Ignorer la condition);
  • Message en petit(Joueur exécutant, Chaîne personnalisée("You will be able to pass through things at the laser impact point"));
  • Fin;
  • Fin;
  • désactivé Attente(0.100, Ignorer la condition);
  • désactivé Sous-programme à appeler(UpdateCount);
  • Attente(0.200, Ignorer la condition);
  • Boucle;
  • }
  • }
  • règle("No Piledriver")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Héros de(Joueur exécutant) == Héros(Bouldozer);
  • désactivé Bouton maintenu enfoncé(Joueur exécutant, Bouton(S’accroupir)) == Vrai;
  • Joueur exécutant.SkillsUnlocked[6] != Vrai;
  • }
  • actions
  • {
  • Définir un statut(Joueur exécutant, Non applicable, Piraté, 1.100);
  • Attente(1, Ignorer la condition);
  • Définir un statut(Joueur exécutant, Non applicable, Piraté, 0.600);
  • Attente(0.500, Ignorer la condition);
  • Boucle si la condition est vraie;
  • }
  • }
  • règle("Soldier Heal")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Héros de(Joueur exécutant) == Héros(Soldat : 76);
  • Capacité 2 utilisée(Joueur exécutant) == Vrai;
  • }
  • actions
  • {
  • Joueur exécutant.CanDie = Faux;
  • Attente(5, Ignorer la condition);
  • Joueur exécutant.CanDie = Vrai;
  • }
  • }
  • règle("Symmetra TP")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Héros de(Joueur exécutant) == Héros(Symmetra);
  • Tir secondaire(Joueur exécutant) == Vrai;
  • }
  • actions
  • {
  • Attente(0.500, Ignorer la condition);
  • Attente(0.100, Ignorer la condition);
  • Boucle si la condition est vraie;
  • Joueur exécutant.Impact = Position d’impact du rayon émis(Position des yeux(Joueur exécutant), Position des yeux(Joueur exécutant)
  • + Regard en direction de(Joueur exécutant) * 100, Non applicable, Tous les joueurs(Toutes les équipes), Faux)
  • - Regard en direction de(Joueur exécutant);
  • Téléportation(Joueur exécutant, Joueur exécutant.Impact);
  • - Regard en direction de(Joueur exécutant) * 1.500;
  • Si(Distance entre(Position des yeux(Joueur exécutant), Joueur exécutant.Impact) < 98.500);
  • Attente(0.020 * Distance entre(Position des yeux(Joueur exécutant), Joueur exécutant.Impact), Ignorer la condition);
  • Téléportation(Joueur exécutant, Joueur exécutant.Impact);
  • Fin;
  • }
  • }
  • règle("Small Ball")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Héros de(Joueur exécutant) == Héros(Bouldozer);
  • Distance entre(Position de(Joueur exécutant), Vecteur(-133.100, -82.700, 59.200)) <= 2;
  • désactivé Distance entre(Position de(Joueur exécutant), Vecteur(-133.100, -82.700, 59.200)) <= 2;
  • }
  • actions
  • {
  • Redimensionner le joueur(Joueur exécutant, 0.900, Faux);
  • Attente(1, Ignorer la condition);
  • Arrêter de redimensionner le joueur(Joueur exécutant);
  • Si(Distance entre(Position de(Joueur exécutant), Vecteur(-133.100, -82.700, 59.200)) <= 2);
  • Redimensionner le joueur(Joueur exécutant, 0.900, Faux);
  • Attente(1, Ignorer la condition);
  • Boucle si la condition est vraie;
  • Arrêter de redimensionner le joueur(Joueur exécutant);
  • Fin;
  • Attente(0.250, Ignorer la condition);
  • }
  • }
  • règle("Echo Laser")
  • {
  • évènement
  • {
  • Toute la partie - Chaque joueur;
  • Les deux;
  • Tout;
  • }
  • conditions
  • {
  • Héros de(Joueur exécutant) == Héros(Écho);
  • Capacité 2 utilisée(Joueur exécutant) == Vrai;
  • }
  • actions
  • {
  • Attente(0.250, Ignorer la condition);
  • Joueur exécutant.Impact = Position d’impact du rayon émis(Position des yeux(Joueur exécutant), Position des yeux(Joueur exécutant)
  • + Regard en direction de(Joueur exécutant) * 100, Non applicable, Tous les joueurs(Toutes les équipes), Faux)
  • - Regard en direction de(Joueur exécutant);
  • Si(Distance entre(Position des yeux(Joueur exécutant), Joueur exécutant.Impact) <= 2);
  • Désactiver la collision des mouvements avec l’environnement(Joueur exécutant, Vrai);
  • Fin;
  • Boucle si la condition est vraie;
  • Activer la collision des mouvements avec l’environnement(Joueur exécutant);
  • }
  • }
Join the Workshop.codes Discord