Einzelnen Beitrag anzeigen
Alt 10.08.2013, 13:56   #4 (permalink)
Moerderhoschi
Armed-Assault.de Team10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 38
Beiträge: 2.666
Standard

call {_b = false; {if (typeof _x == "USMC_SOLDIER") then {_b = true}} foreach thislist; _b }

_b ist eine lokale Variable innherhalb der Funktion {} der am Anfang der boolsche Wert false zugewiesen wird.

Ist die Bedingung (typeof _x == "USMC_SOLDIER") wahr so wird die lokale Variable _b auf true gesetzt und am ende der Funktion true zurueckgegeben da die Condition des Trigger einen boolschen Wert erwartet.

Thislist ist ein Array der alle zutreffenden Einheiten die sich im Triggerbereich befinden und der eingestellten Seite entsprechen enthaelt.

foreach arbeitet einen Array ab der ja durch thislist im Trigger bereitgestellt wird.


Mit call {_b = false; {if (typeof _x == "USMC_SOLDIER") then {_b = true}} foreach thislist; _b }

wird also zuerst die lokale Variable, nur gueltig in den {}, auf false gesetzt.

Dannach wird eine Abfrage aller Einheiten im Triggerbereich, bedingt durch {} foreach thislist, durchgefuehrt.

Diese Abfrage die ja also nun fuer jede Einheit im Triggerbereich mit der eingestellten Seite entsprechend durchgefuehrt wird ist also if (typeof _x == "USMC_SOLDIER") then {_b = true} wobei _x hier der Platzhalter fuer das jeweilige Element/Einheit im Array ist.

Sollte also mindestens eine Einheit oder mehrere Einheiten im Array Thislist den Typ "USMC_Soldier" haben so wird die lokale Variable _b auf true gesetzt und der Trigger fuehrt anschließend das aus was in On act: steht.

{if (typeof _x == "USMC_SOLDIER") then {_x setdamage 1}} foreach thislist

Dort wird der Array der durch thislist nocheinmal erstellt wird wieder abgearbeitet und diesmal wird eben nicht eine lokale variable _b auf true gesetzt sondern die Einheiten die dem Typ "USMC_SOLDIER" entsprechen einen Damagewert von 1 gegeben. Dies gilt fuer alle Einheiten im Array mit dem Typ "USMC_SOLDIER"

Das ist das was in dem Trigger passiert. Hoffe meine Darstellung der Vorgaenge war fuer dich nachvollziebar.

gruß
hoschi
__________________


Moerderhoschi ist offline