Gaming Zone Communautes Battlefield PiTrust Communautes Mods

Opérateur de condition "if" (COD et CODUO).
et son copain "else"

Retour au sommaire.

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