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 16:08:13


  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 : 28/01/2006 16:50:00 Sujet du message : Porte voleuse…

Bonjour! Je cherche une façon de faire en sorte que... lorsque qu'un joueur entre par une certaine porte, toute les pierres de rappel de son inventaire lui soient retirées. Est-ce possible ? Merci d'avance..
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Darkavanger
Grand Chevalier
Inscrit le: 15 Déc 2004
Messages: 114
Répondre en citant
Posté le : 28/01/2006 17:08:03 Sujet du message :

Heu par une porte, je ne vois pas trop, vaut mieu attendre les as du script, mais je peux te donner un moyen détourné.

Si ta porte entre dans une nouvelle zone, alors, tu vas dans les propriétés de la zone, et dans le OnEnter, tu mets le script de suppression.

Sinon, tu utilises un déclencheur générique, situé juste derrière la porte.

Maintenant, peut être tu veux le script qui va avec ? Là j'ai pas trop le temps, je ne suis pas chez moi, mais j'essayerai de te faire ça pour ce soir.

A +
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Le Blaireau
Chevalier
Inscrit le: 17 Jan 2005
Messages: 71
Répondre en citant
Posté le : 28/01/2006 17:33:18 Sujet du message :

un déclencheur générique ...
Humm... ca pourrait etres bien... mais je fait comment ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Elandil2
Chevalier
Inscrit le: 14 Fév 2005
Messages: 97
Localisation: sur mon ordi loir-et-cher
Répondre en citant
Posté le : 28/01/2006 19:33:45 Sujet du message :

Dans le OnEnter soit de la zone, soit du déclencheur :

NWScript :
void main()
{
string sTag = "***";// remplacer par le tag de la pierre de rappel
object oPC = GetPCSpeaker();
object oNPC = OBJECT_SELF;
object oObj = GetItemPossessedBy(oPC,sTag);
object oObject = GetFirstItemInInventory(oPC);

while(GetTag(oObject)==sTag)
    {
    DestroyObject(oObject,0.1);
    oObject = 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.

_________________
Rejoignez nous sur notre forum
Aelor, module en construction
Vive Gimli

 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Darkavanger
Grand Chevalier
Inscrit le: 15 Déc 2004
Messages: 114
Répondre en citant
Posté le : 28/01/2006 19:47:06 Sujet du message :

Arf, pris de vitesse...

Bon je met quand même mon script, me dit qu'il serivra peut être Razz...

NWScript :
void main()
{
object oPC = GetEnteringObject();
object oItem = GetFirstItemInInventory(oPC);
int iNum = 0;

while (GetIsObjectValid(oItem))
      {
      string sItem = GetTag(oItem);
      if (sItem == "tag_pierre_rappel" && iNum < 500)
          {
          DestroyObject(oItem);
          iNum ++;
          }
      oItem = 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.


Vilà, désolé de ne pas avoir été plus rapide, à mettre dans le OnEnter d'un déclencheur.

A +

Edit : Elandil2, je pense que ton script ne va pas convenir, dans un dialogue il pourrai,
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.


cette fonction renvoi au dernier PJ ayant parlé au PnJ.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 28/01/2006 20:18:40 Sujet du message : Juste histoire de poster ^^

Oui ^^

Il faudrait donc le remplacer par :

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.


(je pense que tu as deja trouve dans le script de Darkavanger, donc c'est juste histoire de poster ^^)
_________________
Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Elandil2
Chevalier
Inscrit le: 14 Fév 2005
Messages: 97
Localisation: sur mon ordi loir-et-cher
Répondre en citant
Posté le : 28/01/2006 21:49:05 Sujet du message :

Oups, erreur d'habitude ... dsl
_________________
Rejoignez nous sur notre forum
Aelor, module en construction
Vive Gimli

 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Le Blaireau
Chevalier
Inscrit le: 17 Jan 2005
Messages: 71
Répondre en citant
Posté le : 29/01/2006 03:20:40 Sujet du message :

Non, y a rien qui se passe....
Dernière édition par Le Blaireau le 29/01/2006 03:43:42; édité 1 fois
 
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 : 29/01/2006 03:29:03 Sujet du message :

NWScript :

void main()
{
  object oPC = GetEnteringObject();
  if (!GetIsPC(oPC)) return;
  object oItem = GetFirstItemInInventory(oPC);
  string sTag;
  while (GetIsObjectValid(oItem))
  {
    sTag = GetTag(oItem);
    if (sTag == "TAG1" || sTag == "TAG2" || sTag == "TAG3" || sTag == "TAG4")
    {
        SetPlotFlag(oItem,FALSE); //je sais jamais si c'est necessaire ou bien
        DestroyObject(oItem);
    }
    oItem = 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.


Ca devrait marcher comme ça (enfin si tu remplace les tags Smile )
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Le Blaireau
Chevalier
Inscrit le: 17 Jan 2005
Messages: 71
Répondre en citant
Posté le : 29/01/2006 03:50:15 Sujet du message :

non Crying or Very sad y a rien qui ce passe...
 
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 : 29/01/2006 03:51:11 Sujet du message :

Tu l'as mis où le script ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Darkavanger
Grand Chevalier
Inscrit le: 15 Déc 2004
Messages: 114
Répondre en citant
Posté le : 29/01/2006 10:19:36 Sujet du message :

bizzare, en testant mon script, et en mettant à la pierre de rappel, le tag "tag", il faut donc modifier:

NWScript :
if (sItem == "tag_pierre_rappel" && iNum < 500)
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

NWScript :
if (sItem == "tag" && iNum < 500)
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.


En faisant ces modifications, ça marche au poil, screen à l'appui:






Tu l'as mis où ce script ? Tu as bien modifié le tag de la pierre ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 29/01/2006 13:34:53 Sujet du message :

>Darkavanger : Pourquoi le iNum ??
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Darkavanger
Grand Chevalier
Inscrit le: 15 Déc 2004
Messages: 114
Répondre en citant
Posté le : 29/01/2006 15:10:30 Sujet du message :

Au cas où le joueur est plusieurs pierre de rappel sur lui, elles seront toutes détruites.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 29/01/2006 15:20:35 Sujet du message :

Oki. (Mais c'est pas la peine dans ton script, il fait de toute façon tout l'inventaire, donc chaque fois que le tag == "Tag" l'objet est détruit, enfin ce qui compte c'est que ça marche hein ? Wink )
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Darkavanger
Grand Chevalier
Inscrit le: 15 Déc 2004
Messages: 114
Répondre en citant
Posté le : 29/01/2006 16:57:18 Sujet du message :

Tu as tout à fait raison Embarassed
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Le Blaireau
Chevalier
Inscrit le: 17 Jan 2005
Messages: 71
Répondre en citant
Posté le : 30/01/2006 21:47:28 Sujet du message :

Impect... ca fonctionne parfaitement.... Merci mille-fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ailesnoires
Grand Chevalier
Inscrit le: 21 Oct 2004
Messages: 110
Localisation: Vendée
Répondre en citant
Posté le : 31/01/2006 22:29:26 Sujet du message :

Mais non, il faut laisser le iNum, c'est pour sortir de la boucle
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 01/02/2006 13:20:11 Sujet du message :


Ailesnoires a écrit :
Mais non, il faut laisser le iNum, c'est pour sortir de la boucle
Faux, il utilise un test avec oItem != OBJECT_INVALID, il parcour tout l'inventaire jusqu'à arriver à la fin ce qui la fini....
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger 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.587ms