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







La date/heure actuelle est 05/04/2025 19:38: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 |
Le Blaireau Chevalier Messages: 71 |
Bonjour a tous...
Voilà.. J'ai un petit souci. Dans mon module, j'ai crée une potion de miniaturisation qui permet d'entrée dans une zone quand le dialogue d'entré demande.. « Voulez-vous boire la potion.. »... À ce moment le joueur répond oui, et il entre dans la zone et la potion disparaît de son inventaire.... Mon problème, c'est que... si le joueur a plus d'une potion dans son inventaire, elles disparaissent toutes... Le joueur doit normalement n'en utiliser qu'une... Que faire ??? |
Revenir en haut | ![]() ![]() ![]() |
Sith Vicious Grand Sage du Conseil ![]() Messages: 693 |
Avec les fonctions GetItemStackSize() et SetItemStackSize()
si il y a 2 pots ou plus, tu fixe le nombre a nombre-1 sinon tu détruis avec destroyobject() (bicose SetItemStackSize(machin,0) marche pas, ça en laisse toujours 1). |
Revenir en haut | ![]() ![]() ![]() |
Black Knight Grand Maître Chanteur du Conseil ![]() Messages: 1031 Localisation: Fin fond du trou du cul du monde |
|
Revenir en haut | ![]() ![]() ![]() |
finipe Grand Sage du Conseil ![]() Messages: 519 Localisation: Nantes |
Concrètement, ça devrait fonctionner avec qque chose dans ce goût-là :
NWScript :
void main() { int iStack; object oPC = GetPCSpeaker(); object oPotion = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oPotion)) { if(GetTag(oPotion) == "TAG_DE_LA_POTION") { iStack = GetItemStackSize(oPotion); if(iStack > 1) SetItemStackSize(oPotion, iStack-1); else DestroyObject(oPotion); break; } oPotion = GetNextItemInInventory(oPC); } } Par contre j'ai pas testé, faudra voir ^^ _________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | ![]() ![]() ![]() ![]() |
Le Blaireau Chevalier Messages: 71 |
OK...j'ai essayé le script si haut.... mais ca fonctionne pas.... Voici celui que j'utilise qui me téléporte dans la zone en question et qui me retire mes potions de miniaturisation.... enfin toute mes potions... Mais il devrais en principe ne m'en retirer qu'une...
NWScript : void main() { object oPC = GetPCSpeaker(); object oWP = GetObjectByTag("ma destination"); AssignCommand(oPC, ActionJumpToObject(oWP)); // Enlever des objets de l'inventaire du joueur object oItemToTake; oItemToTake = GetItemPossessedBy(GetPCSpeaker(), "ma potion"); if(GetIsObjectValid(oItemToTake) != 0) DestroyObject(oItemToTake); } |
Revenir en haut | ![]() ![]() ![]() |
finipe Grand Sage du Conseil ![]() Messages: 519 Localisation: Nantes |
Si on ajoute le code nécessaire pour la téléportation, ça donnera ça :
NWScript :
void main() { int iStack; object oPC = GetPCSpeaker(); object oWP = GetObjectByTag("TAG_DESTINATION"); object oPotion = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oPotion)) { if(GetTag(oPotion) == "TAG_DE_LA_POTION") { iStack = GetItemStackSize(oPotion); if(iStack > 1) SetItemStackSize(oPotion, iStack-1); else DestroyObject(oPotion); AssignCommand(oPC, ActionJumpToObject(oWP)); break; } oPotion = GetNextItemInInventory(oPC); } } ...ceci étant donc à placer sur le script Action Conséquente du dialogue. J'ai toujours pas testé, mais ça devrait marcher. _________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | ![]() ![]() ![]() ![]() |
finipe Grand Sage du Conseil ![]() Messages: 519 Localisation: Nantes |
Je viens de tester, ça fonctionne impec'
_________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | ![]() ![]() ![]() ![]() |
Le Blaireau Chevalier Messages: 71 |
ca fonctionne impect...Merci:)
|
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