![]() |
#1 (permalink) |
![]() ![]() Registriert seit: 23.10.2008
Beiträge: 120
|
![]()
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 ![]() ![]() |
![]() |
![]() |
![]() |
#3 (permalink) |
![]() ![]() Registriert seit: 23.10.2008
Beiträge: 120
|
![]()
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 ![]() ![]() |
![]() |
![]() |
![]() |
#4 (permalink) |
![]() |
![]()
nö mehr so (sqf)
wenn ne bestimmte abfragen wills PHP-Code:
PHP-Code:
__________________
--> -> Rechtschreibfehler sind Gratis <- <-- --> Wer welche findet kann sie behalten <-- ![]() German Nato Corps Geändert von [GNC]Lord-MDB (06.03.2009 um 22:25 Uhr). |
![]() |
![]() |
![]() |
#5 (permalink) |
![]() ![]() Registriert seit: 23.10.2008
Beiträge: 120
|
![]()
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
__________________
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 ![]() ![]() |
![]() |
![]() |
![]() |
#6 (permalink) |
![]() |
![]()
Ok dann einen Trigger auf der Map machen.
Seite einstellen die auslöst und mehrfach einstellen. Einen namen geben zb scanner1 PHP-Code:
__________________
--> -> Rechtschreibfehler sind Gratis <- <-- --> Wer welche findet kann sie behalten <-- ![]() German Nato Corps |
![]() |
![]() |
![]() |
#7 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]()
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. |
![]() |
![]() |
![]() |
#8 (permalink) |
![]() ![]() Registriert seit: 23.10.2008
Beiträge: 120
|
![]()
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 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 ![]() ![]() |
![]() |
![]() |
![]() |
#9 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]()
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. |
![]() |
![]() |
![]() |
#10 (permalink) |
![]() ![]() Registriert seit: 23.10.2008
Beiträge: 120
|
![]()
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 ![]() ![]() |
![]() |
![]() |
![]() |
#11 (permalink) |
![]() |
![]()
jo klar
__________________
--> -> Rechtschreibfehler sind Gratis <- <-- --> Wer welche findet kann sie behalten <-- ![]() German Nato Corps |
![]() |
![]() |
![]() |
#12 (permalink) |
![]() ![]() Registriert seit: 23.10.2008
Beiträge: 120
|
![]()
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
__________________
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 ![]() ![]() |
![]() |
![]() |
![]() |
#13 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]()
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. |
![]() |
![]() |
![]() |
#14 (permalink) |
![]() ![]() Registriert seit: 23.10.2008
Beiträge: 120
|
![]()
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 ![]() ![]() |
![]() |
![]() |
![]() |
#15 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]() 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" |
![]() |
![]() |
![]() |
#16 (permalink) |
![]() ![]() Registriert seit: 23.10.2008
Beiträge: 120
|
![]()
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 ![]() ![]() |
![]() |
![]() |
![]() |
#17 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]()
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.
|
![]() |
![]() |
![]() |
#18 (permalink) |
![]() ![]() Registriert seit: 23.10.2008
Beiträge: 120
|
![]()
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 ![]() ![]() |
![]() |
![]() |
![]() |
#19 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
![]() 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. |
![]() |
![]() |
![]() |
#20 (permalink) |
![]() ![]() Registriert seit: 23.10.2008
Beiträge: 120
|
![]()
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 ![]() ![]() |
![]() |
![]() |
![]() |
Stichworte |
spielbar |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
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 |