08.03.2009, 00:55 | #21 (permalink) |
Registriert seit: 23.10.2008
Beiträge: 120
|
Code:
{ if (_x in list Fsprung) then {(Units group _x select 0) exec "Skripte\Fallschirm-O\Fallschirm.sqs"} } forEach switchableUnits
__________________
Besser verrückt, als normal und langweilig zu sein. Wer den allen gesellschaftlichen Normen und Regeln folgen will, wird zwangsläufig irgendwann am Fenster stehen und sich aufregen, weil jemand auf der Straße ein Taschentuch nicht aufheben möchte. Man wird zu jemanden, den man schon als Kind gehasst hat. Dann bin ich lieber verrückt und glücklich, durchgeknallt, aber interessant -> einzigartig! |
08.03.2009, 01:23 | #22 (permalink) |
Registriert seit: 23.10.2008
Beiträge: 120
|
Code:
_einer = (Units group _x select 0) #Loop { if (_x in list Fsprung) then {_einer exec "Skripte\Fallschirm-O\Fallschirm.sqs"} } forEach switchableUnits ~5 goto "Loop" Das Programm leider nicht.
__________________
Besser verrückt, als normal und langweilig zu sein. Wer den allen gesellschaftlichen Normen und Regeln folgen will, wird zwangsläufig irgendwann am Fenster stehen und sich aufregen, weil jemand auf der Straße ein Taschentuch nicht aufheben möchte. Man wird zu jemanden, den man schon als Kind gehasst hat. Dann bin ich lieber verrückt und glücklich, durchgeknallt, aber interessant -> einzigartig! |
08.03.2009, 02:34 | #23 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Ersetze die Erstellungszeile durch diese. Darin ist eine Abfrage vorhanden, wenn kein Soldat im Fallschirm, dann wird er gelöscht.
{_f=createVehicle["Parachute",_pos,[],50,"FLY"];_x moveindriver _f;if(count crew _f==0)then{deletevehicle _f}} forEach _grp |
08.03.2009, 07:19 | #24 (permalink) |
Registriert seit: 23.10.2008
Beiträge: 120
|
Man, ich hab das Gefühl, dass ich das Skripten nie richtig gebacken bekomme. Wie hast du den das gelern und wie lange hast du gebraucht?
Jedenfalls geht jetzt alles super! freu, freu, freu Ich möchte nur nochmal wissen wie man den Vorschlag von MDB umformt. Ich bin selbstverständlich schon längst zufrieden gestellt! Es geht nur um das Umformen selber. Weil er sich Mühe gegeben hat, sollte ich es moralisch gesehen, wenigstens umformen: Code:
Hier das Orginal nochmal von [GNC]Lord-MDB (Zitat): _scanner=_this select 0; while {((count switchableUnits) =! 0)} do { _unitscanner=list _scanner; { if ((alive _x) and (_x in _unitscanner)) then { _unitgroup =group _x; _leadergroup =leader _unitgroup; _leadergroup blablablablabla; }; } foreach switchableUnits; sleep 1; }; Und mein Versuch: while {((count switchableUnits) =! 0)} do {_unitscanner=list _scanner; {if ((alive _x) and (_x in _unitscanner)) then {_unitgroup =group _x; _leadergroup =leader _unitgroup; _leadergroup blablablablabla;};} foreach switchableUnits;} Hat sich nicht viel geändert IF (99% Richtig) THEN {MDB froh} ELSE {verzweifelt}
__________________
Besser verrückt, als normal und langweilig zu sein. Wer den allen gesellschaftlichen Normen und Regeln folgen will, wird zwangsläufig irgendwann am Fenster stehen und sich aufregen, weil jemand auf der Straße ein Taschentuch nicht aufheben möchte. Man wird zu jemanden, den man schon als Kind gehasst hat. Dann bin ich lieber verrückt und glücklich, durchgeknallt, aber interessant -> einzigartig! |
08.03.2009, 11:10 | #25 (permalink) |
ja das dient nur zur besseren übersicht.
so sqf _scanner=_this select 0; while {((count switchableUnits) =! 0)} do { _unitscanner=list _scanner; { if ((alive _x) and (_x in _unitscanner)) then { _unitgroup =group _x; _leadergroup =leader _unitgroup; _leadergroup blablablablabla; }; } foreach switchableUnits; sleep 1; }; wird so sqs _scanner=_this select 0; #start _unitscanner=list _scanner; {?((alive _x) and (_x in _unitscanner)):_unitgroup =group _x; _leadergroup =leader _unitgroup;_leadergroup blablablablabla; } foreach switchableUnits; ~1 ?((count switchableUnits) == 0):exit; goto "start"
__________________
--> -> Rechtschreibfehler sind Gratis <- <-- --> Wer welche findet kann sie behalten <-- German Nato Corps |
|
08.03.2009, 11:11 | #26 (permalink) |
ja das dient nur zur besseren übersicht.
so sqf PHP-Code:
PHP-Code:
__________________
--> -> Rechtschreibfehler sind Gratis <- <-- --> Wer welche findet kann sie behalten <-- German Nato Corps |
|
08.03.2009, 12:45 | #27 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Die7 Zeilen aus den beiden SQS-Skripten in ein SQF-Sript verpackt. Es ist nur noch ein Skript erforderlich. Zum besseren Verständnis sollte mann immer Kommentare setzen. Für eine Zeile beginnen sie mit //
FallschirmsprungSpielergruppe.sqf mit Kommentaren Code:
//nur Player if(!local player)exitwith {}; //Einmaliger Aufruf da Endlosschleife [Vienna, 08.03.2009] // //Betritt ein spielbarer Soldat einen Auslöserbereich, // dann erfolgt ein Fallschirmabsprung der Gruppe // des Soldaten an einem Marker. // //Die Position des Auslösers und Markers kann während dem Spiel verstellt werden. // //Parameter: [<Auslösername>,<"MarkerName">] // //Aufrufbeispiel: // Null=[AlleSeiten,"AbsprungZiel"] execVM "FallschirmsprungSpielergruppe.sqf" //lokale Variable initialisieren private ["_trg","_mkr","_pos","_grp"]; //Parameter auslesen: //_trg: Auslöser in welchem der Absprung ausgelöst wird _trg = _this select 0; //_mkr: Marker der die Absprungposition bestimmt _mkr = _this select 1; //Endlosschleife while {true} do { //_pos: Absprungposition _pos = getMarkerPos _mkr; { //Abfrage ob der spielbare Soldat im Auslöserbereich if (_x in list _trg) then { //_grp: Gruppe des spielbaren Soldaten _grp = units group _x; { //Fallschirm erstellen _f=createVehicle["Parachute",_pos,[],50,"FLY"]; //Soldat in Fallschirm setzen _x moveindriver _f; //kein Soldat im Fallschirm, dann diesen löschen if(count crew _f==0)then{deletevehicle _f} } forEach _grp //für alle Gruppenmitglieder } } forEach switchableUnits; //für alle spielbaren Soldaten sleep 5 } Ohne Kommentare sieht man, dass das Skript eigentlich sehr kurz ist. FallschirmsprungSpielergruppe.sqf ohne Kommentare Code:
if(!local player)exitwith {}; private ["_trg","_mkr","_pos","_grp"]; _trg = _this select 0; _mkr = _this select 1; while {true} do { _pos = getMarkerPos _mkr; { if (_x in list _trg) then { _grp = units group _x; { _f=createVehicle["Parachute",_pos,[],50,"FLY"]; _x moveindriver _f; if(count crew _f==0)then{deletevehicle _f} } forEach _grp } } forEach switchableUnits; sleep 5 } Leerzeichen dienen nur der besseren Übersicht. Auch können, im Gegensatz zur SQS-Syntax, Zeilen beliebig gesetzt werden. Mehrere Anweisungen im Hauptblock oder in einem Abschnitt { } werden durch ; getrennt. Hier zwei Links welche dir zum besseren Verständnis helfen. Kontrollstrukturen: Control Structures - Bohemia Interactive Community Skript Script (File) - Bohemia Interactive Community Sieh dir auch immer die Links darin an! Die Beispielmission im Anhang mit dem SQF-Skript. |
08.03.2009, 16:41 | #28 (permalink) |
Registriert seit: 23.10.2008
Beiträge: 120
|
OJe, oje,oje,
das muss ich mir mal alles in Ruhe reinziehen. Gut, dass ich mich vor paar Jahren gezwungen habe, mein Englisch auszubauen und zu verbessern. Was soll den das genau bedeuten? Code:
//nur Player if(!local player)exitwith {}; Code:
//Aufrufbeispiel: // Null=[AlleSeiten,"AbsprungZiel"] execVM "FallschirmsprungSpielergruppe.sqf" //lokale Variable initialisieren private ["_trg","_mkr","_pos","_grp"]; //Parameter auslesen: //_trg: Auslöser in welchem der Absprung ausgelöst wird _trg = _this select 0; //_mkr: Marker der die Absprungposition bestimmt _mkr = _this select 1; Code:
//Endlosschleife while {true} do Code:
//_pos: Absprungposition _pos = getMarkerPos _mkr; { //Abfrage ob der spielbare Soldat im Auslöserbereich if (_x in list _trg) then { //_grp: Gruppe des spielbaren Soldaten _grp = units group _x; { //Fallschirm erstellen _f=createVehicle["Parachute",_pos,[],50,"FLY"]; //Soldat in Fallschirm setzen _x moveindriver _f; //kein Soldat im Fallschirm, dann diesen löschen if(count crew _f==0)then{deletevehicle _f} } forEach _grp //für alle Gruppenmitglieder } } forEach switchableUnits; //für alle spielbaren Soldaten sleep 5 } Ich wusste auch vieles nicht: Z.B dass dieses forEach switchableUnits sich auf so viele dinge Gleichzeitig beziehen kann. Hätte ich nicht gedacht!
__________________
Besser verrückt, als normal und langweilig zu sein. Wer den allen gesellschaftlichen Normen und Regeln folgen will, wird zwangsläufig irgendwann am Fenster stehen und sich aufregen, weil jemand auf der Straße ein Taschentuch nicht aufheben möchte. Man wird zu jemanden, den man schon als Kind gehasst hat. Dann bin ich lieber verrückt und glücklich, durchgeknallt, aber interessant -> einzigartig! |
08.03.2009, 18:05 | #29 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Was soll den das genau bedeuten?
if(!local player)exitwith{}; Wenn an dem PC kein Spieler sitzt, dann wird das Skript abgebrochen. Also an einem Server. Doch worauf bezieht sich das true? while { Bedingung } do {...Befehle...} Die Befehle werden so lange ausgeführt, wie die Bedingung zutrifft. Da true = Wahr ist, werden diese Befehle unendlich ausgeführt. In der SQS-Syntax sieht eine Endlosschleife so aus: #Loop ... Befehle ... goto "Loop" forEach ist ein starker Befehl der alle Inhalte eines Arrays durchlauft. { _x setpos [0,0] } forEach [Sodat1,Soldat2,Soldat3, usw.] _x steht immer für den Soldaten auf dem gerade der Durchlaufzeiger steht. Such dir einmal im Internet einige Links raus, wo die Grundsätze des Programmierens erklärt werden. Für die speziellen Befehle von ArmA hast du ja schon die Links. |
11.03.2009, 03:25 | #30 (permalink) |
Registriert seit: 23.10.2008
Beiträge: 120
|
Wie bekomm ich die Fallschirme um 180 grad gedreht?
Der Befehl setdir funktioniert nicht im flug! Code:
{_f=createVehicle["Parachute",_pos,[],50,"FLY"];_f setDir 180;_x moveindriver _f;if(count crew _f==0)then{deletevehicle _f}} forEach _grp
__________________
Besser verrückt, als normal und langweilig zu sein. Wer den allen gesellschaftlichen Normen und Regeln folgen will, wird zwangsläufig irgendwann am Fenster stehen und sich aufregen, weil jemand auf der Straße ein Taschentuch nicht aufheben möchte. Man wird zu jemanden, den man schon als Kind gehasst hat. Dann bin ich lieber verrückt und glücklich, durchgeknallt, aber interessant -> einzigartig! |
11.03.2009, 20:52 | #32 (permalink) |
Registriert seit: 23.10.2008
Beiträge: 120
|
ne geht leider nicht. Ich hab auch noch andere Varianten ausprobiert, doch funktioniert nicht. Vielleicht ginge es ohne "fly" oder wenn man den Befehl
beim create unterbringt? Zum Mäuse melken. es liegt am Fallschirm. Es ist ja im Flug.
__________________
Besser verrückt, als normal und langweilig zu sein. Wer den allen gesellschaftlichen Normen und Regeln folgen will, wird zwangsläufig irgendwann am Fenster stehen und sich aufregen, weil jemand auf der Straße ein Taschentuch nicht aufheben möchte. Man wird zu jemanden, den man schon als Kind gehasst hat. Dann bin ich lieber verrückt und glücklich, durchgeknallt, aber interessant -> einzigartig! |
11.03.2009, 21:18 | #33 (permalink) |
Registriert seit: 23.10.2008
Beiträge: 120
|
Wenn es zu viel Zeit kostet, kann ich auch drauf verzichten. So extrem wichtig ist es nicht. Ich finde es aber irgendwie interessant, was man da machen könnte. Mir wurde auch so viel geholfen!
Ich versuche jetzt das alles auf was anderes zu übertragen und hoffe so auf ein klein Lerneffekt. Bin gespannt, ob ich es hinbekomme. Dann werde ich mir die Grundsätze rein ziehen.
__________________
Besser verrückt, als normal und langweilig zu sein. Wer den allen gesellschaftlichen Normen und Regeln folgen will, wird zwangsläufig irgendwann am Fenster stehen und sich aufregen, weil jemand auf der Straße ein Taschentuch nicht aufheben möchte. Man wird zu jemanden, den man schon als Kind gehasst hat. Dann bin ich lieber verrückt und glücklich, durchgeknallt, aber interessant -> einzigartig! |
12.03.2009, 00:31 | #34 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Spar dir die Mühe! Es geht den Fallschirm in eine bestimmt Richtung zu drehen, aber er richtet sich sofort wieder nach Norden aus. Das ist einer der Bugs des Spiels.
Die Fallschirme sollten ja eigentlich steuerbar sein. Vielleicht ist das eine Überraschung in ArmA II. Es müsste möglich sein, ihnen einen Wegpunkt zu geben, den sie anfliegen. |
12.03.2009, 07:36 | #35 (permalink) |
Registriert seit: 03.01.2008
Alter: 84
Beiträge: 6.552
|
Wenn Du möchtest das die Einheiten an einem bestimmten Punkt landen empfehle ich Dir Mando Chute:
Mando Chute by Mandoble @ OFPEC Editors Depot Da wird der Schirm ständig in die richtige Richtung gedreht. Nein, kein Addon, Script. Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels. |
12.03.2009, 16:58 | #36 (permalink) |
Registriert seit: 23.10.2008
Beiträge: 120
|
Achso und cool danke.
Die Grafik von Arma II sieht ganz gut aus und ich hoffe, dass bei der Veröffentlichung nicht ganz so viele Bugs vorhanden sind wie bei Arma I. Das war echt schrecklich und die Performance erst, war das Letzte.
__________________
Besser verrückt, als normal und langweilig zu sein. Wer den allen gesellschaftlichen Normen und Regeln folgen will, wird zwangsläufig irgendwann am Fenster stehen und sich aufregen, weil jemand auf der Straße ein Taschentuch nicht aufheben möchte. Man wird zu jemanden, den man schon als Kind gehasst hat. Dann bin ich lieber verrückt und glücklich, durchgeknallt, aber interessant -> einzigartig! |
Stichworte |
spielbar |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
If-else abfrage ob player in einer benannten gruppe ist... | Mr.g-c | Editing | 1 | 28.08.2008 11:20 |
ArmA² mit jetzigem PC spielbar? | Schubi | Community | 41 | 24.03.2008 19:08 |
script das eine einheit nicht schießt | Thorus | Editing | 4 | 26.02.2008 16:17 |
SWAT´s erstes eigenes Addons ist eine Browning | SWAT | Mod und Addon Ecke | 34 | 09.03.2006 06:45 |
das ist eine fehlermeldung... | stephsen | Hilfe | 3 | 28.07.2005 17:39 |