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 20:44:58
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 |
Lisan Anthelus Chevalier Messages: 73 Localisation: Lyon (FRANCE) |
Bonjour,
je cherche à appeler un script depuis un autre script. De plus je voudrais l'appeler avec passage de paramètres. J'ai commencé à triturer Aurora mais je ne trouve pas. Je me demande maintenant si c'est possible. Merci d'avance _________________ Un cerveau... c'est fait pour agir. La pensée n'est là que pour rendre plus efficace l'action. H. Laborit |
Revenir en haut | |
Vallav Novice Messages: 12 |
salut
tu peux preciser un peu? |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Pour appeler un script à partir d'un autre il y a la fonction ExecuteScript(). Pour ce qui est de passer des paramètres, il te faut utiliser des variables locales stockées sur l'appelant par exemple.
Ex : NWScript :
void main() { if(condition) { // bloc d'instructions /* ..... */ SetLocalInt(OBJECT_SELF, "nom_de_la_variable", 1); } else { // bloc d'instructions /* ..... */ SetLocalInt(OBJECT_SELF, "autre_variable", ""); } ExecuteScript("nom_du_script"); } (exemples totalement bidons et fictifs, bien entendu) Ensuite, dans le script appelé, ici "nom_du_script", on récupère les variables pour s'en servir : NWScript : void main() { if(GetLocalInt(OBJECT_SELF, "nom_de_la_variable") == 1) { // bloc d'instructions /* ..... */ } else { // bloc d'instructions /* ..... */ string sPhrase = GetLocalString(OBJECT_SELF, "autre_variable"); } } _________________ » 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 | |
Lisan Anthelus Chevalier Messages: 73 Localisation: Lyon (FRANCE) |
|
Revenir en haut | |
Daemon Chevalier Messages: 74 |
Dans le même genre d'idée:
Supposons que l'on ai un objet de type contenant. Le pj a dans son inventaire deux objet sur lui X et Y. Est-il possible de: 1.mettre un script en "veille" donc inactif sur les objets X et Y? Petite précision, les scripts mis sur les objets sont quasi les mêmes mais avec des variables différentes. 2.Activer le script de l'objet X ou Y en le mettant dans le contenant c-a-d activer le script mis en veille par un script générale placé dans le contenant. La difficulté est ici d'avoir un script générale qui lance le script inactif que se soit l'objet X ou Y. J'espère mes propos sont claires. |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Pas tellement lol... Au lieu de préciser ta demander de façon générale, donne une description concrète, ce sera plus simple
_________________ » 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 | |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Hum, hum...
Il me semble que ton script général devrait être dans le OnClose de ton contenant. Ainsi quand il est fermé, son OnClose vérifie quel objet est déposé... et déclenche la partie de script adéquate... Du coup, un seul script.. non ? _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | |
Daemon Chevalier Messages: 74 |
Pour de plus ample informations, je suis en train de penser un nouveau système d'artisanat: Le S.A.R. (système d'artisanat par recettes)
Je m'explique: Le pj pour pouvoir crafter doit choisir la classe de prestiges artisans et choisir les donc correspondants que j'ai créer(craft armures, armes, scribe etc...) Par la suite pour crafter, il doit connaitre la "recette" de l'objet. Donc de manière concréte, comment je pense faire cela: Le pj a la recette d'une épée courte par exemple.(Je vous laisse imaginer les situations RP que cela peut engendrer vole de recettes, négociations) Donc il a un item "recette" dans son inventaire. On suppose dans l'exemple ici qu'il possède les matériaux pour crafter. 1. il met son item recette dans le contenant. le contenant, ici la forge, vérifie si le PJ possède le don correspondant ainsi que ici le marteau pour forger. Si oui il enclenche le script "mis en veille" sur l'item "recette". 3. Le script de la recette s'enclenche. Vérifie si les matériaux sont présents. Si oui, fait un jet de dés par rapport à un Jet de difficultés de l'objet à créer avec le bonus de niveau de l'artisan. A noter que les recettes générales pourront être échangées. Par contre les recettes de "prestiges" ne pourront être utilisée par que le joueur qui aura découvert la recette. |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Ah ok, mais alors, dernière précision : ton contenant, ici la forge en l'occurrence, c'est un objet appartenant au joueur (de type sac), ou c'est un plaçable utilisable inventaire ?
_________________ » 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 | |
Daemon Chevalier Messages: 74 |
finipe a écrit : Ah ok, mais alors, dernière précision : ton contenant, ici la forge en l'occurrence, c'est un objet appartenant au joueur (de type sac), ou c'est un plaçable utilisable inventaire ? Un placeable avec inventaire que l'on peut voir partout dans les systèmes d'artisanat. |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Citation : Le pj a la recette d'une épée courte par exemple. Donc il a un item "recette" dans son inventaire. On suppose dans l'exemple ici qu'il possède les matériaux pour crafter.
Pas besoin de faire des "mises en veille" comme tu dis... Alors, en gros ça peut se faire de la façon suivante :
1. Il met son item recette dans le contenant. Le contenant, ici la forge, vérifie si le PJ possède le don correspondant ainsi que ici le marteau pour forger. Si oui il enclenche le script "mis en veille" sur l'item "recette". 2. Le script de la recette s'enclenche. Vérifie si les matériaux sont présents. Si oui, fait un jet de dés par rapport à un Jet de difficultés de l'objet à créer avec le bonus de niveau de l'artisan. A noter que les recettes générales pourront être échangées. Par contre les recettes de "prestiges" ne pourront être utilisée par que le joueur qui aura découvert la recette. 1. Recette placée dans le contenant : script de vérification des matériaux, des outils, des compétences, des dons, etc. placé sur le onDisturb du plaçable. 2. Si conditions du 1. non valides, rien ne se passe. Sinon on lance le script de fabrication de la recette. On récupère le tag de l'objet recette (qui devra donc être unique), et en fonction de ce dernier, on effectue telle ou telle suite de script, par l'intermédiaire de ExecuteScript éventuellement. _________________ » 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 | |
sinquem Ecuyer Messages: 68 |
J'ai fais ce genre de chose déjà, mais ce n'est pas encore en ligne ...
J'ai pour ma part mis le script le OnActivate du module, car vieux module , mais la solution marche trés bien aussi en passant par le MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS et donc sur le contenant lui-même. La solution de l'activate est à mon sens un bon choix car elle resulte réellement d'une volonter du joueur de tenter la création. L'idée ensuite est de lister via un tableau l'ensemble des ingrédients sur l'objet Module. 1- Lors de l'activation de vérifier que les objets placés dedans font partie des composants possibles. 2- Si (1) rechercher leur numéro d'ordre dans le tableau des ingrédients. 3- Trier les numéros, et les mettres sous forme de chaine de caractere. 4- Verifier que la chaine de caractere correspond à une des recettes possibles. 5- si 4 alors créer l'objet resultant et supprimer les ingrédients si réussite ou plus vache dans tout les cas |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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