Faire sauter un nebelwefer au bazooka.

Tutorial, mapping et scripting créés par Tropheus

Retour au sommaire

Au cours de ce tutorial, vous allez apprendre à faire sauter un nebelwefer au bazooka.

1/ Partie mapping.

Bon! Inutile de vous faire un dessin, je suppose que vous savez maintenant construire un espace de jeu !n

Sur cet espace, vous allez placer un nebelwefer. Pour cela, dans la vue 2D, clic_droit/turretweapon/german/nebelwefer. A ce nebelwefer vous donnerez les key / value suivantes :

targetname / nebel

Le problème est que si on laisse tout cela comme ça, lorsque vous tirerez, les missiles traverseront le model. Alors pour éviter cela, vous allez recouvrir les différentes parties du nebelwefer avec des brushes auxquels vous appliquerez la texture clip metal. Vous la trouverez dans les "common".
Il est aussi possible d'utiliser la texture
clip metal tank.

Ce n'est pas un travail évident, mais pour plus de réalisme, il est nécessaire. D'auilleur dans un soucis de véracité, n'hésitez pas à utiliser plusieurs brushes pour les différentes parties du modèle.

Une fois terminé, votre nebelwefer est prêt.

Il va maintenant falloir trouver un moyen de le faire exploser.

Pour cela vous allez placer sur la partie intérieure du canon un trigger_multipleall. Vous lui donnerez les keys et values suivantes, mais surtout n'oubliez pas de cocher la case DAMAGE.
$targetname / nebel_trigger

Vous obtenez ceci en vue 2D
et en vue 3D

Bon !Voici le nebelwefer intact de près. Il ne reste plus qu'à mettre le nebelwefer détruit. Pour cela, vue 2D clic_droit/turretweapon/german/nebelwefer-d. vous lui donnez les key / value suivantes:
targetname / nebel_d
Puis, vous le placez au bon endroit "sur l'autre" puisqu'il doit prendre sa place lorsque ce dernier sera détruit.
Je vous conseille de donner toutes les valeurs avant de la placer car ensuite vous aurez du mal à le resélectionner. Il reste tout de même pour cela la solution de l'onglet "info entité" dans le menu "édition" pour le récupérer, mais c'est plus long.

A la fin vous obtenez ceci.

Bon voici le mapping terminé, on va passer au script.

2/ Partie scripting.

Vous avez sans doute remarqué sur l'image au-dessus que les 2 models sont apparents. Ceci ne doit pas arriver dans le jeu. Il va donc falloir cacher le model détruit dès le début de jeu.

Voici le script :

exec global/loadout.scr maps/test_nebel.scr
exec global/ai.scr

main:

level waittill prespawn

exec global/ambient.scr test_nebel

    level waittill spawn
        $player item weapons/m2frag_grenade.tik
        $player item weapons/thompsonsmg.tik
        $player item weapons/bazooka.tik
        $player ammo smg 1000
        $player ammo heavy 92
        $player ammo grenade 10
     thread objets_caches
     thread nebel_explo
    level.script = "maps/test_nebel.scr"
end
////////////////////objets cachés//////////////
objets_caches:
    $nebel_d hide
end
///////////////////////////////////////////////
///////////////////explosion du nebel//////////////
nebel_explo:
    $nebel_trigger.health=50
    while ($nebel_trigger.health==50)
     waitframe
    local.exp1=spawn "animate/fx_explosion_tank.tik"
    local.exp1.origin=$nebel.origin
    local.exp1 anim start
    radiusdamage $nebel.origin 75 200
    $nebel remove
    $nebel_d show
end

Je sais que vous attendez les explications alors je vous les donne.

exec global/loadout.scr maps/test_nebel.scr
exec global/ai.scr
main:

level waittill prespawn

exec global/ambient.scr test_nebel

level waittill spawn
$player item weapons/m2frag_grenade.tik
$player item weapons/thompsonsmg.tik
$player item weapons/bazooka.tik
$player ammo smg 1000
$player ammo heavy 92
$player ammo grenade 10
thread objets_caches
//renvoie au thread qui s'occupe de cacher les objets. On aurait pu mettre la ligne en question ici, mais si vous en avez plusieurs c'est toujours intéressant de les regrouper au même endroit pour pas se gourer.
thread nebel_explo//renvoie au thread qui s'occupe de faire l'échange entre les 2 models.
level.script = "maps/test_nebel.scr"
end
////////////////////objets cachés//////////////
objets_caches:
$nebel_d hide
//on cache le model détruit (commande "hide")
end
///////////////////////////////////////////////
///////////////////explosion du nebel//////////////

nebel_explo:
//thread appelé dès le début.
$nebel_trigger.health=50//on donne ici des points de vie au trigger. J'ai mis 50, mais en 3 balles de thompson le nebel est détruit. C'est donc à vous de trouver la bonne valeur pour que ce soit réaliste.
while ($nebel_trigger.health==50)//condition : tant que la vie de nebel_trigger est égale à 50
waitframe//on attend.//sinon on passe aux lignes qui suivent.
local.exp1=spawn "animate/fx_explosion_tank.tik"// Ici j'ai rajouté une explosion pour masquer le changement de model.
local.exp1.origin=$nebel.origin//définition de l'endroit où doit se passer l'explosion secondaire.
local.exp1 anim start//on lance l'animation
radiusdamage $nebel.origin 75 200//un rayon de dégât.
$nebel remove//on enlève le model intact
$nebel_d show//on montre le model détruit.
end

Et voila, c'est fini.

Téléchargez le pk3.

Tropheus

retour au sommaire