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







La date/heure actuelle est 05/04/2025 19:43:22
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 |
Salut à tous...
J'ai un petit problème avec l'action conséquente dans un de mes dialogues... Mon PNJ doit prendre un objet dans l'inventaire du joueur (pierre de rappel). Jusque là, ça va.... Mon problème c'est que si le joueur a plusieurs pierre de rappel.. Il n'en perd qu'une... Je voudrais que le PNJ les retire toutes.... Est-ce possible? |
Revenir en haut | ![]() ![]() ![]() |
Raudgers Ecuyer Messages: 46 Localisation: En furtif à coter de toi... |
Oui, c'est possible, remplace ton scrypt par celuici :
NWScript :
void main() { object oPC = GetPCSpeaker(); object oItem = GetFirstItemInInventory(oPC); int iNum = 0; while (GetIsObjectValid(oItem)) { string sItem = GetTag(oItem); if (sItem == "LE TAG DE TON ITEM" && iNum < 500) { DestroyObject(oItem); iNum ++; } oItem = GetNextItemInInventory(oPC); } } Tu remplace LE TAG DE TON ITEM par le tag de ta piere de rapel comme tu t'en dout ![]() Ce script en prend jusqu'a 500 si il en as plus ca n' en prendra que 500, mais bon je ne pense pas que ce cas la ce produira. _________________ I need your help.Give light to me please. J'ai besoin de votre aide. Donnez-moi la lumière s'il vous plaît. |
Revenir en haut | ![]() ![]() ![]() ![]() |
Le Blaireau Chevalier Messages: 71 |
Salut...
Merci ton script marche impec.. Le seul problème que j'ai maintenant, c'est que j'ai oublié de dire que... y a 3 pierres de rappel différentes à retirer... J'ai essayé de modifier ton script moi-même, mais ça n'a pas fonctionné... tu peux m'aider s.v.p ? |
Revenir en haut | ![]() ![]() ![]() |
Ailesnoires Grand Chevalier Messages: 110 Localisation: Vendée |
voilà
NWScript :
void main() { object oPC = GetPCSpeaker(); object oItem = GetFirstItemInInventory(oPC); int iNum = 0; while (GetIsObjectValid(oItem)) { string sItem = GetTag(oItem); if (sItem == "LE TAG DE TON ITEM" || sItem == "LE TAG DE TON DEUXIEME ITEM" || sItem == "LE TAG DE TON TROISIEME ITEM") { DestroyObject(oItem); iNum ++; } oItem = GetNextItemInInventory(oPC); } } Je crois que ça devrait aller |
Revenir en haut | ![]() ![]() ![]() |
Raudgers Ecuyer Messages: 46 Localisation: En furtif à coter de toi... |
Ailesnoires a réagit avant moi, je n'ai pas tester sont scryit mais en le regardant, il ne devrait y avoir aucun probleme avec.
_________________ I need your help.Give light to me please. J'ai besoin de votre aide. Donnez-moi la lumière s'il vous plaît. |
Revenir en haut | ![]() ![]() ![]() ![]() |
trenim Ecuyer Messages: 64 Localisation: DANS TON C** !!!! |
Et pour, en plus, recompenser le perso en or XP ou autre, il faut rajouter quoi ?
_________________ ON EST DES MARINES !! ON EST NAIT POUR TUER !! C'EST QUOI NOTRE METIER ? TUER TUER TUER !!! |
Revenir en haut | ![]() ![]() ![]() |
Elandil2 Chevalier Messages: 97 Localisation: sur mon ordi loir-et-cher |
NWScript :
void main() { object oPC = GetPCSpeaker(); object oItem = GetFirstItemInInventory(oPC); int iNum = 0; int iOR = 100;//remplace 100 par le nombre de po que tu veux donner int iXP = 100;//remplace 100 par le nombre d'xp que tu veux donner while (GetIsObjectValid(oItem)) { string sItem = GetTag(oItem); if (sItem == "LE TAG DE TON ITEM" || sItem == "LE TAG DE TON DEUXIEME ITEM" || sItem == "LE TAG DE TON TROISIEME ITEM") { DestroyObject(oItem); iNum ++; } oItem = GetNextItemInInventory(oPC); } GiveGoldToCreature(oPC,iOR); GiveXPToCreature(oPC,iXP); } Voila ! _________________ Rejoignez nous sur notre forum Aelor, module en construction Vive Gimli ![]() |
Revenir en haut | ![]() ![]() ![]() ![]() |
trenim Ecuyer Messages: 64 Localisation: DANS TON C** !!!! |
Merci, Ô toiQuiSais
![]() _________________ ON EST DES MARINES !! ON EST NAIT POUR TUER !! C'EST QUOI NOTRE METIER ? TUER TUER TUER !!! |
Revenir en haut | ![]() ![]() ![]() |
Léviathan Grand Sage du Conseil ![]() Messages: 671 Localisation: Sigil |
Hum... Là le iNum ne sert plus à rien.
NWScript :
void main() { object oPC = GetPCSpeaker(); object oItem = GetFirstItemInInventory(oPC); int iNum = 0; int iOR = 100;//remplace 100 par le nombre de po que tu veux donner int iXP = 100;//remplace 100 par le nombre d'xp que tu veux donner while (GetIsObjectValid(oItem)) { string sItem = GetTag(oItem); if ((sItem == "LE TAG DE TON ITEM" || sItem == "LE TAG DE TON DEUXIEME ITEM" || sItem == "LE TAG DE TON TROISIEME ITEM") && iNum < 500) { DestroyObject(oItem); iNum ++; } oItem = GetNextItemInInventory(oPC); } GiveGoldToCreature(oPC,iOR); GiveXPToCreature(oPC,iXP); } ![]() _________________ Forum Planescape NWN |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Autant le virer totalement je trouve qu'il ne sert strictement à rien (chacun son optique).
_________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
Léviathan Grand Sage du Conseil ![]() Messages: 671 Localisation: Sigil |
Bah, c'est une sécurité.
N'importe quel informaticien te dira qu'il faut toujours laisser une condition de sorti à une boucle While, mais bon, là c'est vrai que ça ne se justifie pas trop. Où si on le vire, ça ne sert à rien non plus de déclarer et d'initialiser iNum, dans ce compte là (int iNum = 0 ![]() ![]() Bref, dons mon optique, soit on laisse tout, soit on vire tou, mais on laisse pas des variables non utilisés dans un script. ![]() _________________ Forum Planescape NWN |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
C'est ce que je disais, autant virer TOTALEMENT
![]() _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
Léviathan Grand Sage du Conseil ![]() Messages: 671 Localisation: Sigil |
Bah, c'est pas ça qui va faire ralentir la bête... C'est juste une sécurité.
![]() _________________ Forum Planescape NWN |
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