Ver 6.88 Build 167 Final RC
This commit is contained in:
parent
ba32d2930b
commit
6560123a60
@ -24,10 +24,6 @@ while {true} do
|
||||
uiSleep 1;
|
||||
if (diag_tickTime > _timer1sec) then
|
||||
{
|
||||
[] call blck_fnc_vehicleMonitor;
|
||||
#ifdef GRGserver
|
||||
[] call blck_fnc_broadcastServerFPS;
|
||||
#endif
|
||||
_timer1sec = diag_tickTime + 1;
|
||||
};
|
||||
if (diag_tickTime > _timer5sec) then
|
||||
|
@ -42,8 +42,11 @@ _wp setWaypointCompletionRadius (_group getVariable["wpRadius",30]);
|
||||
_wp setWaypointType "MOVE";
|
||||
_wp setWaypointName "move";
|
||||
_wp setWaypointBehaviour "COMBAT";
|
||||
_wp setWaypointCombatMode "YELLOW";
|
||||
_wp setWaypointTimeout [1,1.1,1.2];
|
||||
_wp setWaypointCombatMode "RED";
|
||||
_wp setWaypointTimeout [10,15,20];
|
||||
_wp setWaypointLoiterRadius (_group getVariable["wpRadius",30]);
|
||||
_wp setWaypointLoiterType "CIRCLE";
|
||||
_wp setWaypointSpeed "LIMITED";
|
||||
_group setCurrentWaypoint _wp;
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 2) then
|
||||
|
@ -8,15 +8,12 @@
|
||||
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
//#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
//diag_log format["_fnc_HC_XferGroup:: _this = %1",_this];
|
||||
private["_group","_client","_unit","_tempEH"];
|
||||
private["_group","_unit","_tempEH"];
|
||||
_group = _this select 0;
|
||||
//blck_HC_monitoredGroups pushBack _group;
|
||||
_client = clientOwner;
|
||||
{
|
||||
_unit = _x;
|
||||
_tempEH = ["reloaded",_unit addEventHandler ["reloaded", {_this call compile preprocessfilelinenumbers blck_EH_unitWeaponReloaded;}]];
|
||||
_tempEH = _unit addEventHandler ["Reloaded", {_this call blck_EH_unitWeaponReloaded;}];
|
||||
}forEach (units _group);
|
||||
diag_log format["blckHC:: group %1 transferred to HC %1",_group,_client];
|
||||
//diag_log format["blckHC:: group %1 transferred to HC %1",_group,_client];
|
@ -20,10 +20,10 @@ blck_fnc_countGroupsAssigned = {
|
||||
};
|
||||
|
||||
private["_numTransfered","_clientId","_allGroups","_groupsOwned","_idHC","_id","_swap","_rc"];
|
||||
_numTransfered = 0;
|
||||
//_numTransfered = 0;
|
||||
_idHC = -2;
|
||||
blck_connectedHCs = entities "HeadlessClient_F";
|
||||
diag_log format["_fnc_passToHCs:: blck_connectedHCs = %1 | count _HCs = %2 | server FPS = %3",blck_connectedHCs,count blck_connectedHCs,diag_fps];
|
||||
//diag_log format["_fnc_passToHCs:: blck_connectedHCs = %1 | count _HCs = %2 | server FPS = %3",blck_connectedHCs,count blck_connectedHCs,diag_fps];
|
||||
if !(blck_connectedHCs isEqualTo []) then
|
||||
{
|
||||
_idHC = [blck_connectedHCs] call blck_fnc_HC_leastBurdened;
|
||||
@ -36,13 +36,10 @@ if !(blck_connectedHCs isEqualTo []) then
|
||||
if (_sgor) then
|
||||
{
|
||||
[_x] remoteExec["blck_fnc_HC_XferGroup",_idHC];
|
||||
_numTransfered = _numTransfered + 1;
|
||||
diag_log format["group %1 transferred to %2",_x, groupOwner _x];
|
||||
} else {
|
||||
diag_log format["something went wrong with the transfer of group %1",_x];
|
||||
//_numTransfered = _numTransfered + 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
} forEach (allGroups);
|
||||
diag_log format["[blckeagls] _passToHCs:: %1 groups transferred to HC %2",_numTransfered,_idHC];
|
||||
//diag_log format["[blckeagls] _passToHCs:: %1 groups transferred to HC %2",_numTransfered,_idHC];
|
||||
};
|
||||
|
@ -397,7 +397,7 @@ while {_missionComplete isEqualTo -1} do
|
||||
{
|
||||
{
|
||||
private _d = _x distance (_x getVariable ["crateSpawnPos",_coords]);
|
||||
diag_log format["crate %1 moved %2 at %3",_x,_d,diag_tickTime];
|
||||
//diag_log format["crate %1 moved %2 at %3",_x,_d,diag_tickTime];
|
||||
if (_d > 25) exitWith
|
||||
{
|
||||
_missionComplete = 1;
|
||||
|
@ -23,32 +23,16 @@ if (_backpacks isEqualTo []) then {_backpacks = [_skillAI] call blck_fnc_sele
|
||||
if (_weaponList isEqualTo []) then {_weaponList = [_skillAI] call blck_fnc_selectAILoadout};
|
||||
if (_sideArms isEqualTo []) then {[_skillAI] call blck_fnc_selectAISidearms};
|
||||
|
||||
//{
|
||||
//diag_log format["_fnc_spawnMissionVehiclePatrols: %1 = %2",_x select 0, _x select 1];
|
||||
//}forEach [["uniforms",_uniforms],["headgear",_headGear],["vests",_vests],["backpacks",_backpacks],["primary weapons",_weaponList],["secondary weapons",_sideArms]];
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel >=2) then
|
||||
{
|
||||
private _params = ["_coords","_noVehiclePatrols","_skillAI","_missionPatrolVehicles","_useRelativePos","_uniforms","_headGear","_vests","_backpacks","_weaponList","_sideArms","_isScubaGroup"];
|
||||
{
|
||||
diag_log format["_fnc_spawnMissionVehiclePatrols:: param %1 | isEqualTo %2 | _forEachIndex %3",_params select _forEachIndex,_this select _forEachIndex, _forEachIndex];
|
||||
}forEach _this;
|
||||
};
|
||||
#endif
|
||||
|
||||
private["_vehGroup","_patrolVehicle","_vehiclePatrolSpawns","_missionAI","_missiongroups","_vehicles","_return","_vehiclePatrolSpawns","_vehicle","_return","_abort","_spawnPos","_v"];
|
||||
_vehicles = [];
|
||||
_missionAI = [];
|
||||
_abort = false;
|
||||
//_useRelativePos = false;
|
||||
if (_missionPatrolVehicles isEqualTo []) then
|
||||
{
|
||||
_useRelativePos = false;
|
||||
_vehiclePatrolSpawns = [_coords,_noVehiclePatrols,45,60] call blck_fnc_findPositionsAlongARadius;
|
||||
{
|
||||
_v = [_skillAI] call blck_fnc_selectPatrolVehicle;
|
||||
//diag_log format["_fnc_spawnMissionVehiclePatrols (36):: position = %1 and vehicle = %2",_x, _v];
|
||||
_missionPatrolVehicles pushBack [_v, _x];
|
||||
}forEach _vehiclePatrolSpawns;
|
||||
};
|
||||
@ -77,48 +61,18 @@ if (_missionPatrolVehicles isEqualTo []) then
|
||||
|
||||
blck_monitoredMissionAIGroups pushBack _vehGroup;
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then
|
||||
{
|
||||
diag_log format["_fnc_spawnMissionVehiclePatrols (73): group spawned = %1",_vehGroup];
|
||||
//diag_log format["_fnc_spawnMissionVehiclePatrols (74):: -> _missionType = %3 _vehGroup = %1 and units _vehGroup = %2",_vehGroup, units _vehGroup,_missionType];
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then
|
||||
{
|
||||
diag_log format["_fnc_spawnMissionVehiclePatrols(66): will spawn vehicle %1 at position %2",_vehicle,_spawnPos];
|
||||
};
|
||||
#endif
|
||||
|
||||
//params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",30],["_maxDis",45],["_group",grpNull]];
|
||||
_patrolVehicle = [_coords,_spawnPos,_vehicle,40,60,_vehGroup,true] call blck_fnc_spawnVehiclePatrol;
|
||||
//_vehGroup setVariable["groupVehicle",_vehicle];
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then
|
||||
{
|
||||
diag_log format["_fnc_spawnMissionVehiclePatrols (76):: - > patrol vehicle spawned was %1",_patrolVehicle];
|
||||
};
|
||||
#endif
|
||||
|
||||
if !(isNull _patrolVehicle) then
|
||||
{
|
||||
_patrolVehicle setVariable["vehicleGroup",_vehGroup];
|
||||
_vehicles pushback _patrolVehicle;
|
||||
blck_monitoredVehicles pushBack _patrolVehicle;
|
||||
_missionAI append (units _vehGroup);
|
||||
};
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then
|
||||
{
|
||||
diag_log format["_fnc_spawnMissionVehiclePatrols(91):: -- > _vehicles updated to %1",_vehicles];
|
||||
};
|
||||
#endif
|
||||
|
||||
} forEach _missionPatrolVehicles;
|
||||
|
||||
blck_monitoredVehicles append _vehicles;
|
||||
_return = [_vehicles, _missionAI, _abort];
|
||||
|
||||
_return
|
||||
|
@ -16,7 +16,7 @@ private ["_obj"];
|
||||
if !(_characterBuildingConfigs isEqualTo []) then
|
||||
{
|
||||
_obj = createVehicle[(_characterBuildingConfigs select 0),_center vectorAdd (_characterBuildingConfigs select 1),[],0,"CAN_COLLIDE"];
|
||||
diag_log format["_fnc_placeCharacterInBuilding: _obj = %1",_obj];
|
||||
//diag_log format["_fnc_placeCharacterInBuilding: _obj = %1",_obj];
|
||||
_obj setDir (_characterBuildingConfigs select 2);
|
||||
_obj allowDamage true;
|
||||
_obj enableDynamicSimulation true;
|
||||
|
@ -1,16 +0,0 @@
|
||||
|
||||
/*
|
||||
Killed handler for _units
|
||||
By Ghostrider-GRG-
|
||||
|
||||
--------------------------
|
||||
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";
|
||||
//diag_log format["_EH_processAIVehicleKill: _this = %1",_this];
|
||||
if !(isDedicated) exitWith {};
|
||||
_this call blck_fnc_processAIVehicleKill;
|
@ -1,14 +0,0 @@
|
||||
/*
|
||||
By Ghostrider [GRG]
|
||||
Copyright 2016
|
||||
Scans vehicles local to the machine the script is run on.
|
||||
--------------------------
|
||||
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";
|
||||
|
||||
params["_vehicle"];
|
@ -15,35 +15,24 @@
|
||||
|
||||
params["_veh"];
|
||||
blck_monitoredVehicles = blck_monitoredVehicles - [_veh];
|
||||
//diag_log format["_fnc_releaseVehicleToPlayersl: _veh = %1 | (owner _veh) = %2",_veh,(owner _veh)];
|
||||
//diag_log format["_fnc_releaseVehicleToPlayersl: initial lock state of vehicle 51 = %2",_veh,locked _veh];
|
||||
//_veh setVehicleLock "UNLOCKED" ;
|
||||
_locked = true;
|
||||
_count = 0;
|
||||
_timeIn = diag_tickTime;
|
||||
while {_count < 2} do
|
||||
{
|
||||
//diag_log format["_fnc_releaseVehicleToPlayersl: attempting to unlock vehicle %1",_veh];
|
||||
[_veh,"UNLOCKED"] remoteExec ["setVehicleLock",0]; // unlock on all clients so we don't have to worry about any change of ownership when the driver is ejected.
|
||||
// a bit of bandwidth seems worth ensuring that vehicles do in fact get unlocked.
|
||||
uiSleep 0.1;
|
||||
_count = _count + 1;
|
||||
//diag_log format["_fnc_releaseVehicleToPlayersl: locked state of vehicle %1 = ^%2",_veh, locked _veh];
|
||||
//if ((_veh locked) isEqualTo "UNLOCKED" || (diag_tickTime - _timeIn) > 5) then {_locked = false};
|
||||
//diag_log format["_fnc_releaseVehicleToPlayersl: _veh = %1 | isLocal _veh = %3 | (owner _veh) = %2",_veh,(owner _veh),Local _veh];
|
||||
if (local _veh) then {
|
||||
_veh lock false;
|
||||
}
|
||||
else {
|
||||
if (isserver) then {
|
||||
[_veh,false] remoteExecCall ["lock",_veh]; // let the machine, where the vehicle is local unlock it (only the server knows, who the owner is!!!)
|
||||
}
|
||||
else {
|
||||
[[_veh,false],["lock",_veh]] remoteExecCall ["remoteExecCall", 2]; // If run on HC, move to the server. Server will remoteexec on local machine
|
||||
};
|
||||
|
||||
};
|
||||
//diag_log format["_fnc_releaseVehicleToPlayers: _veh=%1 | owner = %2 | lock = %3",_veh,owner _veh, locked _veh];
|
||||
{
|
||||
_veh removealleventhandlers _x;
|
||||
} forEach ["GetIn","GetOut","fired","hit","hitpart","reloaded","dammaged","HandleDamage"];
|
||||
{
|
||||
_veh removeAllMPEventHandlers _x;
|
||||
} forEach ["MPHit","MPKilled"];
|
||||
_veh setVariable["blck_DeleteAt",diag_tickTime + blck_vehicleDeleteTimer,true];
|
||||
_veh setVariable["blck_DeleteAt",nil];
|
||||
if ((damage _veh) > 0.6) then {_veh setDamage 0.6};
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 2) then
|
||||
{
|
||||
diag_log format["_fnc_vehicleMonitor:: case of patrol vehicle released to players where vehicle = %1",_veh];
|
||||
};
|
||||
#endif
|
@ -14,73 +14,59 @@
|
||||
private ["_vehList"];
|
||||
_vehList = +blck_monitoredVehicles;
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 2) then {diag_log format["_fnc_vehicleMonitor:: function called at %1 with _vehList %2 and blck_monitoredVehicles %3",diag_tickTime,_vehList,blck_monitoredVehicles];};
|
||||
#endif
|
||||
//diag_log format["_fnc_vehicleMonitor:: function called at %1 with _vehList %2 ",diag_tickTime,_vehList,blck_monitoredVehicles];
|
||||
// Needs debugging for HC operation.
|
||||
{
|
||||
/*
|
||||
Determine state of vehicle
|
||||
_isEmplaced
|
||||
_ownerIsPlayer
|
||||
_allCrewDead
|
||||
|
||||
_handleReloadRefuel (0)
|
||||
_scheduleDeletion (2) [_allCrewDead && !_isEmplaced && !_scheduled] // all vehicles other than statics
|
||||
_disableNow and schedule for deletion (1) [_allCrewDead && _isEmplaced] // emplaced weapons
|
||||
_deleteNow (3)
|
||||
_releaseToPlayer (4) [_allCrewDead && !_isEmplaced && _ownerIsPlayer]
|
||||
_default (5) reload rearm
|
||||
*/
|
||||
|
||||
if (true) then
|
||||
{
|
||||
private["_veh","_isEmplaced","_ownerIsPlayer","_allCrewDead","_evaluate","_deleteat"];
|
||||
private["_veh","_isEmplaced","_allCrewDead","_evaluate","_deleteAtTime"];
|
||||
_veh = _x; // (purely for clarity at this point, _x could be used just as well)
|
||||
|
||||
_isEmplaced = _veh getVariable["GRG_vehType","none"] isEqualTo "emplaced";
|
||||
_ownerIsPlayer = owner _veh > 2 && !(owner _veh in blck_connectedHCs);
|
||||
_allCrewDead = {alive _x} count (crew _veh) == 0;
|
||||
_evaluate = 0;
|
||||
_deleteat = _veh getVariable ["blck_deleteAt",0];
|
||||
if (_allCrewDead && _isEmplaced && _deleteat == 0) then {_evaluate = 1};
|
||||
if (_allCrewDead && !(_isEmplaced) && _deleteat == 0) then {_evaluate = 2};
|
||||
if (_deleteat > 0 && diag_tickTime > _deleteat) then {_evaluate = 3};
|
||||
if (_ownerIsPlayer) then {_evaluate = 4};
|
||||
//diag_log format["_fnc_vehicleMonitor: vehicle = %1 | owner = %2 | crew = %2",_veh, owner _veh, {alive _x} count (crew _veh)];
|
||||
_deleteAtTime = _veh getVariable ["blck_deleteAtTime",diag_tickTime + 1];
|
||||
|
||||
if (diag_tickTime > _deleteAtTime) then
|
||||
{
|
||||
_evaluate = 3;
|
||||
} else {
|
||||
if (_allCrewDead) then
|
||||
{
|
||||
_evaluate = if (_isEmplaced) then {1} else {2};
|
||||
};
|
||||
};
|
||||
|
||||
//diag_log format["_fnc_vehicleMonitor: vehicle = %1 | owner = %2 | crew = %3 | _evaluate = %4",_veh, owner _veh, {alive _x} count (crew _veh), _evaluate];
|
||||
switch (_evaluate) do
|
||||
{
|
||||
case 0:{[_veh] call blck_fnc_reloadVehicleAmmo;};
|
||||
case 1:{
|
||||
if (blck_killEmptyStaticWeapons) then
|
||||
{
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 2) then {diag_log format["_fnc_vehicleMonitor:: case of destroyed where vehicle = %1",_veh];};
|
||||
#endif
|
||||
_veh setDamage 1;
|
||||
_veh setVariable["blck_DeleteAt",diag_tickTime + 60];
|
||||
_veh setVariable["blck_deleteAtTime",diag_tickTime + 60];
|
||||
}else {
|
||||
//diag_log format["_fnc_vehicleMonitor: calling _fnc_releaseVehicleToPlayers for vehicle %1",_veh];
|
||||
[_veh] call blck_fnc_releaseVehicleToPlayers;
|
||||
};
|
||||
};
|
||||
case 2:{
|
||||
if (blck_killEmptyAIVehicles) then
|
||||
{
|
||||
//if (blck_debugLevel > 2) then {diag_log format["_fnc_vehicleMonitor:: case of destroyed where vehicle = %1",_veh];};
|
||||
_veh setDamage 0.7;
|
||||
_veh setVariable["blck_DeleteAt",diag_tickTime + 60];
|
||||
_veh setFuel 0;
|
||||
_veh setVariable["blck_deleteAtTime",diag_tickTime + 60];
|
||||
} else {
|
||||
//diag_log format["_fnc_vehicleMonitor: calling _fnc_releaseVehicleToPlayers for vehicle %1",_veh];
|
||||
[_veh] call blck_fnc_releaseVehicleToPlayers;
|
||||
};
|
||||
};
|
||||
case 3:{
|
||||
//diag_log format["_fnc_releaseVehicleToPlayers: destroying vehicle and crew for vehicle %1 at time %2",_veh,diag_tickTime];
|
||||
[_veh] call blck_fnc_destroyVehicleAndCrew;
|
||||
};
|
||||
case 4:{
|
||||
_veh setVariable["blck_DeleteAt",nil];
|
||||
blck_monitoredVehicles = blck_monitoredVehicles - [_veh];
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}forEach _vehList;
|
||||
|
||||
|
@ -150,10 +150,10 @@ private _functions = [
|
||||
|
||||
// HC support functions
|
||||
["blck_fnc_HC_XferGroup","\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_XferGroup.sqf"],
|
||||
["blck_fnc_onPlayerDisconnected","\q\addons\custom_server\Compiles\HC\GMS_fnc_onPlayerDisconnected.sqf"],
|
||||
["blck_fnc_HC_monitor","\q\addons\custom_server\Compiles\HC\GMS_fnc_HCmonitor.sqf"],
|
||||
//["blck_fnc_onPlayerDisconnected","\q\addons\custom_server\Compiles\HC\GMS_fnc_onPlayerDisconnected.sqf"],
|
||||
//["blck_fnc_HC_monitor","\q\addons\custom_server\Compiles\HC\GMS_fnc_HCmonitor.sqf"],
|
||||
["blck_fnc_HC_passToHCs","\q\addons\custom_server\Compiles\HC\GMS_fnc_passToHCs.sqf"],
|
||||
["blck_fnc_HC_getListConnected","\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_getListConnected.sqf"],
|
||||
//["blck_fnc_HC_getListConnected","\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_getListConnected.sqf"],
|
||||
["blck_fnc_HC_leastBurdened","\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_leastBurdened.sqf"],
|
||||
["blck_fnc_HC_countGroupsAssigned","\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_countGroupsAssigned.sqf"]
|
||||
];
|
||||
@ -163,11 +163,6 @@ private _functions = [
|
||||
missionnamespace setvariable [_name,compileFinal preprocessFileLineNumbers _path];
|
||||
} foreach _functions;
|
||||
|
||||
#ifdef GRGserver
|
||||
blck_fnc_broadcastServerFPS = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_broadcastServerFPS.sqf";
|
||||
diag_log "blck_functions loaded using GRGserver settings ---- >>>> ";
|
||||
#endif
|
||||
|
||||
onPlayerDisconnected {[_name,_owner] call blck_fnc_onPlayerDisconnected;};
|
||||
|
||||
|
||||
|
@ -44,7 +44,7 @@
|
||||
|
||||
blck_spawnMapAddons = true; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf
|
||||
blck_spawnStaticLootCrates = true; // When true, static loot crates will be spawned and loaded with loot as specified in custom_server\SLS\SLS_init_Epoch.sqf (or its exile equivalent).
|
||||
blck_simulationManager = blck_simulationManagementOff;
|
||||
blck_simulationManager = blck_useBlckeaglsSimulationManager;
|
||||
diag_log format["[blckeagls] blck_configs: blck_simulationManager = %1",blck_simulationManager];
|
||||
/*
|
||||
blck_simulationManagementOff - no simulation management occurs
|
||||
@ -107,7 +107,7 @@
|
||||
blck_SmokeAtMissions = [false,"random"]; // set to [false,"anything here"] to disable this function altogether.
|
||||
blck_useSignalEnd = true; // When true a smoke grenade/chemlight will appear at the loot crate for 2 min after mission completion.
|
||||
blck_missionEndCondition = "allKilledOrPlayerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
blck_killPercentage = 0.999999999; // The mission will complete if this fraction of the total AI spawned has been killed.
|
||||
blck_killPercentage = 0.999999; // 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.
|
||||
blck_spawnCratesTiming = "atMissionSpawnGround"; // 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.
|
||||
@ -214,12 +214,8 @@
|
||||
////////////////////
|
||||
|
||||
// Maximum number of missions shown on the map at any one time.
|
||||
#ifdef GRGserver
|
||||
blck_maxSpawnedMissions = 15;
|
||||
#else
|
||||
// Change this value to reduce the number of spawned missions at any one time.
|
||||
blck_maxSpawnedMissions = 4;
|
||||
#endif
|
||||
|
||||
//Set to -1 to disable. Values of 2 or more force the mission spawner to spawn copies of that mission - this feature is not recommended because you may run out of available groups.
|
||||
blck_enableOrangeMissions = 1;
|
||||
@ -228,12 +224,6 @@
|
||||
blck_enableBlueMissions = 1;
|
||||
blck_numberUnderwaterDynamicMissions = 3; // Values from -1 (no UMS) to N (N Underwater missions will be spawned; static UMS units and subs will be spawned.
|
||||
|
||||
#ifdef GRGserver
|
||||
blck_enableHunterMissions = 1;
|
||||
blck_enableScoutsMissions = 2;
|
||||
blck_maxcrashsites = 4;
|
||||
#endif
|
||||
|
||||
////////////////////
|
||||
// MISSION TIMERS
|
||||
////////////////////
|
||||
@ -244,12 +234,6 @@
|
||||
blck_TMin_Blue = 120;
|
||||
blck_TMin_Red = 150;
|
||||
blck_TMin_UMS = 180;
|
||||
#ifdef GRGserver
|
||||
blck_TMin_Hunter = 120;
|
||||
blck_TMin_Scouts = 115;
|
||||
blck_TMin_Crashes = 115;
|
||||
|
||||
#endif
|
||||
|
||||
//Maximum Spawn time between missions in seconds
|
||||
blck_TMax_Orange = 360;
|
||||
@ -257,11 +241,6 @@
|
||||
blck_TMax_Blue = 200;
|
||||
blck_TMax_Red = 250;
|
||||
blck_TMax_UMS = 400;
|
||||
#ifdef GRGserver
|
||||
blck_TMax_Hunter = 200;
|
||||
blck_TMax_Scouts = 200;
|
||||
blck_TMax_Crashes = 200;
|
||||
#endif
|
||||
|
||||
///////////////////////////////
|
||||
// AI VEHICLE PATROL PARAMETERS
|
||||
@ -297,6 +276,8 @@
|
||||
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
|
||||
blck_SpawnEmplaced_Red = 1; // Number of static weapons at Red Missions
|
||||
|
||||
|
||||
|
||||
/****************************************************************
|
||||
|
||||
GENERAL AI SETTINGS
|
||||
@ -321,7 +302,7 @@
|
||||
blck_maximumPatrolRadius = 35;
|
||||
|
||||
//This defines how long after an AI dies that it's body disappears.
|
||||
blck_bodyCleanUpTimer = 60*60; // time in seconds after which dead AI bodies are deleted
|
||||
blck_bodyCleanUpTimer = 60*40; // time in seconds after which dead AI bodies are deleted
|
||||
// Each time an AI is killed, the location of the killer will be revealed to all AI within this range of the killed AI, set to -1 to disable
|
||||
// values are ordered as follows [blue, red, green, orange];
|
||||
blck_AliveAICleanUpTimer = 60*20; // Time after mission completion at which any remaining live AI are deleted.
|
||||
@ -380,60 +361,6 @@
|
||||
blck_maxMoneyRed = 15;
|
||||
blck_maxMoneyBlue = 10;
|
||||
|
||||
#ifdef GRGserver
|
||||
blck_AIAlertDistance = [250,450,650,800]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed.
|
||||
//blck_AIAlertDistance = [150,225,400,500];
|
||||
// How precisely player locations will be revealed to AI after an AI kill
|
||||
// values are ordered as follows [blue, red, green, orange];
|
||||
blck_AIIntelligence = [0.3, 0.5, 0.7, 0.9];
|
||||
|
||||
blck_baseSkill = 0.7; // The overal skill of the AI - range 0.1 to 1.0.
|
||||
|
||||
/***************************************************************
|
||||
|
||||
MISSION TYPE SPECIFIC AI SETTINGS
|
||||
|
||||
**************************************************************/
|
||||
//This defines the skill, minimum/Maximum number of AI and how many AI groups are spawned for each mission type
|
||||
// Orange Missions
|
||||
blck_MinAI_Orange = 20;
|
||||
blck_MaxAI_Orange = 25;
|
||||
blck_AIGrps_Orange = 5;
|
||||
blck_SkillsOrange = [
|
||||
["aimingAccuracy",[0.25,0.36]],["aimingShake",[0.45,0.55]],["aimingSpeed",[0.65,0.75]],["endurance",1.00],["spotDistance",1.0],["spotTime",0.7],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]
|
||||
];
|
||||
|
||||
// Green Missions
|
||||
blck_MinAI_Green = 16;
|
||||
blck_MaxAI_Green = 21;
|
||||
blck_AIGrps_Green = 4;
|
||||
blck_SkillsGreen = [
|
||||
["aimingAccuracy",[0.2,0.3]],["aimingShake",[0.4,0.5]],["aimingSpeed",[0.55,0.7]],["endurance",0.9],["spotDistance",0.9],["spotTime",0.65],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75]
|
||||
];
|
||||
|
||||
// Red Missions
|
||||
blck_MinAI_Red = 12;
|
||||
blck_MaxAI_Red = 15;
|
||||
blck_AIGrps_Red = 3;
|
||||
blck_SkillsRed = [
|
||||
["aimingAccuracy",[0.2,0.25]],["aimingShake",[0.35,0.4]],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.6],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70]
|
||||
];
|
||||
|
||||
// Blue Missions
|
||||
blck_MinAI_Blue = 8;
|
||||
blck_MaxAI_Blue = 12;
|
||||
blck_AIGrps_Blue = 2;
|
||||
blck_SkillsBlue = [
|
||||
["aimingAccuracy",[0.08,16]],["aimingShake",[0.25,0.35]],["aimingSpeed",0.5],["endurance",0.50],["spotDistance",0.6],["spotTime",0.6],["courage",0.60],["reloadSpeed",0.60],["commanding",0.7],["general",0.60]
|
||||
];
|
||||
|
||||
// Add some money to AI; only works with Exile for now.
|
||||
blck_maxMoneyOrange = 25;
|
||||
blck_maxMoneyGreen = 20;
|
||||
blck_maxMoneyRed = 15;
|
||||
blck_maxMoneyBlue = 10;
|
||||
#endif
|
||||
|
||||
if (toLower(blck_modType) isEqualTo "epoch") then
|
||||
{
|
||||
diag_log format["[blckeagls] Loading Mission System using Parameters for %1",blck_modType];
|
||||
|
@ -48,10 +48,6 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
|
||||
blck_allowSalesAtBlackMktTraders = true; // Allow vehicles to be sold at Halvjes black market traders.
|
||||
|
||||
// When true, AI loadouts will be set from the class names in CfgPricing rather than the settings in the mod-specific configuration files
|
||||
blck_useConfigsGeneratedLoadouts = true;
|
||||
blck_maximumItemPriceInAI_Loadouts = 100;
|
||||
|
||||
_blck_lightlyArmed_ARMA3 = [
|
||||
"B_G_Offroad_01_armed_F",
|
||||
"O_G_Offroad_01_armed_F",
|
||||
|
@ -662,6 +662,25 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"Exile_Item_Moobar",
|
||||
"Exile_Item_InstantCoffee"
|
||||
];
|
||||
#ifdef blck_addCarParts
|
||||
blck_carParts = [
|
||||
"Exile_Item_CarWheel",
|
||||
"DDR_Item_Tailrotor",
|
||||
"DDR_Item_Main_Rotor",
|
||||
"DDR_Item_Engine",
|
||||
"DDR_Item_Glass",
|
||||
"DDR_Item_Fuel_Tank",
|
||||
"DDR_Item_Fishing_Net",
|
||||
"DDR_Item_Fiberglass"
|
||||
];
|
||||
#endif
|
||||
#ifdef useCUP
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef useRHS
|
||||
|
||||
#endif
|
||||
blck_ConsumableItems = blck_Meats + blck_Drink + blck_Food;
|
||||
blck_throwableExplosives = ["HandGrenade","MiniGrenade"];
|
||||
blck_otherExplosives = ["1Rnd_HE_Grenade_shell","3Rnd_HE_Grenade_shell","DemoCharge_Remote_Mag","SatchelCharge_Remote_Mag"];
|
||||
@ -673,7 +692,18 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
blck_buildingMaterials = ["Exile_Item_ExtensionCord","Exile_Item_JunkMetal","Exile_Item_LightBulb","Exile_Item_MetalBoard",
|
||||
"Exile_Item_MetalPole","Exile_Item_MetalScrews","Exile_Item_Cement","Exile_Item_Sand"];
|
||||
blck_tools = ["Exile_Item_Matches","Exile_Item_CookingPot","Exile_Melee_Axe","Exile_Melee_SledgeHammmer","Exile_Item_Handsaw","Exile_Item_Pliers"];
|
||||
|
||||
#ifdef blck_addCarParts
|
||||
blck_carParts = [
|
||||
"Exile_Item_CarWheel",
|
||||
"DDR_Item_Tailrotor",
|
||||
"DDR_Item_Main_Rotor",
|
||||
"DDR_Item_Engine",
|
||||
"DDR_Item_Glass",
|
||||
"DDR_Item_Fuel_Tank",
|
||||
"DDR_Item_Fishing_Net",
|
||||
"DDR_Item_Fiberglass"
|
||||
];
|
||||
#endif
|
||||
/***************************************************************************************
|
||||
DEFAULT CONTENTS OF LOOT CRATES FOR EACH MISSION
|
||||
Note however that these configurations can be used in any way you like or replaced with mission-specific customized loot arrays
|
||||
|
@ -88,7 +88,7 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
//"O_MBT_02_arty_F",
|
||||
"I_MBT_03_cannon_F"
|
||||
];
|
||||
|
||||
#ifdef useCUP
|
||||
_blck_APC_CUP = [
|
||||
"CUP_B_Mastiff_GMG_GB_D",
|
||||
"CUP_B_Mastiff_HMG_GB_D",
|
||||
@ -146,7 +146,7 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
//"CUP_O_2S6_RU",
|
||||
//"CUP_O_BMP1_TKA""
|
||||
];
|
||||
|
||||
#endif
|
||||
blck_AIPatrolVehicles =
|
||||
[
|
||||
//"Exile_Car_Offroad_Armed_Guerilla01",
|
||||
@ -187,9 +187,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"B_LSV_01_armed_F"
|
||||
];
|
||||
|
||||
#ifdef useCUP
|
||||
blck_AIPatrolVehiclesRed = _blck_lightlyArmed_ARMA3 + _blck_APC_CUP;
|
||||
blck_AIPatrolVehiclesGreen = _blck_Tanks_ARMA3 + _blck_Tanks_CUP;
|
||||
blck_AIPatrolVehiclesOrange = _blck_Tanks_ARMA3 + _blck_Tanks_CUP;
|
||||
#endif
|
||||
|
||||
if (toLower(worldName) isEqualTo "namalsk") then
|
||||
{
|
||||
@ -672,7 +674,18 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"Exile_Item_Moobar",
|
||||
"Exile_Item_InstantCoffee"
|
||||
];
|
||||
|
||||
#ifdef blck_addCarParts
|
||||
blck_carParts = [
|
||||
"Exile_Item_CarWheel",
|
||||
"DDR_Item_Tailrotor",
|
||||
"DDR_Item_Main_Rotor",
|
||||
"DDR_Item_Engine",
|
||||
"DDR_Item_Glass",
|
||||
"DDR_Item_Fuel_Tank",
|
||||
"DDR_Item_Fishing_Net",
|
||||
"DDR_Item_Fiberglass"
|
||||
];
|
||||
#endif
|
||||
#ifdef useCUP
|
||||
|
||||
#endif
|
||||
@ -774,6 +787,9 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["optic_AMS_khk",1,3],["optic_AMS_snd",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3]
|
||||
],
|
||||
[// Materials and supplies
|
||||
#ifdef blck_addCarParts
|
||||
["Exile_Item_CarWheel",3,6],["DDR_Item_Tailrotor",1,3],["DDR_Item_Main_Rotor",1,3],["DDR_Item_Engine",2,4],["DDR_Item_Glass",3,6],["DDR_Item_Fuel_Tank",2,4],["DDR_Item_Fiberglass",3,6],
|
||||
#endif
|
||||
["Exile_Item_Matches",1,2],["Exile_Item_CookingPot",1,2],["Exile_Item_Rope",1,2],["Exile_Item_DuctTape",1,8],["Exile_Item_ExtensionCord",1,8],["Exile_Item_FuelCanisterEmpty",1,2],
|
||||
["Exile_Item_JunkMetal",1,10],["Exile_Item_LightBulb",1,10],["Exile_Item_MetalBoard",1,10],["Exile_Item_MetalPole",1,10],["Exile_Item_CamoTentKit",1,10],["Exile_Item_WorkBenchKit",1,10],
|
||||
["Exile_Item_WoodWindowKit",1,10],["Exile_Item_WoodWallKit",1,10],["Exile_Item_WoodStairsKit",1,10],["Exile_Item_WoodGateKit",1,10],["Exile_Item_WoodDoorwayKit",1,10],["Exile_Item_MetalBoard",1,10],
|
||||
@ -865,6 +881,9 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["optic_AMS_khk",1,3],["optic_AMS_snd",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3]
|
||||
],
|
||||
[// Materials and supplies
|
||||
#ifdef blck_addCarParts
|
||||
["Exile_Item_CarWheel",3,6],["DDR_Item_Tailrotor",1,3],["DDR_Item_Main_Rotor",1,3],["DDR_Item_Engine",2,4],["DDR_Item_Glass",3,6],["DDR_Item_Fuel_Tank",2,4],["DDR_Item_Fiberglass",3,6],
|
||||
#endif
|
||||
["Exile_Item_Matches",1,2],["Exile_Item_CookingPot",1,2],["Exile_Item_Rope",1,2],["Exile_Item_DuctTape",1,8],["Exile_Item_ExtensionCord",1,8],["Exile_Item_FuelCanisterEmpty",1,2],
|
||||
["Exile_Item_JunkMetal",1,5],["Exile_Item_LightBulb",1,5],["Exile_Item_MetalBoard",1,5],["Exile_Item_MetalPole",1,5],["Exile_Item_CamoTentKit",1,5],["Exile_Item_WorkBenchKit",1,5],
|
||||
["Exile_Item_MetalBoard",1,5],["Exile_Item_MetalWire",3,10],["Exile_Item_MetalScrews",3,10],["Exile_Item_ExtensionCord",1,5],["Exile_Item_MetalPole",1,5],["Exile_Item_Sand",2,5],["Exile_Item_Cement",2,5]
|
||||
@ -945,6 +964,9 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["optic_AMS_khk",1,3],["optic_AMS_snd",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3]
|
||||
],
|
||||
[// Materials and supplies
|
||||
#ifdef blck_addCarParts
|
||||
["Exile_Item_CarWheel",3,6],["DDR_Item_Tailrotor",1,3],["DDR_Item_Main_Rotor",1,3],["DDR_Item_Engine",2,4],["DDR_Item_Glass",3,6],["DDR_Item_Fuel_Tank",2,4],["DDR_Item_Fiberglass",3,6],
|
||||
#endif
|
||||
["Exile_Item_Matches",1,2],["Exile_Item_CookingPot",1,2],["Exile_Item_Rope",1,2],["Exile_Item_DuctTape",1,3],["Exile_Item_ExtensionCord",1,2],["Exile_Item_FuelCanisterEmpty",1,2],
|
||||
["Exile_Item_JunkMetal",1,6],["Exile_Item_LightBulb",1,6],["Exile_Item_MetalBoard",1,6],["Exile_Item_MetalPole",1,6],["Exile_Item_CamoTentKit",1,6],["Exile_Item_MetalWire",1,4]
|
||||
],
|
||||
@ -1020,6 +1042,9 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["optic_AMS_khk",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3]
|
||||
],
|
||||
[// Materials and supplies
|
||||
#ifdef blck_addCarParts
|
||||
["Exile_Item_CarWheel",3,6],["DDR_Item_Tailrotor",1,3],["DDR_Item_Main_Rotor",1,3],["DDR_Item_Engine",2,4],["DDR_Item_Glass",3,6],["DDR_Item_Fuel_Tank",2,4],["DDR_Item_Fiberglass",3,6],
|
||||
#endif
|
||||
["Exile_Item_Matches",1,2],["Exile_Item_CookingPot",1,2],["Exile_Item_Rope",1,2],["Exile_Item_DuctTape",1,8],["Exile_Item_ExtensionCord",1,8],["Exile_Item_FuelCanisterEmpty",1,2],
|
||||
["Exile_Item_JunkMetal",1,5],["Exile_Item_LightBulb",1,5],["Exile_Item_MetalBoard",1,5],["Exile_Item_MetalPole",1,5],["Exile_Item_CamoTentKit",1,5],["Exile_Item_WorkBenchKit",1,5],
|
||||
["Exile_Item_MetalBoard",1,5],["Exile_Item_MetalWire",3,10],["Exile_Item_MetalScrews",3,10],["Exile_Item_ExtensionCord",1,5],["Exile_Item_MetalPole",1,5],["Exile_Item_Sand",2,5],["Exile_Item_Cement",2,5]
|
||||
|
@ -64,7 +64,7 @@
|
||||
// When set to true,"dot", ext will be to the right of a black dot at the center the mission marker.
|
||||
blck_labelMapMarkers = [true,"center"];
|
||||
blck_preciseMapMarkers = false; // Map markers are/are not centered at the loot crate
|
||||
blck_showCountAliveAI = false;
|
||||
blck_showCountAliveAI = true;
|
||||
|
||||
//Minimum distance between missions
|
||||
blck_MinDistanceFromMission = 1500;
|
||||
@ -84,7 +84,7 @@
|
||||
blck_missionEndCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
blck_killPercentage = 0.99999999999; // 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.
|
||||
blck_spawnCratesTiming = "atMissionEndAir"; // Choices: "atMissionSpawnGround","atMissionStartAir","atMissionEndGround","atMissionEndAir".
|
||||
blck_spawnCratesTiming = "atMissionSpawnGround"; // Choices: "atMissionSpawnGround","atMissionStartAir","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.
|
||||
blck_loadCratesTiming = "atMissionSpawn"; // valid choices are "atMissionCompletion" and "atMissionSpawn";
|
||||
@ -350,17 +350,14 @@
|
||||
{
|
||||
diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",blck_modType];
|
||||
execVM "\q\addons\custom_server\Configs\blck_configs_epoch_mil.sqf";
|
||||
waitUntil {(isNil "blck_configsEpochLoaded") isEqualTo false;};
|
||||
waitUntil{blck_configsEpochLoaded};
|
||||
blck_configsEpochLoaded = nil;
|
||||
};
|
||||
if (toLower(blck_modType) isEqualTo "exile") then
|
||||
{
|
||||
diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",blck_modType];
|
||||
execVM "\q\addons\custom_server\Configs\blck_configs_exile_mil.sqf";
|
||||
};
|
||||
waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"}:
|
||||
waitUntil {!isNil "blck_maximumItemPriceInAI_Loadouts"}:
|
||||
waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"};
|
||||
waitUntil {!isNil "blck_maximumItemPriceInAI_Loadouts"};
|
||||
if (blck_useConfigsGeneratedLoadouts) then
|
||||
{
|
||||
diag_log format["[blckeagls] Dynamic Configs Enabled"];
|
||||
|
@ -148,14 +148,14 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in
|
||||
|
||||
blck_maxSpawnedMissions = 15;
|
||||
blck_mainThreadUpdateInterval = 10;
|
||||
blck_enableOrangeMissions = 1;
|
||||
blck_enableGreenMissions = 1;
|
||||
blck_enableOrangeMissions = -1;
|
||||
blck_enableGreenMissions = -1;
|
||||
blck_enableRedMissions = 1;
|
||||
blck_enableBlueMissions = 1;
|
||||
blck_numberUnderwaterDynamicMissions = 3;
|
||||
blck_enableHunterMissions = 1;
|
||||
blck_enableScoutsMissions = 1;
|
||||
blck_maxCrashSites = 3;
|
||||
blck_enableBlueMissions = -1;
|
||||
blck_numberUnderwaterDynamicMissions = -3;
|
||||
blck_enableHunterMissions = -1;
|
||||
blck_enableScoutsMissions = -1;
|
||||
blck_maxCrashSites = -3;
|
||||
|
||||
//blck_killEmptyStaticWeapons = false;
|
||||
//blck_killEmptyAIVehicles = true;
|
||||
@ -163,7 +163,7 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in
|
||||
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_MissionTimeout = 30;
|
||||
|
||||
//blck_noPatrolHelisOrange = 1;
|
||||
//blck_chanceHeliPatrolOrange = 1;
|
||||
@ -183,7 +183,7 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in
|
||||
//blck_SpawnVeh_Orange = 1; // Number of vehicles at Orange Missions
|
||||
//blck_SpawnVeh_Green = 1; // Number of vehicles at Green Missions
|
||||
//blck_SpawnVeh_Blue = 1; // Number of vehicles at Blue Missions
|
||||
//blck_SpawnVeh_Red = 1;
|
||||
blck_SpawnVeh_Red = 1;
|
||||
|
||||
blck_TMin_Blue = 7;
|
||||
blck_TMin_Red = 10;
|
||||
|
@ -11,19 +11,19 @@
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
|
||||
#define blck_buildNumber 164
|
||||
|
||||
#define useAPEX
|
||||
//#define blck_milServer
|
||||
//#define blck_useCUP
|
||||
//#define blck_useRHS
|
||||
|
||||
//#define blck_addCarParts (For Exile should you wish to use some of the advanced repair scripts).
|
||||
////////////////////////////
|
||||
// Do not touch anything below this line
|
||||
///////////////////////////
|
||||
|
||||
//#define blck_debugMode
|
||||
#define blck_triggerLoopCompleteTime 40*60
|
||||
|
||||
#define blck_triggerLoopCompleteTime 40*60
|
||||
#define onFoot 1
|
||||
#define inVehicle 2
|
||||
|
||||
@ -56,3 +56,6 @@
|
||||
#define blck_turnBackRadiusVehicles 1000
|
||||
#define blck_turnBackRadiusHelis 1000
|
||||
#define blck_turnBackRadiusJets 1500
|
||||
|
||||
#define blck_buildNumber 167
|
||||
#define blck_versionNumber 6.88
|
||||
|
@ -9,6 +9,7 @@
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
waitUntil{!isNil "blck_cratetypes"};
|
||||
blck_UMS_uniforms =
|
||||
[
|
||||
"U_I_Wetsuit",
|
||||
@ -58,7 +59,6 @@ if ((tolower blck_modType) isEqualTo "epoch") then
|
||||
|
||||
"B_SDV_01_EPOCH"
|
||||
];
|
||||
|
||||
blck_UMS_crates = blck_crateTypes;
|
||||
};
|
||||
blck_UMS_unarmedSurfaceVessels =
|
||||
|
@ -19,4 +19,4 @@ blck_fnc_findShoreLocation = compileFinal preprocessFileLineNumbers "q\addons\cu
|
||||
blck_fnc_addDyanamicUMS_Mission = compileFinal preprocessFileLineNumbers "q\addons\custom_server\Missions\UMS\code\GMS_fnc_addDynamicUMS_Mission.sqf";
|
||||
blck_fnc_findWaterDepth = compileFinal preprocessFileLineNumbers "q\addons\custom_server\Missions\UMS\code\GMS_UMS_fnc_findWaterDepth.sqf";
|
||||
|
||||
diag_log "<GMS_UMS_functions.sqf> Functions compiled";
|
||||
diag_log "[blckeagls] UMS functions Functions compiled";
|
||||
|
@ -1,11 +1,4 @@
|
||||
/*
|
||||
AI Mission for Epoch and Exile Mods to Arma 3
|
||||
Credist to blckeagls who wrote the initial mission script for A3 Epoch
|
||||
To Narines for debugging that original version
|
||||
To cynwncler for many helpful comments along the way
|
||||
And mostly importantly,
|
||||
To Vampire, KiloSwiss, blckeagls, theFUCHS, lazylink, Mark311 and Buttface (Face) who wrote the pionering mission and roaming AI systems upon which this one is based and who's code is used with modification in some parts of this addon.
|
||||
|
||||
By Ghostrider-GRG-
|
||||
|
||||
--------------------------
|
||||
@ -15,36 +8,17 @@
|
||||
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
if (hasInterface) exitWith{};
|
||||
if (hasInterface || isServer) exitWith{};
|
||||
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
if !(isNil "blck_Initialized") exitWith{};
|
||||
private["_blck_loadingStartTime"];
|
||||
_blck_loadingStartTime = diag_tickTime;
|
||||
private _blck_loadingStartTime = diag_tickTime;
|
||||
#include "\q\addons\custom_server\init\build.sqf";
|
||||
diag_log format["[blckeagls] Loading Headless Client Version %2 Build Date %1",_blck_versionDate,_blck_version];
|
||||
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf";
|
||||
|
||||
// compile functions
|
||||
//call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf";
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf";
|
||||
diag_log format["[blckeagls] debug mode settings:blck_debugON = %1 blck_debugLevel = %2",blck_debugON,blck_debugLevel];
|
||||
//call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_configs.sqf";
|
||||
//call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf";
|
||||
diag_log format["[blckeagls] Loading Headless Client Version %2 | Build Date %1 | loaded in %4 seconds",_blck_versionDate,blck_versionNumber,blck_buildNumber,diag_tickTime - _blck_loadingStartTime];
|
||||
|
||||
execVM "\q\addons\custom_server\Configs\blck_configs.sqf";
|
||||
|
||||
// Load any user-defined specifications or overrides
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf";
|
||||
|
||||
#ifdef GRGserver
|
||||
diag_log "[blckeagls] Running GRG Version";
|
||||
#endif
|
||||
|
||||
switch (blck_simulationManager) do
|
||||
case 1: {diag_log "[blckeagls] dynamic simulation manager enabled"};
|
||||
case 2: {diag_log "[blckeagls] blckeagls simulation manager enabled"};
|
||||
case 0: {diag_log "[blckeagls] simulation management disabled"};
|
||||
};
|
||||
|
||||
diag_log format["[blckeagls] for HC version %1 Build %2 Loaded in %3 seconds",_blck_versionDate,_blck_version,diag_tickTime - _blck_loadingStartTime]; //,blck_modType];
|
||||
[] spawn blck_fnc_HC_monitor;
|
||||
|
@ -28,7 +28,7 @@ if ((toLower blck_modType) isEqualTo "exile") then
|
||||
|
||||
private _blck_loadingStartTime = diag_tickTime;
|
||||
#include "\q\addons\custom_server\init\build.sqf";
|
||||
diag_log format["[blckeagls] Loading Server Mission System Version",blck_buildNumber];
|
||||
diag_log format["[blckeagls] Loading Server Mission System Version"];
|
||||
|
||||
// compile functions
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf";
|
||||
@ -80,7 +80,7 @@ switch (blck_simulationManager) do
|
||||
case 0: {diag_log "[blckeagls] simulation management disabled"};
|
||||
};
|
||||
|
||||
diag_log format["[blckeagls] version %1 Build %2 Loaded in %3 seconds",_blck_versionDate,_blck_version,diag_tickTime - _blck_loadingStartTime]; //,blck_modType];
|
||||
diag_log format["[blckeagls] version %1 Build %2 Loaded in %3 seconds",blck_versionNumber,blck_buildNumber,diag_tickTime - _blck_loadingStartTime]; //,blck_modType];
|
||||
diag_log format["blckeagls] waiting for players to join ---- >>>>"];
|
||||
|
||||
if ( !(blck_debugON) && (blck_debugLevel isEqualTo 0)) then
|
||||
|
@ -2,6 +2,6 @@
|
||||
private ["_version","_versionDate"];
|
||||
blck_version = format["6.88 Build %1",blck_buildNumber];
|
||||
_blck_version = blck_version;
|
||||
_blck_versionDate = "11-21-18 4:00 PM";
|
||||
_blck_versionDate = "12-1-18 8:00 AM";
|
||||
blck_pvs_version = _blck_version;
|
||||
publicVariable blck_pvs_version;
|
||||
|
@ -5,9 +5,11 @@ Read the faq and config files for specific information.
|
||||
Some general tips are:
|
||||
|
||||
First, create a backup of all files.
|
||||
|
||||
Second, if your rpt log shows errors after a change, revert to the defaults and try again.
|
||||
Third, settings that determine how messages are displayed are your mission file (i.e, epoch.Altis.pbo) in debug\blckClient.sqf.
|
||||
Here you can use dynamic messages, hints, or titleText/cutText to display your messages.
|
||||
|
||||
Third, settings that determine how messages are displayed can be configured in your mission file (i.e, epoch.Altis.pbo) in debug\blckClient.sqf.
|
||||
Here you can use dynamic messages, hints, Toasts or titleText/cutText to display your messages.
|
||||
|
||||
Lastly, settings for the missions themselves have been moved to @epochhive\custom_server\configs.
|
||||
There are two different config files, one for exile and a second for epoch.
|
||||
|
26
FAQ.txt
26
FAQ.txt
@ -2,13 +2,14 @@ This addon includes several modules which will be discussed in the following ord
|
||||
1. The core, dynamic mission system
|
||||
2. A static mission system
|
||||
3. A custom time acceleration module
|
||||
4. A module to execute scripts for custom bases (map addons) and so forths.
|
||||
4. A module to execute scripts for custom bases (map addons) and so forth.
|
||||
5. A module to spawn loot crates in specific locations at server startup.
|
||||
6. Tools to export mission layouts designed in the editor for use with mission templates. This allows you to quickly add content to your server. Tools are available for both static and dynamic missions.
|
||||
|
||||
1. Core Mission System.
|
||||
|
||||
The core mission system is configured to run 4 different classes of mission (Blue, Red, Green and Orange) simultaneously.
|
||||
Reducing value for ...\custom_serer\configs\blck_configs.sqf\blck_maxSpawnedMissions will reduce the number of missions running on the server.
|
||||
The core mission system is configured to run 5 different classes of mission (Blue, Red, Green and Orange, and underwater/surface) simultaneously.
|
||||
Reducing value for ...\custom_serer\configs\blck_configs.sqf\blck_maxSpawnedMissions will reduce the number of missions running on the server at any one time.
|
||||
|
||||
General settings include:
|
||||
the ability set whether and how messages to players regarding missions spawned or completed are displayed,
|
||||
@ -29,6 +30,7 @@ General settings include:
|
||||
Loot can also be configured for each mission class or mission. You can modify the number of weapons, magazines, items, construction materials, etc.
|
||||
You can also adjust the choices for each of these types of items.
|
||||
The equipment selected for each class of mission can also be specified(uniforms, vests, headgear, backpcks, weapons, pistols).
|
||||
Alternatively, AI loadouts can be determined by the mission system based on what is available at server startup. When loadouts are dynamically configured the items spawned in CfgLoot are used. Note that an upper limit on price is available.
|
||||
Whether kills by guns mounted on vehicles are to be penalized (gunes that are prohobited are listed in blck_config.sys).
|
||||
Whether to spawn a smoking wreck near the mission to be used as a visual landmark.
|
||||
Whether to spawn mines (recommended only when no vehcle patrols are spawned).
|
||||
@ -39,17 +41,17 @@ Where possible, I have tried group weapons based on desirability from low rank (
|
||||
|
||||
The missions themselves are spawned from templates which can be used to define most aspects of the missions including:
|
||||
the messages sent to players;
|
||||
text used to label the mark
|
||||
type of marker used to label the map
|
||||
number of AI groups and number of AI and, if desired their spawn locations.
|
||||
Text used to label the mark
|
||||
Type of marker used to label the map
|
||||
Number of AI groups and number of AI and, if desired their spawn locations.
|
||||
(optional) loot chest positions and loot to be loaded
|
||||
type and location of any objects, buildings, or other entities that give the mission character
|
||||
number and (optional) locations of static weapons
|
||||
number, type, and spawn location(s) of vehicle patrols
|
||||
Type and location of any objects, buildings, or other entities that give the mission character
|
||||
Number and (optional) locations of static weapons
|
||||
Number, type, and spawn location(s) of vehicle patrols
|
||||
|
||||
To create and run new missions simply:
|
||||
layout an AI base in the Arma 3 editor,
|
||||
export the base as an .sqf using Maca's EDEN PLuging uing relative positions.
|
||||
export the base as an .sqf using the tools provided.
|
||||
Define the above parameters (nu. AI groups, No AI, etc)
|
||||
add this information to the mission template and modify any messages accordingly
|
||||
Add the name of the file (e.g., "newAImission" to the list of missions to be spawned of that class in ...\custom)server\missions\GMS_missionLists.sqf
|
||||
@ -66,8 +68,8 @@ You can shorten the time after which bodies or scenery are deleted if you believ
|
||||
Additional Modules Available:
|
||||
|
||||
Suport is provided for groups of AI, vehicles, aircraft, static weapons, subs, surface vessels.
|
||||
The positions of these is defined by templates (see custom_server\Missions\Static\Missions folder for examples) or by calls to functions to add these elements.
|
||||
The recommended way to place static units of various types is to add their spawn information to a new template then add the name/mod to custom_server\Missions\Static\GMS_StaticMissions_Lists.sqf.
|
||||
The positions of these are defined by templates (see custom_server\Missions\Static\Missions folder for examples) or by calls to functions to add these elements.
|
||||
The recommended way to place static units of various types is to lay out their positions in the editor then export the data using the tools provided to create a new mission with these definitions.
|
||||
Alternatively you can set up calls to the functions that initialize spawns for these units in blck_custom_configs.sqf or an include that is incorporated into it.
|
||||
See the directions for creating static missions for more information.
|
||||
|
||||
|
@ -63,17 +63,12 @@ You can use blck_custom_config.sqf to code any overrides you like. An example fo
|
||||
|
||||
////////////////////////
|
||||
// What is this blck_debugON variable about?
|
||||
It turns on accelerated mission spawning by default and activates additional logging.
|
||||
You can turn it on or of in custom_server\Compiles\blck_variables.sqf.
|
||||
Be careful about what you change in this file.
|
||||
I use it to speed things up for debugging. Best to leave this one alone.
|
||||
|
||||
///////////////////////////////////////////
|
||||
// Further customization
|
||||
|
||||
Just about anything about the missions can be modified. The mission template (see Missions\Orange\supply_camp.sqf and Missions\Blue\default.sqf for examples) allows you to define mission specific parameters.
|
||||
To create a new mission, make a copy of a mission template (e.g., custom_server\Blue\default.sqf). Edit the parameters to your liking and rename to file appropriately.
|
||||
To add a new mission, create a new mission template, then add the file name (e.g., "newmissions.sqf") to the mission list found in custom_server\Missions.
|
||||
That mission will now be spawned whenever it is selected from teh list.
|
||||
Just about anything about the missions can be modified.
|
||||
|
||||
Please see the FAQ for more information
|
||||
|
||||
|
@ -2,4 +2,4 @@
|
||||
|
||||
Known issues
|
||||
|
||||
1. AI Vehicles MAY not be unlocked when an HC is connected.
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
I am way behind on these.
|
||||
If you find something that is not listed here please post it on the github.
|
||||
|
||||
setVariable.txt
|
||||
|
||||
!="blck_AIState"
|
||||
|
@ -4,12 +4,14 @@ Loosely based on the AI mission system by blckeagls ver 2.0.2
|
||||
Contributions by Narines: bug fixes, testing, infinite ammo fix.
|
||||
Ideas or code from that by He-Man, Vampire and KiloSwiss have been used for certain functions.
|
||||
Many thanks for new Coding and ideas from Grahame.
|
||||
A huge thank you to Ignaz-HeMan for many changes to resolve bugs and improve coding efficiency.
|
||||
|
||||
Significant Changes:
|
||||
=====================
|
||||
6.88
|
||||
6.88 Build 167
|
||||
This update consists primarily of a set of bug fixes and code tweaks.
|
||||
Many thanks to HeMan for his time in effort spent going through the scripts to troublehsoot and improve them.
|
||||
The most important bug fix has been resolution of issues with use of headless clients.
|
||||
|
||||
6.86 Build 156
|
||||
Added support for spawning infantry and statics inside buildings for forming a garrison using either of two methods.
|
||||
|
Loading…
Reference in New Issue
Block a user