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







La date/heure actuelle est 19/04/2025 11:57:51
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 |
Attention ! | Vous êtes en train de lire un message hors de son contexte. Veuillez lire le sujet une générateur aléatoire d'objets qui marche pas... en entier avant de répondre à ce message. |
Tuyen Demi-dieu ![]() Messages: 460 Localisation: Chez moi |
![]() Bonjour à tous!
J'ai eu l'idée de faire un unique script pour tous les contenants peu importants dans mon module, qui génère un certain nombre d'items configurable via une variable à placer dans le contenant. De plus on peut aussi choisir les items qu'on veut qu'il génère, en mettant leur resref dans une variable du contenant aussi. Ce qui marche dans mon script : il génère bien des objets aléatoires et ceux parmi les choix qu'on lui a indiqué Ce qui ne marche pas : il génère un nombre d'objets différent de celui qu'on a imposé. NWScript :
/* random spawn customizable -> 1 seul script pour tout plein de possibilites */ //:: Created By: Tuyen //////////////////////////////////////////////////////////////////////////////// void main() { //------------- preliminaire --------------------------------------------------- // si le contenant a deja ete ouvert, ne rien faire int iDeja_ouv = GetLocalInt (OBJECT_SELF, "deja_ouv"); if (iDeja_ouv != 0) {return;} // sinon lancer le random_spawn et marquer le contenant comme deja ouvert SetLocalInt (OBJECT_SELF, "deja_ouv", 1); //------------- identifications des variables----------------------------------- // nombre d'objets generes int iIt_Nbr_Gen = GetLocalInt (OBJECT_SELF, "it_nbr_gen"); // nombre de choix possibles int iIt_Nbr_Pos = GetLocalInt (OBJECT_SELF, "it_nbr_pos"); // resref de ces objets (15 maxi) string sItemTemp001 = GetLocalString (OBJECT_SELF, "itemtemp_001"); string sItemTemp002 = GetLocalString (OBJECT_SELF, "itemtemp_002"); string sItemTemp003 = GetLocalString (OBJECT_SELF, "itemtemp_003"); string sItemTemp004 = GetLocalString (OBJECT_SELF, "itemtemp_004"); string sItemTemp005 = GetLocalString (OBJECT_SELF, "itemtemp_005"); string sItemTemp006 = GetLocalString (OBJECT_SELF, "itemtemp_006"); string sItemTemp007 = GetLocalString (OBJECT_SELF, "itemtemp_007"); string sItemTemp008 = GetLocalString (OBJECT_SELF, "itemtemp_008"); string sItemTemp009 = GetLocalString (OBJECT_SELF, "itemtemp_009"); string sItemTemp010 = GetLocalString (OBJECT_SELF, "itemtemp_010"); string sItemTemp011 = GetLocalString (OBJECT_SELF, "itemtemp_011"); string sItemTemp012 = GetLocalString (OBJECT_SELF, "itemtemp_012"); string sItemTemp013 = GetLocalString (OBJECT_SELF, "itemtemp_013"); string sItemTemp014 = GetLocalString (OBJECT_SELF, "itemtemp_014"); string sItemTemp015 = GetLocalString (OBJECT_SELF, "itemtemp_015"); //------------- Spawn des items ------------------------------------------------ // cree autant d'objets que la variable "it_nbr_gen" l'indique // chacun de ces objets est choisi parmi les 15 resref indiques dans les // variables "itemtemp_001" -> "itemtemp_015" // on est oblige d'indiquer ces variables while ( iIt_Nbr_Gen >= 0) { switch (iIt_Nbr_Pos) { // si le nombre d'item possible = 0, fin du programme case 0 : {return;} case 1 : { CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); } case 2 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); } } case 3 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); } } case 4 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); case 4 : CreateItemOnObject (sItemTemp004, OBJECT_SELF, 1); } } case 5 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); case 4 : CreateItemOnObject (sItemTemp004, OBJECT_SELF, 1); case 5 : CreateItemOnObject (sItemTemp005, OBJECT_SELF, 1); } } case 6 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); case 4 : CreateItemOnObject (sItemTemp004, OBJECT_SELF, 1); case 5 : CreateItemOnObject (sItemTemp005, OBJECT_SELF, 1); case 6 : CreateItemOnObject (sItemTemp006, OBJECT_SELF, 1); } } case 7 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); case 4 : CreateItemOnObject (sItemTemp004, OBJECT_SELF, 1); case 5 : CreateItemOnObject (sItemTemp005, OBJECT_SELF, 1); case 6 : CreateItemOnObject (sItemTemp006, OBJECT_SELF, 1); case 7 : CreateItemOnObject (sItemTemp007, OBJECT_SELF, 1); } } case 8 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); case 4 : CreateItemOnObject (sItemTemp004, OBJECT_SELF, 1); case 5 : CreateItemOnObject (sItemTemp005, OBJECT_SELF, 1); case 6 : CreateItemOnObject (sItemTemp006, OBJECT_SELF, 1); case 7 : CreateItemOnObject (sItemTemp007, OBJECT_SELF, 1); case 8 : CreateItemOnObject (sItemTemp008, OBJECT_SELF, 1); } } case 9 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); case 4 : CreateItemOnObject (sItemTemp004, OBJECT_SELF, 1); case 5 : CreateItemOnObject (sItemTemp005, OBJECT_SELF, 1); case 6 : CreateItemOnObject (sItemTemp006, OBJECT_SELF, 1); case 7 : CreateItemOnObject (sItemTemp007, OBJECT_SELF, 1); case 8 : CreateItemOnObject (sItemTemp008, OBJECT_SELF, 1); case 9 : CreateItemOnObject (sItemTemp009, OBJECT_SELF, 1); } } case 10 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); case 4 : CreateItemOnObject (sItemTemp004, OBJECT_SELF, 1); case 5 : CreateItemOnObject (sItemTemp005, OBJECT_SELF, 1); case 6 : CreateItemOnObject (sItemTemp006, OBJECT_SELF, 1); case 7 : CreateItemOnObject (sItemTemp007, OBJECT_SELF, 1); case 8 : CreateItemOnObject (sItemTemp008, OBJECT_SELF, 1); case 9 : CreateItemOnObject (sItemTemp009, OBJECT_SELF, 1); case 10 : CreateItemOnObject (sItemTemp010, OBJECT_SELF, 1); } } case 11 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); case 4 : CreateItemOnObject (sItemTemp004, OBJECT_SELF, 1); case 5 : CreateItemOnObject (sItemTemp005, OBJECT_SELF, 1); case 6 : CreateItemOnObject (sItemTemp006, OBJECT_SELF, 1); case 7 : CreateItemOnObject (sItemTemp007, OBJECT_SELF, 1); case 8 : CreateItemOnObject (sItemTemp008, OBJECT_SELF, 1); case 9 : CreateItemOnObject (sItemTemp009, OBJECT_SELF, 1); case 10 : CreateItemOnObject (sItemTemp010, OBJECT_SELF, 1); case 11 : CreateItemOnObject (sItemTemp011, OBJECT_SELF, 1); } } case 12 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); case 4 : CreateItemOnObject (sItemTemp004, OBJECT_SELF, 1); case 5 : CreateItemOnObject (sItemTemp005, OBJECT_SELF, 1); case 6 : CreateItemOnObject (sItemTemp006, OBJECT_SELF, 1); case 7 : CreateItemOnObject (sItemTemp007, OBJECT_SELF, 1); case 8 : CreateItemOnObject (sItemTemp008, OBJECT_SELF, 1); case 9 : CreateItemOnObject (sItemTemp009, OBJECT_SELF, 1); case 10 : CreateItemOnObject (sItemTemp010, OBJECT_SELF, 1); case 11 : CreateItemOnObject (sItemTemp011, OBJECT_SELF, 1); case 12 : CreateItemOnObject (sItemTemp012, OBJECT_SELF, 1); } } case 13 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); case 4 : CreateItemOnObject (sItemTemp004, OBJECT_SELF, 1); case 5 : CreateItemOnObject (sItemTemp005, OBJECT_SELF, 1); case 6 : CreateItemOnObject (sItemTemp006, OBJECT_SELF, 1); case 7 : CreateItemOnObject (sItemTemp007, OBJECT_SELF, 1); case 8 : CreateItemOnObject (sItemTemp008, OBJECT_SELF, 1); case 9 : CreateItemOnObject (sItemTemp009, OBJECT_SELF, 1); case 10 : CreateItemOnObject (sItemTemp010, OBJECT_SELF, 1); case 11 : CreateItemOnObject (sItemTemp011, OBJECT_SELF, 1); case 12 : CreateItemOnObject (sItemTemp012, OBJECT_SELF, 1); case 13 : CreateItemOnObject (sItemTemp013, OBJECT_SELF, 1); } } case 14 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); case 4 : CreateItemOnObject (sItemTemp004, OBJECT_SELF, 1); case 5 : CreateItemOnObject (sItemTemp005, OBJECT_SELF, 1); case 6 : CreateItemOnObject (sItemTemp006, OBJECT_SELF, 1); case 7 : CreateItemOnObject (sItemTemp007, OBJECT_SELF, 1); case 8 : CreateItemOnObject (sItemTemp008, OBJECT_SELF, 1); case 9 : CreateItemOnObject (sItemTemp009, OBJECT_SELF, 1); case 10 : CreateItemOnObject (sItemTemp010, OBJECT_SELF, 1); case 11 : CreateItemOnObject (sItemTemp011, OBJECT_SELF, 1); case 12 : CreateItemOnObject (sItemTemp012, OBJECT_SELF, 1); case 13 : CreateItemOnObject (sItemTemp013, OBJECT_SELF, 1); case 14 : CreateItemOnObject (sItemTemp014, OBJECT_SELF, 1); } } case 15 : { int iRandom = (Random (iIt_Nbr_Pos)) + 1; switch (iRandom) { case 1 : CreateItemOnObject (sItemTemp001, OBJECT_SELF, 1); case 2 : CreateItemOnObject (sItemTemp002, OBJECT_SELF, 1); case 3 : CreateItemOnObject (sItemTemp003, OBJECT_SELF, 1); case 4 : CreateItemOnObject (sItemTemp004, OBJECT_SELF, 1); case 5 : CreateItemOnObject (sItemTemp005, OBJECT_SELF, 1); case 6 : CreateItemOnObject (sItemTemp006, OBJECT_SELF, 1); case 7 : CreateItemOnObject (sItemTemp007, OBJECT_SELF, 1); case 8 : CreateItemOnObject (sItemTemp008, OBJECT_SELF, 1); case 9 : CreateItemOnObject (sItemTemp009, OBJECT_SELF, 1); case 10 : CreateItemOnObject (sItemTemp010, OBJECT_SELF, 1); case 11 : CreateItemOnObject (sItemTemp011, OBJECT_SELF, 1); case 12 : CreateItemOnObject (sItemTemp012, OBJECT_SELF, 1); case 13 : CreateItemOnObject (sItemTemp013, OBJECT_SELF, 1); case 14 : CreateItemOnObject (sItemTemp014, OBJECT_SELF, 1); case 15 : CreateItemOnObject (sItemTemp015, OBJECT_SELF, 1); }// fin du petit switch }// fin du case 15 }// fin du grand switch iIt_Nbr_Gen = iIt_Nbr_Gen - 1; } // fin de la boucle while } // fin du void main Bon ca a été long, merci de vos réponses! |
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