
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 19/04/2025 21:34:45
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 |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
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)); } } 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 | ![]() ![]() ![]() ![]() |
Djezebel Héros ![]() Messages: 252 |
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))); } } 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 | ![]() ![]() ![]() |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
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 !*/ ; le " oWp1 " etait normalement " oWP1 ". Enfin bref, merci Djezebel ! |
Revenir en haut | ![]() ![]() ![]() ![]() |
Djezebel Héros ![]() Messages: 252 |
Oui, je l'ai fais à main levée, désolée
![]() A présent, ça fonctionne ? ![]() Sinon, il suffit de modifier le : object oWP1 = GetWaypointByTag("ci_waypoint_002"); par object oWp1 = GetWaypointByTag("ci_waypoint_002"); |
Revenir en haut | ![]() ![]() ![]() |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Oui, ca fonctionne
![]() Merci Mork |
Revenir en haut | ![]() ![]() ![]() ![]() |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
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)); } } Voila, quelqu'un pourait t'il me dire comment marche le script svp ? |
Revenir en haut | ![]() ![]() ![]() ![]() |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
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)); } } 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 | ![]() ![]() ![]() ![]() |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Euh.. pk ca poste deux fois ?
|
Revenir en haut | ![]() ![]() ![]() ![]() |
Djezebel Héros ![]() Messages: 252 |
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 } } Vala ![]() |
Revenir en haut | ![]() ![]() ![]() |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
mci !
![]() |
Revenir en haut | ![]() ![]() ![]() ![]() |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Salut
Je viens de tester le script, et il se trouve qu'il ne marche pas correctement ... Je pense que ca vient du : 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. car je ne sais pas ce qu'il faut mettre a la place du NWScript :
"NW_G_" 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 | ![]() ![]() ![]() ![]() |
Sith Vicious Grand Sage du Conseil ![]() Messages: 693 |
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 | ![]() ![]() ![]() |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Ok, merci
|
Revenir en haut | ![]() ![]() ![]() ![]() |


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