La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 22/11/2024 23:42:26
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Noon Héros Messages: 272 Localisation: Entre Vannes et les RO |
Je recrée mon sujet dans la bonne section.
J'ai un problème avec le script ci-dessous semble t-il, placé dans le onexit de quelques zones. Quand j'attaque des créatures (créées à partir d'un dialogue), parfois celles-ci disparaissent au milieu du combat, toutes en même temps. Les créatures ont le set de script normal x2_def... NWScript :
int GetIsPCInArea (object oArea) { object oCreature = GetFirstObjectInArea(oArea); while(GetIsPC(oCreature) == TRUE) { return TRUE; oCreature = GetNextObjectInArea(oArea); } return FALSE; } void VideInv(object oObj); void main() { object oArea = OBJECT_SELF; if (!GetIsPCInArea (oArea)) { object oObj = GetFirstObjectInArea(oArea); while(oObj != OBJECT_INVALID) //On recherche tous les drops. { if(GetTag(oObj) == "BodyBag") VideInv(oObj); oObj = GetNextObjectInArea(oArea); if ((GetObjectType(oObj) == OBJECT_TYPE_CREATURE)||(GetObjectType(oObj) == OBJECT_TYPE_ITEM)) DestroyObject(oObj); } } } void VideInv(object oObj) { object oItem = GetFirstItemInInventory(oObj); while(oItem != OBJECT_INVALID) //On vide l'inventaire { DestroyObject(oItem); oItem = GetNextItemInInventory(oObj); } DestroyObject(oObj, 0.5); } Je l'utilise pourun module solo de combat donc pas besoin de compteur de PJ etc, il supprime juste les loots et les créatures. Donc qu'est-ce qui cloche ? Pourquoi se lancerai-t-il alors que je ne quitte pas la zone (ou alors il continue après que j'ai quitté la zone et quand j'y reviens) ? _________________ Beshaba me protège, Tymora guide mes tirs. The Cake is a lie ! Mes modules NwN2:De Vieilles Rencontres! et De Vieilles Rencontres2 Double Avenir sur le Nwvault |
Revenir en haut | |
eldric Novice Messages: 17 |
NWScript :
int GetIsPCInArea (object oArea) { object oCreature = GetFirstObjectInArea(oArea); while(GetIsPC(oCreature) == TRUE) { return TRUE; oCreature = GetNextObjectInArea(oArea); } return FALSE; } Ta boucle de vérification d'un joueur présent sur la zone est tout simplement incorrect. essaye ce script, en remplacement du "GetisPCinarea". NWScript :
int GetIsPCInArea (object oArea) { object oCreature = GetFirstObjectInArea(oArea); while(GetIsObjectValid(oCreature)) { if(GetIsPC(oCreature)) return TRUE; else oCreature = GetNextObjectInArea(oArea); } return FALSE; } Edit : D'ailleurs si c'est pour un module solo le "GetIsPCInArea" est un peu inutile. Car il suffit de lancer le script de destruction des monstre/loot dans le onexit de la zone. _________________ Mieux vos régner en maitre en Enfer plutôt que servir au Paradis !! |
Revenir en haut | |
Noon Héros Messages: 272 Localisation: Entre Vannes et les RO |
Après un rapide essai, ça a l'air de marcher merci. Je testerai plus demain.
Mais sinon je n'ai toujours pas compris pourquoi les PNJ disparaissaient en plein combat alors que le script est sur le OnExit, et pourquoi pas à chaque fois ? _________________ Beshaba me protège, Tymora guide mes tirs. The Cake is a lie ! Mes modules NwN2:De Vieilles Rencontres! et De Vieilles Rencontres2 Double Avenir sur le Nwvault |
Revenir en haut | |
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