# Installation

{% hint style="warning" %}
Ich empfehle zur Installation von Scripts **WinSCP**.\
\
**FileZilla** überträgt in den meisten Fällen einige verschlüsselte Dateien nicht. Dadurch kann es passieren, dass die Scripts nicht funktionieren!
{% endhint %}

## 1. Fire Alarm herunterladen und starten

Nach dem Kauf von Fire Alarm über den Tebex Store kannst du es unter folgendem Link herunterladen und über ein FTP Programm auf deinem Server hinzufügen.

{% embed url="<https://portal.cfx.re>" %}

Füge Fire Alarm anschließend in deine Start Config ein. Fire Alarm darf **nicht vor** der MySQL Ressource gestartet werden.

```
start [FIRE_ALARM]
```

{% hint style="info" %}
Die notwendigen Datenbank Tabellen werden beim ersten Start des Scripts erstellt
{% endhint %}

## 2. Admin Zugriff (ACE Permissions)

Die ACE Permissions werden beim Aufrufen der InGame Administration zum Kopieren angezeigt. Hier sind Beispiele, wie diese auch eingefügt werden können.\
\
Um vollständigen Zugriff auf die Administration zu haben, sind so genannte ACE Permissions notwendig. Diese kannst du einfach in deine Start Config hinzufügen.

```
#ACE Permission anhand der License ID
add_ace identifier.license:xxxx "firealarm.admin" allow

#ACE Permission anhand der Steam ID
add_ace identifier.steam:xxxx "firealarm.admin" allow

#ACE Permission für Benutzer Gruppen
add_ace group.superadmin "firealarm.admin" allow
```

{% hint style="info" %}
Administration Befehl: /faadmin\
\
Spieler mit ACE Permission haben **vollständigen** Zugriff auf die Administration. Gehe damit mit Bedacht um!
{% endhint %}

## 3. Einstellungsmöglichkeiten in der Config

### 3.1. Sprache

```
Config.Language
```

Hier kann die gewünschte Sprache eingestellt werden. Bereits enthalten sind "de" für deutsch und "en" für englisch.\
Weitere Sprachen können hinzugefügt werden. Kopiere dafür beispielsweise die Datei "translation\_en.json". Benenne diese beispielsweise in "translation\_pl.json" um und bearbeite die Datei. Füge anschließend "pl" in Config.Language ein.

### 3.2. Alarmierung

```
Config.AlarmVolume
```

Gesamtlautstärke der Sounds (0.0 - 1.0)

```
Config.AlarmJobs
```

Jobs, welche bei Auslösung der BMZ eine Alarmierung erhalten sollen.\
Die Funktion ist in der server\_custom.lua zu finden (Name: SendDispatch). Hier können auch weitere Dispatch Systeme hinzugefügt werden.

```
Config.ControlPanelAccess
```

Jobs, welche die BMZ bedienen und Reparaturen durchführen können.

### 3.3. Wartung

```
Config.UseMaintenance
```

(De-) aktiviert das Wartungssystem. boolean (false oder true)

```
Config.MaintenancePIN
```

PIN, welche in der BMZ eingegeben werden muss, damit der Wartungsmodus (de-) aktiviert werden kann. Zahlenkombination 0-9

```
Config.MaintenanceTimer
```

Gibt an, aller wie viel Minuten der Zustand eines Teils einer BMZ oder eines Rauchmelders "schlechter" wird. Angabe in Minuten.&#x20;

```
Config.MaxMaintenancePoints
```

Gibt an, wie viele Zustandspunkte bei dem generieten Teil maximal abgezogen werden können. Zufallsgenerator zwischen 1 und x.

```
Config.MaintenanceItems
```

Items zur Reparatur der jeweiligen Teile. Ist das jeweilige Items-Feld leer (also ""), dann wird kein Item zur Reparatur benötigt.

{% tabs %}
{% tab title="Items" %}
Items für Reparatur der BMZ:\
repair\_bmz\_chassis\
repair\_bmz\_electric\
repair\_bmz\_network\
\
Items für Reparatur der Rauchmelder:\
repair\_rwm\_chassis\
repair\_rwm\_electric\
repair\_rwm\_network
{% endtab %}

{% tab title="ox\_inventory" %}
**Dateiname:** ox\_inventory/data/items.lua

```lua
['repair_bmz_chassis'] = {
	label = 'BMZ Gehäuse',
	weight = 500,
	stack = true,
	description = 'Gehäuse zur Reparatur von BMZ'
},
['repair_bmz_electric'] = {
	label = 'BMZ Stromkabel',
	weight = 500,
	stack = true,
	description = 'Stromkabel zur Reparatur von BMZ'
},
['repair_bmz_network'] = {
	label = 'BMZ Netzwerkplatine',
	weight = 500,
	stack = true,
	description = 'Netzwerkplatine zur Reparatur von BMZ'
},
['repair_rwm_chassis'] = {
	label = 'RWM Gehäuse',
	weight = 500,
	stack = true,
	description = 'Gehäuse zur Reparatur von Rauchmeldern'
},
['repair_rwm_electric'] = {
	label = 'RWM Stromkabel',
	weight = 500,
	stack = true,
	description = 'Stromkabel zur Reparatur von Rauchmeldern'
},
['repair_rwm_network'] = {
	label = 'RWM Netzwerkplatine',
	weight = 500,
	stack = true,
	description = 'Netzwerkplatine zur Reparatur von Rauchmeldern'
},
```

{% endtab %}

{% tab title="ESX" %}
Füge folgendes in deine Datenbank ein:

```sql
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('repair_bmz_chassis', 'Gehäuse zur Reparatur von BMZ', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('repair_bmz_electric', 'Stromkabel zur Reparatur von BMZ', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('repair_bmz_network', 'Netzwerkplatine zur Reparatur von BMZ', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('repair_rwm_chassis', 'Gehäuse zur Reparatur von Rauchmeldern', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('repair_rwm_electric', 'Stromkabel zur Reparatur von Rauchmeldern', 10, 0, 1);
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('repair_rwm_network', 'Netzwerkplatine zur Reparatur von Rauchmeldern', 10, 0, 1);
```

{% endtab %}

{% tab title="QBCore" %}
**Dateiname:** qb-core/shared/items.lua

```lua
['repair_bmz_chassis'] = {['name'] = 'repair_bmz_chassis', ['label'] = 'BMZ Gehäuse', ['weight'] = 100, ['type'] = 'item', ['image'] = 'repair_bmz_chassis.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Gehäuse zur Reparatur von BMZ'},
['repair_bmz_electric'] = {['name'] = 'repair_bmz_electric', ['label'] = 'BMZ Stromkabel', ['weight'] = 100, ['type'] = 'item', ['image'] = 'repair_bmz_electric.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Stromkabel zur Reparatur von BMZ'},
['repair_bmz_network'] = {['name'] = 'repair_bmz_network', ['label'] = 'BMZ Netzwerkplatine', ['weight'] = 100, ['type'] = 'item', ['image'] = 'repair_bmz_network.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Netzwerkplatine zur Reparatur von BMZ'},
['repair_rwm_chassis'] = {['name'] = 'repair_rwm_chassis', ['label'] = 'BMZ Gehäuse', ['weight'] = 100, ['type'] = 'item', ['image'] = 'repair_rwm_chassis.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Gehäuse zur Reparatur von Rauchmeldern'},
['repair_rwm_electric'] = {['name'] = 'repair_rwm_electric', ['label'] = 'RWM Stromkabel', ['weight'] = 100, ['type'] = 'item', ['image'] = 'repair_rwm_electric.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Stromkabel zur Reparatur von Rauchmeldern'},
['repair_rwm_network'] = {['name'] = 'repair_rwm_network', ['label'] = 'RWM Netzwerkplatine', ['weight'] = 100, ['type'] = 'item', ['image'] = 'repair_rwm_network.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Netzwerkplatine zur Reparatur von Rauchmeldern'},
```

{% endtab %}
{% endtabs %}

### 3.4. Fehlalarme

Fehlalarme sind abhängig vom Wartungszustand der Rauchmelder. Ist das Wartungssystem deaktiviert, können also auch keine Fehlalarme auftreten.

```
Config.FalseAlarm
```

(De-) aktiviert Fehlalarme. boolean (false oder true)

```
Config.FalseAlarmTimer
```

Zeitangabe in Minuten, in der ein Fehlalarm generiert werden kann.
