-
Notifications
You must be signed in to change notification settings - Fork 11
CLib Missionen
In diesem Beitrag soll erläutert werden, wie der Aufbau einer Mission auszusehen hat, die CLib verwenden will. Außerdem wird darauf eingegangen, wie CLib so konfiguriert wird, dass die gewünschten Addons geladen werden.
In einer Mission, die CLib einsetzen will, müssen folgenden Dateien enthalten sein:
mission.sqm
description.ext
init.sqf
Soweit so bekannt. Die mission.sqm
kann ganz normal im Editor erstellt werden. Für sie gelten keine besonderen Regeln.
In der description.ext
muss eine Klasse namens CLib
angelegt werden. In dieser werden die zu ladenden Module (Addons) über das Feld Modules[]
spezifiziert, Außerdem können einige experimentelle Features von CLib explizit abgestellt werden. Insgesamt könnte das so aussehen:
class CLib {
Modules[] = {"CLib", "OPT"};
useExperimentalAutoload = 0;
useCompressedFunction = 0;
useFallbackRemoteExecution = 0;
};
In der init.sqf
muss das CLib-System gestartet werden, von wo aus Clib die Kontrolle an seine eigenen entry points übergibt. Hierfür muss Folgendes in der init stehen:
waitUntil {!isNil "CLib_fnc_loadModules"};
[] call CLib_fnc_loadModules;
Wie bereits im vorherigen Abschnitt erwähnt, werden die Module, die für diese Mission geladen werden sollen, über das Feld Modules[]
in der description.ext
spezifiziert.
Hierbei gibt es zwei Möglichkeiten:
- Es wird der Mod-/Addon-Name angebeben. in diesem Fall werden einfach alle Module der jeweiligen Mod geladen und gestartet.
- Es werden konkret Module innerhalb einer Mod angegeben. Hierfür wird die Syntax
<ModName>/<ModulName>
verwendet (Dh. Mod- und Modulname sind durch einen Slash voneinander getrennt). So wird nur dieses eine, spezifische Modul aus der Mod geladen und alle anderen Module, die ggf. in der Mod enthalten sind, werden nicht geladen (es sei denn, das geladenene Modul, hängt von ihnen ab).
Beispielsweise lädt Modules[] = {"OPT"}
alle Module aus der Mod mit dem Namen "OPT", wohingegen Modules[] = {"OPT/ModulA"}
nur das Modul mit dem Namen "ModulA" aus der Mod mit dem Namen "OPT" lädt.