Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Script dans un script
Script dans un script
Par Mellinsa le 22/8/2002 à 20:31:24 (#2007036)
Par Fed le 23/8/2002 à 1:03:28 (#2008704)
Un ch'tit exemple :
Tu as deux fichiers, appelons les script1 et script2
script1:
void MafonctionDansScript1()
{
MonCode...
}
script2:
#include "script1"
void main()
{
MaFonctionDansScript1();
}
Donc, executer le script2 reviens à exécuter :
void MafonctionDansScript1()
{
MonCode...
}
void main()
{
MaFonctionDansScript1();
}
#include est surtout utilise pour des bibliotheques de fonctions. Ce sont des fichiers qui ne contiennent pas de "main" (donc qui ne sont pas exécutable) mais seulement des definitions de fonctions.
Si tu veux un exemple concret, j'avais fait dans le temps un script de discution par mot-clef qui fonctionne sur ce principe. Tu as juste a fouiner un peu dans le post "Liste des scripts prets a servir".
En esperant avoir ete comprehensible ;)
Fed.
Par Mellinsa le 23/8/2002 à 13:10:23 (#2011689)
Ben si
Par Jedaï le 23/8/2002 à 13:22:06 (#2011781)
int Test(object oPC)
{
if (GetAge (oPC) > 15)
{
if (test 2)
{
if (test 3) return TRUE;
}
}
return FALSE;
}
tu l'appelle fonctiontest et dans ton script que tu place dans le OnUsed (je suppose) tu écris :
#include "fonctiontest"
void main()
{
object oPC = GetLastUsedBy();
if (Test(oPC) && GetSittingCreature(OBJECT_SELF) == OBJECT_INVALID)
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionSit(OBJECT_SELF));
}
}
Par Kemay le 23/8/2002 à 15:16:01 (#2012630)
En gros, dans ton cas, à moins que tu ne comptes réutiliser ta batterie de tests dans un grand nombre de scripts, il vaut mieux ne pas en faire un include:void main()
{
object oPC = GetLastUsedBy();
int Test = FALSE;
if (GetIsPC(oPC) && test2 && test3 etc.. )
Test = TRUE;
if (Test == TRUE && GetSittingCreature(OBJECT_SELF) == OBJECT_INVALID)
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionSit(OBJECT_SELF));
}
}
A la palce de test2 et test3, tu mets tes tests, par exemple:
GetRacialType(oPC)==RACIAL_TYPE_DWARF , si tu veux vérifier le PC soit de race naine etc...
Par Mellinsa le 24/8/2002 à 0:43:42 (#2016321)
JOL Archives 1.0.1
@ JOL / JeuxOnLine