Opérateur
de condition "if" (COD et CODUO).
et son copain "else"
Tutorial créé par Tropheus.
Grace à cet opérateur on va pouvoir tester une condition et ensuite avoir
le choix entre 2 possibilités.
Ici la condition sera la vie ou la mort du soldat axe pacifiste.
Au passage du trigger la condition sera vérifiée et le choix
s'opérera.
1/ MAPPING
Une grande map avec 3 soldats
de l'Axe. Un directement devant le joueur,
les 2 autres en spawn derrière
les murs.
Le soldat de droite un kreigsmarine
avec pour targetname / droit + case SPAWNER cochée.
Le soldat de gauche un tropical avec comme targetname / gauche +
case SPAWNER cochée.
Le soldat du centre un fallschirmjage avec comme targetname / cond
Un trigger avec comme targetname / pass_trigg
Voici ce que ça donne.

2/ SCRIPTING
Voici le script utilisé.
main()
{
maps\_load_gmi::main();
//GIVE PLAYER WEAPONS
level.player takeallweapons();
level.player giveWeapon("panzerfaust");
level.player giveWeapon("thompson");
level.player giveWeapon("colt");
level.player giveWeapon("fraggrenade");
level.player switchToWeapon("thompson");
//////Définition des entités///////////////////
level.cond=getent("cond","targetname");
level.droit=getent("droit","targetname");
level.gauche=getent("gauche","targetname");
level.pass_trigg=getent("pass_trigg","targetname");
thread test();
}
test()
{
level.cond.pacifist=true;
level.pass_trigg waittill("trigger");
if (isalive(level.cond))
{
level.droit dospawn();
}
else
{
level.gauche dospawn();
}
}
Voici ce qui doit se passer au passage du trigger.
Si l'axe central est vivant c'est le soldat de droite (kriegsmarine)
qui doit spawner.
Si l'axe central est mort c'est le soldat de gauche (tropical)
qui doit spawner.
Explications.
main()
{
maps\_load_gmi::main();
//GIVE PLAYER WEAPONS
level.player takeallweapons();
level.player giveWeapon("panzerfaust");
level.player giveWeapon("thompson");
level.player giveWeapon("colt");
level.player giveWeapon("fraggrenade");
level.player switchToWeapon("thompson");
//////Définition des entités///////////////////
level.cond=getent("cond","targetname");
level.droit=getent("droit","targetname");
level.gauche=getent("gauche","targetname");
level.pass_trigg=getent("pass_trigg","targetname");
thread test();
}
test()
{
level.cond.pacifist=true;//on rend le soldat central pacifiste pour facilité
la compréhension.
level.pass_trigg waittill("trigger");//le trigger attend d'être
activé.
if (isalive(level.cond))//vérification de la condition. (Est-ce-que le le
soldat "cond" est vivant ?)
{
level.droit dospawn();//si la condition
est vraie (cond est vivant) on fait spawner "droit".
}
else //sinon
{
level.gauche dospawn();//si la condition
est fausse (cond est mort) on fait spawner "gauche".
}
}
Ici la condition ne sera vérifiée qu'une seule fois et le choix ne permet pas d'ambiguité, c'est soit l'un soit l'autre. cependant il est possible de combiner plusieurs if et plusieurs else afin d'offrir plus de diversité dans les choix. Mais là il faut vraiment faire attention avec les accolade pour ne pas s'emmeler les pinceaux.
Voila j'espère avoir été assez clair.
Téléchargez la map test (CODUO seulement).
Placez le pk3 dans le dossier UO et le .bat dans le dossier
"call of duty".
Bon mapping et bon Scripting à tous.
Tropheus.
Pour CaskAmiProd
et MohaaScriptLib
by Tropheus©
juillet 2005