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 20:57: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 |
eirwan Ecuyer Messages: 44 Localisation: Devant mon PC |
Posté le : 04/07/2004 11:31:16 Sujet du message : Déplacement de PJs et de PNJs d'une zone à une autre
Bonjour. Je n'y connais pas grand-chose en programmation de scripts (et encore, je minimise), et je voudrais créer pour mon module un script qui fasse changer le PJ et un PNJ en même temps de zone.
J4ai donc essayé le script de téléportation de Baldurien, mais il ne passe pas dans le compilateur, il y a une erreur quelque part, et moi je ne peux pas la réparer (c'est peut-être le fait que les zones n'ont pas de tag). Est-ce-que quelqu'un pourrait avoir pitié de moi et me dire comment faire ? |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
Tout d'abord, tu crée un nouveau script du nom de "Nom_du_script".
Ensuite tu mets ca dedans. NWScript :
void TeleportObject( string sZone, string sWayPont ); void TeleportObject( string sZone, string sWayPont ) { object oPlayer = GetPCSpeaker(); object oPNJ = GetLastSpeaker(); object oArea = GetObjectByTag( sZone ); float fOrientation = GetFacing( oPlayer ); vector vPosition = GetPosition( GetObjectByTag( sWayPont ) ); location lWhereToGo = Location( oArea, vPosition, fOrientation ); AssignCommand( oPlayer, JumpToLocation( lWhereToGo ) ); AssignCommand( oPNJ, JumpToLocation( lWhereToGo ) ); } Ensuite, dans le action conséquente du noeud de ton dialogue, à partir duquel tu veux qu'ils se téléportent, tu mets ce script. 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.
Il se compile correctement mais je ne l'ai pas testé, donc a toi de me dire si ca marche |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
Bon ca marchait pas mais j'ai résolu le probleme
Tout d'abord, tu crées deux waypont (la ou tu veux que le joueur arrive, et la ou tu veux que le PNJ arrive ), ensuite tu mets ce script dans ton "Nom_du_script" NWScript :
void TeleportObject( string sZone, string sWayPont, string sWayPont2 ); void TeleportObject( string sZone, string sWayPont, string sWayPont2 ) { object oPlayer = GetPCSpeaker(); object oPNJ = GetObjectByTag( "Tag_de_ton_PNJ" ); object oArea = GetObjectByTag( sZone ); float fOrientation = GetFacing( oPlayer ); float fOrientation2 = GetFacing( oPNJ ); vector vPosition = GetPosition( GetObjectByTag( sWayPont ) ); vector vPosition2 = GetPosition( GetObjectByTag( sWayPont2 ) ); location lWhereToGo = Location( oArea, vPosition, fOrientation ); location lWhereToGo2 = Location( oArea, vPosition2, fOrientation2 ); AssignCommand( oPlayer, JumpToLocation( lWhereToGo ) ); AssignCommand( oPNJ, JumpToLocation( lWhereToGo2 ) ); } Et ensuite dans action conséquente de ton dialogue 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.
Bon je sais pas pour toi, mais moi ca marche _________________ ... Dernière édition par Klemmth le 04/07/2004 14:46:16; édité 1 fois
|
Revenir en haut | |
eirwan Ecuyer Messages: 44 Localisation: Devant mon PC |
Nan, désolé mais ça marche pas, je dois avoir fait une boulette quelque part :
La phrase qui active le script doit-elle être prononcée par le PJ ou le PNJ ? Ou alors, je me suis trompé en recopiant le script, bête comme je suis. Je vais réessayer. Et aussi, en compilant le premier scrpit, le logiciel me dit qu'il y a une erreur parce qu'il n'y a pas de fonction MAIN () dans le script, et quand je mets compiler en temps que scrpit conditionnel, il dit qu'il n'y a pas de fonction STARTINGCONDITIONNAL () dans le script. |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
Personnellement, la phrase qui execute le script correspond à une fin de dialogue, et est dite par le PJ.
_________________ ... |
Revenir en haut | |
eirwan Ecuyer Messages: 44 Localisation: Devant mon PC |
J'ai ajouté un edit dans mon dernier message pour te répondre.
|
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
Est-ce que tu est sûr aussi d'avoir mis les bon tags?
_________________ ... |
Revenir en haut | |
eirwan Ecuyer Messages: 44 Localisation: Devant mon PC |
Après vérification intensive, il s'est avéré que ça ne pouvait pas marcher vu que je m'étais planté dans le 1er script . Mais j'ai corrigé, et malgré tout, le script ne fonctionne qu'à moitié, le pnj ne viens pas avec le joueur.
Pourquoi ? |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
Désolé, c'est moi qui ai fait un oubli quand j'ai tapé mon script sur le forum.
correction : NWScript :
vector vPosition = GetPosition( GetObjectByTag( sWayPont ) ); vector vPosition2 = GetPosition( GetObjectByTag( sWayPont2 ) ); Je suis vraiment désolé Dis moi si ca marche. _________________ ... |
Revenir en haut | |
eirwan Ecuyer Messages: 44 Localisation: Devant mon PC |
Désolé moi aussi, mais doit y avoir un truc, puisque ta modification ne change rien, le PNJ ne me suit toujours pas dans mon déplacement.
|
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
Bon je vais te mettre le script exactement comme je l'ai fais (je vais mettre aussi mes tags, tu auras cas les remplacer.
Script ks_test: NWScript :
void TeleportObject( string sZone, string sWayPont, string sWayPont2 ); void TeleportObject( string sZone, string sWayPont, string sWayPont2 ) { object oPlayer = GetPCSpeaker(); object oPNJ = OBJECT_SELF; object oArea = GetObjectByTag( sZone ); float fOrientation = GetFacing( oPlayer ); float fOrientation2 = GetFacing( oPNJ ); vector vPosition = GetPosition( GetObjectByTag( sWayPont ) ); vector vPosition2 = GetPosition( GetObjectByTag( sWayPont2 ) ); location lWhereToGo = Location( oArea, vPosition, fOrientation ); location lWhereToGo2 = Location( oArea, vPosition2, fOrientation2 ); AssignCommand( oPlayer, JumpToLocation( lWhereToGo ) ); AssignCommand( oPNJ, JumpToLocation( lWhereToGo2 ) ); } script test: 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.
Je précise qu'avant, dans ma zone nommée Caserne, j'ai crée un point de passage qui a pour tag "pp_caserne", et un autre "pp_caserne2". J'ai placé ce script sur action conséquente d'une phrase que dit le PJ et qui termine le dialogue. En utlisant OBJECT_SELF, Ce sera le PNJ qui parle qui sera téléporté. Je sais que ce script marche vu que je l'ai essayé, essaye toi pour voir et dis-moi. _________________ ... |
Revenir en haut | |
eirwan Ecuyer Messages: 44 Localisation: Devant mon PC |
Merci beaucoup, ça marche !
Mais bon, je crois que je vais essayer de me mettre au NWscript, car je ne suis qu'au début de mon module et je ne vais embêter tout le monde pendant que je le ferai à chaque fois que j'aurais un script à écrire. De plus, c'est très frustrant de ne pas savoir faire... Et encore merci. |
Revenir en haut | |
Klemmth Seigneur Messages: 176 Localisation: france |
De rien
Puis si t'as un probleme, n'hesite pas a demander, j'ai souvent rien à faire et ca m'occupe de chercher _________________ ... |
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