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 21:12:07
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 |
Yan the salor Seigneur Messages: 151 |
Voilà mon problème.
J'ai fait une quête ou suivant la réussite, le pj obtient une peau de créature avec +1 en force. Le problème est que le pj prend la peau et le met dans son inventaire, mais elle n'est pas équipée. J'ai touvé des réponses qui ressemblent mais je n'y arrive pas. Comment faire pour qu'elle soit équipée? J'ai mis ça dans le on open de l'objet plaçable void main() { object oPC = GetEnteringObject(); // equipe les nouveaux objets // peau object oPeau = CreateItemOnObject ("Lapeau", oPC, 1); AssignCommand(oPC, ActionEquipItem(oPeau, INVENTORY_SLOT_CARMOUR)); // destruction du trigger pour pas que le script se relance à chaque fois DestroyObject(OBJECT_SELF, 1.0); } |
Revenir en haut | |
grosraoul Ecuyer Messages: 60 |
sur le on_open d'un plaçable, il faut que tu remplaces GetEnteringObject() par GetLastOpenedBy()
|
Revenir en haut | |
Jaheira 007 Seigneur Messages: 223 |
Hum, en fait, si c'est plaçable sans inventaire, tu devrais plutot mettre ton script dans le OnUsed.
Ensuite si l'objet est placé dans l"inventaire au lieu d'être équipé, je ne vois qu'une seule solution: tu n'as pas coché la case "identifier" dans les propriété de ton objet. _________________ La nature reprendra ses droits ici, aprés notre passage. |
Revenir en haut | |
Yan the salor Seigneur Messages: 151 |
Non l'objet n'apparait pas tout simplement, mais les modifications de caractéristique ne se font pas. J'ai essayé avec un autre objet (anneau) ça fonctionne mais avec la peau non.
|
Revenir en haut | |
Jaheira 007 Seigneur Messages: 223 |
Ah ok je vois. En fait, une peau ne peut pas s'équiper comme tu t'équiperais d'une armure ( c'est logique, ton pj ne va pas s'écorcher pour retirer sa peau et en enfiler une autre ).
Pour que ton perso s'en équipe à coup sûr, il faut passer par l'intermédiaire d'un script. Execute le script au moment où la quète en question est terminé. _________________ La nature reprendra ses droits ici, aprés notre passage. |
Revenir en haut | |
Yan the salor Seigneur Messages: 151 |
a ok c'est pour ça alors. Une idée du script en question?
|
Revenir en haut | |
Fantome Ecuyer Messages: 63 |
Hello,
Code : void main() { object oPC = GetLastSpeaker(); object oSpecialItem1 = CreateItemOnObject("XXX", oPC);// ou XXX est le resref de ta peau AssignCommand(oPC, ActionEquipItem(oSpecialItem1, INVENTORY_SLOT_CARMOUR)); } Le code ci-dessus s'applique dans un dialogue(action conséquente). Si tu veux que ca fonctionne en entrant dans un trigger tu dois mettre GetEnteringObject() à la place du GetLastSpeaker(). Tu ne verras pas apparaitre ta peau, la seul indication que tu auras c'est dans la fenetre de dialogue qui te le mentionera.(tu dois mettre la peau en identifiée comme l'a mentionné Jaheira) Une dernière chose : (sauf si celà a été revu avec la 1.64) Les slots cachés ne sont pas sauvegardés contrairement à ceux de l'équipement. Aussi lors de la déco/reco tu perds la fameuse "peau". Pour palier ce pb, j'utilise une varaible qui flag le PJ qui a obtenu une peau et à chaque reco (dans le OnEnter des propriétés du module) je réattribue la peau en fonction du flag du pj. _________________ Arcantia |
Revenir en haut | |
Yan the salor Seigneur Messages: 151 |
Oui super merci ça fonctionne.
Cependant, comme il y a plusieurs peaux, que faut-il rajouter pour détruire l'ancienne peau avaant déquiper la suivante? Bon j'ai trouvé seul la réponse. Je le met si d'autres veulent aussi s'en servir: Il suffit de rajouter cette ligne. // efface les objets équipés DestroyObject(GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC)); Encore merci à tous ceux qui m'ont aidé. |
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