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 01/11/2024 03:33:39
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 |
Charly Novice Messages: 9 |
Je n'arrive pas a comprendre l'utilisation de la propriété d'item suivante :
Sort déclenché au toucher : Pouvoir unique [OnHit] et Arme intelligente A quel évènement on ratache le scripte de ces pouvoir? Comment fonctionnes ils exactement? Merci pour votre aide ! (Au passage, et tan que j'en suis à poser des questions. Il n'y aurai pas un problème avec la propriété d'arme "Propriétés de déchirure dimensionnelle" qui tue la personne qui l'utilise a tout les coups? Quel est le scripte de cette propriétée? ) |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Pour le pouvoir OnHit, il faut que tu fasses un script nommé comme le tag de l'arme. Ouvre x2_s3_onhitcast et x2_it_example.nss pour mieux comprendre.
|
Revenir en haut | |
BenGorre Légende vivante Messages: 301 |
Pour arme intelligente, il faut creer un dialogue du même nom que le tag de ton arme, pour un exemple regarde le dialogue de l'épée Enserric.
_________________ La mort n'est rien seul le fait de mourir est terrible Henry Fielding 1745 Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2. |
Revenir en haut | |
Charly Novice Messages: 9 |
Merci !
Je vais essayer ça. |
Revenir en haut | |
Charly Novice Messages: 9 |
Me revoila !
J'ai un peut du mal à comprendre les deux script d'exemple pour le OnHit, mais je pense bien que le pouvoir "Arme intelligente" fonctionne à peut pret de la même façon. Quelqu'un pourai m'aider en me proposant un script d'objet utilisant cette propriété s'il vous plais? Merci ! |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Pour un script de OnHit, faut faire un script nommé comme le tag de ton objet sur ce model :
NWScript : void main() { int nEvent =GetUserDefinedItemEventNumber(); object oPC; object oItem; // SendMessageToPC(GetFirstPC(),I ntToString(nEvent)); if (nEvent ==X2_ITEM_EVENT_ONHITCAST) { oItem = GetSpellCastItem(); // The item casting triggering this spellscript //object oSpellOrigin = OBJECT_SELF ; object oSpellTarget = GetSpellTargetObject(); oPC = OBJECT_SELF; //ton script } } |
Revenir en haut | |
Charly Novice Messages: 9 |
Bon, voila ce que j'ai essayer (et qui pour le moment ne fonctionne pas)
J'ai créer une armure avec le tag "armuredemage" je lui est mis la propriété "pouvoir au toucher : onhit" et l'ai mis dans l'évènement onuserdefined le script suivant(appelé armuredemage) NWScript :
#include "x2_inc_switches" void main() { int iEvent = GetUserDefinedItemEventNumber(); object oPc; object oArmure; object oCible; location lCible; if (iEvent == X2_ITEM_EVENT_ONHITCAST) { oArmure = GetSpellCastItem(); oCible = GetSpellTargetObject(); oPc = OBJECT_SELF; lCible = GetLocation(oPc); AssignCommand (oPc, ActionCastSpellAtLocation (SPELL_MASS_HEAL, lCible,METAMAGIC_ANY, TRUE,PROJECTILE_PATH_TYPE_DEFAULT, TRUE)); } } Est ce qu'il y a quelque chose que je n'ai pas compris ou mal fait? Je finirai bien par comprendre ce truc ^^ |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Nan ton script il doit être bon (pas la peine de le mettre dans le OnUserDefined, il suffit qu'il existe). Vérifie qu'il se lance avec un message pour voir mais il doit se déclancher (SendMessageToPC(GetFirstPC(),"youpi")
Mais le probleme c'est que tu assignes une action à un gars qui est au combat donc elle se met dans la liste et ne s'execute pas. Je sais pas si le plus simple est pas de rajouter Mass Heal dans le 2da (iprp_onhitspell) ça résoudrait le problème, tu pourrais mettre le sort directement sur l'armure. |
Revenir en haut | |
Enki Légende vivante Messages: 432 |
Il suffit de remplacer l'actionCastSpell par ApplyEffectToObject(); > EffectHeal.
+ différents effets visuels au besoin ! |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Nope, sinon tu vas soigner celui qui t'attaque ! (alors que guérison de groupe tu peux le lancer sur un ennemi c'est pas grave, il prend en compte la "location" pas la cible)
Enfin sinon l'idée est pas mal, tu peux aussi recopier le sort de mass heal dans ton script, ça évite de toucher au 2da. |
Revenir en haut | |
Charly Novice Messages: 9 |
Il ne fonctionne pas, j'ai mis un "applyeffectatobject" a la place du sort, essyant plusieurs effet, j'ai mis aussi le sendmessagetopc pour voir aussi, mais le script n'a même pas l'air de se lancer.
je ne comprend pas. je réessayerai pour voir. |
Revenir en haut | |
BenGorre Légende vivante Messages: 301 |
Bonjour bonjour,
Déjà pour simplifié il ya pas besoin de mettre NWScript :
if (iEvent == X2_ITEM_EVENT_ONHITCAST) Car quand ce script sera lancé ce sera seulement en cas de touche, cette ligne est déjà dans le script de base "x2_s3_onhitcast" qui gère le lancement de scipt OnHit personalisé. Ensuite il faut bien vérifier que le nom du script est exactement le tag de l'objet. _________________ La mort n'est rien seul le fait de mourir est terrible Henry Fielding 1745 Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2. |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Si si il faut laisserr la ligne sinon si on laisse les scripts de base il se déclanche lors des evenements module (OnAcquire etc.). Tous ces évenements vont chercher le script ayant pour nom le tag de l'objet.
Bon comme dans ces cas là les définitions de oPC sont pas les mêmes ça risque de ne pas avoir trop d'effet mais c'est une bonne habitude que de dissocier les évenements sinon on peut avoir de mauvaises surprises. Sur le pourquoi il ne se lance pas, il y a une variable module genre ENABLE_TAGBBASED_SCRIPTS, je crois qu'elle est par défaut sur TRUE, mais c'est peut-être la raison, vérifie dans x2_inc_switches. |
Revenir en haut | |
BenGorre Légende vivante Messages: 301 |
Je suis désolé Sith Vicious mais non, il n'y a pas besoin de mettre la ligne avec l'event puisque c'est vérifié juste avant de lancé le script (regarde le script dont j'ai donné le nom).
Je dis pas ça comme ca dans le vide , cest que j'ai toujours fais comme ca et que je n'ai jamais eu de problèmes. Ca ne se déclenchait uniquement quand il le fallait (et encore pas tout le temps mais c'est normale c'est expliqué je sais plus exactement où ptet dans le script). _________________ La mort n'est rien seul le fait de mourir est terrible Henry Fielding 1745 Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2. |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
A mon tour d'être désolé, mais j'ai créé un script OnHit en laissant la ligne
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. Or je reçois le message quand je reçois l'arme et quand je m'en sers, la ligne dans le x2_s3_onhitcast sert à déclarer l'event pour justement le retrouver dans le script. Car les appels dans le OnAcquire (et les autres) et x2_s3_onhitcast ne diffèrent que par cette déclaration, et ils appelent tous le même script (celui qui est nommé comme le tag de l'objet). Je crois qu'effectivement c'est rarement problématique car du fait des appels 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. OBJECT_SELF désigne le module pour ce qui est des OnAcquire/OnEquip et les autres et désigne le joueur dans les scripts OnHit, donc du coup un script de OnHit va la plupart du temps ne pas fonctionner si il est appelé par le OnAcquire car en plus la cible sera invalide, mais ça ne veut pas dire qu'il ne se lance pas. |
Revenir en haut | |
Charly Novice Messages: 9 |
NWScript :
#include "x2_inc_switches" void main() { int iEvent = GetUserDefinedItemEventNumber(); object oPc; object oArmure; object oCible; location lCible; effect eEffet = EffectKnockdown(); SendMessageToPC(GetFirstPC(),"youpi"); if (iEvent == X2_ITEM_EVENT_ONHITCAST) { SendMessageToPC(GetFirstPC(),"youpi2"); oArmure = GetSpellCastItem(); oCible = GetSpellTargetObject(); oPc = OBJECT_SELF; lCible = GetLocation(oPc); ApplyEffectToObject (DURATION_TYPE_TEMPORARY, eEffet, oCible, 3.0); } } le voila, il ne fonctionne toujours pas, l'objet a bien le bon pouvoir, le tag de l'armure est trés exactement le nom du script, j'ai beau essayer en long, en large et en travers. je ne reçoi aucun message ni ne voi aucun effet. |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Je comprends pas.
Essaye de mettre dans un script (genre sur le module load) : 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.
voir si c'est pas ça qui déconne. |
Revenir en haut | |
Charly Novice Messages: 9 |
c'est bon, ça fonctionne.
Merci beaucoup ! |
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