La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 05/04/2025 20:13:23


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Le Blaireau
Chevalier
Inscrit le: 17 Jan 2005
Messages: 71
Répondre en citant
Posté le : 17/11/2005 16:40:59 Sujet du message : potion qui s'accumule

Bonjour a tous...
Voilà.. J'ai un petit souci. Dans mon module, j'ai crée une potion de miniaturisation qui permet d'entrée dans une zone quand le dialogue d'entré demande.. « Voulez-vous boire la potion.. »... À ce moment le joueur répond oui, et il entre dans la zone et la potion disparaît de son inventaire.... Mon problème, c'est que... si le joueur a plus d'une potion dans son inventaire, elles disparaissent toutes... Le joueur doit normalement n'en utiliser qu'une... Que faire ???
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 17/11/2005 17:31:15 Sujet du message :

Avec les fonctions GetItemStackSize() et SetItemStackSize()
si il y a 2 pots ou plus, tu fixe le nombre a nombre-1 sinon tu détruis avec destroyobject() (bicose SetItemStackSize(machin,0) marche pas, ça en laisse toujours 1).
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 17/11/2005 17:59:54 Sujet du message :

Met juste DestroyObject, pas besoin de toucher a tout le reste lol
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 17/11/2005 22:49:22 Sujet du message :

Concrètement, ça devrait fonctionner avec qque chose dans ce goût-là :

NWScript :
void main()
{
  int iStack;
  object oPC = GetPCSpeaker();
  object oPotion = GetFirstItemInInventory(oPC);
  while(GetIsObjectValid(oPotion))
  {
    if(GetTag(oPotion) == "TAG_DE_LA_POTION")
    {
      iStack = GetItemStackSize(oPotion);
      if(iStack > 1) SetItemStackSize(oPotion, iStack-1);
      else DestroyObject(oPotion);
      break;
    }
    oPotion = GetNextItemInInventory(oPC);
  }
}
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.


Par contre j'ai pas testé, faudra voir ^^
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Le Blaireau
Chevalier
Inscrit le: 17 Jan 2005
Messages: 71
Répondre en citant
Posté le : 18/11/2005 03:59:01 Sujet du message :

OK...j'ai essayé le script si haut.... mais ca fonctionne pas.... Voici celui que j'utilise qui me téléporte dans la zone en question et qui me retire mes potions de miniaturisation.... enfin toute mes potions... Mais il devrais en principe ne m'en retirer qu'une...

NWScript :
void main()
{
    object oPC = GetPCSpeaker();
    object oWP = GetObjectByTag("ma destination");
    AssignCommand(oPC, ActionJumpToObject(oWP));

    // Enlever des objets de l'inventaire du joueur
    object oItemToTake;
    oItemToTake = GetItemPossessedBy(GetPCSpeaker(), "ma potion");
    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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 18/11/2005 04:20:32 Sujet du message :

Si on ajoute le code nécessaire pour la téléportation, ça donnera ça :

NWScript :
void main()
{
  int iStack;
  object oPC = GetPCSpeaker();
  object oWP = GetObjectByTag("TAG_DESTINATION");
  object oPotion = GetFirstItemInInventory(oPC);
  while(GetIsObjectValid(oPotion))
  {
    if(GetTag(oPotion) == "TAG_DE_LA_POTION")
    {
      iStack = GetItemStackSize(oPotion);
      if(iStack > 1) SetItemStackSize(oPotion, iStack-1);
      else DestroyObject(oPotion);
      AssignCommand(oPC, ActionJumpToObject(oWP));
      break;
    }
    oPotion = GetNextItemInInventory(oPC);
  }
}
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.


...ceci étant donc à placer sur le script Action Conséquente du dialogue. J'ai toujours pas testé, mais ça devrait marcher.
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 18/11/2005 04:30:03 Sujet du message :

Je viens de tester, ça fonctionne impec'
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Le Blaireau
Chevalier
Inscrit le: 17 Jan 2005
Messages: 71
Répondre en citant
Posté le : 19/11/2005 17:24:16 Sujet du message :

ca fonctionne impect...Merci:)
 
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 50.87ms