# 5. Aktionsmenü (addAction, holdAction, ACE, Hints & Intel)

# addAction (Grundlegendes)

Das Kommando ***addAction*** fügt einen Eintrag ins Aktionsmenü ("Mausradmenü") hinzu, welcher wiederum ein Script ausführt oder eine Variable definiert. Das Kommando ist vom Effekt her lokal, allerdings für alle Clients zugänglich, wenn man es in die Init-Box eines Objekts setzt! Man kann damit auch den gesamten Mission-Flow per Aktionsmenü steuern, wenn man der Figur des Spielleiters entsprechende Einträge zugänglich macht:

https://community.bistudio.com/wiki/addAction

  
**1. FARBE ändern:**

Hinter die ersten Anführungszeichen (als Bestandteil des "titels") im Init:

&lt;t color='#160ff3'&gt; (ROT)

Alle Farbcodes: <span style="text-decoration:underline;">https://www.webfx.com/web-design/color-picker/</span>

  
**2. AKTION hinzufügen:**

a) Führt Script/Function aus:  
  
 this addAction \["<span style="color:#339966;">&lt;t color='#FF0000'&gt;</span><span style="color:#800080;">title</span>",<span style="color:#ff9900;">"scripts\\arty.sqf"</span>,<span style="color:#993300;">nil</span>,<span style="color:#0000ff;">1.5</span>,<span style="color:#ff00ff;">false</span>,<span style="color:#00ccff;">true</span><span style="color:#ffffff;">,</span><span style="color:#ff0000;">""<span style="color:#ffffff;">,""</span></span>,<span style="color:#008000;">3</span>,false,"",""\];  
  
b) Globale Variable definieren (zum Beispiel zur Wegpunkt-Aktivierung):  
  
 <span style="color:#ff6600;">this</span> addAction \["<span style="color:#339966;">&lt;t color='#FF0000'&gt;</span><span style="color:#800080;">title</span>",{meineVariable = true; publicVariable "meineVariable";}, \[\], 0, false, true, "", "", 3\];

**Syntax:**

<span style="color:#ff6600;">Objekt</span> addAction \["<span style="color:#339966;">&lt;Farbe&gt;</span><span style="color:#800080;">Titel</span>", <span style="color:#ff9900;">"Scriptpfad"</span>, <span style="color:#993300;">arguments</span>, <span style="color:#0000ff;">Priorität (0-6)</span>, <span style="color:#ff00ff;">mittig\_anzeigen?</span>, <span style="color:#00ccff;">hide\_on\_use?</span>, <span style="color:#ff0000;">shortcut\_key, <span style="color:#ffffff;">condition</span></span>, <span style="color:#008000;">radius\_in\_meters</span>, unconscious?, selection, memoryPoint\]

  
**3. RESTRIKTIONEN (<span style="color:#ffffff;">condition</span>):**

Es kann per Parameter festgelegt werden, welcher Spieler auf welchen Eintrag an welchem Objekt zugreifen kann. Will man einen Eintrag nur für einen Spieler haben, sollte zum Beispiel "\_target isEqualTo \_this" funktionieren. Will man, dass nur eine bestimmte Spielerfigur (zum Beispiel mit dem Var.name p1) einen Eintrag innerhalb eines Fahrzeugs zur Verfügung hat, so sollte "p1 in \_target" klappen.

"\_this" ist dabei dabei die Spielerfigur, die (lokal!) Zugriff haben/den Eintrag sehen soll, "\_target" bezeichnet das Objekt, dem der Eintrag zugeordnet ist.

Bei "\_target isEqualTo \_this" ist also z. B. der Eintrag in der Init-Box der Spielerfigur und zugleich ist die Figur das "\_target" (isEqualto).

# holdAction

Fügt einen sogenannten holdAction-Eintrag hinzu. Spieler muss die DefaultAction-Taste (in der Regel Leertaste) gedrückt halten, um die Action zu aktivieren.

\[   
backpacks,   
"search backpacks",   
"\\a3\\ui\_f\\data\\IGUI\\Cfg\\holdactions\\holdAction\_connect\_ca.paa",   
"\\a3\\ui\_f\\data\\IGUI\\Cfg\\holdactions\\holdAction\_connect\_ca.paa",   
"\_this distance \_target &lt; 2",   
"\_caller distance \_target &lt; 3",   
{},   
{},   
{Hint "Rucksäcke enthalten lediglich Kleidung. Alle Ausrüstung wurde entfernt.";},   
{},   
\[\],   
10,   
0,   
false,   
false,   
true   
\]   
call BIS\_fnc\_holdActionAdd;

*Hinweis: Eintrag noch nicht fertig, Syntax folgt!*

# Hints

# <span style="text-decoration:underline;">**Hints**</span>

<span style="font-weight:400;">Hinweise (Hints) können global oder lokal erstellt werden. Es erscheint rechts oben im Bild eine Textausgabe. Achtung: nicht zu viele Zeichen! </span>

##### **GLOBAL**<span style="font-weight:400;"> (Hint erscheint für jeden):</span>

1. <span style="font-weight:400;">Durch Trigger:</span>

<span style="font-weight:400;">Bei einem </span><span style="font-weight:400;">globalen</span><span style="font-weight:400;"> Trigger in die onAct.:</span>

```
hint “Dies ist ein Testhinweis, den jeder lesen kann”;
```

<span style="font-weight:400;"> 2. Durch RemoteExec:</span>

<span style="font-weight:400;">Meist in einem serverseitigen Script/Trigger genutzt:</span>

```
“Dies ist ein Testhinweis, den jeder lesen kann” remoteExec [“hint”]; 
```

##### <span style="font-weight:400;">**LOCAL** (Hint erscheint nur für den Client, der die addAction auslöst)</span>

1. <span style="font-weight:400;">Falls nicht anders geskriptet, erscheinen Hints in addActions IMMER nur für die Person, die diese auslöst. Dabei ist es egal, ob es sich um ein Skript oder den direkten Befehl handelt.</span>

```
KI addAction ["Sag Hallo", "scriptHallo.sqf"];
```

```
KI addAction ["Sag Hallo", {hint “Moin, wie gehts?”}];
```

<span style="font-weight:400;">Beide werden nur lokal für denjenigen ausgeführt, der die Action aktiviert.</span>

<span style="font-weight:400;"> 2. Über remoteExec lassen sich Hints für eine bestimmte Gruppe von Leute anzeigen (z.b. die Crew eines Fahrzeugs, Spieler in einem bestimmten Umkreis oder auch das Fireteam, Squad des aktivierenden). Hierzu bitte den Eintrag zu “remoteExec” überprüfen. </span>

#### <span style="text-decoration:underline;">**HintC**</span>

<span style="font-weight:400;">Bei “HintC” handelt es sich um einen deutlich schöneren Hint, der in der Mitte des Bildschirms erscheint und explizit bestätigt werden muss. Er ist daher hervorragend für äußerst wichtige Hinweise geeignet, die nicht übersehen werden sollen. Es ist jedoch vorsicht geboten, da die Steuerung eingefroren ist, solange man den hintC nicht bestätigt. Daher sollten definitiv ruhigere Situationen für diese Art Hinweis genutzt werden.</span>

<span style="font-weight:400;">Syntax: </span>[<span style="font-weight:400;">hintC</span>](https://community.bistudio.com/wiki/hintC)

<span style="font-weight:400;">Es gibt mehrere Möglichkeiten einen HintC zu nutzen:</span>

<span style="font-weight:400;">1. Genau wie Hint:</span>

```
hintC “Dies ist ein deutlich schönerer Text”;
```

<span style="font-weight:400;">2. Mit Titel aber einfachem Text:</span>

```
“Dies ist der Titel” hintC “Und das ist der Text”;
```

<span style="font-weight:400;">3. Mit mehreren Punkten (ob mit oder ohne Titel, spielt keine Rolle)</span>

```
“Hier sehen wir mehrere Punkte” hintC [

    “Erster Punkt”,

    “Zweiter Punkt”, 

    “Finaler Punkt”

];
```

<span style="font-weight:400;">Bei hintC gilt es genau die gleichen Dinge bezüglich der Lokalitäten zu beachten die man auch für normale Hints beachten muss.</span>

# Intel erstellen

Intel kann grundsätzlich jedes Objekt sein. Getestet habe ich bisher folgende Classnames:

Intel\_File2\_F (Secret Documents)

Intel\_File1\_F (Documents).

**Man muss unbedingt die Fraktion(en) benennen, für die das Intel verfügbar ist: WEST, EAST,...!**

**1. In die Init des Objekts folgendes einfügen (<span style="text-decoration:underline;">mit</span> Bildern):**

 if (isServer) then {

  *// 3 verschiedene Beispiele für ein (mögliches) Bild (ich empfehle die untere)*

this setVariable \['RscAttributeDiaryRecord\_texture','a3\\structures\_f\_epc\\Items\\Documents\\Data\\document\_secret\_01\_co.paa', true\];  
this setVariable \['RscAttributeDiaryRecord\_texture','a3\\structures\_f\_epc\\Items\\Documents\\Data\\files\_secret\_ca.paa', true\];  
this setVariable \['RscAttributeDiaryRecord\_texture','bild.jpg', true\];

*// Es folgen die Information der Dokumente*

\[this,'RscAttributeDiaryRecord',\['Ueberschrift der Dokumente','Genaue Information&lt;\\br&gt;Mit HTML-Tags zur Formatierung',''\]\] call bis\_fnc\_setServerVariable;  
// Für welche Seite sind diese Dokumente  
this setVariable \['recipients', **WEST**, true\];  
};

**2. Wenn man kein Bild braucht, nimmt man die Zeile raus. In die Init des Objekts folgendes einfügen (<span style="text-decoration:underline;">ohne</span> Bilder):**

 if (isServer) then {  
 \[this,'RscAttributeDiaryRecord',\['Dokument eins','blablablablablablablabla',''\]\] call bis\_fnc\_setServerVariable;  
 this setVariable \['recipients', **WEST**, true\];  
 };

**Link:**  
*[https://www.youtube.com/watch?v=A1QsFSedMWY](https://www.youtube.com/watch?v=A1QsFSedMWY)*