La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 14/11/2024 07:59:30


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Fleurs Comiques1
Acolyte
Inscrit le: 18 Jan 2007
Messages: 26
Répondre en citant
Posté le : 04/02/2007 05:06:29 Sujet du message : Problème avec le départ des monstre...

Bonsoir a tous,

je voudrais savoir si il exsiste un sript pour le départ des monstre dans une zone? Mon problème est que quand je spawn les monstre dans la zone et quand j'en ressort eu il reste meme apres 10 minutes. Quelqu'un aurais t'il une idée (un script)? Merci d'avance.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Doshin
Novice
Inscrit le: 04 Fév 2007
Messages: 14
Localisation: Finistère
Répondre en citant
Posté le : 04/02/2007 14:02:05 Sujet du message :

Bonjour.

Ce que tu veux c'est que les créatures disparaisent une fois que tu es sortis de la zone ?

Si c'est cela voici un script qui devrait t'aider (et marcher Very Happy) :

NWScript :
void main()
{
    object oObjectToDestroy = GetFirstObjectInArea();
    object oPCExiting = GetExitingObject();
    object oArea = OBJECT_SELF;
    int iNbrPC = GetLocalInt(oArea, "NbrPC");

    while(oObjectToDestroy != OBJECT_INVALID)
    {
        if(iNbrPC == 0)
        {
            if((GetObjectType(oObjectToDestroy) == OBJECT_TYPE_CREATURE)
              && GetIsEncounterCreature(oObjectToDestroy) && GetIsPC(oPCExiting))
            {
                DelayCommand(10.0, DestroyObject(oObjectToDestroy));
            }
            oObjectToDestroy = GetNextObjectInArea();
        }
    }
}
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.



Doshin
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Fleurs Comiques1
Acolyte
Inscrit le: 18 Jan 2007
Messages: 26
Répondre en citant
Posté le : 04/02/2007 16:13:50 Sujet du message :

Oui c'est sa que je désire et merci de ton aide.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Doshin
Novice
Inscrit le: 04 Fév 2007
Messages: 14
Localisation: Finistère
Répondre en citant
Posté le : 04/02/2007 16:57:50 Sujet du message :

Je t'en prie.

Donc ce script doit marcher, il est à placer dans le OnExit de la zone, j'ai oublié de préciser. Les monstres seront détruits après un delai de 10 secondes facilement changeable.

Doshin
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 04/02/2007 17:49:56 Sujet du message :

Il manque quelque chose dans ce script : il y a une variable nommée iNbrPC qui visiblement vérifie qu'il ne reste plus de joueur dans la zone avant de la vider de ses monstres. Mais ta variable n'est modifiée nulle part : il doit manquer une portion de code qui vérifie le nombre de joueurs dans la zone (probablement sur le onEnter, qui ajoute 1 à iNbrPC à chaque fois qu'un joueur entre, et sur le onExit, qui retranche 1 à chaque fois qu'un joueur sort).

Il faudrait aussi ajouter une condition pour stopper la boucle while si jamais il reste encore des joueurs dans la zone : sinon le script passera en revue tous les objets de la zone, même s'il ne fait rien du tout. Il suffirait de rajouter, après le bloc if, un bloc else { break; }
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Fleurs Comiques1
Acolyte
Inscrit le: 18 Jan 2007
Messages: 26
Répondre en citant
Posté le : 04/02/2007 19:47:46 Sujet du message :

j'ai tester le script et effectivement les monstres dans la zone disparesse meme si il y a un joueur.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 04/02/2007 20:22:00 Sujet du message :

Voilà la version améliorée des quelques remarques précédentes :

1. A placer sur le onExit de la zone :

NWScript :
void main()
{
    object oObjectToDestroy = GetFirstObjectInArea();
    object oPCExiting = GetExitingObject();
    object oArea = OBJECT_SELF;
    int iNbrPC = GetLocalInt(oArea, "NbrPC");

   
    if(GetIsPC(oPCExiting))
    {
        iNbrPC--;
        SetLocalInt(oArea, "NbrPC", iNbrPC);
    }

   
    if(iNbrPC == 0)
    {
        while(oObjectToDestroy != OBJECT_INVALID)
        {
            if((GetObjectType(oObjectToDestroy) == OBJECT_TYPE_CREATURE)
              && GetIsEncounterCreature(oObjectToDestroy) && GetIsPC(oPCExiting))
            {
                DelayCommand(10.0, DestroyObject(oObjectToDestroy));
            }
            oObjectToDestroy = GetNextObjectInArea();
        }
    }
}
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.



2. A placer sur le onEnter de la zone :

NWScript :
void main()
{
    object oPCEntering = GetEnteringObject();
    object oArea = OBJECT_SELF;
    int iNbrPC = GetLocalInt(oArea, "NbrPC");

   
    if(GetIsPC(oPCEntering))
    {
        iNbrPC++;
        SetLocalInt(oArea, "NbrPC", iNbrPC);
    }
}
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.



Voilà, c'est pas testé, mais à peu de choses près ça devrait marcher Smile
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Fleurs Comiques1
Acolyte
Inscrit le: 18 Jan 2007
Messages: 26
Répondre en citant
Posté le : 04/02/2007 20:36:24 Sujet du message :

Merci à toi Finipe je teste et je te reviens avec sa.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Fleurs Comiques1
Acolyte
Inscrit le: 18 Jan 2007
Messages: 26
Répondre en citant
Posté le : 04/02/2007 21:34:29 Sujet du message :

Je voudrais te dire un gros merci Finipe sa fonctionne a merveille et il me semble pas avoir d'erreur pour le momment le script va comme je le désirais merci encore:P
 
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 80.91ms