La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 21:51:17
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Eldorane Héros Messages: 298 Localisation: Moselle |
Salut,
Je souhaite qu'à l'issue d'un dialogue, le PNJ aille s'asseoir sur une chaise. Là non seulement il devra rester assis, même si on lui parle, mais aussi lancer un autre dialogue si on s'adresse à lui. Pour finir, à la fin de ce second dialoque, il devra retourner à sa place initiale C'est tout Voici un script que j'ai récupéré ici, pour faire asseoir le PNJ. NWScript :
void main() { ClearAllActions(); ActionWait(15.0); ActionMoveToObject( GetWaypointByTag( "Ben_01" ), FALSE, 0.0 ); int i = 1; object oChair = GetNearestObjectByTag("chaise", OBJECT_SELF,i); int bFoundChair = FALSE; while (bFoundChair == FALSE && GetIsObjectValid(oChair) == TRUE) { //Cette chaise est libre if (GetIsObjectValid(GetSittingCreature(oChair)) == FALSE) { bFoundChair = TRUE; ActionSit(oChair); } else { i++; oChair = GetNearestObjectByTag("chaise", OBJECT_SELF,i); } } if (bFoundChair == FALSE) { ClearAllActions(); ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD); } } Je l'ai mis à la fin du dialogue comme action conséquente, et ça marche, sauf qu'il ne reste pas assis si on lui parle ! Autre problème, il court vers la chaise au lieu de marcher normalement... Pour ce faire j'ai ce script : NWScript :
if(GetCommandable(OBJECT_SELF)){ { BeginConversation(); } ClearAllActions(); int nChair = 1; object oChair; oChair = GetNearestObjectByTag("chaise", OBJECT_SELF, nChair); ActionSit(oChair); } à mettre dans le "ONConversation" du PNJ. Il faudrait y rajouter une autre condition : à la fin du dialogue je fais passer une variable à 1. Il faudrait rajouter cette condition dans cet autre script pour qu'il reste assis uniquement si le premier dial est terminé, mais comment faire ? _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ Dernière édition par Eldorane le 21/04/2005 15:54:45; édité 2 fois
|
Revenir en haut | |
Stan Grand Chevalier Messages: 126 |
NWScript :
if (GetLocalInt(OBJECT_SELF,"dial1")==1) { if(GetCommandable(OBJECT_SELF)){ { BeginConversation(); } ClearAllActions(); int nChair = 1; object oChair; oChair = GetNearestObjectByTag("chaise", OBJECT_SELF, nChair); ActionSit(oChair); } } else ExecuteScript("nw_c2_default4", OBJECT_SELF); Mais le problème c'est que il est bien précisé sur le script que tu utilises pour qu'il reste assis que : Citation : Make sure you have a sit command in
Enfin, fait quand même le test avec différent type de chaise, parfois moi le PNJ restait assis et si je changeais de chaise, il se levait puis allait à nouveau s'assoir.(ça fonctionne avec une chaise toute basique medium chair)
OnSpawn part of your NPC. Otherwise This will make the NPC sit AFTER the conversation. Sinon pour pas qu'il court sur la chaise : NWScript :
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème. Citation : Il faudrait y rajouter une autre condition : à la fin du dialogue je fais passer une variable à 1. Il faudrait rajouter cette condition dans cet autre script pour qu'il reste assis uniquement si le premier dial est terminé, mais comment faire ? Citation : Je souhaite qu'à l'issue d'un dialogue, le PNJ aille s'asseoir sur une chaise |
Revenir en haut | |
Eldorane Héros Messages: 298 Localisation: Moselle |
Bon, déjà le PNJ va tranquillement s'assoier à la fin du 1er dialogue.
Mais il ne reste pas assis lorsqu'on lui adresse la parole. J'ai changé le tag de la chaise, pris des chaises simples d'origine etc... Citation : Mais s'il est assit c'est que le premier dial est terminé, c'est pas ce que tu dis plus haut ? Oui, mais comme j'ai mis ce script dans le ONConversation du PNJ, il va aller s'asseoir dés qu'on lui parle, même si le 1er dial n'est pas terminé !_________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | |
Darkavanger Grand Chevalier Messages: 114 |
Citation : Mais il ne reste pas assis lorsqu'on lui adresse la parole. je suis quasiment sûr que c'est impossible, j'avais lu ça quelque part, sur ce forum il me semble d'ailleur, et on m'a répondu que c'était impossible.
L'erreur est humaine, et je peus me tromper, mais c'est ce que je sais là dessus. |
Revenir en haut | |
Stan Grand Chevalier Messages: 126 |
Je viens de le dire plus haut.
Un PNJ ne reste assis quand on lui parle, UNIQUEMENT si il s'assoit dans son onSpawn, je livre ici le script entier avec les commentaires de l'auteur. NWScript :
////////////////////////////// ////////////// ////////////////////////////// ////////////// ////// NPC - Sit and Talk ////// Causes NPC to sit and face in the ////// Direction of the chair while talking ////// to the PC. ////////////////////////////// ////////////// ////////////////////////////// ////////////// ////// Scripted by: Weeping Ashes ////// Date: July 1, 2002 ////// Scripting Time: 33hrs 14 mins ////// Is aware he is a newbie... ////////////////////////////// ////////////// ////////////////////////////// ////////////// ///// Make sure you have a sit command in ///// OnSpawn part of your NPC. Otherwise ///// This will make the NPC sit AFTER the ///// conversation. ////////////////////////////// ////////////// ////////////////////////////// ////////////// void main() { if(GetCommandable(OBJECT_SELF)){ //This sets the NPC as the speaker { BeginConversation(); //This starts the conversation script. } ClearAllActions(); // Clears the actions so the NPC will not follow you with his/her eyes int nChair = 1; object oChair; oChair = GetNearestObjectByTag("CaisseBanc", OBJECT_SELF, nChair); ActionSit(oChair); //Sits the NPC down } } Je l'utilise sur des PNJ qui s'asseyent directement à leur spawn et ça fonctionne, effectivement sur un banc le gars ne se lève pas quand on lance le dialogue par exemple. Mais pour on cas présent, le script ne te sert à rien et je peux assurer à 99% qu'il n'y a pas de solution à ce probleme. |
Revenir en haut | |
Eldorane Héros Messages: 298 Localisation: Moselle |
ok, c'est clair maintenant ! merci !!!!
_________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | |
Eldorane Héros Messages: 298 Localisation: Moselle |
J'ai tout de même un autre question (et oui encore une !)
pour les variables incrémentée comme ça : NWScript :
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème. elles ne concernent qu'un seul PJ. Si j'utilise ça en multi, elle ne sera mise à 1 que pour le GetPCSpeaker ! Est il possible de l'incrémenter pour tout le groupe ? _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | |
Stan Grand Chevalier Messages: 126 |
NWScript :
float nDistance = 10.0; object oPC = GetPCSpeaker(); object oTest = GetFirstObjectInShape(SHAPE_SPHERE, nDistance, GetLocation(oPC)); while (oTest != OBJECT_INVALID) { if (GetIsPC(oTest)) SetLocalInt(oTest, "xxx", 1); oTest = GetNextObjectInShape(SHAPE_SPHERE, nDistance, GetLocation(oPC)); } Le premier incrémenté sera le PJ qui parle à ton PNJ, puis ensuite tous les joueurs dnas un rayon de 10m. je pensais que tu t'en souviendrai |
Revenir en haut | |
Eldorane Héros Messages: 298 Localisation: Moselle |
J'ai la mémoire courte .. manque de phosphore sans doute...
et une fois de plus MERCI Stan ! _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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