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 11/11/2024 14:18:18
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 |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
Bonjour,
En fait je souhaite qu'a ma vue du PJ, le PNJ dise par exemple "Bonjour" ! Donc facile dans le onPerception du mec je fais : Code : void main() { string sNom = "Bonjour"; int nTalkVolume = TALKVOLUME_TALK; SpeakString(sNom, nTalkVolume); } Aucun problème, quand il le voit il dit bien Bonjour, seulement il le dit deux fois, le script se répète ou la fonction ? Enfin bref je comprends pas pourquoi il le fais deux fois. Quelqun a une idée ? merci |
Revenir en haut | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
J'ai un autre petit problème aussi
En fait je souhaite exporter une variable afin de la réutilier dans un autre script, toujours pour le meme objet... Dans le script ou il y a cette variable je fais un SetLocalString(OBJECT_SELF, Mot, Mot) non ? Et pour la récupérer dans un autre script je dois faire string Mot1 = GetLocalString(OBJECT_SELF, Mot) non ? En tous cas ça marche pas La variable qu'il récupère est vide... |
Revenir en haut | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
Pour l'exportation de variable, c est bon j'ai réussi par contre je comprends toujours pas pourquoi il éxécute deux fois le script !
|
Revenir en haut | |
aldech Gagnant du Concours Gothic 3 Messages: 61 Localisation: Le Havre |
Je comprends pas pourquoi, il le dit deux fois non plus, un petit script pour éviter ce problème :
Code : void main() { string sNom = "Bonjour"; int nTalkVolume = TALKVOLUME_TALK; object oPC = GetLastPerceived(); // obtient la dernière créature perçu if (GetIsPC(oPC)) // vérifie que la créature perçu est un PJ et non un PNJ ou un monstre { string sTag = GetTag(oPC); // récupération du tag du PJ int iSalut = GetLocalInt(OBJECT_SELF,sTag); // récupération de la valeur de la variable qui a pour nom le tag du PJ if (iSalut == 0) // test de iSalut, si égal à 0, c'est la première fois donc le PJ dit bonjour sinon il ne dit pas bonjour { SpeakString(sNom, nTalkVolume); SetLocalInt(OBJECT_SELF,sTag,1); // met à 1 la variable pour ne pas redire Bonjour la prochaine fois que le PNJ perçoit le PJ } } } EDIT : un PJ peut être vu ou entendu, ou les deux donc peut être que l'évenement onperception réagit aux deux. EDIT2 : rajout commentaires au script Dernière édition par aldech le 25/06/2003 08:20:20; édité 1 fois
|
Revenir en haut | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
Merci beaucoup pour ton aide.
Mais peux tu m'expliquez ce que tu fais précisement dans ton script ? |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Il y a juste une condition de rajoutée (if GetIsPC(oPC)) qui vérifie que la créature à laquelle s'applique ce script est un joueur et non un PNJ (personnage non joueur), puis une variable locale (iSalut), qui quand elle a la valeur 0 déclenche le script, et ne fait rien quand elle a pris la valeur 1. Ca permet de vérifier que le script s'est bien déclenché une fois, et donc ne se déclenchera plus. C'est très pratique
_________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
La je suis au boulot donc je peux pas tester.. Mais merci pour l'aide.
Est ce qu'avec cette technique, si le joueur s'éloigne fortement du PNJ tout en restant dans la même zone et reviens le voir il va relancer le script de OnPerception ? |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Non, puisque le "bonjour" n'est prononcé que si la variable est à 0, et on la fait passer à 1 une fois la phrase lancée
_________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
Ok, bon c'est parfait. Merci beaucoup.
Quand on utilise ce genre de variables locales, elles restent à la dernière valeur donnée tant qu'on ne change pas de zone ou tant que dans un scipt on ne donne pas une autre valeur ? ou encore autre chose je ne sais pas... |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Elles restent tout le temps, même si tu sauvegardes et que tu recharges, elle resteront à leur dernière valeur définies (heureusement d'ailleurs )
Le seul truc chiant étant qu'elles ne suivent pas le joueur lorsqu'il change de module, donc c'est plus délicat quand tu essaie de faire plusieurs modules connectés ensemble... _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
Xuyl Acolyte Messages: 26 Localisation: Montpellier / France |
Bien merci je comprends. Donc si je veux réarmer ce script il faudrais que je mette une sorte de timer qui remettrai la variable à sa valeur initiale.
J'ai une autre question (oui je sais ça en fait beaucoup mais je débute et je m'en pose pleins ) Si je souhaite faire dire plusieurs choses à un objet mais qu'il ne me déballe pas tout d'un coup, je dois donc donc mettre une fonction qui s'appelle ActionWait ou un truc comme ça entre les deux SpeakString c'est ça ? Au passage merci à tous, c est vraiment sympa d'aider des noobs comme moi. |
Revenir en haut | |
aldech Gagnant du Concours Gothic 3 Messages: 61 Localisation: Le Havre |
Cassin a écrit : Elles restent tout le temps, même si tu sauvegardes et que tu recharges, elle resteront à leur dernière valeur définies (heureusement d'ailleurs )
Dans mon script la variable est stockè sur le PNJ, il me semble puisque j'utilise OBJECT_SELF et non oPC, donc même si le PJ change
Le seul truc chiant étant qu'elles ne suivent pas le joueur lorsqu'il change de module, donc c'est plus délicat quand tu essaie de faire plusieurs modules connectés ensemble... de zone ou de module, la variable et sa valeur sont conservés ? moi je pense que oui, mais j'ai pas testé. |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Aldech : non, même si la variable est stockée sur le PJ elle ne sera pas conservée si le joueur change de module. Par contre elle le sera tant qu'il restera dans ton module (il peut changer de zone 300 fois s'il le veut, ça ne changera rien )
Xuyl : si tu veux que le PNJ salue le joueur chaque fois qu'il vois, plutôt que de te faire chier à réinitialiser la variable, supprime la, ça sera beaucoup plus facile Et si tu as d'autres questions, ouvre un nouveau topic sinon on ne va plus s'y retrouver _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
aldech Gagnant du Concours Gothic 3 Messages: 61 Localisation: Le Havre |
Cassin a écrit : Aldech : non, même si la variable est stockée sur le PJ elle ne sera pas conservée si le joueur change de module. Par contre elle le sera tant qu'il restera dans ton module (il peut changer de zone 300 fois s'il le veut, ça ne changera rien Oui, un seul module en mémoire donc si on change de module... effectivement je viens de tester
mais d'un module persistant à un autre, est ce que là cela fonctionne ? |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Il y a des techniques pour, je crois, mais je ne suis pas spécialiste en la matière...
Et puis ça mériterait un autre topic, ça n'a plus rien à voir avec le sujet initial _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
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