Titre original : Bombing
Stuff
Auteur/autor : mohaa-rox
traduction et adaptation : Tropheus
1/ Partie Mapping
C'est la partie la plus longue. Tout d'abord, comme d'habitude,
un ,espace de jeu avec tout ce qu'il faut.
Sur cet espace de jeu vous allez placer la base
de votre canon. (en vue 2D clic_droit/turretweapon/german/88mmflakbase)
Sur cette base, vous allez placer la tourelle. (en vue 2D clic-droit/turretweapon/german/88mmflakturret) faites bien coïncider les 2 éléments pour que cela fasse quelque chose de réaliste. Pour cela, n'hésitez pas à passer un grille 1.
Tant que la tourelle est sélectionnée, entrez les key / value suivantes :
#set / 1
targetname / exploder
Bon il vous faut maintenant le canon détruit.
Pour cela en vue 2D clic_droit/turretweapon/german/88mmflak-destroyed.
Vous la positionnez correctement pour qu'elle prenne la
place
le l'autre quand elle aura sauté.
Tant qu'elle est sélectionnée donnez lui les key / value suivantes
:
#set / 1
targetname / explodersmashed
Il vous faut maintenant une explosion.
En vue 2D clic_droit/fx/explosion/tank. avec les key / value suivantes :
#set / 1
targetname / exploderfire
Ce qui pour l'instant donne ceci :
Il vous faut maintenant un endroit ou placer votre
bombe.
Pour cela créez un script_model
auquel vous donnerez les key / value suivantes :
model / items/pulse_explosive.tik
targetname / bomb1
$trigger_name / bomb1_trigger
Un explosion doit endommager ceux qui sont autour. Alors, vous
allez créé un hurtobject. Pour
cela, vous allez créez un petit brush auquel vous donnerez
la texture "no draw" (que vous trouvez
dans common) et que vous transformerez
en script_object. Ensuite, vous lui
donnez les key / value
suivantes :
targetname / hurtobject1
Maintenant, il nous faut le déclencheur. Pour cela vous allez créez un brush autour des éléments cités plus haut, et vous le transformez en trigger_use. Tant qu'il est sélectionné, donnez lui les key / value suivantes :
targetname / bomb1_trigger
Le dernier élément sera un script_origin qui fera pointer le compas sur le flak. Pour cela, donnez lui les key / value suivantes :
targetname / obj1
Et voila la partie flak terminée. Vous devez avoir cet imbroglio d'éléments sur votre flak.
Pour agrémenter le tout vous allez maintenant rajouter
des débris qui vont voler dans différentes
directions.
Pour cela, construisez des petits brushs avec une texture"métal"
et de la forme que vous désirez. Vous les transformez en
script_object. Et vous donnez à
chacun les key / value
suivantes :
#set / 1
target / ex1
(ou un autre numéro pour un autre débris.)
targetname / exploderchunk
Attention, vous allez les placer proche du canon puisque c'est de là qu'ils vont partir lors de l'explosion. MAIS ils ne doivent EN AUCUN CAS être en contact direct avec le cube de la tourelle détruite (explodersmashed).Vous devez donc laissez un espace entre les éléments. (Ces éléments sont invisibles dans le jeu tant que l'explosion n'a pas eu lieu.)
Les débris devront voler, mais pas n'importe où.
Vous allez leur donner une cible à chacun. (ou une pour
plusieurs).
Pour cela, vous allez positionner des script_origin
aux endroits ou doivent voler les débris. Vous leur
donnez les key / value
suivantes :
#set / 1
targetname / ex1
ou un autre numéro en fonction de la cible désigner
par l'exploderchunk.
Vous devez voir une flèche bleue lier le débris à sa cible.
Au final cela doit vous donnez quelque chose comme ça
:
Et voici enfin la partie mapping terminée. C'était la plus longue.
ATTENTION. Pour un soucis de visibilité sur les screenshots. J'ai volontairement omis de recouvrir le flak de brush ayant la texture "clip metal" (cf le tutorial sur le nebelwefer). Vous verrez dans le jeu que vous pourrez traverser le "model".
2/ Partie scripting.
Voici le script.
//mapping : Tropheus
//scripting : Tropheus inspiré de mohaarox
exec global/ai.scr
exec global/loadout.scr maps/test_exploflak.scr
main:
level waittill prespawn
exec global/exploder.scr
level waittill spawn
waitthread global/items.scr::add_item "explosive"
waitthread
global/objectives.scr::add_objectives 1 2 "Faire
sauter le flak" $obj1.origin
set_objective_pos $obj1
thread obj1
end
////////////////////l'explosion du flak/////////////////////
obj1:
$bomb1_trigger waittill trigger
$bomb1 model "animate/explosive.tik"
$bomb1 playsound explosive
$player loopsound bombtik
$player stopwatch 5
wait 5
$player stoploopsound bombtik
$bomb1 playsound explode_tank
$bomb1 remove
waitthread global/exploder.scr::explode 1
radiusdamage $hurtobject1 256 384
waitthread global/objectives.scr::add_objectives 2 3 "Faire
sauter le flak" $obj1.origin
end
Héhéhé !!! Je vois déjà d'ici vos yeux émerveillés, mais attendez les explications pour vous exclamer.
//mapping : Tropheus // c'est moi
//scripting : Tropheus inspiré de mohaarox //
c'est encore moi
exec global/ai.scr
exec global/loadout.scr maps/test_exploflak.scr
main:
level waittill prespawn
exec global/exploder.scr // on appelle un script qui va gérer lui même les éléments du mapping (apparition disparition vol explosion etc...)
level waittill spawn
waitthread global/items.scr::add_item "explosive" //
Tout faire
péter sans bombe c'est difficile.
waitthread global/objectives.scr::add_objectives 1 2 "Faire
sauter le flak" $obj1.origin // un
objectif dans la fenêtre (touche tab)
set_objective_pos $obj1 // pointage du compas
thread obj1 // on envoie vers le thread
obj1
end
////////////////////l'explosion du flak/////////////////////
obj1: // le thread en question
$bomb1_trigger waittill trigger // renvoie
au trigger et dis qu'on attend qu'il soit activer pour continuer.
$bomb1 model "animate/explosive.tik" //
une fois activé ici, on plante la bombe.
$bomb1 playsound explosive // la bombe emet le son explosive
(la pose de la bombe sans doute).
$player loopsound bombtik // tic-tac de
la bombe
$player stopwatch 5 // temps avant l'explosion
en seconde.
wait 5 // on attend les 5 secondes (visible
sur le chronomètre)
$player stoploopsound bombtik // pour l'explosion
il faut arrêter le tic tac
$bomb1 playsound explode_tank // son de
l'explosion
$bomb1 remove // on enlève la bombe
puisqu'elle a explosé
waitthread global/exploder.scr::explode 1 //
on active le script exploder (celui du départ pour le "groupe" 1)
radiusdamage $hurtobject1 256 384 // intensité rayon
waitthread global/objectives.scr::add_objectives 2 3 "Faire
sauter le flak" $obj1.origin // le
contrat est rempli.
end
3/ Variantes
Vous devez faire sauter autre chose. Et bien rien de plus simple, dans la partie mapping vous changez tous les "1" en "2". (Dans le script aussi). Ceci vous le ferez pour chaque nouveau groupe. Pour le troisième élément, vous mettrez "3" etc...
Puis vous rajouter ces lignes (lignes roses) à la fin du thread obj1 comme ceci.
....
waitthread global/exploder.scr::explode 1 //
on active le script exploder (celui du départ pour le "groupe"
1)
radiusdamage $hurtobject1 256 384 // intensité
rayon
waitthread global/objectives.scr::add_objectives 2 3 "Faire
sauter le flak" $obj1.origin // le
contrat est rempli.
waitthread global/objectives.scr::add_objectives
2 2 "Faire sauter le second élément."
$obj2.origin
set_objective_pos $obj2
thread obj2
end
/////////////////////obj 2 ///////////
obj2:
commandes...
....
commandes
end
/////////////////
Dans le jeu vous verrez ceci :
Le flak intact :
le flak détruit
Les débris qui volent
Bon voila qui est fait.
Bonne explosion et bon mapping.
Tropheus
NB : Il se peut qu'il y ait des problèmes avec les sons, dans ce cas il faut les fixer ce qui fera l'objet d'un autre tutorial.