Voler des documents.

(Voler les documents pointage du compas)

retour sommaire

Texte original par Kainfury le lien
Traduction et adaptation : Tropheus

Un fichier très interressant à avoir, c'est le fichier cod.def créé par Scorpiomidget il permet de poser des models en un seul clic. Pour le télécharger c'est ici on vous demandera juste de vous enregistrer.

1/ MAPPING

Créer un espace séparé en deux par un mur (pour voir l'effet du compas). Placez-y votre info_player_start.
De l'autre côté du mur, vous allez installer les documents.

a) Le support

Tout d'abord une caisse.
Un brush de 40 x 40 x 40  avec la texture appropirée. (J'ai mis crates/wood@champagne_top)
Sur cette caisse vous allez mettre vos documents à voler.


b) Les documents (objectifs)

En vue 2D clic_droit/xmodel-cuments1/objective tant que ous l'avez selectionné (appuyez sur la touche "N") et vous allez changer les key /value suivantes :
classname / xmodel-cuments1_objective en classname / script_model (sinon il serait impossible de le manipuler avec le script)
Une autre chose importante si on veut le manipuler à partir du script, c'est de lui donner un targetname. (celui que vous voulez!!!)

targetname / docu_a_voler

on récapitule

classname / script_model
xmodel / documents1_objective
targetname  /docu_a_voler

c) Le trigger (déclencheur)

Vous allez donc créer un brush qui englobera les documents. Faites-le d'une taille assez importante pour que le joueur puisse le toucher mais pas trop grand non plus car si au cours du jeu le jouer peut prendre les documents alors qu'il est à 10 km c'est peu crédible.

Ensuite en vue 2D clic_droit/trigger/use.

Puis donnez lui la texture "trigger" (common/trigger)

Tant que votre trigger est sélectionné appuyez sur la touche "N" et donnez les key / values suivantes :

hintstring / Appuyez sur [action] pour voler les documents //message qui apparaitra lorsque le joueur touchera le trigger.
delay / 999 //delai avant une seconde possibilité d'activation du trigger. (en seconde)
targetname / take // targetname du trigger ce qui permet de le manipuler par le script.

d) le script origin. (compas)

Ce script_origin aura pour but de faire pointer le compas dans sa direction.

Pour cela, en vue 2D clic_droit/script/origin.
puis appuyez sur la touche "N" et donnez les valeurs suiavantes :

tragetname / docs (ou tout autre chose)

Placer ce scritp_origin au-dessus des documents, mais en faisant attention de ne pas le faire toucher le trigger.

Voici ce que ça donne une fois terminé.

Nous en avons fini de la partie mapping.

2/ SCRIPTING

Voici le script nécessaire à la map.

//tuto traduit par Tropheus
//auteur /autor kainfury


main()
{
maps\_load::main();


level.player takeallweapons();
level.player giveweapon("thompson");
level.player giveweapon("luger");
level.player switchToWeapon("luger");

iprintlnbold ("Voler les documents.");

objective_add(1,"active","voler les documents",getent("docs","targetname").origin);

objective_current(1);

documents=getent("take","targetname");

documents waittill("trigger");

papers=getent("docu_a_voler","targetname");

documents delete();

papers delete();

objective_state(1,"done");

}

Bon, j'explique ce que j'ai compris.

//tuto traduit par Tropheus
//auteur /autor kainfury


main()
{
maps\_load::main();


level.player takeallweapons();
level.player giveweapon("thompson");
level.player giveweapon("luger");
level.player switchToWeapon("luger");

iprintlnbold ("Voler les documents."); //permet d'avoir un message qui s'affiche au centre de l'écran.

objective_add(1,"active","voler les documents",getent("docs","targetname").origin); //activation du premier objectif.

et voici le compas qui pointe vers l'objectif .

objective_current(1); // nombre d'objectifs en cours.

documents=getent("take","targetname"); // ici on donne le nom de script "documents" au trigger qui portait le nom de take. (plus facile à travailler comme ça je pense.)

documents waittill("trigger"); // on demande ici au trigger d'attendre l'activation pour déclencher les script.

papers=getent("docu_a_voler","targetname"); // ici on donne le nom de script "papers" au documents à voler qui portaient le nom de "docu_a_voler".

documents delete(); // on enlève le trigger

papers delete(); // on enlève les papiers.

objective_state(1,"done"); // état de l'objectif.

}

 

Voila il ne vous reste plus qu'à tester votre map et à apprecier votre travail.

télécharger la map.

Tropheus

Quelques précisions sur le script.

Pour activer, un objectif voici le format qu'il faut utiliser.

objective_add(numéro de l'objectif, "active", "le texte à afficher", l'origine)

Dans cet exemple on ajoute l'objectif 1, qui sera actif lorsque vous appuirez sur la touche "TAB", avec le texte qui suivra.
A la fin, on indique au  compas la direction à prendre. Pour cela, on demande au système de rechercher l'entité ayant pour targetname "docs" en utilisant la commande geten (qui veut dire "get entity") et pour spécifier la position on ajoute l'extention .origin après la commande.

Enfin n'oubliez pas de mettre vos trhead entre accolades. { et } pour bien délimiter le début et la fin du thread.

N'oubliez pas non plus de terminer chaque ligne par un point-virgule. ; sinon le jeu lira la ligne suivante comme si elle avait été sa suite. (ce qui fera planter le jeu).