Tutorial, mapping et scripting créés par Tropheus
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.
Tropheus