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 04:00:57
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 |
Laxam Légende vivante Messages: 425 Localisation: Lyon |
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 | |
Devilon Bersek Ecuyer Messages: 59 Localisation: Certainement dans une forge...sinon a Beaune |
bon, certains petits malins ont trouvé un exploit a propos de ce genre de script
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" 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 | |
Klemmth Seigneur Messages: 176 Localisation: france |
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 ); } } _________________ ... |
Revenir en haut | |
Devilon Bersek Ecuyer Messages: 59 Localisation: Certainement dans une forge...sinon a Beaune |
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 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 | |
Klemmth Seigneur Messages: 176 Localisation: france |
ouais, c'est mieux.
_________________ ... |
Revenir en haut | |
Devilon Bersek Ecuyer Messages: 59 Localisation: Certainement dans une forge...sinon a Beaune |
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 | |
omega Grand Chevalier Messages: 116 |
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 ); } } 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 ); } } 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 | |
kiky.le.magnifique Homme très gay Messages: 907 Localisation: Camping de la nation martienne... |
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 | |
omega Grand Chevalier Messages: 116 |
alors comment je fais, y a pas GetsecondItemInInventory ?
|
Revenir en haut | |
Léviathan Grand Sage du Conseil Messages: 671 Localisation: Sigil |
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 | |
omega Grand Chevalier Messages: 116 |
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 ); } } |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
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 ); } } _________________ ... |
Revenir en haut | |
omega Grand Chevalier Messages: 116 |
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 | |
Klemmth Seigneur Messages: 176 Localisation: france |
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 | |
omega Grand Chevalier Messages: 116 |
?? 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.
|
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
en effet, desolé
_________________ ... |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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