La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 19/04/2025 21:34:45


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 04/01/2006 13:30:23 Sujet du message : [Reso] suivez moi ...

Dabord, bonjour a tous.
J'ai ici un script qui permet a un pnj de se deplacer et obliger le pj a le suivre, voila le script :

NWScript :
void main()
{
{

    object oPC = GetLastSpeaker();
    object oNPC = GetObjectByTag("ci_marin_nain_001"); //tag du pnj
    object oWp = GetWaypointByTag("ci_waypoint_001"); //tag du WayPoint
    ActionWait(0.5);
    AssignCommand(oNPC, ActionForceMoveToObject(oWp));
    AssignCommand(oPC, ActionForceFollowObject(oNPC, 10.0f));
          }
      }
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.


Le probleme, c'est qu'une fois partit, le pnj ne reviens pas, donc j'aimerais bien qu'il revienne au WayPoint 2.
J'ai deja essayer de faire ca tout seul, mais j'y arrive pas.

A oui, j'ai aussi un script pour que le pnj aborde tout seul le pj (toujours le pnj "ci_marin_nain_001"), mais il ne marche pas, si quelqu'un pouvait me faire un script de ce genre qui marche ...
Merci
Mork
Dernière édition par mork le 06/01/2006 17:17:48; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 04/01/2006 17:55:02 Sujet du message :

Pour le faire revenir à l'endroit initial, il faut que tu aies un WP ("ci_waypoint_002") à l'endroit où le PNJ doit être à la base.

Ensuite, je pense que tu peux appliquer un delais commande pour le faire revenir au point original.

Ca donnerait :

NWScript :
void main()
{
{

object oPC = GetLastSpeaker();
object oNPC = GetObjectByTag("ci_marin_nain_001"); //tag du pnj
object oWp = GetWaypointByTag("ci_waypoint_001"); //tag du WayPoint
object oWP1 = GetWaypointByTag("ci_waypoint_002");
ActionWait(0.5);
AssignCommand(oNPC, ActionForceMoveToObject(oWp));
AssignCommand(oPC, ActionForceFollowObject(oNPC, 10.0f));
DelayCommand(30.0, AssignCommand(oNPC, ActionForceMoveToObject(oWp1)));
}
}
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 n'ai pas testé mais ça devrait marcher

Ensuite, pour le second, il suffit d'ouvrir le prélude, c'est le premier script qui se lance quand tu joues :
Un PNJ vient te voir quand tu passes sur un trigger

Il doit également y avoir pas mal de sujets là dessus si tu fais une recherche sur le sujet, donc n'hésites pas à farfouiller.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 04/01/2006 18:29:34 Sujet du message :

Au debut ca compiler pas au niveau du DelayCommand :

Voici la ligne :
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.


ca compilait pas au niveau du :

NWScript :
ActionForceMoveToObject(oWp1))/* suspect parenthesis end found !*/
)/* suspect parenthesis end found !*/
;
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.


le " oWp1 " etait normalement " oWP1 ".

Enfin bref, merci Djezebel !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 04/01/2006 18:41:24 Sujet du message :

Oui, je l'ai fais à main levée, désolée Smile

A présent, ça fonctionne ? Smile

Sinon, il suffit de modifier le :

object oWP1 = GetWaypointByTag("ci_waypoint_002");

par


object oWp1 = GetWaypointByTag("ci_waypoint_002");
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 04/01/2006 18:42:28 Sujet du message :

Oui, ca fonctionne Smile


Merci
Mork
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 06/01/2006 18:04:18 Sujet du message :

Salut !
Voici le script du module pour la campagne "prelude" pour que le pnj parle tout seul :

NWScript :
// this is the on enter script if a trigger that encompasses the NPC who will be
//initiating dialouge. Make sure to replace the value of sTag with the tag of
//the NPC in question.
void main()
{
    string sTag = "//tag du pnj";
    object oNPC = GetLocalObject(GetArea(OBJECT_SELF),"NW_G_" + sTag);
    object oPC = GetEnteringObject();
    if(GetIsPC(oPC) &&
      GetLocalInt(oPC,"NW_L_Init" + GetTag(oNPC)) == FALSE &&
      IsInConversation(oNPC) == FALSE)
    {
        AssignCommand(oPC,ClearAllActions());
        AssignCommand(oNPC,ClearAllActions());
        AssignCommand(oNPC,ActionMoveToObject(oPC));
        AssignCommand(oNPC,ActionStartConversation(oPC));
    }
}
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.


Voila, quelqu'un pourait t'il me dire comment marche le script svp ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 06/01/2006 18:04:39 Sujet du message :

Salut !
Voici le script du module pour la campagne "prelude" pour que le pnj parle tout seul :

NWScript :

void main()
{
    string sTag = " "; //tag du pnj
    object oNPC = GetLocalObject(GetArea(OBJECT_SELF),"NW_G_" + sTag);
    object oPC = GetEnteringObject();
    if(GetIsPC(oPC) &&
      GetLocalInt(oPC,"NW_L_Init" + GetTag(oNPC)) == FALSE &&
      IsInConversation(oNPC) == FALSE)
    {
        AssignCommand(oPC,ClearAllActions());
        AssignCommand(oNPC,ClearAllActions());
        AssignCommand(oNPC,ActionMoveToObject(oPC));
        AssignCommand(oNPC,ActionStartConversation(oPC));
    }
}
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.


Voila, quelqu'un pourait t'il me dire comment marche le script svp ?
Dernière édition par mork le 06/01/2006 18:05:53; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 06/01/2006 18:05:15 Sujet du message :

Euh.. pk ca poste deux fois ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 06/01/2006 18:56:17 Sujet du message :

NWScript :
void main()
{
    string sTag = " "; //tag du pnj
    object oNPC = GetLocalObject(GetArea(OBJECT_SELF),"NW_G_" + sTag);//L'objet qui s'appelle NW_G_NomduPNJ
    object oPC = GetEnteringObject();// C'est le joueur
    if(GetIsPC(oPC) &&
      GetLocalInt(oPC,"NW_L_Init" + GetTag(oNPC)) == FALSE &&
      IsInConversation(oNPC) == FALSE)
    {
        AssignCommand(oPC,ClearAllActions());
        AssignCommand(oNPC,ClearAllActions());
        AssignCommand(oNPC,ActionMoveToObject(oPC));//Le PNJ va vers le joueurs
        AssignCommand(oNPC,ActionStartConversation(oPC));//Le PNJ commence la conversation avec le joueur
    }
}
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.


Vala Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 06/01/2006 19:52:56 Sujet du message :

mci ! Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 08/01/2006 17:52:32 Sujet du message :

Salut
Je viens de tester le script, et il se trouve qu'il ne marche pas correctement ...
Je pense que ca vient du :
NWScript :
object oNPC = GetLocalObject(GetArea(OBJECT_SELF),"NW_G_" + sTag);
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.


car je ne sais pas ce qu'il faut mettre a la place du
NWScript :
"NW_G_"
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.


Si tu pouvais me dire ce qu'il faut y mettre, car je n'ai pas trop bien compris l'explication a ce niveau.
Merci
Mork
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 08/01/2006 18:20:37 Sujet du message :

Remplace plutot par : object oNPC = GetNearestObjectByTag("Tag du PNJ");

Le reste c'est des bidouilles à Bioware pour utiliser des scripts génériques (doit y avoir un truc dans le OnSpawn du PNJ pour qu'il s'enregistre comme objet local sur la zone ou un truc dans le genre).
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 08/01/2006 18:52:19 Sujet du message :

Ok, merci
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger 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 90.43ms