Leçon d´aujourd´hui : Comment faire qu´une action soit répétée infiniment ou pendant un certain temps ?
Nous allons considérer en premier temps une action infinie qui met des radiations dans une zone. Pour cela, nous allons premièrement placer un Waypoint à l´endroit où les radiations seront. Nommez ce Waypoint "Radiations".Puis nous allons ouvrir le menu de scripts (Edit -> Scripts...), et nous allons faire "New Script..." dans le dossier PlyrCivilian. Nous allons faire que les radiations apparaissent au bout de 10 secondes. Pour se faire, dans ce premier script que vous allez nommer "Timer Début" (nommer les scripts est important pour s´y retrouver lorsqu´il y en a une cinquantaine). Allez ensuite dans l´onglet "Script Conditions", il y a la condition de départ True. Laissez comme cela. Allez ensuite dans "Actions if True". Puis cliquez sur le script présent (Does nothing) et faites Edit. Dans le menu "Scripting" (dans lequel vous êtes déjà), cliquez sur le + du sous-menu "Timer". Choisissez ensuite à l´intérieur de ce sous-menu, l´action "Seconds countdown timer -- set." Vous voyez maintenant dans le cadre en bas : "Set timer ´???´ to expire in 0.00 seconds." Cliquez sur les "???" et donnez-lui comme nom "Timer_début", puis faite OK. Cliquez ensuite sur "0.00" et écrivez 10 et faites OK. Ensuite refaites OK pour valider l´action. Et maintenant faites encore OK, pour valider le script. Faites de nouveau "New Script..." et donnez lui le nom "Radiation1". Dans l´onglet "Script Conditions", sélectionnez "True" et faites Edit. Choisissez le script "Timer expired.", puis dans le cadre en bas, cliquez sur "???" et sélectionnez dans le menu déroulant votre timer "Timer_début". Faites OK, puis encore OK pour valider la condition, puis allez dans l´onglet "Actions if true", sélectionnez "Null operation. (Does nothing.)" et faites Edit. Fermez le menu "Scripting" (en remontant un peu), et ouvrez le menu "Unit", puis le sous-menu "Spawn", et sélectionnez l´action "Spawn -- unnamed unit on a team at a waypoint.". Dans le cadre en bas, cliquez sur "???" et choisissez l´object "Civilian -> SYSTEM -> RadiationFieldLarge". Cliquez sur "Team ?? ?" et choisissez "teamPlyrCivilian" dans le menu déroulant. Puis cliquez sur "Waypoint ?? ?" et choisissez dans le menu déroulant "Radiations". Faits ensuite OK pour valider l´action. Cliquez maintenant sur New et de la même façon que dans le premier script, faites un timer de 5 secondes qui se nommera "Radiation2". Ensuite refaites New (toujours dans le même script) Puis dans le menu "Scripting", allez dans le sous-menu "Script", puis chosissez l´action "Enable Script." et entrez-vous même le nom de script "Radiation2". Faites ensuite encore New et cette fois n´activez pas, mais désactivez le script (action "Disable Script"). Entrez donc le nom "Radiation1". Validez l´action, et cette fois validez le script. Il va afficher une erreur (point d´interrogation rouge sur le script). Cela est normal, car une action a été anticipée : activer le script "Radiation2", alors qu´il n´existe pas. Eh bien créez-le justement ! Nommez le "Radiation2", donnez-lui comme "Script Conditions" : "Timer ´Radiation2´ has expired.", puis dans "Actions if true.", mettez les mêmes actions que l´autre script ("Spawn -- unnamed unit on a team at a waypoint.". Dans le cadre en bas, cliquez sur "???" et choisissez l´object "Civilian -> SYSTEM -> RadiationFieldLarge". Cliquez sur "Team ?? ?" et choisissez "teamPlyrCivilian" dans le menu déroulant. Puis cliquez sur "Waypoint ?? ?" et choisissez dans le menu déroulant "Radiations".) Sauf que cette fois les trois autres actions seront différentes : le timer sera toujours de 5 secondes mais se nommera "Timer_début". Vous allez faire "Enable Script ´Radiation1´" et vous allez faire en dernier "Disable Script ´Radiation2´" (toujours respecter dans cet ordre les actions). Faites OK pour valider votre Script, puis OK pour valider la fenêtre des scripts. Sauvegardez votre partie et allez tester dans le jeu. À l´endroit défini, au bout de 10 secondes, des radiations apparaitront à l´infini.
Pour que cela dure un certain moment seulement (comme les radiations de la centrale dans Longtown). Il faut tout simplement que dans votre premier script ("Timer Début"), vous mettiez une zautre action (un timer) qui lui arrêtera les radiations. Par exemple, vous voulez que vos radiations durent 2 minutes ? Alors mettez 130 secondes au timer (10 secondes au début où il n´y a pas de radiations). Faites un script qui à la fin de ce timer Disable le script "Radiation1", et qu´il Disable le script "Radiation2". Le tour est joué !
Voici la map de démonstration (dans la même que pour la leçon 2) : http://reyden0708.free.fr/radiations.zip
Prochaine leçon : Comment créer des rivières et des belles montagnes ?
Pile à l´heure ! ^^