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 15/11/2024 19:41:04
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Klemmth Seigneur Messages: 176 Localisation: france |
Posté le : 29/06/2004 14:05:47 Sujet du message : faire disparaître les PNJ d'une zone et les remplacer
Bonjour
J'aimerais que quelqu'un m'apporte son aide... J'essaye de faire un script qui, quand le joueur entre dans une zone, s'il possède un certain objet, tous les PNJ disparaissent et sont remplacer par des cadavres. Pour ce qui est de la condition avec l'objet, pas de problème, idem pour ce qui est de remplacer par des cadavres (je pensais faire destroyobject, puis createobject a l'emplacement du PNJ, si quelqu'un a une meilleure solution...) Ce qui me pose problème, c'est de faire disparaître tous les PNJ. Je pensais faire une boucle en utilisant la fonction substring (auparavant, j'aurais mis "tav" devant tous les tags des habitants de la zone), mais je suis pas très habile avec cette fonction. Si quelqu'un pouvait m'ider. |
Revenir en haut | |
Konrad Grand Maître Chanteur du Conseil Messages: 1258 Localisation: Empire d'Halöven |
tu as beaucoup de pnj sur ta zone ?
Moi je ferais comme ça : Je modifie tous les onspawn des PNJ de la zone pour les rendre indestructible mais pas immortel. 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.
Et à l'entrer tu PJ avec l'objet, je tue tous les PNJs de la zone et comme ça leur cadavre restent sur la zone ! C'est facile et beau. 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. _________________ Le site du Module Dragon Noir Le groupe du Module L5A - L'ombre et la Lumière Crimson Skies |
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
En m'appuyant sur les 1e remarques de Konrad, on peux essayer ceci: 1. Dans le OnSpawn.. comme Konrad 2. Lorsque le joueur acquière l'objet, tu places cette ligne dans le script OnAcquireItem du module NWScript :
void main() { object oPC = GetModuleItemAcquiredBy(); object oTest = GetModuleItemAcquired(); if (GetTag(oTest) == "Tag de l'objet") { SetLocalInt(oPC , "cadavre_test", 10); } } 3. Puis dans le OnEnter de la zone une boucle du genre NWScript :
void main() { object oEnter = GetEnteringObject(); object oTest = GetFirstObjectInArea(); if (GetIsPC(oEnter)) { while(GetIsObjectValid(oTest)==TRUE) { if ((GetSubString(GetTag(oTest),0,3) == "tav") && (GetLocalInt(oEnter, "cadavre_test") == 10 )) { ActionDoCommand(ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(),oTest)); SetLocalInt(oPC , "cadavre_test", 20); } oTest = GetNextObjectInArea(); } } } C'est évidemment perfectible, notemment pour squizzer le OnAcquireItem avec un test d'inventaire en boucle dans le 2e script... mais je ne m'y risque pas... _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
Je ne sais pas pourquoi, mais ça ne marche pas. Est-ce que ce serait possible que ce soit dû au fait qu'il y est des objects dans la zone? Peut-être qu'ils sont considérés comme des objet invalides?
|
Revenir en haut | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
Cette fois j'ai fais l'essai chez moi ca colle... 1. Dans le OnSpawn des créatures dont le tag commence par "tav" Placer le script 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.
2. Dans le OnAcquireItem NWScript :
void main() { object oPC = GetModuleItemAcquiredBy(); object oTest = GetModuleItemAcquired(); if (GetTag(oTest) == "TestObject") { SetLocalInt(oPC , "cadavre_test", 10); SendMessageToPC(oPC, "objet en place..."); } } 3. Dans le OnEnter de la zone NWScript :
void main() { object oTest = GetFirstObjectInArea(); object oEnter = GetEnteringObject(); while(GetIsObjectValid(oTest)==TRUE) { if (GetSubString(GetTag(oTest),0,3) == "tav" && (GetLocalInt(oEnter, "cadavre_test") == 10 )) { ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(),oTest); } oTest = GetNextObjectInArea(); } } J'ai fais l'essai sur une version 1.62 HoU et les cadavres tombent si le joueur a l'objet et s'il entre dans la zone... _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
Merci beaucoup, ca a l'air de marcher.
|
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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