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 04:00:57


  Page 2 sur 2 ¤ Aller à la page Précédente  1, 2

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 13/02/2005 20:44:34 Sujet du message :

C'est un fait... mais là vu qu'on test la même variable, la condition 2 implique forcément que la condition 1 est fausse.... Mais bon dans certains cas il est clair que le else ou else if est très utile.

Par exemple

Si condition 1 alors fait action1
Dans tous les autres cas faire action 2

Mais là on touche aussi des habitudes de programmation....
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Devilon Bersek
Ecuyer
Inscrit le: 13 Sep 2004
Messages: 59
Localisation: Certainement dans une forge...sinon a Beaune
Répondre en citant
Posté le : 16/02/2005 00:02:34 Sujet du message :

bon, certains petits malins ont trouvé un exploit a propos de ce genre de script Very Happy

en fait, en mettant de la viandes dans la marmite, on referme, le script se lance...
vu que c'est temporisé, on ouvre pour voir si c'est cuit, on referme et du coup le script se relance, et donc certains joueurs ouvrent et referment plusieurs fois pour "multiplier les pains" Wink
je voudrais limiter cela, mais je vois pas comment mettre une restriction, si qu'lqu'un peut aider...car je vois pas du tout par ou commencer...je voudrais pas que ça limite le joueur a une seule seance de cuisine par reboot ^^

bien, merci d'avance a celui qui pourrat m'aider, sinon c'est pas grave, on surveillera, et on punira les "faux jesus" lol
_________________
Rien n'est grave dans la vie...sauf de la perdre...
Chroniques des Royaumes Perdus :
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 16/02/2005 10:09:33 Sujet du message :

Essaye comme ca :

NWScript :
void CreateItemOnObject2( string sResRef, object oTarget )
{
  CreateItemOnObject( sResRef, oTarget );
}



void main()
{
  int nCount = 0;
  string sBarre1 = "x2_it_cmat_iron"; //ResRef de l'objet produit
  string sBarre2 = "x2_it_cmat_mith";
  string sBarre3 = "x2_it_cmat_adam";
  string sMinerai1 = "ATS_R_ORE1_N_IRO";
  string sMinerai2 = "ATS_R_ORE1_N_MIT";
  string sMinerai3 = "ATS_R_ORE1_N_ADA";
  object oCreateur = OBJECT_SELF;
  object oItem = GetFirstItemInInventory( oCreateur );
  int nLoop;

  if ( GetLocalInt( OBJECT_SELF, "InUse" ) == 1 )
    return;

  SetLocalInt( OBJECT_SELF, "InUse", 1 );
  DelayCommand( 2.1, SetLocalInt( OBJECT_SELF, "InUse", 0 ) );

  while ( GetIsObjectValid( oItem ) )
  {
    if ( ( GetTag( oItem ) == sMinerai1 ))
    {
      DestroyObject( oItem, 2.0 );
      DelayCommand( 2.0, CreateItemOnObject2( sBarre1, oCreateur ));
    }
    else if ( ( GetTag( oItem ) == sMinerai2 ))
    {
      DestroyObject( oItem, 2.0 );
      DelayCommand( 2.0, CreateItemOnObject2( sBarre2, oCreateur ));
    }
    else if ( ( GetTag( oItem ) == sMinerai3 ))
    {
      DestroyObject( oItem, 2.0 );
      DelayCommand( 2.0, CreateItemOnObject2( sBarre3, oCreateur ));
    }
    oItem = GetNextItemInInventory( oCreateur );
  }
}
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
 
Devilon Bersek
Ecuyer
Inscrit le: 13 Sep 2004
Messages: 59
Localisation: Certainement dans une forge...sinon a Beaune
Répondre en citant
Posté le : 16/02/2005 13:05:55 Sujet du message :

ok, merci, je vais essayer ça...par contre, le DelayCommand du SetLocalInt est a 2.1 parceque les autres sont a 2 ? Si mes delais sont a 45 je dois le changer a 45.1 ?
voilà, encore merci a toi Wink grace a toi on a un systeme d'artisanat, certes simpliste, mais ça releve un peu l'interet ^^
_________________
Rien n'est grave dans la vie...sauf de la perdre...
Chroniques des Royaumes Perdus :
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 16/02/2005 14:04:09 Sujet du message :

ouais, c'est mieux.
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Devilon Bersek
Ecuyer
Inscrit le: 13 Sep 2004
Messages: 59
Localisation: Certainement dans une forge...sinon a Beaune
Répondre en citant
Posté le : 16/02/2005 14:31:45 Sujet du message :

d'accord, merci je vais essayer ça

[Edit] merci beaucoup, ça marche impec
_________________
Rien n'est grave dans la vie...sauf de la perdre...
Chroniques des Royaumes Perdus :
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
omega
Grand Chevalier
Inscrit le: 09 Jan 2004
Messages: 116
Répondre en citant
Posté le : 01/03/2005 16:23:41 Sujet du message :

salut a tous !

Voila mon prob :

J'ai prit le script plus haut cité, que voila, un peu modifier :
NWScript :
void main()
{
  int nCount = 0;
  string sRation = "ZEP_BABYHOLDABLE"; //resref de l'objet produit
  string sViande1 = "ZEP_HOLYSYMBOL";
  string sViande2 = "ZEP_FIGURE1";

  object oCreateur = OBJECT_SELF;
  object oItem = GetFirstItemInInventory( oCreateur );
  int nLoop;

  while ( GetIsObjectValid( oItem ) )
  {
    if ( ( GetTag( oItem ) == sViande1 ) || ( GetTag( oItem ) == sViande2 ))
    {
      DestroyObject( oItem, 0.0 );
      nCount++;
    }
    oItem = GetNextItemInInventory( oCreateur );
  }

  for( nLoop=0; nLoop<nCount; nLoop++ )
  {
    CreateItemOnObject( sRation, oCreateur );
  }
}
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 voila, ca marche pour du 1 pour 1, or, je voudrais que le script reconnaisse que je met plusieurs objets, donc, je l'ai modifier comme ca :
NWScript :
void main()
{
  int nCount = 0;
  string sRation = "ZEP_BABYHOLDABLE"; //resref de l'objet produit
  string sViande1 = "ZEP_HOLYSYMBOL";
  string sViande2 = "ZEP_FIGURE1";

  object oCreateur = OBJECT_SELF;
  object oItem = GetFirstItemInInventory( oCreateur );
  int nLoop;

  while ( GetIsObjectValid( oItem ) )
  {
    if ( ( GetTag( oItem ) == sViande1 ) && ( GetTag( oItem ) == sViande2 ))
    {
      DestroyObject( oItem, 0.0 );
      nCount++;
    }
    oItem = GetNextItemInInventory( oCreateur );
  }

  for( nLoop=0; nLoop<nCount; nLoop++ )
  {
    CreateItemOnObject( sRation, oCreateur );
  }
}
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 bien sur, ca marche pas !

Regardez pas les tag des objets, c'est juste des tests sur un mod test justement.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 01/03/2005 17:32:12 Sujet du message :

C'est clair que ça peut pas marcher.

<mode "traduction" = on>

(GetTag( oItem ) == sViande1 ) && ( GetTag( oItem ) == sViande2)

Traduction :
si l'objet à pour tag sViande1 ET sViande1 alors...


Je vois mal comment un objet pourrait avoir deux tags différents en même temps! lol!
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
omega
Grand Chevalier
Inscrit le: 09 Jan 2004
Messages: 116
Répondre en citant
Posté le : 02/03/2005 01:10:56 Sujet du message :

alors comment je fais, y a pas GetsecondItemInInventory ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Léviathan
Grand Sage du Conseil
Inscrit le: 11 Mar 2003
Messages: 671
Localisation: Sigil
Répondre en citant
Posté le : 02/03/2005 02:10:39 Sujet du message :

EDIT : j'efface mon message car j'avais mal compris ton problème et j'avais d'abord répondu à côté, toutes mes excuses pour le pourrissage de sujet que cela engendre.
_________________
Forum Planescape NWN
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
omega
Grand Chevalier
Inscrit le: 09 Jan 2004
Messages: 116
Répondre en citant
Posté le : 02/03/2005 12:55:20 Sujet du message :

bin, j'ai trouve la reponse tout seul, je la met pour ceux que ca interesse :

NWScript :
void main()
{
  string sRation = "ZEP_BABYHOLDABLE"; //resref de l'objet produit
  string sViande1 = "ZEP_HOLYSYMBOL";
  string sViande2 = "ZEP_FIGURE1";

  object oCreateur = OBJECT_SELF;
  object oItem = GetFirstItemInInventory( oCreateur );
  object oItem2 = GetNextItemInInventory( oCreateur );

      if ( ( GetTag( oItem ) == sViande1 ) && ( GetTag( oItem2 ) == sViande2 ))
    {
      DestroyObject( oItem, 0.0 );
      DestroyObject( oItem2, 0.0 );
      CreateItemOnObject( sRation, oCreateur );
    }
  }
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
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 02/03/2005 12:58:58 Sujet du message :

D'après ce que tu as mis, il y a peu de chances que ton script marche a tout les coups.
En effet, il faut, pour que ton script marche, que la viande1 soit le premier objet de l'inventaire du pj, et la viande2 le deuxieme. Or, cela arrive très rarement...

Edit : voila un script qui devrait marcher ( non testé )

NWScript :
void main()
{
  string sRation = "ZEP_BABYHOLDABLE"; //resref de l'objet produit
  string sViande1 = "ZEP_HOLYSYMBOL";
  string sViande2 = "ZEP_FIGURE1";

  object oCreateur = OBJECT_SELF;
  object oItem = GetItemPossessedBy( oCreateur, sViande1 );
  object oItem2 = GetItemPossessedBy( oCreateur, sViande2 );

      if ( ( oItem != OBJECT_INVALID ) && ( oItem2 != OBJECT_INVALID ))
    {
      DestroyObject( oItem, 0.0 );
      DestroyObject( oItem2, 0.0 );
      CreateItemOnObject( sRation, oCreateur );
    }
}
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
 
omega
Grand Chevalier
Inscrit le: 09 Jan 2004
Messages: 116
Répondre en citant
Posté le : 03/03/2005 15:25:22 Sujet du message :

En fait, je me suis rendu compte qu'il prennait l'inventaire du conteneur, et pas du joueur, et que en fait, quelque soit l'ordre où je mettais les objets, il la faisait quand meme la transphormation.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 03/03/2005 18:58:49 Sujet du message :

En effet, mais as-tu essayé en mettant d'autres objets en plus de ceux qui conviennent? Je ne suis pas sûr que cela marche...
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
omega
Grand Chevalier
Inscrit le: 09 Jan 2004
Messages: 116
Répondre en citant
Posté le : 04/03/2005 11:53:26 Sujet du message :

?? Ben j'espere bien que ca marche pas si on met d'autres objets, c'est justement le but de l'artisanat du module, les recettes ne sont pas connues des joueurs, c'est a eux de trouver des livres dessus, ou de parler avec les autres joueurs.Embarassed
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 04/03/2005 14:37:09 Sujet du message :

en effet, desolé EmbarassedLaughing
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 2 sur 2 ¤ Aller à la page Précédente  1, 2


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.658ms