La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 17/05/2024 04:42:14


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Yan the salor
Seigneur
Inscrit le: 03 Oct 2004
Messages: 151
Répondre en citant
Posté le : 17/10/2004 18:08:23 Sujet du message : Equiper l'objet

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
grosraoul
Ecuyer
Inscrit le: 10 Sep 2004
Messages: 60
Répondre en citant
Posté le : 17/10/2004 23:25:19 Sujet du message :

sur le on_open d'un plaçable, il faut que tu remplaces GetEnteringObject() par GetLastOpenedBy()
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Jaheira 007
Seigneur
Inscrit le: 24 Juin 2004
Messages: 223
Répondre en citant
Posté le : 18/10/2004 18:03:24 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yan the salor
Seigneur
Inscrit le: 03 Oct 2004
Messages: 151
Répondre en citant
Posté le : 20/10/2004 18:01:11 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Jaheira 007
Seigneur
Inscrit le: 24 Juin 2004
Messages: 223
Répondre en citant
Posté le : 20/10/2004 18:21:56 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yan the salor
Seigneur
Inscrit le: 03 Oct 2004
Messages: 151
Répondre en citant
Posté le : 20/10/2004 18:48:58 Sujet du message :

a ok c'est pour ça alors. Une idée du script en question?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Fantome
Ecuyer
Inscrit le: 06 Nov 2002
Messages: 63
Répondre en citant
Posté le : 21/10/2004 12:47:54 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yan the salor
Seigneur
Inscrit le: 03 Oct 2004
Messages: 151
Répondre en citant
Posté le : 22/10/2004 11:54:34 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
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


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 18.201ms