Return to post
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);
}
}