un pnj ecoute

Répondre
Partager Rechercher
Bonjour,

Je souhaiterais qu'un pnj écoute ce que le pj dit pour faire une action.
Je m'explique, mon pj dialogue avec un pnj, à un moment du dialogue il doit lui donner un somme d'argent (non fixe, le pj donne ce qu'il veut). je voudrais donc qu'a ce moment la je sortes du dialogue je que je tape dans la barre de message la somme qui je désir donner, lorsque le pnj entend ce message il vérifie que ce soit bien un chiffre puis il débite le pj pour se créditer.

Mais voila je ne sais pas comment faire pour que le pnj récupère ce que dit le pj.

J'espère avoir été claire dans on explication.
Merci mais le problème c'est que dans ce cas tu a déjà défini le mot que tu attend, alors que mon problème ce situe justement là, mon pnj ne sait pas à l'avance ce que va dire le pj.

Heu... je sais pas si j'ai étais claire la.

Enfin si c'est pas claire je détaillerais un peut plus.
Bonsoir .
J'avais réussi à faire un script pratiquement équivalent. Il s'agit de récupérer une donnée que l'on tape dans la ligne de commande en bas. COmme ça a été dit il faut utiliser les patterns.

déja dans le OnSpawn du PNJ il faut rajouter :

Code PHP:

SetListening (oPNJTRUE);
SetListenPattern(OBJECT_SELF"*n"2003); 
Cela déja ne fera pas réagir le pnj si tu tapes autre chose qu'un nombre.

Ensuite dans le onConversation :

Code PHP:

if (GetListenPatternNumber() == 2003)
{
string sNombre GetMatchedSubstring (0);
object oPC GetPCSpeaker;
object oNPC OBJECT_SELF;
int iNombre StringtoInt("sNombre");
if (
GetGold(oPC) >= iNombre)
{
AssignCommand(oPCGiveGoldToCreature(oNPCiNombre));
AssignCommand(oNPCActionSpeakString("oh merci"));
}
else 
AssignCommand(oNPCACtionSpeakString("vous n'avez pas cet argent sur vous !"));

Je crois que ça devrait marcher, mais je ne suis pas certaine.
Bon d'abord merci, ça marche !!

J'ai du modifier un peut parce qu'il y avait quelques erreurs, de frappe et parce que je suppose que Marion a écrit ça rapidement.

Alors voici les script revu au cas ou certains voulaient s'en servir :


déjà dans le OnSpawn du PNJ il faut rajouter :

Code PHP:

object oPNJ OBJECT_SELF;
SetListening (oPNJTRUE);
SetListenPattern(oPNJ"*n"2003); 

Cela déjà ne fera pas réagir le pnj si tu tapes autre chose qu'un nombre.

Ensuite dans le onConversation :


Code PHP:

if (GetListenPatternNumber() == 2003)
{
string sNombre GetMatchedSubstring (0);
object oPC GetLastSpeaker();
object oNPC OBJECT_SELF;
int iNombre StringToInt(sNombre);
if (
GetGold(oPC) >= iNombre)
{
AssignCommand(oPCGiveGoldToCreature(oNPCiNombre));
AssignCommand(oNPCActionSpeakString("oh merci"));
}
else 
AssignCommand(oNPCActionSpeakString("vous n'avez pas cet argent sur vous !"));

Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés