JeuxOnLineForumsPlusConnectés : 582 (sites) | 1092 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Probleme cinématique à la Baldur RSS
   
Répondre
Partager Outils Rechercher
Avatar de kaliyouga
kaliyouga
Roi
 
Avatar de kaliyouga
 

Probleme cinématique à la Baldur

Bonjour a tous

voila, j'essaye de faire une cinématique à la baldur's gate, le script se compile , j'ai vérifié 20 fois les tags, et rien a faire...

voila ce que je veux faire (pour l'instant) :

Le Pj passe sur un déclencheur, celui ci le fait marcher jusqu'à tel wp, le fait s'incliner (saluer). Le Pnj avance alors a tel wp, et sort des phrases. mon script est dans le OnEnter du déclencheur :

Code PHP:
void main()
{
object oPC GetEnteringObject();
object oGardak GetObjectByTag("GARDAK");
loçation lPC GetLoçation(GetObjectByTag("WP_ANIMPJ"));
location lGardak GetLocation(GetObjectByTag("WP_ANIMPNJ"));

    
AssignCommand(oPCClearAllActions());
    
AssignCommand(oPCActionForceMoveToLocation(lPC));
    
AssignCommand(oPCActionPlayAnimation(ANIMATION_FIREFORGET_BOW));
    
DelayCommand(0.2SetCommandable(FALSEoPC));

    
AssignCommand(oGardakClearAllActions());
    
AssignCommand(oGardakActionWait(3.0));
    
AssignCommand(oGardakActionForceMoveToLocation(lGardak));
    
AssignCommand(oGardakActionDoCommand(SetFacing(180.0)));
    
AssignCommand(oGardakActionWait(2.0));
    
AssignCommand(oGardakActionSpeakString("Blabla1"));
    
AssignCommand(oGardakActionWait(5.0));
    
AssignCommand(oGardakActionSpeakString("Blabla2"));
    
AssignCommand(oGardakActionWait(5.0));
    
AssignCommand(oGardakActionSpeakString("Blabla3"));
    
AssignCommand(oGardakActionWait(5.0));
    
AssignCommand(oGardakActionSpeakString("Blabla4"));
    
AssignCommand(oGardakActionWait(5.0));
    
AssignCommand(oGardakActionSpeakString("Blabla5"));
    
AssignCommand(oGardakActionWait(5.0));
    
AssignCommand(oGardakActionSpeakString("Blabla6"));
    
AssignCommand(oGardakActionWait(5.0));
    
AssignCommand(oGardakActionSpeakString("Blabla7"));
    
AssignCommand(oGardakActionWait(5.0));
    
AssignCommand(oGardakActionSpeakString("Blabla8"));
    
AssignCommand(oGardakActionWait(5.0));
    
AssignCommand(oGardakActionSpeakString("Blabla9"));
    
AssignCommand(oGardakActionWait(5.0));

    
DelayCommand(0.2SetCommandable(TRUEoPC));
    } 

Je sait, il est ptet pas très "beau" je débute.

je comprends pas du tout ou ca merde...
si quelqu'un pouvait eclairer ma lanterne ca serait génial

voila

merci d'avance
Lien direct vers le message - Vieux
Avatar de kaliyouga
kaliyouga
Roi
 
Avatar de kaliyouga
 


oups, j'ai oublié de dire ce qui déconnait

en fait, le pj avance bien jusqu'au wp, il s'incline et voila. Fini. Le pnj bouge pas d'un poil et ne dit rien

voilu
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Ben ça ressemble quand même à un problème de tag... (t'aurais pas mis le resref par hasard... )
Non franchement je vois pas trop
Par contre, tu as fait une erreur : tu utilise mal tes delaycommand(), tes deux SetCommandable() seront presque simultanés.
Lien direct vers le message - Vieux
Avatar de kaliyouga
kaliyouga
Roi
 
Avatar de kaliyouga
 
ah oui zut...

je change ca, je revérifie les tags et je te dit

Lien direct vers le message - Vieux
Avatar de kaliyouga
kaliyouga
Roi
 
Avatar de kaliyouga
 
voila, ça marche ^^

merci a toi

j'ai changé le tag ("GARDAK") , j'ai fais une mise a jour dans le script, j'ai allongé le deuxième delay et tout va bien... enfin presque...

après être allé a son wp, le pnj se retourne...

c'est un problème mineur, mais comme il s'adresse au joueur ça fait bizarre , car il lui tourne le dos
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Il faut éviter les 95 DelayCommand ou AssignCommand, vraiment (ben alors Jedaï tu molis?) . Les variables vivantes sont copiées à chaque fois. Donc:

Code PHP:
void SignalAndRelease()
{
     
object oGardak GetObjectByTag("GARDAK");
     
SignalEvent(oGardakEventUserDefined(100));
     
SetCommandable(TRUEOBJECT_SELF);
}
void DoPCCommand()
{
    
location lPC =  GetLocation(GetObjectByTag("WP_ANIMPJ")); 
    
ClearAllActions();
    
ActionForceMoveToLocation(lPC);
    
ActionPlayAnimation(ANIMATION_FIREFORGET_BOW);     
    
ActionDoCommand(SignalAndRelease());    
    
SetCommandable(FALSEOBJECT_SELF);
}



void main()
{
    
object oPC GetEnteringObject();
    
AssignCommand(oPC,DoPCCommand());

et dans l'UDE (user defined event) de Gardak tu mets la série d'action que tu veux qu'il accomplisse:
Code PHP:
int nEvent GetUserDefinedEventNumber();
//d'autres événements
if(nEvent == 100)
{
    
location lGardak GetLocation(GetObjectByTag("WP_ANIMPNJ"));
    
ClearAllActions();
    
ActionWait(3.0);
    
ActionForceMoveToLocation(lGardak);
    
ActionDoCommand(SetFacing(180.0)); // j'ai un doute la dessus mais c'est à toi de voir...
    // etc 

EDIT: manquait un ActionDoCommand, celui du SetFacing, qui à mon avis te cause problème.
Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Ben ton PNJ tu lui demande de se retourner ( SetFacing , tien j'ai oublié le ActionDoCommand à ce propos) non?
Pour le PJ tu pourrais aussi faire avec un ExecuteScript plutôt que AssignCommand
Lien direct vers le message - Vieux
Avatar de kaliyouga
kaliyouga
Roi
 
Avatar de kaliyouga
 
d'accord, je vais faire ça, mais j'aimerais d'abord comprendre certaine chose.

Si tu pouvais m'expliquer certaines petites choses, ce serait vraiment sympa, car je tient vraiment a comprendre l'utilité de ces choses.

Par exemple,
Code PHP:
void SignalAndRelease() 
Je ne sait pas quel est son utilité (car je ne l'ai jamais vu )

Idem pour

Code PHP:
DoPCCommand() 
ou

Code PHP:
SignalEvent(oGardakEventUserDefined(100)); 

et toutes ces petites choses que je n'ai jamais vu, et que j'aimerais découvrir

voila, donc si toi ou quelqu'un pouvait m'expliquer cela, ça serait vraiment encore plus chouette, car j'aime vraiment comprendre ce que je met dans mes scripts, plutôt que de m'en faire faire des quasi sur mesure ^^

merci
Lien direct vers le message - Vieux
Avatar de kaliyouga
kaliyouga
Roi
 
Avatar de kaliyouga
 
heu, juste une dernière chose, comme je suis super chiant et super exigeant () :

Y'a pas une commande qui permet de centrer l'écran sur tel ou tel PNJ ou sur le PJ?

Pour faire vraiment comme Baldur's Gate et donner du dynamisme aux dialogues un peu longs

Lien direct vers le message - Vieux
Sire Pom-pom
Roi
 
Code PHP:
void SignalAndRelease() 
Bon j'ai pas trop de temps là mais ceci est une déclaration de fonction, pas un appel, cela sert à fabriquer une nouvelle fonction, le code en dessous entre les "{}" dit ce que fait la fonction quand on l'appelle. Cette syntaxe est dirextement dérivée du C. Je te conseille fortement d'aller voir les tutoriaux pour maîtriser tout cela.
DoPCCommand, même chose, sauf qu'elle était mal déclarée désolé...
SignalEvent, c'est un signal disant à un objet d'éxecuter le script qui se trouve dans son slot OnUserDefinedEvent, c'est fondamental dans NWScript, la aussi va voir les tutoriaux.
Pour centrer la caméra pas possible, elle sera toujours centrée sur le PJ, tu peux la faire pivoter par contre, ou faire disparaître le Pj;
Lien direct vers le message - Vieux
Avatar de kaliyouga
kaliyouga
Roi
 
Avatar de kaliyouga
 
okaich, merci
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > Probleme cinématique à la Baldur
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 14h56.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite