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 18:09:15
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 |
Heldar Seigneur Messages: 169 Localisation: France |
Voila j'ai un pnj avec un anneau qu'il a equipé et cet anneau peut lancer autant de fois qu'il veut invisibilité suprême dès que le pnj voit un ennemi et qu'il arrete dès que y'en a plus (bien sur faut pas qu'il se batte pendant ce temps là) mais je veux aussi que certain pnj puissent quand même le voir. J'epère que c'est faisable et que vous m'aiderez.
_________________ Heldar qui tue tous les monstres du soir. |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
Pas facile ce que tu veux, surtout la partie pour que d'autres PNJ puissent le voir.
Je vais essayer de faire le mieux possible... On va utiliser une sphère de 10m de rayon pour vérifier que le pnj ne voit personne dans cette sphere. Rajoute dans le OnPerception de ton pnj : NWScript :
object oTarget = GetLastPerceived(); effect eInvi = EffectInvisibility( INVISIBILITY_TYPE_IMPROVED ); if ( GetIsEnemy( oTarget, OBJECT_SELF ) ) { ApplyEffectToObject( DURATION_TYPE_PERMANENT, eInvi, OBJECT_SELF ); } Dans le OnHeartBeat : NWScript :
void main() { object oTarget = GetFirstObjectInShape( SHAPE_SPHERE, 10.0, GetLocation( OBJECT_SELF ), TRUE, OBJECT_TYPE_CREATURE ); int nCount = 0; effect eInvi = EffectInvisibility( INVISIBILITY_TYPE_IMPROVED ); while ( GetIsObjectValid( oTarget ) ) { if ( ( GetIsEnemy( oTarget, OBJECT_SELF ) ) && ( !GetIsPC( oTarget ) ) ) { nCount += 1; } oTarget = GetNextObjectInShape( SHAPE_SPHERE, 10.0, GetLocation( OBJECT_SELF ), TRUE, OBJECT_TYPE_CREATURE ); } if ( nCount == 0 ) { RemoveEffect( OBJECT_SELF, eInvi ); } } Dans le OnHeartBeat des pnj capable de le voir : NWScript :
void main() { effect eSeeInvi = EffectSeeInvisible(); object oTarget = GetFirstObjectInShape( SHAPE_SPHERE, 10.0, GetLocation( OBJECT_SELF ), TRUE, OBJECT_TYPE_CREATURE ); int nCount = 0; while ( GetIsObjectValid( oTarget ) ) { if ( oTarget == GetObjectByTag( "tag_de_ton_pj_invisible" ) ) { nCount +=1; ApplyEffectToObject( DURATION_TYPE_PERMANENT, eSeeInvi, OBJECT_SELF ); } oTarget = GetNextObjectInShape( SHAPE_SPHERE, 10.0, GetLocation( OBJECT_SELF ),TRUE, OBJECT_TYPE_CREATURE ); } if ( nCount == 0 ) { RemoveEffect( OBJECT_SELF, eSeeInvi ); } } J'ai conscience de la lourdeur du code, et des défauts ( tes pnj verront tous les invisibles tant que le pnj serra dans la zone, et les tests ne se font que toutes les 6 secondes ), mais c'est le seul moyen potable que j'ai trouvé. _________________ ... Dernière édition par Klemmth le 03/02/2005 18:04:07; édité 3 fois
|
Revenir en haut | |
Darkavanger Grand Chevalier Messages: 114 |
Et il ne serait pas possible de faire quelque chose dans OnPerception des PnJ capable de voir le PnJ invisible, avec par exemple le tag de l'anneau?
(Je n'ai pas l'aurora sous les yeux, je suis pas assez balaise pour te faire un script sans ^^) Enfin si mon système t'interresse, dit le moi, je le posterai ici. |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
le problème avec le OnPerception, c'est justement le Perception. Si le pnj est invisible, les autres risquent d'avoir du mal à le percevoir...
_________________ ... |
Revenir en haut | |
Heldar Seigneur Messages: 169 Localisation: France |
Donc ça pourrait pas marcher?
_________________ Heldar qui tue tous les monstres du soir. |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
sur le OnPerception; logiquement non. Mais si tu places les scripts que j'ai fait là où je l'ai marqué, ca devrait marcher.
_________________ ... |
Revenir en haut | |
Heldar Seigneur Messages: 169 Localisation: France |
J'ai essayé tes scripts mais ils se compilent pas tous le heart du pnj invisible y'a marqué:
frodon_heart.nss(3): ERREUR : DECLARATION DOES NOT MATCH PARAMETERS et le heart des pnj detedteurs y'a marqué: nazguhl_heart.nss(22): ERREUR : NO RIGHT BRACKET ON EXPRESSION tu peux m'aidé stp. _________________ Heldar qui tue tous les monstres du soir. |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
Désolé, je n'avais pas l'editeur sous la main et j'ai oublié un truc, mais c'est corrigé.
_________________ ... |
Revenir en haut | |
Krozilla Acolyte Messages: 25 |
Quand quelqu'un est sous l'effet d'invisibilité suprême, il n'y a pas un moyen de le voir grace à vision lucide ?
Car si c'est le cas il suffirait d'équiper les PNJ pouvant voir le PNJ invisible avec un objet donnant vision lucide ! |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
En effet, mais cela leur permettrait de voir tous les objets invisibles, ce à quoi j'ai tenté de pallier avec ma méthode.
_________________ ... |
Revenir en haut | |
Heldar Seigneur Messages: 169 Localisation: France |
ca marche bien le test ke j'ai fai ete poilant (voir l ork courir ver l invisible et s'arreter betement ne sachant plus koi faire) seul problème c'est qu'une fois l'ork mort (c'est moi ki l est tué, l invisibl n ataquant plus - ce qui est tres bien) le pnj ne redevient pas visible.
_________________ Heldar qui tue tous les monstres du soir. |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
As-tu attendu au moins 6 secondes avant de dire que ça ne marchait pas ?
Si oui, c'est peut-être que ton pnj considère le pj comme un ennemi. Dans ce cas, remplace le OnHeartBeat de ton pnj invisible par celui que j'ai édité. _________________ ... |
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