La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/09/2024 14:29:23


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Lunshire
Héros
Inscrit le: 08 Nov 2003
Messages: 259
Localisation: Ben ... Devant mon ordi bien sûr !
Répondre en citant
Posté le : 13/11/2003 18:14:02 Sujet du message : Cut scene mode

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é ... Crying or Very sad Est - ce qu'une âme bienveillante pourrait m'indiquer quel script je pourrai utiliser pour lancer ce mode ... ( et si possible en entier, pas des fonctions )

Merci d'avance.
_________________
Cogito ergo sum.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Baldurien
L'homme qui chutait sur le macadam
Inscrit le: 12 Sep 2002
Messages: 14065
Localisation: Quadran Alpha
Répondre en citant
Posté le : 13/11/2003 20:50:43 Sujet du message :

heu Smile

je ne sais plus ! En fait, je vais mettre ce message dans Script pour commencer, puis je vais relire mon code.

NWScript :
SetCutsceneMode( CREATURE, TRUE );
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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Lunshire
Héros
Inscrit le: 08 Nov 2003
Messages: 259
Localisation: Ben ... Devant mon ordi bien sûr !
Répondre en citant
Posté le : 14/11/2003 13:19:20 Sujet du message :

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));
    }
}
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, ç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ô ... Crying or Very sad
_________________
Cogito ergo sum.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 14/11/2003 13:52:08 Sujet du message :

tu as oublié un point-virgule à la ligne
NWScript :

object oCreature = 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.


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 Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Lunshire
Héros
Inscrit le: 08 Nov 2003
Messages: 259
Localisation: Ben ... Devant mon ordi bien sûr !
Répondre en citant
Posté le : 14/11/2003 14:06:19 Sujet du message :

Shocked Wahh l'erreur de débutant ... Mad Si je pouvais, ej me taperai tiens !
Bon, et avec ça, ça doit marcher ? Je teste et je vous dis.
_________________
Cogito ergo sum.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Baldurien
L'homme qui chutait sur le macadam
Inscrit le: 12 Sep 2002
Messages: 14065
Localisation: Quadran Alpha
Répondre en citant
Posté le : 14/11/2003 17:22:34 Sujet du message :

(faut les lire les erreurs quand même Smile)
_________________
#nwnights-fr @ irc.darkmyst.org TitanQuest-FR
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Lunshire
Héros
Inscrit le: 08 Nov 2003
Messages: 259
Localisation: Ben ... Devant mon ordi bien sûr !
Répondre en citant
Posté le : 14/11/2003 17:40:41 Sujet du message :

Voui, mais quand on sait pas ce que ça veut dire, on est pas bien capable de résoudre le problème ... Very Happy
_________________
Cogito ergo sum.
Dernière édition par Lunshire le 14/11/2003 21:16:57; édité 3 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Lunshire
Héros
Inscrit le: 08 Nov 2003
Messages: 259
Localisation: Ben ... Devant mon ordi bien sûr !
Répondre en citant
Posté le : 14/11/2003 21:16:21 Sujet du message :

Mais ... Mad Ca marche pas !!!!!!!!!!! J'le crois pas ! Pourquoi ça ne marche pas ? Le script compile et tout ... Si quelqu'un pouvait m'aider, ça m'aiderait ... Laughing J'sui drole quand même ...
Confused *Bon OK, je sors*
_________________
Cogito ergo sum.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Baldurien
L'homme qui chutait sur le macadam
Inscrit le: 12 Sep 2002
Messages: 14065
Localisation: Quadran Alpha
Répondre en citant
Posté le : 14/11/2003 21:32:07 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Lunshire
Héros
Inscrit le: 08 Nov 2003
Messages: 259
Localisation: Ben ... Devant mon ordi bien sûr !
Répondre en citant
Posté le : 14/11/2003 21:40:02 Sujet du message :

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


Voilà, est - ce que ça a une chance de marcher ? Je peux pas le tester, j'ai passé le CD de SoU à un copain ... Confused
_________________
Cogito ergo sum.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Baldurien
L'homme qui chutait sur le macadam
Inscrit le: 12 Sep 2002
Messages: 14065
Localisation: Quadran Alpha
Répondre en citant
Posté le : 14/11/2003 22:16:04 Sujet du message :

oui. Ensuite, je sais pas ce que ça donnera
_________________
#nwnights-fr @ irc.darkmyst.org TitanQuest-FR
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 14/11/2003 22:17:23 Sujet du message :

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


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 Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Baldurien
L'homme qui chutait sur le macadam
Inscrit le: 12 Sep 2002
Messages: 14065
Localisation: Quadran Alpha
Répondre en citant
Posté le : 14/11/2003 22:48:08 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Lunshire
Héros
Inscrit le: 08 Nov 2003
Messages: 259
Localisation: Ben ... Devant mon ordi bien sûr !
Répondre en citant
Posté le : 15/11/2003 08:38:08 Sujet du message :

Ben ... Tu proposes quoi comme solution ? Parce que moi, on commence à rentrer dans les hautes sphères et j'suis pommé Embarassed ... Mais, j'ai une idée qui peut - être est mauvaise, mais bon, ça ne coute rien d'essayer ... Y'aurait pas une variable qui fait que si un perso est bloqué ( problème que soulevait Baldurien ), l'action s'arrête ... Enfin, moi je demande et je fais rien. Je vais essayer de trouver ... Mais si vous trouvez avant, postez, je ne vous en empêce pas ! Very Happy
_________________
Cogito ergo sum.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 15/11/2003 10:33:40 Sujet du message :


Lunshire a écrit :
Ben ... Tu proposes quoi comme solution ? Parce que moi, on commence à rentrer dans les hautes sphères et j'suis pommé Embarassed ... Mais, j'ai une idée qui peut - être est mauvaise, mais bon, ça ne coute rien d'essayer ... Y'aurait pas une variable qui fait que si un perso est bloqué ( problème que soulevait Baldurien ), l'action s'arrête ... Enfin, moi je demande et je fais rien. Je vais essayer de trouver ... Mais si vous trouvez avant, postez, je ne vous en empêce pas ! Very Happy
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 Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
Baldurien
L'homme qui chutait sur le macadam
Inscrit le: 12 Sep 2002
Messages: 14065
Localisation: Quadran Alpha
Répondre en citant
Posté le : 15/11/2003 13:17:14 Sujet du message :

Bah voilà suis Lendraste Smile Mais néanmoins je trouve plus propre d'utiliser des Compteurs, alors ensuite je n'ai pas eu encore le loisir de me servir des Queues d'Action, et je dirais certainement le contraire (car en fait, j'entrevois que c'est mieux là ! Very Happy)
_________________
#nwnights-fr @ irc.darkmyst.org TitanQuest-FR
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Lunshire
Héros
Inscrit le: 08 Nov 2003
Messages: 259
Localisation: Ben ... Devant mon ordi bien sûr !
Répondre en citant
Posté le : 15/11/2003 22:05:38 Sujet du message :

Ca marche !!!!!!!!!!!!!!!!!!!!!! Merci Lendraste.
Je ne t'embrasse pas mais le coeur y est vraiment !!! Very Happy
_________________
Cogito ergo sum.
 
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 63.43ms