Armed-Assault.de Twitter


Editing The world is a Script - write it!

Antwort
 
Themen-Optionen Ansicht
Alt 08.03.2009, 00:55   #21 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

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!
Hercules-HH ist offline   Mit Zitat antworten
Alt 08.03.2009, 01:23   #22 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

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 geht auch nicht, aber du weißt, was ich meine.
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!
Hercules-HH ist offline   Mit Zitat antworten
Alt 08.03.2009, 02:34   #23 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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
Vienna ist offline   Mit Zitat antworten
Alt 08.03.2009, 07:19   #24 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

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}
Sind die Leertasten (die Abstände) vor dem ausgeklammerten in einer SQF-Datei nötig oder nur um ein Überblick zu bekommen?
__________________
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!
Hercules-HH ist offline   Mit Zitat antworten
Alt 08.03.2009, 11:10   #25 (permalink)
500 Beiträge
 
Registriert seit: 07.01.2008
Beiträge: 653
[GNC]Lord-MDB eine Nachricht über ICQ schicken
Standard

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
[GNC]Lord-MDB ist offline   Mit Zitat antworten
Alt 08.03.2009, 11:11   #26 (permalink)
500 Beiträge
 
Registriert seit: 07.01.2008
Beiträge: 653
[GNC]Lord-MDB eine Nachricht über ICQ schicken
Standard

ja das dient nur zur besseren übersicht.

so sqf

PHP-Code:
_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

PHP-Code:
_scanner=_this select 0;

#start
_unitscanner=list _scanner;
?((
count switchableUnits) == 0):exit;
{?((
alive _x) and (_x in _unitscanner)):_unitgroup =group _x;
_leadergroup =leader _unitgroup;_leadergroup blablablablabla;
} foreach 
switchableUnits
~
1
goto "start" 
__________________


--> -> Rechtschreibfehler sind Gratis <- <--
--> Wer welche findet kann sie behalten <--



German Nato Corps
[GNC]Lord-MDB ist offline   Mit Zitat antworten
Alt 08.03.2009, 12:45   #27 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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.
Angehängte Dateien
Dateityp: zip Fallschirmsprung_Spielergruppe.Intro.zip (3,0 KB, 24x aufgerufen)
Vienna ist offline   Mit Zitat antworten
Alt 08.03.2009, 16:41   #28 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

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 {};
Das verstehe ich:
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;
Doch worauf bezieht sich das true?
Code:
//Endlosschleife
while {true} do
Das verstehe ich zwar, aber darauf kommen, ...
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
}
Danke für die MÜhe. Ich ziehe mir das erst mal alles rein und vielleicht kann ich dann ja etwas besser und öfter erlerntes einsetzten.

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!
Hercules-HH ist offline   Mit Zitat antworten
Alt 08.03.2009, 18:05   #29 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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.
Vienna ist offline   Mit Zitat antworten
Alt 11.03.2009, 03:25   #30 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

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!
Hercules-HH ist offline   Mit Zitat antworten
Alt 11.03.2009, 10:03   #31 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Porbiere es nach dem einsetzen der Soldaten in den Fallschirm:

...; _x moveindriver _f; vehicle _x setDir 180;...
Vienna ist offline   Mit Zitat antworten
Alt 11.03.2009, 20:52   #32 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

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!
Hercules-HH ist offline   Mit Zitat antworten
Alt 11.03.2009, 21:18   #33 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

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!
Hercules-HH ist offline   Mit Zitat antworten
Alt 12.03.2009, 00:31   #34 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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.
Vienna ist offline   Mit Zitat antworten
Alt 12.03.2009, 07:36   #35 (permalink)
10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Xeno
 
Registriert seit: 03.01.2008
Alter: 84
Beiträge: 6.552
Standard

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.
Xeno ist offline   Mit Zitat antworten
Alt 12.03.2009, 16:58   #36 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

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!
Hercules-HH ist offline   Mit Zitat antworten
Antwort

Stichworte
spielbar


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ä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


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119