La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 02/05/2024 01:08:24


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Beastofgaia
Novice
Inscrit le: 23 Jan 2007
Messages: 15
Répondre en citant
Posté le : 16/06/2007 09:06:55 Sujet du message : script DelayCommand, petits problèmes...

bonjour! j'ai créé un script mais je n'arrive pas à avoir ce que je veux... alors je suis paumé et si vous pouviez m'aider à trouver où j'ai foiré je vous serais très reconnaissant SVP

à la base le script est censé, à la fin d'un dialogue, lancer une succession d'actions et d'envois de messages au joueur qui a parlé au PNJ.

je voudrais faire qu'au bout de 30 secondes le joueur tombe au sol comme évanouit puis soit téléporté quelques secondes après.
avant la téléportation, des messages (x3) avertissent le joueur que quelque chose se passe.

le script se compile sans erreur mais rien ne se passe dans les tests...

NWScript :
void main()
{

  object oPlayer = GetPCSpeaker(); ;
  object oArea = GetObjectByTag( "LOST_IN_LAND" );
  float fOrientation = GetFacing( oPlayer );
  vector vPosition = GetPosition( GetObjectByTag( "LOST1" ) );
  location lWhereToGo = Location( oArea, vPosition, fOrientation );

  DelayCommand(29.0, AssignCommand(oPlayer, ClearAllActions()));
  DelayCommand(30.0, AssignCommand(oPlayer, ActionPlayAnimation( ANIMATION_LOOPING_DEAD_FRONT, 1.0, 10.0)));
  DelayCommand(40.0, AssignCommand( oPlayer, JumpToLocation( lWhereToGo )) );
  DelayCommand(20.0, SendMessageToPC( oPlayer, "Vous etes seul au milieu d'une etendue de neige."));
  DelayCommand(25.0, SendMessageToPC( oPlayer, "Le visage de Nelle apparait dans votre memoire."));
  DelayCommand(30.0, SendMessageToPC( oPlayer, "Vous tournez en rond et sentez le froid vous envahir"));

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


j'ai vérifié mon tag de oAera et mon wp de tag LOST1
à la base je voulais lancer ce script après la mort du PNJ, tué par le joueur, il-y a t'il un moyen différent que le dialogue pour lancer le script? par exemple avec GetLastKiller et le OnDeath du PNJ par exemple?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Flumby
Chevalier
Inscrit le: 01 Juin 2006
Messages: 71
Répondre en citant
Posté le : 16/06/2007 12:16:08 Sujet du message :

Bonjour,

J'ai donc une version qui marche sur le onDeath de ton pnj :

NWScript :
void main()
{
//SpawnScriptDebugger();

    object oKiller = GetLastKiller();
    object oDestination = GetObjectByTag("Destination");

    AssignCommand(oKiller, ClearAllActions());


    DelayCommand(2.0f,FadeToBlack(oKiller,FADE_SPEED_FAST));
    AssignCommand(oKiller, ActionPlayAnimation( ANIMATION_LOOPING_DEAD_FRONT, 1.0f, 3.0f));
    AssignCommand(oKiller, ActionJumpToObject(oDestination));
    DelayCommand(3.0f,BlackScreen(oKiller));
    DelayCommand(6.0f,FadeFromBlack(oKiller,FADE_SPEED_FAST));
    AssignCommand(oKiller, ActionPlayAnimation( ANIMATION_LOOPING_DEAD_FRONT, 1.0f, 7.0f));


  DelayCommand(8.0f, SendMessageToPC( oKiller, "Vous etes seul au milieu d'une etendue de neige."));
  DelayCommand(9.0f, SendMessageToPC( oKiller, "Le visage de Nelle apparait dans votre memoire."));
  DelayCommand(11.0f, SendMessageToPC( oKiller, "Vous tournez en rond et sentez le froid vous envahir"));
}
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.


Pour que ca marche il faut que le pnj n'ait pas de mort définitive et que le temps de décomposition soit plus grand que ton delaycommand le plus grand. Par exemple moi ca serait 12 en temps de décomposition.

Il te faut aussi un objet avec un tag Destination ou tag que tu veux, un point de passage fera tres bien l'affaire. Oriente la fleche de celui-ci vers la direction que tu désires que ton personnage regarde, ca sera plus simple.

Il faut aussi une animation en deux phases, une dans la première zone, sinon elle bloque l'exécution des autres commandes le temps de l'animation couché se fasse. Pour cacher les fin d'animation avant TP et début d'animation apres TP j'ai usé d'un écran noir progressif.

Les délais seront peut etre a revoir en fonction de tes besoins.
_________________
Premier DM a avoir inauguré la chute d'auberge sur Joueur rebel

Preuve Smile => http:
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Beastofgaia
Novice
Inscrit le: 23 Jan 2007
Messages: 15
Répondre en citant
Posté le : 17/06/2007 23:38:40 Sujet du message :

MERCI MERCI MERCI!!!!

je vais l'essayer et je vous dis ce qu'il en ai mais je pense que c'est nickel.
MERCI BEAUCOUP à toi Flumby!!!

Beast.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Beastofgaia
Novice
Inscrit le: 23 Jan 2007
Messages: 15
Répondre en citant
Posté le : 20/06/2007 10:23:50 Sujet du message :

J'ai essayé ton script et ça m'a permi d'obtenir ce que je souhaitais après une ou deux manip. le final donne ça :

NWScript :
void main()
{
//SpawnScriptDebugger();

    object oKiller = GetLastKiller();
    object oDestination = GetObjectByTag("LOST2");

  DelayCommand(10.0f, SendMessageToPC( oKiller, "Vous etes seul au milieu d'une etendue de neige."));
  DelayCommand(15.0f, SendMessageToPC( oKiller, "Le visage de Nelle apparait dans votre memoire."));
  DelayCommand(20.0f, SendMessageToPC( oKiller, "Vous tournez en rond et sentez le froid vous envahir"));

  DelayCommand(21.0f, AssignCommand(oKiller, ClearAllActions()));
  DelayCommand(22.0f, AssignCommand(oKiller, ActionPlayAnimation( ANIMATION_LOOPING_DEAD_FRONT, 1.0f, 5.0f)));
  DelayCommand(25.0f, AssignCommand(oKiller, ActionJumpToObject(oDestination)));

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



après le dernier DelayCommand, je voulais ajouter une entrée dans le journal des quêtes mais j'ai du mal avec la fonction AddJournalQuestEntry

NWScript :
void AddJournalQuestEntry(string szPlotID, int nState, object oCreature, int bAllPartyMembers=TRUE, int bAllPlayers=FALSE, int bAllowOverrideHigher=FALSE)
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 quelqu'un peut me dire ce que je dois mettre exactement à la place de szplotID? de nState? Merci.

Beast.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 20/06/2007 12:20:50 Sujet du message :

szPlotID = le tag du journal
sState = le numéro d'entrer (ID en quelque sorte, quand tu crées un nouveau commentaire)
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Beastofgaia
Novice
Inscrit le: 23 Jan 2007
Messages: 15
Répondre en citant
Posté le : 20/06/2007 13:58:05 Sujet du message :

donc je dois prendre le Tag du journal?

le mien est Q_NEW_WORLD
la phrase qui m'intéresse a un Id de 3.

il y a t'il un code à mettre? par ex après le Tag je dois rajouter ID?
tu me donner un exemple de notation? par ce que là je suis paumé...

merci d'avance.

Beast.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 20/06/2007 18:35:41 Sujet du message :

void AddJournalQuestEntry("Q_NEW_WORLD", 3, oPC)
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Beastofgaia
Novice
Inscrit le: 23 Jan 2007
Messages: 15
Répondre en citant
Posté le : 21/06/2007 00:11:49 Sujet du message :

Merci beaucoup^^

Beast.
 
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 50.721ms