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 16:11:01
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 |
Eldorane Héros Messages: 298 Localisation: Moselle |
Etant toujours aussi nulle en script, je m'en remet une fois de plus à vous :
J'ai trouvé ce script : NWScript :
// Put this script in the module's onActivateItem event void main() { // Image Map vfx test string sItem = GetTag(GetItemActivated()); if (sItem == "item_01") { ExecuteScript("VFX_effect01", OBJECT_SELF); } } il permet de lancer le scipt VFX_effect01 lorsqu'on utilise un item. Mais ce script est à placer dans le onActivateItem du module. Est-il possible de lancer un script à partir d'un item sans passer par le onActivateItem ? Autre chose : je compte réaliser plusieurs items lançant des scripts différents. Comment faire ? _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | |
Sam Lam Grand Chevalier Messages: 126 |
Sans étudier trop la question, je me dis que la façon la plus simple (mais peut-être la moins élégante), c'est de faire, dans le onActivateItem, une boucle de test sur le tag ou le ResRef de l'item activé pour savoir quel script exécuté. Le problème, c'est que si tu as beaucoup d'objets de ce genre, ça risque de devenir rapidement illisible et qu'en prime le temps de réaction ne soit pas optimal.
_________________ Nécromancien du Forum Niv.3 dès le premier post. |
Revenir en haut | |
PinMaster Ecuyer Messages: 49 Localisation: Non loin de Marseille... |
Que répondre... TAGBASE_SCRIPTING
Cette option est très utile car on associe le Tag d'un Item (ou plusieurs Item de même tag) à un script ayant le même nom que le Tag. Elle est activé par défaut depuis HOTU, le module ayant été conçus avant doivent avoir une ligne d'initialisation dans le OnModuleLoad. Bref, je ne vais pas tout t'expliquer sur le sujet car il existe sur JoL-Masako. Alors voici le lien : A propos du Enable Tagbase Tu verras c'est très utile. _________________ Module en développement : Pandorn Nouvel Age Système de Pandorn diffusé : Cliquez-ici |
Revenir en haut | |
Eldorane Héros Messages: 298 Localisation: Moselle |
Citation : Le problème, c'est que si tu as beaucoup d'objets de ce genre, ça risque de devenir rapidement illisible et qu'en prime le temps de réaction ne soit pas optimal. Non, il n'y aura que 4 ou 5 objets de ce type
Citation : Cette option est très utile car on associe le Tag d'un Item (ou plusieurs Item de même tag) à un script ayant le même nom que le Tag. Elle est activé par défaut depuis HOTU, le module ayant été conçus avant doivent avoir une ligne d'initialisation dans le OnModuleLoad. Effectivement j'ai écrasé ce script avec le mien, ne sachant à quoi il sert... Donc si je comprends bien, tout est prévue au départ ! Inutile de rajouter quoi que ce soit, il suffit d'associer un script portant le tag de l'item est le tour est joué !?_________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | |
Eldorane Héros Messages: 298 Localisation: Moselle |
mais ça marche pas...
_________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | |
PinMaster Ecuyer Messages: 49 Localisation: Non loin de Marseille... |
Oui c'est tout à fait ça pour faire simple, mais saches qu'il faud suivre une certaine structure pour le script en plus de la correcpondance NomScript <-> TagItem
Dont voici la structure de base : NWScript :
#include "x2_inc_switches" void main() { int nEvent = GetUserDefinedItemEventNumber(); object oPC; object oItem; object oSpellOrigin; object oSpellTarget; int iSpell; switch (nEvent) { case X2_ITEM_EVENT_ONHITCAST: { oItem = GetSpellCastItem(); oPC = OBJECT_SELF; oSpellOrigin = OBJECT_SELF ; oSpellTarget = GetSpellTargetObject(); // Mettre le code correspondant. break; } case X2_ITEM_EVENT_ACTIVATE: // Sur Activation de l'item { oPC = GetItemActivator(); oItem = GetItemActivated(); // Mettre le code correspondant. break; } case X2_ITEM_EVENT_EQUIP: // Sur Equipement { oPC = GetPCItemLastEquippedBy(); oItem = GetPCItemLastEquipped(); // Mettre le code correspondant. break; } case X2_ITEM_EVENT_UNEQUIP: { oPC = GetPCItemLastUnequippedBy(); oItem = GetPCItemLastUnequipped(); // Mettre le code correspondant. break; } case X2_ITEM_EVENT_ACQUIRE: { oPC = GetModuleItemAcquiredBy(); oItem = GetModuleItemAcquired(); // Mettre le code correspondant. break; } case X2_ITEM_EVENT_UNACQUIRE: { oPC = GetModuleItemLostBy(); oItem = GetModuleItemLost(); // Mettre le code correspondant. break; } case X2_ITEM_EVENT_SPELLCAST_AT: // Sur lancer de sort, il me semble { oPC = OBJECT_SELF; oItem = GetSpellTargetObject(); iSpell = GetSpellId(); // Mettre le code correspondant. break; } } } Voilà en gros la structure, comme tu peux le constater on peut gérer plusieurs type d'évènement sur un Item. En règle général on a pas besoin de tous les cas... donc faudra supprimer les "case" de trop. _________________ Module en développement : Pandorn Nouvel Age Système de Pandorn diffusé : Cliquez-ici |
Revenir en haut | |
Eldorane Héros Messages: 298 Localisation: Moselle |
Qu'est ce que tu entends par "Mettre le code correspondant" ?
Je suis asser nulle en script et là je vois vraiment pas... _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Bah par là je pense qu'il veut dire met le code correspondant ^^
Par exemple tu vas pas mettre le même script dans le OnAcquire/OnUnacquireItem, dans le OnEquip/UnequipItem, etc Chaques évènements ne servent pas à la même chose donc il faut le code approprier. _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | |
PinMaster Ecuyer Messages: 49 Localisation: Non loin de Marseille... |
OK... et bien comme l'a confirmé Ivellios.
Bref pour ton cas, une version simplifiée : NWScript : #include "x2_inc_switches" void main() { int nEvent = GetUserDefinedItemEventNumber(); if (nEvent == X2_ITEM_EVENT_ACTIVATE) { object oPC = GetItemActivator(); object oItem = GetItemActivated(); ExecuteScript("VFX_effect01", OBJECT_SELF); } } _________________ Module en développement : Pandorn Nouvel Age Système de Pandorn diffusé : Cliquez-ici |
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