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







La date/heure actuelle est 02/05/2025 15:26:35
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 |
Lunshire Héros Messages: 259 Localisation: Ben ... Devant mon ordi bien sûr ! |
Je suis peut - être long à la détente ... Certains ont compris tout de suite comment faire le mode Cutscene en lisant le tuto de Baldurien, mais moi j'ai rien capté ...
![]() Merci d'avance. _________________ Cogito ergo sum. |
Revenir en haut | ![]() ![]() ![]() |
Baldurien L'homme qui chutait sur le macadam ![]() Messages: 14070 Localisation: Quadran Alpha |
heu
![]() je ne sais plus ! En fait, je vais mettre ce message dans Script pour commencer, puis je vais relire mon code. 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. demarre le mode cutscene pour CREATURE (ie. sans l'interface du jeu) si TRUE, le désactive sinon. _________________ #nwnights-fr @ irc.darkmyst.org TitanQuest-FR |
Revenir en haut | ![]() ![]() ![]() ![]() |
Lunshire Héros Messages: 259 Localisation: Ben ... Devant mon ordi bien sûr ! |
Ben ... Heu ... Ca marche pas bien beaucoup ton truc !
NWScript :
void main() { object oPC = GetPCSpeaker(); object oFollow = GetObjectByTag("ga"); object oDest01 = GetNearestObjectByTag("dest01"); object oDest02 = GetNearestObjectByTag("dest02"); object oDest03 = GetNearestObjectByTag("dest03"); object oDest04 = GetNearestObjectByTag("dest04"); object oDoor = GetNearestObjectByTag("porte1"); object oCreature = oPC if (GetIsPC(oPC)==TRUE) { SetCutsceneMode( oCreature, TRUE ); AssignCommand(oPC,ActionForceFollowObject(oFollow,0.5)); AssignCommand(oFollow,ActionMoveToObject(oDest01, TRUE,0.5)); AssignCommand(oFollow,ActionMoveToObject(oDest02, TRUE,0.5)); AssignCommand(oFollow,ActionSpeakString("On y est presque")); AssignCommand(oFollow,ActionOpenDoor(oDoor)); AssignCommand(oFollow,ActionMoveToObject(oDest03, TRUE,0.5)); AssignCommand(oFollow,ActionSpeakString("Voila, c'est ici")); AssignCommand(oPC,ActionMoveToObject(oDest04, TRUE)); AssignCommand(oFollow, ActionWait(3.0)); SetCutsceneMode( oCreature, FALSE ); AssignCommand(oFollow,ActionStartConversation(oPC)); } } Voila, ça me fait une erreur a la ligne de la condition : gardetemple.nss(11): ERREUR : PARSING VARIABLE LIST Parce que si je veux mettre le CutsceneMode sur CREATURE, il faut bien la définir la variable, non ? Sauf si je me goure, ce qui, ma foi, ne serait pas une surprise ! J'comprends pô ... ![]() _________________ Cogito ergo sum. |
Revenir en haut | ![]() ![]() ![]() |
lendraste Grand Maître Chanteur du Conseil ![]() Messages: 1403 Localisation: Quelque part ailleurs |
tu as oublié un point-virgule à 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. Note que la variable de la fonction SetCutsceneMode n'est pas obligée de s'appeler oCreature. Tu pouvais utiliser oPC directement dedans. _________________ Lendraste de Loreval Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel. La cité des mensonges - 1 |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
Lunshire Héros Messages: 259 Localisation: Ben ... Devant mon ordi bien sûr ! |
![]() ![]() Bon, et avec ça, ça doit marcher ? Je teste et je vous dis. _________________ Cogito ergo sum. |
Revenir en haut | ![]() ![]() ![]() |
Baldurien L'homme qui chutait sur le macadam ![]() Messages: 14070 Localisation: Quadran Alpha |
(faut les lire les erreurs quand même
![]() _________________ #nwnights-fr @ irc.darkmyst.org TitanQuest-FR |
Revenir en haut | ![]() ![]() ![]() ![]() |
Lunshire Héros Messages: 259 Localisation: Ben ... Devant mon ordi bien sûr ! |
Voui, mais quand on sait pas ce que ça veut dire, on est pas bien capable de résoudre le problème ...
![]() _________________ Cogito ergo sum. Dernière édition par Lunshire le 14/11/2003 21:16:57; édité 3 fois
|
Revenir en haut | ![]() ![]() ![]() |
Lunshire Héros Messages: 259 Localisation: Ben ... Devant mon ordi bien sûr ! |
Mais ...
![]() ![]() ![]() _________________ Cogito ergo sum. |
Revenir en haut | ![]() ![]() ![]() |
Baldurien L'homme qui chutait sur le macadam ![]() Messages: 14070 Localisation: Quadran Alpha |
Parce que toutes tes commandes sont effectuées à la suite. Donc en gros, dés qu'une action sera finie, on fera l'autre sans chronologie.
_________________ #nwnights-fr @ irc.darkmyst.org TitanQuest-FR |
Revenir en haut | ![]() ![]() ![]() ![]() |
Lunshire Héros Messages: 259 Localisation: Ben ... Devant mon ordi bien sûr ! |
Mais, alors en mettant des DelayCommand, mon problème serait résolu ... Je vais faire un script puis je vous le propose en éditant ... a +
[EDIT] NWScript :
void main() { object oPC = GetPCSpeaker(); object oFollow = GetObjectByTag("ga"); object oDest01 = GetNearestObjectByTag("dest01"); object oDest02 = GetNearestObjectByTag("dest02"); object oDest03 = GetNearestObjectByTag("dest03"); object oDest04 = GetNearestObjectByTag("dest04"); object oDoor = GetNearestObjectByTag("porte1"); if (GetIsPC(oPC)==TRUE) { DelayCommand(1.0, SetCutsceneMode(oPC, TRUE)); DelayCommand(2.0,AssignCommand(oPC,ActionForceFollowObject(oFollow,0.5))); DelayCommand(3.0,AssignCommand(oFollow,ActionMoveToObject(oDest01, TRUE,0.5))); DelayCommand(4.0,AssignCommand(oFollow,ActionMoveToObject(oDest02, TRUE,0.5))); DelayCommand(5.0,AssignCommand(oFollow,ActionSpeakString("On y est presque"))); DelayCommand(6.0,AssignCommand(oFollow,ActionOpenDoor(oDoor))); DelayCommand(7.0,AssignCommand(oFollow,ActionMoveToObject(oDest03, TRUE,0.5))); DelayCommand(8.0,AssignCommand(oFollow,ActionSpeakString("Voila, c'est ici"))); DelayCommand(9.0,AssignCommand(oPC,ActionMoveToObject(oDest04, TRUE))); DelayCommand(10.0,AssignCommand(oFollow, ActionWait(3.0))); DelayCommand(11.0,SetCutsceneMode(oPC, FALSE)); DelayCommand(12.0,AssignCommand(oFollow,ActionStartConversation(oPC))); } } Voilà, est - ce que ça a une chance de marcher ? Je peux pas le tester, j'ai passé le CD de SoU à un copain ... ![]() _________________ Cogito ergo sum. |
Revenir en haut | ![]() ![]() ![]() |
Baldurien L'homme qui chutait sur le macadam ![]() Messages: 14070 Localisation: Quadran Alpha |
oui. Ensuite, je sais pas ce que ça donnera
_________________ #nwnights-fr @ irc.darkmyst.org TitanQuest-FR |
Revenir en haut | ![]() ![]() ![]() ![]() |
lendraste Grand Maître Chanteur du Conseil ![]() Messages: 1403 Localisation: Quelque part ailleurs |
Les DelayCommand c'est pas une idée géniale. Il vaux mieux rester sur la méthode de la queue d'action en transformant les lignes où on passe les CutsceneMode comme suit :
NWScript :
void main() { object oPC = GetPCSpeaker(); object oFollow = GetObjectByTag("ga"); object oDest01 = GetNearestObjectByTag("dest01"); object oDest02 = GetNearestObjectByTag("dest02"); object oDest03 = GetNearestObjectByTag("dest03"); object oDest04 = GetNearestObjectByTag("dest04"); object oDoor = GetNearestObjectByTag("porte1"); object oCreature = oPC; if (GetIsPC(oPC)==TRUE) { AssignCommand(oFollow, ClearAllActions(TRUE)); AssignCommand(oFollow, ActionDoCommand(SetCutsceneMode( oCreature, TRUE ))); AssignCommand(oPC, ClearAllActions(TRUE)); AssignCommand(oPC, ActionForceFollowObject(oFollow, 0.5)); AssignCommand(oFollow, ActionMoveToObject(oDest01, TRUE, 0.5)); AssignCommand(oFollow, ActionMoveToObject(oDest02, TRUE, 0.5)); AssignCommand(oFollow, ActionSpeakString("On y est presque")); AssignCommand(oFollow, ActionOpenDoor(oDoor)); AssignCommand(oFollow, ActionMoveToObject(oDest03, TRUE, 0.5)); AssignCommand(oFollow, ActionSpeakString("Voila, c'est ici")); AssignCommand(oPC, ActionMoveToObject(oDest04, TRUE)); AssignCommand(oFollow, ActionWait(3.0)); AssignCommand(oFollow, ActionDoCommand(SetCutsceneMode( oCreature, FALSE ))); AssignCommand(oFollow, ActionStartConversation(oPC)); } } De cette façon la mise en mode Cutscene et la sortie du mode Cutscene sont intégré à la queue d'action de l'objet oFollow. En tant qu'action, l'instruction n'est joué qu'après l'exécution des autres actions de la queue. Je me suis permi d'insérer un ClearAllActions(TRUE) pour le oFollow et le oPC afin d'être sur que leur queue d'action respective ne comportera pas d'action résiduelles qui pourrait entraver la bonne marche des choses. Le problème de ta précédente solution était que les SetCutsceneMode n'était pas des actions et qu'elle était exécuté dans le déroulement du script, alors que les actions, elles, étaient placées dans la queue d'action pour être jouée ultérieurement. Je ne vais pas réexpliquer cet aspect des choses, je l'ai déjà fait dans ce sujet et les réponses suivantes. Je pense que cette solution devrait fonctionner. _________________ Lendraste de Loreval Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel. La cité des mensonges - 1 |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
Baldurien L'homme qui chutait sur le macadam ![]() Messages: 14070 Localisation: Quadran Alpha |
Le problème c'est que là, si un personnage venait à être bloqué, l'action ne se terminerait pas. Je pense que faire ça pour les cutscene... est très chaud...
_________________ #nwnights-fr @ irc.darkmyst.org TitanQuest-FR |
Revenir en haut | ![]() ![]() ![]() ![]() |
Lunshire Héros Messages: 259 Localisation: Ben ... Devant mon ordi bien sûr ! |
Ben ... Tu proposes quoi comme solution ? Parce que moi, on commence à rentrer dans les hautes sphères et j'suis pommé
![]() ![]() _________________ Cogito ergo sum. |
Revenir en haut | ![]() ![]() ![]() |
lendraste Grand Maître Chanteur du Conseil ![]() Messages: 1403 Localisation: Quelque part ailleurs |
Lunshire a écrit : Ben ... Tu proposes quoi comme solution ? Parce que moi, on commence à rentrer dans les hautes sphères et j'suis pommé Bioware a déjà proposé la solution de ce problème. En mode Cutscene, un joueur qui appuie sur la touche ESCAPE de son clavier déclenche un évènement OnCutsceneAbort. Si l'on ne met aucun script associé à cet évènement, il ne se passera rien. En revanche, on peut y coder la suppression du mode Cutscene de façon à "libérer" le joueur de cette contrainte.
![]() ![]() Je dirais toutefois que c'est un cas de figure extrême. Si tu as suffisamment bien préparé tes points de destination et si tu as suffisamment bien testé ta cutscene pour savoir si le PNJ bloque quelque part (ou est interrompu par un PNJ tier, un combat, un monstre ou quoi que ce soit qui provoque le vidage de sa queue d'action), alors il n'y a pas de raison qu'il bloque et donc aucune raison de s'inquiéter de ce problème. Par précaution, met quand même ce script dans le OnCutsceneAbort : 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 très basique, car quelle que soit la cutscene en train de se jouer, n'importe quel joueur (même en multi-joueur, donc) peut en sortir à tout moment (il y a des amélioration possible, mais ça devient de plus en plus complexe). Attention, le fait de sortir du mode Cutscene de cette façon n'annule pas les actions en cours, cela autorise le joueur à reprendre le contrôle de son personnage pour briser la suite d'action si cela lui chante. Si la suite d'action a été interrompu sans que le contrôle soit rendu au joueur, ça aura son utilité. _________________ Lendraste de Loreval Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel. La cité des mensonges - 1 |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
Baldurien L'homme qui chutait sur le macadam ![]() Messages: 14070 Localisation: Quadran Alpha |
Bah voilà suis Lendraste
![]() ![]() _________________ #nwnights-fr @ irc.darkmyst.org TitanQuest-FR |
Revenir en haut | ![]() ![]() ![]() ![]() |
Lunshire Héros Messages: 259 Localisation: Ben ... Devant mon ordi bien sûr ! |
Ca marche !!!!!!!!!!!!!!!!!!!!!! Merci Lendraste.
Je ne t'embrasse pas mais le coeur y est vraiment !!! ![]() _________________ Cogito ergo sum. |
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