Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Variables dans conversations (le retour)
Variables dans conversations (le retour)
Par Le Hamster le 19/10/2002 à 0:43:27 (#2361288)
Dans mon histoire 5 morceaux de "Kekechose" sont éparpillés. Ils se peut que les PJ trouvent un ou plusieurs de ces morceaux avant d'entamer des conversations aves des pnj. J' n'arrive pas à faire le script de conditions d'execution suivant :
D'abord un type de conversation :
PNJ : > Il faut retouver les morceaux.
PJ > 1 - Je vais les chercher
2 - J'en ai déjà un
3 - j'en ai déjà plusieurs.
Donc les scripts de conditions doivent vérifier si l'inventaire contient soit aucun, soit un ou au moins deux morceaux de Kekechose avant d'afficher ou non les choix 2 et 3.
Les tag des morceaux de Kekechose sont :
Kekechose1
Kekechose2... jusqu'à 5.
Je me démerde pas avec le wizard. Faut écrire deux ou un script spécifique, non ?
bises
Par eMRaistlin le 19/10/2002 à 0:50:38 (#2361308)
j'ai pas le temlps ce soir, mais demain, je te ferai le script, si tu veux...
je veux bien, une dernière fois (ou presque)
Par Le Hamster le 19/10/2002 à 22:24:07 (#2365930)
Bises
Par eMRaistlin le 20/10/2002 à 1:09:30 (#2366665)
bon, rien de grave, je te rassure :
Simplement, avec un seul script, tu reglera pas tout...
donc, le plus simple :
Tu fais une conversation avec les phrases suivantes :(ordre important)
1 - > Tu as plus de 2 objets ?
2 - > Tu as 1 objet ?
3 - > Tu n'a pas encore commencé a bosser, chien d'infidele oO ??
puis, tu affecte ce script a la phrase 1
#include "nw_i0_tool"
int StartingConditional()
{
int nNBobjet=0;
// Make sure the PC speaker has these items in their inventory
if(CheckPartyForItem(GetPCSpeaker(), "TAG1"))
{nNBobjet=nNBobjet+1;}
if(CheckPartyForItem(GetPCSpeaker(), "TAG2"))
{nNBobjet=nNBobjet+1;}
if(CheckPartyForItem(GetPCSpeaker(), "TAG3"))
{nNBobjet=nNBobjet+1;}
if(CheckPartyForItem(GetPCSpeaker(), "TAG4"))
{nNBobjet=nNBobjet+1;}
if(CheckPartyForItem(GetPCSpeaker(), "TAG5"))
{nNBobjet=nNBobjet+1;}
if (nNBobjet>=2)
{
return TRUE;
}
else return FALSE;
}
/* a savoir qu'on peut faire ca aussi si tu as plus de 5 objets...
int StartingConditional()
{
int nNBobjet=0;
// Make sure the PC speaker has these items in their inventory
int nNumObjet = 0;
int nResult = 0;
while (nNumObjet 2) //ou plus suivant le nombre desir d'objet a posseder....
{
return TRUE;
}
else return FALSE;
}
//Bien entendu, c'est juste pour la frime, ce script etendu...^^
*/
puis, sur la phrase 2 :
#include "nw_i0_tool"
int StartingConditional()
{
int nNBobjet=0;
// Make sure the PC speaker has these items in their inventory
if(CheckPartyForItem(GetPCSpeaker(), "TAG1"))
{nNBobjet=nNBobjet+1;}
if(CheckPartyForItem(GetPCSpeaker(), "TAG2"))
{nNBobjet=nNBobjet+1;}
if(CheckPartyForItem(GetPCSpeaker(), "TAG3"))
{nNBobjet=nNBobjet+1;}
if(CheckPartyForItem(GetPCSpeaker(), "TAG4"))
{nNBobjet=nNBobjet+1;}
if(CheckPartyForItem(GetPCSpeaker(), "TAG5"))
{nNBobjet=nNBobjet+1;}
if (nNBobjet==1)
{
return TRUE;
}
else return FALSE;
}
et enfin, sur la derniere phrase, tu met rien. (faut bien etre sur qu'elle sont au meme niveau d'arborescence...)
Voila qui devrait faire l'affaire... (ps: pas le courage de construire la conversation... donc a tester quand meme =P)
merci
Par Le Hamster le 20/10/2002 à 1:18:20 (#2366707)
Bises
ooooooooinnnnnnnnnnnnnnn
Par Le Hamster le 20/10/2002 à 19:12:43 (#2370447)
Il y a une erreur de syntaxe dans les scripts ci dessus, ça ne compile pas.
"No right bracket on expression" qu'il me dit l'ot' con...pileur
J'en ai foutu partout des brackets, j'ai comparé avec d'autres scripts bons. Je ne trouve pas, vite une bonne âme !!!!
Par eMRaistlin le 20/10/2002 à 20:01:33 (#2370776)
faut tout prendre, dans le code...
c'est quel script qui compile mal ??
JOL Archives 1.0.1
@ JOL / JeuxOnLine