Build 134
See Changelog for details.
This commit is contained in:
parent
44d8342188
commit
0f50530d30
@ -13,7 +13,7 @@
|
||||
private _traderCites = allMapMarkers;
|
||||
_tc = [];
|
||||
{
|
||||
if (blck_debugON) then {diag_log format["[blckeagls] _fnc_getExileLocations :: -- >> Evaluating Markertype of %1", (getMarkerType _x)];};
|
||||
//if (blck_debugON) then {diag_log format["[blckeagls] _fnc_getExileLocations :: -- >> Evaluating Markertype of %1", (getMarkerType _x)];};
|
||||
if (getMarkerType _x isEqualTo "ExileTraderZone" && blck_blacklistTraderCities) then {
|
||||
blck_locationBlackList pushback [(getMarkerPos _x),1000];
|
||||
if (blck_debugON) then {diag_log format["[blckeagls] _fnc_getExileLocations :: -- >> Added Exile Trader location at %1", (getMarkerPos _x)];};
|
||||
|
@ -16,12 +16,12 @@ private["_cleanupAliveAITimer","_cleanupCompositionTimer","_isScubaMission"];
|
||||
|
||||
_fn_missionCleanup = {
|
||||
params["_mines","_objects","_blck_AllMissionAI","_mission","_cleanupAliveAITimer","_cleanupCompositionTimer",["_isScubaMission",false]];
|
||||
diag_log format["_fn_missionCleanup: blck_missionsRunning Started at %1", blck_missionsRunning];
|
||||
//diag_log format["_fn_missionCleanup: blck_missionsRunning Started at %1", blck_missionsRunning];
|
||||
[_mines] call blck_fnc_clearMines;
|
||||
[_objects, _cleanupCompositionTimer] call blck_fnc_addObjToQue;
|
||||
[_blck_AllMissionAI, (_cleanupAliveAITimer)] call blck_fnc_addLiveAItoQue;
|
||||
blck_missionsRunning = blck_missionsRunning - 1;
|
||||
diag_log format["_fn_missionCleanup: blck_missionsRunning reset to %1", blck_missionsRunning];
|
||||
//diag_log format["_fn_missionCleanup: blck_missionsRunning reset to %1", blck_missionsRunning];
|
||||
blck_ActiveMissionCoords = blck_ActiveMissionCoords - [ _coords];
|
||||
if !(_isScubaMission) then
|
||||
{
|
||||
@ -43,7 +43,7 @@ _fn_missionCleanup = {
|
||||
diag_log format["_fnc_endMission: _this = %1",_this];
|
||||
#endif
|
||||
params["_mines","_objects","_crates","_blck_AllMissionAI","_endMsg","_blck_localMissionMarker","_coords","_mission",["_endCondition",0],["_vehicles",[]],["_isScubaMission",false]];
|
||||
diag_log format["_fnc_endMission (44): _blck_localMissionMarker %1 | _coords %2 | _mission %3 | _endCondition %4",_blck_localMissionMarker,_coords,_mission,_endCondition];
|
||||
//diag_log format["_fnc_endMission (44): _blck_localMissionMarker %1 | _coords %2 | _mission %3 | _endCondition %4",_blck_localMissionMarker,_coords,_mission,_endCondition];
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then
|
||||
{
|
||||
@ -56,7 +56,7 @@ _fn_missionCleanup = {
|
||||
|
||||
if (_endCondition > 0) exitWith // Mision aborted for some reason
|
||||
{
|
||||
diag_log format["_fnc_endMission: mission end condition > 0 | setting all timers to 0"];
|
||||
//diag_log format["_fnc_endMission: mission end condition > 0 | setting all timers to 0"];
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then {
|
||||
diag_log format["_fnc_endMission: Mission Aborted, setting all timers to 0"];
|
||||
@ -82,7 +82,7 @@ _fn_missionCleanup = {
|
||||
};
|
||||
if (_endCondition == 0) then // Normal Mission End State
|
||||
{
|
||||
diag_log format["_fnc_endMission: mission end condition == 0 | setting all timers to 0"];
|
||||
//diag_log format["_fnc_endMission: mission end condition == 0 | setting all timers to 0"];
|
||||
private["_cleanupAliveAITimer","_cleanupCompositionTimer"];
|
||||
if (blck_useSignalEnd) then
|
||||
{
|
||||
@ -136,5 +136,5 @@ _fn_missionCleanup = {
|
||||
#ifdef blck_debugMode
|
||||
diag_log format["_fnc_endMission: after to running mission end functions -> blck_missionsRunning = %1 | blck_dynamicUMS_MissionsRuning = %2",blck_missionsRunning,blck_dynamicUMS_MissionsRuning];
|
||||
#endif
|
||||
diag_log format["_fnc_endMission (138): after to running mission end functions -> blck_missionsRunning = %1 | blck_dynamicUMS_MissionsRuning = %2",blck_missionsRunning,blck_dynamicUMS_MissionsRuning];
|
||||
//diag_log format["_fnc_endMission (138): after to running mission end functions -> blck_missionsRunning = %1 | blck_dynamicUMS_MissionsRuning = %2",blck_missionsRunning,blck_dynamicUMS_MissionsRuning];
|
||||
_endCondition
|
@ -47,14 +47,65 @@ if (isNil "_hostageConfig") then {_hostageConfig = []};
|
||||
if (isNil "_enemyLeaderConfig") then {_enemyLeaderConfig = []};
|
||||
if (isNil "_useMines") then {_useMines = blck_useMines;};
|
||||
if (isNil "_weaponList") then {_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout};
|
||||
if (isNil "_sideArms") then {_sideArms = blck_Pistols};
|
||||
if (isNil "_vests") then {_vests = blck_vests};
|
||||
if (isNil "_backpacks") then {_backpacks = blck_backpacks};
|
||||
//diag_log format["_fnc_missionSpawner: -> blck_backpacks = %1", blck_backpacks];
|
||||
//diag_log format["_fnc_missionSpawner: -> _backpacks = %1",_backpacks];
|
||||
if (isNil "_uniforms") then {_uniforms = blck_SkinList};
|
||||
if (isNil "_headGear") then {_headgear = blck_headgear};
|
||||
if (isNil "_sideArms") then
|
||||
{
|
||||
switch (toLower (_aiDifficultyLevel)) do
|
||||
{
|
||||
case "blue": {_sideArms = blck_Pistols_blue};
|
||||
case "red": {_sideArms = blck_Pistols_red};
|
||||
case "green": {_sideArms = blck_Pistols_green};
|
||||
case "orange": {_sideArms = blck_Pistols_orange};
|
||||
default {_sideArms = blck_Pistols};
|
||||
};
|
||||
};
|
||||
|
||||
if (isNil "_uniforms") then
|
||||
{
|
||||
switch (toLower (_aiDifficultyLevel)) do
|
||||
{
|
||||
case "blue": {_uniforms = blck_SkinList_blue};
|
||||
case "red": {_uniforms = blck_SkinList_red};
|
||||
case "green": {_uniforms = blck_SkinList_green};
|
||||
case "orange": {_uniforms = blck_SkinList_orange};
|
||||
default {_uniforms = blck_SkinList};
|
||||
};
|
||||
};
|
||||
|
||||
if (isNil "_headGear") then
|
||||
{
|
||||
switch (toLower (_aiDifficultyLevel)) do
|
||||
{
|
||||
case "blue": {_headGear = blck_headgear_blue};
|
||||
case "red": {_headGear = blck_headgear_red};
|
||||
case "green": {_headGear = blck_headgear_green};
|
||||
case "orange": {_headGear = blck_headgear_orange};
|
||||
default {_headGear = blck_headgear};
|
||||
};
|
||||
};
|
||||
|
||||
if (isNil "_vests") then
|
||||
{
|
||||
switch (toLower (_aiDifficultyLevel)) do
|
||||
{
|
||||
case "blue": {_vests = blck_vests_blue};
|
||||
case "red": {_vests = blck_vests_red};
|
||||
case "green": {_vests = blck_vests_green};
|
||||
case "orange": {_vests = blck_vests_orange};
|
||||
default {_vests = blck_vests};
|
||||
};
|
||||
};
|
||||
|
||||
if (isNil "_backpacks") then
|
||||
{
|
||||
switch (toLower (_aiDifficultyLevel)) do
|
||||
{
|
||||
case "blue": {_backpacks = blck_backpacks_blue};
|
||||
case "red": {_backpacks = blck_backpacks_red};
|
||||
case "green": {_backpacks = blck_backpacks_green};
|
||||
case "orange": {_backpacks = blck_backpacks_orange};
|
||||
default {_backpacks = blck_backpacks};
|
||||
};
|
||||
};
|
||||
if (isNil "_chanceHeliPatrol") then
|
||||
{
|
||||
switch (toLower(_aiDifficultyLevel)) do
|
||||
@ -112,9 +163,10 @@ if (isNil "_noPara") then
|
||||
};
|
||||
if (isNil "_chanceLoot") then {_chanceLoot = 1.0}; //0.5};
|
||||
if (isNil "_paraTriggerDistance") then {_paraTriggerDistance = 400;};
|
||||
if (isNil "_paraLoot") then {_paraLoot = blck_BoxLoot_Red};
|
||||
if (isNil "_paraLoot") then {_paraLoot = blck_BoxLoot_Green};
|
||||
if (isNil "_paraLootCounts") then {_paraLootCounts = blck_lootCountsRed};
|
||||
|
||||
|
||||
_objects = [];
|
||||
_mines = [];
|
||||
_crates = [];
|
||||
@ -623,18 +675,18 @@ if (blck_showCountAliveAI) then
|
||||
}forEach blck_missionMarkers;
|
||||
};
|
||||
|
||||
diag_log format["_fnc_missionSpawner (557) Build 123: _secureAsset = %1 | {alive _assetSpawned} = %2 | assetType = %3",_secureAsset,alive _assetSpawned, _assetSpawned getVariable["assetType",-1]];
|
||||
//diag_log format["_fnc_missionSpawner (557) Build 123: _secureAsset = %1 | {alive _assetSpawned} = %2 | assetType = %3",_secureAsset,alive _assetSpawned, _assetSpawned getVariable["assetType",-1]];
|
||||
|
||||
if (_assetSpawned getVariable["assetType",0] isEqualTo 1) then
|
||||
{
|
||||
diag_log "Processing Mission End for Hostage Rescue";
|
||||
//diag_log "Processing Mission End for Hostage Rescue";
|
||||
_assetSpawned setCaptive false;
|
||||
_assetSpawned setVariable["GMSAnimations",[""],true];
|
||||
[_assetSpawned,""] remoteExec["switchMove",-2];;
|
||||
uiSleep 0.1;
|
||||
_assetSpawned enableAI "ALL";
|
||||
private _newPos = (getPos _assetSpawned) getPos [1000, random(360)];
|
||||
diag_log format["processing domove for hostage with current pos = %1 and new pos = %2",getPos _assetSpawned, _newPos];
|
||||
//diag_log format["processing domove for hostage with current pos = %1 and new pos = %2",getPos _assetSpawned, _newPos];
|
||||
(group _assetSpawned) setCurrentWaypoint [group _assetSpawned, 0];
|
||||
[group _assetSpawned,0] setWaypointPosition [_newPos,0];
|
||||
[group _assetSpawned,0] setWaypointType "MOVE";
|
||||
@ -642,13 +694,13 @@ if (_assetSpawned getVariable["assetType",0] isEqualTo 1) then
|
||||
|
||||
if (_assetSpawned getVariable["assetType",0] isEqualTo 2) then
|
||||
{
|
||||
diag_log format["Processing Mission End for Arrest of Leader %1 with endAnimation %2",_assetSpawned,_assetSpawned getVariable["endAnimation",""]];
|
||||
//diag_log format["Processing Mission End for Arrest of Leader %1 with endAnimation %2",_assetSpawned,_assetSpawned getVariable["endAnimation",""]];
|
||||
[_assetSpawned,""] remoteExec["switchMove",-2];
|
||||
_assetSpawned setVariable["GMSAnimations",_assetSpawned getVariable["endAnimation",["AidlPercMstpSnonWnonDnon_AI"]],true];
|
||||
[_assetSpawned,selectRandom(_assetSpawned getVariable["endAnimation",["AidlPercMstpSnonWnonDnon_AI"]])] remoteExec["switchMove",-2];
|
||||
};
|
||||
|
||||
diag_log format["_fnc_missionSpawner (579) Build 123: <calling blck_fnc_endMission> _secureAsset = %1 | {alive _assetSpawned} = %2 | assetType = %3",_secureAsset,alive _assetSpawned, _assetSpawned getVariable["assetType",-1]];
|
||||
//diag_log format["_fnc_missionSpawner (579) Build 123: <calling blck_fnc_endMission> _secureAsset = %1 | {alive _assetSpawned} = %2 | assetType = %3",_secureAsset,alive _assetSpawned, _assetSpawned getVariable["assetType",-1]];
|
||||
|
||||
_result = [_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_markerClass, 0] call blck_fnc_endMission;
|
||||
|
||||
|
@ -0,0 +1,660 @@
|
||||
/*
|
||||
Dynamic Mission Spawner (over-ground missions)
|
||||
By Ghostrider GRG
|
||||
Copyright 2016
|
||||
|
||||
--------------------------
|
||||
License
|
||||
--------------------------
|
||||
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
|
||||
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
#define delayTime 1
|
||||
private ["_abort","_crates","_aiGroup","_objects","_groupPatrolRadius","_missionLandscape","_mines","_blck_AllMissionAI","_blck_localMissionMarker","_assetKilledMsg","_enemyLeaderConfig",
|
||||
"_AI_Vehicles","_timeOut","_aiDifficultyLevel","_missionPatrolVehicles","_missionGroups","_loadCratesTiming","_spawnCratesTiming","_assetSpawned","_hostageConfig",
|
||||
"_chanceHeliPatrol","_noPara","_chanceLoot","_heliCrew","_loadCratesTiming","_useMines","_blck_AllMissionAI","_delayTime","_groupPatrolRadius",
|
||||
"_wait","_missionStartTime","_playerInRange","_missionTimedOut","_temp","_patrolVehicles","_vehToSpawn","_noChoppers","_chancePara","_marker"];
|
||||
|
||||
params["_coords","_markerClass","_aiDifficultyLevel"];
|
||||
|
||||
////////
|
||||
// set all variables needed for the missions
|
||||
// data is pulled either from the mission description or from the _mission variable passsed as a parameter
|
||||
// Deal with situations where some of these variables might not be defined as well.
|
||||
////////
|
||||
|
||||
// _mission params["OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange];
|
||||
//_markerClass = _mission select 0;
|
||||
// _aiDifficultyLevel = _mission select 1;
|
||||
|
||||
[_markerClass, "active",_coords] call blck_fnc_updateMissionQue;
|
||||
blck_ActiveMissionCoords pushback _coords;
|
||||
blck_missionsRunning = blck_missionsRunning + 1;
|
||||
diag_log format["[blckeagls] missionSpawner (17):: Initializing mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
|
||||
|
||||
if (isNil "_assetKilledMsg") then {_assetKilledMsg = ""};
|
||||
if (isNil "_markerColor") then {_markerColor = "ColorBlack"};
|
||||
if (isNil "_markerType") then {_markerType = ["mil_box",[]]};
|
||||
//if (isNil "_timeOut") then {_timeOut = -1;};
|
||||
if (isNil "_endCondition") then {_endCondition = blck_missionEndCondition}; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"};
|
||||
if (isNil "_spawnCratesTiming") then {_spawnCratesTiming = blck_spawnCratesTiming}; // Choices: "atMissionSpawnGround","atMissionStartAir","atMissionEndGround","atMissionEndAir".
|
||||
if (isNil "_loadCratesTiming") then {_loadCratesTiming = blck_loadCratesTiming}; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
if (isNil "_missionPatrolVehicles") then {_missionPatrolVehicles = []};
|
||||
if (isNil "_missionGroups") then {_missionGroups = []};
|
||||
if (isNil "_hostageConfig") then {_hostageConfig = []};
|
||||
if (isNil "_enemyLeaderConfig") then {_enemyLeaderConfig = []};
|
||||
if (isNil "_useMines") then {_useMines = blck_useMines;};
|
||||
if (isNil "_weaponList") then {_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout};
|
||||
if (isNil "_sideArms") then {_sideArms = blck_Pistols};
|
||||
if (isNil "_vests") then {_vests = blck_vests};
|
||||
if (isNil "_backpacks") then {_backpacks = blck_backpacks};
|
||||
//diag_log format["_fnc_missionSpawner: -> blck_backpacks = %1", blck_backpacks];
|
||||
//diag_log format["_fnc_missionSpawner: -> _backpacks = %1",_backpacks];
|
||||
if (isNil "_uniforms") then {_uniforms = blck_SkinList};
|
||||
if (isNil "_headGear") then {_headgear = blck_headgear};
|
||||
|
||||
if (isNil "_chanceHeliPatrol") then
|
||||
{
|
||||
switch (toLower(_aiDifficultyLevel)) do
|
||||
{
|
||||
case "blue": {_chanceHeliPatrol = blck_chanceHeliPatrolBlue};
|
||||
case "red": {_chanceHeliPatrol = blck_chanceHeliPatrolRed};
|
||||
case "green": {_chanceHeliPatrol = blck_chanceHeliPatrolGreen};
|
||||
case "orange": {_chanceHeliPatrol = blck_chanceHeliPatrolOrange};
|
||||
default {_chanceHeliPatrol = 0};
|
||||
};
|
||||
};
|
||||
if (isNil "_noChoppers") then
|
||||
{
|
||||
switch (toLower(_aiDifficultyLevel)) do
|
||||
{
|
||||
case "blue": {_noChoppers = blck_noPatrolHelisBlue};
|
||||
case "red": {_noChoppers = blck_noPatrolHelisRed};
|
||||
case "green": {_noChoppers = blck_noPatrolHelisGreen};
|
||||
case "orange": {_noChoppers = blck_noPatrolHelisOrange};
|
||||
default {_noChoppers = 0};
|
||||
};
|
||||
};
|
||||
if (isNil "_chancePara") then
|
||||
{
|
||||
switch (toLower (_aiDifficultyLevel)) do
|
||||
{
|
||||
case "blue": {_chancePara = blck_chanceParaBlue};
|
||||
case "red": {_chancePara = blck_chanceParaRed};
|
||||
case "green": {_chancePara = blck_chanceParaGreen};
|
||||
case "orange": {_chancePara = blck_chanceParaOrange};
|
||||
default {_chancePara = 0};
|
||||
};
|
||||
};
|
||||
if (isNil "_missionHelis") then
|
||||
{
|
||||
switch (toLower (_aiDifficultyLevel)) do
|
||||
{
|
||||
case "blue": {_missionHelis = blck_patrolHelisBlue};
|
||||
case "red": {_missionHelis = blck_patrolHelisRed};
|
||||
case "green": {_missionHelis = blck_patrolHelisGreen};
|
||||
case "orange": {_missionHelis = blck_patrolHelisOrange};
|
||||
default {_missionHelis = blck_patrolHelisBlue};
|
||||
};
|
||||
};
|
||||
if (isNil "_noPara") then
|
||||
{
|
||||
switch (toLower (_aiDifficultyLevel)) do
|
||||
{
|
||||
case "blue": {_noPara = blck_noParaBlue};
|
||||
case "red": {_noPara = blck_noParaRed};
|
||||
case "green": {_noPara = blck_noParaGreen};
|
||||
case "orange": {_noPara = blck_noParaOrange};
|
||||
default {_noPara = 0};
|
||||
};
|
||||
};
|
||||
if (isNil "_chanceLoot") then {_chanceLoot = 1.0}; //0.5};
|
||||
if (isNil "_paraTriggerDistance") then {_paraTriggerDistance = 400;};
|
||||
if (isNil "_paraLoot") then {_paraLoot = blck_BoxLoot_Red};
|
||||
if (isNil "_paraLootCounts") then {_paraLootCounts = blck_lootCountsRed};
|
||||
|
||||
_objects = [];
|
||||
_mines = [];
|
||||
_crates = [];
|
||||
_aiGroup = [];
|
||||
_missionAIVehicles = [];
|
||||
_blck_AllMissionAI = [];
|
||||
_AI_Vehicles = [];
|
||||
_blck_localMissionMarker = [_markerClass,_coords,"","",_markerColor,_markerType];
|
||||
#define delayTime 1
|
||||
//_groupPatrolRadius = 50;
|
||||
|
||||
#ifdef blck_debugMode
|
||||
diag_log "_missionSpawner: All variables initialized";
|
||||
#endif
|
||||
|
||||
if (blck_labelMapMarkers select 0) then
|
||||
{
|
||||
//diag_log "labeling map markers *****";
|
||||
_blck_localMissionMarker set [2, _markerMissionName];
|
||||
};
|
||||
if !(blck_preciseMapMarkers) then
|
||||
{
|
||||
//diag_log "Map marker will be OFFSET from the mission position";
|
||||
_blck_localMissionMarker set [1,[_coords,75] call blck_fnc_randomPosition];
|
||||
};
|
||||
_blck_localMissionMarker set [3,blck_labelMapMarkers select 1]; // Use an arrow labeled with the mission name?
|
||||
[["start",_startMsg,_markerMissionName]] call blck_fnc_messageplayers;
|
||||
_marker = [_blck_localMissionMarker] call blck_fnc_spawnMarker;
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (145) message players and spawn a mission marker";};
|
||||
if (blck_debugLevel > 0) then {diag_log format["missionSpawner:: (146) _marker = %1",_marker];};
|
||||
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (147) waiting for player to trigger the mission";};
|
||||
#endif
|
||||
////////
|
||||
// All parameters are defined, lets wait until a player is nearby or the mission has timed out
|
||||
////////
|
||||
|
||||
_missionStartTime = diag_tickTime;
|
||||
_playerInRange = false;
|
||||
_missionTimedOut = false;
|
||||
_wait = true;
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then {
|
||||
diag_log "missionSpawner:: (90) starting mission trigger loop"};
|
||||
diag_log format["missionSpawner (163) blck_MissionTimeout = %1", blck_MissionTimeout];
|
||||
#endif
|
||||
|
||||
while {_wait} do
|
||||
{
|
||||
#ifdef blck_debugMode
|
||||
//diag_log "missionSpawner:: top of mission trigger loop";
|
||||
if (blck_debugLevel > 2) exitWith {_playerInRange = true;diag_log "_fnc_missionSpawner (168): player trigger loop triggered by scripting";};
|
||||
#endif
|
||||
|
||||
if ([_coords, blck_TriggerDistance, false] call blck_fnc_playerInRange) exitWith {_playerInRange = true;};
|
||||
if ([_missionStartTime,blck_MissionTimeout] call blck_fnc_timedOut) exitWith {_missionTimedOut = true;};
|
||||
uiSleep 5;
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 2) then
|
||||
{
|
||||
diag_log format["missionSpawner:: Trigger Loop - blck_debugLevel = %1 and _coords = %2",blck_debugLevel, _coords];
|
||||
diag_log format["missionSpawner:: Trigger Loop - players in range = %1",{isPlayer _x && _x distance2D _coords < blck_TriggerDistance} count allPlayers];
|
||||
diag_log format["missionSpawner:: Trigger Loop - timeout = %1", [_missionStartTime,blck_MissionTimeout] call blck_fnc_timedOut];
|
||||
};
|
||||
#endif
|
||||
};
|
||||
|
||||
if (_missionTimedOut) exitWith
|
||||
{
|
||||
diag_log format["_fnc_missionSpawner (187): mission timed out"];
|
||||
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_markerClass, 1] call blck_fnc_endMission;
|
||||
};
|
||||
|
||||
////////
|
||||
// Spawn the mission objects, loot chest, and AI
|
||||
////////
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then
|
||||
{
|
||||
diag_log format["[blckeagls] missionSpawner:: (200) -- >> Mission tripped: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
|
||||
};
|
||||
#endif
|
||||
|
||||
if (blck_SmokeAtMissions select 0) then // spawn a fire and smoke near the crate
|
||||
{
|
||||
_temp = [_coords,blck_SmokeAtMissions select 1] call blck_fnc_smokeAtCrates;
|
||||
if (typeName _temp isEqualTo "ARRAY") then
|
||||
{
|
||||
_objects append _temp;
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep delayTime;
|
||||
if (_useMines) then
|
||||
{
|
||||
_mines = [_coords] call blck_fnc_spawnMines;
|
||||
|
||||
};
|
||||
uiSleep delayTime;
|
||||
_temp = [];
|
||||
|
||||
if (_missionLandscapeMode isEqualTo "random") then
|
||||
{
|
||||
_temp = [_coords,_missionLandscape, 3, 15, 2] call blck_fnc_spawnRandomLandscape;
|
||||
} else {
|
||||
params["_center","_objects"];
|
||||
_temp = [_coords, _missionLandscape] call blck_fnc_spawnCompositionObjects;
|
||||
};
|
||||
if (typeName _temp isEqualTo "ARRAY") then
|
||||
{
|
||||
_objects append _temp;
|
||||
};
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then
|
||||
{
|
||||
diag_log format["[blckeagls] missionSpawner:: (237) Landscape spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
|
||||
};
|
||||
#endif
|
||||
|
||||
uiSleep delayTime;;
|
||||
|
||||
_temp = [_coords,_missionLootVehicles] call blck_fnc_spawnMissionLootVehicles;
|
||||
//uisleep 1;
|
||||
_crates append _temp;
|
||||
|
||||
uiSleep delayTime;
|
||||
|
||||
_abort = false;
|
||||
_temp = [[],[],false];
|
||||
|
||||
// params["_coords",_minNoAI,_maxNoAI,_missionGroups,_aiDifficultyLevel,_uniforms,_headGear,_vests",_backpacks,_weapons,sideArms,_isScubaGroup];
|
||||
#ifdef blck_debugMode
|
||||
private _params = [_coords,_minNoAI,_maxNoAI,_missionGroups,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms];
|
||||
{
|
||||
diag_log format["_fnc_missionSpawner: _param %1 label %2 = %3",_forEachIndex, _x, _params select _forEachIndex];
|
||||
}forEach ["_coords","_minNoAI","_maxNoAI","_missionGroups","_aiDifficultyLevel","_uniforms","_headgear","_vests","_backpacks","_weaponList","_sideArms"];
|
||||
#endif
|
||||
|
||||
_temp = [_coords, _minNoAI,_maxNoAI,_missionGroups,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionAI;
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 2) then {
|
||||
diag_log format["missionSpawner :: (264) blck_fnc_spawnMissionAI returned a value of _temp = %1",_temp]; uiSleep 1;
|
||||
};
|
||||
|
||||
_abort = _temp select 1;
|
||||
if (blck_debugLevel > 2) then {
|
||||
diag_log format["missionSpawner :: (269) blck_fnc_spawnMissionAI returned a value of _abort = %1",_abort]; uiSleep 1;
|
||||
};
|
||||
#endif
|
||||
|
||||
if (_abort) exitWith
|
||||
{
|
||||
if (blck_debugLevel > 1) then {
|
||||
diag_log "missionSpawner:: (277) grpNull returned, mission termination criteria met, calling blck_fnc_endMission"
|
||||
};
|
||||
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_markerClass, 1] call blck_fnc_endMission;
|
||||
};
|
||||
if !(_abort) then
|
||||
{
|
||||
_blck_AllMissionAI append (_temp select 0);
|
||||
};
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then
|
||||
{
|
||||
diag_log format["[blckeagls] missionSpawner:: (288) AI Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
|
||||
};
|
||||
#endif
|
||||
|
||||
_assetSpawned = objNull;
|
||||
if !(_hostageConfig isEqualTo []) then
|
||||
{
|
||||
_assetSpawned = [_coords,_hostageConfig] call blck_fnc_spawnHostage;
|
||||
//diag_log format["_fnc_missionSpawner: _assetSpawned = %1",_assetSpawned];
|
||||
_blck_AllMissionAI pushBack _assetSpawned;
|
||||
};
|
||||
|
||||
if !(_enemyLeaderConfig isEqualTo []) then
|
||||
{
|
||||
_assetSpawned = [_coords,_enemyLeaderConfig] call blck_fnc_spawnLeader;
|
||||
//diag_log format["_fnc_missionSpawner: _assetSpawned = %1",_assetSpawned];
|
||||
_blck_AllMissionAI pushBack _assetSpawned;
|
||||
};
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel >= 1) then {
|
||||
diag_log format["_fnc_missionSpawner: _assetSpawned = %1",_assetSpawned];
|
||||
};
|
||||
#endif
|
||||
|
||||
uiSleep delayTime;
|
||||
_temp = [[],[],false];
|
||||
_abort = false;
|
||||
|
||||
_vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange;
|
||||
if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || count _missionPatrolVehicles > 0)) then
|
||||
{
|
||||
#define useRelativePos true
|
||||
//params[_coords,_noVehiclePatrols,_aiDifficultyLevel,_missionPatrolVehicles,_useRelativePos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms, _isScubaGroup];
|
||||
//_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_uniforms,_headGear,_missionPatrolVehicles] call blck_fnc_spawnMissionVehiclePatrols;
|
||||
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_missionPatrolVehicles,useRelativePos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionVehiclePatrols;
|
||||
|
||||
if (typeName _temp isEqualTo "ARRAY") then
|
||||
{
|
||||
_abort = _temp select 2;
|
||||
};
|
||||
if !(_abort) then
|
||||
{
|
||||
_patrolVehicles = _temp select 0;
|
||||
_blck_AllMissionAI append (_temp select 1);
|
||||
};
|
||||
};
|
||||
|
||||
if (_abort) exitWith
|
||||
{
|
||||
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_markerClass, 1] call blck_fnc_endMission;
|
||||
};
|
||||
|
||||
uiSleep delayTime;
|
||||
_temp = [[],[],false];
|
||||
_abort = false;
|
||||
|
||||
// Deal with helicopter patrols
|
||||
_temp = [];
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then
|
||||
{
|
||||
diag_log format["[blckeagls] missionSpawner:: (351) calling in heli patrol: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
|
||||
};
|
||||
#endif
|
||||
|
||||
_noChoppers = [_noChoppers] call blck_fnc_getNumberFromRange;
|
||||
//_noPara = [_noPara] call blck_fnc_getNumberFromRange;
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then {diag_log format["_missionSpawner(322):: _noChoppers = %1 && _chancePara = %2",_noChoppers,_chancePara]};
|
||||
#endif
|
||||
if (_noChoppers > 0) then
|
||||
{
|
||||
for "_i" from 1 to (_noChoppers) do
|
||||
{
|
||||
if (random(1) < _chanceHeliPatrol) then
|
||||
{
|
||||
//_temp = [_coords,_missionHelis,spawnHeli,_aiDifficultyLevel,_chancePara,_noPara,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionReinforcements;
|
||||
_temp = [_coords,_aiDifficultyLevel,_missionHelis,_uniforms,_headGear,_vests,_backpacks,"none",_weaponList, _sideArms] call blck_fnc_spawnMissionHeli;
|
||||
|
||||
if (typeName _temp isEqualTo "ARRAY") then
|
||||
{
|
||||
_abort = _temp select 2;
|
||||
blck_monitoredVehicles pushBack (_temp select 0);
|
||||
_blck_AllMissionAI append (_temp select 1);
|
||||
};
|
||||
if (_abort) then
|
||||
{
|
||||
_objects pushback (_temp select 0);
|
||||
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_markerClass, 1] call blck_fnc_endMission;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
//////////////////////////
|
||||
// Spawn Crates and Emplaced Weapons Last to try to force them to correct positions relative to spawned buildinga or other objects.
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then {diag_log format["missionSpawner:: (389) preparing to spawn emplaced weapons for _coords %4 | _markerClass %3 | blck_useStatic = %1 | _noEmplacedWeapons = %2",blck_useStatic,_noEmplacedWeapons,_markerClass,_coords];};
|
||||
#endif
|
||||
uiSleep 15;
|
||||
private["_noEmplacedToSpawn"];
|
||||
_noEmplacedToSpawn = [_noEmplacedWeapons] call blck_fnc_getNumberFromRange;
|
||||
//diag_log format["_fnc_missionSpawner: -> _noEmplacedToSpawn = %1 | blck_useStatic = %2",_noEmplacedToSpawn,blck_useStatic];
|
||||
if (blck_useStatic && (_noEmplacedToSpawn > 0)) then
|
||||
{
|
||||
// _params = ["_coords","_missionEmplacedWeapons","_useRelativePos","_noEmplacedWeapons","_aiDifficultyLevel","_uniforms","_headGear","_vests","_backpacks","_weaponList","_sideArms"];
|
||||
// _temp = [_missionEmplacedWeapons,_noEmplacedToSpawn,_aiDifficultyLevel,_coords,_uniforms,_headGear] call blck_fnc_spawnEmplacedWeaponArray;
|
||||
_temp = [_coords,_missionEmplacedWeapons,useRelativePos,_noEmplacedToSpawn,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnEmplacedWeaponArray;
|
||||
|
||||
if (typeName _temp isEqualTo "ARRAY") then
|
||||
{
|
||||
_abort = _temp select 2;
|
||||
};
|
||||
|
||||
if !(_abort) then
|
||||
{
|
||||
_objects append (_temp select 0);
|
||||
_blck_AllMissionAI append (_temp select 1);
|
||||
};
|
||||
};
|
||||
if (_abort) exitWith
|
||||
{
|
||||
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_markerClass, 1] call blck_fnc_endMission;
|
||||
};
|
||||
uiSleep delayTime;
|
||||
if (_spawnCratesTiming isEqualTo "atMissionSpawnGround") then
|
||||
{
|
||||
if (count _missionLootBoxes > 0) then
|
||||
{
|
||||
_crates = [_coords,_missionLootBoxes,_loadCratesTiming, _spawnCratesTiming, "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
|
||||
}
|
||||
else
|
||||
{
|
||||
_crates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_crateLoot,_lootCounts]], _loadCratesTiming, _spawnCratesTiming, "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
|
||||
|
||||
};
|
||||
|
||||
if (blck_cleanUpLootChests) then
|
||||
{
|
||||
_objects append _crates;
|
||||
};
|
||||
};
|
||||
if (_noPara > 0 && (random(1) < _chancePara) && _paraTriggerDistance == 0) then
|
||||
{
|
||||
diag_log format["_fnc_missionSpawner (436): spawning %1 paraunits at mission spawn",_noPara];
|
||||
private _paratroops = [_coords,_noPara,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnParaUnits;
|
||||
if !(isNull _paratroops) then
|
||||
{
|
||||
_blck_AllMissionAI append (units _paratroops);
|
||||
};
|
||||
if (random(1) < _chanceLoot) then
|
||||
{
|
||||
diag_log format["_fnc_missionSpawner (446): spawning supplemental loot with _chanceLoot = %1",_chanceLoot];
|
||||
private _extraCrates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_paraLoot,_paraLootCounts]], "atMissionSpawn","atMissionStartAir", "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
|
||||
if (blck_cleanUpLootChests) then
|
||||
{
|
||||
_objects append _extraCrates;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Define Triggers for mission end
|
||||
private["_missionComplete","_endIfPlayerNear","_endIfAIKilled","_secureAsset","_crateStolen","_locations"];
|
||||
_missionComplete = -1;
|
||||
_startTime = diag_tickTime;
|
||||
|
||||
switch (_endCondition) do
|
||||
{
|
||||
case "playerNear": {_secureAsset = false; _endIfPlayerNear = true;_endIfAIKilled = false;};
|
||||
case "allUnitsKilled": {_secureAsset = false; _endIfPlayerNear = false;_endIfAIKilled = true;};
|
||||
case "allKilledOrPlayerNear": {_secureAsset = false; _endIfPlayerNear = true;_endIfAIKilled = true;};
|
||||
case "assetSecured": {_secureAsset = true; _endIfPlayerNear = false; _endIfAIKilled = false;};
|
||||
};
|
||||
//diag_log format["_fnc_missionSpawner: _secureAsset = %1",_secureAsset];
|
||||
if (blck_showCountAliveAI) then
|
||||
{
|
||||
if !(_marker isEqualTo "") then
|
||||
{
|
||||
[_marker,_markerMissionName,_blck_AllMissionAI] call blck_fnc_updateMarkerAliveCount;
|
||||
blck_missionMarkers pushBack [_marker,_markerMissionName,_blck_AllMissionAI];
|
||||
};
|
||||
};
|
||||
|
||||
_crateStolen = false;
|
||||
_locations = [_coords];
|
||||
private _spawnPara = if (random(1) < _chancePara) then {true} else {false};
|
||||
{
|
||||
_locations pushback (getPos _x);
|
||||
_x setVariable["crateSpawnPos", (getPos _x)];
|
||||
} forEach _crates;
|
||||
|
||||
private["_thresholdPercentageKilled","_result","_minPercentageKilled"];
|
||||
_thresholdPercentageKilled = (1-blck_killPercentage);
|
||||
while {_missionComplete isEqualTo -1} do
|
||||
{
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 2) exitWith {uiSleep blck_triggerLoopCompleteTime;diag_log "_missionSpawner (492) scripted Mission End blck_debugLevel = 3";};
|
||||
#endif
|
||||
if (_endIfPlayerNear) then
|
||||
{
|
||||
if ([_locations,20,true] call blck_fnc_playerInRangeArray) then {_missionComplete = 1};
|
||||
};
|
||||
|
||||
if (_endIfAIKilled) then
|
||||
{
|
||||
_result = [_blck_AllMissionAI,1] call blck_fnc_countAliveAI;
|
||||
// _result is an array of [no alive, total spawned];
|
||||
//private _noneAlive = if (_result select 0 isEqualTo 0) then {true} else {false};
|
||||
//private _aiCountBelowThreshold = if ( (_result select 0)/(_result select 1) < _thresholdPercentageKilled) then {true} else {false};
|
||||
//diag_log format["_fnc_missionSpawner: _noneAlive = %1 | _result = %2 | PercentageKilled = %3",_noneAlive,_result,(_result select 0)/(_result select 1)];
|
||||
if ((_result select 0) < 1 || ((_result select 0)/(_result select 1)) < _thresholdPercentageKilled ) then {_missionComplete = 1};
|
||||
};
|
||||
if (_spawnCratesTiming isEqualTo "atMissionSpawn") then
|
||||
{
|
||||
{
|
||||
if ({[_x] call blck_fnc_crateMoved} count _crates > 0) exitWith
|
||||
{
|
||||
_missionComplete = 1;
|
||||
_crateStolen = true;
|
||||
};
|
||||
}forEach _crates;
|
||||
};
|
||||
if (_secureAsset) then
|
||||
{
|
||||
if !(alive _assetSpawned) then
|
||||
{
|
||||
_missionComplete = 1
|
||||
} else {
|
||||
//if (_assetSpawned getVariable["blck_AIState",0] > 0 && (({alive _x} count _blck_AllMissionAI) isEqualTo 1)) then {_missionComplete = 1};
|
||||
_result = [_blck_AllMissionAI, 1] call blck_fnc_countAliveAI;
|
||||
// _result is an array of [no alive, total spawned];
|
||||
//private _noneAlive = if (_result select 0 isEqualTo 0) then {true} else {false};
|
||||
//private _aiCountBelowThreshold = if ((_result select 0)/(_result select 1) < _thresholdPercentageKilled) then {true} else {false};
|
||||
//diag_log format["_fnc_missionSpawner: _noneAlive = %1 | _result = %2 | PercentageKilled = %3",_noneAlive,_result,(_result select 0)/(_result select 1)];
|
||||
if (((_result select 0)/(_result select 1)) < 0.18) then
|
||||
{
|
||||
if (_assetSpawned getVariable["blck_unguarded",0] isEqualTo 0) then {_assetSpawned setVariable["blck_unguarded",1,true]};
|
||||
if ((_assetSpawned getVariable["blck_AIState",0] > 0)) then {
|
||||
_missionComplete = 1:
|
||||
_assetSpawned allowdamage false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
if (_spawnPara) then
|
||||
{
|
||||
|
||||
if ([_coords,_paraTriggerDistance,true] call blck_fnc_playerInRange) then
|
||||
{
|
||||
_spawnPara = false; // The player gets one try to spawn these.
|
||||
if (random(1) < _chancePara) then //
|
||||
{
|
||||
private _paratroops = [_coords,_noPara,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnParaUnits;
|
||||
if !(isNull _paratroops) then
|
||||
{
|
||||
_blck_AllMissionAI append (units _paratroops);
|
||||
};
|
||||
if (random(1) < _chanceLoot) then
|
||||
{
|
||||
private _extraCrates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_paraLoot,_paraLootCounts]], "atMissionSpawn","atMissionStartAir", "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
|
||||
if (blck_cleanUpLootChests) then
|
||||
{
|
||||
_objects append _extraCrates;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
uiSleep 1;
|
||||
};
|
||||
|
||||
if (_crateStolen) exitWith
|
||||
{
|
||||
diag_log format["missionSpawner:: (542) Crate Stolen Callening _fnc_endMission - > players near = %1 and ai alive = %2 and crates stolen = %3",[_locations,10,true] call blck_fnc_playerInRangeArray, {alive _x} count _blck_AllMissionAI, _crateStolen];
|
||||
[_mines,_objects,_crates, _blck_AllMissionAI,"Crate Removed from Mission Site Before Mission Completion: Mission Aborted",_blck_localMissionMarker,_coords,_markerClass, 2] call blck_fnc_endMission;
|
||||
};
|
||||
|
||||
if ((_secureAsset) && !(alive _assetSpawned)) exitWith
|
||||
{
|
||||
[_mines,_objects,_crates, _blck_AllMissionAI,_assetKilledMsg,_blck_localMissionMarker,_coords,_markerClass, 2] call blck_fnc_endMission;
|
||||
};
|
||||
|
||||
if (_spawnCratesTiming in ["atMissionEndGround","atMissionEndAir"]) then
|
||||
{
|
||||
if (count _missionLootBoxes > 0) then
|
||||
{
|
||||
_crates = [_coords,_missionLootBoxes,_loadCratesTiming,_spawnCratesTiming, "end", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
|
||||
}
|
||||
else
|
||||
{
|
||||
_crates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_crateLoot,_lootCounts]], _loadCratesTiming,_spawnCratesTiming, "end", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
|
||||
};
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then {diag_log format["_fnc_missionSpawner (531): _crates = %1", _crates]};
|
||||
#endif
|
||||
|
||||
if (blck_cleanUpLootChests) then
|
||||
{
|
||||
_objects append _crates;
|
||||
};
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then {diag_log format["[blckeagls] missionSpawner:: (428) Crates Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]};
|
||||
#endif
|
||||
};
|
||||
|
||||
if (_spawnCratesTiming isEqualTo "atMissionSpawnGround" && _loadCratesTiming isEqualTo "atMissionCompletion") then
|
||||
{
|
||||
{
|
||||
[_x] call blck_fnc_loadMissionCrate;
|
||||
} forEach _crates;
|
||||
};
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then
|
||||
{
|
||||
diag_log format["[blckeagls] missionSpawner:: (586) Mission completion criteria fulfilled: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
|
||||
diag_log format["missionSpawner :: (587) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled];
|
||||
diag_log format["[blckeagls] missionSpawner:: (588) calling endMission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
|
||||
};
|
||||
#endif
|
||||
|
||||
private["_result"];
|
||||
// Force passing the mission name for informational purposes.
|
||||
_blck_localMissionMarker set [2, _markerMissionName];
|
||||
if (blck_showCountAliveAI) then
|
||||
{
|
||||
_marker setMarkerText format["%1: All AI Dead",_markerMissionName];
|
||||
{
|
||||
if ((_x select 1) isEqualTo _markerMissionName) exitWith{blck_missionMarkers deleteAt _forEachIndex};
|
||||
}forEach blck_missionMarkers;
|
||||
};
|
||||
|
||||
//diag_log format["_fnc_missionSpawner (557) Build 123: _secureAsset = %1 | {alive _assetSpawned} = %2 | assetType = %3",_secureAsset,alive _assetSpawned, _assetSpawned getVariable["assetType",-1]];
|
||||
|
||||
if (_assetSpawned getVariable["assetType",0] isEqualTo 1) then
|
||||
{
|
||||
//diag_log "Processing Mission End for Hostage Rescue";
|
||||
_assetSpawned setCaptive false;
|
||||
_assetSpawned setVariable["GMSAnimations",[""],true];
|
||||
[_assetSpawned,""] remoteExec["switchMove",-2];;
|
||||
uiSleep 0.1;
|
||||
_assetSpawned enableAI "ALL";
|
||||
private _newPos = (getPos _assetSpawned) getPos [1000, random(360)];
|
||||
//diag_log format["processing domove for hostage with current pos = %1 and new pos = %2",getPos _assetSpawned, _newPos];
|
||||
(group _assetSpawned) setCurrentWaypoint [group _assetSpawned, 0];
|
||||
[group _assetSpawned,0] setWaypointPosition [_newPos,0];
|
||||
[group _assetSpawned,0] setWaypointType "MOVE";
|
||||
};
|
||||
|
||||
if (_assetSpawned getVariable["assetType",0] isEqualTo 2) then
|
||||
{
|
||||
//diag_log format["Processing Mission End for Arrest of Leader %1 with endAnimation %2",_assetSpawned,_assetSpawned getVariable["endAnimation",""]];
|
||||
[_assetSpawned,""] remoteExec["switchMove",-2];
|
||||
_assetSpawned setVariable["GMSAnimations",_assetSpawned getVariable["endAnimation",["AidlPercMstpSnonWnonDnon_AI"]],true];
|
||||
[_assetSpawned,selectRandom(_assetSpawned getVariable["endAnimation",["AidlPercMstpSnonWnonDnon_AI"]])] remoteExec["switchMove",-2];
|
||||
};
|
||||
|
||||
//diag_log format["_fnc_missionSpawner (579) Build 123: <calling blck_fnc_endMission> _secureAsset = %1 | {alive _assetSpawned} = %2 | assetType = %3",_secureAsset,alive _assetSpawned, _assetSpawned getVariable["assetType",-1]];
|
||||
|
||||
_result = [_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_markerClass, 0] call blck_fnc_endMission;
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 2) then {diag_log format["[blckeagls] missionSpawner:: (507)end of mission: blck_fnc_endMission has returned control to _fnc_missionSpawner"]};
|
||||
#endif
|
||||
//diag_log format["_fnc_missionSpawner (643) Mission Completed | _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
|
||||
blck_missionsRun = blck_missionsRun + 1;
|
||||
diag_log format["_fnc_missionSpawner (644): Total Dyanamic Land and UMS Run = %1", blck_missionsRun];
|
@ -20,5 +20,5 @@ _crate setVariable["chute",_chute];
|
||||
_chute setPos [getPos _chute select 0, getPos _chute select 1, _dropHeight];
|
||||
_crate setPos (getPos _chute);
|
||||
_crate attachTo [_chute, [0,0,0]];
|
||||
if (_crateVisualMarker) then {[_crate] spawn blck_fnc_crateMapMarker};
|
||||
if (_crateVisualMarker) then {[_crate] spawn blck_fnc_crateMarker};
|
||||
|
||||
|
@ -1,47 +0,0 @@
|
||||
/*
|
||||
spawn a crate at a specific location
|
||||
returns the object (crate) that was created.
|
||||
for ghostridergaming
|
||||
By Ghostrider [GRG]
|
||||
Copyright 2016
|
||||
Last updated 12-5-17
|
||||
|
||||
--------------------------
|
||||
License
|
||||
--------------------------
|
||||
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
|
||||
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
private ["_crate"];
|
||||
params["_coords",["_crateType","Box_NATO_Wps_F"]];
|
||||
|
||||
_crate = createVehicle [_crateType,_coords,[], 0, "CAN_COLLIDE"];
|
||||
_crate setVariable ["LAST_CHECK", 100000];
|
||||
_crate allowDamage false;
|
||||
_crate enableRopeAttach false;
|
||||
[_crate] call blck_fnc_emptyObject;
|
||||
_crate setPosATL _coords;
|
||||
_crate setVectorUp [0,0,0];
|
||||
if ((_coords select 2) < 0 || surfaceIsWater (_coords)) then
|
||||
{
|
||||
|
||||
private["_lantern","_bbr","_p1","_p2","_maxHeight"];
|
||||
//_lantern = createVehicle ["PortableHelipadLight_01_red_F", [0,0,0],[],0,"CAN_COLLIDE"];// Land_Camping_Light_F
|
||||
//_lantern enableSimulationGlobal true;
|
||||
//_lantern switchLight "on";
|
||||
_light = "#lightpoint" createVehicle (getPos _crate);
|
||||
_light setLightDayLight true;
|
||||
_light setLightBrightness 1.0;
|
||||
_light setLightAmbient [0.0, 1.0, 0.0];
|
||||
_light setLightColor [0.0, 1.0, 0.0];
|
||||
_bbr = boundingBoxReal _crate;
|
||||
_p1 = _bbr select 0;
|
||||
_p2 = _bbr select 1;
|
||||
_maxHeight = abs ((_p2 select 2) - (_p1 select 2));
|
||||
//diag_log format["_fnc_spawnCrate: _bbr = %1 | _maxHeight = %2",_bbr,_maxHeight];
|
||||
_light attachTo [_crate, [0,0,(_maxHeight + 0.5)]];
|
||||
};
|
||||
_crate;
|
@ -21,9 +21,11 @@
|
||||
params["_pos","_numAI","_skillAI",["_uniforms",blck_SkinList],["_headGear",blck_headgearList],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weapons",[]],["_sideArms",blck_Pistols],["_isScuba",false]];
|
||||
private["_arc","_dir","_spawnPos","_chute","_unit","_return","_paraGroup"];
|
||||
private _params = ["_pos","_numAI","_skillAI"];
|
||||
#ifdef blck_debugMode
|
||||
{
|
||||
diag_log format["_fnc_spawnParaUnits: %1 = %2",_x, _this select _forEachIndex];
|
||||
}forEach _params;
|
||||
#endif
|
||||
_paraGroup = call blck_fnc_create_AI_Group;
|
||||
//diag_log format["_fnc_spawnParaUnits: _paraGroup = %1",_paraGroup];
|
||||
// [_pos,_minDist,_maxDist,_groupSpawned,"random","SAD"] spawn blck_fnc_setupWaypoints;
|
||||
|
@ -77,7 +77,7 @@ blck_fnc_paraDropObject = compileFinal preprocessFileLineNumbers "\q\addons\cust
|
||||
blck_fnc_loadMissionCrate = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_loadMissionCrate.sqf";
|
||||
blck_fnc_crateMoved = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_crateMoved.sqf";
|
||||
blck_fnc_crateMarker = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_crateMarker.sqf";
|
||||
blck_fnc_crateMapMarker = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_crateMapMarker.sqf";
|
||||
//blck_fnc_crateMapMarker = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_crateMapMarker.sqf";
|
||||
|
||||
// Group-related functions
|
||||
blck_fnc_spawnGroup = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Groups\GMS_fnc_spawnGroup.sqf"; // Spawn a single group and populate it with AI units]
|
||||
|
@ -53,7 +53,7 @@
|
||||
***********************************************************/
|
||||
////////
|
||||
// Headless Client Configurations
|
||||
blck_useHC = false; // Experimental (death messages and rewards not yet working).
|
||||
blck_useHC = true; // Experimental (death messages and rewards not yet working).
|
||||
|
||||
///////////////////////////////
|
||||
// Kill message configurations
|
||||
|
@ -216,6 +216,10 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
blck_Pistols = [
|
||||
"hgun_PDW2000_F","hgun_ACPC2_F","hgun_Rook40_F","hgun_P07_F","hgun_Pistol_heavy_01_F","hgun_Pistol_heavy_02_F","hgun_Pistol_Signal_F"
|
||||
];
|
||||
blck_Pistols_blue = blck_Pistols;
|
||||
blck_Pistols_red = blck_Pistols;
|
||||
blck_Pistols_green = blck_Pistols;
|
||||
blck_Pistols_orange = blck_Pistols;
|
||||
|
||||
blck_DLC_MMG = [
|
||||
"MMG_01_hex_F","MMG_02_sand_F","MMG_01_tan_F","MMG_02_black_F","MMG_02_camo_F"
|
||||
@ -252,7 +256,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
#ifdef useAPEX
|
||||
blck_backpacks = blck_backpacks + blck_ApexBackpacks;
|
||||
#endif
|
||||
|
||||
blck_backpacks_blue = blck_backpacks;
|
||||
blck_backpacks_red = blck_backpacks;
|
||||
blck_backpacks_green = blck_backpacks;
|
||||
blck_backpacks_orange = blck_backpacks;
|
||||
|
||||
blck_BanditHeadgear = ["H_Shemag_khk","H_Shemag_olive","H_Shemag_tan","H_ShemagOpen_khk"];
|
||||
//This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI.
|
||||
blck_headgear = [
|
||||
@ -385,6 +393,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"H_HelmetCrew_O_ghex_F"
|
||||
];
|
||||
blck_headgearList = blck_headgear + blck_helmets;
|
||||
blck_headgear_blue = blck_headgearList;
|
||||
blck_headgear_red = blck_headgearList;
|
||||
blck_headgear_green = blck_headgearList;
|
||||
blck_headgear_orange = blck_headgearList;
|
||||
|
||||
//This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI.
|
||||
blck_SkinList_Male = [
|
||||
//https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Equipment
|
||||
@ -484,12 +497,22 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"U_Wetsuit_uniform","U_Wetsuit_White","U_Wetsuit_Blue","U_Wetsuit_Purp","U_Wetsuit_Camo"
|
||||
];
|
||||
blck_SkinList = blck_femaleUniformsEpoch + blck_femaleWetsuitsEpoch + blck_SkinList_Male;
|
||||
blck_SkinList_blue = blck_SkinList;
|
||||
blck_SkinList_red = blck_SkinList;
|
||||
blck_SkinList_green = blck_SkinList;
|
||||
blck_SkinList_orange = blck_SkinList;
|
||||
|
||||
blck_vests = [
|
||||
"V_1_EPOCH","V_2_EPOCH","V_3_EPOCH","V_4_EPOCH","V_5_EPOCH","V_6_EPOCH","V_7_EPOCH","V_8_EPOCH","V_9_EPOCH","V_10_EPOCH","V_11_EPOCH","V_12_EPOCH","V_13_EPOCH","V_14_EPOCH","V_15_EPOCH","V_16_EPOCH","V_17_EPOCH","V_18_EPOCH","V_19_EPOCH","V_20_EPOCH",
|
||||
"V_21_EPOCH","V_22_EPOCH","V_23_EPOCH","V_24_EPOCH","V_25_EPOCH","V_26_EPOCH","V_27_EPOCH","V_28_EPOCH","V_29_EPOCH","V_30_EPOCH","V_31_EPOCH","V_32_EPOCH","V_33_EPOCH","V_34_EPOCH","V_35_EPOCH","V_36_EPOCH","V_37_EPOCH","V_38_EPOCH","V_39_EPOCH","V_40_EPOCH",
|
||||
// DLC Vests
|
||||
"V_PlateCarrierSpec_blk","V_PlateCarrierSpec_mtp","V_PlateCarrierGL_blk","V_PlateCarrierGL_mtp","V_PlateCarrierIAGL_oli"
|
||||
];
|
||||
blck_vests_blue = blck_vests;
|
||||
blck_vests_red = blck_vests;
|
||||
blck_vests_green = blck_vests;
|
||||
blck_vests_orange = blck_vests;
|
||||
|
||||
//CraftingFood
|
||||
blck_Meats=[
|
||||
"SnakeCarcass_EPOCH","RabbitCarcass_EPOCH","ChickenCarcass_EPOCH","GoatCarcass_EPOCH","SheepCarcass_EPOCH"
|
||||
|
@ -239,6 +239,10 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
blck_Pistols = [
|
||||
"hgun_PDW2000_F","hgun_ACPC2_F","hgun_Rook40_F","hgun_P07_F","hgun_Pistol_heavy_01_F","hgun_Pistol_heavy_02_F","hgun_Pistol_Signal_F"
|
||||
];
|
||||
blck_Pistols_blue = blck_Pistols;
|
||||
blck_Pistols_red = blck_Pistols;
|
||||
blck_Pistols_green = blck_Pistols;
|
||||
blck_Pistols_orange = blck_Pistols;
|
||||
|
||||
blck_DLC_MMG = [
|
||||
"MMG_01_hex_F","MMG_02_sand_F","MMG_01_tan_F","MMG_02_black_F","MMG_02_camo_F"
|
||||
@ -273,9 +277,13 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
];
|
||||
|
||||
#ifdef useAPEX
|
||||
blck_backpacks = blck_baseBackpacks + blck_ApexBackpacks;
|
||||
blck_backpacks = blck_backpacks + blck_ApexBackpacks;
|
||||
#endif
|
||||
|
||||
blck_backpacks_blue = blck_backpacks;
|
||||
blck_backpacks_red = blck_backpacks;
|
||||
blck_backpacks_green = blck_backpacks;
|
||||
blck_backpacks_orange = blck_backpacks;
|
||||
|
||||
blck_BanditHeadgear = ["H_Shemag_khk","H_Shemag_olive","H_Shemag_tan","H_ShemagOpen_khk"];
|
||||
//This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI.
|
||||
blck_headgear = [
|
||||
@ -408,6 +416,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"H_HelmetCrew_O_ghex_F"
|
||||
];
|
||||
blck_headgearList = blck_headgear + blck_helmets;
|
||||
blck_headgear_blue = blck_headgearList;
|
||||
blck_headgear_red = blck_headgearList;
|
||||
blck_headgear_green = blck_headgearList;
|
||||
blck_headgear_orange = blck_headgearList;
|
||||
|
||||
//This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI.
|
||||
blck_SkinList = [
|
||||
//https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Equipment
|
||||
@ -499,6 +512,10 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"U_B_CTRG_Soldier_urb_2_F",
|
||||
"U_B_CTRG_Soldier_urb_3_F"
|
||||
];
|
||||
blck_SkinList_blue = blck_SkinList;
|
||||
blck_SkinList_red = blck_SkinList;
|
||||
blck_SkinList_green = blck_SkinList;
|
||||
blck_SkinList_orange = blck_SkinList;
|
||||
|
||||
blck_vests = [
|
||||
"V_1_EPOCH","V_2_EPOCH","V_3_EPOCH","V_4_EPOCH","V_5_EPOCH","V_6_EPOCH","V_7_EPOCH","V_8_EPOCH","V_9_EPOCH","V_10_EPOCH","V_11_EPOCH","V_12_EPOCH","V_13_EPOCH","V_14_EPOCH","V_15_EPOCH","V_16_EPOCH","V_17_EPOCH","V_18_EPOCH","V_19_EPOCH","V_20_EPOCH",
|
||||
@ -506,6 +523,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
// DLC Vests
|
||||
"V_PlateCarrierSpec_blk","V_PlateCarrierSpec_mtp","V_PlateCarrierGL_blk","V_PlateCarrierGL_mtp","V_PlateCarrierIAGL_oli"
|
||||
];
|
||||
blck_vests_blue = blck_vests;
|
||||
blck_vests_red = blck_vests;
|
||||
blck_vests_green = blck_vests;
|
||||
blck_vests_orange = blck_vests;
|
||||
|
||||
//CraftingFood
|
||||
blck_Meats=[
|
||||
"SnakeCarcass_EPOCH","RabbitCarcass_EPOCH","ChickenCarcass_EPOCH","GoatCarcass_EPOCH","SheepCarcass_EPOCH"
|
||||
|
@ -276,6 +276,10 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
blck_Pistols = [
|
||||
"hgun_PDW2000_F","hgun_ACPC2_F","hgun_Rook40_F","hgun_P07_F","hgun_Pistol_heavy_01_F","hgun_Pistol_heavy_02_F","hgun_Pistol_Signal_F"
|
||||
];
|
||||
blck_Pistols_blue = blck_Pistols;
|
||||
blck_Pistols_red = blck_Pistols;
|
||||
blck_Pistols_green = blck_Pistols;
|
||||
blck_Pistols_orange = blck_Pistols;
|
||||
|
||||
blck_DLC_MMG = [
|
||||
"MMG_01_hex_F","MMG_02_sand_F","MMG_01_tan_F","MMG_02_black_F","MMG_02_camo_F"
|
||||
@ -312,6 +316,10 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
];
|
||||
blck_backpacks = blck_ApexBackpacks + blck_backpacks;
|
||||
#endif
|
||||
blck_backpacks_blue = blck_backpacks;
|
||||
blck_backpacks_red = blck_backpacks;
|
||||
blck_backpacks_green = blck_backpacks;
|
||||
blck_backpacks_orange = blck_backpacks;
|
||||
|
||||
blck_BanditHeadgear = ["H_Shemag_khk","H_Shemag_olive","H_Shemag_tan","H_ShemagOpen_khk"];
|
||||
//This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI.
|
||||
@ -454,6 +462,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"H_HelmetCrew_O_ghex_F"
|
||||
];
|
||||
blck_headgearList = blck_headgear + blck_helmets;
|
||||
blck_headgear_blue = blck_headgearList;
|
||||
blck_headgear_red = blck_headgearList;
|
||||
blck_headgear_green = blck_headgearList;
|
||||
blck_headgear_orange = blck_headgearList;
|
||||
|
||||
//This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI.
|
||||
blck_SkinList = [
|
||||
//https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Equipment
|
||||
@ -547,6 +560,10 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"U_B_CTRG_Soldier_urb_2_F",
|
||||
"U_B_CTRG_Soldier_urb_3_F"
|
||||
];
|
||||
blck_SkinList_blue = blck_SkinList;
|
||||
blck_SkinList_red = blck_SkinList;
|
||||
blck_SkinList_green = blck_SkinList;
|
||||
blck_SkinList_orange = blck_SkinList;
|
||||
|
||||
blck_vests = [
|
||||
"V_Press_F",
|
||||
@ -607,7 +624,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
#endif
|
||||
"V_PlateCarrier2_rgr_noflag_F"
|
||||
];
|
||||
|
||||
blck_vests_blue = blck_vests;
|
||||
blck_vests_red = blck_vests;
|
||||
blck_vests_green = blck_vests;
|
||||
blck_vests_orange = blck_vests;
|
||||
|
||||
//CraftingFood
|
||||
blck_Meats=[
|
||||
|
||||
|
@ -286,6 +286,10 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
blck_Pistols = [
|
||||
"hgun_PDW2000_F","hgun_ACPC2_F","hgun_Rook40_F","hgun_P07_F","hgun_Pistol_heavy_01_F","hgun_Pistol_heavy_02_F","hgun_Pistol_Signal_F"
|
||||
];
|
||||
blck_Pistols_blue = blck_Pistols;
|
||||
blck_Pistols_red = blck_Pistols;
|
||||
blck_Pistols_green = blck_Pistols;
|
||||
blck_Pistols_orange = blck_Pistols;
|
||||
|
||||
blck_DLC_MMG = [
|
||||
"MMG_01_hex_F","MMG_02_sand_F","MMG_01_tan_F","MMG_02_black_F","MMG_02_camo_F"
|
||||
@ -324,6 +328,10 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
];
|
||||
blck_backpacks = blck_backpacks + blck_ApexBackpacks;
|
||||
#endif
|
||||
blck_backpacks_blue = blck_backpacks;
|
||||
blck_backpacks_red = blck_backpacks;
|
||||
blck_backpacks_green = blck_backpacks;
|
||||
blck_backpacks_orange = blck_backpacks;
|
||||
|
||||
blck_BanditHeadgear = ["H_Shemag_khk","H_Shemag_olive","H_Shemag_tan","H_ShemagOpen_khk"];
|
||||
//This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI.
|
||||
@ -466,6 +474,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"H_HelmetCrew_O_ghex_F"
|
||||
];
|
||||
blck_headgearList = blck_headgear + blck_helmets;
|
||||
blck_headgear_blue = blck_headgearList;
|
||||
blck_headgear_red = blck_headgearList;
|
||||
blck_headgear_green = blck_headgearList;
|
||||
blck_headgear_orange = blck_headgearList;
|
||||
|
||||
//This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI.
|
||||
blck_SkinList = [
|
||||
//https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Equipment
|
||||
@ -559,7 +572,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"U_B_CTRG_Soldier_urb_2_F",
|
||||
"U_B_CTRG_Soldier_urb_3_F"
|
||||
];
|
||||
|
||||
blck_SkinList_blue = blck_SkinList;
|
||||
blck_SkinList_red = blck_SkinList;
|
||||
blck_SkinList_green = blck_SkinList;
|
||||
blck_SkinList_orange = blck_SkinList;
|
||||
|
||||
blck_vests = [
|
||||
"V_Press_F",
|
||||
"V_Rangemaster_belt",
|
||||
@ -619,7 +636,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
#endif
|
||||
"V_PlateCarrier2_rgr_noflag_F"
|
||||
];
|
||||
|
||||
blck_vests_blue = blck_vests;
|
||||
blck_vests_red = blck_vests;
|
||||
blck_vests_green = blck_vests;
|
||||
blck_vests_orange = blck_vests;
|
||||
|
||||
//CraftingFood
|
||||
blck_Meats=[
|
||||
|
||||
|
@ -48,7 +48,7 @@
|
||||
***********************************************************/
|
||||
////////
|
||||
// Headless Client Configurations
|
||||
blck_useHC = false; //
|
||||
blck_useHC = true; //
|
||||
|
||||
///////////////////////////////
|
||||
// Kill message configurations
|
||||
|
@ -3,6 +3,7 @@
|
||||
for ghostridergaming
|
||||
By Ghostrider [GRG]
|
||||
Copyright 2016
|
||||
Last Modified 3-14-17
|
||||
|
||||
--------------------------
|
||||
License
|
||||
@ -16,10 +17,6 @@
|
||||
|
||||
diag_log "[blckeagls] Loading Configuration Overides";
|
||||
|
||||
/*
|
||||
See the examples below as a guide for adding configs that are unique for each of several servers.
|
||||
*/
|
||||
/*
|
||||
private["_startTime"];
|
||||
_startTime = diag_tickTime;
|
||||
_world = toLower format ["%1", worldName];
|
||||
@ -29,6 +26,7 @@ switch (_world) do {
|
||||
case "napf":{_nightAccel = 12; _dayAccel = 2;_duskAccel = 6;};
|
||||
case "namalsk":{_nightAccel = 12; _dayAccel = 2;_duskAccel = 6;};
|
||||
case "tanoa":{_nightAccel = 12; _dayAccel = 3.2;_duskAccel = 6;};
|
||||
case "namalsk":{_nightAccel = 12; _dayAccel = 2; _duskAccel = 6;};
|
||||
};
|
||||
|
||||
switch (toLower (worldName)) do
|
||||
@ -82,9 +80,9 @@ switch (toLower (worldName)) do
|
||||
blck_maxCrashSites = 1; // recommended settings: 3 for Altis, 2 for Tanoa, 1 for smaller maps. Set to -1 to disable
|
||||
|
||||
blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
|
||||
blck_timeAccelerationDay = ((_serverUpTime + 2)/_daylight); // Daytime time accelearation
|
||||
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
|
||||
blck_timeAccelerationNight = (3/_nightTime); // Nighttim time acceleration
|
||||
blck_timeAccelerationDay = 2; // Daytime time accelearation
|
||||
blck_timeAccelerationDusk = 6; // Dawn/dusk time accelearation
|
||||
blck_timeAccelerationNight = (12); // Nighttim time acceleration
|
||||
};
|
||||
case "esseker":
|
||||
{
|
||||
@ -131,13 +129,99 @@ switch (toLower (worldName)) do
|
||||
blck_maxCrashSites = 3;
|
||||
};
|
||||
};
|
||||
*/
|
||||
|
||||
if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in \custom_server\compiles\blck_variables.sqf
|
||||
{
|
||||
// Used primarily for debugging.
|
||||
diag_log "[blckeagls] Debug seting is ON, Custom configurations used";
|
||||
|
||||
//blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
|
||||
//blck_timeAccelerationDay = 1; // Daytime time accelearation
|
||||
//blck_timeAccelerationDusk = 18; // Dawn/dusk time accelearation
|
||||
//blck_timeAccelerationNight = 24; // Nighttim time acceleration
|
||||
|
||||
blck_useHC = true;
|
||||
|
||||
blck_maxSpawnedMissions = 15;
|
||||
blck_mainThreadUpdateInterval = 10;
|
||||
blck_enableOrangeMissions = 1;
|
||||
blck_enableGreenMissions = 1;
|
||||
blck_enableRedMissions = 1;
|
||||
blck_enableBlueMissions = 1;
|
||||
blck_numberUnderwaterDynamicMissions = -1;
|
||||
blck_enableHunterMissions = 1;
|
||||
blck_enableScoutsMissions = 1;
|
||||
blck_maxCrashSites = 1;
|
||||
|
||||
blck_cleanupCompositionTimer = 20; // Time after mission completion at which items in the composition are deleted.
|
||||
blck_AliveAICleanUpTimer = 20; // Time after mission completion at which any remaining live AI are deleted.
|
||||
blck_bodyCleanUpTimer = 20;
|
||||
blck_vehicleDeleteTimer = 20;
|
||||
//blck_MissionTimeout = 30;
|
||||
|
||||
blck_noPatrolHelisOrange = 1;
|
||||
blck_chanceHeliPatrolOrange = 1;
|
||||
blck_chanceParaOrange = 1;
|
||||
blck_chanceHeliPatrolBlue = -1;
|
||||
blck_noPatrolHelisBlue = -1;
|
||||
blck_chanceParaBlue = -1; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission. This value can be a range as well [0.1,0.3]
|
||||
blck_noParaBlue = 3; // [1-N]
|
||||
blck_paraTriggerDistanceBlue = 400;
|
||||
|
||||
//blck_chanceHeliPatrolBlue = 1;
|
||||
blck_SpawnEmplaced_Orange = 1; // Number of static weapons at Orange Missions
|
||||
blck_SpawnEmplaced_Green = 1; // Number of static weapons at Green Missions
|
||||
blck_SpawnEmplaced_Blue = -1; // Number of static weapons at Blue Missions
|
||||
blck_SpawnEmplaced_Red = 1;
|
||||
|
||||
blck_SpawnVeh_Orange = 1; // Number of vehicles at Orange Missions
|
||||
blck_SpawnVeh_Green = 1; // Number of vehicles at Green Missions
|
||||
blck_SpawnVeh_Blue = -4; // Number of vehicles at Blue Missions
|
||||
blck_SpawnVeh_Red = 1;
|
||||
|
||||
blck_TMin_Blue = 7;
|
||||
blck_TMin_Red = 10;
|
||||
blck_TMin_Green = 13;
|
||||
blck_TMin_Orange = 16;
|
||||
blck_TMin_Hunter = 20;
|
||||
blck_TMin_Scouts = 20;
|
||||
blck_TMin_Crashes = 5;
|
||||
blck_TMin_UMS = 20;
|
||||
//Maximum Spawn time between missions in seconds
|
||||
blck_TMax_Blue = 12;
|
||||
blck_TMax_Red = 15;
|
||||
blck_TMax_Green = 17;
|
||||
blck_TMax_Orange = 21;
|
||||
blck_TMax_Hunter = 22;
|
||||
blck_TMax_Scouts = 22;
|
||||
blck_TMax_Crashes = 15;
|
||||
blck_TMax_UMS = 25;
|
||||
|
||||
//blck_MinAI_Orange = 1;
|
||||
//blck_MaxAI_Orange = 2;
|
||||
//blck_AIGrps_Orange = 1;
|
||||
|
||||
blck_MinAI_Blue = 1;
|
||||
blck_MaxAI_Blue = 2;
|
||||
blck_AIGrps_Blue = 1;
|
||||
|
||||
blck_AIPatrolVehicles = ["Exile_Car_MB4WDOpen"];
|
||||
/*
|
||||
blck_SkillsBlue = [
|
||||
["aimingAccuracy",0.01],
|
||||
["aimingShake",0.01],
|
||||
["aimingSpeed",0.01],
|
||||
["endurance",0.01],
|
||||
["spotDistance",0.01],
|
||||
["spotTime",0.01],
|
||||
["courage",0.01],
|
||||
["reloadSpeed",0.80],
|
||||
["commanding",0.8],
|
||||
["general",1.00]
|
||||
];
|
||||
*/
|
||||
};
|
||||
|
||||
/*
|
||||
You can define configs for additional mods or loadouts here
|
||||
*/
|
||||
/*
|
||||
blck_CUPWeapons = [
|
||||
"CUP_lmg_L7A2",
|
||||
"CUP_lmg_L110A1",
|
||||
@ -1266,4 +1350,3 @@ blck_NIA_WeaponsSniper = [
|
||||
"hlc_rifle_psg1",
|
||||
"hlc_rifle_psg1A1"
|
||||
];
|
||||
*/
|
1269
@GMS/addons/custom_server/Configs/blck_custom_config_rc.sqf
Normal file
1269
@GMS/addons/custom_server/Configs/blck_custom_config_rc.sqf
Normal file
File diff suppressed because it is too large
Load Diff
@ -14,7 +14,6 @@
|
||||
#define useAPEX
|
||||
//#define useDynamicSimulation
|
||||
//#define blck_debugMode
|
||||
//#define blck_triggerLoopCompleteTime 40*60
|
||||
//#define blck_milServer
|
||||
|
||||
|
||||
|
@ -119,8 +119,8 @@ _maxNoAI = blck_MaxAI_Blue;
|
||||
_noAIGroups = blck_AIGrps_Blue;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Blue;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Blue;
|
||||
_uniforms = blck_SkinList;
|
||||
_headgear = blck_headgear;
|
||||
//_uniforms = blck_SkinList;
|
||||
//_headgear = blck_headgear;
|
||||
_chanceReinforcements = blck_chanceParaBlue;
|
||||
_noPara = blck_noParaBlue;
|
||||
_chanceHeliPatrol = blck_chanceHeliPatrolBlue;
|
||||
|
@ -116,8 +116,8 @@ _maxNoAI = blck_MaxAI_Blue;
|
||||
_noAIGroups = blck_AIGrps_Blue;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Blue;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Blue;
|
||||
_uniforms = blck_SkinList;
|
||||
_headgear = blck_headgear;
|
||||
//_uniforms = blck_SkinList;
|
||||
//_headgear = blck_headgear;
|
||||
|
||||
_noPara = blck_noParaBlue;
|
||||
//_chanceHeliPatrol = blck_chanceHeliPatrolBlue;
|
||||
|
@ -54,28 +54,28 @@ _maxNoAI = blck_MaxAI_Blue;
|
||||
_noAIGroups = blck_AIGrps_Blue;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Blue;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Blue;
|
||||
_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults
|
||||
_headgear = blck_headgear; // Setting this in the mission file overrides the defaults
|
||||
_vests = blck_vests;
|
||||
_backpacks = blck_backpacks;
|
||||
_weaponList = ["blue"] call blck_fnc_selectAILoadout;
|
||||
_sideArms = blck_Pistols;
|
||||
_chanceHeliPatrol = blck_chanceHeliPatrolBlue; // Setting this in the mission file overrides the defaults
|
||||
_noChoppers = blck_noPatrolHelisBlue;
|
||||
_missionHelis = blck_patrolHelisBlue;
|
||||
//_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults
|
||||
//_headgear = blck_headgear; // Setting this in the mission file overrides the defaults
|
||||
//_vests = blck_vests;
|
||||
//_backpacks = blck_backpacks;
|
||||
//_weaponList = ["blue"] call blck_fnc_selectAILoadout;
|
||||
//_sideArms = blck_Pistols;
|
||||
//_chanceHeliPatrol = blck_chanceHeliPatrolBlue; // Setting this in the mission file overrides the defaults
|
||||
//_noChoppers = blck_noPatrolHelisBlue;
|
||||
//_missionHelis = blck_patrolHelisBlue;
|
||||
|
||||
_chancePara = blck_chanceParaBlue; // Setting this in the mission file overrides the defaults
|
||||
_noPara = blck_noParaBlue; // Setting this in the mission file overrides the defaults
|
||||
_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
_chanceLoot = 0.0;
|
||||
_paraLoot = blck_BoxLoot_Blue;
|
||||
_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
//_chancePara = blck_chanceParaBlue; // Setting this in the mission file overrides the defaults
|
||||
//_noPara = blck_noParaBlue; // Setting this in the mission file overrides the defaults
|
||||
//_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
//_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
//_chanceLoot = 0.0;
|
||||
//_paraLoot = blck_BoxLoot_Blue;
|
||||
//_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
|
||||
_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
//_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
// Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute.
|
||||
// This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission.
|
||||
_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
//_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
// Pertains only to crates spawned at mission spawn.
|
||||
// This sets the default but can be overridden for specific missions by defining _loadCratesTiming
|
||||
|
||||
@ -84,7 +84,7 @@ _loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionComple
|
||||
// To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion"
|
||||
// To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned.
|
||||
// To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned.
|
||||
_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
// Setting this in the mission file overrides the defaults
|
||||
//_timeOut = -1;
|
||||
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";
|
||||
|
@ -79,28 +79,28 @@ _maxNoAI = blck_MaxAI_Blue;
|
||||
_noAIGroups = blck_AIGrps_Blue;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Blue;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Blue;
|
||||
_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults
|
||||
_headgear = blck_headgear; // Setting this in the mission file overrides the defaults
|
||||
_vests = blck_vests;
|
||||
_backpacks = blck_backpacks;
|
||||
_weaponList = ["blue"] call blck_fnc_selectAILoadout;
|
||||
_sideArms = blck_Pistols;
|
||||
_chanceHeliPatrol = blck_chanceHeliPatrolBlue; // Setting this in the mission file overrides the defaults
|
||||
_noChoppers = blck_noPatrolHelisBlue;
|
||||
_missionHelis = blck_patrolHelisBlue;
|
||||
//_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults
|
||||
//_headgear = blck_headgear; // Setting this in the mission file overrides the defaults
|
||||
//_vests = blck_vests;
|
||||
//_backpacks = blck_backpacks;
|
||||
//_weaponList = ["blue"] call blck_fnc_selectAILoadout;
|
||||
//_sideArms = blck_Pistols;
|
||||
//_chanceHeliPatrol = blck_chanceHeliPatrolBlue; // Setting this in the mission file overrides the defaults
|
||||
//_noChoppers = blck_noPatrolHelisBlue;
|
||||
//_missionHelis = blck_patrolHelisBlue;
|
||||
|
||||
_chancePara = blck_chanceParaBlue; // Setting this in the mission file overrides the defaults
|
||||
_noPara = blck_noParaBlue; // Setting this in the mission file overrides the defaults
|
||||
_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
_chanceLoot = 0.0;
|
||||
_paraLoot = blck_BoxLoot_Blue;
|
||||
_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
//_chancePara = blck_chanceParaBlue; // Setting this in the mission file overrides the defaults
|
||||
//_noPara = blck_noParaBlue; // Setting this in the mission file overrides the defaults
|
||||
//_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
//_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
//_chanceLoot = 0.0;
|
||||
//_paraLoot = blck_BoxLoot_Blue;
|
||||
//_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
|
||||
_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
//_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
// Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute.
|
||||
// This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission.
|
||||
_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
//_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
// Pertains only to crates spawned at mission spawn.
|
||||
// This sets the default but can be overridden for specific missions by defining _loadCratesTiming
|
||||
|
||||
@ -109,7 +109,7 @@ _loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionComple
|
||||
// To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion"
|
||||
// To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned.
|
||||
// To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned.
|
||||
_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
// Setting this in the mission file overrides the defaults
|
||||
//_timeOut = -1;
|
||||
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";
|
||||
|
@ -44,28 +44,28 @@ _maxNoAI = blck_MaxAI_Blue;
|
||||
_noAIGroups = blck_AIGrps_Blue;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Blue;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Blue;
|
||||
_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults
|
||||
_headgear = blck_headgear; // Setting this in the mission file overrides the defaults
|
||||
_vests = blck_vests;
|
||||
_backpacks = blck_backpacks;
|
||||
_weaponList = ["blue"] call blck_fnc_selectAILoadout;
|
||||
_sideArms = blck_Pistols;
|
||||
_chanceHeliPatrol = blck_chanceHeliPatrolBlue; // Setting this in the mission file overrides the defaults
|
||||
_noChoppers = blck_noPatrolHelisBlue;
|
||||
_missionHelis = blck_patrolHelisBlue;
|
||||
//_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults
|
||||
//_headgear = blck_headgear; // Setting this in the mission file overrides the defaults
|
||||
//_vests = blck_vests;
|
||||
//_backpacks = blck_backpacks;
|
||||
//_weaponList = ["blue"] call blck_fnc_selectAILoadout;
|
||||
//_sideArms = blck_Pistols;
|
||||
//_chanceHeliPatrol = blck_chanceHeliPatrolBlue; // Setting this in the mission file overrides the defaults
|
||||
//_noChoppers = blck_noPatrolHelisBlue;
|
||||
//_missionHelis = blck_patrolHelisBlue;
|
||||
|
||||
_chancePara = blck_chanceParaBlue; // Setting this in the mission file overrides the defaults
|
||||
_noPara = blck_noParaBlue; // Setting this in the mission file overrides the defaults
|
||||
_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
_chanceLoot = 0.0;
|
||||
_paraLoot = blck_BoxLoot_Blue;
|
||||
_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
//_chancePara = blck_chanceParaBlue; // Setting this in the mission file overrides the defaults
|
||||
//_noPara = blck_noParaBlue; // Setting this in the mission file overrides the defaults
|
||||
//_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
//_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
//_chanceLoot = 0.0;
|
||||
//_paraLoot = blck_BoxLoot_Blue;
|
||||
//_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
|
||||
_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
//_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
// Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute.
|
||||
// This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission.
|
||||
_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
//_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
// Pertains only to crates spawned at mission spawn.
|
||||
// This sets the default but can be overridden for specific missions by defining _loadCratesTiming
|
||||
|
||||
@ -74,7 +74,7 @@ _loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionComple
|
||||
// To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion"
|
||||
// To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned.
|
||||
// To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned.
|
||||
_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
// Setting this in the mission file overrides the defaults
|
||||
|
||||
//_timeOut = -1;
|
||||
|
@ -14,15 +14,16 @@
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
_pathBlue = "Blue";
|
||||
//_missionListBlue = [/*"default",*/"default2"/*,"medicalCamp","redCamp","resupplyCamp"*/];
|
||||
_missionListBlue = ["default"/*,"default2"/*,"medicalCamp","redCamp","resupplyCamp"*/];
|
||||
_missionListBlue = ["resupplyCamp"];
|
||||
//_missionListBlue = ["captive1"/*,"default2"/*,"medicalCamp","redCamp","resupplyCamp"*/];
|
||||
|
||||
_pathRed = "Red";
|
||||
_missionListRed = [/*"default","default2","medicalCamp",*/"redCamp"];
|
||||
|
||||
_missionListRed = ["resupplyCamp"];
|
||||
//_missionListRed = [/*"default","default2","medicalCamp",*/"redCamp"/*,"resupplyCamp"*/];
|
||||
_pathGreen = "Green";
|
||||
_missionListGreen = [/*"default","default2",/*"redCamp",*//*"resupplyCamp",*/"medicalCamp"];
|
||||
_missionListGreen = ["resupplyCamp"];
|
||||
//_missionListGreen = [/*"default","default2",/*"redCamp",*//*"resupplyCamp",*/"medicalCamp"];
|
||||
|
||||
_pathOrange = "Orange";
|
||||
_missionListOrange = [/*"default","default2","medicalCamp","redCamp",*/"resupplyCamp"];
|
||||
|
||||
_missionListOrange = ["resupplyCamp"];
|
||||
//_missionListOrange = [/*"default","default2","medicalCamp","redCamp",*/"resupplyCamp"];
|
||||
|
@ -35,8 +35,8 @@ _maxNoAI = blck_MaxAI_Green;
|
||||
_noAIGroups = blck_AIGrps_Green;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Green;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Green;
|
||||
_uniforms = blck_SkinList;
|
||||
_headgear = blck_headgear;
|
||||
//_uniforms = blck_SkinList;
|
||||
//_headgear = blck_headgear;
|
||||
_chanceLoot = 0.6;
|
||||
private _lootIndex = selectRandom[1,2,3,4];
|
||||
private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot];
|
||||
|
@ -54,9 +54,9 @@ _maxNoAI = blck_MaxAI_Green;
|
||||
_noAIGroups = blck_AIGrps_Green;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Green;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Green;
|
||||
_uniforms = blck_SkinList;
|
||||
_headgear = blck_headgear;
|
||||
_chanceLoot = 1; //0.6;
|
||||
//_uniforms = blck_SkinList;
|
||||
//_headgear = blck_headgear;
|
||||
_chanceLoot = 0.6;
|
||||
private _lootIndex = selectRandom[1,2,3,4];
|
||||
private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot];
|
||||
private _paralootCountsChoices = [[0,0,0,8,8,0],[0,0,0,8,8,0],[8,8,0,0,0,0],[0,0,0,0,12,0]];
|
||||
|
@ -78,12 +78,17 @@ _maxNoAI = blck_MaxAI_Green;
|
||||
_noAIGroups = blck_AIGrps_Green;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Green;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Green;
|
||||
_uniforms = blck_SkinList;
|
||||
_headgear = blck_headgear;
|
||||
_chanceLoot = 1; //0.6;
|
||||
//_uniforms = blck_SkinList;
|
||||
//_headgear = blck_headgear;
|
||||
_chancePara = 0.75; // Setting this in the mission file overrides the defaults
|
||||
_noPara = 5; // Setting this in the mission file overrides the defaults
|
||||
_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot.
|
||||
// To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
_paraSkill = "orange"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
_chanceLoot = 0.7;
|
||||
private _lootIndex = selectRandom[1,2,3,4];
|
||||
private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot];
|
||||
private _paralootCountsChoices = [[0,0,0,8,8,0],[0,0,0,8,8,0],[8,8,0,0,0,0],[0,0,0,0,12,0]];
|
||||
private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]];
|
||||
_paraLoot = _paralootChoices select _lootIndex;
|
||||
_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission.
|
||||
//_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
|
@ -44,9 +44,9 @@ _maxNoAI = blck_MaxAI_Green;
|
||||
_noAIGroups = blck_AIGrps_Green;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Green;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Green;
|
||||
_uniforms = blck_SkinList;
|
||||
_headgear = blck_headgear;
|
||||
_chanceLoot = 1; //0.6;
|
||||
//_uniforms = blck_SkinList;
|
||||
//_headgear = blck_headgear;
|
||||
_chanceLoot = 0.6;
|
||||
private _lootIndex = selectRandom[1,2,3,4];
|
||||
private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot];
|
||||
private _paralootCountsChoices = [[0,0,0,8,8,0],[0,0,0,8,8,0],[8,8,0,0,0,0],[0,0,0,0,12,0]];
|
||||
|
@ -35,17 +35,20 @@ _maxNoAI = blck_MaxAI_Orange;
|
||||
_noAIGroups = blck_AIGrps_Orange;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Orange;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Orange;
|
||||
_uniforms = blck_SkinList;
|
||||
_headgear = blck_headgear;
|
||||
//_uniforms = blck_SkinList;
|
||||
//_headgear = blck_headgear;
|
||||
|
||||
_chancePara = 0.5; // Setting this in the mission file overrides the defaults
|
||||
_chancePara = 0.75; // Setting this in the mission file overrides the defaults
|
||||
_noPara = 5; // Setting this in the mission file overrides the defaults
|
||||
_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
_paraSkill = "orange"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
|
||||
_chanceLoot = 0.5;
|
||||
_paraLoot = blck_BoxLoot_Orange;
|
||||
_paraLootCounts = blck_lootCountsOrange; // Throw in something more exotic than found at a normal blue mission.
|
||||
_chanceLoot = 0.7;
|
||||
private _lootIndex = selectRandom[1,2,3,4];
|
||||
private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot];
|
||||
private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]];
|
||||
_paraLoot = _paralootChoices select _lootIndex;
|
||||
_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission.
|
||||
|
||||
//_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_timeOut = -1;
|
||||
|
@ -54,8 +54,8 @@ _noVehiclePatrols = blck_SpawnVeh_Orange;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Orange;
|
||||
// Change _useMines to true/false below to enable mission-specific settings.
|
||||
_useMines = blck_useMines;
|
||||
_uniforms = blck_SkinList;
|
||||
_headgear = blck_headgear;
|
||||
//_uniforms = blck_SkinList;
|
||||
//_headgear = blck_headgear;
|
||||
|
||||
_chancePara = 0.75; // Setting this in the mission file overrides the defaults
|
||||
_noPara = 5; // Setting this in the mission file overrides the defaults
|
||||
|
@ -78,15 +78,15 @@ _maxNoAI = blck_MaxAI_Orange;
|
||||
_noAIGroups = blck_AIGrps_Orange;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Orange;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Orange;
|
||||
_uniforms = blck_SkinList;
|
||||
_headgear = blck_headgear;
|
||||
//_uniforms = blck_SkinList;
|
||||
//_headgear = blck_headgear;
|
||||
|
||||
_chancePara = 0.75; // Setting this in the mission file overrides the defaults
|
||||
_noPara = 5; // Setting this in the mission file overrides the defaults
|
||||
_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
_paraSkill = "orange"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
|
||||
_chanceLoot = 1; //0.7;
|
||||
_chanceLoot = 0.7;
|
||||
private _lootIndex = selectRandom[1,2,3,4];
|
||||
private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot];
|
||||
private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]];
|
||||
|
@ -45,8 +45,8 @@ _maxNoAI = blck_MaxAI_Orange;
|
||||
_noAIGroups = blck_AIGrps_Orange;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Orange;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Orange;
|
||||
_uniforms = blck_SkinList;
|
||||
_headgear = blck_headgear;
|
||||
//_uniforms = blck_SkinList;
|
||||
//_headgear = blck_headgear;
|
||||
|
||||
_chancePara = 0.75; // Setting this in the mission file overrides the defaults
|
||||
_noPara = 5; // Setting this in the mission file overrides the defaults
|
||||
@ -60,6 +60,6 @@ private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0
|
||||
_paraLoot = _paralootChoices select _lootIndex;
|
||||
_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission.
|
||||
|
||||
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_timeOut = -1;
|
||||
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";
|
||||
|
@ -120,11 +120,11 @@ _maxNoAI = blck_MaxAI_Red;
|
||||
_noAIGroups = blck_AIGrps_Red;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Red;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Red;
|
||||
_uniforms = blck_SkinList;
|
||||
_headgear = blck_headgear;
|
||||
_chanceReinforcements = blck_chanceParaRed;
|
||||
_noPara = blck_noParaRed;
|
||||
_chanceHeliPatrol = blck_chanceHeliPatrolRed;
|
||||
//_uniforms = blck_SkinList;
|
||||
//_headgear = blck_headgear;
|
||||
//_chanceReinforcements = blck_chanceParaRed;
|
||||
//_noPara = blck_noParaRed;
|
||||
//_chanceHeliPatrol = blck_chanceHeliPatrolRed;
|
||||
_spawnCratesTiming = "atMissionEndAir";
|
||||
_endCondition = "assetSecured"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear", "assetSecured"
|
||||
//_timeOut = -1;
|
||||
|
@ -36,29 +36,29 @@ _noVehiclePatrols = blck_SpawnVeh_Red;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Red;
|
||||
// Change _useMines to true/false below to enable mission-specific settings.
|
||||
_useMines = blck_useMines;
|
||||
_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults
|
||||
_headgear = blck_headgear; // Setting this in the mission file overrides the defaults
|
||||
_vests = blck_vests;
|
||||
_backpacks = blck_backpacks;
|
||||
_weaponList = ["blue"] call blck_fnc_selectAILoadout;
|
||||
_sideArms = blck_Pistols;
|
||||
//_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults
|
||||
//_headgear = blck_headgear; // Setting this in the mission file overrides the defaults
|
||||
//_vests = blck_vests;
|
||||
//_backpacks = blck_backpacks;
|
||||
//_weaponList = ["blue"] call blck_fnc_selectAILoadout;
|
||||
//_sideArms = blck_Pistols;
|
||||
_chanceHeliPatrol = blck_chanceHeliPatrolRed; // Setting this in the mission file overrides the defaults
|
||||
_noChoppers = blck_noPatrolHelisRed;
|
||||
_missionHelis = blck_patrolHelisRed;
|
||||
|
||||
//_chancePara = 0.0; // Setting this in the mission file overrides the defaults
|
||||
_noPara = 3; // Setting this in the mission file overrides the defaults
|
||||
_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
//_noPara = 3; // Setting this in the mission file overrides the defaults
|
||||
//_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
//_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
|
||||
//_chanceLoot = 0.999999990;
|
||||
_paraLoot = blck_BoxLoot_Red;
|
||||
_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
//_paraLoot = blck_BoxLoot_Red;
|
||||
//_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
|
||||
_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
//_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
// Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute.
|
||||
// This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission.
|
||||
_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
//_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
// Pertains only to crates spawned at mission spawn.
|
||||
// This sets the default but can be overridden for specific missions by defining _loadCratesTiming
|
||||
|
||||
@ -67,7 +67,7 @@ _loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionComple
|
||||
// To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion"
|
||||
// To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned.
|
||||
// To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned.
|
||||
_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
// Setting this in the mission file overrides the defaults
|
||||
|
||||
//_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
|
@ -117,10 +117,10 @@ _maxNoAI = blck_MaxAI_Red;
|
||||
_noAIGroups = blck_AIGrps_Red;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Red;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Red;
|
||||
_uniforms = blck_SkinList;
|
||||
_headgear = blck_headgear;
|
||||
_noPara = blck_noParaRed;
|
||||
_chanceHeliPatrol = blck_chanceHeliPatrolRed;
|
||||
//_uniforms = blck_SkinList;
|
||||
//_headgear = blck_headgear;
|
||||
//_noPara = blck_noParaRed;
|
||||
//_chanceHeliPatrol = blck_chanceHeliPatrolRed;
|
||||
_spawnCratesTiming = "atMissionEndAir";
|
||||
_endCondition = "assetSecured"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear", "assetSecured"
|
||||
//_timeOut = -1;
|
||||
|
@ -52,30 +52,30 @@ _noAIGroups = blck_AIGrps_Red;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Red;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Red;
|
||||
// Change _useMines to true/false below to enable mission-specific settings.
|
||||
_useMines = blck_useMines;
|
||||
_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults
|
||||
_headgear = blck_headgear; // Setting this in the mission file overrides the defaults
|
||||
_vests = blck_vests;
|
||||
_backpacks = blck_backpacks;
|
||||
_weaponList = ["blue"] call blck_fnc_selectAILoadout;
|
||||
_sideArms = blck_Pistols;
|
||||
_chanceHeliPatrol = blck_chanceHeliPatrolRed; // Setting this in the mission file overrides the defaults
|
||||
_noChoppers = blck_noPatrolHelisRed;
|
||||
_missionHelis = blck_patrolHelisRed;
|
||||
//_useMines = blck_useMines;
|
||||
//_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults
|
||||
//_headgear = blck_headgear; // Setting this in the mission file overrides the defaults
|
||||
//_vests = blck_vests;
|
||||
//_backpacks = blck_backpacks;
|
||||
//_weaponList = ["blue"] call blck_fnc_selectAILoadout;
|
||||
//_sideArms = blck_Pistols;
|
||||
//_chanceHeliPatrol = blck_chanceHeliPatrolRed; // Setting this in the mission file overrides the defaults
|
||||
//_noChoppers = blck_noPatrolHelisRed;
|
||||
//_missionHelis = blck_patrolHelisRed;
|
||||
|
||||
//_chancePara = 0.0; // Setting this in the mission file overrides the defaults
|
||||
_noPara = 3; // Setting this in the mission file overrides the defaults
|
||||
_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
//_noPara = 3; // Setting this in the mission file overrides the defaults
|
||||
//_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
//_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
|
||||
//_chanceLoot = 0.999999990;
|
||||
_paraLoot = blck_BoxLoot_Red;
|
||||
_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
//_paraLoot = blck_BoxLoot_Red;
|
||||
//_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
|
||||
_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
//_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
// Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute.
|
||||
// This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission.
|
||||
_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
//_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
// Pertains only to crates spawned at mission spawn.
|
||||
// This sets the default but can be overridden for specific missions by defining _loadCratesTiming
|
||||
|
||||
@ -84,10 +84,10 @@ _loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionComple
|
||||
// To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion"
|
||||
// To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned.
|
||||
// To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned.
|
||||
_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
// Setting this in the mission file overrides the defaults
|
||||
|
||||
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_timeOut = -1;
|
||||
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";
|
||||
|
||||
|
@ -81,23 +81,23 @@ _noEmplacedWeapons = blck_SpawnEmplaced_Red;
|
||||
// Change _useMines to true/false below to enable mission-specific settings.
|
||||
_useMines = blck_useMines;
|
||||
|
||||
_chanceHeliPatrol = blck_chanceHeliPatrolRed; // Setting this in the mission file overrides the defaults
|
||||
_noChoppers = blck_noPatrolHelisRed;
|
||||
_missionHelis = blck_patrolHelisRed;
|
||||
//_chanceHeliPatrol = blck_chanceHeliPatrolRed; // Setting this in the mission file overrides the defaults
|
||||
//_noChoppers = blck_noPatrolHelisRed;
|
||||
//_missionHelis = blck_patrolHelisRed;
|
||||
|
||||
//_chancePara = 0.0; // Setting this in the mission file overrides the defaults
|
||||
_noPara = 3; // Setting this in the mission file overrides the defaults
|
||||
_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
//_noPara = 3; // Setting this in the mission file overrides the defaults
|
||||
//_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
//_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
|
||||
//_chanceLoot = 0.999999990;
|
||||
_paraLoot = blck_BoxLoot_Red;
|
||||
_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
//_paraLoot = blck_BoxLoot_Red;
|
||||
//_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
|
||||
_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
//_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
// Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute.
|
||||
// This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission.
|
||||
_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
//_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
// Pertains only to crates spawned at mission spawn.
|
||||
// This sets the default but can be overridden for specific missions by defining _loadCratesTiming
|
||||
|
||||
@ -106,9 +106,9 @@ _loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionComple
|
||||
// To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion"
|
||||
// To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned.
|
||||
// To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned.
|
||||
_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
// Setting this in the mission file overrides the defaults
|
||||
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_timeOut = -1;
|
||||
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";
|
||||
|
||||
|
@ -43,30 +43,30 @@ _noAIGroups = blck_AIGrps_Red;
|
||||
_noVehiclePatrols = blck_SpawnVeh_Red;
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Red;
|
||||
// Change _useMines to true/false below to enable mission-specific settings.
|
||||
_useMines = blck_useMines;
|
||||
_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults
|
||||
_headgear = blck_headgear; // Setting this in the mission file overrides the defaults
|
||||
_vests = blck_vests;
|
||||
_backpacks = blck_backpacks;
|
||||
_weaponList = ["blue"] call blck_fnc_selectAILoadout;
|
||||
_sideArms = blck_Pistols;
|
||||
_chanceHeliPatrol = blck_chanceHeliPatrolRed; // Setting this in the mission file overrides the defaults
|
||||
_noChoppers = blck_noPatrolHelisRed;
|
||||
_missionHelis = blck_patrolHelisRed;
|
||||
//_useMines = blck_useMines;
|
||||
//_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults
|
||||
//_headgear = blck_headgear; // Setting this in the mission file overrides the defaults
|
||||
//_vests = blck_vests;
|
||||
//_backpacks = blck_backpacks;
|
||||
//_weaponList = ["blue"] call blck_fnc_selectAILoadout;
|
||||
//_sideArms = blck_Pistols;
|
||||
//_chanceHeliPatrol = blck_chanceHeliPatrolRed; // Setting this in the mission file overrides the defaults
|
||||
//_noChoppers = blck_noPatrolHelisRed;
|
||||
//_missionHelis = blck_patrolHelisRed;
|
||||
|
||||
//_chancePara = 0.0; // Setting this in the mission file overrides the defaults
|
||||
_noPara = 3; // Setting this in the mission file overrides the defaults
|
||||
_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
//_noPara = 3; // Setting this in the mission file overrides the defaults
|
||||
//_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0.
|
||||
//_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot.
|
||||
|
||||
//_chanceLoot = 0.999999990;
|
||||
_paraLoot = blck_BoxLoot_Red;
|
||||
_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
//_paraLoot = blck_BoxLoot_Red;
|
||||
//_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission.
|
||||
|
||||
_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
//_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
// Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute.
|
||||
// This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission.
|
||||
_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
//_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
// Pertains only to crates spawned at mission spawn.
|
||||
// This sets the default but can be overridden for specific missions by defining _loadCratesTiming
|
||||
|
||||
@ -75,9 +75,9 @@ _loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionComple
|
||||
// To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion"
|
||||
// To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned.
|
||||
// To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned.
|
||||
_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
// Setting this in the mission file overrides the defaults
|
||||
|
||||
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
//_timeOut = -1;
|
||||
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";
|
||||
|
@ -37,6 +37,6 @@ blck_fnc_sm_spawnObjects = compileFinal preprocessFileLineNumbers "\q\addons\cu
|
||||
|
||||
//blck_fnc_sm_spawnVehiclePatrols = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\Static\Code\GMS_sm_spawnVehiclePatrols.sqf";
|
||||
|
||||
diag_log "[blckeagls] GMS_sm_init_functions.sqf <Loaded>";
|
||||
//diag_log "[blckeagls] GMS_sm_init_functions.sqf <Loaded>";
|
||||
|
||||
blck_sm_functionsLoaded = true;
|
@ -16,7 +16,7 @@ private ["_staticMissions"];
|
||||
_staticMissions = [
|
||||
// [mod (Epoch, Exile), map (Altis, Tanoa etc), mission center, eg [10445,2014,0], filename.sqf (name of static mission template for that mission)];
|
||||
//["Epoch","Altis","staticMissionExample2_Epoch.sqf"],
|
||||
//["Exile","Altis","staticMissionExample2_Exile.sqf"]
|
||||
["Exile","Altis","staticMissionExample2_Exile.sqf"]
|
||||
];
|
||||
|
||||
diag_log "[blckeagls] GMS_StaticMissions_Lists.sqf <Loaded>";
|
||||
//diag_log "[blckeagls] GMS_StaticMissions_Lists.sqf <Loaded>";
|
||||
|
@ -1,25 +0,0 @@
|
||||
/*
|
||||
by Ghostrider [GRG]
|
||||
for ghostridergaming
|
||||
12/5/17
|
||||
--------------------------
|
||||
License
|
||||
--------------------------
|
||||
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
|
||||
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
private ["_staticMissions"];
|
||||
|
||||
_staticMissions = [
|
||||
// [mod (Epoch, Exile), map (Altis, Tanoa etc), mission center, eg [10445,2014,0], filename.sqf (name of static mission template for that mission)];
|
||||
//["Epoch","Altis","staticMissionExample2_Epoch.sqf"],
|
||||
//["Exile","Altis","staticMissionExample2_Exile.sqf"]
|
||||
];
|
||||
|
||||
diag_log "[blckeagls] GMS_StaticMissions_Lists_Epoch.sqf <Loaded>";
|
||||
|
||||
_staticMissions
|
||||
|
@ -1,23 +0,0 @@
|
||||
/*
|
||||
by Ghostrider [GRG]
|
||||
for ghostridergaming
|
||||
12/5/17
|
||||
--------------------------
|
||||
License
|
||||
--------------------------
|
||||
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
|
||||
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
private ["_staticMissions"];
|
||||
|
||||
_staticMissions = [
|
||||
// [mod (Epoch, Exile), map (Altis, Tanoa etc), mission center, eg [10445,2014,0], filename.sqf (name of static mission template for that mission)];
|
||||
//["Exile","Altis","staticMissionExample2.sqf"]
|
||||
];
|
||||
|
||||
diag_log "[blckeagls] GMS_StaticMissions_Lists_Exile.sqf <Loaded>";
|
||||
|
||||
_staticMissions
|
@ -10,7 +10,7 @@
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
diag_log "[blckeagls] GMS_StaticMissions_init.sqf <Initializing Static Mission System>";
|
||||
//diag_log "[blckeagls] GMS_StaticMissions_init.sqf <Initializing Static Mission System>";
|
||||
|
||||
//static mission descriptor for code: [position,level, numAI or [min,maxAI],patrolRadius, respawn, group[groupNull],spawnedAt[0],respawn[0]]
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
@ -1,25 +0,0 @@
|
||||
/*
|
||||
by Ghostrider [GRG]
|
||||
for ghostridergaming
|
||||
12/5/17
|
||||
--------------------------
|
||||
License
|
||||
--------------------------
|
||||
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
|
||||
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
private ["_staticMissions"];
|
||||
|
||||
_staticMissions = [
|
||||
// [mod (Epoch, Exile), map (Altis, Tanoa etc), mission center, eg [10445,2014,0], filename.sqf (name of static mission template for that mission)];
|
||||
["Epoch","Altis","staticMissionExample2_Epoch.sqf"],
|
||||
["Exile","Altis","staticMissionExample2_Exile.sqf"]
|
||||
];
|
||||
|
||||
diag_log "[blckeagls] GMS_StaticMissions_Lists_Epoch.sqf <Loaded>";
|
||||
|
||||
_staticMissions
|
||||
|
@ -1,23 +0,0 @@
|
||||
/*
|
||||
by Ghostrider [GRG]
|
||||
for ghostridergaming
|
||||
12/5/17
|
||||
--------------------------
|
||||
License
|
||||
--------------------------
|
||||
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
|
||||
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
private ["_staticMissions"];
|
||||
|
||||
_staticMissions = [
|
||||
// [mod (Epoch, Exile), map (Altis, Tanoa etc), mission center, eg [10445,2014,0], filename.sqf (name of static mission template for that mission)];
|
||||
["Exile","Altis","staticMissionExample2.sqf"]
|
||||
];
|
||||
|
||||
diag_log "[blckeagls] GMS_StaticMissions_Lists_Exile.sqf <Loaded>";
|
||||
|
||||
_staticMissions
|
@ -20,4 +20,4 @@ _staticMissions = [
|
||||
//["Exile","Altis","staticMissionExample2_Exile.sqf"]
|
||||
];
|
||||
|
||||
diag_log "[blckeagls] GMS_UMS_StaticMissions_Lists.sqf <Loaded>";
|
||||
//diag_log "[blckeagls] GMS_UMS_StaticMissions_Lists.sqf <Loaded>";
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
//if (!isServer) exitWith{};
|
||||
|
||||
diag_log "[blckeagls] GMS__UMS_StaticMissions_init.sqf <Initializing Static Missions>";
|
||||
//diag_log "[blckeagls] GMS__UMS_StaticMissions_init.sqf <Initializing Static Missions>";
|
||||
|
||||
//static mission descriptor for code: [position,level, numAI or [min,maxAI],patrolRadius, respawn, group[groupNull],spawnedAt[0],respawn[0]]
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
@ -22,11 +22,11 @@ uiSleep 3;
|
||||
private["_mod","_map","_missionMod","_missionMap","_missionLocation","_missionDataFile"];
|
||||
//diag_log "[blckeagls] GMS__UMS_StaticMissions_init.sqf <Getting Mod Type>";
|
||||
_mod = toLower(call blck_fnc_getModType);
|
||||
diag_log format["[blckeagls] GMS__UMS_StaticMissions_init.sqf <mod type = %1>",_mod];
|
||||
diag_log format["[blckeagls] GMS__UMS_StaticMissions_init <_staticMissions> = %1",_staticMissions];
|
||||
diag_log "[blckeagls] GMS__UMS_StaticMissions_init.sqf <Getting map name>";
|
||||
//diag_log format["[blckeagls] GMS__UMS_StaticMissions_init.sqf <mod type = %1>",_mod];
|
||||
//diag_log format["[blckeagls] GMS__UMS_StaticMissions_init <_staticMissions> = %1",_staticMissions];
|
||||
//diag_log "[blckeagls] GMS__UMS_StaticMissions_init.sqf <Getting map name>";
|
||||
_map = toLower worldName;
|
||||
diag_log format["[blckeagls] GMS__UMS_StaticMissions_init.sqf <map name = %1>",_map];
|
||||
//diag_log format["[blckeagls] GMS__UMS_StaticMissions_init.sqf <map name = %1>",_map];
|
||||
{
|
||||
diag_log format["[blckeagls] GMS__UMS_StaticMissions_init.sqf <Evaluating Mission = %1>",_x];
|
||||
diag_log format["[blckeagls] GMS__UMS_StaticMissions_init.sqf <worldName = %1 | _mod = %2>",_map,_mod];
|
||||
@ -46,5 +46,5 @@ diag_log format["[blckeagls] GMS__UMS_StaticMissions_init.sqf <map name = %1>",_
|
||||
uiSleep 1;
|
||||
}forEach _staticMissions;
|
||||
|
||||
diag_log "[blckeagls] GMS__UMS_StaticMissions_init.sqf <Static Missions Loaded>";
|
||||
//diag_log "[blckeagls] GMS__UMS_StaticMissions_init.sqf <Static Missions Loaded>";
|
||||
|
||||
|
@ -10,4 +10,4 @@
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
blck_dynamicUMS_MissionList = ["default.sqf"];
|
||||
diag_log "[blckeagls] Dynamic UMS Mission List <Loaded>";
|
||||
//diag_log "[blckeagls] Dynamic UMS Mission List <Loaded>";
|
@ -10,7 +10,7 @@
|
||||
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
diag_log "Loading Static Loot Container Spawning System for Epoch";
|
||||
//diag_log "Loading Static Loot Container Spawning System for Epoch";
|
||||
_lootBoxes =
|
||||
[
|
||||
/*[
|
||||
|
@ -101,7 +101,7 @@ _fn_setupCrates = {
|
||||
#endif
|
||||
_crate
|
||||
};
|
||||
diag_log "[blckeagls] SLS System: Functions Initialized!";
|
||||
//diag_log "[blckeagls] SLS System: Functions Initialized!";
|
||||
private["_cratePosnList","_no","_ar","_x","_cratePos","_lootType","_randomPos","_useSmoke"];
|
||||
|
||||
{
|
||||
|
@ -11,7 +11,7 @@
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
#ifdef blck_debugMode
|
||||
diag_log "[blckeagls] SLS System: Initializing Static Loot Crate System!";
|
||||
//diag_log "[blckeagls] SLS System: Initializing Static Loot Crate System!";
|
||||
#endif
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
private ["_version","_versionDate"];
|
||||
blck_version = "6.82 Build 133";
|
||||
blck_version = "6.82 Build 134";
|
||||
_blck_version = blck_version;
|
||||
_blck_versionDate = "6-2-18 9:00 AM";
|
||||
_blck_versionDate = "6-3-18 4:00 PM";
|
||||
blck_pvs_version = _blck_version;
|
||||
publicVariable blck_pvs_version;
|
||||
|
@ -8,8 +8,14 @@ Ideas or code from that by Vampire and KiloSwiss have been used for certain func
|
||||
|
||||
Significant Changes:
|
||||
=====================
|
||||
Version 1.82 Build 133
|
||||
|
||||
Version 1.82 Build 134
|
||||
Added: configs for blue, red, green and orange pistol, vest, backpack and uniforms
|
||||
Change:
|
||||
Commented out all configs in missions for uniforms, headgear, backpacks and uniforms.
|
||||
Commented out most configs for helis, paratroops and supplemental loot dropped by paratroops.
|
||||
Removed some logging that is not required.
|
||||
|
||||
Version 1.82 Build 132
|
||||
Added: blck_killPercentage = 0.9; // The mission will complete if this fraction of the total AI spawned has been killed.
|
||||
// This facilitates mission completion when one or two AI are spawned into objects.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user