HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Klammern aller Art in Scripts (https://hx3.de/editing-scripting-167/klammern-aller-art-scripts-22570/)

LuLeBe 12.05.2013 16:48

Klammern aller Art in Scripts
 
Es gibt ja verschiedene Klammern und ähnliches in ArmA-Scripts:
(), {}, [], ""

Nun ist mir bei den meisten die Nutzung klar, bei manchen aber nicht. Ich schreibe hier mal auf, was ich glaube, dass die verschiedenen Sorten bedeuten, darunter einige Beispiele, die mich aber verwirren.

1. ()
Code darin wird zuerst ausgeführt:
Code:

5 == 5 * (5 - 4)
player setpos ((nearestBuilding player) buildingPos 1);

2. []
Damit werden Arrays deklariert.
Code:

pos = [x, y, z];
3. {}
Hierdrin steht Code, der als ein Argument zusammengefasst werden muss.
Code:

_handle = [] spawn {hint "Hi!"; player setpos [100, 500, 0]};
4. ""
Hiermit werden Strings ausgewiesen.
Code:

hint "Hello World!";
_classname = "LAND_LAMP_SMALL_EP1";

5. Merkwürdiges:
Zwei Sachen finde ich nun komisch, wie wird das erklärt:
- Die Wiki-Seite zu While-Schleifen , zwei Sachen, die ich komisch finde:
Code:

while "a>b" do {a=a+1}


{
  while {(not canStand _x) and (alive _x)} do {
    _x setDammage (getDammage _x) - 0.01;
  };
} forEach units group unitname;


if (x == 5) then {
  hint "true";
};


onMapSingleClick "player setpos _pos";

Warum ist bei der ersten Bsp-Schliefe der Wiki-Seite die Bedingung ein String, beim zweiten Bsp. ein Code und bei if-Abfragen immer in normalen Klammern?
Außerdem ist beim OnMapSingleClick-Kommando laut Wiki der Code nicht in {}, sondern in "", warum das?

Vienna 12.05.2013 22:07

Diese () Klammern sind in den Beispielen innerhalb von Klammern oft nicht korrekt gesetzt.

while "a>b" do {a=a+1} ist ein falsches Beispiel. Mit "" geht das nicht.

Warum bei while geschweifte, und nicht wie bei if runde Klammern in der Abfrage verwendet werden, sollte dieses Beispiel veranschaulichen:

Code:

a=0;
b=4;
while {a = a + 1; a <= b} do {player groupChat format["%1 %2",a,b]};

Code wird in "" und {} geschrieben, wobei mit "" noch von OFP herrührt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 Uhr.

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