Armed-Assault.de Twitter


Editing The world is a Script - write it!

Antwort
 
Themen-Optionen Ansicht
Alt 06.03.2009, 18:28   #1 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard Ist eine Einheit spielbar? - Abfrage

  • Wie frage ich, ob eine Einheit spielbar ist?
Falls beantwortet:
  • Und woher wisst Ihr solche Sachen
Mir helfen diese Scripting Commands, nur wenn ich die Beispiele wenigsten bisschen verstehe:
Category:Scripting Commands ArmA - Bohemia Interactive Community
Muss man da noch einige Sachen wissen oder lesen könne?
__________________
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 06.03.2009, 18:38   #2 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 52
Beiträge: 1.930
Standard

Ich nutze ausschliesslich die Seite... ...und bin auf folgenden Befehl gestossen:

switchableUnits

Buliwyf ist offline   Mit Zitat antworten
Alt 06.03.2009, 19:43   #3 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

Also, das hab ich ehrlich auch gesehen, aber mich irritiert das Array. Was soll das den heißen?

Ich gehe jetzt da von aus, dass ich so was schreiben müsste:

? _x=switchableUnits : goto"Nein";
__________________
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 06.03.2009, 23:19   #4 (permalink)
500 Beiträge
 
Registriert seit: 07.01.2008
Beiträge: 653
[GNC]Lord-MDB eine Nachricht über ICQ schicken
Standard

nö mehr so (sqf)

wenn ne bestimmte abfragen wills

PHP-Code:
_result =switchableUnits;
if (
alive (_result select 0)) then {_aliveunit0 true;}; 
wennn alle abfragen will und bei der ersten gefunden die lebt soll was passieren dann so

PHP-Code:
{
if (
alive _xthen 
       
{
        
"jetzt geht was"
       
};
} foreach 
switchableUnits
__________________


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



German Nato Corps

Geändert von [GNC]Lord-MDB (06.03.2009 um 23:25 Uhr).
[GNC]Lord-MDB ist offline   Mit Zitat antworten
Alt 07.03.2009, 01:20   #5 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

Ich wollte mit einem Auslöser checken, ob sich in dem Bereich mindestens eine spielbare Einheit befindet. Wenn ja sollen alle Einheiten in diesem Bereich angesprochen werden.

Besser wäre sogar: Nur das ganze Team, indem sich spielbare Einheiten befinden. Eine spielbare Einheit ist auf jeden Fall Teamleader.

Aber damit bin ich auch zufrieden:

Code:
#Start
_result =switchableUnits;
if (alive (_result select 0)) then {_gehtklar0 = true;} else {_gehtklar0 = false};
#Wasnu
? !_gehtklar0 : goto"Ende";
#Klar
blablabla Action blablabla
#Ende
exit
Hab ich das jetzt klar und deutlich verstanden oder ist die Sache doch noch unklar für mich?
__________________
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 07.03.2009, 12:59   #6 (permalink)
500 Beiträge
 
Registriert seit: 07.01.2008
Beiträge: 653
[GNC]Lord-MDB eine Nachricht über ICQ schicken
Standard

Ok dann einen Trigger auf der Map machen.
Seite einstellen die auslöst und mehrfach einstellen.
Einen namen geben zb scanner1


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;
           }; 
__________________


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



German Nato Corps
[GNC]Lord-MDB ist offline   Mit Zitat antworten
Alt 07.03.2009, 14:49   #7 (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

Mit dieser Zeile wird für jede lebende spielbare Figur im Auslöserbereich das Skript aufgerufen:

{ if (_x in list TriggerName) then {_x exec "Test.sqs"} } forEach switchableUnits

Im Anhang ein Beispiel, welches ein Test-Skript über je einen Auslöser für West und Ost aufruft.
Angehängte Dateien
Dateityp: zip Spieler_abfragen.Intro.zip (1,8 KB, 38x aufgerufen)
Vienna ist offline   Mit Zitat antworten
Alt 07.03.2009, 20:01   #8 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

Cool, danke.

_leadergroup ist nun also die lokale Variable, also alle die in der Gruppe der spielbaren Einheit sind.

Mein Problem ist nun: Ich habe noch nie richtig eine SQF-Datei erstellt.

Beende ich die Datei auch mit einem "exit"? Kann ich auch mit goto"Punktx" springen?
Worauf muss ich so achten?

Ich hab nur die Beschreibung der Datei gelesen, also wo zu sie gut ist,
Oje ein Beispiel wäre gut.

So, zuerst das was ich schon in sqs gemacht habe (es Funktioniert alles prima). Jeder bekommt ein Fallschirm:

Code:
#Start
? !not alive Falls1 : goto"Fallschirm2";
Falls1 = "Parachute" createVehicle getpos Posi; Falls1 setPos [(getPos Posi select 0),(getPos Posi select 1),300];
#movein1
~0.5
{_x moveindriver Falls1} forEach list Fsprung;
#Fallschirm2
? !not alive Falls2 : goto"Fallschirm3";
Falls2 = "Parachute" createVehicle getpos Posi; Falls2 setPos [(getPos Posi select 0),(getPos Posi select 1),300];
#movein2
~0.5
{_x moveindriver Falls2} forEach list Fsprung;
#Fallschrim3
usw.

aber nun muss an Stelle von _x das
_leadergroup hin und alles muss in sqf geschrieben werden.
Code:

if (!not alive Falls1) then
  { 
    Falls1 = "Parachute" createVehicle getpos Posi; Falls1 setPos [(getPos Posi select 0),(getPos Posi select 1),300];
      }
    else
      {
        goto"Fallschirm2"
      }
  }
_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 moveindriver Falls1;
               };
           } foreach switchableUnits; 
           sleep 1;
           };
#Fallschirm2
Ich bekomm das nicht hin. Und wie achtet Ihr den auf Abstände?

while {((
count switchableUnits) =! 0)} do
{
_unitscanner=list _scanner;

hier zum Beispiel sind es 10 Leertasten vor _unitscanner=...

__________________
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 07.03.2009, 21:56   #9 (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

Ich dachte mir, dass du mit SQF-Syntax nicht so vertraut bist. Darum habe ich in meinem Beispiel die Test.sqs für die SQS-Syntax genommen. Im 1. Skript siehst du auch wie du die Liste mit der Gruppe des Leaders bekommst.

Hast du dir das angesehen?


Die Zeilen in der Test.sqs ersetzt du durch diese 3 Zeilen:

_grp = units group _this
_pos = position _this
{_f=createVehicle["Parachute",_pos,[],50,"FLY"];_x moveindriver _f} forEach _grp


Dann hast du auch deinen Fallschirmabsprung der Gruppe. _pos musst du noch auf deine gewünschte Position ändern.

Den Fallschirmabsprung siehst du im 2. Test.sqs im Beispiel in dem Anhang.
Angehängte Dateien
Dateityp: zip Spieler_abfragen_fallschirm.Intro.zip (1,8 KB, 36x aufgerufen)
Vienna ist offline   Mit Zitat antworten
Alt 07.03.2009, 22:10   #10 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

Sorry, sonst lassen wir das erst mal so stehen. Das ist Banane, was ich geschrieben habe.

Ich eröffne neues Thema: Umgang mit SQF-Datein

So macht es wenig Sinn, wenn mir alles vorgekaut wird, auch wenn es gut gemeint ist.

danke erst mal!
__________________
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 07.03.2009, 22:19   #11 (permalink)
500 Beiträge
 
Registriert seit: 07.01.2008
Beiträge: 653
[GNC]Lord-MDB eine Nachricht über ICQ schicken
Standard

jo klar
__________________


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



German Nato Corps
[GNC]Lord-MDB ist offline   Mit Zitat antworten
Alt 07.03.2009, 22:25   #12 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

Achso, ja danke. Dein Beitrag hab ich zu spät besehen.

Ja ich hab die Datei aufgemacht, aber nicht die Mission selber.

Das kommt jetzt in den Trigger. Trigger heißt Fspring
Code:
{ if (_x in list Fsprung) then {_x exec "Test.sqs"} } forEach switchableUnits
Gleich mehr...
__________________
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 07.03.2009, 22:27   #13 (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

Verstehe nicht, warum du jetzt aufgibtst. Die insgesamt 4 Zeilen die ich dir hier angeführt habe sind zwar SQF-Syntax, aber für normale SQS-Dateien geeignet.

Solange du es nicht schaffst diese Zeilen in deine normalen Skripte einzubinden, brauchst du dich mit SQF-Dateien gar nicht erst bemühen.
Vienna ist offline   Mit Zitat antworten
Alt 07.03.2009, 22:38   #14 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

Die Datei:

Code:
_leader = _this
_grp = units group _this
_pos = getMarkerPos "Abwurf"

#Start
? !not alive Falls1 : goto"Fallschirm2";
{Falls1=createVehicle["Parachute",_pos,[],50,"FLY"]; _x moveindriver Falls1} forEach _grp
#Fallschirm2
? !not alive Falls2 : goto"Fallschirm3";
{Falls2=createVehicle["Parachute",_pos,[],50,"FLY"]; _x moveindriver Falls2} forEach _grp
#Fallschirm3

Ja stimmt, hab grade gecheckt, dass ich das auch machen kann.
__________________
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 07.03.2009, 22:41   #15 (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

Zitat von Hercules-HH Beitrag anzeigen

Das kommt jetzt in den Trigger. Trigger heißt Fspring

Code:
{ if (_x in list Fsprung) then {_x exec "Test.sqs"} } forEach switchableUnits
Gleich mehr...
In den Trigger, welcher den Bereich abdeckt, kommt das nicht! Diese Zeile musst du in eine Dauerschleife in einem eigenen Skript einfügen.

z.B.

#Loop
{ if (_x in list Fsprung) then {_x exec "Test.sqs"} } forEach switchableUnits
~5
goto "Loop"
Vienna ist offline   Mit Zitat antworten
Alt 07.03.2009, 22:46   #16 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

oh ja klar. was schreib ich hier eigentlich!!!
__________________
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 07.03.2009, 23:04   #17 (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

Ich habe dir noch ein Beispiel gemacht mit einem Auslöser für alle Spieler (West, Ost, usw.). Über einen Auslöser wird jetzt das Skript "Loop.sqs" mit der Dauerschleife gestartet. Es gibt keinen Funkaufruf mehr. Du gehst nach Norden in den Auslöserbereich und sprigst dann mit deiner Gruppe bei einem Marker über dem Dorf ab. Das kannst du auch in Multiplayer testen.
Angehängte Dateien
Dateityp: zip Spieler_abfragen_alle.Intro.zip (2,0 KB, 35x aufgerufen)
Vienna ist offline   Mit Zitat antworten
Alt 07.03.2009, 23:51   #18 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

danke nochmal. Echt nett.

Ich hab gar nicht verstanden, dass die Fallschirme einfach immer wieder ohne Grenze erschaffen werden. Deshalb wollte ich immer Namen geben und prüfen, ob die schon benutzt werden.

Super das geht ja echt gut. Und das mit _f (lokale Variable). Das wusste ich auch nicht. Die haben jetzt keinen Name, stimmts?!

Jedenfalls hilft mir das auch bei einigen anderen Sachen, die ich mache werde.

Noch mal danke, auch an GNC L.-MDB.
__________________
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, 00:26   #19 (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

Zitat von Hercules-HH Beitrag anzeigen


Und das mit _f (lokale Variable). Das wusste ich auch nicht. Die haben jetzt keinen Name, stimmts?!

Du kannst deinen Variablen beliebige Namen geben. Die lokalen müssen mit dem Unterstrich beginnen, die anderen mit einem Buchstaben.

_lokaleVariable sind nur im jeweiligen Skript sichtbar. Haben sie in mehreren Skripten den gleichen Namen, dann können sie unterschiedliche Werte enthalten, weil die eben nur lokal im jeweiligen Skript sichtbar sind. Wird das Skript geschlossen, dann ist auch der Wert der Variablen gelöscht.

globaleVariable sind auf deinem PC überall in ArmA sichtbar. Wird in einem Skript der Wert geändert, dann ist die Änderung auch in anderen Skripten vorhanden. Aber nur auf deinem PC. Werte solcher Variablen bleiben bis zum Spielende gespeichert.

publikeVariable sind globaleVariable, welche auf allen am Spiel beteiligten PCs sichtbar sind. Wird deren Wert auf einem PC geändert, dann muss das aber extra zu den anderen PCs übertragen werden. Andernfalls sind sie nur noch globaleVariable.

Die Übertragung geht mit dem Befehl publicVariable.

z.B.

GesamtPunkte = 500
publicVariable "GesamtPunkte"

und schon ist die Änderung auf allen PCs sichtbar.


Fallschirme (und Geschoße) löschen sich nach Gebrauch selbständig. Darum brauchen sie auch keine dauerhafte Namen. Anderen Objekten gibt man einen Namen, damit man sie ansprechen und gegebenenfalls auch löschen kann.
Vienna ist offline   Mit Zitat antworten
Alt 08.03.2009, 01:32   #20 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 23.10.2008
Beiträge: 120
Standard

Oje es gibt ein kleines Problem:

Wenn es 3 Spielbare Einheiten in einer Gruppe von 5 Soldaten gibt werden die Fallschirme ich glaube 3 mal 5 genommen. Also fliegen noch einige andere Fallschirme durch die Gegend ohne Besatzung.

Mir fällt nur auf die Schnelle ein, die leeren Fallschirme schnell zu löschen oder das nur auf eine spielbare Einheit beziehen, die Teamleader ist.

Oder ich mach vielleicht nur eine Einheit spielbar pro Gruppe, wenn es sein muss- mal schau.

(In meiner Mission gibt es nicht mehr als 3 Spielbare Soldaten in einer Gruppe, aber mindestens einer (wenn die anderen sterben). Ich glaube nicht dass das weiter hilft.)
__________________
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)
 
Themen-Optionen
Ansicht

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 12:20
ArmA² mit jetzigem PC spielbar? Schubi Community 41 24.03.2008 20:08
script das eine einheit nicht schießt Thorus Editing 4 26.02.2008 17:17
SWAT´s erstes eigenes Addons ist eine Browning SWAT Mod und Addon Ecke 34 09.03.2006 07:45
das ist eine fehlermeldung... stephsen Hilfe 3 28.07.2005 18: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