
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 30/04/2025 20:29:43
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 |
BenGorre Légende vivante ![]() Messages: 301 |
![]() Bonjour bonjour,
J'utilise pas mal de SetListenPattern en ce moment pour une meilleur intéraction entre le module et les joueurs et je me suis retrouvé devant un problème: Je voudrais que celui qui écoute détecte si le PJ met un * dans sa phrase. Le problème c'est que le * est un caractère special pour cette fonction qui lui sert d'"options" de detection. pour etre plus precis je voudrais que soit détecté un * devant un mot commencant par 'p' donc ca ferait "*p" mais *p est le joker qui remplaces les caractères de ponctuation. Y'a t'il un moyen de déspecialiser l'*? _________________ La mort n'est rien seul le fait de mourir est terrible Henry Fielding 1745 ![]() Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2. |
Revenir en haut | ![]() ![]() ![]() |
Sith Vicious Grand Sage du Conseil ![]() Messages: 693 |
Je vois pas d'autre solution que de faire tout écouter (SetListenPattern(oObjet,"**",XXX)) puis de retrouver la présence éventuelle de "*p" par un FindSubString.
J'ai testé avec ça et ça marche : OnSpawn de l'"écouteur" : 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. OnConversation : NWScript :
void main() { int nListen = GetListenPatternNumber(); if (nListen == 1024) { string sString = GetMatchedSubstring(0); string sMachin = "*p" ; int i = FindSubString(sString,sMachin); if (i !=-1) SpeakString("youpi"); else SpeakString("dommage");} } Après c'est un peu batard comme solution, mais je vois pas mieux. |
Revenir en haut | ![]() ![]() ![]() |
lylver Héros Messages: 274 |
Essaye avec le backslash dés fois que N.B ait codé sa fonction en C
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. Ceci dit tu ferais bien de ne pas utiliser les caractères spéciaux. |
Revenir en haut | ![]() ![]() ![]() |
BenGorre Légende vivante ![]() Messages: 301 |
J'ai deja utiliser le backslash et ca me fait planté l'editeur, va savoir pourquoi.
Mais la solution de Sith Vicious marche très bien, Merci Sith. _________________ La mort n'est rien seul le fait de mourir est terrible Henry Fielding 1745 ![]() Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2. |
Revenir en haut | ![]() ![]() ![]() |
lylver Héros Messages: 274 |
pour moi ça plante pas, je vais tester.
|
Revenir en haut | ![]() ![]() ![]() |


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