?
| 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

Créer un Mercenaire (Henchman)

Conversation et scripts de base

Vous devez être quelque peu familier avec l'Editeur de Dialogue du Toolset Aurora avant de suivre ce tutorial. Si vous ne l'êtes pas encore, je suggère fortement Iskander's HowTo Article qui présente les concepts qui vous aideront dans ce tutorial - particulièrement le tutorial appelé "Starting The Conversation".

Au minimum vous voulez qu'un PJ parle avec votre mercenaire PNJ et que le PNJ rejoigne le joueur, ou le quitte si le PJ le licencie. Le paiement pour ces services est aussi une bonne idée. Vous voulez aussi (en général) que le mercenaire reste loyal en l'empêchant d'être loué par un PJ différent avant la fin!*

Cela signifie que votre mercenaire doit avoir une structure de dialogue qui ressemble à quelque chose de ce genre dans l'éditeur de Conversation :

Racine
'- • [OWNER] - Oui, <master/mistress> ?
'- • [OWNER] - Désolé, j'ai déjà un employeur.
'- • [OWNER] - Bonjour. Vous pouvez me recruter pour 100po.
   '- • Je n'ai pas les moyens de vous engager.
   '- • Je vous embauche.
      '- • [OWNER] - Heureux de l'entendre.

La première ligne du mercenaire apparaît seulement si le PJ l'a embauché et donnera une branche de conversation qui permet au PJ d'avoir quelques options avec le mercenaire (comme le virer). Pour ce faire, choisissez l'onglet [Text Appears When] et choisissez 'nw_ch_tactics2' comme script pour cette ligne.

La deuxième ligne de du mercenaire apparaît seulement si le mercenaire est embauché, mais non nécessairement par le PJ. Cela permet au joueur de savoir que e le mercenaire est embauché par quelqu'un d'autre et doit l'empêcher d'embaucher le mercenaire loin du premier maître. Pour le faire, choisissez l'onglet [Text Appears When] et choisissez le script 'nw_ch_tactics' pour cette ligne.

Si la première et deuxième ligne n'apparaissent pas, cela signifie que le mercenaire est libre, donc la troisième ligne apparaît, permettant au PJ de l'embaucher. Les options du PJ doivent inclure le choix de l'embaucher (s'il a assez d'argent) ou non. Si nous voulons que l'acolyte coûte 100po, nous pouvons créer ce script dans l'onglet [Text Appears When] de "je vous embauche" la ligne pour vérifier si le PC a assez d'or :

// * script: can_pay100
// * est ce que le PJ a 100 po?
// A utiliser dans l'onglet [Text Appears When] de la ligne joueur pour l'embauche.

#include "NW_I0_PLOT"

int StartingConditional()
{
return (HasGold( 100,GetPCSpeaker()));
}

Maintenant, pour réellement payer le mercenaire, il faut mettre ce script dans l'onglet [Actions Taken] de la même ligne de dialogue :


// * script: pay100
// * Prend 100 po au Joueur.
// A utiliser sous l'onglet [Actions Taken] dasn la ligne d'embauche du dialogue.

void main()
{
TakeGoldFromCreature(100, GetPCSpeaker(), TRUE);
}

Maintenant, pour que le mercenaire rejoigne le PJ, ajoutez ce script à l'onglet [Actions Taken] de la ligne où le henchman accepte :


// * script: henchman_joins
// * Le mercenaire PnJ rejoins le joueur, remplaçant un autre si nécessaire.
// A mettre dans l'onglet [Actions Taken] de la ligne de dialogue d'acceptation du mercenaire.

#include "nw_i0_henchman"

void main()
{
if (GetIsObjectValid( GetHenchman(GetPCSpeaker())) == TRUE)
{ SetFormerMaster(GetPCSpeaker(), GetHenchman(GetPCSpeaker()));
object oHench = GetHenchman(GetPCSpeaker());
RemoveHenchman(GetPCSpeaker(), GetHenchman(GetPCSpeaker()));
AssignCommand(oHench, ClearAllActions());
}

SetWorkingForPlayer( GetPCSpeaker());
SetBeenHired();

ExecuteScript("NW_CH_JOIN", OBJECT_SELF);
}

Finalement, pour permettre au joueur de virer le mercenaire, nous allons ajouter l'option dans la branche de dialogue où le mercenaire est déjà employé.

Racine
'- • [OWNER] - Oui, <master/mistress> ?
   '- • Bon travail. [End Dialog]
   '- • Vous êtes renvoyé.
      '- • [OWNER] - Je serai ici si vous avez encore besoin de mes services.

Ajoutons ce script sous [Actions Taken] à la ligne où le mercenaire s'en va :


// * script: henchman_leaves
// * NPC Henchman leaves PC.
// * a mettre sous [Actions Taken] du dialogue de départ du mercenaire.

#include "nw_i0_henchman"

void main()
{
SetFormerMaster(GetPCSpeaker(), OBJECT_SELF);
RemoveHenchman(GetPCSpeaker());
ClearAllActions();
}

Nous avons maintenant tout ce don nous avons besoin pour la conversation du mercenaire. Pour le créer, tout que nous avons à faire est d'utiliser l'assistant créatures (ou copier une autre créature existante) et rajouter quelques détails.

Onglet de Base - Dialogue : Utiliser le dialogue que l'on viens de créer, et ajouter peut être quelques caractéristiques supplémentaires.

Onglet Avancé - Série de sons : assurez-vous d'en mettre un qui corresponde à vos lignes de dialogue. Que ce soit une série tirée des mercenaires officiels de la campagne ou autre.

Inventaire - Quelques bonnes vieilles potions de vie sont essentielles. Si vous voulez que votre mercenaire ait une arme qui ne soit pas limitée par son niveau (telle qu'une arme de jet avec des munitions non limitées), créez cette arme en tant qu'arme de créature (arme de mêlée), mais équipez-la dans la case d'arme normale. Dans la campagne, il y a aussi des objets invisibles "propriétés de mercenaire". Ils leur donnent l'immunité au charme personne, à domination, et aux charmes de masse. Personnellement je préfère que mes mercenaire ne soient pas des superman, donc je n'ai pas ajouté ces objets spéciaux.

Onglet script - attribuez-les comme ceci :

OnBlocked: nw_ch_ace
OnCombatRoundEnd: nw_ch_ac3
OnConversation: nw_ch_ac4
OnDamaged: nw_ch_ac6
OnDeath: nw_ch_ac7
OnDisturbed: nw_ch_ac8
OnHeartbeat: nw_ch_ac1
OnPerception: nw_ch_ac2
OnPhysicalAttacked: nw_ch_ac5
OnRested: nw_ch_aca *
OnSpawn: nw_ch_ac9
OnSpellCastAt: nw_ch_acb
OnUserDefined: nw_ch_acd

* Note : le script OnRested (nw_ch_aca) ne devrait pas exister, c'est donc une bonne idée de le laisser vide, particulièrement si vous prévoyez d'exporter vos mercenaires.

Il y a une astuce qui permet de remplacer facilement les scripts par defaut - surlignez le texte 'nw_c2_default' de chaque champ (en laissant la dernière lettre ou nombre) et remplacer par 'nw_ch_ac'.

Maintenant nous avons un mercenaire de base. Il rejoint votre cause, avec ses compétences, écoute des commandes, prend congé quand on lui dit et il peut être réembauché. Il n'augmente pas de niveau et ne respawn pas quand il meurt, il reste mort (mais peut être ressuscité). Je préfère en réalité que des mercenaires suivent cette voie, mais si vous êtes un bon scripteur, vous pourriez examiner le script nw_i0_henchman et le script du OnDeath. Voici le code des scripts spécifiques à la campagne officielle qui pourrait être adapté pour vos propres modules. Notez aussi que pour obtenir un mercenaire qui augmente de niveau, vous devez faire une copie de lui pour chaque niveau.

Voici une version de Dialogue de mercenaire à télécharger que vous pouvez utiliser pour les votres (non traduit, donc en anlais). C'est un fichier .erf que vous pouvez importer pour votre module, qui contient le dialogue et les scripts vu dans ce tutorial, ainsi que des options pour des tactiques, non abordées ici.


Article écrit par Anthony Affrunti © 2002/07/22
Traduit en français par Jawrill de la guilde des Highlands
Consultez ce guide en Version originale.
Haut de page

 
 
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 ::