
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 08/05/2025 16:45:00
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 |
Zanon-blood Acolyte Messages: 38 |
Bonjour ou bonsoir
petit problemme de scripte j'ai crée un scripte qui donne des objet aleatoir ![]() ![]() Dans le OnDeath du monstre void main() { object oTarget = ACTION_DROPITEM(); CreateItemOnObject("wswmsc003",oTarget); CreateItemOnObject("wswmsc011",oTarget); CreateItemOnObject("wswmsc012",oTarget); CreateItemOnObject("wswmsc002",oTarget); } un peut d'aide svp je suis pas tres fore en scripte. ![]() |
Revenir en haut | ![]() ![]() ![]() |
L'Erudit Seigneur ![]() Messages: 167 |
Salut, alors avec ce script tu vas créer 4 items. En effet, le script va s'éxécuter ligne après ligne jusqu'à la fin, et comme tu n'as pas placé de condition, toutes les commandees vont s'effecuer.
De plus, tu n'as pas bien défini la cible (target), car tu as mis une constante ACTION, pour un objet, ce qui n'est pas compatible. Voilà le script corrigé, et pleinement commenté: NWScript :
/* Script a ajouter dans le OnDeath de la creature */ void main() { // oCreature = la creature tuee // nType = le type d'objet cree: un item // lLieu = l'endroit ou est mort la creature object oCreature = OBJECT_SELF; int nType = OBJECT_TYPE_ITEM; location lLieu = GetLocation(oCreature); // n est une valeur alatoire entre 0 et 3, // donc n=0, ou n=1, ou n=2, ou n=3 selon le resultat du Random(4) // switch correspond a une imbrication de "si" // si n=0 on cree l'item qui a pour Blueprint "wswmsc003" en lLieu // si n=1 on cree l'item qui a pour Blueprint "wswmsc011" en lLieu // si n=2 on cree l'item qui a pour Blueprint "wswmsc012" en lLieu // si n=3 on cree l'item qui a pour Blueprint "wswmsc002" en lLieu int n = Random(4); switch (n) { case 0: CreateObject(nType, "wswmsc003", lLieu); break; case 1: CreateObject(nType, "wswmsc011", lLieu); break; case 2: CreateObject(nType, "wswmsc012", lLieu); break; case 3: CreateObject(nType, "wswmsc002", lLieu); } } Je ne sais pas, s'il existe un moyen de ne pas toucher au OnDeath, pour placer ce script sur la creature, dans le OnUserDefined. Si quelqu'un le sait, il peut nous en faire part, de même, si vous pensez qu'on peut améliorer ce script, n'hésitez pas à poster vos remarques. Merci ! |
Revenir en haut | ![]() ![]() ![]() |
BenGorre Légende vivante ![]() Messages: 301 |
En orthographe non plus d'ailleurs...
Bonjour quand même, Il y a un problème dans la définition de ton oTarget, déjà tu mets des parentheses à une constante alors qu'il ne faut pas, ensuite tu met une constante d'action pour définir un objet, pourquoi? Si je comprend bien tu veus juste créer un item aléatoire dans la créature qui meurs pour qu'elle le drop dans ce cas tu met plutôt ceci dans le OnDeath NWScript :
void main() { object oKiller = GetLastKiller(); string sRes; switch(d4()) { case 1:sRes="wswmsc003";break; case 2:sRes="wswmsc011";break; case 3:sRes="wswmsc012";break; case 4:sRes="wswmsc002";break; } object oItem=CreateItemOnObject(sRes,OBJECT_SELF); SetDroppableFlag(oItem, TRUE); } Voilà mais je ne sais plus si ça marche dans le OnDeath j'avais eu des problèmes avec. Si ça marche pas tu rajoutes juste les lignes à la fin du script dans le OnDamage avec 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. Penses à enregistrer le script du OnDamage sous un autre nom après. Eh bien pendant que j'écrivais ma réponse l'Erudit m'a précédé. _________________ La mort n'est rien seul le fait de mourir est terrible Henry Fielding 1745 ![]() Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2. Dernière édition par BenGorre le 19/01/2006 00:27:46; édité 1 fois
|
Revenir en haut | ![]() ![]() ![]() |
Anthraxcite Légende vivante Messages: 372 Localisation: Belgique |
trop tard.. post à supprimé s'il vous plait
|
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
L'Erudit Seigneur ![]() Messages: 167 |
Et bien, on diriat que j'ai devancé deux compagnons
![]() Néanmoins, ton script m'a l'air mieux que le mien BenGorre, c'est pourquoi je le recommande, avant le mien. Enfin, savez vous s'il y a moyen de ne pas toucher au OnDeath, mais de mettre tout cela dans un OnUserDefined, en faisant quelques manipulations supplémentaires? |
Revenir en haut | ![]() ![]() ![]() |
Zanon-blood Acolyte Messages: 38 |
Déja merci de vos reponce
![]() ![]() |
Revenir en haut | ![]() ![]() ![]() |
Anthraxcite Légende vivante Messages: 372 Localisation: Belgique |
L'Erudit a écrit : Enfin, savez vous s'il y a moyen de ne pas toucher au OnDeath, mais de mettre tout cela dans un OnUserDefined, en faisant quelques manipulations supplémentaires? |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
Zanon-blood Acolyte Messages: 38 |
merci pour ta reponce
mait sa marche toujour pas déja esque c'est possible de faire des objet aleatoir?. ![]() |
Revenir en haut | ![]() ![]() ![]() |
Sith Vicious Grand Sage du Conseil ![]() Messages: 693 |
BenGorre a écrit : Voilà mais je ne sais plus si ça marche dans le OnDeath j'avais eu des problèmes avec. Y a encore plus simple (à mon avis) c'est de créer les items sur le PNJ lors du spawn (methode de Bioware d'ailleurs).
Si le drop dépend pas de celui qui tue, c'est la plus meilleure solution. ==> L'erudit : d'après Bioware c'est un peu risquouille d'utiliser l'event 1007, il se déclanche pas à chaque fois. ==>Zanon : peut-être que tu ferais mieux de faire un peu d'orthographe avant de faire des scripts... J'dis ça j'dis rien. |
Revenir en haut | ![]() ![]() ![]() |
L'Erudit Seigneur ![]() Messages: 167 |
C'est une bonne idée Sith. Ensuite, si j'ai bien compris, il suffit juste d'activer la case: corps détroussable, et le tour est joué...
|
Revenir en haut | ![]() ![]() ![]() |
BenGorre Légende vivante ![]() Messages: 301 |
Bonjour bonjour,
Si tu met corp détroussable cela laissera le corps à terre à la mort au lieu d'un petit sac. Pour que l'objet soit laissé à la mort il faut faire: 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. Cette fonction active ou désactive (TRUE ou FALSE) l'option Droppable de l'objet, si elle est activée l'objet sera laché à la mort. _________________ La mort n'est rien seul le fait de mourir est terrible Henry Fielding 1745 ![]() Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2. |
Revenir en haut | ![]() ![]() ![]() |
L'Erudit Seigneur ![]() Messages: 167 |
D'accord, merci pour les précisions, j'y vois plus clair à présent.
|
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