Comme je l'ai laissé entendre dans l'introduction, le charriot est un
func_tracktrain. Mais attention le
func_tracktrain est invisible. Le model du charriot est parenté au
func_tracktrain.
Créez un bloc texturé en
toolsclip, que vous transformez en
func_tracktrain. Nommez-le
Bomb_Train.
Ensuite, insérez un
prop_dynamic en utilisant le model
models/props_trainyard/bomb_cart.mdl, et parentez-le au
func_tracktrain :
Le tracktrain demande un certain nombre de propriétés, et dans le cas du charriot, il va falloir en ajouter 3 manuellement.
| Propriétés | Valeurs |
|---|
| ManualAccelSpeed |
70 |
| ManualDecelSpeed |
150 |
| ManualSpeedChanges |
1 |
Voici les propriétés habituelles à adapter :
| Propriétés | Valeurs |
|---|
| Name |
Bombe_train |
| First Stop Target |
CP_Partie1_1 |
| Max Speed |
90 |
| Change Velocity |
Linear blend |
| Distance Between the Wheels |
20 |
| Height above Track |
1 |
| Damage on Crush |
99999 |
| Move Sound |
Cart.Roll |
| Start Sound |
Cart.RollStart |
| Stop Sound |
Cart.RollStop |
Pour Height above Track, c'est bien évidemment à régler en fonction de la position du func_tracktrain et du prop_dynamic
Avant de commencer ce chapitre, je pensais naïvement que Valve avait faire une entité toute faite pour le charriot, avec gestion du dispenser, de la zone de capture et tout et tout. Evidemment, je me trompais

.
La zone dans laquelle les joueurs sont habilités à faire avancer le train est faite tout simplement d'un
trigger_capture_area. Créez-le, tout autour du charriot, et parentez-le au train. Pensez à recouvrir le dessus du train aussi, comme ça si quelqu'un s'y trouve (moi, j'adore me mettre dessus

), il capturera aussi. Nommez cette entité
Bombe_CaptureArea, et associez-lui le premier point de capture (
CP_Partie1_1 dans mon exemple).
Pour terminer le montage du train, il faut s'occuper du dispenser. A la manière du
trigger_capture_area, créez un bloc, avec la texture de trigger, et transformez-le en
dispenser_touch_trigger (ça aurait été plus malin de nommer cette entité
trigger_dispenser, mais bon, le codeur devait être dans un mauvais jour). Hum, bref, donnez un nom à cette entité (
Bombe_dispenser par exemple), et parentez-là au train.
Quand vous vous faites soigner par le charriot, le rayon soignant sort de la cheminée du charriot. Ce "point de départ" du rayon est placé via l'entité
mapobj_cart_dispenser (je maudis ce codeur avec ses noms stupides

). Pas besoin de nommer l'entité (mais bien de la parenter). Spécifiez juste le nom du
dispenser_touch_trigger dans la propriété
Custom touch Trigger, et spécifiez bien la team qui peut bénéficier du soin.
Voici ce que donne mon charriot, avec tous ses triggers autour

: