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 21:26:35


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Charly
Novice
Inscrit le: 26 Juin 2004
Messages: 9
Répondre en citant
Posté le : 27/02/2006 03:42:17 Sujet du message : On-Hit

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 ! Smile


(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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 27/02/2006 12:35:30 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 27/02/2006 18:37:22 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Charly
Novice
Inscrit le: 26 Juin 2004
Messages: 9
Répondre en citant
Posté le : 27/02/2006 19:49:02 Sujet du message :

Merci !
Je vais essayer ça.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Charly
Novice
Inscrit le: 26 Juin 2004
Messages: 9
Répondre en citant
Posté le : 02/03/2006 09:20:45 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 02/03/2006 10:19:33 Sujet du message :

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
    }


}
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
 
Charly
Novice
Inscrit le: 26 Juin 2004
Messages: 9
Répondre en citant
Posté le : 02/03/2006 20:22:02 Sujet du message :

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));
    }
}
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.


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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 03/03/2006 00:29:44 Sujet du message :

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")Wink
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 03/03/2006 00:37:49 Sujet du message :

Il suffit de remplacer l'actionCastSpell par ApplyEffectToObject(); > EffectHeal.
+ différents effets visuels au besoin !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 03/03/2006 01:17:35 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Charly
Novice
Inscrit le: 26 Juin 2004
Messages: 9
Répondre en citant
Posté le : 03/03/2006 01:37:17 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 03/03/2006 14:26:14 Sujet du message :

Bonjour bonjour,
Déjà pour simplifié il ya pas besoin de mettre
NWScript :
if (iEvent == X2_ITEM_EVENT_ONHITCAST)
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.

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 03/03/2006 15:02:11 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 03/03/2006 17:22:05 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 03/03/2006 17:45:52 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Charly
Novice
Inscrit le: 26 Juin 2004
Messages: 9
Répondre en citant
Posté le : 03/03/2006 19:53:17 Sujet du message :

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);
    }
}
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.


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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 03/03/2006 20:11:16 Sujet du message :

Je comprends pas.
Essaye de mettre dans un script (genre sur le module load) :

NWScript :

#include "x2_inc_switches"
void main()
{
SetModuleSwitch(MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS,TRUE);

}
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Charly
Novice
Inscrit le: 26 Juin 2004
Messages: 9
Répondre en citant
Posté le : 03/03/2006 20:45:44 Sujet du message :

c'est bon, ça fonctionne.

Merci beaucoup !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
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


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 43.814ms