10.06.2013, 16:24 | #1 (permalink) |
Registriert seit: 09.12.2006
Beiträge: 84
|
Abfrage eines Arrays
Hallo zusammen,
brauche hilfe bei einem Script. Ich habe einen Auslöser das ein script startet sobald ein player vorhanden ist, es wird geprüft ob dieser in der Gruppe A oder B ist. Ich habe die Soldaten der Gruppe A von s1-s8 bezeichnet und die der Gruppe B von s9-s16. Nun habe ich zwei Arrays erstellt: _grpalpha = [s1,s2,s3,s4,s5,s6,s7,s8]; _grpbravo = [s9,s10,s11,s12,s13,s14,s15,s16] wie muss ich nun die IF Abfrage gestalten ? Mit if (player in list _grpalpha) then.... geht es nicht ;:-( Ich hoffe auf eure hilfe.... Gruß Togo Geändert von Togo (10.06.2013 um 22:36 Uhr). |
10.06.2013, 17:12 | #2 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
if (player in list _grpalpha) then.... list gehört hier nicht rein, ist nur anzuführen wenn das Array eines Triggers abgefragt wird.
http://community.bistudio.com/wiki/list |
11.06.2013, 13:07 | #4 (permalink) |
Registriert seit: 09.12.2006
Beiträge: 84
|
Hallo Vienna,
hast Du evt. auch eine Idee warum das hier nicht funktioniert ? Code:
if ( isnil ("s1") && alive ("s1") ) then { "tele_to_alpha" setMarkerPos getPos s1 } Gruß Togo Geändert von Togo (11.06.2013 um 14:35 Uhr). |
11.06.2013, 15:04 | #5 (permalink) |
Registriert seit: 26.11.2006
Ort: Kiel, S-H
Alter: 58
Beiträge: 3.013
|
Wenn s1 kein Marker ist, wird es auch nicht in Anführungszeichen geschrieben ... und wenn doch macht das alive kein Sinn.
__________________
Nur ein Beispiel das zeigt wie BI "support" definiert: https://feedback.bistudio.com/T75547 |
11.06.2013, 15:12 | #7 (permalink) |
Registriert seit: 16.07.2010
Beiträge: 305
|
Du fragst zuerst ab, ob die globale Variable nicht definiert wurde und in der selben Abfrage überprüfst du, ob ein Text (String) lebt? Das gibt doch Fehler ohne Ende. Meiner Erfahrung nach sind && und || auch nicht das, was sie sein sollten, denn die zweite Bedingung wird trozdem immer überprüft und wirft somit auch die RPT voll. Also, solche Abfragen immer verschachteln! Lösung: Code:
if (!(isnil "s1")) then { if (alive s1) then { "tele_to_alpha" setMarkerPos (getPos s1); }; }; Geändert von Rockhount (11.06.2013 um 15:26 Uhr). |
11.06.2013, 17:43 | #11 (permalink) |
His Awesomeness!
Registriert seit: 25.07.2006
Ort: Regnum Borussiae
Beiträge: 9.282
|
Ich huldige all jenen, die sich mit SQF auseinandersetzen und trotz der Einschränkungen so coole Sachen für die Comm gezaubert bekommen. Das muss man ja auch erstmal schaffen
..sry für's hijacken. |
11.06.2013, 19:43 | #12 (permalink) |
Registriert seit: 09.12.2006
Beiträge: 84
|
Hi Leutz,
vielen Dank für eure Hilfe---- funktioniert nun. Wenn ihr mir noch bei diesem Respawn Script helfen könnt das einzubauen das auch Rucksäcke gespeichert und auch wieder ausgegeben werden wäre ich Wunschlos glücklich... .;-) Code:
maxrespawns = paramsArray select 0; myrespawns = 0; while {true} do { waitUntil {!alive player}; _p = player; _weapons = weapons _p; _magazines = magazines _p; if (myrespawns == maxrespawns) then { titleCut ["Du hast alle Leben verloren.......","BLACK FADED", 5]; sleep 3; titleCut ["Dein Einsatz is hiermit beendet.....","BLACK FADED", 5]; sleep 3; endMission "END3" // Hier musss eine Briefing.html existieren !! }; hidebody _p; // versteckt toten Körper ! deletevehicle _p; //löscht den toten Körper ! waitUntil {alive player}; _p = player; removeAllWeapons _p; removeAllItems _p; // dieser Eintrag existiert weil sonst das Funkgerät Acre 343 sich beim respawn verdoppelt. {_p addMagazine _x;} forEach _magazines; {_p addWeapon _x;} forEach _weapons; _primw = primaryWeapon _p; if (_primw != "") then { _p selectWeapon _primw; // Fix für Waffen mit Granatwerfer _muzzles = getArray(configFile>>"cfgWeapons" >> _primw >> "muzzles"); _p selectWeapon (_muzzles select 0); myrespawns = myrespawns + 1; _rest = maxrespawns - myrespawns; titleText [format ["Verfügbare Leben: %1",_rest],"PLAIN DOWN", 1]; hint "Weiter gehts....."; }; }; Nochmals Vielen Dank für die Mühe... Gruss Togo |
11.06.2013, 20:19 | #13 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Hallo Togo!
Vermutlich willst du wissen ob in MP eine wählbare Spielfigur deaktiviert ist? Objekt-Variable können nicht mit isNil abgefragt werden ob sie existieren. Ich habe auch sonst keinen entsprechenden Befehl gefunden. Um festzustellen ob z.B. ein Objekt mit Namen S1 im gestarteten Spiel überhaupt vorhanden ist kann man so vorgehen: Code:
_aktiv = false; if (!isNull S1) then {_aktiv = true}; if (!_aktiv) then {S1 = objNull}; Nun kannst du Abfragen wie die folgende tätigen: Code:
if (!isNull S1 and alive S1) then { hint "S1 lebt!" } else { if (isNull S1) then { hint "Objekt S1 ist nicht im Spiel vorhanden!" } else { hint "S1 ist tot!" } }; |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Abfrage für Musik/Track-Ende | spaccy | Editing & Scripting | 14 | 02.11.2012 19:19 |
Globale Arrays | TeTeT | Editing & Scripting | 4 | 10.09.2011 19:29 |
Servereinstellungen / CD-Key Abfrage | chaosram | Technische Fragen & Probleme | 7 | 15.09.2010 15:43 |