SECOND SCRIPT POUR MAP SOLO : "map à objectif"

Comment utiliser les "trigger" pour définir un objectif.

Ici, en passant à un endroit précis on déclenchera la fin du niveau.

Retour sommaire

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.

Télécharger les fichiers.

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".

Retour sommaire