Build 174
This commit is contained in:
parent
a531fdc71d
commit
72ffddd2fa
@ -1,6 +1,5 @@
|
|||||||
Added new settings to blck_config.sqf and blck_config_mil.sqf
|
1. Added new settings to specify the number of crew per vehhicle to blck_config.sqf and blck_config_mil.sqf
|
||||||
|
|
||||||
1.
|
|
||||||
// global settings for this parameters
|
// global settings for this parameters
|
||||||
// Determine the number of crew plus driver per vehicle; excess crew are ignored.
|
// Determine the number of crew plus driver per vehicle; excess crew are ignored.
|
||||||
// This can be a value or array of [_min, _max];
|
// This can be a value or array of [_min, _max];
|
||||||
@ -13,8 +12,9 @@ Added new settings to blck_config.sqf and blck_config_mil.sqf
|
|||||||
|
|
||||||
_vehicleCrewCount = 3 //
|
_vehicleCrewCount = 3 //
|
||||||
|
|
||||||
2.
|
2. Lists of items to be excluded from dynamically generated loadouts has been moved to:
|
||||||
lists of items to be excluded from dynamically generated loadouts has been moved to:
|
|
||||||
blck_config.sqf
|
blck_config.sqf
|
||||||
blck_config_mil.sqf
|
blck_config_mil.sqf
|
||||||
|
|
||||||
|
3. Added a new setting that specifies whether logging of blacklisted items is done (handy for debugging)
|
||||||
|
blck_logBlacklistedItems = true; // set to false to disable logging
|
@ -0,0 +1,11 @@
|
|||||||
|
/*
|
||||||
|
GMS_fnc_isClass
|
||||||
|
|
||||||
|
Purpose: determine if a string is a valid className
|
||||||
|
Parameters: _item, a string to be interrogated.
|
||||||
|
Returns: true if the string is a valid classname.
|
||||||
|
*/
|
||||||
|
//#include "GMSCore\init\GMS_defines.hpp" "\addons\GMSCore\init\GMS_defines.hpp"
|
||||||
|
params["_item"];
|
||||||
|
private _result = if ([_item] call GMS_fnc_getCfgType isEqualTo "") then {false} else {true};
|
||||||
|
_result
|
@ -1,31 +0,0 @@
|
|||||||
|
|
||||||
/*
|
|
||||||
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";
|
|
||||||
|
|
||||||
params["_center","_emplaced","_garrisonGroup"];
|
|
||||||
private["_obj","_objects"];
|
|
||||||
private _group = call blck_fnc_create_AI_Group;
|
|
||||||
_objects = [];
|
|
||||||
{
|
|
||||||
_x params["_objClassName","_objRelPos","_objDir"];
|
|
||||||
_obj = [_objClassName, [0,0,0],0] call blck_fnc_spawnSingleObject;
|
|
||||||
_objects pushBack _obj;
|
|
||||||
_obj setPosATL (_objRelPos vectorAdd _center);
|
|
||||||
_obj setDir _objDir;
|
|
||||||
private _unit = [_group] call blck_fnc_spawnUnit;
|
|
||||||
_unit moveInGunner _unit;
|
|
||||||
private _wep addMPEventHandler["MPHit",{[_this] call blck_EH_AIVehicle_HandleDamage}];
|
|
||||||
_wep setVariable["GRG_vehType","emplaced"];
|
|
||||||
[_wep,false] call blck_fnc_configureMissionVehicle;
|
|
||||||
}forEach _emplaced;
|
|
||||||
blck_monitoredVehicles append _emplacedWeps;
|
|
||||||
private _return = [_emplacedWeps,_group,_abort];
|
|
||||||
_return
|
|
@ -1,21 +0,0 @@
|
|||||||
|
|
||||||
/*
|
|
||||||
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";
|
|
||||||
params["_center","_landscape"];
|
|
||||||
// diag_log format["fnc_spawnMissionLandscapeRelative: _center = %1",_center];
|
|
||||||
private["_obj","_objects"];
|
|
||||||
_objects = [];
|
|
||||||
{
|
|
||||||
_x params["_objClassName","_objRelPos","_objDir"];
|
|
||||||
_obj = [_objClassName, _objRelPos vectorAdd _center, _objDir,enableSimulationForObject,enableDamageForObject,enableRopesforObject,"CAN_COLLIDE"] call blck_fnc_spawnSingleObject;
|
|
||||||
_objects pushBack _obj;
|
|
||||||
}forEach _landscape;
|
|
||||||
_objects
|
|
@ -1,26 +0,0 @@
|
|||||||
|
|
||||||
/*
|
|
||||||
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";
|
|
||||||
|
|
||||||
params["_center","_crates"];
|
|
||||||
private["_crate","_cratesSpawned"];
|
|
||||||
|
|
||||||
_cratesSpawned = [];
|
|
||||||
{
|
|
||||||
_x params["_objClassName","_objRelPos","_crateLoot","_lootCounts","_objDir"];
|
|
||||||
_crate = [_objClassName, _objRelPos vectorAdd _center, _objDir] call blck_fnc_spawn_lootCrate;
|
|
||||||
//_crate setPosATL _objRelPos vectorAdd _center;
|
|
||||||
_cratesSpawned pushBack _crate;
|
|
||||||
_crate allowDamage false;
|
|
||||||
_crate enableRopeAttach false;
|
|
||||||
_crate
|
|
||||||
}forEach _crates;
|
|
||||||
_cratesSpawned
|
|
@ -1,17 +0,0 @@
|
|||||||
/*
|
|
||||||
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";
|
|
||||||
|
|
||||||
params["_objClassName","_objPosn",["_objDir",0],["_enableSimulation",true],["_enableDamage",true],["_enableRopes",true],["_mode","NONE"]];
|
|
||||||
private _obj = createVehicle[_objClassName,_objPosn,[],0,_mode];
|
|
||||||
_obj setDir _objDir;
|
|
||||||
_obj allowDamage _enableDamage;
|
|
||||||
_obj enableDynamicSimulation _enableSimulation;
|
|
||||||
_obj
|
|
@ -1,16 +0,0 @@
|
|||||||
/*
|
|
||||||
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 "_fnc_updateAllMarkerAliveCounts called";
|
|
||||||
/*
|
|
||||||
{
|
|
||||||
diag_log format["_fnc_updateAllMarkerAliveCounts: _x = %1",_x];
|
|
||||||
[_x select 0, _x select 1, _x select 2] call blck_fnc_updateMarkerAliveCount;
|
|
||||||
}forEach blck_missionMarkers;
|
|
@ -18,6 +18,6 @@ if ((diag_tickTime > (_group getVariable "timeStamp") + _maxTime) || ( (getPos (
|
|||||||
{
|
{
|
||||||
(leader _group) call blck_fnc_changeToMoveWaypoint;
|
(leader _group) call blck_fnc_changeToMoveWaypoint;
|
||||||
#ifdef blck_debugMode
|
#ifdef blck_debugMode
|
||||||
if (blck_debugLevel > 2) then {diag_log format["_fnc_missionGroupMonitor: infantry group %1 stuck, waypoint reset",_group];};
|
if (blck_debugLevel > 2) then {diag_log format["_fnc_checkGroupWaypointStatus: infantry group %1 stuck, waypoint reset",_group];};
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
/*
|
|
||||||
[] call blck_fnc_waypointMonitor;
|
|
||||||
|
|
||||||
Scans all groups in for those that have been stuck in a particular waypoint for an excessive time and checks if they are in combat.
|
|
||||||
If not it directs them to the next waypoint.
|
|
||||||
It uses a timestamp attached to the group that is cleared upon waypoint completion.
|
|
||||||
|
|
||||||
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";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,18 +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";
|
|
||||||
|
|
||||||
//blck_fnc_HC_getListConnected =
|
|
||||||
private _hcs = entities "HeadlessClient_F";
|
|
||||||
//diag_log format["_fnc_HC_getListConected: _hcs = %1",_hcs];
|
|
||||||
_hcs
|
|
||||||
|
|
@ -289,7 +289,7 @@ if (blck_useStatic && (_noEmplacedToSpawn > 0)) then
|
|||||||
_vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange;
|
_vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange;
|
||||||
if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || count _missionPatrolVehicles > 0)) then
|
if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || count _missionPatrolVehicles > 0)) then
|
||||||
{
|
{
|
||||||
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_missionPatrolVehicles,useRelativePos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionVehiclePatrols;
|
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_missionPatrolVehicles,useRelativePos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,false,_vehicleCrewCount] call blck_fnc_spawnMissionVehiclePatrols;
|
||||||
|
|
||||||
if (typeName _temp isEqualTo "ARRAY") then
|
if (typeName _temp isEqualTo "ARRAY") then
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,15 @@
|
|||||||
|
/*
|
||||||
|
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";
|
||||||
params["_diff"];
|
params["_diff"];
|
||||||
private ["_count"];
|
private ["_count"];
|
||||||
switch (toLower(_diff)) do
|
switch (toLower(_diff)) do
|
||||||
@ -8,4 +19,5 @@ switch (toLower(_diff)) do
|
|||||||
case "green": {_count = blck_vehCrew_green};
|
case "green": {_count = blck_vehCrew_green};
|
||||||
case "orange": {_count = blck_vehCrew_orange};
|
case "orange": {_count = blck_vehCrew_orange};
|
||||||
};
|
};
|
||||||
|
diag_log format["_fnc_selectVehicleCrewCount: _count set to %1",_count];
|
||||||
_count
|
_count
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||||
// params["_pos", "_center", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], ["_minDist",20], ["_maxDist",35],["_configureWaypoints",true], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_scuba",false] ];
|
// params["_pos", "_center", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], ["_minDist",20], ["_maxDist",35],["_configureWaypoints",true], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_scuba",false] ];
|
||||||
params["_coords","_noVehiclePatrols","_skillAI","_missionPatrolVehicles",["_useRelativePos",true],["_uniforms",[]], ["_headGear",[]],["_vests",[]],["_backpacks",[]],["_weaponList",[]],["_sideArms",[]], ["_isScubaGroup",false]];
|
params["_coords","_noVehiclePatrols","_skillAI","_missionPatrolVehicles",["_useRelativePos",true],["_uniforms",[]], ["_headGear",[]],["_vests",[]],["_backpacks",[]],["_weaponList",[]],["_sideArms",[]], ["_isScubaGroup",false],["_crewCount",4]];
|
||||||
//diag_log format["_fnc_spawnMissionVehiclePatrols: _this = %1",_this];
|
//diag_log format["_fnc_spawnMissionVehiclePatrols: _this = %1",_this];
|
||||||
if (_uniforms isEqualTo []) then {_uniforms = [_skillAI] call blck_fnc_selectAIUniforms};
|
if (_uniforms isEqualTo []) then {_uniforms = [_skillAI] call blck_fnc_selectAIUniforms};
|
||||||
if (_headGear isEqualTo []) then {_headGear = [_skillAI] call blck_fnc_selectAIHeadgear};
|
if (_headGear isEqualTo []) then {_headGear = [_skillAI] call blck_fnc_selectAIHeadgear};
|
||||||
@ -52,8 +52,9 @@ if (_missionPatrolVehicles isEqualTo []) then
|
|||||||
_spawnPos = _x select 1;
|
_spawnPos = _x select 1;
|
||||||
};
|
};
|
||||||
_vehicle = _x select 0;
|
_vehicle = _x select 0;
|
||||||
|
//private _crewCount = [skillAI] call GMS_fnc_selectVehicleCrewCount;
|
||||||
// params["_pos", "_center", _numai1, _numai2, _skillLevel, _minDist, _maxDist, _configureWaypoints, _uniforms, _headGear,_vests,_backpacks,_weaponList,_sideArms, _scuba ];
|
// params["_pos", "_center", _numai1, _numai2, _skillLevel, _minDist, _maxDist, _configureWaypoints, _uniforms, _headGear,_vests,_backpacks,_weaponList,_sideArms, _scuba ];
|
||||||
_vehGroup = [_spawnPos,_coords,3,3,_skillAI,1,2,false,_uniforms, _headGear,_vests,_backpacks,_weaponList,_sideArms,_isScubaGroup] call blck_fnc_spawnGroup;
|
_vehGroup = [_spawnPos,_coords,_crewCount,_crewCount,_skillAI,1,2,false,_uniforms, _headGear,_vests,_backpacks,_weaponList,_sideArms,_isScubaGroup] call blck_fnc_spawnGroup;
|
||||||
if (isNull _vehGroup) exitWith
|
if (isNull _vehGroup) exitWith
|
||||||
{
|
{
|
||||||
_abort = true;
|
_abort = true;
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
/*
|
|
||||||
Author: Ghostrider [GRG]
|
|
||||||
Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP
|
|
||||||
License: Attribution-NonCommercial-ShareAlike 4.0 International
|
|
||||||
Last Modified 1/23/17
|
|
||||||
*/
|
|
||||||
params["_grpPilot"];
|
|
||||||
private["_heli","_pilot"];
|
|
||||||
_pilot = (units _grpPilot) select 0;
|
|
||||||
_heli = vehicle _pilot;
|
|
||||||
diag_log "reinforcements deployed:: send heli back to spawn";
|
|
||||||
[[_heli], 300 /* 5 min*/] spawn blck_fnc_addObjToQue;
|
|
||||||
// select a random location abotu 2K from the mission
|
|
||||||
_spawnVector = round(random(360));
|
|
||||||
_spawnDistance = 2000;
|
|
||||||
_pos = getPos _heli;
|
|
||||||
|
|
||||||
// Use the new functionality of getPos
|
|
||||||
// https://community.bistudio.com/wiki/getPos
|
|
||||||
_home = _pos getPos [_spawnDistance,_spawnVector];
|
|
||||||
|
|
||||||
// Send the heli back to base
|
|
||||||
_grpPilot = group this;
|
|
||||||
[_grpPilot, 0] setWPPos _pos;
|
|
||||||
[_grpPilot, 0] setWaypointType "MOVE";
|
|
||||||
[_grpPilot, 0] setWaypointSpeed "FULL";
|
|
||||||
[_grpPilot, 0] setWaypointBehaviour "CARELESS";
|
|
||||||
[_grpPilot, 0] setWaypointCompletionRadius 200;
|
|
||||||
[_grpPilot, 0] setWaypointStatements ["true", "{deleteVehicle _x} forEach units group this;deleteVehicle (vehicle this);diag_log ""helicopter and crew deleted"""];
|
|
||||||
[_grpPilot, 0] setWaypointName "GoHome";
|
|
||||||
[_grpPilot,0] setWaypointTimeout [0.5,0.5,0.5];
|
|
||||||
|
|
||||||
|
|
||||||
diag_log "reinforcements:: sending Heli Home";
|
|
||||||
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
|||||||
/*
|
|
||||||
Author: Ghostrider [GRG]
|
|
||||||
Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP
|
|
||||||
License: Attribution-NonCommercial-ShareAlike 4.0 International
|
|
||||||
call with
|
|
||||||
[
|
|
||||||
_supplyHeli, // heli from which they should para
|
|
||||||
_lootCounts,
|
|
||||||
_lootSetting // [blue, red, green, orange]
|
|
||||||
] call blck_spawnHeliParaCrate
|
|
||||||
*/
|
|
||||||
|
|
||||||
params["_supplyHeli","_lootCounts"];
|
|
||||||
|
|
||||||
private ["_chute","_crate","_crateSelected","_dir","_offset"];
|
|
||||||
_crate = "";
|
|
||||||
_chute = "";
|
|
||||||
|
|
||||||
diag_log "_fnc_spawnParaCrate:: spawning crate";
|
|
||||||
|
|
||||||
|
|
||||||
_dir = getDir _supplyHeli;
|
|
||||||
_dir = if (_dir < 180) then {_dir + 210} else {_dir - 210};
|
|
||||||
_offset = _supplyHeli getPos [10, _dir];
|
|
||||||
|
|
||||||
//open parachute and attach to crate
|
|
||||||
_chute = createVehicle ["I_Parachute_02_F", [100, 100, 100], [], 0, "FLY"];
|
|
||||||
[_chute] call blck_fnc_protectVehicle;
|
|
||||||
_chute setPos [_offset select 0, _offset select 1, 100 ]; //(_offset select 2) - 10];
|
|
||||||
|
|
||||||
diag_log format["_fnc_spawnParaCrate:: chute spawned yielding object %1 at postion %2", _chute, getPos _chute];
|
|
||||||
|
|
||||||
//create the parachute and crate
|
|
||||||
_crateSelected = selectRandom["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_IND_AmmoVeh_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F"];
|
|
||||||
_crate = [getPos _chute, _crateSelected] call blck_fnc_spawnCrate;
|
|
||||||
//_crate = createVehicle [_crateSelected, position _chute, [], 0, "CAN_COLLIDE"];
|
|
||||||
_crate setPos [position _supplyHeli select 0, position _supplyHeli select 1, 250]; //(position _supplyHeli select 2) - 10];
|
|
||||||
_crate attachTo [_chute, [0, 0, -1.3]];
|
|
||||||
_crate allowdamage false;
|
|
||||||
_crate enableRopeAttach true; // allow slingloading where possible
|
|
||||||
|
|
||||||
diag_log format["_fnc_spawnParaCrate:: crate spawned %1 at position %2 and attached to %3",_crate, getPos _crate, attachedTo _crate];
|
|
||||||
|
|
||||||
|
|
||||||
switch (_lootSetting) do
|
|
||||||
{
|
|
||||||
case "orange": {[_crate, blck_BoxLoot_Orange, _lootCounts] call blck_fnc_fillBoxes;};
|
|
||||||
case "green": {[_crate, blck_BoxLoot_Green, _lootCounts] call blck_fnc_fillBoxes;};
|
|
||||||
case "red": {[_crate, blck_BoxLoot_Red, _lootCounts] call blck_fnc_fillBoxes;};
|
|
||||||
case "blue": {[_crate, blck_BoxLoot_Blue, _lootCounts] call blck_fnc_fillBoxes;};
|
|
||||||
default {[_crate, blck_BoxLoot_Red, _lootCounts] call blck_fnc_fillBoxes;};
|
|
||||||
};
|
|
||||||
|
|
||||||
diag_log format["_fnc_spawnParaCrate:: crate loaded and now at position %1 and attached to %2", getPos _crate, attachedTo _crate];
|
|
||||||
|
|
||||||
_fn_monitorCrate = {
|
|
||||||
params["_crate","_chute"];
|
|
||||||
uiSleep 30;
|
|
||||||
private["_crateOnGround"];
|
|
||||||
_crateOnGround = false;
|
|
||||||
while {!_crateOnGround} do
|
|
||||||
{
|
|
||||||
uiSleep 1;
|
|
||||||
diag_log format["_fnc_spawnParaCrate:: Crate Altitude: %1 Crate Velocity: %2 Crate Position: %3 Crate attachedTo %4", getPos _crate select 2, velocityModelSpace _crate select 2, getPosATL _crate, attachedTo _crate];
|
|
||||||
if ( (((velocity _crate) select 2) < 0.1) || ((getPosATL _crate select 2) < 0.1) ) exitWith
|
|
||||||
{
|
|
||||||
uiSleep 10; // give some time for everything to settle
|
|
||||||
detach _crate;
|
|
||||||
deleteVehicle _chute;
|
|
||||||
if (surfaceIsWater (getPos _crate)) then
|
|
||||||
{
|
|
||||||
deleteVehicle _crate;
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
[_crate] call blck_fnc_signalEnd;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
[_crate,_chute] call _fn_monitorCrate;
|
|
||||||
[[_crate], 1200 /* 20 min*/] spawn blck_fnc_addObjToQue;
|
|
@ -1,6 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
by Ghostrider
|
by Ghostrider
|
||||||
7-27-17
|
|
||||||
Alerts the leader of a group of the location of an enemy.
|
Alerts the leader of a group of the location of an enemy.
|
||||||
|
|
||||||
--------------------------
|
--------------------------
|
||||||
|
@ -14,7 +14,7 @@ params["_target"];
|
|||||||
private["_vehGroup"];
|
private["_vehGroup"];
|
||||||
{
|
{
|
||||||
_vehGroup = _x getVariable["vehicleGroup",grpNull];
|
_vehGroup = _x getVariable["vehicleGroup",grpNull];
|
||||||
if (_target distance2D (leader _vehGroup) < 1000) then {[_vehGroup,_target] call GMS_fnc_alertGroupUnits;};
|
if (_target distance2D (leader _vehGroup) < 1000) then {[_vehGroup,_target] call blck_fnc_alertGroupUnits;};
|
||||||
}forEach blck_monitoredVehicles;
|
}forEach blck_monitoredVehicles;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,63 +0,0 @@
|
|||||||
|
|
||||||
/*
|
|
||||||
calculate a reward player for AI Kills in crypto.
|
|
||||||
Code fragment adapted from VEMF
|
|
||||||
call as [_unit,_killer] call blck_fnc_rewardKiller;
|
|
||||||
Last modified 6/3/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";
|
|
||||||
|
|
||||||
params["_unit","_killer"];
|
|
||||||
private["_reward","_maxReward","_dist","_killstreakReward","_distanceBonus","_newKillerScore","_newKillerFrags","_money"];
|
|
||||||
if (toLower(blck_modType) isEqualTo "epoch") then
|
|
||||||
{
|
|
||||||
if ( (vehicle _killer) in blck_forbidenVehicles || (currentWeapon _killer) in blck_forbidenVehicleGuns ) then
|
|
||||||
{
|
|
||||||
_reward = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_maxReward = 50;
|
|
||||||
_dist = _unit distance _killer;
|
|
||||||
_reward = 0;
|
|
||||||
_distanceBonus = floor((_unit distance _killer)/100);
|
|
||||||
_killstreakBonus = 3 * (_killer getVariable["blck_kills",0]);
|
|
||||||
_reward = 25 + _distanceBonus + _killstreakBonus;
|
|
||||||
private _killstreakReward=+(_kills*2);
|
|
||||||
[_killer,_reward + _killstreakReward] call blck_fnc_giveTakeCrypto;
|
|
||||||
if (blck_useKillScoreMessage) then
|
|
||||||
{
|
|
||||||
[["showScore",[_reward,"",_kills],""],[_killer]] call blck_fnc_messageplayers;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
if (toLower(blck_modType) isEqualTo "exile") then
|
|
||||||
{
|
|
||||||
private["_distanceBonus","_overallRespectChange","_newKillerScore","_newKillerFrags","_maxReward","_money","_message"];
|
|
||||||
if ( (isPlayer _killer) && (_killer getVariable["ExileHunger",0] > 0) && (_killer getVariable["ExileThirst",0] > 0) ) then
|
|
||||||
{
|
|
||||||
_distanceBonus = floor((_unit distance _killer)/100);
|
|
||||||
_killstreakBonus = 3 * (_killer getVariable["blck_kills",0]);
|
|
||||||
_respectGained = 25 + _distanceBonus + _killstreakBonus;
|
|
||||||
_score = _killer getVariable ["ExileScore", 0];
|
|
||||||
_score = _score + (_respectGained);
|
|
||||||
_killer setVariable ["ExileScore", _score];
|
|
||||||
format["setAccountScore:%1:%2", _score,getPlayerUID _killer] call ExileServer_system_database_query_fireAndForget;
|
|
||||||
_newKillerFrags = _killer getVariable ["ExileKills", 0];
|
|
||||||
_newKillerFrags = _newKillerFrags + 1;
|
|
||||||
_killer setVariable ["ExileKills", _newKillerFrags];
|
|
||||||
format["addAccountKill:%1", getPlayerUID _killer] call ExileServer_system_database_query_fireAndForget;
|
|
||||||
_killer call ExileServer_object_player_sendStatsUpdate;
|
|
||||||
if (blck_useKillScoreMessage) then
|
|
||||||
{
|
|
||||||
[["showScore",[_respectGained,_distanceBonus,_kills]], [_killer]] call blck_fnc_messageplayers;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
@ -16,15 +16,6 @@
|
|||||||
|
|
||||||
private["_vehType","_safepos","_veh","_unitNumber"];
|
private["_vehType","_safepos","_veh","_unitNumber"];
|
||||||
params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",40],["_maxDis",60],["_group",grpNull],["_setWaypoints",true]];
|
params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",40],["_maxDis",60],["_group",grpNull],["_setWaypoints",true]];
|
||||||
#ifdef blck_debugMode
|
|
||||||
if (blck_debugLevel > 1) then
|
|
||||||
{
|
|
||||||
private _params = ["_center","_pos","_vehType","_minDis","_maxDis","_group","_setWaypoints"];
|
|
||||||
{
|
|
||||||
diag_log format["_fnc_spawnMissionVehiclePatrol:: param %1 | isEqualTo %2 | _forEachIndex %3",_params select _forEachIndex,_this select _forEachIndex, _forEachIndex];
|
|
||||||
}forEach _this;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//_center Center of the mission area - this is usuall the position treated as the center by the mission spawner. Vehicles will patrol the perimeter of the mission area.
|
//_center Center of the mission area - this is usuall the position treated as the center by the mission spawner. Vehicles will patrol the perimeter of the mission area.
|
||||||
// _pos the approximate spawn point for the vehicle
|
// _pos the approximate spawn point for the vehicle
|
||||||
@ -33,8 +24,6 @@ if (blck_debugLevel > 1) then
|
|||||||
//_maxDis = maximum distance from the center of the mission for vehicle waypoints
|
//_maxDis = maximum distance from the center of the mission for vehicle waypoints
|
||||||
//_groupForVehiclePatrol = The group with which to man the vehicle
|
//_groupForVehiclePatrol = The group with which to man the vehicle
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if !(isNull _group) then {
|
if !(isNull _group) then {
|
||||||
_veh = [_vehType,_pos] call blck_fnc_spawnVehicle;
|
_veh = [_vehType,_pos] call blck_fnc_spawnVehicle;
|
||||||
// _veh addEventHandler["HandleDamage",{ [_this] call blck_EH_AIVehicle_HandleDamage}];
|
// _veh addEventHandler["HandleDamage",{ [_this] call blck_EH_AIVehicle_HandleDamage}];
|
||||||
@ -43,12 +32,6 @@ if !(isNull _group) then {
|
|||||||
_veh setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds];
|
_veh setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds];
|
||||||
|
|
||||||
//_group setVariable["groupVehicle",_veh];
|
//_group setVariable["groupVehicle",_veh];
|
||||||
#ifdef blck_debugMode
|
|
||||||
if (blck_debugLevel > 1) then
|
|
||||||
{
|
|
||||||
diag_log format["spawnVehiclePatrol:: vehicle spawned is %1 of typeof %2",_veh, typeOf _veh];
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
_unitNumber = 0;
|
_unitNumber = 0;
|
||||||
|
|
||||||
@ -60,7 +43,7 @@ if !(isNull _group) then {
|
|||||||
default {_x moveInCargo _veh;};
|
default {_x moveInCargo _veh;};
|
||||||
};
|
};
|
||||||
_unitNumber = _unitNumber + 1;
|
_unitNumber = _unitNumber + 1;
|
||||||
}forEach (units _group);
|
}forEach (units _group); // TODO: add check for empty crew slots and delete excess crew
|
||||||
|
|
||||||
// params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_wpPatrolMode","SAD"],["_soldierType","null"] ];
|
// params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_wpPatrolMode","SAD"],["_soldierType","null"] ];
|
||||||
_group setcombatmode "RED";
|
_group setcombatmode "RED";
|
||||||
|
@ -39,6 +39,7 @@ private _functions = [
|
|||||||
["GMS_fnc_msgIED","\q\addons\custom_server\Compiles\Functions\GMS_fnc_msgIED.sqf"],
|
["GMS_fnc_msgIED","\q\addons\custom_server\Compiles\Functions\GMS_fnc_msgIED.sqf"],
|
||||||
["GMS_fnc_cleanupTemporaryMarkers","\q\addons\custom_server\Compiles\Functions\GMS_fnc_cleanupTemporaryMarkers.sqf"],
|
["GMS_fnc_cleanupTemporaryMarkers","\q\addons\custom_server\Compiles\Functions\GMS_fnc_cleanupTemporaryMarkers.sqf"],
|
||||||
["GMS_fnc_updateCrateSignals","\q\addons\custom_server\Compiles\Functions\GMS_fnc_updateCrateSignals.sqf"],
|
["GMS_fnc_updateCrateSignals","\q\addons\custom_server\Compiles\Functions\GMS_fnc_updateCrateSignals.sqf"],
|
||||||
|
["GMS_fnc_isClass","\q\addons\custom_server\Compiles\Functions\GMS_fnc_isClass.sqf"],
|
||||||
|
|
||||||
// Player-related functions
|
// Player-related functions
|
||||||
["GMS_fnc_handlePlayerUpdates","\q\addons\custom_server\Compiles\Units\GMS_fnc_handlePlayerUpdates.sqf"],
|
["GMS_fnc_handlePlayerUpdates","\q\addons\custom_server\Compiles\Units\GMS_fnc_handlePlayerUpdates.sqf"],
|
||||||
@ -89,7 +90,7 @@ private _functions = [
|
|||||||
// Group-related functions
|
// Group-related functions
|
||||||
["blck_fnc_spawnGroup","\q\addons\custom_server\Compiles\Groups\GMS_fnc_spawnGroup.sqf"], // Spawn a single group and populate it with AI units]
|
["blck_fnc_spawnGroup","\q\addons\custom_server\Compiles\Groups\GMS_fnc_spawnGroup.sqf"], // Spawn a single group and populate it with AI units]
|
||||||
["blck_fnc_setupWaypoints","\q\addons\custom_server\Compiles\Groups\GMS_fnc_setupWaypoints.sqf"], // Set default waypoints for a group
|
["blck_fnc_setupWaypoints","\q\addons\custom_server\Compiles\Groups\GMS_fnc_setupWaypoints.sqf"], // Set default waypoints for a group
|
||||||
["blck_fnc_missionGroupMonitor","\q\addons\custom_server\Compiles\Groups\GMS_fnc_missionGroupMonitor.sqf"], // Monitors active groups for those that are stuck in an SAD waypoint but not in combat
|
//["blck_fnc_missionGroupMonitor","\q\addons\custom_server\Compiles\Groups\GMS_fnc_missionGroupMonitor.sqf"], // Monitors active groups for those that are stuck in an SAD waypoint but not in combat
|
||||||
["blck_fnc_changeToSADWaypoint","\q\addons\custom_server\Compiles\Groups\GMS_fnc_changeToSADWaypoint.sqf"],
|
["blck_fnc_changeToSADWaypoint","\q\addons\custom_server\Compiles\Groups\GMS_fnc_changeToSADWaypoint.sqf"],
|
||||||
["blck_fnc_changeToMoveWaypoint","\q\addons\custom_server\Compiles\Groups\GMS_fnc_changeToMoveWaypoint.sqf"],
|
["blck_fnc_changeToMoveWaypoint","\q\addons\custom_server\Compiles\Groups\GMS_fnc_changeToMoveWaypoint.sqf"],
|
||||||
["blck_fnc_changeToSentryWaypoint","\q\addons\custom_server\Compiles\Groups\GMS_fnc_changeToSentryWaypoint.sqf"],
|
["blck_fnc_changeToSentryWaypoint","\q\addons\custom_server\Compiles\Groups\GMS_fnc_changeToSentryWaypoint.sqf"],
|
||||||
@ -150,8 +151,7 @@ private _functions = [
|
|||||||
["blck_fnc_spawnParaUnits","\q\addons\custom_server\Compiles\Units\GMS_fnc_spawnParaUnits.sqf"],
|
["blck_fnc_spawnParaUnits","\q\addons\custom_server\Compiles\Units\GMS_fnc_spawnParaUnits.sqf"],
|
||||||
["blck_fnc_nextAnim","\q\addons\custom_server\Compiles\Units\GMS_fnc_nextAnim.sqf"],
|
["blck_fnc_nextAnim","\q\addons\custom_server\Compiles\Units\GMS_fnc_nextAnim.sqf"],
|
||||||
["blck_fnc_placeCharacterInBuilding","\q\addons\custom_server\Compiles\Units\GMS_fnc_placeCharacterInBuilding.sqf"],
|
["blck_fnc_placeCharacterInBuilding","\q\addons\custom_server\Compiles\Units\GMS_fnc_placeCharacterInBuilding.sqf"],
|
||||||
["GMS_fnc_removeAllAIgear","\q\addons\custom_server\Compiles\Units\GMS_fnc_removeAllAIgear.sqf"],
|
["GMS_fnc_removeAllAIgear","\q\addons\custom_server\Compiles\Units\GMS_fnc_removeAllAIgear.sqf"],
|
||||||
["GMS_fnc_alertGroupUnits","\q\addons\custom_server\Compiles\Functions\GMS_fnc_alertGroupUnits.sqf"],
|
|
||||||
|
|
||||||
// HC support functions
|
// HC support functions
|
||||||
["blck_fnc_HC_XferGroup","\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_XferGroup.sqf"],
|
["blck_fnc_HC_XferGroup","\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_XferGroup.sqf"],
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
blck_locationBlackList = []; // Do not touch ...
|
blck_locationBlackList = []; // Do not touch ...
|
||||||
blck_debugON = true; // Do not touch ...
|
blck_debugON = true; // Do not touch ...
|
||||||
blck_debugLevel = 0; // Do not touch ...
|
blck_debugLevel = 3; // Do not touch ...
|
||||||
#ifdef blck_milServer
|
#ifdef blck_milServer
|
||||||
if (true) exitWith
|
if (true) exitWith
|
||||||
{
|
{
|
||||||
@ -292,29 +292,35 @@
|
|||||||
****************************************************************/
|
****************************************************************/
|
||||||
// When true, AI loadouts will be set from the class names in CfgPricing rather than the settings in the mod-specific configuration files
|
// 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_useConfigsGeneratedLoadouts = true;
|
||||||
|
blck_logBlacklistedItems = true;
|
||||||
|
//blck_maximumitempriceinai_loadouts = 1000;
|
||||||
// lists of black-listed items to be excluded from dynamic loadouts
|
// lists of black-listed items to be excluded from dynamic loadouts
|
||||||
blck_blacklistedVests = [
|
blck_blacklistedVests = [
|
||||||
|
"V_Press_F"
|
||||||
];
|
];
|
||||||
|
|
||||||
blck_blacklistedUniforms = [
|
blck_blacklistedUniforms = [
|
||||||
|
"U_I_Protagonist_VR",
|
||||||
|
"U_C_Protagonist_VR",
|
||||||
|
"U_O_Protagonist_VR",
|
||||||
|
"U_B_Protagonist_VR"
|
||||||
];
|
];
|
||||||
|
|
||||||
blck_blacklistedBackpacks = [
|
blck_blacklistedBackpacks = [
|
||||||
|
"B_ViperLightHarness_blk_F"
|
||||||
];
|
];
|
||||||
|
|
||||||
blck_blacklistedHeadgear = [
|
blck_blacklistedHeadgear = [
|
||||||
|
"H_HelmotO_ViperSP_ghex_F",
|
||||||
|
"H_HelmetO_VierSP_hex"
|
||||||
];
|
];
|
||||||
|
|
||||||
blck_blacklistedPrimaryWeapons = [
|
blck_blacklistedPrimaryWeapons = [
|
||||||
|
"srifle_LRR_tna_F"
|
||||||
];
|
];
|
||||||
|
|
||||||
blck_blacklistedSecondaryWeapons = [
|
blck_blacklistedSecondaryWeapons = [
|
||||||
|
"hgun_Pistol_heav_02_F"
|
||||||
];
|
];
|
||||||
|
|
||||||
blck_blacklistedLaunchersAndSwingWeapons = [
|
blck_blacklistedLaunchersAndSwingWeapons = [
|
||||||
@ -322,7 +328,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
blck_blacklistedOptics = [
|
blck_blacklistedOptics = [
|
||||||
|
"optic_tws"
|
||||||
];
|
];
|
||||||
|
|
||||||
blck_blacklistedAttachments = [
|
blck_blacklistedAttachments = [
|
||||||
@ -419,12 +425,20 @@
|
|||||||
diag_log format["[blckeagls] Loading Mission System using Parameters for %1",blck_modType];
|
diag_log format["[blckeagls] Loading Mission System using Parameters for %1",blck_modType];
|
||||||
execVM "\q\addons\custom_server\Configs\blck_configs_exile.sqf";
|
execVM "\q\addons\custom_server\Configs\blck_configs_exile.sqf";
|
||||||
};
|
};
|
||||||
waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"};
|
uiSleep 10;
|
||||||
waitUntil {!isNil "blck_maximumItemPriceInAI_Loadouts"};
|
//waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"};
|
||||||
|
//diag_log format["blck_maximumItemPriceInAI_Loadouts defined as %1",blck_maximumItemPriceInAI_Loadouts];
|
||||||
|
//waitUntil {!isNil "blck_maximumItemPriceInAI_Loadouts"};
|
||||||
if (blck_useConfigsGeneratedLoadouts) then
|
if (blck_useConfigsGeneratedLoadouts) then
|
||||||
{
|
{
|
||||||
diag_log format["[blckeagls] Dynamic Configs Enabled"];
|
diag_log format["[blckeagls] Dynamic Configs Enabled"];
|
||||||
execVM "\q\addons\custom_server\Configs\blck_dynamicConfigs.sqf";
|
execVM "\q\addons\custom_server\Configs\blck_dynamicConfigs.sqf";
|
||||||
|
} else {
|
||||||
|
if (blck_verifyClassNames) then
|
||||||
|
{
|
||||||
|
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
blck_configsLoaded = true;
|
blck_configsLoaded = true;
|
||||||
|
diag_log format["<--- blck_configs loaded at %1 --->",diag_tickTime];
|
@ -11,6 +11,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||||
|
#include "\q\addons\custom_server\init\build.sqf";
|
||||||
diag_log format["[blckeagls] loading configurations for Epoch for blckeagls build %1",blck_buildNumber];
|
diag_log format["[blckeagls] loading configurations for Epoch for blckeagls build %1",blck_buildNumber];
|
||||||
////////////
|
////////////
|
||||||
// Epoch-specific settings
|
// Epoch-specific settings
|
||||||
|
@ -46,6 +46,8 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
|||||||
blck_crateMoneyGreen = [300, 500];
|
blck_crateMoneyGreen = [300, 500];
|
||||||
blck_crateMoneyOrange = [500, 750];
|
blck_crateMoneyOrange = [500, 750];
|
||||||
|
|
||||||
|
blck_maximumItemPriceInAI_Loadouts = 100;
|
||||||
|
|
||||||
blck_allowSalesAtBlackMktTraders = true; // Allow vehicles to be sold at Halvjes black market traders.
|
blck_allowSalesAtBlackMktTraders = true; // Allow vehicles to be sold at Halvjes black market traders.
|
||||||
|
|
||||||
_blck_lightlyArmed_ARMA3 = [
|
_blck_lightlyArmed_ARMA3 = [
|
||||||
|
@ -276,6 +276,8 @@
|
|||||||
****************************************************************/
|
****************************************************************/
|
||||||
// When true, AI loadouts will be set from the class names in CfgPricing rather than the settings in the mod-specific configuration files
|
// 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_useConfigsGeneratedLoadouts = true;
|
||||||
|
blck_logblacklisteditems = true;
|
||||||
|
//blck_maximumitempriceinai_loadouts = 1000;
|
||||||
// lists of black-listed items to be excluded from dynamic loadouts
|
// lists of black-listed items to be excluded from dynamic loadouts
|
||||||
blck_blacklistedVests = [
|
blck_blacklistedVests = [
|
||||||
|
|
||||||
@ -404,8 +406,9 @@
|
|||||||
diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",blck_modType];
|
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";
|
execVM "\q\addons\custom_server\Configs\blck_configs_exile_mil.sqf";
|
||||||
};
|
};
|
||||||
waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"};
|
//waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"};
|
||||||
waitUntil {!isNil "blck_maximumItemPriceInAI_Loadouts"};
|
//waitUntil {!isNil "blck_maximumItemPriceInAI_Loadouts"};
|
||||||
|
uiSleep 10;
|
||||||
if (blck_useConfigsGeneratedLoadouts) then
|
if (blck_useConfigsGeneratedLoadouts) then
|
||||||
{
|
{
|
||||||
diag_log format["[blckeagls] Dynamic Configs Enabled"];
|
diag_log format["[blckeagls] Dynamic Configs Enabled"];
|
||||||
|
@ -152,7 +152,7 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in
|
|||||||
blck_enableGreenMissions = -1;
|
blck_enableGreenMissions = -1;
|
||||||
blck_enableRedMissions = -1;
|
blck_enableRedMissions = -1;
|
||||||
blck_enableBlueMissions = 1;
|
blck_enableBlueMissions = 1;
|
||||||
blck_numberUnderwaterDynamicMissions = 3;
|
blck_numberUnderwaterDynamicMissions = 1;
|
||||||
blck_enableHunterMissions = -1;
|
blck_enableHunterMissions = -1;
|
||||||
blck_enableScoutsMissions = -1;
|
blck_enableScoutsMissions = -1;
|
||||||
blck_maxCrashSites = -3;
|
blck_maxCrashSites = -3;
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
#define useAPEX
|
#define useAPEX
|
||||||
#define blck_milServer
|
#define blck_milServer
|
||||||
#define blck_useCUP
|
//#define blck_useCUP
|
||||||
//#define blck_useRHS
|
//#define blck_useRHS
|
||||||
|
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
|
@ -65,6 +65,7 @@ if (toLower(blck_modType) isEqualTo "exile") then
|
|||||||
};
|
};
|
||||||
//diag_log format["_fnc_dynamicConfigsConfigurator: count _classnameList = %1",count _classnameList];
|
//diag_log format["_fnc_dynamicConfigsConfigurator: count _classnameList = %1",count _classnameList];
|
||||||
{
|
{
|
||||||
|
|
||||||
private _temp = [_x] call bis_fnc_itemType;
|
private _temp = [_x] call bis_fnc_itemType;
|
||||||
//diag_log _temp;
|
//diag_log _temp;
|
||||||
_itemCategory = _temp select 0;
|
_itemCategory = _temp select 0;
|
||||||
@ -80,51 +81,51 @@ if (toLower(blck_modType) isEqualTo "exile") then
|
|||||||
};
|
};
|
||||||
if (_price < blck_maximumItemPriceInAI_Loadouts) then
|
if (_price < blck_maximumItemPriceInAI_Loadouts) then
|
||||||
{
|
{
|
||||||
if (_itemCategory isEqualTo "Weapon") then
|
if (_itemCategory isEqualTo "Weapon") then
|
||||||
{
|
|
||||||
switch (_itemType) do
|
|
||||||
{
|
{
|
||||||
case "AssaultRifle": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnAR pushBack _x}};
|
switch (_itemType) do
|
||||||
case "MachineGun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnLMG pushBack _x}};
|
{
|
||||||
case "SubmachineGun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnSMG pushBack _x}};
|
case "AssaultRifle": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnAR pushBack _x} else {if (blck_logBlacklistedItems) then {diag_log format["Assualt Rifle %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "Shotgun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnShotGun pushBack _x}};
|
case "MachineGun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnLMG pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Machine Gun %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "Rifle": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnAR pushBack _x}};
|
case "SubmachineGun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnSMG pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Submachinegun %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "SniperRifle": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnSniper pushBack _x}};
|
case "Shotgun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnShotGun pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Shotgun %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "Handgun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnHandGun pushBack _x}};
|
case "Rifle": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnAR pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Rifle %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "Launcher": {if !(_x in blck_blacklistedLaunchersAndSwingWeapons) then {_wpnLauncher pushBack _x}};
|
case "SniperRifle": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnSniper pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Sniper Rifle %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "RocketLauncher": {if !(_x in blck_blacklistedLaunchersAndSwingWeapons) then {_wpnLauncher pushBack _x}};
|
case "Handgun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnHandGun pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Handgun %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "Throw": {if !(_x in blck_blacklistedItems) then {_wpnThrow pushBack _x}};
|
case "Launcher": {if !(_x in blck_blacklistedLaunchersAndSwingWeapons) then {_wpnLauncher pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Launcher %1 Excluded: blacklisted Item",_x]}}};
|
||||||
|
case "RocketLauncher": {if !(_x in blck_blacklistedLaunchersAndSwingWeapons) then {_wpnLauncher pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Rocket Launcer %1 Excluded: blacklisted Item",_x]}}};
|
||||||
|
case "Throw": {if !(_x in blck_blacklistedItems) then {_wpnThrow pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Throw %1 Excluded: blacklisted Item",_x]}}};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
if (_itemCategory isEqualTo "Item") then
|
||||||
if (_itemCategory isEqualTo "Item") then
|
|
||||||
{
|
|
||||||
switch (_itemType) do
|
|
||||||
{
|
{
|
||||||
case "AccessoryMuzzle": {if !(_x in blck_blacklistedAttachments) then {_wpnMuzzles pushBack _x}};
|
switch (_itemType) do
|
||||||
case "AccessoryPointer": {if !(_x in blck_blacklistedAttachments) then {_wpnPointers pushBack _x}};
|
{
|
||||||
case "AccessorySights": {if !(_x in blck_blacklistedOptics) then {_wpnOptics pushBack _x}};
|
case "AccessoryMuzzle": {if !(_x in blck_blacklistedAttachments) then {_wpnMuzzles pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Muzzle %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "AccessoryBipod": {if !(_x in blck_blacklistedAttachments) then {_wpnUnderbarrel pushBack _x}};
|
case "AccessoryPointer": {if !(_x in blck_blacklistedAttachments) then {_wpnPointers pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Pointer %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "Binocular": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}};
|
case "AccessorySights": {if !(_x in blck_blacklistedOptics) then {_wpnOptics pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Optic %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "Compass": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}};
|
case "AccessoryBipod": {if !(_x in blck_blacklistedAttachments) then {_wpnUnderbarrel pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Bipod %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "GPS": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}};
|
case "Binocular": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Binocular/Rangefinder/Binocular %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "NVGoggles": {if !(_x in blck_blacklistedItems) then {_NVG pushBack _x}};
|
case "Compass": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Compass %1 Excluded: blacklisted Item",_x]}}};
|
||||||
|
case "GPS": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["GPS %1 Excluded: blacklisted Item",_x]}}};
|
||||||
|
case "NVGoggles": {if !(_x in blck_blacklistedItems) then {_NVG pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["NVG %1 Excluded: blacklisted Item",_x]}}};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
|
if (_itemCategory isEqualTo "Equipment") then
|
||||||
if (_itemCategory isEqualTo "Equipment") then
|
|
||||||
{
|
|
||||||
switch (_itemType) do
|
|
||||||
{
|
{
|
||||||
case "Glasses": {if !(_x in blck_blacklistedItems) then {_glasses pushBack _x}};
|
switch (_itemType) do
|
||||||
case "Headgear": {if !(_x in blck_blacklistedHeadgear) then {_headgear pushBack _x}};
|
{
|
||||||
case "Vest": {if !(_x in blck_blacklistedVests) then {_vests pushBack _x}};
|
case "Glasses": {if !(_x in blck_blacklistedItems) then {_glasses pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Glasses %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "Uniform": {if !(_x in blck_blacklistedUniforms) then {_uniforms pushBack _x}};
|
case "Headgear": {if !(_x in blck_blacklistedHeadgear) then {_headgear pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Headgear %1 Excluded: blacklisted Item",_x]}}};
|
||||||
case "Backpack": {if !(_x in blck_blacklistedBackpacks) then {_backpacks pushBack _x}};
|
case "Vest": {if !(_x in blck_blacklistedVests) then {_vests pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Vest %1 Excluded: blacklisted Item",_x]}}};
|
||||||
|
case "Uniform": {if !(_x in blck_blacklistedUniforms) then {_uniforms pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Uniform %1 Excluded: blacklisted Item",_x]}}};
|
||||||
|
case "Backpack": {if !(_x in blck_blacklistedBackpacks) then {_backpacks pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Backpack %1 Excluded: blacklisted Item",_x]}}};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
} forEach _classnameList;
|
} forEach _classnameList;
|
||||||
|
|
||||||
blck_primaryWeapons = _wpnAR + _wpnLMG + _wpnSMG + _wpnShotGun + _wpnSniper;
|
blck_primaryWeapons = _wpnAR + _wpnLMG + _wpnSMG + _wpnShotGun + _wpnSniper;
|
||||||
|
@ -16,10 +16,10 @@ private ["_staticMissions"];
|
|||||||
_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)];
|
// [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","template.sqf"],
|
//["Epoch","Altis","template.sqf"],
|
||||||
["Epoch","Altis","staticMissionExample2_Epoch.sqf"],
|
//["Epoch","Altis","staticMissionExample2_Epoch.sqf"],
|
||||||
//["Epoch","Altis","destroyer.sqf"],
|
//["Epoch","Altis","destroyer.sqf"],
|
||||||
//["Exile","Altis","template.sqf"],
|
//["Exile","Altis","template.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>";
|
||||||
|
@ -51,6 +51,7 @@ if (isNil "_chanceLoot") then {_chanceLoot = 0};
|
|||||||
if (isNil "_paraTriggerDistance") then {_paraTriggerDistance = 400;};
|
if (isNil "_paraTriggerDistance") then {_paraTriggerDistance = 400;};
|
||||||
if (isNil "_paraLoot") then {_paraLoot = blck_BoxLoot_Blue};
|
if (isNil "_paraLoot") then {_paraLoot = blck_BoxLoot_Blue};
|
||||||
if (isNil "_paraLootCounts") then {_paraLootCounts = blck_lootCountsRed};
|
if (isNil "_paraLootCounts") then {_paraLootCounts = blck_lootCountsRed};
|
||||||
|
if (isNil "_vehicleCrewCount") then {_vehicleCrewCount = [_aiDifficultyLevel] call GMS_fnc_selectVehicleCrewCount};
|
||||||
|
|
||||||
_objects = [];
|
_objects = [];
|
||||||
_mines = [];
|
_mines = [];
|
||||||
@ -259,7 +260,7 @@ _vehToSpawn = 0;
|
|||||||
if (blck_useVehiclePatrols && count _vehiclePatrolParameters > 0) then
|
if (blck_useVehiclePatrols && count _vehiclePatrolParameters > 0) then
|
||||||
{
|
{
|
||||||
// params["_coords","_noVehiclePatrols","_aiDifficultyLevel","_missionPatrolVehicles",["_useRelativePos",true],["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_isScubaGroup",false]];
|
// params["_coords","_noVehiclePatrols","_aiDifficultyLevel","_missionPatrolVehicles",["_useRelativePos",true],["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_isScubaGroup",false]];
|
||||||
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_vehiclePatrolParameters,true,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,false /*,blck_UMS_weapons,blck_UMS_vests,isScubaMission*/ ] call blck_fnc_spawnMissionVehiclePatrols;
|
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_vehiclePatrolParameters,true,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,false,_vehicleCrewCount /*,blck_UMS_weapons,blck_UMS_vests,isScubaMission*/ ] call blck_fnc_spawnMissionVehiclePatrols;
|
||||||
#ifdef blck_debugMode
|
#ifdef blck_debugMode
|
||||||
if (blck_debugLevel > 1) then {
|
if (blck_debugLevel > 1) then {
|
||||||
diag_log format["dynamicUMSspawner :: (251) blck_fnc_spawnMissionVehiclePatrols returned _temp = %1",_temp];
|
diag_log format["dynamicUMSspawner :: (251) blck_fnc_spawnMissionVehiclePatrols returned _temp = %1",_temp];
|
||||||
|
@ -4,4 +4,4 @@ private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_marke
|
|||||||
"_uniforms","_headgear","_weaponList","_sideArms","_vests","_backpacks","_chancePara","_noPara","_chanceHeliPatrol","_noChoppers","_missionHelis",
|
"_uniforms","_headgear","_weaponList","_sideArms","_vests","_backpacks","_chancePara","_noPara","_chanceHeliPatrol","_noChoppers","_missionHelis",
|
||||||
"__noChoppers","_endCondition","_chanceHeliLootDropped","_chanceLoot","_paraTriggerDistance","_paraLootCounts","_paraLoot","_markerColor","_loadCratesTiming",
|
"__noChoppers","_endCondition","_chanceHeliLootDropped","_chanceLoot","_paraTriggerDistance","_paraLootCounts","_paraLoot","_markerColor","_loadCratesTiming",
|
||||||
"_markerType","_useMines","_assetKilledMsg","_enemyLeaderConfig","_hostageConfig","_garrisonedBuildings_BuildingPosnSystem","_garrisonedBuilding_ATLsystem",
|
"_markerType","_useMines","_assetKilledMsg","_enemyLeaderConfig","_hostageConfig","_garrisonedBuildings_BuildingPosnSystem","_garrisonedBuilding_ATLsystem",
|
||||||
"_submarinePatrolParameters","_scubaGroupParameters"];
|
"_submarinePatrolParameters","_scubaGroupParameters","_vehicleCrewCount"];
|
@ -1,16 +1,16 @@
|
|||||||
For V 6.90:
|
For V 6.90:
|
||||||
1. Sort out the issue with the handling of unit kills not separating killer from the killer's vehicle.
|
1. Sort out the issue with the handling of unit kills not separating killer from the killer's vehicle. DONE
|
||||||
2. Test new unlock fix on HC
|
2. Test new unlock fix on HC
|
||||||
3. Write a claim vehicle function.
|
3. Write a claim vehicle function.
|
||||||
4. End of development most likely.
|
4. End of development most likely.
|
||||||
5. be sure AI do heal when wounded but not killed.
|
5. be sure AI do heal when wounded but not killed.
|
||||||
6. test that ai toss smoke when healing
|
6. test that ai toss smoke when healing
|
||||||
7. Set up queue for markers needing to be deleted.
|
7. Set up queue for markers needing to be deleted. DONE
|
||||||
need to call something that quickly scans for markers that need to be deleted
|
need to call something that quickly scans for markers that need to be deleted
|
||||||
need to push temp markers to the cue with delete times.
|
need to push temp markers to the cue with delete times. DONE
|
||||||
8. add a quick thing for refreshing flares on crates to replace all those uisleeps
|
8. add a quick thing for refreshing flares on crates to replace all those uisleeps
|
||||||
do this in _signalEnd and _crateMarker
|
do this in _signalEnd and _crateMarker DONE
|
||||||
replace _crateMarker with calls to signalEnd.
|
replace _crateMarker with calls to signalEnd. DONE
|
||||||
9. Check that trader zones are detected properly in Exile.
|
9. Check that trader zones are detected properly in Exile.
|
||||||
Todo:
|
Todo:
|
||||||
☐ Item
|
☐ Item: add check for empty crew slots and delete excess crew
|
||||||
|
Loading…
Reference in New Issue
Block a user