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 23/11/2024 13:36:01
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 |
venuma Novice Messages: 6 Localisation: Palais, Melandis |
Je suis à la recherche d'un renseignement.
J'ai une créature et je veus qu'elle drope aléatoirement des loots du style 10% de chance d'avoir une potion 10% de chance d'avoir 5po 10% de chance d'avoir 10po 5% de chance d'avoir un parcho 2% de chance d'avoir une arme de base 2% de chance d'avoir un objet spécifique 1% de chance d'avoir 50po 60% de chance de ne rien droper A mon avis, c configurable dans le script onspawn de la créature à la ligne "GenerateNPCTreasure();" Voilà (grrrrrrr je ne trouve rien sur le net sur ce sujet) Que TALOS soit indulgent avec votre misérable vie. NB : Faut vraiment que je me mette à scripter serieusement _________________ L'oeil de TALOS est parmis vous! Cité du chaos Forums Melandis |
Revenir en haut | |
Ronbond Voyageur Messages: 2 |
Tu peux regarder comment bioware a concu la fonction GenerateNpcTreasure() dans la biblio NW_O2_CONINCLUDE ca pourra peut etre t'aider
Bon courage |
Revenir en haut | |
Wololo Légende vivante Messages: 385 |
bah euh, tu fais une fonction qui tire un nombre aléatoire, et tu traites chque cas, avec un switch() ... case ...
mais cette solution est exclusive cad qu'un seul loot pourra être droppé et non pas de l'or + un parcho, c'est pour ca que je t'invite à inclure un pourcentage de chance de retirage ... |
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Bah oui mais le switch...case, c'est pas génial avec les pourcentages, si tu tiens au pourcentages (dans ton exemple c'est pas du tout indispensable), il faut plutôt utiliser un "nRand = Random(100);" puis des une suite de if...else if...else qui contrôle dans quel intervalle se trouve nRand. Le mieux c'est encore de faire sa bibliothèque spécialisée, avec quelques fonctions qui permettent de spécifier les quantités et les types d'objets attendus...
|
Revenir en haut | |
venuma Novice Messages: 6 Localisation: Palais, Melandis |
Je pense à un truc de ce style (c du brut de fonderie fait sur notepad au taf)
Vous en penssez quoi? Ca ne marche surment pas Code : // Random_loot_V_0.1 (Beta Version) //
// Script de génération aléatoire de loot sur une créature // // Créé par VENUMA // // [http] // // // void main() { string Item1 = ("mettre le loot ici"); string Item2 = (" "); string Item3 = (" "); string Item4 = (" "); .....etc............. string Item46 = (" "); string Item47 = (" "); string Item48 = (" "); string Item49 = (" "); string Item50 = (" "); switch(Random(49)) { case 0: GenerateTreasure(Item1, OBJECT_SELF, OBJECT_SELF); break; case 1: GenerateTreasure(Item2, OBJECT_SELF, OBJECT_SELF); break; case 2: GenerateTreasure(Item3, OBJECT_SELF, OBJECT_SELF); break; case 3: GenerateTreasure(Item4, OBJECT_SELF, OBJECT_SELF); break; case 4: GenerateTreasure(Item5, OBJECT_SELF, OBJECT_SELF); break; case 5: GenerateTreasure(Item6, OBJECT_SELF, OBJECT_SELF); break; case 6: GenerateTreasure(Item7, OBJECT_SELF, OBJECT_SELF); break; case 7: GenerateTreasure(Item8, OBJECT_SELF, OBJECT_SELF); break; case 8: GenerateTreasure(Item9, OBJECT_SELF, OBJECT_SELF); break; case 9: GenerateTreasure(Item10, OBJECT_SELF, OBJECT_SELF); break; .....etc............. case 44: GenerateTreasure(Item45, OBJECT_SELF, OBJECT_SELF); break; case 45: GenerateTreasure(Item46, OBJECT_SELF, OBJECT_SELF); break; case 46: GenerateTreasure(Item47, OBJECT_SELF, OBJECT_SELF); break; case 47: GenerateTreasure(Item48, OBJECT_SELF, OBJECT_SELF); break; case 48: GenerateTreasure(Item49, OBJECT_SELF, OBJECT_SELF); break; case 49: GenerateTreasure(Item50, OBJECT_SELF, OBJECT_SELF); break; } _________________ L'oeil de TALOS est parmis vous! Cité du chaos Forums Melandis |
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Non,non, GenerateTreasure() est une fonction de génération aléatoire d'item... Or ce que tu veux c'est gérer toi même la génération d'objet...
Il faut donc que tu utilise la méthode standard CreateItemOnObject() ! Je pense que tu devrais lire quelques tutoriaux sur le script si tu ne connais pas cette fonction. De plus, tu avoueras qu'il serait beaucoup plus simple d'utiliser cette structure : Code : void main() { string sRef; switch( Random( 10 ) + 1 ) { case 1 : { sRef = "blueprint1"; break; } case 2 : { sRef = "blueprint2"; break; } case 3 : { sRef = "blueprint3"; break; } case 4 : { sRef = "blueprint4"; break; } case 5 : { sRef = "blueprint5"; break; } case 6 : { sRef = "blueprint6"; break; } case 7 : { sRef = "blueprint7"; break; } case 8 : { sRef = "blueprint8"; break; } case 9 : { sRef = "blueprint9"; break; } case 10 : { sRef = "blueprint10"; break; } } CreateItemOnObject(sRef); } |
Revenir en haut | |
venuma Novice Messages: 6 Localisation: Palais, Melandis |
Merci, je vais tester ton code pour voir.
Je redonne des nouvelles _________________ L'oeil de TALOS est parmis vous! Cité du chaos Forums Melandis |
Revenir en haut | |
venuma Novice Messages: 6 Localisation: Palais, Melandis |
Ton script fonctionne à merveille, merci.
TALOS sera indulgent avec ta misérable vie. _________________ L'oeil de TALOS est parmis vous! Cité du chaos Forums Melandis |
Revenir en haut | |
Psychopompos Seigneur Messages: 209 Localisation: Ici |
Bonjour. Désolé pour le déterrage du topic, ce script semble être ce dont j'aurais besoin mais je ne comprends pas où le mettre.
"sRef" : pas de problème. Mais : - où indique-t-on le pourcentage de chance du drop ? - dans quel script de créatures et à quel emplacement du script faut-il insérer le script de Jedaï ? Merci d'avance. _________________ "Oh Destin cruel! Cruel, cruel cruel Destin! Oh cruauté du destin!" |
Revenir en haut | |
Noon Héros Messages: 272 Localisation: Entre Vannes et les RO |
Salut,
Je pense que ce script doit aller dans le onspawn (ou dans le ondeath mais j'ai un doute), et si tu le copie tel quel, il faut que tu remplace complètement le script d'origine. Pour le pourcentage, "switch( Random( 10 ) + 1 ) " choisit un nombre entre 1 et 10, "case 1" s'exécute si le 1 a été choisi ... Donc si tu veux que seulement 2 objets puissent être droppés en 50/50, soit tu mets l'objet1 dans les case 1 à 5, et le 2 dans les case 6 à 10, soit tu changes "switch( Random( 2) + 1 )" et tu ne mets qu'un case 1 et un case 2, par exemple. Voilà je ne saurais pas en dire plus, je n'ai jamais beaucoup utilisé les probabilités sur nwn. _________________ 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 | |
Psychopompos Seigneur Messages: 209 Localisation: Ici |
Noon a écrit : Salut,
Si j'enlève carrément le onspawn ou le ondeath qui est présent par défaut, ça pose problème ?
Je pense que ce script doit aller dans le onspawn (ou dans le ondeath mais j'ai un doute), et si tu le copie tel quel, il faut que tu remplace complètement le script d'origine. Ca doit aller dans le onspawn, il me semble avoir une fois testé un module où j'avais enlevé les ondeath sans les remplacer par quoi que ce soit, j'ai continué à avoir des drops aléatoires. Si ça ne marche pas : est-il possible de supprimer purement et simplement tout drop autre que ce que la créature doit dropper d'après les données de gestion de son inventaire ? (je sais déjà comment empêcher la génération automatique d'objets dans les contenants fixes : en virant les deux scripts) _________________ "Oh Destin cruel! Cruel, cruel cruel Destin! Oh cruauté du destin!" |
Revenir en haut | |
Noon Héros Messages: 272 Localisation: Entre Vannes et les RO |
Je ne pense pas que ça changera grand chose si tu change le onspawn par défaut, par ton script.
Il me semble qu'il y a une ligne commentée pour le drop des monstres dans le onspawn par défaut de toute manière. Je n'ai que nwn2 sous la main mais je regarderai demain ces scripts. _________________ 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 | |
Psychopompos Seigneur Messages: 209 Localisation: Ici |
Merci pour la suggestion. Je viens d'ouvrir un script OnSpawn (celui du gobelin de base). Quasiment à la fin du script j'ai trouvé ça :
NWScript :
//* Create a small amount of treasure on the creature if ((GetLocalInt(GetModule(), "X2_L_NOTREASURE") == FALSE) && (GetLocalInt(OBJECT_SELF, "X2_L_NOTREASURE") == FALSE) ) { CTG_GenerateNPCTreasure(TREASURE_TYPE_MONSTER, OBJECT_SELF); } Si je remplace les deux FALSE par deux TRUE, ça désactive complétement le spawn aléatoire d'objets normaux du module (sachant que j'ai créé mes propres potions de couleur différente et que mon module ne met pas en scène les Royaumes Oubliés) ? Ca sera le principal, ajouter un script de loot aléatoire personnalisé ne serait qu'un petit plus sans véritable importance. _________________ "Oh Destin cruel! Cruel, cruel cruel Destin! Oh cruauté du destin!" |
Revenir en haut | |
Noon Héros Messages: 272 Localisation: Entre Vannes et les RO |
Tu fais ça // c'est moins compliqué. Et tu rajoute ton script à la fin du onspawn (sans le void main).
NWScript : //* Create a small amount of treasure on the creature //if ((GetLocalInt(GetModule(), "X2_L_NOTREASURE") == FALSE) && //(GetLocalInt(OBJECT_SELF, "X2_L_NOTREASURE") == FALSE) ) //{ //CTG_GenerateNPCTreasure(TREA SURE_TYPE_MONSTER, OBJECT_SELF); //} _________________ 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 | |
Psychopompos Seigneur Messages: 209 Localisation: Ici |
OK. Merci.
_________________ "Oh Destin cruel! Cruel, cruel cruel Destin! Oh cruauté du destin!" |
Revenir en haut | |
Psychopompos Seigneur Messages: 209 Localisation: Ici |
Désolé de répondre aussi tard mais au moment où on m'a répondu j'avais provisoirement lâché NWN.
L'astuce donnée par Noon fonctionne. _________________ "Oh Destin cruel! Cruel, cruel cruel Destin! Oh cruauté du destin!" |
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