La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 28/04/2024 00:04:34


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Fantome
Ecuyer
Inscrit le: 06 Nov 2002
Messages: 63
Répondre en citant
Posté le : 07/11/2002 18:29:18 Sujet du message : 2 Questions sur les dialogues

Bonsoir Very Happy ,
J’ai 2 questions concernant les dialogues :
- la première concerne un dialogue situé dans une zone A, le pnjA donne une info au pj. Le pj quitte alors la zone A et se rend dans la zone B pour parler au pnjB. Le pnjB va parler différemment au pj selon que le pj aura ou pas eu l’info du pnjA de la zone A. Comment puis je mettre ce cas de figure en pratique ?
- la seconde concerne un dialogue situé dans une zone A, le pnjA donne une info au pj. Le pj quitte alors la zone A et se rend dans la zone B. A ce moment, et parce que le pj a eu l’info du pnjA, un pnjC vient spontanément parler au pj. Comment puis je mettre ce cas de figure en pratique ?
Merci Razz pour vos réponses détaillées.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Lavok
Légende vivante
Inscrit le: 22 Oct 2002
Messages: 434
Localisation: Sphère planaire
Répondre en citant
Posté le : 07/11/2002 21:14:21 Sujet du message : Bon, bon

Première chose : on dirait que tu as quelques problèmes avec les ' qui deviennent ’ Shocked ...

Deuxième chose : pour ta première question, deux possibilités :
_Soit tu sais déjà comment faire pour qu'un pnjA dit une première fois par exemple 'bonjour' et la deuxième fois 'Ah te revoilà'. Dans ce cas, c'est tout simple : ça ne change absolument rien sauf que les conditions d'éxécution s'apliquent évidement au pnjB Smile .
_Soit c'est pas le cas et alors je vais tenter d'être le plus clair possible Very Happy . Prenons pour l'exemple celui que j'ai pris juste en haut. Tu tapes la réplique 'Bonjour' et dans l'onglet actions conséquentes, tu cliques sur le wizard ( le chapeau ). Tu coches la case 'définir variables locales' et après tu tapes un mot de repère dans la case du genre 'pnjA'. Dans la case d'en dessous, tu mets un nombre différent de 0 ( par exemple 1 ). N'oublies pas de cliquer sur 'Ajouter' sinon, il n'y aura rien d'enregistré. Après, tu sauvegarde le script sous un nom du genre 'pnjA1'. Après tout ça, tu retapes une autre réplique à partir de la racine, en l'occurence ici 'Ah te revoilà'. Note : c'est très important de déplacer la réplique 'Ah te revoilà' avant l'autre sinon, ça ne marchera pas. Cette fois-ci, c'est dans l'onglet 'conditions d'éxécution' que tu dois aller. Même principe : tu retapes ce que tu avais mis avant ( ici 'pnjA' et '1' ) et puis tu sauvegardes par exemple sous 'sipnjAest1' ( j'insiste sur des noms clairs dans les scripts parcequ'au bout d'un moment, on peut facilement en confondre deux si on est trop vague ). Donc, la réplique 'Ah te revoilà' ne s'affichera que si 'Bonjour' a déjà été dit Wink . Pour ton exemple à toi, rien ne change, il s'agit juste de mettre la condition d'éxécution dans la réplique du pnjB.

Troisième chose : ben là ça dépend et c'est certainement plus dur Confused . Veux-tu que ce pnjC n'existe que si tu as parlé à l'autre ? Bon, en tout cas, il s'agit en gros de dessiner un déclencheur qui fera que si le joueur y entre et que si le pnjA a déjà parlé, alors et alors seulement le pnjC s'avancera pour parler. Faudrait peut-être que tu réusises déjà le truc d'avant parce que là je crois que le wizard ne suffit plus Very Happy ...
_________________
ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera.

Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Fantome
Ecuyer
Inscrit le: 06 Nov 2002
Messages: 63
Répondre en citant
Posté le : 08/11/2002 08:42:24 Sujet du message :

Merci Lavok pour tes réponses.
J ai bien assimilé la première. Et en plus ca fonctionne !!! Shocked
J ai déja utilisé des zones de déclenchement et je crois savoir comment régler ma deuxième question. (c est en lisant ta réponse que celà m est apparu Embarassed )
Mais je veux bien que tu m expliques ta méthode (en détail).
a+
Razz

ps: si tu as un truc pour éviter mon pb d'apostrophe, n'hésite pas je suis preneur.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Lavok
Légende vivante
Inscrit le: 22 Oct 2002
Messages: 434
Localisation: Sphère planaire
Répondre en citant
Posté le : 08/11/2002 22:51:21 Sujet du message : Bon, alors...

Euh pour les apostrophes, je sais pas, c'est bizarre Surprised Very Happy . Quant à la deuxième situation, imaginons que la réplique finale de pnjA ( fais par exemple que ce soit la réplique du pj qui détermine la variable, parce que combiner deux scripts, c'est déjà plus périlleux ) fasse apparaître pnjC dans une autre zone. Il faut à ce moment-là créer un nouveau script sans le wizard et tu mets un truc du genre ceci :

Code :

void main()

{
    object oPnjC = CreateObject(OBJECT_TYPE_CREATURE,"PnjC",GetLocation(OBJECT_SELF));
    object oTarget = GetWaypointByTag ("WP_PnjC");
    AssignCommand( oPnjC, JumpToObject( oTarget));
    }


Attention ! Le premier mot qui est entre guillemets représente le blueprint de pnjC ( tu dois aller voir dans ses propriétés de créature pour voir quel est ce blueprint ). Le deuxième est le nom du point de passage ( que tu peux créer dans la barre avec créatures, marchands, etc ) où tu souhaiterais que ton pnjC apparaisse.

Tu peux aussi placer normalement ton pnjC et simplement définir des variables comme suit : si pnjA t'a parlé, alors pnjA=1. Si pnjA=1 alors pnjC donne son autre réplique ( comme avant ). Mais alors, tu devras mettre la condition aussi dans le prochain script ( pour que pnjC ne marche vers le joueur que si pnjA=1 ). Dans ce cas, simple copier-coller du script de condition d'éxécution Wink ( si pnjAest1 ) dans le gros script qui va suivre mais il se peut alors que si tu le mets au mauvais endroit, la compilation ne soit pas acceptée. Et je saurais pas trop te dire comme ça quand ça va Confused Very Happy ...

Si, en plus, tu veux que ton pnjC parle spontanément à ton joueur, il faut placer par exemple un déclencheur inévitable qui aura dans ses propriétés à la ligne 'OnEnter' un script qui devrait ressembler à ceci :

Code :

  void main()
{
object oPC = GetEnteringObject();

// Mettre le tag de votre perso
object oNPC = GetNearestObjectByTag("PnjC");

// Trouvez le Npc. Il est peut etre mort..
if (GetIsObjectValid(oNPC)) {

// verifie que le npc ne parle pas déjà à quelqu'un
if (!IsInConversation(oNPC)) {

// stop les actions en cours du Npc.
AssignCommand(oNPC, ClearAllActions());

// Faire marcher le Npc vers le joueur. Si vous voulez que le npc court, changez la variable par true.
AssignCommand(oNPC, ActionMoveToObject(oPC, TRUE));

// Pour que le Npc parle au joueur.
AssignCommand(oNPC, ActionStartConversation(oPC));
}
}

// Si vous voulez que le script ne marche qu'une seule fois
// placer la ligne en dessous en la mettant sans commentaire:
//DestroyObject(OBJECT_SELF);

}


Attention ! Le mot entre guillemets fait référence au tag de la créature ( qui ne coresspond pas nécessairement au blueprint ). Comme noté, tu peux copier-coller "DestroyObject(OBJECT_SELF);" en dessous si tu veux que pnjC n'interpelle qu'une seule fois le joueur chaque fois qu'il marche sur le déclencheur.

Bon, tu te rends bien compte que c'est déjà plus dur mais si tu veux essayer, rien ne t'en empêche, simplement, tu risques de te planter Very Happy Wink .
_________________
ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera.

Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 40.5ms