La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/09/2024 00:33:04


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 13/01/2004 22:35:21 Sujet du message : AssignCommand sur un placeable...

... ça marche ?


Parce que dans un petit script d'anim j'aimerais que des rayons surgissent de divers objets invisibles vers un WP, j'ai donc créé, dans mon script, les void suivant :

NWScript :

void BeamsRed()
{
AssignCommand (GetObjectByTag("BeamRed1"), ApplyEffectToObject (DURATION_TYPE_TEMPORARY, EffectBeam (VFX_BEAM_FIRE, OBJECT_SELF, BODY_NODE_CHEST), GetObjectByTag("spWP_antichambre"), 15.0));
AssignCommand (GetObjectByTag("BeamRed2"), ApplyEffectToObject (DURATION_TYPE_TEMPORARY, EffectBeam (VFX_BEAM_FIRE, OBJECT_SELF, BODY_NODE_CHEST), GetObjectByTag("spWP_antichambre"), 15.0));
AssignCommand (GetObjectByTag("BeamRed3"), ApplyEffectToObject (DURATION_TYPE_TEMPORARY, EffectBeam (VFX_BEAM_FIRE, OBJECT_SELF, BODY_NODE_CHEST), GetObjectByTag("spWP_antichambre"), 15.0));
AssignCommand (GetObjectByTag("BeamRed4"), ApplyEffectToObject (DURATION_TYPE_TEMPORARY, EffectBeam (VFX_BEAM_FIRE, OBJECT_SELF, BODY_NODE_CHEST), GetObjectByTag("spWP_antichambre"), 15.0));
}


void BeamsBlue()
{
AssignCommand (GetObjectByTag("BeamBlue1"), ApplyEffectToObject (DURATION_TYPE_TEMPORARY, EffectBeam (VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_CHEST), GetObjectByTag("spWP_antichambre"), 5.0));
AssignCommand (GetObjectByTag("BeamBlue2"), ApplyEffectToObject (DURATION_TYPE_TEMPORARY, EffectBeam (VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_CHEST), GetObjectByTag("spWP_antichambre"), 5.0));
AssignCommand (GetObjectByTag("BeamBlue3"), ApplyEffectToObject (DURATION_TYPE_TEMPORARY, EffectBeam (VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_CHEST), GetObjectByTag("spWP_antichambre"), 5.0));
AssignCommand (GetObjectByTag("BeamBlue4"), ApplyEffectToObject (DURATION_TYPE_TEMPORARY, EffectBeam (VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_CHEST), GetObjectByTag("spWP_antichambre"), 5.0));
}

void main()
{

// j'appelle les effets par ces commandes :
DelayCommand (10.0, BeamsRed());
DelayCommand (20.0, BeamsBlue())
}
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.


et il ne se produit rien... Donc je me demande si un simple placeable (non statique, je précise) a une queue d'action et si on peut lui faire effectuer des actions ?
Et si non, comment faire pour déclencher mes effets au moment voulu ? Embarassed
_________________
Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ?

http://cassin1306.spaces.live.com
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 13/01/2004 23:19:53 Sujet du message : Re: AssignCommand sur un placeable...


Citation :
et il ne se produit rien... Donc je me demande si un simple placeable (non statique, je précise) a une queue d'action et si on peut lui faire effectuer des actions ?
Et si non, comment faire pour déclencher mes effets au moment voulu ? Embarassed
En réalité, cela n'a même rien à voir avec les actions car ApplyEffectToObject n'est pas une action et ne se place pas sur la queue d'action. Ensuite, les plaçables n'ont pas de queue d'action. Et enfin, AssignCommand ne place sur la queue d'action que des actions. Dans le cas contraire, AssignCommand a pour effet d'exécuter la commande comme si l'objet cible du assign en devenait l'OBJECT_SELF. Mais s'il ne s'agit pas d'une action, la commande sera immédiate.

Autre problème, un EffectBeam ne peut être créé, je crois, qu'à partir d'une créature (à vérifier), un plaçable ne pourrait donc normallement pas servir de source (même si la cible peut-être un objet d'une autre nature). Je tiens aussi à te signaler que ton OBJECT_SELF dans tes appels à EffectBeam fait référence à l'objet qui exécute le présent script. Lorsque d'un script est exécuté OBJECT_SELF, dans tout le code est immédiatement remplacé par l'objet qui exécute le script. Le AssignCommand ne transmet pas à la fonction cible telle quelle, mais déjà interprétée, avec la valeur courante des paramètres au moment de l'exécution du AssignCommand.

Bref... je te propose les changements suivants :
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.


Ce script n'étant valable à mes yeux que si tes objets de tag BeamRedx et BeamBluex sont des créatures. Tu peux créer une créature immobile et invisible pour servir de support à ce rayon Smile

Encore une chose. J'aimerai être sûr qu'un Waypoint peut servir de cible à un Beam, mais rien n'est moins sûr. Je te suggère donc de remplacer ton Waypoint de même que les sources de Beam.
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 13/01/2004 23:26:54 Sujet du message :

Hum.. Hum...

Il me semble qu'un placeable peut être impliqué dans un effectbeam, par contre on ne peut utiliser de WP dans cet effet...

Dans le grand veneur, j'ai utilisé ces effectBeam alliés à des éléments non-statiques et sans qu'ils soient utilisables.

Je te conseille des objets invisibles (non-statique) à substituer auw WP
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 14/01/2004 09:07:12 Sujet du message :


Longbow a écrit :
Il me semble qu'un placeable peut être impliqué dans un effectbeam, par contre on ne peut utiliser de WP dans cet effet...
Je n'ai pas écris qu'un plaçable ne pouvait pas être impliqué, puisqu'il peut servir de cible lors de l'application de l'effet. Dans le cas de la source je me demandais si les noeuds utilisables sont tous exploitables sur un plaçable et si non lequel doit être utilisé. Le Lexicon n'est pas très parlant à ce sujet et je n'ai jamais fait le test. Si tu le sais pour l'avoir utilisé, tu peux peut-être le signaler ? Wink
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 14/01/2004 12:22:14 Sujet du message :


Longbow a écrit :
Il me semble qu'un placeable peut être impliqué dans un effectbeam, par contre on ne peut utiliser de WP dans cet effet...

Dans le grand veneur, j'ai utilisé ces effectBeam alliés à des éléments non-statiques et sans qu'ils soient utilisables.
Oui, c'est d'ailleurs sur ce script que tu avais posté dans le forum Modules que je me suis basé Wink


Bon, pour le WP qui sert de cible, en fait c'est parce qu'il me sert à créer un autre truc par la suite, mais je peux très bien poser un objet invisible à la même place, c'était pour éviter de surcharger...



Et ben en tous cas, tout faux sur ce coup-là moi Very Happy
Je vais tester ce qu'à proposé Lendraste Wink


EDIT : bon ben ça ne marche pas Sad
J'ai d'abord essayé en laissant le WP comme cible, et je l'ai ensuite remplacé par un objet invisible, mais ça n'a rien changé...

Dans le script de Longbow, les beams sont générés par le OHB des objets invisibles, donc là peut-être qu'en mettant le script de création des beams dans le OnSpawn des objets invisibles puis de les créer lors du script, les beams se lanceraient ? (et les détruire après, une fois le script terminé)
Bon, je n'ai pas le temps de tester ça là, mais je le ferais dès que possible Wink


Et créer des créatures invisibles à la place des objets, je ne peux pas, les objets sont sur des piliers donc impossible de mettre des créatures là-dessus Wink
_________________
Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ?

http://cassin1306.spaces.live.com
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 14/01/2004 14:49:13 Sujet du message :


Cassin a écrit :
EDIT : bon ben ça ne marche pas Sad
J'ai d'abord essayé en laissant le WP comme cible, et je l'ai ensuite remplacé par un objet invisible, mais ça n'a rien changé...
Si comme l'affirme Longbow, on peut faire émaner un rayon d'un plaçable, est-ce que le BODY_NODE_CHEST est bien celui qu'il faut utiliser ? Petite précision utile, le plaçable "cible" du rayon doit obligatoirement être "usable", sans quoi aucun effet ne peut l'affecter. Je pense qu'il en est de même pour un plaçable (même invisible) qui serait source d'un rayon. Par ailleurs, et c'est à vérifier, peut-être peux-tu utiliser ApplyEffectAtLocation plutôt que ApplyEffectOnObject, ainsi tu peux utiliser un Waypoint au lieu d'un objet invisible en capturant la location du waypoint. Cela t'évitera un problème de placement d'un autre objet à ce Waypoint.
Fondamentalement, je pense que le script que je t'ai donné est bon à condition de tenir compte de ces quelques remarques. Mais si le problème persiste, je le testerais moi-même dès que possible.

Petite remarque complémentaire, le fait de rendre des plaçables invisibles "usable" va permettre à n'importe qui d'en détecter l'emplacement et le nom avec la touche TAB. Je te suggère d'ajouter de quoi rendre l'objet totalement invisible. Pour cela tu les déclares tous dans la faction "hostile" et tu ajoutes ces lignes de commandes dans le OnSpawn de l'objet :
NWScript :

  ApplyEffectOnObject(DURATION_TYPE_PERMANENT, ExtraordinaryEffect(EffectEthereal()), OBJECT_SELF);
 
  // ApplyEffectOnObject(DURATION_T YPE_PERMANENT, ExtraordinaryEffect(EffectCuts ceneGhost()), OBJECT_SELF);
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.

Je mets une ligne de code en remarque, car elle n'est valable qu'en version 1.61. Elle permet à un objet ou une créature d'être intangible. C'est à dire qu'une créature peut passer à travers sans dévier de sa course et se rendre compte alors qu'il y a quelque chose d'invisible devant lui.
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
aldech
Gagnant du Concours Gothic 3
Inscrit le: 25 Nov 2002
Messages: 61
Localisation: Le Havre
Répondre en citant
Posté le : 14/01/2004 17:34:50 Sujet du message :

J'avais fait un test pour un début de module, cela donnait cela :

NWScript :


void main()
{
    int nIdx ;
    object oTarget ;
    object oSource = GetObjectByTag("Autel"); //objet source autel

    effect eBeam = EffectBeam(VFX_BEAM_EVIL,oSource,BODY_NODE_CHEST,FALSE);

    for(nIdx = 1;nIdx <= 4;nIdx++)

        {
          oTarget = GetObjectByTag("rayon" + IntToString(nIdx));
          ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eBeam,oTarget,360.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.


EDIT : voir ici le résultat.

EDIT2 : l'autel source (useable et static non coché), de même pour les 4 objets invisible.

[Edit de lendraste : merci d'utiliser de préférence la balise [nwscript] pour présenter du code NWNScript Smile ]
Dernière édition par aldech le 15/01/2004 13:15:05; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 14/01/2004 23:03:29 Sujet du message :

Non, même avec un ApplyEffectAtLocation, ça ne fonctionne pas... En fait comme tu le disais si on peut pas donner d'ordre à un placeable, je ne vois pas trop comment faire...
_________________
Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ?

http://cassin1306.spaces.live.com
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 15/01/2004 12:25:17 Sujet du message :


Cassin a écrit :
Non, même avec un ApplyEffectAtLocation, ça ne fonctionne pas... En fait comme tu le disais si on peut pas donner d'ordre à un placeable, je ne vois pas trop comment faire...
Je testerais la solution complète dès ce soir. Ce problème m'intrigue.
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 15/01/2004 22:11:36 Sujet du message :

Bon, j'ai contrôlé mon script. Le premier que je t'ai donné en correction est parfaitement juste. Il faut bien sûr, comme nous en avons parlé, utiliser les créatures invisibles ou des plaçables invisibles, mais s'il s'agit de plaçables il faut impérativement les rendre "utilisables" comme je l'ai déjà précisé (cocher la case "usable" ou "utilisable" dans l'onglet "basic" ou "base" des propriétés du plaçable). J'ai fait le test avec que des plaçables (y compris la cible des rayons) et sans changer une once de code. Cela marche parfaitement. De ce fait l'interrogation sur le noeud BODY_NODE_CHEST ne se pose plus Wink

En revanche, pour ce que je t'ai dit sur les plaçable totalement invisible, c'est pas encore ça. Déjà parce que j'ai écris ApplyEffectOnObject au lieu de ApplyEffectToObject, ensuite parce que je t'ai suggéré de mettre ça dans un OnSpawn alors qu'un plaçable n'en a pas et enfin parce que l'effet Ethérée ne semble pas vouloir s'appliquer sur un plaçable. Je creuse la question pendant que tu résouds la première partie Smile
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 16/01/2004 00:19:39 Sujet du message :

Tu es sûr que les placeables "source" doivent être en "utilisable" ? Parce que dans le XPModule v2, les effets de beam qui sont dans la salle principale (que je vais virer d'ailleurs parce que c'est chiant Very Happy) fonctionnent sur ce modèle (le script de Longbow sur leur OHB), et j'ai juste décoché "statique", mais ils ne sont pas useables...

Bon, en tous cas je verrais ça demain parce que là j'ai un mal de crâne terrible, donc le scripting n'est pas un remède recommandé Very Happy
_________________
Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ?

http://cassin1306.spaces.live.com
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
aldech
Gagnant du Concours Gothic 3
Inscrit le: 25 Nov 2002
Messages: 61
Localisation: Le Havre
Répondre en citant
Posté le : 16/01/2004 13:41:27 Sujet du message :

Regarde les commentaires que j'ai mis en dessous de mon script.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 17/01/2004 00:38:02 Sujet du message :


aldech a écrit :
Regarde les commentaires que j'ai mis en dessous de mon script.
Je confirme : contrairement à ce qui est inscrit dans le Lexicon, il suffit qu'un plaçable soit non statique pour servir de source (ou d'appui) à un effet, il n'a pas besoin d'être utilisable Smile
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ 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 94.541ms