Reverted to old allPlayers logic.
Do NOT use arrays to give a range for numbers of vehicles, aircraft or
static weps. This functionality is bugged.
Several minor bugs were corrected.
This commit is contained in:
Ghostrider-DbD- 2017-08-16 23:00:42 -04:00
parent 35263b75e6
commit f646fd9159
24 changed files with 206 additions and 138 deletions

View File

@ -1,10 +1,10 @@
//////////////////////////////////////////////////////
// Returns an array of all players on the server
/*
for DBD Clan
By Ghostrider-DBD-
Copyright 2016
Last Modified 8/12/17
Last Modified 8/16/17
--------------------------
License
--------------------------
@ -17,11 +17,11 @@
private ["_result"];
/*
_result = [];
{
if (isPlayer _x) then { _result pushback _x };
if (isPlayer _x && alive _x) then { _result pushback _x };
} forEach playableUnits;
*/
_result = allPlayers;
//_result = allPlayers;
_result

View File

@ -1,6 +1,6 @@
/*
By Ghostrider-DbD-
Last modified 4-5-17
Last modified 8-15-17
--------------------------
License
--------------------------
@ -39,6 +39,7 @@ while {true} do
{
_timer5sec = diag_tickTime;
[] call blck_fnc_missionGroupMonitor;
//[] call blck_fnc_sm_checkForPlayerNearMission;
};
if (diag_tickTime - _timer20sec > 20) then
{
@ -53,10 +54,13 @@ while {true} do
_timer1min = diag_tickTime;
[] call blck_fnc_spawnPendingMissions;
//[] call blck_fnc_missionGroupMonitor;
/*
// No longer needed
if (_modType isEqualTo "Epoch") then
{
[] call blck_fnc_cleanEmptyGroups;
}; // Exile cleans up empty groups automatically so this should not be needed with that mod.
*/
};
if (blck_useTimeAcceleration) then
{

View File

@ -36,7 +36,7 @@ if (blck_debugLevel > 1) then
};
#endif
_groupSpawned = createGroup blck_AI_Side;
_groupSpawned = createGroup [blck_AI_Side, true]; // true here causes any empty group to be automatically deleted within 1 sec or so. https://community.bistudio.com/wiki/createGroup
#ifdef blck_debugMode
if (blck_debugLevel > 1) then

View File

@ -245,13 +245,15 @@ if (blck_debugLevel > 0) then
};
#endif
uiSleep 3;
_temp = [[],[],false];
_abort = false;
private["_patrolVehicles","_vehToSpawn"];
_vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange;
diag_log format["_missionSpawner:: _vehToSpawn = %1",_vehToSpawn];
if (blck_useVehiclePatrols && (_vehToSpawn > 0)) then
{
_temp = [_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
//[_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then {
@ -297,8 +299,10 @@ _abort = false;
if (blck_debugLevel > 0) then {diag_log format["missionSpawner:: (234) preparing to spawn emplaced weapons for _coords %4 | _markerClass %3 | blck_useStatic = %1 | _noEmplacedWeapons = %2",blck_useStatic,_noEmplacedWeapons,_markerClass,_coords];};
#endif
uiSleep 3;
private["_noEmplacedToSpawn"];
_noEmplacedToSpawn = [_noEmplacedWeapons] call blck_fnc_getNumberFromRange;
diag_log format["_missionSpawner:: _noEmplacedToSpawn = %1",_vehToSpawn];
if (blck_useStatic && (_noEmplacedToSpawn > 0)) then
{
// params["_missionEmplacedWeapons","_noEmplacedWeapons","_aiDifficultyLevel","_coords","_uniforms","_headGear"];
@ -349,6 +353,7 @@ if (_abort) exitWith
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true,_patrolVehicles] call blck_fnc_endMission;
};
uiSleep 3;
if (_allowReinforcements) then
{
_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
@ -360,20 +365,33 @@ if (_allowReinforcements) then
diag_log format["[blckeagls] missionSpawner:: (268) calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
private _noChoppers = 3;
private _noChoppers = 0;
private _chancePara = 0.5;
switch (toLower _aiDifficultyLevel) do
{
case "blue":{_noChoppers = [blck_noPatrolHelisBlue] call blck_fnc_getNumberFromRange};
case "red":{_noChoppers = [blck_noPatrolHelisRed] call blck_fnc_getNumberFromRange};
case "green":{_noChoppers = [blck_noPatrolHelisGreen] call blck_fnc_getNumberFromRange};
case "orange":{_noChoppers = [blck_noPatrolHelisOrange] call blck_fnc_getNumberFromRange};
case "blue":{
_noChoppers = [blck_noPatrolHelisBlue] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaBlue] call blck_fnc_getNumberFromRange;
};
case "red":{
_noChoppers = [blck_noPatrolHelisRed] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaRed] call blck_fnc_getNumberFromRange;
};
case "green":{
_noChoppers = [blck_noPatrolHelisGreen] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaGreen] call blck_fnc_getNumberFromRange;
};
case "orange":{
_noChoppers = [blck_noPatrolHelisOrange] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaOrange] call blck_fnc_getNumberFromRange;
};
};
diag_log format["_missionSpawner:: _noChoppers = %1 && _chancePara = %2",_noChoppers,_chancePara];
for "_i" from 1 to (_noChoppers) do
{
//params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"];
_temp = [_coords,_aiDifficultyLevel,_weaponList,_uniforms,_headGear] call blck_fnc_spawnMissionReinforcements;
_temp = [_coords,_aiDifficultyLevel,_weaponList,_uniforms,_headGear,_chancePara] call blck_fnc_spawnMissionReinforcements;
#ifdef blck_debugMode
if (blck_debugLevel >= 2) then

View File

@ -2,7 +2,7 @@
for DBD Clan
By Ghostrider-DBD-
Copyright 2016
Last Modified 3-17-17
Last Modified 8-15-17
--------------------------
License
@ -13,14 +13,17 @@
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
//params["_coords","_skillAI","_weapons","_uniforms","_headGear","_helis"];
params["_coords","_skillAI","_weapons","_uniforms","_headGear","_helis",["_chanceParas",0]];
/*
_coords = _this select 0;
_skillAI = _this select 1;
_weapons = _this select 2;
_uniforms = _this select 3;
_headGear = _this select 4;
_helis = _this select 5;
*/
diag_log format["_fnc_spawnMissionHeli:: _this = %1",_this];
diag_log format["_fnc_spawnMissionHeli:: _helis = %1 && _chanceParas = %2",_helis,_chanceParas];
/*
Handles upper level functions of reinforcements utilizing helicoptor patrols and/or spawned from a helicopter.
Calls on functions that spawn paratroops and/or loot chests at the heli's location.
@ -28,7 +31,7 @@ _helis = _this select 5;
Tasks are:
1) spawn a heli over the mission center.
2) add crew and gunners
3) spawn paratroops
3) spawn paratroops if needed
4) configure waypointScript
5) return the _heli that was spawned.
*/
@ -41,6 +44,7 @@ if (blck_debugLevel > 0) then
private["_grpPilot","_chopperType","_patrolHeli","_launcherType","_unitPilot","_unitCrew","_mags","_turret","_return","_abort"];
_abort = false;
_grpParatroops = grpNull;
_grpPilot = createGroup blck_AI_Side;
if (isNull _grpPilot) then
{
@ -48,13 +52,7 @@ if (isNull _grpPilot) then
_abort = true;
};
_grpParatroops = createGroup blck_AI_Side;
if (isNull _grpParatroops) then
{
diag_log "BLCK_ERROR: _fnc_spawnMissionHeli::_->> NULL GROUP Returned for _grpParatroops";
_abort = true;
};
if (!(isNull _grpPilot) && !(isNull _grpParatroops)) then
if !(isNull _grpPilot) then
{
_grpPilot setBehaviour "COMBAT";
_grpPilot setCombatMode "RED";
@ -70,7 +68,9 @@ if (!(isNull _grpPilot) && !(isNull _grpParatroops)) then
private["_supplyHeli"];
//create helicopter and spawn it
_chopperType = selectRandom _helis;
if (( typeName _helis) isEqualTo "ARRAY") then {_chopperType = selectRandom _helis}
else
{_chopperType = _helis};
#ifdef blck_debugMode
if (blck_debugLevel > 1) then
@ -156,15 +156,23 @@ if (!(isNull _grpPilot) && !(isNull _grpParatroops)) then
};
#endif
if (random(1) < _chanceParas) then
{
_grpParatroops = createGroup blck_AI_Side;
if (isNull _grpParatroops) then
{
diag_log "BLCK_ERROR: _fnc_spawnMissionHeli::_->> NULL GROUP Returned for _grpParatroops";
_abort = true;
};
// params["_missionPos","_paraGroup",["_numAI",3],"_skillAI","_weapons","_uniforms","_headGear",["_heli",objNull],_grpParatroops];
//params["_coords","_skillAI","_weapons","_uniforms","_headGear",["_grpParatroops",grpNull],["_heli",objNull]];
if !(isNull _grpParatroops) then
{
[_coords,_skillAI,_weapons,_uniforms,_headGear,_grpParatroops,_patrolHeli] call blck_fnc_spawnMissionParatroops;
};
};
//set waypoint for helicopter
[_coords,30,35,_grpPilot,"random","SENTRY"] spawn blck_fnc_setupWaypoints;
[_coords,30,35,_grpPilot,"random","SAD"] spawn blck_fnc_setupWaypoints;
blck_monitoredMissionAIGroups pushBack _grpPilot;
#ifdef blck_debugMode
@ -186,7 +194,9 @@ if (!(isNull _grpPilot) && !(isNull _grpParatroops)) then
};
private["_ai"];
_ai = (units _grpParatroops) + (units _grpPilot);
_ai = (units _grpPilot);
if !(isNull _grpParatroops) then {_ai = _ai + (units _grpParatroops);};
_return = [_patrolHeli,_ai,_abort];
#ifdef blck_debugMode

View File

@ -19,12 +19,12 @@ params["_coords","_skillAI","_weapons","_uniforms","_headGear",["_grpParatroops"
private["_grpParatroops","_chanceParatroops","_aborted","_return"];
_aiSkillsLevel = toLower _aiSkillsLevel;
_skillAI = toLower _skillAI;
_chanceParatroops = 0;
_noPara = 0;
_aborted = false;
if (_aiSkillsLevel isEqualTo "blue") then {
if (_skillAI isEqualTo "blue") then {
#ifdef blck_debugMode
if (blck_debugON) then {diag_log "_fnc_spawnMissionParatroops: BLUE difficulty settings applied";};
@ -33,7 +33,7 @@ if (_aiSkillsLevel isEqualTo "blue") then {
_chanceParatroops = blck_chanceParaBlue;
_noPara = blck_noParaBlue;
};
if (_aiSkillsLevel isEqualTo "green") then {
if (_skillAI isEqualTo "green") then {
#ifdef blck_debugMode
if (blck_debugON) then {diag_log "_fnc_spawnMissionParatroops: GREEN difficulty settings applied";};
@ -42,7 +42,7 @@ if (_aiSkillsLevel isEqualTo "green") then {
_chanceParatroops = blck_chanceParaGreen;
_noPara = blck_noParaGreen;
};
if (_aiSkillsLevel isEqualTo "orange") then {
if (_skillAI isEqualTo "orange") then {
#ifdef blck_debugMode
if (blck_debugON) then {diag_log "_fnc_spawnMissionParatroops: ORANGE difficulty settings applied";};
@ -51,7 +51,7 @@ if (_aiSkillsLevel isEqualTo "orange") then {
_chanceParatroops = blck_chanceParaOrange;
_noPara = blck_noParaOrange;
};
if (_aiSkillsLevel isEqualTo "red") then {
if (_skillAI isEqualTo "red") then {
#ifdef blck_debugMode
if (blck_debugON) then {diag_log "_fnc_spawnMissionParatroops: RED difficulty settings applied";};

View File

@ -1,8 +1,8 @@
/*
for DBD Clan
By Ghostrider-DBD-
Copyright 2016
Last Modified 3-17-17
Last Modified 8-16-17
--------------------------
License
@ -13,12 +13,14 @@
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
//params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"];
params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear",["_chancePara",0]];
/*
_coords = _this select 0;
_aiSkillsLevel = _this select 1;
_weapons = _this select 2;
_uniforms = _this select 3;
_headgear = _this select 4;
*/
private["_chanceHeliPatrol","_return","_temp","_missionHelis"];
#ifdef blck_debugMode
@ -71,8 +73,8 @@ if ( (_chanceHeliPatrol > 0) && (random (1) < _chanceHeliPatrol) ) then // if he
diag_log "_fnc_spawnMissionReinforcements (64): calling _fnc_spawnMissionHeli to spawn heli and paratroops";
};
#endif
_temp = [_coords,_aiSkillsLevel,_weapons,_uniforms,_headgear,_missionHelis] call blck_fnc_spawnMissionHeli;
// params["_coords","_skillAI","_weapons","_uniforms","_headGear","_helis",["_chanceParas",0]];
_temp = [_coords,_aiSkillsLevel,_weapons,_uniforms,_headgear,_missionHelis,_chancePara] call blck_fnc_spawnMissionHeli;
if (typeName _temp isEqualTo "ARRAY") then
{
_return = [_temp select 0, _temp select 1, _temp select 2];

View File

@ -12,8 +12,8 @@
*/
#include"\q\addons\custom_server\Configs\blck_defines.hpp";
blck_debugON = true;
blck_debugLevel = 3; // Sets level of detail for debugging info - WIP.
blck_debugON = false;
blck_debugLevel = 0; // Sets level of detail for debugging info - WIP.
blck_minFPS = 10;
////////////////////////////////////////////////

View File

@ -113,7 +113,7 @@
// The behavior of these can be linked to some degree to the spawning of patrolling helis.
// For example, if you always want a helicopter to spawn paratroops set the value 1.
// Recommended that you disable paratroops if using muliple aircraft/vehicle patrols
blck_chanceParaBlue = 0; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission.
blck_chanceParaBlue = 0; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission. This value can be a range as well [0.1,0.3]
blck_noParaBlue = 3; // [1-N]
blck_chanceParaRed = 0;
@ -165,11 +165,11 @@
blck_chanceHeliPatrolGreen = 0.4;
blck_patrolHelisGreen = _blck_littleBirds;
blck_noPatrolHelisGreen = [1,1];
blck_noPatrolHelisGreen = 1;
blck_chanceHeliPatrolOrange = 0.5;
blck_patrolHelisOrange = _blck_armed_hellcats+_blck_armed_orcas;
blck_noPatrolHelisOrange = [1,1];
blck_noPatrolHelisOrange = 1;
////////////////////
// Enable / Disable Missions
@ -233,8 +233,8 @@
// Mission Vehicle Settings
////////////////////
//Defines how many AI Vehicles to spawn. Set this to -1 to disable spawning of static weapons or vehicles. To discourage players runniing with with vehicles, spawn more B_GMG_01_high
blck_SpawnVeh_Orange = [2,4]; // Number of static weapons at Orange Missions
blck_SpawnVeh_Green = 2; // Number of static weapons at Green Missions
blck_SpawnVeh_Orange = 3; // Number of static weapons at Orange Missions
blck_SpawnVeh_Green = 3; // Number of static weapons at Green Missions
blck_SpawnVeh_Blue = -1; // Number of static weapons at Blue Missions
blck_SpawnVeh_Red = 1; // Number of static weapons at Red Missions
@ -251,8 +251,8 @@
////////////////////
// Defines how many static weapons to spawn. Set this to -1 to disable spawning
blck_SpawnEmplaced_Orange = [2,4]; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 2; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Orange = 3; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 3; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
blck_SpawnEmplaced_Red = 1; // Number of static weapons at Red Missions
@ -357,7 +357,7 @@
blck_MaxAI_Orange = 25;
blck_AIGrps_Orange = 5;
blck_SkillsOrange = [
["aimingAccuracy",[0.45,0.56]],["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]
["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
@ -365,7 +365,7 @@
blck_MaxAI_Green = 21;
blck_AIGrps_Green = 4;
blck_SkillsGreen = [
["aimingAccuracy",[0.35,0.45]],["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]
["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
@ -373,7 +373,7 @@
blck_MaxAI_Red = 15;
blck_AIGrps_Red = 3;
blck_SkillsRed = [
["aimingAccuracy",[0.25,0.35]],["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]
["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

View File

@ -52,12 +52,12 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
//"Exile_Car_HMMWV_M134_Green",
//"Exile_Car_HMMWV_M134_Desert",
//"Exile_Car_HMMWV_M134_Desert",
//"Exile_Car_HMMWV_M2_Desert",
//"B_LSV_01_armed_F",
"Exile_Car_HMMWV_M2_Desert",
"B_LSV_01_armed_F",
//"_MRAP_02_gmg_ghex_F",
//"O_MRAP_02_hmg_ghex_F",
//"O_MRAP_03_gmg_ghex_F",
"O_MRAP_03_hmg_ghex_F",
//"O_MRAP_03_hmg_ghex_F",
"B_MBT_01_cannon_F",
//"B_MBT_01_mlrs_base_F",
"B_MBT_01_mlrs_F",

View File

@ -170,11 +170,11 @@
blck_chanceHeliPatrolGreen = 0.9999;
blck_patrolHelisGreen = _blck_armed_heavyAttackHelis+_blck_armed_ghosthawks;
blck_noPatrolHelisGreen = 2;
blck_noPatrolHelisGreen = 2; //[1,3];
blck_chanceHeliPatrolOrange = 0.9999;
blck_patrolHelisOrange = _blck_armed_heavyAttackHelis + _blck_fighters;
blck_noPatrolHelisOrange = 3;
blck_noPatrolHelisOrange = 3; //[2,3];
////////////////////
// Enable / Disable Missions
@ -238,8 +238,8 @@
// Mission Vehicle Settings
////////////////////
//Defines how many AI Vehicles to spawn. Set this to -1 to disable spawning of static weapons or vehicles. To discourage players runniing with with vehicles, spawn more B_GMG_01_high
blck_SpawnVeh_Orange = [3,5]; // Number of static weapons at Orange Missions
blck_SpawnVeh_Green = [3,4]; // Number of static weapons at Green Missions
blck_SpawnVeh_Orange = 4; //[3,5]; // Number of static weapons at Orange Missions
blck_SpawnVeh_Green = 3; //[3,4]; // Number of static weapons at Green Missions
blck_SpawnVeh_Blue = -1; // Number of static weapons at Blue Missions
blck_SpawnVeh_Red = 2; // Number of static weapons at Red Missions
@ -256,8 +256,8 @@
////////////////////
// Defines how many static weapons to spawn. Set this to -1 to disable spawning
blck_SpawnEmplaced_Orange = [3,5]; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = [3,4]; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Orange = 4; //[3,5]; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 3; //[3,4]; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
blck_SpawnEmplaced_Red = 2; // Number of static weapons at Red Missions

View File

@ -1,3 +1,3 @@
private ["_version","_versionDate"];
_blck_version = "6.61 Build 71";
_blck_versionDate = "8-13-17 9:00 PM";
_blck_version = "6.61 Build 72";
_blck_versionDate = "8-15-17 9:00 PM";

View File

@ -1,10 +1,10 @@
//////////////////////////////////////////////////////
// Returns an array of all players on the server
/*
for DBD Clan
By Ghostrider-DBD-
Copyright 2016
Last Modified 8/12/17
Last Modified 8/16/17
--------------------------
License
--------------------------
@ -17,11 +17,11 @@
private ["_result"];
/*
_result = [];
{
if (isPlayer _x) then { _result pushback _x };
if (isPlayer _x && alive _x) then { _result pushback _x };
} forEach playableUnits;
*/
_result = allPlayers;
//_result = allPlayers;
_result

View File

@ -1,6 +1,6 @@
/*
By Ghostrider-DbD-
Last modified 4-5-17
Last modified 8-15-17
--------------------------
License
--------------------------
@ -39,6 +39,7 @@ while {true} do
{
_timer5sec = diag_tickTime;
[] call blck_fnc_missionGroupMonitor;
//[] call blck_fnc_sm_checkForPlayerNearMission;
};
if (diag_tickTime - _timer20sec > 20) then
{
@ -53,10 +54,13 @@ while {true} do
_timer1min = diag_tickTime;
[] call blck_fnc_spawnPendingMissions;
//[] call blck_fnc_missionGroupMonitor;
/*
// No longer needed
if (_modType isEqualTo "Epoch") then
{
[] call blck_fnc_cleanEmptyGroups;
}; // Exile cleans up empty groups automatically so this should not be needed with that mod.
*/
};
if (blck_useTimeAcceleration) then
{

View File

@ -36,7 +36,7 @@ if (blck_debugLevel > 1) then
};
#endif
_groupSpawned = createGroup blck_AI_Side;
_groupSpawned = createGroup [blck_AI_Side, true]; // true here causes any empty group to be automatically deleted within 1 sec or so. https://community.bistudio.com/wiki/createGroup
#ifdef blck_debugMode
if (blck_debugLevel > 1) then

View File

@ -245,13 +245,15 @@ if (blck_debugLevel > 0) then
};
#endif
uiSleep 3;
_temp = [[],[],false];
_abort = false;
private["_patrolVehicles","_vehToSpawn"];
_vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange;
diag_log format["_missionSpawner:: _vehToSpawn = %1",_vehToSpawn];
if (blck_useVehiclePatrols && (_vehToSpawn > 0)) then
{
_temp = [_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
//[_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then {
@ -297,8 +299,10 @@ _abort = false;
if (blck_debugLevel > 0) then {diag_log format["missionSpawner:: (234) preparing to spawn emplaced weapons for _coords %4 | _markerClass %3 | blck_useStatic = %1 | _noEmplacedWeapons = %2",blck_useStatic,_noEmplacedWeapons,_markerClass,_coords];};
#endif
uiSleep 3;
private["_noEmplacedToSpawn"];
_noEmplacedToSpawn = [_noEmplacedWeapons] call blck_fnc_getNumberFromRange;
diag_log format["_missionSpawner:: _noEmplacedToSpawn = %1",_vehToSpawn];
if (blck_useStatic && (_noEmplacedToSpawn > 0)) then
{
// params["_missionEmplacedWeapons","_noEmplacedWeapons","_aiDifficultyLevel","_coords","_uniforms","_headGear"];
@ -349,6 +353,7 @@ if (_abort) exitWith
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true,_patrolVehicles] call blck_fnc_endMission;
};
uiSleep 3;
if (_allowReinforcements) then
{
_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
@ -360,20 +365,33 @@ if (_allowReinforcements) then
diag_log format["[blckeagls] missionSpawner:: (268) calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
private _noChoppers = 3;
private _noChoppers = 0;
private _chancePara = 0.5;
switch (toLower _aiDifficultyLevel) do
{
case "blue":{_noChoppers = [blck_noPatrolHelisBlue] call blck_fnc_getNumberFromRange};
case "red":{_noChoppers = [blck_noPatrolHelisRed] call blck_fnc_getNumberFromRange};
case "green":{_noChoppers = [blck_noPatrolHelisGreen] call blck_fnc_getNumberFromRange};
case "orange":{_noChoppers = [blck_noPatrolHelisOrange] call blck_fnc_getNumberFromRange};
case "blue":{
_noChoppers = [blck_noPatrolHelisBlue] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaBlue] call blck_fnc_getNumberFromRange;
};
case "red":{
_noChoppers = [blck_noPatrolHelisRed] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaRed] call blck_fnc_getNumberFromRange;
};
case "green":{
_noChoppers = [blck_noPatrolHelisGreen] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaGreen] call blck_fnc_getNumberFromRange;
};
case "orange":{
_noChoppers = [blck_noPatrolHelisOrange] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaOrange] call blck_fnc_getNumberFromRange;
};
};
diag_log format["_missionSpawner:: _noChoppers = %1 && _chancePara = %2",_noChoppers,_chancePara];
for "_i" from 1 to (_noChoppers) do
{
//params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"];
_temp = [_coords,_aiDifficultyLevel,_weaponList,_uniforms,_headGear] call blck_fnc_spawnMissionReinforcements;
_temp = [_coords,_aiDifficultyLevel,_weaponList,_uniforms,_headGear,_chancePara] call blck_fnc_spawnMissionReinforcements;
#ifdef blck_debugMode
if (blck_debugLevel >= 2) then

View File

@ -2,7 +2,7 @@
for DBD Clan
By Ghostrider-DBD-
Copyright 2016
Last Modified 3-17-17
Last Modified 8-15-17
--------------------------
License
@ -13,14 +13,17 @@
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
//params["_coords","_skillAI","_weapons","_uniforms","_headGear","_helis"];
params["_coords","_skillAI","_weapons","_uniforms","_headGear","_helis",["_chanceParas",0]];
/*
_coords = _this select 0;
_skillAI = _this select 1;
_weapons = _this select 2;
_uniforms = _this select 3;
_headGear = _this select 4;
_helis = _this select 5;
*/
diag_log format["_fnc_spawnMissionHeli:: _this = %1",_this];
diag_log format["_fnc_spawnMissionHeli:: _helis = %1 && _chanceParas = %2",_helis,_chanceParas];
/*
Handles upper level functions of reinforcements utilizing helicoptor patrols and/or spawned from a helicopter.
Calls on functions that spawn paratroops and/or loot chests at the heli's location.
@ -28,7 +31,7 @@ _helis = _this select 5;
Tasks are:
1) spawn a heli over the mission center.
2) add crew and gunners
3) spawn paratroops
3) spawn paratroops if needed
4) configure waypointScript
5) return the _heli that was spawned.
*/
@ -41,6 +44,7 @@ if (blck_debugLevel > 0) then
private["_grpPilot","_chopperType","_patrolHeli","_launcherType","_unitPilot","_unitCrew","_mags","_turret","_return","_abort"];
_abort = false;
_grpParatroops = grpNull;
_grpPilot = createGroup blck_AI_Side;
if (isNull _grpPilot) then
{
@ -48,13 +52,7 @@ if (isNull _grpPilot) then
_abort = true;
};
_grpParatroops = createGroup blck_AI_Side;
if (isNull _grpParatroops) then
{
diag_log "BLCK_ERROR: _fnc_spawnMissionHeli::_->> NULL GROUP Returned for _grpParatroops";
_abort = true;
};
if (!(isNull _grpPilot) && !(isNull _grpParatroops)) then
if !(isNull _grpPilot) then
{
_grpPilot setBehaviour "COMBAT";
_grpPilot setCombatMode "RED";
@ -70,7 +68,9 @@ if (!(isNull _grpPilot) && !(isNull _grpParatroops)) then
private["_supplyHeli"];
//create helicopter and spawn it
_chopperType = selectRandom _helis;
if (( typeName _helis) isEqualTo "ARRAY") then {_chopperType = selectRandom _helis}
else
{_chopperType = _helis};
#ifdef blck_debugMode
if (blck_debugLevel > 1) then
@ -156,15 +156,23 @@ if (!(isNull _grpPilot) && !(isNull _grpParatroops)) then
};
#endif
if (random(1) < _chanceParas) then
{
_grpParatroops = createGroup blck_AI_Side;
if (isNull _grpParatroops) then
{
diag_log "BLCK_ERROR: _fnc_spawnMissionHeli::_->> NULL GROUP Returned for _grpParatroops";
_abort = true;
};
// params["_missionPos","_paraGroup",["_numAI",3],"_skillAI","_weapons","_uniforms","_headGear",["_heli",objNull],_grpParatroops];
//params["_coords","_skillAI","_weapons","_uniforms","_headGear",["_grpParatroops",grpNull],["_heli",objNull]];
if !(isNull _grpParatroops) then
{
[_coords,_skillAI,_weapons,_uniforms,_headGear,_grpParatroops,_patrolHeli] call blck_fnc_spawnMissionParatroops;
};
};
//set waypoint for helicopter
[_coords,30,35,_grpPilot,"random","SENTRY"] spawn blck_fnc_setupWaypoints;
[_coords,30,35,_grpPilot,"random","SAD"] spawn blck_fnc_setupWaypoints;
blck_monitoredMissionAIGroups pushBack _grpPilot;
#ifdef blck_debugMode
@ -186,7 +194,9 @@ if (!(isNull _grpPilot) && !(isNull _grpParatroops)) then
};
private["_ai"];
_ai = (units _grpParatroops) + (units _grpPilot);
_ai = (units _grpPilot);
if !(isNull _grpParatroops) then {_ai = _ai + (units _grpParatroops);};
_return = [_patrolHeli,_ai,_abort];
#ifdef blck_debugMode

View File

@ -19,12 +19,12 @@ params["_coords","_skillAI","_weapons","_uniforms","_headGear",["_grpParatroops"
private["_grpParatroops","_chanceParatroops","_aborted","_return"];
_aiSkillsLevel = toLower _aiSkillsLevel;
_skillAI = toLower _skillAI;
_chanceParatroops = 0;
_noPara = 0;
_aborted = false;
if (_aiSkillsLevel isEqualTo "blue") then {
if (_skillAI isEqualTo "blue") then {
#ifdef blck_debugMode
if (blck_debugON) then {diag_log "_fnc_spawnMissionParatroops: BLUE difficulty settings applied";};
@ -33,7 +33,7 @@ if (_aiSkillsLevel isEqualTo "blue") then {
_chanceParatroops = blck_chanceParaBlue;
_noPara = blck_noParaBlue;
};
if (_aiSkillsLevel isEqualTo "green") then {
if (_skillAI isEqualTo "green") then {
#ifdef blck_debugMode
if (blck_debugON) then {diag_log "_fnc_spawnMissionParatroops: GREEN difficulty settings applied";};
@ -42,7 +42,7 @@ if (_aiSkillsLevel isEqualTo "green") then {
_chanceParatroops = blck_chanceParaGreen;
_noPara = blck_noParaGreen;
};
if (_aiSkillsLevel isEqualTo "orange") then {
if (_skillAI isEqualTo "orange") then {
#ifdef blck_debugMode
if (blck_debugON) then {diag_log "_fnc_spawnMissionParatroops: ORANGE difficulty settings applied";};
@ -51,7 +51,7 @@ if (_aiSkillsLevel isEqualTo "orange") then {
_chanceParatroops = blck_chanceParaOrange;
_noPara = blck_noParaOrange;
};
if (_aiSkillsLevel isEqualTo "red") then {
if (_skillAI isEqualTo "red") then {
#ifdef blck_debugMode
if (blck_debugON) then {diag_log "_fnc_spawnMissionParatroops: RED difficulty settings applied";};

View File

@ -1,8 +1,8 @@
/*
for DBD Clan
By Ghostrider-DBD-
Copyright 2016
Last Modified 3-17-17
Last Modified 8-16-17
--------------------------
License
@ -13,12 +13,14 @@
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
//params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"];
params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear",["_chancePara",0]];
/*
_coords = _this select 0;
_aiSkillsLevel = _this select 1;
_weapons = _this select 2;
_uniforms = _this select 3;
_headgear = _this select 4;
*/
private["_chanceHeliPatrol","_return","_temp","_missionHelis"];
#ifdef blck_debugMode
@ -71,8 +73,8 @@ if ( (_chanceHeliPatrol > 0) && (random (1) < _chanceHeliPatrol) ) then // if he
diag_log "_fnc_spawnMissionReinforcements (64): calling _fnc_spawnMissionHeli to spawn heli and paratroops";
};
#endif
_temp = [_coords,_aiSkillsLevel,_weapons,_uniforms,_headgear,_missionHelis] call blck_fnc_spawnMissionHeli;
// params["_coords","_skillAI","_weapons","_uniforms","_headGear","_helis",["_chanceParas",0]];
_temp = [_coords,_aiSkillsLevel,_weapons,_uniforms,_headgear,_missionHelis,_chancePara] call blck_fnc_spawnMissionHeli;
if (typeName _temp isEqualTo "ARRAY") then
{
_return = [_temp select 0, _temp select 1, _temp select 2];

View File

@ -12,8 +12,8 @@
*/
#include"\q\addons\custom_server\Configs\blck_defines.hpp";
blck_debugON = true;
blck_debugLevel = 3; // Sets level of detail for debugging info - WIP.
blck_debugON = false;
blck_debugLevel = 0; // Sets level of detail for debugging info - WIP.
blck_minFPS = 10;
////////////////////////////////////////////////

View File

@ -113,7 +113,7 @@
// The behavior of these can be linked to some degree to the spawning of patrolling helis.
// For example, if you always want a helicopter to spawn paratroops set the value 1.
// Recommended that you disable paratroops if using muliple aircraft/vehicle patrols
blck_chanceParaBlue = 0; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission.
blck_chanceParaBlue = 0; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission. This value can be a range as well [0.1,0.3]
blck_noParaBlue = 3; // [1-N]
blck_chanceParaRed = 0;
@ -165,11 +165,11 @@
blck_chanceHeliPatrolGreen = 0.4;
blck_patrolHelisGreen = _blck_littleBirds;
blck_noPatrolHelisGreen = [1,1];
blck_noPatrolHelisGreen = 1;
blck_chanceHeliPatrolOrange = 0.5;
blck_patrolHelisOrange = _blck_armed_hellcats+_blck_armed_orcas;
blck_noPatrolHelisOrange = [1,1];
blck_noPatrolHelisOrange = 1;
////////////////////
// Enable / Disable Missions
@ -233,8 +233,8 @@
// Mission Vehicle Settings
////////////////////
//Defines how many AI Vehicles to spawn. Set this to -1 to disable spawning of static weapons or vehicles. To discourage players runniing with with vehicles, spawn more B_GMG_01_high
blck_SpawnVeh_Orange = [2,4]; // Number of static weapons at Orange Missions
blck_SpawnVeh_Green = 2; // Number of static weapons at Green Missions
blck_SpawnVeh_Orange = 3; // Number of static weapons at Orange Missions
blck_SpawnVeh_Green = 3; // Number of static weapons at Green Missions
blck_SpawnVeh_Blue = -1; // Number of static weapons at Blue Missions
blck_SpawnVeh_Red = 1; // Number of static weapons at Red Missions
@ -251,8 +251,8 @@
////////////////////
// Defines how many static weapons to spawn. Set this to -1 to disable spawning
blck_SpawnEmplaced_Orange = [2,4]; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 2; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Orange = 3; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 3; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
blck_SpawnEmplaced_Red = 1; // Number of static weapons at Red Missions
@ -357,7 +357,7 @@
blck_MaxAI_Orange = 25;
blck_AIGrps_Orange = 5;
blck_SkillsOrange = [
["aimingAccuracy",[0.45,0.56]],["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]
["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
@ -365,7 +365,7 @@
blck_MaxAI_Green = 21;
blck_AIGrps_Green = 4;
blck_SkillsGreen = [
["aimingAccuracy",[0.35,0.45]],["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]
["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
@ -373,7 +373,7 @@
blck_MaxAI_Red = 15;
blck_AIGrps_Red = 3;
blck_SkillsRed = [
["aimingAccuracy",[0.25,0.35]],["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]
["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

View File

@ -52,12 +52,12 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
//"Exile_Car_HMMWV_M134_Green",
//"Exile_Car_HMMWV_M134_Desert",
//"Exile_Car_HMMWV_M134_Desert",
//"Exile_Car_HMMWV_M2_Desert",
//"B_LSV_01_armed_F",
"Exile_Car_HMMWV_M2_Desert",
"B_LSV_01_armed_F",
//"_MRAP_02_gmg_ghex_F",
//"O_MRAP_02_hmg_ghex_F",
//"O_MRAP_03_gmg_ghex_F",
"O_MRAP_03_hmg_ghex_F",
//"O_MRAP_03_hmg_ghex_F",
"B_MBT_01_cannon_F",
//"B_MBT_01_mlrs_base_F",
"B_MBT_01_mlrs_F",

View File

@ -170,11 +170,11 @@
blck_chanceHeliPatrolGreen = 0.9999;
blck_patrolHelisGreen = _blck_armed_heavyAttackHelis+_blck_armed_ghosthawks;
blck_noPatrolHelisGreen = 2;
blck_noPatrolHelisGreen = 2; //[1,3];
blck_chanceHeliPatrolOrange = 0.9999;
blck_patrolHelisOrange = _blck_armed_heavyAttackHelis + _blck_fighters;
blck_noPatrolHelisOrange = 3;
blck_noPatrolHelisOrange = 3; //[2,3];
////////////////////
// Enable / Disable Missions
@ -238,8 +238,8 @@
// Mission Vehicle Settings
////////////////////
//Defines how many AI Vehicles to spawn. Set this to -1 to disable spawning of static weapons or vehicles. To discourage players runniing with with vehicles, spawn more B_GMG_01_high
blck_SpawnVeh_Orange = [3,5]; // Number of static weapons at Orange Missions
blck_SpawnVeh_Green = [3,4]; // Number of static weapons at Green Missions
blck_SpawnVeh_Orange = 4; //[3,5]; // Number of static weapons at Orange Missions
blck_SpawnVeh_Green = 3; //[3,4]; // Number of static weapons at Green Missions
blck_SpawnVeh_Blue = -1; // Number of static weapons at Blue Missions
blck_SpawnVeh_Red = 2; // Number of static weapons at Red Missions
@ -256,8 +256,8 @@
////////////////////
// Defines how many static weapons to spawn. Set this to -1 to disable spawning
blck_SpawnEmplaced_Orange = [3,5]; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = [3,4]; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Orange = 4; //[3,5]; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 3; //[3,4]; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
blck_SpawnEmplaced_Red = 2; // Number of static weapons at Red Missions

View File

@ -1,3 +1,3 @@
private ["_version","_versionDate"];
_blck_version = "6.61 Build 71";
_blck_versionDate = "8-13-17 9:00 PM";
_blck_version = "6.61 Build 72";
_blck_versionDate = "8-15-17 9:00 PM";