La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 01/11/2024 05:40:11


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Seth de Sombrelune
Seigneur
Inscrit le: 10 Jan 2005
Messages: 156
Répondre en citant
Posté le : 10/11/2005 11:37:34 Sujet du message : [RESO] souci de classe et de Listener...

Bonjour à tous...

Un collegue m'a refiler un script de listener afin d'ouvrir une porte si un mot de passe est prononcé, voici ses scripts (ils fonctionnet parfairement...)

Dans le OnSpawn de la créature :
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.


dans le OnConversation de la créature
NWScript :
#include "NW_I0_GENERIC"

void main()
{

    int iNb = GetListenPatternNumber();

    object oPC = GetPCSpeaker();
    object oTarget;
    oTarget = GetObjectByTag("e1"); //le tag de la porte
    int iClassLevelDRUID=GetLevelByClass(CLASS_TYPE_DRUID,oPC);
    int iClassLevelRANGER=GetLevelByClass(CLASS_TYPE_RANGER,oPC);
    switch (iNb)
    {
        case -1 :
            ClearAllActions();
            break;

        case 1000 : // si le mot de passe est bon, ouvre la porte


                SetLocked(oTarget, FALSE);
                AssignCommand(oTarget, ActionOpenDoor(oTarget));

            break;

        case 1001 :
            break;
    }
}
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.


Actuellement, quiconque prononce "ouverture" devant la porte, elle s'ouvre. J'ai donc voulu introduire une condition relative à la classe du personnage afin de n'accorder l'ouverture qu'aux druides et rodeurs. J'ai donc modifier le script et obtenu ceci :

NWScript :
#include "NW_I0_GENERIC"

void main()
{

    int iNb = GetListenPatternNumber();

    object oPC = GetPCSpeaker();
    object oTarget;
    oTarget = GetObjectByTag("e1"); //le tag de la porte
    int iClassLevelDRUID=GetLevelByClass(CLASS_TYPE_DRUID,oPC);
    int iClassLevelRANGER=GetLevelByClass(CLASS_TYPE_RANGER,oPC);
    switch (iNb)
    {
        case -1 :
            ClearAllActions();
            break;

        case 1000 : // si le mot de passe est bon, ouvre la porte

            if ((iClassLevelDRUID >= 1) ||(iClassLevelRANGER >= 1))
            {
                SetLocked(oTarget, FALSE);
                AssignCommand(oTarget, ActionOpenDoor(oTarget));
            }
            break;

        case 1001 :
            break;
    }
}
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.


Mais là plus personne n'ouvre la porte ni les druides, ni les rodeurs et encore moins les autres classes de perso...
Qui peux me dire quelle est mon erreur et comment determiner une condition ?

Merci !
Dernière édition par Seth de Sombrelune le 11/11/2005 14:23:51; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 10/11/2005 12:58:20 Sujet du message :

et le script se compile bien ?
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Anthraxcite
Légende vivante
Inscrit le: 12 Juin 2004
Messages: 372
Localisation: Belgique
Répondre en citant
Posté le : 10/11/2005 18:09:01 Sujet du message :

Essaye avec GetLastSpeaker();.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 11/11/2005 11:45:17 Sujet du message :

GetPCSpeaker est a changé, cette "phrase" sert juste dans les dialogue de PNJs, alors que la tu le met dans une "ecoute" de PNJ. Donc comme Anthraxite tu doit mettre GetLastSpeaker().
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Seth de Sombrelune
Seigneur
Inscrit le: 10 Jan 2005
Messages: 156
Répondre en citant
Posté le : 11/11/2005 14:22:55 Sujet du message :

Merci de cette aide, ça marche impec !
J'ai encore du mal a faire la difference entre les 2 object ! Embarassed
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 11/11/2005 21:33:47 Sujet du message :

GetPCSpeaker(); = A mettre dans un DIALOGUE, cela sert d'identifiquation du PJ qui parle.
GetLastSpeaker(); = C'est a mettre plus autres par que dans un DIAGLOGUE car ceci dit qu'un PJ "cause", comme je t'es dit, ici le PNJ entend causé le PJ qui lui dit "ouverture".
C'est presque rien comme difference mais GetPCSpeaker(), et GetLastSpeaker() son a utilisé soit dans un Dialogue (GetPCSpeaker) soit dans un OnConversation (GetLastSpeaker)
 
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 51.09ms