Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > A propos des dialogues
A propos des dialogues
Par koalafou le 27/5/2002 à 16:53:18 (#1537197)
Voila, j'ai un chtit problème concernant les dialogues à
propos de l'option "when text appears", je pige pas du tout les script proposés.
Par exemple, un truc tout bete je voudrais que mon npc parle à la personne des qu'il est dans son champ de vision... Comment dois je faire? :aide:
Merci
Par Myvain le 27/5/2002 à 18:16:01 (#1537694)
1)Placer le NPC
2)Click droit sur le NPC -> Properties -> Conversation ->Edit. Creer la conversation à l'aide du Conversation editor qui vient de s'ouvrir et sauvegarder le tout sous le nom que tu veux (ex: totodiscute)
3)Créer un trigger générique (Paint Triggers ) et dessiner une zone (de la forme et de la taille que tu veux) autour du NPC. Ce trigger servira à lancer la conversation dès que le joueur entrera dans la zone.
4)Associer un script à ce trigger (click droit sur le triggers -> properties)
*Dans l'onglet Basic, tu peux donner un nom à ce trigger pour le retrouver plus facilement. Pour celà il suffit de mettre le nom souhaité dans la case Tag
*Dans l'onglet Script -> case OnEnter -> cliquer sur "Edit". Le script editor va se lancer afin d'en créer un qui détermine se qui va se passer lorsque quelqu'un franchira le trigger.
Il doit y avoir une fonction BeginConversation qui permet de lancer la conversation voulue:void main()
{
BeginConversation ("totodiscute");
}
Et voilà :cool:
Désolé, toujours pas de photos d'ecran pour rendre le pas à pas plus clair :/
Par Edrahil le 27/5/2002 à 22:42:29 (#1539458)
L'évènement "OnEnter" (par exemple) sera-t-il exécuté si un PNJ où un monstre passe dans le trigger ? Ou est ce uniquement pour PJ ? Perso je pense logiquement pour la 1ère solution mais je ne suis pas sûr.
Ed.
Par Caepolla le 27/5/2002 à 23:33:59 (#1539853)
Une autre serait d'utiliser je sais plus quelle case de scripts associée au PNJ (à vérifier, je dis ça de mémoire).
Par contre "Text appear when" sert à tout autre chose. Ca ne sert pas à amocer un dialogue. Ca sert à définir des options de dialogue pour savoir si elles apparaissent ou non.
Par exemple, tout personnage qui parle au PNJ aurait le choix entre deux phrases, A et B. Mais un personnage avec 18 ou plus en intelligence aurait aussi une option C.
Dans ce cas, tu tapes aussi l'option C. Puis onlget "text appear when", tu cliques ensuite sur le script wizard (logo rose) et là tu choisis pour faire apparaître en fonction de l'Intelligence > à 18.
:merci:
Par Myvain le 27/5/2002 à 23:46:58 (#1539952)
Voilà un exemple de script qui fait en sorte que la conversation ne se déclenche que lorsque c'est un joueur qui franchit la zone (il faudrait pouvoir tester pour être sûr mais je me suis appuyé sur des scripts existants) void main(){
object oPlayer = GetEnteringObject();
if (GetIsPC (oPlayer)){
ActionStartConversation (oPlayer, "totodiscute");
}
}
La fonction GetEnteringObject() va chercher à savoir si le perso qui franchit la zone est un joueur ou non et va placer le resultat dans la variable oPlayer.
Ensuite, on fait un test qui vérifie si ce qu'il y a dans la variable correspond à un personnage joueur, si oui alors la conversation (vous vous souvenez: totodiscute) s'engagera avec ce personnage.
Ce script est à placé dans l'évenement OnEnter du trigger.
Par Skanzo Sylan le 29/5/2002 à 15:19:41 (#1549475)
M'enfin, je préfèrerais laisser le PJ choisir sa réponse parmis les A,B et C peut importe son INT et faire en sorte que le NPC réponde de différentes façons avec le text appears when, du genre "hum vous me semblez pas aussi futé que vous en avez l'air", "bien bien, en effet vous m'avez l'air d'être assez intelligent", special fade-out "MOUAAAHAHAHA, un demi-orc qui se prend pour une lumière, MOUHAHAHA!" :D
JOL Archives 1.0.1
@ JOL / JeuxOnLine