Script Problem

Panther[GER]
Moin grosses Grinsen
Ich knabber jetzt schon ne Ewigkeit an nem Problem ...
Und zwar mochte ich während einer Bewegung das nochmalige auslösen des Triggers verhindern .... (ich hoffe das ist verständlich ^^)
Ich hab mittlerweile schon x varianten ausprobiert aber nichts hat wirklich funktioniert Teufel
Die Variante die ich jetzt ausprobiert habe müsste doch eigentlich funktionieren oder ?? ... Fehlermeldungen bekomme ich nicht ... funktionieren tut's aber auch nicht traurig

hier mal der betreffende Teil :


    #include maps\mp\borghq\heli2;


    heli()

    {

    level.heli_spawn = true;
    level.heli_moving = false;
    thread heli_start();
    }

    heli_start()
    {
    helitrig = getentarray("helitrig","targetname");
    if ( isdefined(helitrig) )
    for(i=0;i < helitrig.size; i++)
    helitrig[i] thread los();

    }

    los()
    {
    while(1)
    {
    self waittill ("trigger");
    if (level.heli_spawn==true&&level.heli_moving==false)

    thread heli_fly_1();
    else
    thread heli_fly_2();

    }
    }


    heli_fly_1()
    {
    level.heli_moving = true;



    //iprintlnbold ("fly_1");
    thread helimodel_hin();
    thread heliclip_hin();
    level.heli_spawn = false;
    wait 5;
    level.heli_moving = false;
    }

    heli_fly_2()
    {
    level.heli_moving = true;
    //iprintlnbold ("fly_2");


    thread helimodel_zur();
    thread heliclip_zur();
    level.heli_spawn = true;
    wait 5;

    level.heli_moving = false;
    }


OLD MAN WITH GUN
heli_start()
{
helitrig = getentarray("helitrig","targetname");
if ( isdefined(helitrig) )
{
for(i=0;i < helitrig.size; i++)
helitrig[i] thread los();
}
}


Erst einmal solltes du die oben rot markierten Klammern setzen (beide Zeilen dürfen nur bei erfüllter if-Bedingung ausgeführt werden. Bei dir wird die zweite Zeile immer ausgeführt, egal ob helitrig definiert ist oder nicht).


los()
{
while(1)
{
self waittill ("trigger");
if (level.heli_spawn==true&&level.heli_moving==false)

thread heli_fly_1();
else if(level.heli_spawn==false&&level.heli_moving==false)
thread heli_fly_2();

}
}


Und hier muss der else-Zweig durch einen else if-Zweig ausgetauscht werden. Bei deinem reinen else-Zweig ist es nämlich für den Tirgger vollkommen egal ob der Heli schon in Bewegung ist oder nicht und wird immer ausgeführt, wenn level.heli_spawn false ist (der Zustand von level.heli_moving wäre vollkommen egal).
Panther[GER]
Sorry das ich mich erst jetzt melde ....
Erstmal danke für die schnelle und wie immer kompetente Antwort [/schleim aus]

War wohl ma wieder einer der berüchtigten Denkfehler ...

Also um ma auf den Punkt zu kommen grosses Grinsen Script läuft jetzt 1a !!!
Ich hoffe ma das ich dich auch für den ,jetzt in greifbare nähe gerückten, ersten Betatest gewinnen kann grosses Grinsen

MfG
Lallie aka Panther[GER]