La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 15:55:32


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 05/07/2006 10:58:07 Sujet du message : [Résolut] Probleme de AT et SC

Bonjour a toutes et a tous.

Voilà j'ai des petites questions a vous posez.

Tout ce passe via un dialogue sur un pnj.

1°/ comme faire pour que le pnj donne une item DE SONT inventaire ( donc qu'il possède )

2°/ comme faire pour que la ligne de dialogue qui donne cette item disparaisse si l'item n'est plus dans sont inventaire ( et revienne quant le joueur lui redonne).

Si une personne peut m'expliquer, d'avance merci.

Patoche.
Dernière édition par P.Patoche le 05/07/2006 20:50:45; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 05/07/2006 11:26:03 Sujet du message :

Salut !

Le plus simple à mon avis, c'est de le faire avec l'aide de base du jeu.

Sur la phrase :

- Biensur tenez mon objet si présssssssieux.


En conditions, tu regardes si le joueur a bien l'objet dans son inventaire. (tu peux faire ça par l'aide de base). Au lieu de mettre le "GetPCSpeaker()" tu le changeras par OBJECT_SELF.
Comme ça, ça vérifiera l'inventaire du PNJ et non du joueur. Wink

En action tu peux mettre ça :

NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.



Si ça ne marche pas, il faudra créer l'objet sur le joueur et le détruire sur le PNJ.

Bonne journée.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 05/07/2006 12:39:05 Sujet du message :

Merci bien a toi, donc voila la condition fonctionne bien.

NWScript :
#include "nw_i0_tool"

int StartingConditional()
{


    if(!HasItem(OBJECT_SELF, "ClefChambre1"))
        return FALSE;
    return TRUE;
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Mais avec ce que tu ma donner en AC l'item (ici une clef) n'est pas donner

NWScript :
void main()
{
object oPC = GetPCSpeaker();
object oItem = GetObjectByTag("ClefChambre1");
AssignCommand(oPC, ActionTakeItem(oItem, OBJECT_SELF));
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Encore merci pour les réponces

Patoche;
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 05/07/2006 13:03:50 Sujet du message :

Comme je te l'ai dis, si ça ne fonctionne pas ainsi, il faut créer l'objet sur le PC et le détruire sur le PNJ. Smile


Tu le crées avec un CreateItemonObject() et tu le détruits avec un DestroyObject().
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 05/07/2006 13:09:53 Sujet du message :

Désoler mais la je voie pas ou tu veus en venir ??Sad Sad

(Edit)Arff si voila j'ai trouver,

NWScript :
void main()
{
   
    CreateItemOnObject("clefchambre1", GetPCSpeaker(), 1);


    // Prendre de l'or au joueur
    TakeGoldFromCreature(150, GetPCSpeaker(), TRUE);

    // Enlever la clef de l'inventaire du pnj
    object oItemToTake;
    oItemToTake = GetItemPossessedBy(OBJECT_SELF, "ClefChambre1");
    if(GetIsObjectValid(oItemToTake) != 0)
        DestroyObject(oItemToTake);
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Donc on peut pas donner directement une item de l'inventaire d'un pnj ?? sans passer par sa ??

Patoche.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 05/07/2006 15:02:50 Sujet du message :

non tu ne peux pas, enfin je crois pas a part si tu fait un marchand.... mais cette solution semble bonne en tout cas, par contre je te conseil de rajouter un condition pour qu'il vérifie si le joueur possède assez d'or pour payer, sinon le script là tel quel va créer la clé ds l'inventaire du joueur qu'il ait assez ou pas en or...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 05/07/2006 15:35:36 Sujet du message :

Bon c'est encore moi avec mes soucis de Conditon et qui trouve pas comment faire (la je désespere),
voici donc se qui vas pas

NWScript :
#include "nw_i0_tool"

int StartingConditional()
{

    if(!HasItem(GetPCSpeaker(), "ClefChambre1"))
        return FALSE;

    if(!HasItem(GetPCSpeaker(), "ClefChambre2"))
        return FALSE;

    if(!HasItem(GetPCSpeaker(), "ClefChambre3"))
        return FALSE;

    if(!HasItem(GetPCSpeaker(), "ClefChambre4"))
        return FALSE;

    if(!HasItem(GetPCSpeaker(), "ClefChambre5"))
        return FALSE;

    if(!HasItem(GetPCSpeaker(), "ClefChambre6"))
        return FALSE;

    if(!HasItem(GetPCSpeaker(), "ClefChambre7"))
        return FALSE;

    if(!HasItem(GetPCSpeaker(), "ClefChambre8"))
        return FALSE;
    return TRUE;
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


je voudrais que se soit UNE des clefs mais pas tout donc soit la clef 1 OU la clef 2 OU la clef 3 et a suivre ......

Merci.

Patoche.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 05/07/2006 16:02:20 Sujet du message :

et c'est quoi le but (action conséquente??).... en faite que veux tu que cette condition te donne exactement?

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 05/07/2006 16:54:10 Sujet du message :

C'est une condition pour ouvrir une ligne de dialogue, pour sa il faut que tu es une des 8 clefs dans ton inventaire.
(que tu es la 1 ou la 2 ou la 3 et a suivre)

Patoche.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 05/07/2006 17:17:42 Sujet du message :

oki bah là c'est bon non?? la il test toute les clés... le truc en faite à savoir c'est à quoi ça doit aboutir? Est ce que en fonction de la clé que possède le joueur il y a un truc spéciale ou non???

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 05/07/2006 17:27:23 Sujet du message :

non la il me faut TOUTE les clefs et je voudrais que se sois n'importe la quelle de ses clefs, que tu es la 1 ou la 2 ou la 3 ou la 4 ou la 5 ou la 6 ou la 7 ou la 8 le dialogue se lance.

Patoche.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 05/07/2006 17:50:24 Sujet du message :

Ha oki j'avais pas pigé^^.... bon essaie ça:


NWScript :
#include "nw_i0_tool"

int StartingConditional()
{

    if((!HasItem(GetPCSpeaker(), "ClefChambre1"))||(!HasItem(GetPCSpeaker(), "ClefChambre2"))||(!HasItem(GetPCSpeaker(), "ClefChambre3"))||(!HasItem(GetPCSpeaker(), "ClefChambre4"))||(!HasItem(GetPCSpeaker(), "ClefChambre5"))||(!HasItem(GetPCSpeaker(), "ClefChambre6"))||(!HasItem(GetPCSpeaker(), "ClefChambre7"))||(!HasItem(GetPCSpeaker(), "ClefChambre8")))
        return FALSE;

    return TRUE;
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


je sais pas si ça marche j'ai pas testé mais dis moi si ça fonctionne...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
P.Patoche
Chevalier
Inscrit le: 14 Avr 2006
Messages: 70
Localisation: France 77
Répondre en citant
Posté le : 05/07/2006 18:03:38 Sujet du message :

Merci bien mais non la tu as fait la meme chose que moi faut toutes les clefs, mais tu ma donner la base et j'ai fait la modif et sa marche, voici le script.

NWScript :
#include "nw_i0_tool"

int StartingConditional()
{

    if((!HasItem(GetPCSpeaker(), "ClefChambre1"))
    &&(!HasItem(GetPCSpeaker(), "ClefChambre2"))
    &&(!HasItem(GetPCSpeaker(), "ClefChambre3"))
    &&(!HasItem(GetPCSpeaker(), "ClefChambre4"))
    &&(!HasItem(GetPCSpeaker(), "ClefChambre5"))
    &&(!HasItem(GetPCSpeaker(), "ClefChambre6"))
    &&(!HasItem(GetPCSpeaker(), "ClefChambre7"))
    &&(!HasItem(GetPCSpeaker(), "ClefChambre8")))
        return FALSE;

    return TRUE;
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Et encore merci pour tout.

Patoche.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 05/07/2006 18:21:15 Sujet du message :

bah de rien^^ mais c'est bizzard ça, && veut dire "et", alors que || veut dire "ou"... donc je pige pas mais tant que ça marche c'est le principal^^!!!!

A++

Viduc

P.S tu peux éditer ton post pour mettre [Résolut] merci:razz:Razz
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 06/07/2006 00:35:40 Sujet du message :

J'ai un peu de mal à suivre, mais voici ce que tu dois faire pour UN objet (après si c'est plusieurs, c'est autre chose) :


NWScript :
#include "nw_i0_tool"

int StartingConditional()
{

    if(HasItem(OBJECT_SELF, "ClefChambre1"))
        return TRUE;

    return FALSE;


}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.



Si c'est plusieurs c'est ceci :


NWScript :
#include "nw_i0_tool"

int StartingConditional()
{

    if(HasItem(OBJECT_SELF, "ClefChambre1")
      || HasItem(OBJECT_SELF, "ClefChambre2")
      || HasItem(OBJECT_SELF, "ClefChambre3")
      || HasItem(OBJECT_SELF, "ClefChambre4")
      || HasItem(OBJECT_SELF, "ClefChambre5")
      || HasItem(OBJECT_SELF, "ClefChambre6"))

        return TRUE;

    return FALSE;


}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.




Pour l'action conséquente pour UN objet :


NWScript :
void main()
{
object oPC = GetPCSpeaker();
object oItem1 = GetObjectByTag("ClefChambre1");


CreateItemOnObject("clefchambre1", oPC);
DestroyObject(oItem1);
//AssignCommand(oPC, ActionTakeItem(oItem1, OBJECT_SELF));
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
 
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 57.078ms