PNJ qui surveille les canaux

Répondre
Partager Rechercher
Voila sa fait pas mal d'heure que je passe a chercher et je ne trouve pas comment faire donc ben je me demande si c'est possible.

Je place un PNJ n'importe ou sur le module.
Je lui ai assigne les patterns, et actuellement il ecoute que ce qui a sur la map.

Jusque la pas bien compliqué.

Par contre j ne voix pas comment faire pour le faire ecouter les canaux tel que crier ou MD.

J'ai envisage aussi de lui faire ecouter toute les maps mais bon je n'y arrive pas non plus.

Merci
Pour le canal DM, il l'ecoute avec les patternes : en fait, DM, c'est TALK_VOLUME_SILENT_SHOUT, si ma memoire est bonne.

Quand au fait que le PNJ y reagisse, c'est deja moins sur, mais ca vient de la programmation des patternes : un PNJ qui parle en TALK_VOLUME_SILENT_SHOUT sera entendu par un autre PNJ.

Je ne suis pas certain qu'un DM qui parle en Canal DM le soit.

Alors que c'est le même.


Quand au canal Crier, je n'en sait rien, la technique doit etre la même avec les patternes, mais j'ignore si les PNJ y reagissent, et surtout, s'il n' y reagissent pas, ca doit être hard-coded...
Quel developpement compte tu donner a ce PNJ ?

Si ca marche, ca pourrai permettre de faire un PNJ DM automatisé

Si ya un pb avec une quete : on apelle le DM auto
Si on est bloqué : on apelle le DM auto
Si un PJ nous embete : on dit au DM auto de lui taper sur les doigt ^^
........
Et bien en fait c'est pour les modules RPs et persistents.

Car avec ceci j'ouffre la possibilite de rendre certain joueur animateur. J'entend par la que le joueur animateur peu tres bien jouer sur le serveur tout en ayant des commandes DM disponible sans pour autant qu'il y ai de DM connecter voil la raison.
Bon en fait je n'est pas vraiement besoin de cela car je vien de m'apercevoir que l'erreur ne vien pas de la.

j'ai mis un pnj statufié sur chaque zone de mon module. et je le tien pret a ecouter ce qui se dis sur la zone.

Les Pnj ont tous le meme tag, meme nom et meme resref ils ont se code dans le OnConversation

Code PHP:

#include "NW_I0_GENERIC"

void main()
{
        
int nMatch GetListenPatternNumber();
        
object oShouter GetLastSpeaker();
        
object oIntruder;

if (
nMatch == 1012)
        {
         
string sName GetMatchedSubstring(2);
         if (
sName == "")
          {
           
object oNPC GetLocalObject(oShouter"TARGET_CREATURE");
           
SetPlotFlag(oNPCTRUE);
           
SendMessageToPC(oShouter"Manque de parametres, pour rendre invulnerable " GetName(oNPC) + ".");
          }
         else
          {
           
SetLocalInt(oShouter"PLOT_FOUND"0);
           
object oCreature GetFirstObjectInArea(GetArea(oShouter));
           while (
GetIsObjectValid(oCreature))
            {
             if (
GetName(oCreature) == sName)
              {
               
SetLocalInt(oShouter"PLOT_FOUND"1);
               
SetPlotFlag(oCreatureTRUE);
               
SendMessageToPC(oShoutersName " invulnérable.");
               return;
              }
             
oCreature GetNextObjectInArea(GetArea(oShouter));
            }
           if (!
GetLocalInt(oShouter"PLOT_FOUND"))
             
SendMessageToPC(oShouter"Impossible de localiser " sName ".");
          }
        }

J'ai mis qu'un partie du code car le rest est identique et ca evite de surcharger le post.

Bref en fait in ne me trouve pas la cible suivant ou je me trouve.
Répondre

Connectés sur ce fil

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