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 22:21:07


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 08/08/2005 20:56:04 Sujet du message : Pattern sans PNJ

Bonjour tout le monde

Alors comme le titre du topic le montre j'aimerai faire un pattern mais sans PNJ, je m'explique...

J'aimerais que lorsque le joueur entre dans le module, puis quand il tapera quelque chose avec le clavier il se passe quelque chose (dans mon cas un sort) mais sans qu'il y ait de PNJ pour "entendre" ce qu'il dit.

Je pourrais mettre un PNJ invisible, mais beuark ...Sad

Donc si quelqu'un saurait faire cela bah ça m'aiderait beaucoup

Merci d'avance...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 09/08/2005 07:58:56 Sujet du message :

C'est impossible (à ma conaissance) sauf utilisation de logiciel externe.
C'est pas pour rien que tout le monde mets des pnj...
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 09/08/2005 10:37:20 Sujet du message :

Aussi tu peux ruser .... mais il faut le CEP !

Sans forcément mettre de pnj " invisible " , mais en mettant un pnj " caché " !

Donc là , normalement aprés avoir lu ma phrase ci dessus , tu te demande " mais qu'est ce qu'il raconte comme connerie celui là ? si un pnj est caché , il est invisible ! "

Et bien ... non ! La subtilité du truc consisterais a placer un pnj prés de là ou ton perso doit prononcer sa phrase , mais sur le pnj , tu régle sa capacité de " déplacement " en " immobile " , et tu donne a ton pnj l'apparence d'une " chaise " , d'une " table " ou de ce que tu veux , et naturelement , tu lui donnera le nom d'un objet , tu ne lui donne pas de voix et pas de dial.

Ainsi , ton pnj ne sera pas invisible , sera caché , et pourtant bien là .

Concrétement , pour l'éditeur , ce sera un pnj , mais pour le joueur lambda qui passera , ce sera un objet banal qui n'aura rien a voir avec un pnj !

C'est une solution ...
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Amphiprion
Ecuyer
Inscrit le: 28 Juil 2005
Messages: 56
Répondre en citant
Posté le : 09/08/2005 12:17:24 Sujet du message :

Je pense que ca demande vient du fait de vouloir intercepter des commandes et ce quelque soit l'endroit ou est le joueur au moment ou il tape le texte, comme pour les commandes.

Donc ce serait l'equivalent d'un PNJ invisible qui suis constament le joueur...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 09/08/2005 12:39:55 Sujet du message :

je proposais ça juste pour " l'entrée " dans le mod , si jamais le pj se retrouve dans une sorte de " hall" .

Peut être avec nwn2 ....
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 09/08/2005 13:33:40 Sujet du message :

Bon si jamais il n'y a pas d'autre solution, pourquoi pas...

mais ca va etre hasardeux de mettre des PNJ cachés dans toutes les zones

parce que enfait je veux quand le joueur dit une phrase (spécifique) bah il se passe un effet proche de sa position. Mais je veux que l'on puisse dire cette phrase dans TOUT le module.

Si vraiment il n'y a pas d'autre solution... bah des PNJs caché partout...

EN fait, on peu donner l'aparence a un PNJ l'apparence de l'objet invisible?? et si il y a beaucoup de PNJs cachés cela ne va t-il pas "fatiguer" l'ordinateur??

Merci pour vos réponses....
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Amphiprion
Ecuyer
Inscrit le: 28 Juil 2005
Messages: 56
Répondre en citant
Posté le : 09/08/2005 16:17:23 Sujet du message :

Essai sur le heartbeat du module ou sur le HeartBeat du joueur (script qui doit s'appeler 'default')
il est déclenché toutes les 6s et aussi dans certains autres cas.
Dans ce script à chaque fois qu'il est appele, tu bouges le PNJ pour le placer sur le joueur.

Essaye on sait jamais, mais aucune idée du temps de réponse et de la pertinence de la solution (eloignement possible du joueur en 6s)

Si 6s c'est trop tu peux crer ton propre heartbeat, en faisant un DelayCommand(3.0, ExecuteScript("MovePNJ"));
et voir si ça marche mieux.

Pour faire ca, sur OnPlayerEnter du module, tu execute le script "MovePNJ", et à la fin de ce script, tu met la commande que je t'ai données, ce qui rappelera dans 3s ce même script et ce indefiniment

Encore une fois je ne sais pas ce que va donner le resultat au niveau qualité.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 09/08/2005 17:07:07 Sujet du message :

Non mais à l'entré du module tu lui colle un pnj avec l'effet cutscene_invisibility en ForceFollow.
La il le suivra partout et sa devrait marcher. (Dans le OnClientLeave tu detruit le PNJ)
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 09/08/2005 17:21:44 Sujet du message :

Et si le joueur il entre dans une autre zone (par un porte ou un déclencheur ou une téléportation) le PNJ il va suivre le joueur quand même?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Amphiprion
Ecuyer
Inscrit le: 28 Juil 2005
Messages: 56
Répondre en citant
Posté le : 09/08/2005 19:27:50 Sujet du message :

Le probleme du ForceFollow, c'est les risques tes courants de probleme de PathFinding, il y a des chances que le NPC reste bloque et ne suive plus.

Donc peut etre un cumul des deux methodes sur heartbeat du module... pourquoi pas
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 09/08/2005 20:35:51 Sujet du message :

Sinon tu applique un aoe sur le joueur, dans le OnExit on test si c'est le pattern affilié au joueur (par LocalObject) et tu le téléporte auprès du PJ.
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 09/08/2005 20:48:12 Sujet du message :

Euh c'est quoi un AOE?? Surprised


Citation :
Sinon tu applique un aoe sur le joueur, dans le OnExit on test si c'est le pattern affilié au joueur (par LocalObject) et tu le téléporte auprès du PJ.
Euh... j'ai rien compris Embarassed
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Amphiprion
Ecuyer
Inscrit le: 28 Juil 2005
Messages: 56
Répondre en citant
Posté le : 09/08/2005 21:43:09 Sujet du message :

AOE = Area Of Effect, en gros un volume autour du joueur. Il y a des méthodes en script pour parcourir tous les objets dans un volume (GetFirstObjectInShape et GetNextObjectInShape).
Mais le Follow seul ne marchera pas assez bien, en interieur il y a beaucoup de problème de path finding

De plus tu n'as pas besoin de parcourir les objets car en le mettant comme variable local (SetLocalObject) tu peux directement le déplacer sur onEnter de la nouvelle zone sans avoir à le chercher
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 10/08/2005 10:01:24 Sujet du message :

Ou alors une autre idée...

lorsque le joueur sort de la zone maximum ou le PNJ peut entendre ce que dit le joueur (j'imagine que ce n'est pas a l'infini...)

hop on téléporte le pnj a un endroit plus proche du joueur de maniere a ce que le pnj puisse a nouveau entnedre les paroles du joueur

Mais pour le scriptage , je ne sait pas omment faire Sad
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Amphiprion
Ecuyer
Inscrit le: 28 Juil 2005
Messages: 56
Répondre en citant
Posté le : 10/08/2005 12:32:43 Sujet du message :

il n'y a pas d'evenement qui se denclenche quand tu t'eloigne de quelque chose.

Pour moi la seule solution, c'est de teleporter toutes les x secondes, le NPC sur le joueur, comme explique plus haut, auquel tu peux rajouter si besoin le ForceFollow pour limiter les risque d'eloignement trop important dans l'intervale des x secondes.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 10/08/2005 15:26:31 Sujet du message :

Aussi une question...

Si je met un PNJ invisble qui se téléporte toutes les x secondes
Est-ce que il va attaquer les ennemis du joueur?? et inversement??(les ennemis des ennemis...)

Parce que lors d'un test (le PNJ n'était pas encore invisible) lorsque je mentrainait sur des ennemis, le PNJ les attaquez comme pour me proteger... pourtant, j'ai creé une nouvelle faction ou dedans "hostiles" est ami avec "nouvelle faction du pnj pour test" et inversement
et la faction "nouvelle faction du pnj pour test" est ami avec le joueur et inversement.

(bien sur j'ai mis le pnj dans la faction "nouvelle faction du pnj pour test" )

Voila
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 10/08/2005 15:52:05 Sujet du message :

faut pas les mettre "ami" mais "neutre" me semble, non? Embarassed
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 10/08/2005 16:06:39 Sujet du message :

Si je met les faction "neutre" envers elles est-ce que si un monstre lance un sort de zone ce sort va toucher le pnj? (qui est censé te suivre partou partou) et dans ce cas le PNJ peux riposter

Autre chose...

j'ai mis ca dans le OnClienEnter du module : (sans l'effet d'invisibilité pour tester si le pnj te suit vraiment)

NWScript :
void main()
{
object oSort = GetObjectByTag("Sort");
object oPC = GetFirstPC();
location lPC = GetLocation(oPC);

        AssignCommand(oSort, ActionJumpToLocation(lPC));
  }
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 ca dans le onHeartBeath du module :

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.


(c'est peu etre un peu beaucoup)

dans le jeu lorsque je me déplace par exemple d'un point A a un point B pui a point C (assez distant des uns des autres et en courant)
2 minutes plus tard (je ne sais pas si c'est vraiment 2minutes...) le PNJ se téléporte au point A 2 minutes plus tard le PNJ se téléporte au point B et 2minutes plus tard encore (ce qui nous fait en tout 6minutes) il se rend au point C, entre temps j'ai vite fait de bouger quand même. Donc comment fair pour que le PNJ se téléporte vraiment toutes les 0.5 secondes a coté du joueur??
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Amphiprion
Ecuyer
Inscrit le: 28 Juil 2005
Messages: 56
Répondre en citant
Posté le : 10/08/2005 16:19:05 Sujet du message :

Le problème des DelayCommand c'est qu'il les empiles et les exécutes n fonction des queues, ce aui veut dire que des fois il fait toutes tes commandes d'un coup. (surtout avec un AssignCommand)

Je l'ai observé quand je voulais faire un système de DoT (Damage over time), qui faisait x point de degats toutes les x secondes, résultat il se passait rien, jusqu'au moment où il declenchait tout d'un coup, et tuait la creature dessuite (en voyant tout les chiffre de degat dérouler sur sa tête, on comprend qu'il a tout enchainé, et il n'a pas pris en compte exactement le delayCommand)

Si j'ai le temps je vais faire un test ce soir pour voir si je trouve une solution satisfaisante.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 10/08/2005 16:29:57 Sujet du message :

A je crois avoir résolu mon probleme pour le PNJ qui se téléporte (ici toutes les secondes) pres du joueur :


dans le OnHeartBeath du module

NWScript :

void main()
{

    ExecuteScript("onhbmodule2", OBJECT_SELF);
    DelayCommand(1.0, ExecuteScript("onhbmodule2", OBJECT_SELF));
    DelayCommand(2.0, ExecuteScript("onhbmodule2", OBJECT_SELF));
    DelayCommand(3.0, ExecuteScript("onhbmodule2", OBJECT_SELF));
    DelayCommand(4.0, ExecuteScript("onhbmodule2", OBJECT_SELF));
    DelayCommand(5.0, ExecuteScript("onhbmodule2", OBJECT_SELF));
    DelayCommand(6.0, ExecuteScript("onhbmodule2", 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.


et voila le fichier "onhbmodule2" (a mettre nul part )

NWScript :

void main()
{

object oSort = GetObjectByTag("Sort");
object oPC = GetFirstPC(); // les secondes aupres du joueur
location lPC = GetLocation(oPC);



    AssignCommand(oSort, ActionJumpToLocation(lPC));
}
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
 
Amphiprion
Ecuyer
Inscrit le: 28 Juil 2005
Messages: 56
Répondre en citant
Posté le : 10/08/2005 16:51:28 Sujet du message :

oui ça doit marcher effectivement car il n'empile pas les appelle de script dans la queue
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 12/08/2005 09:04:21 Sujet du message :

Par contre un autre petit probleme...

Lorsque je tabasse un monstre, il se peut que le monstre attaque le PNJ (bien sur il n'y arrive pas puisqu'il est invisible et immortelle)

Ca peu tres vite devenir trop facile : le monstre essaie d'attaquer le PNJ alors que le joueur attaque le monstre tranquilement....

Si quelqu'un pourrait me sortir de ce probleme...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 16/08/2005 14:53:38 Sujet du message :

Euh finallement lorsque le PNJ toute les seconde se téléporte pres du joueur cela peu gener le joueur lorsqu'il avance (il sarrete de courir comme si il avait rencontré un obstacle (le PNJ))

Donc vous n'avez pas une autre solution pour parler n'importe ou et activer tel ou tel script?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
diraen
Novice
Inscrit le: 04 Juil 2004
Messages: 15
Répondre en citant
Posté le : 16/08/2005 18:02:06 Sujet du message :

Je pense que le plus simple est d'utiliser le script de The Voice :
The voice est un pnj invisible qui te suis partout et affiche les paroles des PJ en language elfes, naines etc.

Tu auras donc un pnj, invisible, te suivant partout avec un pattern intégré Wink
Tu n'auras plus qu'a retirer les système de langue exotiques.
Cette fonction est intégrée dans le DMFI Wand, il va te falloir décortiquer un peu.
Si j'ai le temps en rentrant du boulot je jetterai un coup d'oeil

Tout est

Sinon tu trouvera ici un pack de créature "suiveuses" déjà toutes faites. Tu n'auras alors qu'a leur coller un pattern, quoique apparement il y'en ai déjà un d'office.

J'espère que ca t'aidera.
Et pour finir si je peux me permettre un conseil :
Evite au maximum de mettre un script sur le onheartbeat de ton mod ou de plusieurs PNJ, cette fonction s'examine toutes les 6 secondes, je te laissse imaginer a quel point cela peut allourdir ton mod et faire lagger le jeu Confused (On a dû refondre tout notre module a cause de ça Mad)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 16/08/2005 21:46:14 Sujet du message :

Merci c'est cool Very Happy

Mais on a déja vu que à cause du pathfinding les pnj suiveurs peuvent se bloquer dans le décors...

Je viens d'expérimenter, dans des petits passages le PNJ se met dedans et il ne veut plus bouger et dans ce cas la, le joueur est piégé!!

Mais je vais quand même y jeter un oeil,

Sinon si vous avez une autre solution...
 
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 52.644ms