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 20:37:02


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
eirwan
Ecuyer
Inscrit le: 16 Nov 2003
Messages: 44
Localisation: Devant mon PC
Répondre en citant
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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 04/07/2004 12:11:15 Sujet du message :

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


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 :
#include "Nom_du_script"

void main()
{
  TeleportObject( "", "" );
}
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 Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 04/07/2004 13:34:58 Sujet du message :

Bon ca marchait pas Sad mais j'ai résolu le probleme Very Happy
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 ) );
}
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 ensuite dans action conséquente de ton dialogue

NWScript :
#include "Nom_du_script"

void main()
{
  TeleportObject( "", "", "" );
}
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 Very Happy
_________________
...
Dernière édition par Klemmth le 04/07/2004 14:46:16; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
eirwan
Ecuyer
Inscrit le: 16 Nov 2003
Messages: 44
Localisation: Devant mon PC
Répondre en citant
Posté le : 04/07/2004 13:54:00 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 04/07/2004 14:09:18 Sujet du message :

Personnellement, la phrase qui execute le script correspond à une fin de dialogue, et est dite par le PJ.
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
eirwan
Ecuyer
Inscrit le: 16 Nov 2003
Messages: 44
Localisation: Devant mon PC
Répondre en citant
Posté le : 04/07/2004 14:10:25 Sujet du message :

J'ai ajouté un edit dans mon dernier message pour te répondre.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 04/07/2004 14:11:14 Sujet du message :

Est-ce que tu est sûr aussi d'avoir mis les bon tags? Laughing
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
eirwan
Ecuyer
Inscrit le: 16 Nov 2003
Messages: 44
Localisation: Devant mon PC
Répondre en citant
Posté le : 04/07/2004 14:36:40 Sujet du message :

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 Sad . Mais j'ai corrigé, et malgré tout, le script ne fonctionne qu'à moitié, le pnj ne viens pas avec le joueur. Confused
Pourquoi ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 04/07/2004 14:45:42 Sujet du message :

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 ) );
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 suis vraiment désolé Confused
Dis moi si ca marche.
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
eirwan
Ecuyer
Inscrit le: 16 Nov 2003
Messages: 44
Localisation: Devant mon PC
Répondre en citant
Posté le : 04/07/2004 15:46:18 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 04/07/2004 16:06:51 Sujet du message :

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


script test:
NWScript :
#include "ks_test"

void main()
{
  TeleportObject( "Caserne", "pp_caserne", "pp_caserne2" );

}
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.Very Happy
_________________
...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
eirwan
Ecuyer
Inscrit le: 16 Nov 2003
Messages: 44
Localisation: Devant mon PC
Répondre en citant
Posté le : 04/07/2004 18:39:18 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Klemmth
Seigneur
Inscrit le: 26 Juin 2004
Messages: 176
Localisation: france
Répondre en citant
Posté le : 04/07/2004 19:30:15 Sujet du message :

De rien Very Happy
Puis si t'as un probleme, n'hesite pas a demander, j'ai souvent rien à faire et ca m'occupe de chercher Very Happy
_________________
...
 
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 48.184ms