?
| Nos forums | NwN2.fr | Lyncya | Notre channel IRC |
La Bibliothéque de Neverwinter Nights
La Bibliothéque de Neverwinter Nights
 
 
 
 
 
Bienvenue, connectez vous ou créez votre compte. Changer d'interface
 
Se connecter:
Login:

Password:


 
Neverwinter Nights 2
  Compendium NWN/NWN2
Classe, Warlock
Classes de Base
Classes de Prestige
Forum Joueur NWN2
Forum Concepteur NWN2
Bestiaire (Créatures)
Races
Tests
 - Collector Chaotique Mauvais (bbnwn, 4 nov 2006)
 - Mask of the Betrayer
 - Storm of Zehir
 - Mysteries of Westgate
Mondes
 - Les Artisans du Mitan
 - Les Légendes de Luiren
 - LanceDragon
 - La Bataille pour Cormanthor
 - Man O'War
 - Sendarie Nouvel Âge
Preview
 - 29 Mars 2006 (BBNWN)
 - 2 mai 2006 (Gamespot)
 - 17 Mai 2006 (WarCry)
 - 19 Mai 2006 (NWVault)
 - Designer Diary #1 (Gamespot, 1er Juin 2006)
Interview
 - Dorian Richard (20/02/2006)
 - Ferret Baudoin (22/02/2006)
 - Feargus Urquhart (2 mai 2006)
 - La Lettre Ouverte de Papermonk
 - Chris Avellone (Total Video Games)
Logs IRC
 - Warcry (27/01/2006)
 - NWVault / NWC (3 Juin 2006)
 - NWN2News.net (30 Juin 2006)
Faciliter la diffusion et l'installation de vos créations

 
Communauté
  Forums
Channel #nwnights-fr
Guide IRC
Liens
CEP

 
Fichier
  Tileset
Module
Hakpak
Objets
Portraits
Créatures
Scripts
Tutoriaux
Autres
Wallpapers

 
Editeur
  Tutorial Editeur
Cinématiques
Musiques
Textures
Tutoriaux NWScripts
Scripts

 
Le jeu
  Solution
Sorts
Classes
Dons (feat)
Aptitudes (skill)
Bestiaire
Règles 3e Edition
Jouer en multiplayer

 
Hordes of the Underdark
  Informations Générales
Solution [forum]

 
Shadows of Undrentide
  Preview
Informations générales
Classes de Prestige
'Lisez Moi.txt' de la Démo
FAQ
Nouveaux tilesets
Solution [forum]

 
Divers
  Traductions Logs Irc
Guides divers

 
Présentation
  Généralités
Configuration minimale
Serveur Dédié
Traduction FAQ
Historique (nwn et bioware)
Contrats de Bioware (vf)

 
Site
  Copyrights
Webmasters

 
     
 
Dîtes non aux inutiles protections contre la copie dans les jeux (SecuROM, StarForce, etc) !!
HADOPI - Le Net en France : black-out

14. Points de passage (waypoint) et déclencheurs (triggers)

Maintenant que nous avons vu comment fonctionne le système d'effets sonores, nous pouvons voir les « triggers » et les « waypoints ».

Tout d'abord, voyons les différences entre les deux :

  • Le trigger vous permet de changer de zone, notamment gràce au trigger New Area Transition.
  • Le trigger vous permet de placer des pièges.
  • Le trigger est déclenché lorsque que le personnage l'atteint : cela peut faire tout et n'importe quoi. Comme par exemple un script qui quand on va sur une partie de la zone, va faire appel aux gardes pour nous dire qu'on a rien à faire ici.
  • Le waypoint vous permet d'ajouter des commentaires sur la carte. C'est peu, mais c'est déjà beaucoup.
  • Le waypoint vous permet de faire qu'un garde retourne à son point de garde s'il y a eu des ennemis, et que bien sur il est toujours en vie.
  • Le waypoint vous permet de faire des patrouilles.
  • Dans les deux cas, customiser ou les triggers, ou les waypoints est quasiment inutile.

Bien sur, nous avons un peu nuancé nos propos malgré cela les triggers et les waypoints sont peut-être les éléments les plus importants du jeu. Tout d'abord, voyons les Triggers : nous étudierons ceux-ci avec les scripts après, lorsque nous aurons vu les waypoints.

Les triggers se tracent comme les encounters : nous allons créer un Trigger Area Transition là où il y a le portail. Ce trigger nous permettra de sortir par la porte du château d'à côté. Notez bien qu'entre les différents types de triggers seul un truc change : dans le cas d'un trigger Area Transition vous aurez un onglet « Area transition » et dans le cas d'un trigger « trap » un onglet « trap ».

Dans l'onglet Basic, vous aurez le nom du trigger (changé par « Vers la porte du château... »), le tag du trigger (changé par « oVersChateau1 ») et le type du trigger.

Dans l'onglet Area Transition vous retrouverez l'éditeur de Transition de Zone, ainsi que la possibilité de changer l'image de chargement de zone.

Dans l'onglet Trap : vous pourrez choisir le type de piège par défaut (i). Note : avec un script, il est sûrement possible de simuler un piège. Detection DC indique le jet de dés que doit atteindre le joueur pour détecter le piège (sauf si la case « Detectable » est décochée). Disarm DC indique le jet de dés que doit atteindre le joueur pour désarmer le piège (sauf si la case « Disarmable » est décochée). One Shot indique que le piège est utilisable qu'une seule fois si la case est cochée. Enfin les événements de script vous permettent de faire quelques surprises aux joueurs qui réussiraient à détecter le piège ou encore les gros bills qui foncent dedans...

L'onglet Scripts contient des événements de scripts que nous verrons plus tard dans un autre tutorial.

L'onglet Advanced vous permet de voir si une clef est nécessaire pour passer la zone, de voir si celle-ci doit être supprimée après usage. Notez que vous pouvez choisir une faction que si le trigger n'est pas de type « Area transition » même si l'utilité de choisir une faction reste à démontrer (ceci peut peut-être bloquer l'accès au trigger ?)... Pensez à changer Highlight Height s'il s'agit d'un trigger de type Area transition (mettez 4.0 par exemple).

C'est à peu près tout pour les Triggers. Nous vous montrerons un exemple d'interaction entre trigger et waypoints; waypoints que nous allons étudier à l'instant.

Les waypoints se déclinent en trois types : Map note, Post et Waypoint. Nous étudierons seulement les waypoints Map note. Sachant qu'hormis le tag, il n'y a aucunes différences entre les différents waypoints.

Nous allons placer plusieurs waypoints de type Map note, pour chaque « coins intéressants » de notre carte. Nous avons mis d'autres waypoints, qui vont constituer un chemin pour un membre de notre faction : il le suivra et fera des allers retours, comme s'il patrouillait.

Les propriétés d'un waypoint sont divisées en quatre onglets :

  • l'onglet Basic : celui-ci contient le nom (name) du waypoint, qui n'a aucune importance, le Tag (par exemple : oWpPortail) qui nous permet d'accéder à la zone, et l'apparence du waypoint qui n'a pas l'air d'avoir d'importance hormis pour différencier les waypoints dans l'éditeur (et encore ?)
  • l'onglet Advanced : celui-ci vous permet de choisir si le waypoint contient une indication pour la carte, et si celle-ci est visible (dans le cas inverse, un script devrait rendre cette indication visible).
  • l'onglet Description : il n'a pas d'intérêt puisque que le waypoint est censé être invisible, et donc inaccessible. Vous pouvez cependant toujours essayer en mettant une description.
  • l'onglet Comments qui cette fois-ci contient quelque chose qui nous intéresse : il vous explique comment faire d'un waypoint de type Post. Dans ce cas le ce waypoint servira de poste de garde à un soldat, et dés qu'il n'y aura plus personne à attaquer alors il retournera à son poste. Cet onglet vous explique aussi comment faire de waypoint de type waypoint des zones de patrouilles successives.

Maintenant que nous avons vu ces deux points-là, nous allons enfin pouvoir relier notre bateau enclavé : pour cela nous allons placer un trigger nommé oVersQuais qui nous emmènera vers le waypoint nommé oWpVersVille. Bien sur, nous placerons aussi un trigger nommé oVersVille là où est placé le waypoint oWpVersVille, et un waypoint oWpVersQuais là où est notre trigger oVersQuais. Le résultat est simple : les deux zones sont reliées (voir le module du tutorial). Vous comprenez maintenant comment ces deux éléments du jeu fonctionnent : pour la suite de notre tutorial, nous verrons un script permettant de faire une patrouille : il fonctionne uniquement avec des waypoints et démarre à la création d'une créature (onSpawn) appartenant à une faction Faction002 qui est neutre avec tout le monde (sinon, cela risque de poser problème vu que nos amis de la Faction001 ont une légère tendance à attaquer un peu tout ce qui bouge...).

Créez la Faction002 en mettant toutes les valeurs des barres à 50 sauf pour ceux de la Faction002. Donnez comme Tag « oPatrol » à la créature. Puis créez une créature (nous en avons pris une toute faite), allez dans ses scripts, enlevez tous les scripts par défaut (ce n'est pas bien certes), et éditez celui pour l'événement OnSpawn : sauvegardez-le sous le nom de « tutfr_patrol ». (Note : nous ne l'expliquerons pas) Pour notre script vous devez avoir 14 waypoints nommés comme cela : « oWpPatrol1 » à « oWpPatrol14 ».

object oDoor = GetObjectByTag( "WallDoor" );
object oCurrent =   GetObjectByTag( "oPatrol" );

/*
function GoToWaypoint( iNumber = 1)
  - iNumber est le waypoint en question
*/
void GoToWaypoint( int iNumber = 1 )
{

  string sNumber = IntToString(iNumber);
  object oWp = GetObjectByTag( "oWpPatrol" + sNumber );
  ActionForceMoveToObject( oWp, TRUE );

  // Patiente deux secondes
  ActionWait(1.0);

  /* Au point de patrouille 4 se trouve la 
     porte WallDoor qu'on ouvre */
  if ( iNumber == 4 )
    ActionOpenDoor( oDoor );

  /* Au point de patrouille 5 se trouve la 
     porte WallDoor qu'on ferme */
  if ( iNumber == 5 )
    ActionCloseDoor( oDoor );
}

/* 
void Patrol( int iWayPoints,
             int iTimes = 1,
             int iStart = 1 )

Ceci va faire une patrouille:
 - iWayPoints : nombre de waypoints a atteindre
 - iTimes : nombre de fois qu'il faut patrouiller
    (100 et plus = considere comme infini)
 - iStart : waypoints de depart
*/
void Patrol( int iWayPoints, int iTimes = 1, int iStart = 1 )
{

  // On decremente iTimes
  if ( iTimes > 0 )
    iTimes--;

  int i = iStart;
  while ( i <= iWayPoints )
  {
    GoToWaypoint( i );
    i++;
  }

  ActionWait(5.0);

  // Si l'objet peut encore faire un tour...
  if ( iTimes != 0 )
    Patrol( iWayPoints, iTimes, iStart );
  else
    GoToWaypoint( iStart );
}

void main()
{
  Patrol( 14, 10 );
  // 14 waypoints, 10 tours
}
 

Notre script fonctionne parfaitement. Cependant, si vous vous aventurez plus loin et que vous tentez de faire quelque chose qui se rapproche de l'infini : par exemple un Golem qui est forcé de faire le tour de la tour de son mage jusqu'à destruction de lui-même, hé bien vous n'y pourrez rien : dans notre test, vous pouvez faire au moins jusqu'à 10 tours ! Si vous essayez de faire faire 15 tours par exemple, cela ne fonctionnera pas alors que le script est bon dans sa structure. (Car ce script est le genre de script lourd capable de faire planter le jeu même si ici il fonctionne parfaitement, et n'à pas l'air d'entraîner d'erreurs)

Voilà. Ce script vous montre l'utilité première des waypoints : faire des patrouilles ! Non, en fait ceux-ci vous permette de « cinématiser » votre module avec les nwscripts. Par exemple, on peut tout à fait concevoir un module où un voleur devrait éviter des pièges (des triggers) et que s'il les active ou désactive un gobelin vient l'attaquer en suivant divers waypoints avant d'arriver au piège désactivé.









Navigation rapide:
 
 
Revenir à la page d'accueil du site Ajouter la Bibliothéque de Neverwinter dans vos favoris Afficher une version imprimable de la page
  NeverList - Liste ...
Lyncya 3 - La Gue ...
Sarmates!
Le dernier des fi ...
Bonne année
Joyeux Noël 2010
The Witcher 2 en ...

Archives
Rechercher
 
 
Le Site



NwN 2 - Support des Modules Solos


Groupes
Archives
 

:: design by ghaxir :: coding by baldurien :: la bibliothèque de neverwinter :: tous droits réservés ::