Zitat von
Clawhammer
@Vienna, irgendwie reagieren die Schilder nicht auf "Scheiben_1_auf = true;"
Hab einen Auslöser gemacht aber es rührt sich nix :-(
thx4help
Ist ein Fehler im Skript (weil ich es nicht getestet habe).
Die Zeile
sleep 2; einfügen! Man muss der Scheibe Zeit geben aufzuklappen, bevor man abfragt ob sie durch einen Treffer umgefallen ist.
Code:
/**
* Zielscheibe steuern
*
* Aufruf in der Initialisieurngszeile jeder Scheibe der Gruppe:
* temp = this execVM "Gruppe_1.sqf"
*
* Verwendet 2 globale Variable die für jede Gruppe eine anders Skript
* und andere "laufende" Nummern haben müssen
*
* Scheiben_1_auf true stellt die Scheiben auf.
* Ist beim Spielstart auf false zu initialisieren.
*
* Scheiben_1_treffer für das Speichern der Treffer der Gruppe.
* Ist beim Spielstart auf 0 zu initialisieren.
**/
private ["_scheibe","_zeit"];
_scheibe = _this;
_scheibe animate["terc", 1]; //Scheibe beim Start umlegen
//Dauerschleife
sleep 3;
while {true}do
{
waituntil {Scheiben_1_auf}; //Warten auf Aufstellbefehl
_zeit = time + 6; //Scheibe 6 Sekunden sichtbar (mindestens 4)
_scheibe animate["terc", 0]; //Scheibe aufrichten
sleep 2;
//Warten auf Zeitablauf oder Treffer
waituntil {time > _zeit or _scheibe animationPhase "terc" > 0.2};
//Trefferabfrage
if (_scheibe animationPhase "terc" > 0.2) then
{
Scheiben_1_treffer = Scheiben_1_treffer + 1
};
//Scheibe 3 Sekunden lang umlegen
for "_i" from 1 to 30 do
{
_scheibe animate["terc", 1]; //Scheibe umlegen
sleep 0.1
};
Scheiben_1_auf = false
}