fb9284e3fb
Removed definitions of blacklisted areas from GMS_fnc_findWorld and added this to the mod-specific config. Added Apex weapons, uniforms, helmets/headgear, optics, weapons, etc. Added scripts to automatically pull locations of traders and spawns from the mission.sqm. see changelog.sqf for details.
105 lines
5.5 KiB
Plaintext
105 lines
5.5 KiB
Plaintext
/*
|
|
AI Mission for Epoch and Exile Mods to Arma 3
|
|
Credist to blckeagls who wrote the initial mission script for A3 Epoch
|
|
To Narines for debugging that original version
|
|
To cynwncler for many helpful comments along the way
|
|
And mostly importantly,
|
|
To Vampire, KiloSwiss, blckeagls, theFUCHS, lazylink, Mark311 and Buttface (Face) who wrote the pionering mission and roaming AI systems upon which this one is based and who's code is used with modification in some parts of this addon.
|
|
*/
|
|
if !(isNil "blck_Initialized") exitWith{};
|
|
private["_blck_loadingStartTime"];
|
|
_blck_loadingStartTime = diag_tickTime;
|
|
#include "\q\addons\custom_server\init\build.sqf";
|
|
diag_log format["[blckeagls] Loading version %1 Build %2",_blck_versionDate,_blck_version];
|
|
|
|
// spawn map addons to give the server time to position them before spawning in crates etc.
|
|
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\MapAddons\MapAddons_init.sqf";
|
|
|
|
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf";
|
|
waitUntil {(isNil "blck_variablesLoaded") isEqualTo false;};
|
|
waitUntil{blck_variablesLoaded};
|
|
blck_variablesLoaded = nil;
|
|
if !(blck_debugON) then {uiSleep 60;};
|
|
|
|
// compile functions
|
|
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf";
|
|
waitUntil {(isNil "blck_functionsCompiled") isEqualTo false;};
|
|
waitUntil{blck_functionsCompiled};
|
|
blck_functionsCompiled = nil;
|
|
diag_log format["[blckeagls] debug mode settings:blck_debugON = %1",blck_debugON];
|
|
|
|
private["_modType"];
|
|
_modType = [] call blck_getModType;
|
|
|
|
if (_modType isEqualTo "Epoch") then
|
|
{
|
|
diag_log format["[blckeagls] Loading Mission System using Parameters for %1",_modType];
|
|
execVM "\q\addons\custom_server\Configs\blck_configs_epoch.sqf";
|
|
waitUntil {(isNil "blck_configsLoaded") isEqualTo false;};
|
|
waitUntil{blck_configsLoaded};
|
|
blck_configsLoaded = nil;
|
|
diag_log "[blckeagles] Running getTraderCitiesEpoch to get location of trader cities";
|
|
execVM "\q\addons\custom_server\Compiles\Functions\getTraderCitesEpoch.sqf";;
|
|
};
|
|
if (_modType isEqualTo "Exile") then
|
|
{
|
|
diag_log format["[blckeagls] Loading Mission System using Parameters for %1",_modType];
|
|
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_configs_exile.sqf";
|
|
waitUntil {(isNil "blck_configsLoaded") isEqualTo false;};
|
|
waitUntil{blck_configsLoaded};
|
|
blck_configsLoaded = nil;
|
|
if (blck_blacklistTraderCities || blck_blacklistSpawns || blcklistConcreteMixerZones) then {execVM "\q\addons\custom_server\Compiles\Functions\getTraderCitesExile.sqf";};
|
|
};
|
|
|
|
diag_log "[blckeagls] Loading Map-specific information";
|
|
execVM "\q\addons\custom_server\Compiles\Functions\GMS_fnc_findWorld.sqf";
|
|
waitUntil {(isNil "blck_worldSet") isEqualTo false;};
|
|
waitUntil{blck_worldSet};
|
|
blck_worldSet = nil;
|
|
|
|
// set up the lists of available missions for each mission category
|
|
diag_log "[blckeagls] Loading Mission Lists";
|
|
#include "\q\addons\custom_server\Missions\GMS_missionLists.sqf";
|
|
|
|
// Load any user-defined specifications or overrides
|
|
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf";
|
|
|
|
diag_log format["[blckeagls] version %1 Build %2 for mod = %3 Loaded in %4 seconds",_blck_versionDate,_blck_version,_modType,diag_tickTime - _blck_loadingStartTime]; //,blck_modType];
|
|
diag_log format["blckeagls] waiting for players to join ---- >>>>"];
|
|
waitUntil{{isPlayer _x}count playableUnits > 0};
|
|
diag_log "[blckeagls] Player Connected, loading mission system";
|
|
|
|
//Start the mission timers
|
|
|
|
if (blck_enableOrangeMissions == 1) then
|
|
{
|
|
[_missionListOrange,_pathOrange,"OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange] spawn blck_fnc_missionTimer;//Starts major mission system (Orange Map Markers)
|
|
};
|
|
if (blck_enableGreenMissions == 1) then
|
|
{
|
|
[_missionListGreen,_pathGreen,"GreenMarker","green",blck_TMin_Green,blck_TMax_Green] spawn blck_fnc_missionTimer;//Starts major mission system 2 (Green Map Markers)
|
|
};
|
|
if (blck_enableRedMissions == 1) then
|
|
{
|
|
[_missionListRed,_pathRed,"RedMarker","red",blck_TMin_Red,blck_TMax_Red] spawn blck_fnc_missionTimer;//Starts minor mission system (Red Map Markers)//Starts minor mission system 2 (Red Map Markers)
|
|
};
|
|
if (blck_enableBlueMissions == 1) then
|
|
{
|
|
[_missionListBlue,_pathBlue,"BlueMarker","blue",blck_TMin_Blue,blck_TMax_Blue] spawn blck_fnc_missionTimer;//Starts minor mission system (Blue Map Markers)
|
|
};
|
|
// start the main thread for the mission system which monitors missions running and stuff to be cleaned up
|
|
[] execVM "\q\addons\custom_server\Compiles\Functions\GMS_fnc_mainThread.sqf";
|
|
[] execVM "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_vehicleMonitorLoop.sqf";
|
|
|
|
// start a little loop that sends clients the current serverFPS
|
|
[] execVM "\q\addons\custom_server\Compiles\Functions\broadcastServerFPS.sqf";
|
|
diag_log "[blckeagls] >>--- Completed initialization";
|
|
|
|
blck_Initialized = true;
|
|
publicVariable "blck_Initialized";
|
|
|
|
//diag_log format["[blckeagls] Mission system settings:blck_debugON = %4 blck_useSmokeAtCrates = %1 blck_useMines = %2 blck_useStatic = %3 blck_useVehiclePatrols %4",blck_useSmokeAtCrates,blck_useMines,blck_useStatic,blck_debugON,blck_useVehiclePatrols];
|
|
//diag_log format["[blckeagls] AI Settings: blck_useNVG = %1 blck_useLaunchers = %2",blck_useNVG,blck_useLaunchers];
|
|
//diag_log format["[blckeagls] AI Runover and other Vehicle Kill settings: blck_RunGear = %1 blck_VG_Gear =%2 blck_VK_RunoverDamage = %3 blck_VK_GunnerDamage = %4",blck_RunGear,blck_VG_Gear,blck_VK_RunoverDamage,blck_VK_GunnerDamage];
|
|
//[] execVM "\q\addons\custom_server\Compiles\Functions\GMS_fnc_monitor.sqf";
|