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







La date/heure actuelle est 02/05/2025 04:48:57
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 |
yellow submarine Grand Chevalier ![]() Messages: 143 |
Bonjour
dans un premier temps l'inventaire total du PJ a été vidé et le PJ a été transformé ![]() puis je lui redonne son état initial et comme il est presque nu je veux le vêtir "vetements" "vetements" est bien dans l'inventaire mais le PJ ne le porte pas ![]() voilà le script NWScript :
void main() { object oPC = GetFirstPC(); effect eWolf = GetFirstEffect(oPC); while(GetIsEffectValid(eWolf)==TRUE) { if(GetEffectType(eWolf)==EFFECT_TYPE_POLYMORPH) { RemoveEffect(oPC, eWolf); } eWolf = GetNextEffect(oPC); object oVet = CreateItemOnObject("vetements", oPC); AssignCommand(oPC, ActionEquipItem(oVet, INVENTORY_SLOT_CHEST)); } } encore une énigme ![]() merci encore de votre aide amicalement _________________ Rien ne vaut la recherche lorsqu'on veut trouver quelque chose. [J. R. R. Tolkien] |
Revenir en haut | ![]() ![]() ![]() |
Lavok Légende vivante Messages: 434 Localisation: Sphère planaire |
yellow submarine a écrit : NWScript :
void main() { object oPC = GetFirstPC(); effect eWolf = GetFirstEffect(oPC); while(GetIsEffectValid(eWolf)==TRUE) { if(GetEffectType(eWolf)==EFFECT_TYPE_POLYMORPH) { RemoveEffect(oPC, eWolf); } eWolf = GetNextEffect(oPC); object oVet = CreateItemOnObject("vetements", oPC); AssignCommand(oPC, ActionEquipItem(oVet, INVENTORY_SLOT_CHEST)); } } NWScript : void main() { object oPC = GetFirstPC(); effect eWolf = GetFirstEffect(oPC); while(GetIsEffectValid(eWolf)==TRUE) { if(GetEffectType(eWolf)==EFFECT_TYPE_POLYMORPH) { RemoveEffect(oPC, eWolf); } eWolf = GetNextEffect(oPC); } object oVet = CreateItemOnObject("vetements", oPC); AssignCommand(oPC, ActionEquipItem(oVet, INVENTORY_SLOT_CHEST)); } _________________ ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera. Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera. |
Revenir en haut | ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
bonjour
Lavok a écrit : Il ne faut pas mettre les deux lignes que tu as ajoutées dans le 'while', mais en-dessous : ![]() il y a bien création de "vetements", mais le PJ ne le revêt pas cela doit venir d'autre chose ![]() amicalement _________________ Rien ne vaut la recherche lorsqu'on veut trouver quelque chose. [J. R. R. Tolkien] |
Revenir en haut | ![]() ![]() ![]() |
lendraste Grand Maître Chanteur du Conseil ![]() Messages: 1403 Localisation: Quelque part ailleurs |
2 hypothèses :
- Ou bien la création de l'objet n'est pas tout à fait effective au moment ou la commande pour s'équiper est passée. - Ou bien le PJ a déjà quelque chose dans sa queue d'action et l'action n'est alors pas immédiate. Ou bien c'est une espèce de mixture des deux. J'ai un script similaire dans lequel je créé un objet sur un PNJ et je l'équipe aussitôt exactement comme tu le fais, et cela marche très bien. Toutefois, j'ai remarqué une chose troublante dans ton script. Tu as inclus la création de l'objet à l'intérieur de la boucle qui retire les effets. Cela signifie qu'à chaque fois qu'un effet est trouvé sur le PJ, un nouveau vêtement est créé dans son inventaire. J'imagine que ce n'est pas le but recherché. Je te suggère fortement de correctement indenter tes lignes de codes afin d'éviter ce genre de soucis. Avec l'indentation on voit immédiatement les ouvertures et fermetures d'acolade et tu aurais immédiatement repéré ce premier problème. Ensuite je pense que pour s'assurer que le PJ n'est pas occupé à autre chose et que l'objet soit bien dans son inventaire avant de l'équiper, j'ajoute un ClearAllActions et une petite temporisation. Je te propose donc la rectification suivante : NWScript : void main() { object oPC = GetFirstPC(); effect eWolf = GetFirstEffect(oPC); while(GetIsEffectValid(eWolf)==TRUE) { if(GetEffectType(eWolf)==EFFECT_TYPE_POLYMORPH) { RemoveEffect(oPC, eWolf); } eWolf = GetNextEffect(oPC); } object oVet = CreateItemOnObject("vetements", oPC); AssignCommand(oPC, ClearAllActions()); AssignCommand(oPC, ActionWait(0.1)); AssignCommand(oPC, ActionEquipItem(oVet, INVENTORY_SLOT_CHEST)); } _________________ Lendraste de Loreval Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel. La cité des mensonges - 1 |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
salut
toujours le même problème, il y a bien création du "vetements" et une seule fois, mais le PJ n'est toujours pas équipé. si je reparle au NPJ et que je lui demande la même chose, l'action polyphorm ne se fait pas, et mon PJ est bien équipé. amicalement _________________ Rien ne vaut la recherche lorsqu'on veut trouver quelque chose. [J. R. R. Tolkien] |
Revenir en haut | ![]() ![]() ![]() |
Lavok Légende vivante Messages: 434 Localisation: Sphère planaire |
Je dis surement une grosse bêtise mais peut-être que dans une métamophose, pendant un court laps de temps, le personnage ciblé ne sait absolument rien faire
![]() _________________ ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera. Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera. |
Revenir en haut | ![]() ![]() ![]() |
yellow submarine Grand Chevalier ![]() Messages: 143 |
je vais essayer de contourner tout cela
![]() amicalement _________________ Rien ne vaut la recherche lorsqu'on veut trouver quelque chose. [J. R. R. Tolkien] |
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