1/ Première étape : le mapping.
Tout simple, mais cela demande que vous
sachiez les bases du mapping. Ouvrez "Mohradiant" créez une map que vous appellerez "test_script2".
Ensuite, créez deux murs
texturés espacés d'au moins 32 unités (largeur
de votre joueur). Pour toutes les subtilités du mapping
fouillez section "Tuto",
il y a tout ce que vous voulez.
Sur la vue 2D créez un troisième brush entre les deux premiers.
donnez
lui la texture "trigger"
(mot
clé pour appeler la texture : utility)
Vous obtenez ceci.
Pendant que votre brush est sélectionné
cliquez avec le bouton droit dans la vue 2D.
Descendez
le menu jusqu'à l'onglet "trigger" et sélectionné l'option "multiple"
PS : Le "trigger_multiple" sera activé lorsque le joueur entrera en contact avec lui.
vous obtenez ceci
:
Tant que votre brush est sélectionné,
profitez en pour faire apparaître la "fenêtre
entité" en appuyant sur la touche "N" et
donner les valeur suivantes :
key / Value ==> setthread/ objective1
(ceci aura pour effet de déclencher
l'exécution de l'objectif1 dans le script).(PS on peut
l'envoyer directement vers "levelend", mais
ici faisons comme si
c'était un protocole normal)
La dernière étape, de la partie mapping va consister à disposer un "script_object" afin que votre compas pointe vers l'objectif.
Allons-y !
Dans la vue 2D clic droit et dans le menu puis sélectionnez "script/origin"
vous verrez alors apparaître
une petite boite rouge (sur la vue 3D) que
vous allez placée devant votre brush "trigger" comme
ceci :
Pendant que votre script est sélectionné,
appelez la "fenêtre entité" (touche "N")
et donnez les valeurs suivantes :
key : $targetname/ value
: obj1
(ceci fera pointer le radar vers le passage.)
Bon voici, la partie mapping terminée, nous allons passer au script.
2/ Seconde étape : le script.
Tout d'abord, vous allez ouvrir "notepad" ou"wordpad".
Vous allez enregistrer votre
script en lui donnant impérativement le nom de la map "test_script2" et en lui donnant l'extension ".scr".
Vous taperez donc : "test_script2.scr"
allez on commence :
//mon second script
//Architecture : Tropheus
//Script : Tropheus
exec global/ai.scr
exec global/loadout.scr maps/test_script2.scr
main:
level waittill prespawn
exec global/ambient.scr test_script2
$player stufftext "tmstart sound/music/mus_15a_mystery.mp3"
level waittill spawn
$player item weapons/colt45.tik
$player ammo pistol 1000
level.script = level.test_script2.scr
thread objectives
end
///////////////////////////////
objectives:
waitthread global/objectives.scr::add_objectives 1 2 "Passer
entre les murs." $obj1.origin
set_objective_pos $obj1
end
/////////////////////////////
objective1:
goto levelend
end
/////////////////////////////
levelend:
waitthread global/objectives.scr::add_objectives 1 2 "Passer
entre les murs." $obj1.origin
waitthread global/objectives.scr::current_objectives 0
iprintln "Mission terminée."
exec global/missioncomplete.scr test_script2
end
J'explique :
//mon second script//nom
de la map par exemple
//Architecture : Tropheus//nom du mappeur
//Script : Tropheus//nom
du scripteur
exec global/ai.scr//active les a.i du
jeu
exec global/loadout.scr maps/test_script2.scr//active
votre script
main:
level waittill prespawn//prépare la map pour accueillir
le joueur.
exec global/ambient.scr test_script2//active
les sons de votre map (fichiers .mus)
$player stufftext "tmstart sound/music/mus_15a_mystery.mp3"//un peu de musique
level waittill spawn
$player item weapons/colt45.tik//vous
vous donnez une arme
$player ammo pistol 1000//quelques munitions
level.script = level.test_script2.scr
thread objectives//ceci vers le thread appelé "objectives"
et qui ici contient les
objectifs qui sont définis.
end
///////////////////////////////
objectives:/Appelé par la commande "thread objectives" que l'on a au-dessus.
waitthread global/objectives.scr::add_objectives 1 2 "Passer
entre les murs." $obj1.origin//ce
qui s'affiche dans la map.(touche tab)
set_objective_pos $obj1//position
visée par le compas
end
/////////////////////////////
objective1://activé par le
trigger_multiple qui est sur la map lorsque le joueur entre en
contact avec lui.
goto levelend//ordre
donné au cours de l'exécution de l'objectif1
end
/////////////////////////////
levelend:
waitthread global/objectives.scr::add_objectives 1 2 "Passer
entre les murs." $obj1.origin
waitthread global/objectives.scr::current_objectives 0//efface les objectifs.
iprintln "Mission terminée."//s'affiche
sur la map à la fin de la mission.
exec global/missioncomplete.scr
test_script2//définit quelle
map devra être chargée ensuite. (ici on est en boucle)
end
Il ne vous reste plus qu'à compiler et en route pour le jeu.
PS : Entre "objective1:" et "goto levelend" vous pouvez donner tous les ordres que vous voulez comme par exemple déclencher, une explosion, l'apparition d'ennemis, activer une musique etc...
Variantes : utilisation d'un autre trigger le "trigger_use"
Imaginez que votre joueur doive ouvrir une porte pour finir la partie.
Rien de plus facile car le script ne
change pas. juste des changements dans la partie mapping.
Vous allez placer devant votre porte un brush que
vous allez transformer en "trigger_use".
Puis
vous allez lui donner exactement les mêmes valeurs qu'au-dessus.
La seule différence réside dans le fait
que pour être activé le joueur doit appuyer sur la
touche "action".
Dans le jeu, la porte
s'ouvrira et la partie se terminera.
Voila la fin de ce tutorial.
Tropheus.
PS : ce tutorial c'est largement inspiré de celui de AL "Making your first SP objective Map" du site ".map for medal of honor".