Conversation et scripts basiques pour un mercenaire. .


Vous devez être quelque peut familier avec le Conversation Editor du Toolset avant de suivre ce tutorial. Si vous ne l'êtes pas, je vous conseille fortement l'article d'Iskander HowTo qui introduit des concepts qui vous seront utile dans ce tutorial particulièrement dans la section " Starting the conversation "(le lien : Iskander's HowTo Article)

Au mimimum, vous voudrez un PC qui parle avec un NPC mercenaire et que ce NPC se joigne au PC, ou le quitte si le PC le veut. Un paiement est aussi une bonne idée. Vous voudrez aussi (souvent) que le mercenaire soit loyal, et prévienne le PC avant d'être loué par un autre PC et de quitter le premier PC !

Ce qui veut dire que le mercenaire doit avoir une structure de dialoque qui ressemble à ça dans votre Conversation Editor:


La première ligne apparaît uniquement si le PC l'emploi, et offre une branche de conversation qui permet au PC de changer les options avec le mercenaire(comme le renvoyer). Pour ceci, sélectionnez l'onglet Text Appears When puis sélectionnez " nw_ch_tactic2 " comme script pour cette ligne.

La seconde ligne du mercenaire apparaît uniquement si le mercenaire est employé, mais pas nécessairement par le PC. Cela permet au locuteur de savoir si le mercenaire est déjà employé par quelqu'un d'autre, et le préviendra de tout renvoie par le premier maitre. Pour celui ci, sélectionnez " nw_ch_tactics " dans l'onglet Text Appears When.

Si la première ou seconde ligne n'apparaît pas, cela veut dire que le mercenaire est libre, donc la troisième ligne apparaît, permettant au PC de le louer. Les options du PC doivent inclure choisir ou non de l'employer. Si vous voulez que le mercenaire coûte 100 po, vous pouvez créer ce script dans le Text Appears When du " Je veux vous employer " pour vérifier si le PC a assez d'argent:


// * script: can_pay100
// * Est ce que le PC a 100 pièces d'or?
// Utilisez dans [Text Appears When] de la ligne adéquatre du dialogue.
#include "NW_I0_PLOT"
int StartingConditional()
{
return (HasGold(100,GetPCSpeaker()));
}



Puis pour payer le mercenaire, voici le script qui va dans Action Taken de la même ligne du dialogue:


// * script: pay100
// *enlève 100 po du PC.
// A utiliser dans [Actions Taken] de la ligne adéquate.
void main()
{
TakeGoldFromCreature(100, GetPCSpeaker(), TRUE);
}

Maintenant, pour que le mercenaire se joigne au PC, ajoutez ce script dans [Actions Taken] de la ligne ou le mercenaire accepte:


// * script: henchman_joins
// * NPC mercenaire rejoint le PC, remplaçant un autre mercenaire si nécessaire.
// Utilisez dans [Actions Taken] à la ligne ou le mercenaire rejoint le PC.
#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);
}



Finallement, pour permettre au PC de renvoyer le mercenaire, nous allons ajouter l'option dans la ligne de la branche de dialogue où le mercenaire est renvoyé.


Nous ajoutons ce script dans le Action Taken de la lligne ou le mercenaire dit au revoir:

// * script: henchman_leaves
// * NPC mercenaire quitte le PC.
// * A utiliser dans [Actions Taken] de la ligne ou le mercenaire part

#include "nw_i0_henchman"
void main()
{
SetFormerMaster(GetPCSpeaker(), OBJECT_SELF);
RemoveHenchman(GetPCSpeaker());
ClearAllActions();
}

Nous savons tout ce que nous avons besoin de savoir pour la conversation avec le mercenaire lui même. Nous allons maintenant créer le mercenaire lui même dans le Creature Wizard (ou copier une créature déjà crée) et ajouter quelques étapes supplémentaires.

Onglet Basic - Conversation: Utilisez le dialogue que nous venons de créer en l'étoffant un peu si nécessaire.

OngletAdvanced - Sound Set: Soyez sur de lui assigner un set de sons qu'il puisse dire en entier. Ca peut être n'importe lequel des mercenaires de la campagne officielle, ou un set de sons commencant par " Male... " ou " Female... "

Inventaire - Quelques bonnes potions de soin sont indispensables. Si vous voulez qu'il ait une arme normalement non accessible pour son niveau (comme un arc avec des flèches illimitées comme ça ils n'en ont pas besoin), créez l'arme comme un objet de créature (creature item), mais quippez le dans l'emplacement normal des armes. Dans la campagne officielle, il y a aussi des objets avec des propriétés cachées qui immunusent les mercenaires contre Charme personne, domination et charme de masse. Personnellement, je préfère que mes mercenaires ne soient pas des sur hommes, c'est pourquoi je ne leur donne pas des objets spéciaux.

Onglet Scripts - mettez les scripts indiquez:
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) peut être non existant, donc c'est une bonne idée de laisser l'emplacement vide, spéciallement si vous pensez exporter votre mercenaire.

Il y a une astuce pour remplacer tous les scripts par défaut - surlignez le texte " nw_c2_default " dans chaque emplacement (enlevez la dernière lettre ou le dernier chiffre) et copiez " nw_ch_ac " à la place.

Maintenant, nous avons un mercenaire basic qui suit le PC. Il se joint à votre cause, contribut avec ces compétences, écoute les ordres, vous quitte quand vous lui demandé et peut être réemployé. Il ne monte pas de niveau, et quand il meurt il ne réapparait pass, il reste mort (mais peut être réssucité. Je préfère que les mercenaires soient comme ça, mais si vous êtes un bon scripteur, vous pouvez regarder dans le script nw_i0_henchman et le script OnDeath du mercenaire. Vous pouvez ainsi utiliser des options dans votre propre module. Ainsi, notez que pour que votre mercenaire passe de niveau, vous devez en faire une copie.

Vous pouvez télécharger un fichier de conversation avec le mercenaire en anglais (henchman conversation <--voici le lien). C'est un fichier .erf que vous pouvez importer dans votre propre module, qui contient les conversations aussi bien que les sscripts utilisés dans ce tutorial, et qui ajoute d'autres options tactiques non décrites dans ce tutorial.

__________________
Théranthil, Mage Elfe prêtre de Mystra Membre des GdE
Parti Elmotiste pour un parler jowilien: Ministre supérieur de la corruption

"Les langues vont toujours bon train. Les pieds ont du mal à suivre."
(les bourses aussi NdT )
Mespert de la porte de Baldur