Skip to content

Commit eba9464

Browse files
committed
services/aram3: extend by exile mod
1 parent 412e1a8 commit eba9464

File tree

1 file changed

+117
-30
lines changed

1 file changed

+117
-30
lines changed

docs/C._Services/arma3.md

Lines changed: 117 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,23 @@
11
# Arma 3 Server
22

3-
Ein Arma 3 Gameserver ermöglicht es Arma 3 Spielern eine
4-
gemeinsame Mission zu spielen. Das hier beschriebene Vorgehen
5-
erweitert die Grundfunktionalität von LGSM (Linux Game Server
6-
Manager) um die benötigten Paketen für extdb3.
7-
8-
In diesem Beispiel wird ein Arma 3 Exile Mod Server aufgesetzt:
3+
Ein Arma 3 Gameserver ermöglicht es Arma 3 Spielern eine gemeinsame Mission zu spielen.
4+
Das hier beschriebene Vorgehen erweitert die Grundfunktionalität von LGSM (Linux Game Server
5+
Manager) um die benötigten Paketen für extdb2/extdb3.
96

107
```yaml
118
services:
129
arma3:
1310
image: ghcr.io/felbinger/arma3server
1411
restart: always
15-
environment:
16-
# will be stored on filesystem during installation:
17-
# /srv/arma3/lgsm/config-lgsm/arma3server/arma3server.cfg
18-
- "STEAM_USER="
19-
- "STEAM_PASS="
12+
env_file: .arma3.env
2013
ports:
21-
- '2302:2302/udp' # Arma 3 + voice over network
22-
- '2303:2303/udp' # Steam Query
23-
- '2304:2304/udp' # Steam Master
24-
- '2305:2305/udp' # old Voice over Network
25-
- '2306:2306/udp' # BattleEye
14+
- "2302:2302/udp" # Arma 3 + voice over network
15+
- "2303:2303/udp" # Steam Query
16+
- "2304:2304/udp" # Steam Master
17+
- "2305:2305/udp" # old Voice over Network
18+
- "2306:2306/udp" # BattleEye
2619
volumes:
27-
- '/srv/arma3:/home/linuxgsm'
20+
- "/srv/arma3:/home/linuxgsm"
2821

2922
mariadb:
3023
image: mariadb
@@ -37,6 +30,12 @@ services:
3730
volumes:
3831
- "/srv/arma3-mariadb:/var/lib/mysql"
3932
```
33+
```sh
34+
# .arma3.env
35+
# will also be stored on filesystem (/srv/aram3/lgsm/config-lgsm/arma3server/arma3server.cfg) during installation!
36+
STEAM_USER=steam_username
37+
STEAM_PASS=steam_password
38+
```
4039

4140
Vor dem ersten Start müssen die Berechtigungen des Verzeichnisses `/srv/arma3` angepasst werden.
4241
```shell
@@ -47,13 +46,28 @@ chown 1000:1000 /srv/arma3
4746
Anschließend können die Container gestartet werden (`docker compose up -d arma3`),
4847
wodurch die Installation angestoßen wird.
4948

49+
### Wichtige Pfade
50+
```shell
51+
# things that need to be done to start the server (e. g. mods)
52+
/srv/arma3/lgsm/config-lgsm/arma3server/arma3server.cfg
53+
54+
# arma 3 server / network config
55+
/srv/arma3/serverfiles/cfg/arma3server.server.cfg
56+
/srv/arma3/serverfiles/cfg/arma3server.network.cfg
57+
58+
# mpmission folder
59+
/srv/arma3/serverfiles/mpmissions
60+
```
61+
62+
## Exile Mod
63+
5064
Für Exile müssen nun einige Mods im Verzeichnis `/srv/arma3/serverfiles/` hinzugefügt werden:
5165
```shell
5266
cd /srv/arma3/serverfiles/
5367

5468
# download and extract mods
55-
wget http://bravofoxtrotcompany.com/exile/@Exile-1.0.4.zip
56-
wget http://exilemod.com/ExileServer-1.0.4a.zip
69+
wget https://bravofoxtrotcompany.com/exile/@Exile-1.0.4.zip
70+
wget https://exilemod.com/ExileServer-1.0.4a.zip
5771
unzip @Exile-1.0.4.zip
5872
unzip ExileServer-1.0.4a.zip
5973
rm *.zip
@@ -81,20 +95,93 @@ servermods="@ExileServer"
8195
_EOF
8296

8397
# delete remaining extracted files from exile-server
84-
rm -r /srv/arma3/serverfiles/Arma\ 3\ Server/
85-
rm -r /srv/arma3/serverfiles/MySQL
98+
rm -r /srv/arma3/serverfiles/{Arma\ 3\ Server,MySQL}/
99+
100+
# adjust permissions, so that LGSM can work with all files
101+
chown -R 1000:1000 /srv/arma3
86102
```
87103

88104
Nach einem Neustart der Container (`docker compose down && docker compose up -d`)
89105
sollten diese geladen werden, falls Probleme auftreten können diese dem Serverlog
90106
entnommen werden (`docker compose exec arma3 arma3server console`).
91107

92-
### Wichtige Pfade
93-
```shell
94-
# things that need to be done to start the server (e. g. mods)
95-
/srv/arma3/lgsm/config-lgsm/arma3server/arma3server.cfg
96-
97-
# arma 3 server / network config
98-
/srv/arma3/serverfiles/cfg/arma3server.server.cfg
99-
/srv/arma3/serverfiles/cfg/arma3server.network.cfg
100-
```
108+
<!--
109+
### Mod: Extended Base Mod
110+
Die Datei `/srv/arma3/lgsm/config-lgsm/arma3server/arma3server.cfg` muss in der Zeile `mods=` um `;@Extended_Base_Mod` erweitert werden.
111+
112+
siehe https://www.youtube.com/watch?v=dhT6C4PrCrQ
113+
-->
114+
115+
### Mod: AdminToolkit
116+
1. [Git-Repository](https://github.com/ole1986/a3-admintoolkit) herunterladen
117+
2. Mittels [PBO-Manager](https://github.com/SteezCram/Armaholic-Archive/tree/main/PBO_Manager) `/a3-admintoolkit-master/@AdminToolkitServer/addons/admintoolkit_servercfg.pbo` entpacken
118+
3. Variablen in `config.cpp` anpassen (siehe `class AdminToolkit` in `class CfgSettings`):
119+
- ServerCommandPassword
120+
- AdminList
121+
- ModeratorList
122+
4. PBO mit modifizierter `config.cpp` packen und @AdminToolkitServer auf den Server hochladen.
123+
5. mission anpassen
124+
1. Mission entpacken
125+
2. `/a3-admintoolkit-master/source/mission_file/atk` in root-Verzeichnis der Mission kopieren
126+
3. Vor `class CfgExileCustomCode` folgende `class CfgAdminToolkitCustomMod` einfügen:
127+
```cpp
128+
class CfgAdminToolkitCustomMod {
129+
/* Exclude some main menu items
130+
* To only show the menus loaded from an extension, use:
131+
*
132+
* ExcludeMenu[] = {"Players", "Vehicles", "Weapons" , "Other"};
133+
*/
134+
ExcludeMenu[] = {};
135+
136+
/* Load an additional sqf file as MOD */
137+
Extensions[] = {
138+
/**
139+
* Usage: {"<Your Mod Title>", "<YourModFile>"}
140+
* add a new menu entry called My Extension into main menu */
141+
{"My Extension", "MyExtension"}
142+
};
143+
144+
/* 4 Quick buttons allowing to add any action you want - See example below*/
145+
QuickButtons[] = {
146+
/* send a message to everyone using the parameter text field */
147+
{"Restart Msg", "['messageperm', ['Server Restart in X minutes']] call AdminToolkit_doAction"},
148+
/* Quickly get a Helicopter */
149+
{"Heli", "['getvehicle', ['B_Heli_Light_01_armed_F']] call AdminToolkit_doAction"},
150+
/*4 button*/
151+
{"Empty", "['Command', ['Variable #1', 'Variable #2']] call AdminToolkit_doAction"}
152+
};
153+
};
154+
```
155+
156+
4. `description.ext` bearbeiten, Nachfolgendes zur `class CfgRemoteExec.Functions` hinzufügen:
157+
```cpp
158+
class AdminToolkit_network_receiveRequest {
159+
allowedTargets = 2;
160+
};
161+
```
162+
5. Mission packen und auf Server hochladen
163+
164+
6. @AdminToolkitServer als Client(!) Mod zur Serverkonfiguration (`/srv/arma3/lgsm/config-lgsm/arma3server/arma3server.cfg`) hinzufügen
165+
```
166+
mods="@Exile;@AdminToolkitServer"
167+
servermods="@ExileServer"
168+
```
169+
170+
8. `verifySignatures` in `serverfiles/cfg/arma3server.server.cfg` deaktivieren, da die Mod nicht signiert ist.
171+
172+
9. Server Neustarten und testen
173+
```sh
174+
docker compose -f /home/admin/arma3/docker-compose.yml down
175+
docker compose -f /home/admin/arma3/docker-compose.yml up -d
176+
```
177+
178+
Client mit @AdminToolkit Mod starten und dem Spiel beitreten.
179+
180+
Das AdminInterface sollte auf der Taste F2 liegen.
181+
182+
<!--
183+
### Mod: DMS with "Capture point" missions
184+
185+
siehe https://youtube.com/watch?v=4syLDu9lIrM
186+
siehe https://youtube.com/watch?v=z24natBw37c
187+
-->

0 commit comments

Comments
 (0)