Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Faire une quetes
Faire une quetes
Par sarda le 9/1/2003 à 12:17:02 (#2979646)
je suis un peu null car j'ai lue bcq de tutoriaux et de postic, mais je n'arrive toujours pas a faire une quetes, je fais bien mon noeud de dialogue dans le sens inverse, et j'attribue bien les quetes comme il faut grâce au journal.
mais mon probléme, c'est que le premier dialogue qui donne la quetes marche bien, mais par contre il reste bloqué dessus et je n'arrive pas a le faire changer de dialogue.
quelqu'un peut m'aider
Par Cassin le 9/1/2003 à 16:55:02 (#2982038)
Sinon, il paraît que l'Assistant Quêtes, ajouté avec le patch 1.27 est très pratique pour les quêtes simples (mais je peux pas dire, je ne m'en suis jamais servi)
Par sarda le 9/1/2003 à 17:10:51 (#2982151)
donc bon je ne sais pas pourquoi.
Par Jaha Effect le 10/1/2003 à 2:33:07 (#2986138)
On a un peux de mal pour te dire ou ça cloche si tu nous en dis pas plus :D
Jaha Effect :D
Par sarda le 10/1/2003 à 8:35:22 (#2986771)
Ah vous avez trouvé mon bidule
Vous n'avez pas encore trouver
Pouvez vous aller me chercher mon bidule._____________________________
int StartingConditional()
{
// Inspecter variables locales
if(!(GetLocalInt(GetPCSpeaker(), "Quete_p_ame") == 100))
return FALSE;
return TRUE;
}
voici le script pour la cas ou il n'as pas encore fais la quete. donc le 2eme dialogues en partant du haut.
et voici le script quand il a fais la quetes_____________________________
int StartingConditional()
{
// Inspecter variables locales
if(!(GetLocalInt(GetPCSpeaker(), "Quete_p_ame") == 200))
return FALSE;
return TRUE;
}
Donc voilà les 2 script que je met dans les dialogues
Par Jaha Effect le 10/1/2003 à 8:46:43 (#2986793)
void main()
{
SetLocalInt(GetPCSpeaker(),"Quete_p_ame",200);
}
Si tu n'attribue pas la nouvelle valeur de ta variable, elle ne risque pas de changer. Il faut lui dire que ta variable passe a 200 pour que la deuxième partie du dialogue qui verifie que ta variable est a 200 puisse s'afficher.
Jaha Effect :D
Par sarda le 10/1/2003 à 8:51:11 (#2986809)
Par Jaha Effect le 10/1/2003 à 9:16:39 (#2986899)
Jaha Effect :D
Par Iridian le 10/1/2003 à 9:30:26 (#2986964)
int StartingConditional()
action conséquences
:confus: :confus: :confus:
Tu es sur qu'il ne faut pas les mettre en condition alors ???
StartingConditional
Par Jaha Effect le 10/1/2003 à 9:45:21 (#2987042)
Jaha Effect :D
Par Iridian le 10/1/2003 à 9:50:00 (#2987062)
Provient du message de Jaha Effect
j'ai pas de starting conditionnal(); dans mon script, c'est un script pour un action conséquente, je vois pas ce que ça y ferait.
Jaha Effect :D
Provient du message de Sarda
int StartingConditional()
J'ai pas rêvé la ;)
Arretez moi si je me trompe mais ... le StartingConditional() est bien réservé aux conditions d'affichage d'une ligne de dialogue ?
Par Jaha Effect le 10/1/2003 à 9:57:11 (#2987111)
Il propose deux phrases
- première phrase qui apparait quand il a pas fait la quête (la variable est a 100)
- deuxième phrase qui apparait quand il a fait la quête (la variable est a 200)
Il fait bien dans ces deux scriptes les testes pour voir si sa variable est a 100 ou 200. Mais dans les actions conséquentes, il doit attribuer sa valeur à la variable, c'est a dire, une fois la quête finie, dire que la variable est a présent a 200 pour pouvoir faire apparaitre la deuxième phrase dans le dialogue.
Moi ce qui m'interresse c'est ce qu'il a mis pour changer les valeurs de ces variables. Parceque tel quel ça risque pas de marcher
Jaha Effect :D
Par sarda le 10/1/2003 à 13:18:04 (#2988313)
void main()
{
SetLocalInt(GetPCSpeaker(),"Quete_p_ame",200);
}___________________________
je la place ou par rapport a mon script ?????? et comment ????
car là je vois pas ??????
Par Jaha Effect le 10/1/2003 à 13:37:38 (#2988463)
Un dialogue avec des variables de quêtes
Par Mastokk le 10/1/2003 à 15:27:53 (#2989286)
int StartingConditional()
{
// Inspecter variables locales
if(!(GetLocalInt(GetPCSpeaker(), "vardequete") == 2))
return FALSE;
return TRUE;
}
NPC - Le petit travail que je vous ai demandé sera-t-il terminé bientôt ? //Voici la phrase qui se déclenche lorsque la quête est en cours d'exécution. Donc il faut mettre dans "Condition d'exécution" (premier onglet en bas à droite dans l'éditeur de dialogue) ce script, qui vérifie l'état de la variable de quête:
int StartingConditional()
{
// Inspecter variables locales
if(!(GetLocalInt(GetPCSpeaker(), "vardequete") == 1))
return FALSE;
return TRUE;
}
PC - Oui je m'en occupe ne vous inquiétez pas...
PC - blablabla....
NPC - Haaaaaaaaa je vois que vous avez terminé le petit travail que je vous avais donné ! // Ce texte doit apparaître si le PC ramène quelque chose pour fournir une preuve par exemple ou bien si vous avez mis une autre variable à une valeur lorsque l'objectif est atteint. Donc par exemple, vous pouvez décider de checker que le PC ait bien la tête de sa victime dans son sac. Je ne mets pas le script ici puisqu'il se fait facilement avec l'éditeur de dialogue. Bien sur pour vérifier ceci on met le script dans "Condition d'exécution" de cette ligne de dialogue.
PC - Oui voici la tête de votre infâme belle mère ! // C'est ici que l'on va mettre la valeur de la variable de quête pour dire que c'est terminé. On met donc dans le "action conséquente" le script suivant:
void main()
{
SetLocalInt(GetPCSpeaker(),"vardequete", 2);
}
NPC - Bonjour, Pouvez vous m'aider ? // Ce texte est le texte par défaut du NPC. Il apparaît si aucune des condition spécifiées n'est valide.
PC - Oui bien sûr // Ici on va définir une valeur de la variable de quête pour dire qu'elle est en cours. Donc dans "Action Conséquente", on met ce script:
void main()
{
SetLocalInt(GetPCSpeaker(),"vardequete", 1);
}
PC - Non, pas envie // On ne va rien mettre mais rien ne vous empêche de définir une nouvelle variable de quête pour faire réagir le NPC différemment suite à ce refus
Par sarda le 10/1/2003 à 16:59:53 (#2989946)
Par sarda le 12/1/2003 à 9:10:06 (#3001556)
mais je ne sais pas comment faire quelqu'un peut m'aider.
Par Mastokk le 12/1/2003 à 18:06:00 (#3004424)
object oTarget = GetPCSpeaker();
int iGold = GetGold(oTarget);
int StartingConditional()
{
// Inspecter variables locales
if(iGold >= 200)
return FALSE;
return TRUE;
}
Par sarda le 12/1/2003 à 18:13:54 (#3004482)
JOL Archives 1.0.1
@ JOL / JeuxOnLine