La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 30/04/2025 20:29:43


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 09/01/2006 22:29:35 Sujet du message : SetListenPattern(); je veus qu'il reconnaisse un *

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 09/01/2006 23:18:14 Sujet du message :

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");}

}
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.


Après c'est un peu batard comme solution, mais je vois pas mieux.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 10/01/2006 13:56:42 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 10/01/2006 23:39:06 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 11/01/2006 02:18:08 Sujet du message :

pour moi ça plante pas, je vais tester.
 
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 48.363ms