Zitat von
Hercules-HH
wie meinst du das jetzt? Ich hab das jetzt so verstanden, dass der Auslöser den Namen Triggerliste haben muss. Oder tap ich da im Dunkeln?
Wenn Du dem Auslöser den Namen Triggerliste gibst, dann musst Du nach dem forEach noch list hinzufügen, also } forEach list Triggerliste. Du kannst aber als Parameter für den Aufruf des Scriptes auch z.B. die thislist des Triggers übergeben.
Zitat von
Hercules-HH
Ich hab das jetzt jedenfalls so gemacht und
- Auslöser Von Opfor
- bei Aktivierung steht: this exec "Muni-A.sqs" (Datei-Name)
- Name: Triggerliste
Da kommt ein Fehler:
Sleep 0.01
Error Allgemeiner Fehler im Ausdruck
Da es sich um ein sqf Script handelt und nicht um sqs ist der Aufruf mit exec falsch. Bitte execVM benutzen, z.B. handle = [] execVM "meinscript.sqf".
Zitat von
Hercules-HH
Ich hab bis her immer ~0.1 benutzt, weil ich auch gar nicht so richtig den unterschied verstehe: ~30 bedeutet, dass er 30 Sekunden runter zählt bis er weiter machen kann, doch bei sleep 30 muss er doch auch 30 Sekunden warten, also muss er doch auch die Zeit zählen. Wie soll man das schlafen verstehen?
~x = sqs
sleep x; = sqf
Das Script wartet/schläft x Sekunden, bis es weitermacht.
Zitat von
Hercules-HH
Hier oben legst du also fest, wo was eingesetzt wird
Code:
_addMags = {
private ["_unit","_magtype","_how_many"];
_unit = _this select 0;
_magtype = _this select 1;
_how_many = _this select 2;
for "_i" from 1 to _how_many do {
_unit addMagazine [_magtype];
};
};
Das ist eine Funktion innerhalb des Scripts (salopp ausgedrückt ein kleines Unterprogramm), in diesem Falle eine private Funktion die nur innerhalb des Scriptes eingesetzt werden kann (auch noch woanders, wenn man z.B. das Script zu einem Array hinzufügt).
Zitat von
Hercules-HH
und hier kann man das einsetzten - wie man das vom starten/verweisen auf ein Skript kennt.
Code:
[_x,"30Rnd_545x39_AK",8] call _addMags;
Mit call ruft man eine Funktion auf. Eine Funktion kann auch einen Wert zurückliefern, muss aber nicht (also sie liefert immer etwas zurück, nur werten wir das in diesem Falle nicht aus). Die Parameterübergabe erfolgt analog der eines Scriptaufrufes.
Zitat von
Hercules-HH
Doch ich verstehe nicht was das hier genau bedeutet:
[code] for "_i" from 1 to _how_many do {
_unit addMagazine [_magtype];
Soll er etwa acht mal das gleiche machen?
Einheit addMagazine "30Rnd_545x39_AK"
Einheit addMagazine "30Rnd_545x39_AK"
Einheit addMagazine "30Rnd_545x39_AK"
Einheit addMagazine "30Rnd_545x39_AK"
Einheit addMagazine "30Rnd_545x39_AK"
Einheit addMagazine "30Rnd_545x39_AK"
Einheit addMagazine "30Rnd_545x39_AK"
Einheit addMagazine "30Rnd_545x39_AK"
Genau. Einfacher als das acht mal hinzuschreiben und flexibler, da ja in der Funktion die Einheit, der Magazintyp und die Anzahl der Magazine frei wählbar durch die Parameterübergabe ist.
Zitat von
Hercules-HH
Was passiert da genau mit dem "_i"
for "_i" from 1 to _how_many
Mit der Variable _i passiert in dieser for Schleife nichts. Der Befehl erfordert aber eine Variable. Die Variable gibt innerhalb der for Schleife den momentanen Zyklusstand der Schleife zurück (und ist natürlich wie jede andere Variable auch ganz normal verwendbar innerhalb der Schleife).
Zitat von
Hercules-HH
Hast du eine Ausbildung/ein Studium gemacht oder warum kannst du das so gut???
Ich habe an der staatlichen Universität zu Paraiso promoviert
Xeno