Gaming Zone Communautes Battlefield PiTrust Communautes Mods

Opérateur de condition "while".

Retour au sommaire

Tutorial créé par Tropheus.

Dans ce tutorial vous allez apprendre à utiliser une particularité de l'opérateur "while". Il en existe d'autres qui seront développées ultérieurement.
Ici dans cette map test tant que le soldat de droite sera vivant le soldat de gauche restera un allié.

1/ MAPPING

Une map avec 2 soldats.
Le soldat de droite un fallschirmjager de dos avec comme targetname / soldat.
Le soldat de gauche un soldat Snow avec comme targetname / sniper.

C'est tout.

2/ SCRIPTING

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");

level.soldat=getent("soldat","targetname");
level.sniper=getent("sniper","targetname");

thread test();
}

test()
{
while (isalive(level.soldat))
        {
        level.soldat.team="allies";
        level.sniper.team="allies";
        wait(0.05);
        }
level.sniper.team="axis";
}

Tant que le soldat de droite est vivant le soldat de gauche reste allié. Dès qu'il meure le soldat de gauche devient axe.

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.soldat=getent("soldat","targetname");
level.sniper=getent("sniper","targetname");

thread test();
}

test()
{
while (isalive(level.soldat)) //Tant que le soldat "soldat" est vivant.
        {
        level.soldat.team="allies";//alors "soldat" est allié
        level.sniper.team="allies";//et "sniper" est allié.
        wait(0.05); //le jeu attend 0.05 seconde avant de revérifier la condition. Très important sinon risque d'erreur.
        }
level.sniper.team="axis";//si la condition n'est plus vraie alors "sniper" passe du coté de l'axe.
}

L'avantage d'un tel opérateur c'est que l'on est pas tributaire d'un trigger pour déclencher le changement. Il peut être fait n'importe quand ce qui laisse une plus grande marge de manoeuvre au joueur et au jeu.

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