Voici donc comment réaliser un éclair apparaissant à des endroits différents de votre map et à des intervalles aléatoires (c'est tout de même plus marrant qu'un éclair qui apparaît toutes les cinq secondes et au même endroit à chaque fois, n'est-ce pas ?! ^^ ).
I - L'éclair en lui-même
Pour l'éclair, nous allons tout simplement utiliser un env_sprite.
Bien, c'est ici qu'arrive la première mauvaise nouvelle... Il n'y a aucun sprite d'éclair dans Half-Life 2 ni dans ses mods...
Mais ? Mais ? Mais que faire ?!
Du calme ! Je vous donne ce sprite (gratuitement en plus... tsss, déjà que les tutoriels c'est bénévole... je suis trop gentil ! :p ). Vous pouvez le télécharger ici.
Placez donc un env_sprite dans le ciel à la hauteur où vous souhaitez que votre éclair figure, puis configurez-le comme moi.
Citation : Configuration du premier env_sprite
Name : eclair_sprite.
Sprite name : sprites/lightning.vmt (et on n'oublie pas le « .vmt » à la fin s'il vous plaît).
Voilà, vous avez fait 50 % de l'éclair en lui-même ! Il reste encore 50 %... (Nooooooon ?! o_O )
Vous aurez remarqué que dans la nature, quand il y a un éclair, il y a une « lueur » autour (la lumière sur les nuages sûrement ^^ ) et un flash. Eh bien allons-y !
Encore une fois, nous allons utiliser un env_sprite.
Eh eh, c'est là qu'on a le droit à la 2nde mauvaise nouvelle (c'est la dernière, promis !)... Encore une fois, pas de sprite pour ça ! Mais moi, dans mon extrême générosité :p , je vous avais déjà fourni le sprite nécessaire dans le téléchargement précédent.
Placez le second env_sprite juste à côté du premier et configurez-le comme suit :
Citation : Configuration du second env_sprite
Name : glow_sprite.
Sprite name : sprites/lightningglow.vmt (et s'il vous plaît, encore une fois on n'oublie pas le « .vmt » à la fin !).
Voilà, ça, c'est fait !
II - Le son
Un orage sans son, ce n'est plus un orage ! Alors voici la partie la plus simple : celle où l'on rajoute un son de tonnerre.
On utilisera pour cela un ambient_generic...
...
...
Bah ? Allez ! Je ne devrais pas avoir à vous le dire ! Placez un ambient_generic dans votre map, proche des deux env_sprite (c'est plus simple pour se repérer).
Allez, on me configure tout ça !
Citation : Configuration du ambient_generic
Name : tonnerre_son.
Sound Name : cliquez sur Browse, mettez Sound type: Raw, tapez « thunder » dans le champ Filter, et choisissez parmi la liste qui s'offre à vous.

Citation : Configuration des FLAGS de l'ambient_generic
Laissez tout par défaut + [x] play everywhere (permet de jouer le son partout dans la map).
Bon c'est bien, on avance vite. ^^
III - Le timing
Aaaaah, le « timing », un mot qui fait peur, mais qui ne devrait pas ! Bon d'accord, cette partie est la plus dure du tutoriel, mais tout est relatif (retenez ça au passage pour vos cours de physique / chimie : « tout est relatif » ! Hum bref, désolé, on passe).
On va utiliser un logic_timer, placez-en un où vous voulez dans votre map (encore une fois c'est plus simple pour se repérer si vous le placez près des env_sprite et du ambient_generic).
Configurons, mes amis, configurons !
Citation : Configuration du logic_timer
Name : eclair_timer.
Start disable : no.
Use random time : yes.
Min Random interval : 5.
Max Random interval : 60.
Allez, maintenant, on se dirige vers l'onglet Outputs de ce logic_timer. C'est ici que l'on va réellement configurer le timing. Cliquez sur Add pour ajouter un Output.
Citation : Configuration des Outputs du logic_timer
My output named : OnTimer.
Target entity name : eclair_sprite.
Via this Output : ShowSprite.My output named : OnTimer.
Target entity name : glow_sprite.
Via this Output : ShowSprite.My output named : OnTimer.
Target entity name : eclair_sprite.
Via this Output : HideSprite.
Delay : 0.50.My output named : OnTimer.
Target entity name : glow_sprite.
Via this Output : HideSprite.
Delay : 0.50.My output named : OnTimer.
Target entity name : tonnerre_son.
Via this Output : PlaySound.
Delay : 0.50.
Pfffiou ! Voilà ! Ça c'est fait !!! Non ? Pas vous ? Vous êtes perdus ? Bon, voilà une petite image pour vous repérer :

Bon, à ce stade, vous avez un éclair qui apparaît à des laps de temps aléatoires mais toujours au même endroit, ce qui est dommage tout de même ! C'est pour ça qu'il y a une 4e partie. Allez on attaque !
IV - Déplacement de l'éclair
Très simple, cette partie ! Une seule entité, deux petits réglages et on a fini ! Très bien, allons-y : créez un bloc avec la texture invisible ou nodraw et transformez-le en func_rotating.
Citation : Configuration du func_rotating
Name : eclair_rotation.
Citation : Configuration des FLAGS du func_rotating
Laissez par défaut + [x] Start ON.
Retournez dans les propriétés des deux env_sprite et dans le champ Parent, mettez « eclair_rotation ».
Voici deux schémas du positionnement des différentes entités pour éviter tout problème :


Non non, pas la peine de tourner la tête comme ça ! Mes schémas sont bien dans le bon sens, c'est juste que mes talents de graphiste sont aussi peu développés que mes talents de mappeur ! Eh oui, le petit truc étrange dans le 2nd schéma est bel et bien un arbre... (mon Dieu, j'ai honte !) :-°
Sur ce, bravo cher Zéro ! Tu y es arrivé !