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 15:56:32
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 |
P.Patoche Chevalier Messages: 70 Localisation: France 77 |
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 | |
Djezebel Héros Messages: 252 |
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. En action tu peux mettre ça : NWScript :
void main() { object oPC = GetPCSpeaker(); object oItem = GetObjectByTag(" "); AssignCommand(oPC, ActionTakeItem(oItem, OBJECT_SELF)); } 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 | |
P.Patoche Chevalier Messages: 70 Localisation: France 77 |
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; } 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)); } Encore merci pour les réponces Patoche; |
Revenir en haut | |
Djezebel Héros Messages: 252 |
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.
Tu le crées avec un CreateItemonObject() et tu le détruits avec un DestroyObject(). |
Revenir en haut | |
P.Patoche Chevalier Messages: 70 Localisation: France 77 |
Désoler mais la je voie pas ou tu veus en venir ??
(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); } Donc on peut pas donner directement une item de l'inventaire d'un pnj ?? sans passer par sa ?? Patoche. |
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
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 | |
P.Patoche Chevalier Messages: 70 Localisation: France 77 |
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; } 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 | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
P.Patoche Chevalier Messages: 70 Localisation: France 77 |
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 | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
P.Patoche Chevalier Messages: 70 Localisation: France 77 |
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 | |
Viduc de Papironda Grand Chevalier Messages: 119 |
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; } je sais pas si ça marche j'ai pas testé mais dis moi si ça fonctionne... Viduc _________________ |
Revenir en haut | |
P.Patoche Chevalier Messages: 70 Localisation: France 77 |
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; } Et encore merci pour tout. Patoche. |
Revenir en haut | |
Viduc de Papironda Grand Chevalier Messages: 119 |
|
Revenir en haut | |
Djezebel Héros Messages: 252 |
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; } 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; } 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)); } |
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