Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Donner un objet de l'inventaire
Donner un objet de l'inventaire
Par Cassin le 3/7/2002 à 19:57:25 (#1752590)
pour mon module, un PNJ à besoin d'un diamant. Ce diamant, c'est un autre PNJ qui l'a.
- On peut lui demander gentiment, auquel cas il nous le donne (oui, il est gentil ;) )
- On peut y aller bourrin et buter le PNJ pour le récupérer dans son inventaire
- Ou alors le lui voler, toujours dans son inventaire.
Le hic : si le joueur demande le diamant au PJ et qu'il le tue ou le vole APRES, il retrouve un deuxième diamant dans l'inventaire du PNJ !
Comment faire pour qu'une fois le diamant donné, il disparaisse de l'inventaire ? Et, inversement, comment ne pas le donner s'il a déjà été volé ?
J'entrevois 2 façons de faire :
AVANT de donner le diamant (avec le Wizard de "Action Taken" et "Give Rewards"), vérifier qu'il est encore dans l'inventaire et l'effacer ensuite
OU s'il y avait une fonction qui permette de donner le diamant spécifiquement dans l'inventaire, et pas un autre !
alors
Par Shelzard le 3/7/2002 à 20:40:59 (#1752894)
CreateItemOnObject("tag_du_diamant", GetPCSpeaker(), 1);
Tu change cette ligne par :
ActionGiveItem("tag_du_diamant_de_l_inventaire", GetPCSpeaker());
Voilà, ça donnera l'objet de son inventaire, pense à faire une condition avant (pour voir si il a bien le diamant), et apres pour vérif si le diamant est bien valide.
Shelzard
Re: alors
Par Lumina le 3/7/2002 à 21:09:58 (#1753060)
Provient du message de Shelzard
Non, ta syntaxe est incorrecte, mais c'était presque ça :). Il faut un objet comme argument, pas un tag. Pour retrouver l'objet, on fait ainsi :
ActionGiveItem("tag_du_diamant_de_l_inventaire", GetPCSpeaker());
object oDiamant = GetFirstItemInInventory(OBJECT_SELF);
while (GetIsObjectValid(oDiamant) && (GetTag(oDiamant) != "sTag_du_diamant"))
oDiamant == GetNextItemInInventory(OBJECT_SELF);
if (GetIsObjectValid(oDiamant))
ActionGiveItem(oDiamant, GetPCSpeaker());
else
ActionSpeakString("Malheur ! Je n'ai plus le diamant !");
Par Cassin le 3/7/2002 à 23:16:32 (#1753548)
Je testerais ça dès demain !
JOL Archives 1.0.1
@ JOL / JeuxOnLine