Merge pull request #76 from Ghostrider-DbD-/Version-1.78-Build-106

Update Event Handlers, bug fixes. Add support for Lythium
This commit is contained in:
Ghostrider [GRG] 2018-01-07 02:05:27 -05:00 committed by GitHub
commit df56d846e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
61 changed files with 467 additions and 1023 deletions

View File

@ -61,6 +61,7 @@ switch (_blck_WorldName) do
case "tavi":{blck_mapCenter = [10370, 11510, 0];blck_mapRange = 14090;}; case "tavi":{blck_mapCenter = [10370, 11510, 0];blck_mapRange = 14090;};
case "lingor":{blck_mapCenter = [4400, 4400, 0];blck_mapRange = 4400;}; case "lingor":{blck_mapCenter = [4400, 4400, 0];blck_mapRange = 4400;};
case "takistan":{blck_mapCenter = [5500, 6500, 0];blck_mapRange = 5000;}; case "takistan":{blck_mapCenter = [5500, 6500, 0];blck_mapRange = 5000;};
case "lythium":{blck_mapCenter = [10000,10000,0];blck_mapRange = 6000;};
default {_blck_WorldName = "default";blck_mapCenter = [6322,7801,0]; blck_mapRange = 6000}; default {_blck_WorldName = "default";blck_mapCenter = [6322,7801,0]; blck_mapRange = 6000};
}; };

View File

@ -1,95 +0,0 @@
// Sets up waypoints for a specified group.
/*
for DBD Clan
By Ghostrider-DBD-
Copyright 2016
Last modified 3/22/17
** Here for record keeping only; not used **
--------------------------
License
--------------------------
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
private["_dir","_arc","_noWp","_newpos","_wpradius","_wp"];
params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_pattern",["MOVE","SAD"]]];
/*
_pos = _this select 0; // center of the patrol area
_minDis = _this select 1; // minimum distance from the center of a patrol area for waypoints
_maxDis = _this select 2; // maximum distance from the center of a patrol area for waypoints
_group = _this select 3;
*/
_group setVariable["patrolCenter",_pos];
_group setVariable["minDis",_minDis];
_group setVariable["maxDis",_maxDis];
_group setVariable["timeStamp",diag_tickTime];
_group setVariable["arc",0];
_group setVariable["wpRadius",30];
_group setVariable["wpMode",_mode];
_group setVariable["wpPattern",_pattern];
_group setVariable["wpIndex",0];
_dir = 0;
_arc = 30;
_noWp = 1;
_wpradius = 30;
_newPos = _pos getPos [(_minDis+(random (_maxDis - _minDis))), _dir];
_wp = [_group, 0];
#ifdef wpModeMove
_wp setWaypointType "MOVE";
_wp setWaypointName "move";
_wp setWaypointTimeout [1,1.1,1.2];
_wp setWaypointStatements ["true","this call blck_fnc_setNextWaypoint;diag_log format['====Updating waypoint to for group %1',group this];"];
#else
_wp setWaypointType "SAD";
_wp setWaypointName "sad";
_wp setWaypointTimeout [20,25,30];
_wp setWaypointStatements ["true","this call blck_fnc_setNextWaypoint;diag_log format['====Updating waypointfor group %1',group this];"];
#endif
_wp setWaypointBehaviour "COMBAT";
_wp setWaypointCombatMode "RED";
//_wp setWaypointTimeout [1,1.1,1.2];
_group setCurrentWaypoint _wp;
/*
Code for Build 44 as a referemce/
private["_dist","_dir","_arc","_xpos","_ypos","_newpos","_wpradius","_wpnum","_oldpos"];
params["_pos","_minDis","_maxDis","_group"];
_wpradius = 30;
_wpnum = 6;
_dir = random 360;
_arc = 360/_wpnum;
for "_i" from 0 to (_wpnum - 1) do
{
_dir = _dir + _arc;
_dist = (_minDis+(random (_maxDis - _minDis)));
_newpos = _pos getPos [_dist, _arc];
_wp = _group addWaypoint [_newpos, 0];
_wp setWaypointTimeout [1, 1.1, 1.2];
_wp setWaypointType "MOVE";
_wp setWaypointBehaviour "COMBAT";
_wp setWaypointCombatMode "RED";
_wp setWaypointName "move";
_wp = _group addWaypoint [_newpos, 0];
_wp setWaypointTimeout [15,20,25];
_wp setWaypointType "SAD";
_wp setWaypointBehaviour "COMBAT";
_wp setWaypointCombatMode "RED";
_wp setWaypointName "sad";
};
deleteWaypoint [_group, 0];
_group setVariable["wpIndex",0];
_wp = _group addWaypoint [_newpos, _wpradius];
_wp setWaypointType "CYCLE";

View File

@ -1,17 +1,11 @@
diag_log format["_fnc_HC_XferGroup:: _this = %1",_this]; diag_log format["_fnc_HC_XferGroup:: _this = %1",_this];
private["_group","_client","_unit","_localEH","_tempEH"]; private["_group","_client","_unit","_tempEH"];
_group = _this select 0; _group = _this select 0;
_client = clientOwner; _client = clientOwner;
{ {
_unit = _x; _unit = _x;
_localEH = []; _localEH = [];
{
_unit removeAllEventHandlers _x;
}forEach ["Killed","Fired","HandleDamage","HandleHeal","FiredNear","Hit"];
_tempEH = ["reloaded",_unit addEventHandler ["reloaded", {_this call compile preprocessfilelinenumbers blck_EH_unitWeaponReloaded;}]]; _tempEH = ["reloaded",_unit addEventHandler ["reloaded", {_this call compile preprocessfilelinenumbers blck_EH_unitWeaponReloaded;}]];
_localEH pushBack _tempEH; _localEH pushBack _tempEH;
//_unit addMPEventHandler ["mpkilled", {[(_this select 0), (_this select 1)] call compile preprocessfilelinenumbers blck_EH_AIKilled;}]; // changed to reduce number of concurrent threads, but also works as spawn blck_AIKilled; }]; _x setVariable["localEH",_localEH,true];
_tempEH = ["Hit",_unit addEventHandler ["Hit",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIHit;}]];
_localEH pushBack _tempEH;
_x setVariable["localEH",_tempEH,true];
}forEach (units _group); }forEach (units _group);

View File

@ -26,8 +26,9 @@ if (toLower(_name) isEqualTo "headlessclient") then
diag_log format["_fnc_onPlayerDisconnected:: reseting eventHandlers for group %1",_x]; diag_log format["_fnc_onPlayerDisconnected:: reseting eventHandlers for group %1",_x];
// do any cleanup; at present this is simply removing locally added event handlers // do any cleanup; at present this is simply removing locally added event handlers
_groupLocalEH = _x getVariable["localEH",[]]; _groupLocalEH = _x getVariable["localEH",[]];
private _group = _x;
{ {
_x removeEventHandler _x; _group removeEventHandler (_x getVariable["localEH","Reloaded"]);
}forEach _groupLocalEH; }forEach _groupLocalEH;
_x setVariable["localEH",nil,true]; _x setVariable["localEH",nil,true];
}; };

View File

@ -1,75 +0,0 @@
/*
By Ghostrider-DbD-
--------------------------
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["_coords","_grpPilot","_chanceLoot"];
_chopperType = selectRandom blck_AIHelis;
_grpPilot setVariable["groupVehicle",_chopperType];
#ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: _chopperType seleted = %1",_chopperType];
#endif
_spawnVector = round(random(360));
_spawnDistance = 1000; // + floor(random(1500)); // We need the heli to be on-site quickly to minimize the chance that a small mission has been completed before the paratroops are deployed and added to the list of live AI for the mission
_dropLoot = (random(1) < _chanceLoot);
// Use the new functionality of getPos
// https://community.bistudio.com/wiki/getPos
_spawnPos = _coords getPos [_spawnDistance,_spawnVector];
#ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: vector was %1 with distance %2 yielding a spawn position of %3 at distance from _coords of %4",_spawnVector,_spawnDistance,_spawnPos, (_coords distance2d _spawnPos)];
#endif
_grpPilot setBehaviour "CARELESS";
_grpPilot setCombatMode "RED";
_grpPilot setSpeedMode "FULL";
_grpPilot allowFleeing 0;
private["_supplyHeli"];
//create helicopter and spawn it
_supplyHeli = createVehicle [_chopperType, _spawnPos, [], 90, "FLY"];
blck_monitoredVehicles pushback _supplyHeli;
[_supplyHeli] call blck_fnc_protectVehicle;
_supplyHeli setVariable["vehicleGroup",_grpPilot];
_supplyHeli setDir (_spawnVector -180);
_supplyHeli setFuel 1;
_supplyHeli engineOn true;
_supplyHeli flyInHeight 250;
_supplyHeli setVehicleLock "LOCKED";
_supplyHeli addEventHandler ["GetOut",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}];
clearWeaponCargoGlobal _supplyHeli;
clearMagazineCargoGlobal _supplyHeli;
clearItemCargoGlobal _supplyHeli;
clearBackpackCargoGlobal _supplyHeli;
_unitPilot = _grpPilot createUnit ["I_helipilot_F", getPos _supplyHeli, [], 0, "FORM"];
_unitPilot setSkill 1;
_unitPilot assignAsDriver _supplyHeli;
_unitPilot moveInDriver _supplyHeli;
_grpPilot selectLeader _unitPilot;
_grpPilot setVariable["paraGroup",_paraGroup];
#ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: heli spawned and pilot added"];
#endif
//set waypoint for helicopter
//params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_wpPatrolMode","SAD"],["_soldierType","null"] ];
[_coords,25,40,_grpPilot,"random","SAD","helicpoter"] spawn blck_fnc_setupWaypoints;
#ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: initial pilot waypoints set"];
#endif
_supplyHeli allowDamage true;
_supplyHeli

View File

@ -1,75 +0,0 @@
/*
By Ghostrider-DbD-
--------------------------
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["_coords","_grpPilot","_chanceLoot"];
_chopperType = selectRandom blck_AIHelis;
_grpPilot setVariable["groupVehicle",_chopperType];
#ifdef blck_debugMode
diag_log format["_fnc_spawnMissionHeli:: _chopperType seleted = %1",_chopperType];
#endif
_spawnVector = round(random(360));
_spawnDistance = 1000; // + floor(random(1500)); // We need the heli to be on-site quickly to minimize the chance that a small mission has been completed before the paratroops are deployed and added to the list of live AI for the mission
_dropLoot = (random(1) < _chanceLoot);
// Use the new functionality of getPos
// https://community.bistudio.com/wiki/getPos
_spawnPos = _coords getPos [_spawnDistance,_spawnVector];
#ifdef blck_debugMode
diag_log format["_fnc_spawnMissionHeli:: vector was %1 with distance %2 yielding a spawn position of %3 at distance from _coords of %4",_spawnVector,_spawnDistance,_spawnPos, (_coords distance2d _spawnPos)];
#endif
_grpPilot setBehaviour "CARELESS";
_grpPilot setCombatMode "RED";
_grpPilot setSpeedMode "FULL";
_grpPilot allowFleeing 0;
private["_supplyHeli"];
//create helicopter and spawn it
_supplyHeli = createVehicle [_chopperType, _spawnPos, [], 90, "FLY"];
blck_monitoredVehicles pushback _supplyHeli;
[_supplyHeli] call blck_fnc_protectVehicle;
_supplyHeli setVariable["vehicleGroup",_grpPilot];
_supplyHeli setDir (_spawnVector -180);
_supplyHeli setFuel 1;
_supplyHeli engineOn true;
_supplyHeli flyInHeight 250;
_supplyHeli setVehicleLock "LOCKED";
_supplyHeli addEventHandler ["GetOut",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}];
clearWeaponCargoGlobal _supplyHeli;
clearMagazineCargoGlobal _supplyHeli;
clearItemCargoGlobal _supplyHeli;
clearBackpackCargoGlobal _supplyHeli;
_unitPilot = _grpPilot createUnit ["I_helipilot_F", getPos _supplyHeli, [], 0, "FORM"];
_unitPilot setSkill 1;
_unitPilot assignAsDriver _supplyHeli;
_unitPilot moveInDriver _supplyHeli;
_grpPilot selectLeader _unitPilot;
_grpPilot setVariable["paraGroup",_paraGroup];
#ifdef blck_debugMode
diag_log format["_fnc_spawnMissionHeli:: heli spawned and pilot added"];
#endif
//set waypoint for helicopter
//params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_wpPatrolMode","SAD"],["_soldierType","null"] ];
[_coords,25,40,_grpPilot,"random","SAD","helicpoter"] spawn blck_fnc_setupWaypoints;
#ifdef blck_debugMode
diag_log format["_fnc_spawnMissionHeli:: initial pilot waypoints set"];
#endif
_supplyHeli allowDamage true;
_supplyHeli

View File

@ -1,9 +1,5 @@
/* /*
By Ghostrider [GRG] By Ghostrider [GRG]
Last Modified 7-27-17
Handles the case where a unit is hit.
-------------------------- --------------------------
License License
-------------------------- --------------------------
@ -11,8 +7,10 @@
http://creativecommons.org/licenses/by-nc-sa/4.0/ http://creativecommons.org/licenses/by-nc-sa/4.0/
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; if (isServer) then
{
_this remoteExec["blck_fnc_processAIHit",2]; diag_log format["_EH_AHit: _this = %1",_this];
_this remoteExec["blck_fnc_processAIHit",2];
};

View File

@ -1,25 +0,0 @@
/*
by Ghostrider
4-5-17
Alerts the leader of a group of the location of an enemy.
--------------------------
License
--------------------------
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
private["_knowsAbout","_intelligence","_group"];
params["_unit","_target"];
_intelligence = _unit getVariable ["intelligence",1];
_group = group _unit;
{
_knowsAbout = _x knowsAbout _target;
_x reveal [_target,_knowsAbout + _intelligence];
}forEach units _group;

View File

@ -18,11 +18,10 @@ params["_unit"];
{ {
_unit removeAllEventHandlers _x; _unit removeAllEventHandlers _x;
//_unit removeAllMPEventHandlers _x; }forEach ["reloaded"];
}forEach ["killed","hit","reloaded","fired","handledamage","handleheal","firednear"];
{ {
_unit removeAllMPEventHandlers _x; _unit removeAllMPEventHandlers _x;
} forEach ["MPKilled"]; } forEach ["MPKilled","MPHit"];
private _group = (group _unit); private _group = (group _unit);
[_unit] joinSilent grpNull; [_unit] joinSilent grpNull;
deleteVehicle _unit; deleteVehicle _unit;

View File

@ -0,0 +1,57 @@
/*
By Ghostrider [GRG]
Last Modified 7-27-17
Handles the case where a unit is hit.
--------------------------
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["_fnc_processAIHit::-->> _this = %1",_this];
if (isServer) then
{
private ["_unit","_instigator","_group","_wp"];
_unit = _this select 0 select 0;
_instigator = _this select 0 select 3;
#ifdef blck_debugMode
if (blck_debugLevel >= 2) then
{
diag_log format["_fnc_processAIHit::-->> _this = %1",_this];
diag_log format["EH_AIHit:: _units = %1 and _instigator = %2 units damage is %3",_unit,_instigator, damage _unit];
};
#endif
if (!(alive _unit)) exitWith {};
if (!(isPlayer _instigator)) exitWith {};
[_unit,_instigator] call blck_fnc_alertGroupUnits;
[_instigator] call blck_fnc_alertNearbyVehicles;
_group = group _unit;
//_group setBehavior "COMBAT";
_wp = [_group, currentWaypoint _group];
_wp setWaypointBehaviour "COMBAT";
_group setCombatMode "RED";
_wp setWaypointCombatMode "RED";
if (_unit getVariable ["hasHealed",false]) exitWith {};
if ((damage _unit) > 0.1 ) then
{
#ifdef blck_debugMode
if (blck_debugLevel >= 2) then
{
diag_log format["_EH_AIHit::-->> Healing unit %1",_unit];
};
_unit setVariable["hasHealed",true,true];
_unit addMagazine "SmokeShellOrange";
_unit fire "SmokeShellMuzzle";
_unit addItem "FAK";
_unit action ["HealSoldierSelf", _unit];
_unit setDamage 0;
_unit removeItem "FAK";
};
};

View File

@ -36,14 +36,8 @@ _wp = [_group, currentWaypoint _group];
_wp setWaypointBehaviour "COMBAT"; _wp setWaypointBehaviour "COMBAT";
_group setCombatMode "RED"; _group setCombatMode "RED";
_wp setWaypointCombatMode "RED"; _wp setWaypointCombatMode "RED";
{
_unit removeAllEventHandlers _x;
}forEach ["Killed","Fired","HandleDamage","HandleHeal","FiredNear","Hit"];
_isLegal = [_unit,_killer] call blck_fnc_processIlleagalAIKills; _isLegal = [_unit,_killer] call blck_fnc_processIlleagalAIKills;
if !(_isLegal) exitWith {}; if !(_isLegal) exitWith {};
_lastkill = _killer getVariable["blck_lastkill",diag_tickTime]; _lastkill = _killer getVariable["blck_lastkill",diag_tickTime];
_killer setVariable["blck_lastkill",diag_tickTime]; _killer setVariable["blck_lastkill",diag_tickTime];
_kills = (_killer getVariable["blck_kills",0]) + 1; _kills = (_killer getVariable["blck_kills",0]) + 1;

View File

@ -184,13 +184,10 @@ if (blck_debugLevel > 2) then
diag_log format["_fnc_spawnUnit:: --> unit loadout = %1", getUnitLoadout _ai1]; diag_log format["_fnc_spawnUnit:: --> unit loadout = %1", getUnitLoadout _ai1];
}; };
#endif #endif
// Infinite ammo
//_ai1 addeventhandler ["fired", {(_this select 0) setvehicleammo 1;}];
_ai1 addEventHandler ["Reloaded", {_this call compile preprocessfilelinenumbers blck_EH_unitWeaponReloaded;}]; _ai1 addEventHandler ["Reloaded", {_this call compile preprocessfilelinenumbers blck_EH_unitWeaponReloaded;}];
_ai1 addMPEventHandler ["MPKilled", {[(_this select 0), (_this select 1)] call compile preprocessfilelinenumbers blck_EH_AIKilled;}]; // changed to reduce number of concurrent threads, but also works as spawn blck_AIKilled; }]; _ai1 addMPEventHandler ["MPKilled", {[(_this select 0), (_this select 1)] call compile preprocessfilelinenumbers blck_EH_AIKilled;}]; // changed to reduce number of concurrent threads, but also works as spawn blck_AIKilled; }];
_ai1 addMPEventHandler ["MPHit",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIHit;}]; _ai1 addMPEventHandler ["MPHit",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIHit;}];
//_ai1 addEventHandler ["FiredNear",{diag_log "-------->>>>>>>> Weapon fired Near Unit";}];
//_ai1 addEventHandler ["FiredNear",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIFiredNear;};];
switch (_skillLevel) do switch (_skillLevel) do
{ {

View File

@ -1,55 +0,0 @@
/*
By Ghostrider [GRG]
Last Modified 7-27-17
Handles the case where a unit is hit.
--------------------------
License
--------------------------
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
private ["_unit","_instigator","_group","_wp"];
_unit = _this select 0 select 0;
_instigator = _this select 0 select 3;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["_fnc_processAIHit::-->> _this = %1",_this];
diag_log format["EH_AIHit:: _units = %1 and _instigator = %2 units damage is %3",_unit,_instigator, damage _unit];
};
#endif
if (!(alive _unit)) exitWith {};
if (!(isPlayer _instigator)) exitWith {};
[_unit,_instigator] call blck_fnc_alertGroupUnits;
[_instigator] call blck_fnc_alertNearbyVehicles;
_group = group _unit;
//_group setBehavior "COMBAT";
_wp = [_group, currentWaypoint _group];
_wp setWaypointBehaviour "COMBAT";
_group setCombatMode "RED";
_wp setWaypointCombatMode "RED";
if (_unit getVariable ["hasHealed",false]) exitWith {};
if ((damage _unit) > 0.1 ) then
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["_EH_AIHit::-->> Healing unit %1",_unit];
};
_unit setVariable["hasHealed",true,true];
_unit addMagazine "SmokeShellOrange";
_unit fire "SmokeShellMuzzle";
_unit addItem "FAK";
_unit action ["HealSoldierSelf", _unit];
_unit setDamage 0;
_unit removeItem "FAK";
};

View File

@ -1,19 +0,0 @@
/*
Killed handler for _units
By Ghostrider-DbD
Last Modified 4-11-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"];
//diag_log format["EH_AIKilled:: _units = %1 and _killer = %2",_unit,_killer];
[_unit,_killer] remoteExec ["blck_fnc_processAIKill",2];

View File

@ -1,18 +0,0 @@
/*
By Ghostrider [GRG]
Last Modified 7-27-17
Handles the case where a vehicle is hit.
--------------------------
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";
_this remoteExec ["blck_fnc_HandleAIVehicleDamage",2];

View File

@ -113,7 +113,7 @@ blck_fnc_cleanupDeadAI = compileFinal preprocessFileLineNumbers "\q\addons\cust
blck_fnc_setSkill = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_setSkill.sqf"; blck_fnc_setSkill = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_setSkill.sqf";
blck_fnc_cleanupAliveAI = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_cleanupAliveAI.sqf"; blck_fnc_cleanupAliveAI = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_cleanupAliveAI.sqf";
blck_fnc_deleteAI = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_deleteAI.sqf"; blck_fnc_deleteAI = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_deleteAI.sqf";
blck_fnc_processAIHit = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_processAIHit.sqf"; blck_fnc_processAIHit = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_processAIHit.sqf";
// HC support functions // HC support functions
blck_fnc_HC_XferGroup = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_XferGroup.sqf"; blck_fnc_HC_XferGroup = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_XferGroup.sqf";

View File

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

View File

@ -1,83 +0,0 @@
/*
* passToHCs.sqf
*
* In the mission editor, name the Headless Clients "HC", "HC2", "HC3" without the quotes
*
* In the mission init.sqf, call passToHCs.sqf with:
* execVM "passToHCs.sqf";
*
* It seems that the dedicated server and headless client processes never use more than 20-22% CPU each.
* With a dedicated server and 3 headless clients, that's about 88% CPU with 10-12% left over. Far more efficient use of your processing power.
*
*/
if (!isServer || !blck_useHC) exitWith {};
diag_log "passToHCs: Started";
//waitUntil {!isNil "HC"};
//waitUntil {!isNull HC};
_wait = true;
while {_wait} do{
if (isNil "HC1") then
{
diag_log "passToHCs: HC not connected";
} else {
diag_log format["passToHCs: owner HC1 = %1", owner HC1];
_wait = false;
};
sleep 15;
};
_HC1_ID = -1; // Will become the Client ID of HC
_HC2_ID = -1; // Will become the Client ID of HC2
_HC3_ID = -1; // Will become the Client ID of HC3
rebalanceTimer = 10; // Rebalance sleep timer in seconds
cleanUpThreshold = 200; // Threshold of number of dead bodies + destroyed vehicles before forcing a clean up
diag_log format["passToHCs: First pass will begin in %1 seconds", rebalanceTimer];
while {true} do {
uisleep rebalanceTimer;
try {
_HC1_ID = owner HC1;
if (_HC1_ID > 2) then {
diag_log format ["passToHCs: Found HC with Client ID %1", _HC1_ID];
} else {
diag_log "passToHCs: [WARN] HC disconnected";
HC1 = objNull;
_HC1_ID = -1;
};
} catch { diag_log format ["passToHCs: [ERROR] [HC] %1", _exception]; HC = objNull; _HC1_ID = -1; };
{
if (!isNull HC1) then
{
// Pass the AI
_numTransfered = 0;
if (_x getVariable["blck_group",false]) then {
diag_log format["group belongs to blckeagls mission system so time to transfer it"];
_id = groupOwner _x;
diag_log format["Owner of group %1 is %2",_x,_id];
if (_id > 2) then
{
diag_log format["group %1 is already assigned to an HC with _id of %2",_x,_id];
_swap = false;
} else {
if (_numTransfered < 5) then
{
diag_log format["group %1 should be moved to an HC",_x];
_rc = _x setGroupOwner _HC1_ID;
if ( _rc ) then { _numTransfered = _numTransfered + 1; };
};
};
} else {
diag_log format["group %1 does not belong to blckeagls mission system",_x];
};
} forEach (allGroups);
};

View File

@ -2,7 +2,6 @@
for ghostridergaming for ghostridergaming
By Ghostrider [GRG] By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 3-17-17
-------------------------- --------------------------
License License
@ -30,11 +29,11 @@
3) A time acceleration module. 3) A time acceleration module.
*/ */
blck_spawnMapAddons = false; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf blck_spawnMapAddons = true; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf
blck_spawnStaticLootCrates = false; // 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_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).
// Note that you can define map-specific variants in custom_server\configs\blck_custom_config.sqf // Note that you can define map-specific variants in custom_server\configs\blck_custom_config.sqf
blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_useTimeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 0.25; // Daytime time accelearation blck_timeAccelerationDay = 0.25; // Daytime time accelearation
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 12; // Nighttim time acceleration blck_timeAccelerationNight = 12; // Nighttim time acceleration
@ -73,7 +72,7 @@
//Minimum distance between missions //Minimum distance between missions
blck_MinDistanceFromMission = 1000; blck_MinDistanceFromMission = 1500;
/////////////////////////////// ///////////////////////////////
// Mission Smoke and Signals // Mission Smoke and Signals
@ -106,7 +105,7 @@
/////////////////////////////// ///////////////////////////////
blck_useKilledAIName = true; // When false, the name of the killer (player), weapon and distance are displayed; otherwise the name of the player, distance and name of AI unit killed are shown. blck_useKilledAIName = true; // When false, the name of the killer (player), weapon and distance are displayed; otherwise the name of the player, distance and name of AI unit killed are shown.
blck_useMines = false; // when true mines are spawned around the mission area. these are cleaned up when a player reaches the crate. Turn this off if you have vehicle patrols. blck_useMines = false; // when true mines are spawned around the mission area. these are cleaned up when a player reaches the crate. Turn this off if you have vehicle patrols.
blck_cleanupCompositionTimer = 1200; // Mission objects will be deleted after the mission is completed after a deley set by this timer. blck_cleanupCompositionTimer = 60*30; // Mission objects will be deleted after the mission is completed after a deley set by this timer.
blck_cleanUpLootChests = false; // when true, loot crates will be deleted together with other mission objects. blck_cleanUpLootChests = false; // when true, loot crates will be deleted together with other mission objects.
blck_MissionTimout = 60*60; // 60 min - missions will timeout and respawn in another location. This prevents missions in impossible locations from persisting. blck_MissionTimout = 60*60; // 60 min - missions will timeout and respawn in another location. This prevents missions in impossible locations from persisting.
@ -179,13 +178,7 @@
//////////////////// ////////////////////
// Maximum number of missions shown on the map at any one time. // 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; 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. //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; blck_enableOrangeMissions = 1;
blck_enableGreenMissions = 1; blck_enableGreenMissions = 1;
@ -193,12 +186,6 @@
blck_enableBlueMissions = 2; blck_enableBlueMissions = 2;
blck_numberUnderwaterDynamicMissions = 5; // Values from 0 (no UMS) to N (N Underwater missions will be spawned; static UMS units and subs will be spawned. blck_numberUnderwaterDynamicMissions = 5; // Values from 0 (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 = 1;
blck_maxcrashsites = 3;
#endif
//////////////////// ////////////////////
// MISSION TIMERS // MISSION TIMERS
//////////////////// ////////////////////
@ -209,12 +196,6 @@
blck_TMin_Blue = 120; blck_TMin_Blue = 120;
blck_TMin_Red = 150; blck_TMin_Red = 150;
blck_TMin_UMS = 180; 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 //Maximum Spawn time between missions in seconds
blck_TMax_Orange = 360; blck_TMax_Orange = 360;
@ -222,11 +203,6 @@
blck_TMax_Blue = 200; blck_TMax_Blue = 200;
blck_TMax_Red = 250; blck_TMax_Red = 250;
blck_TMax_UMS = 200; blck_TMax_UMS = 200;
#ifdef GRGserver
blck_TMax_Hunter = 200;
blck_TMax_Scouts = 200;
blck_TMax_Crashes = 200;
#endif
/////////////////////////////// ///////////////////////////////
// AI VEHICLE PATROL PARAMETERS // AI VEHICLE PATROL PARAMETERS
@ -235,7 +211,6 @@
blck_useVehiclePatrols = true; // When true vehicles will be spawned at missions and will patrol the mission area. blck_useVehiclePatrols = true; // When true vehicles will be spawned at missions and will patrol the mission area.
blck_killEmptyAIVehicles = false; // when true, the AI vehicle will be extensively damaged once all AI have gotten outor been killed. blck_killEmptyAIVehicles = false; // when true, the AI vehicle will be extensively damaged once all AI have gotten outor been killed.
blck_vehicleDeleteTimer = 60*60; blck_vehicleDeleteTimer = 60*60;
//////////////////// ////////////////////
// Mission Vehicle Settings // Mission Vehicle Settings
//////////////////// ////////////////////
@ -285,10 +260,10 @@
blck_launcherCleanup = true;// When true, launchers and launcher ammo are removed from dead AI. blck_launcherCleanup = true;// When true, launchers and launcher ammo are removed from dead AI.
//This defines how long after an AI dies that it's body disappears. //This defines how long after an AI dies that it's body disappears.
blck_bodyCleanUpTimer = 1200; // 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 // 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]; // values are ordered as follows [blue, red, green, orange];
blck_AliveAICleanUpTimer = 1200; // Time after mission completion at which any remaining live AI are deleted. blck_AliveAICleanUpTimer = 60*20; // Time after mission completion at which any remaining live AI are deleted.
// How precisely player locations will be revealed to AI after an AI kill // How precisely player locations will be revealed to AI after an AI kill
// values are ordered as follows [blue, red, green, orange]; // values are ordered as follows [blue, red, green, orange];
@ -344,60 +319,6 @@
blck_maxMoneyRed = 15; blck_maxMoneyRed = 15;
blck_maxMoneyBlue = 10; 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
private["_modType"]; private["_modType"];
_modType = [] call blck_fnc_getModType; _modType = [] call blck_fnc_getModType;
if (_modType isEqualTo "Epoch") then if (_modType isEqualTo "Epoch") then

View File

@ -1,8 +1,6 @@
/* /*
for ghostridergaming
By Ghostrider [GRG] By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 3-14-17
-------------------------- --------------------------
License License

View File

@ -1,8 +1,7 @@
/* /*
for ghostridergaming
By Ghostrider [GRG] By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 3-14-17
-------------------------- --------------------------
License License

View File

@ -1,8 +1,6 @@
/* /*
for ghostridergaming
By Ghostrider [GRG] By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 3-14-17
-------------------------- --------------------------
License License

View File

@ -1,7 +1,6 @@
/* /*
By Ghostrider [GRG] By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 3-17-17
-------------------------- --------------------------
License License
@ -25,11 +24,11 @@
3) A time acceleration module. 3) A time acceleration module.
*/ */
blck_spawnMapAddons = false; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf blck_spawnMapAddons = true; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf
blck_spawnStaticLootCrates = false; // 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_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).
// Note that you can define map-specific variants in custom_server\configs\blck_custom_config.sqf // Note that you can define map-specific variants in custom_server\configs\blck_custom_config.sqf
blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_useTimeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 1; // Daytime time accelearation blck_timeAccelerationDay = 1; // Daytime time accelearation
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 8; // Nighttim time acceleration blck_timeAccelerationNight = 8; // Nighttim time acceleration
@ -68,7 +67,7 @@
//Minimum distance between missions //Minimum distance between missions
blck_MinDistanceFromMission = 1000; blck_MinDistanceFromMission = 1500;
/////////////////////////////// ///////////////////////////////
// Mission Smoke and Signals // Mission Smoke and Signals
@ -101,9 +100,10 @@
/////////////////////////////// ///////////////////////////////
blck_useKilledAIName = true; // When false, the name of the killer (player), weapon and distance are displayed; otherwise the name of the player, distance and name of AI unit killed are shown. blck_useKilledAIName = true; // When false, the name of the killer (player), weapon and distance are displayed; otherwise the name of the player, distance and name of AI unit killed are shown.
blck_useMines = false; // when true mines are spawned around the mission area. these are cleaned up when a player reaches the crate. Turn this off if you have vehicle patrols. blck_useMines = false; // when true mines are spawned around the mission area. these are cleaned up when a player reaches the crate. Turn this off if you have vehicle patrols.
blck_cleanupCompositionTimer = 1200; // Mission objects will be deleted after the mission is completed after a deley set by this timer. blck_cleanupCompositionTimer = 20*60; // Mission objects will be deleted after the mission is completed after a deley set by this timer.
blck_cleanUpLootChests = false; // when true, loot crates will be deleted together with other mission objects. blck_cleanUpLootChests = false; // when true, loot crates will be deleted together with other mission objects.
blck_MissionTimout = 60*60; // 60 min - missions will timeout and respawn in another location. This prevents missions in impossible locations from persisting. blck_MissionTimout = 60*60; // 60 min - missions will timeout and respawn in another location. This prevents missions in impossible locations from persisting.
blck_AliveAICleanUpTimer = 60*20; // Time after mission completion at which any remaining live AI are deleted.
/////////////////////////////// ///////////////////////////////
// Paratroop Settings // Paratroop Settings
@ -175,7 +175,7 @@
blck_noPatrolHelisGreen = [1,3]; blck_noPatrolHelisGreen = [1,3];
blck_chanceHeliPatrolOrange = 0.9999; blck_chanceHeliPatrolOrange = 0.9999;
blck_patrolHelisOrange = _blck_armed_ghosthawks; // + _blck_fighters; blck_patrolHelisOrange = _blck_armed_attackHelis + _blck_armed_heavyAttackHelis + _blck_fighters;
blck_noPatrolHelisOrange = [2,4]; blck_noPatrolHelisOrange = [2,4];
//////////////////// ////////////////////
@ -183,12 +183,8 @@
//////////////////// ////////////////////
// Maximum number of missions shown on the map at any one time. // 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. // Change this value to reduce the number of spawned missions at any one time.
blck_maxSpawnedMissions = 4; 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. //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; blck_enableOrangeMissions = 1;
@ -197,11 +193,6 @@
blck_enableBlueMissions = 2; blck_enableBlueMissions = 2;
blck_numberUnderwaterDynamicMissions = 5; // Values from 0 (no UMS) to N (N Underwater missions will be spawned; static UMS units and subs will be spawned. blck_numberUnderwaterDynamicMissions = 5; // Values from 0 (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 = 1;
blck_maxcrashsites = 3;
#endif
//////////////////// ////////////////////
// MISSION TIMERS // MISSION TIMERS
@ -213,12 +204,6 @@
blck_TMin_Blue = 120; blck_TMin_Blue = 120;
blck_TMin_Red = 150; blck_TMin_Red = 150;
blck_TMin_UMS = 180; 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 //Maximum Spawn time between missions in seconds
blck_TMax_Orange = 360; blck_TMax_Orange = 360;
@ -226,11 +211,6 @@
blck_TMax_Blue = 200; blck_TMax_Blue = 200;
blck_TMax_Red = 250; blck_TMax_Red = 250;
blck_TMax_UMS = 200; blck_TMax_UMS = 200;
#ifdef GRGserver
blck_TMax_Hunter = 200;
blck_TMax_Scouts = 200;
blck_TMax_Crashes = 200;
#endif
/////////////////////////////// ///////////////////////////////
// AI VEHICLE PATROL PARAMETERS // AI VEHICLE PATROL PARAMETERS
@ -239,7 +219,6 @@
blck_useVehiclePatrols = true; // When true vehicles will be spawned at missions and will patrol the mission area. blck_useVehiclePatrols = true; // When true vehicles will be spawned at missions and will patrol the mission area.
blck_killEmptyAIVehicles = false; // when true, the AI vehicle will be extensively damaged once all AI have gotten outor been killed. blck_killEmptyAIVehicles = false; // when true, the AI vehicle will be extensively damaged once all AI have gotten outor been killed.
blck_vehicleDeleteTimer = 60*60; blck_vehicleDeleteTimer = 60*60;
//////////////////// ////////////////////
// Mission Vehicle Settings // Mission Vehicle Settings
//////////////////// ////////////////////
@ -290,16 +269,11 @@
blck_launcherCleanup = false;// When true, launchers and launcher ammo are removed from dead AI. blck_launcherCleanup = false;// When true, launchers and launcher ammo are removed from dead AI.
//This defines how long after an AI dies that it's body disappears. //This defines how long after an AI dies that it's body disappears.
blck_bodyCleanUpTimer = 1200; // time in seconds after which dead AI bodies are deleted blck_bodyCleanUpTimer = 40*60; // time in seconds after which dead AI bodies are deleted
#ifdef GRGserver
#ifdef blck_milServer
blck_bodyCleanUpTimer = 900; // Trying to reduce lag with player counts > 20
#endif
#endif
// 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 // 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]; // values are ordered as follows [blue, red, green, orange];
blck_AliveAICleanUpTimer = 1200; // Time after mission completion at which any remaining live AI are deleted. blck_AliveAICleanUpTimer = 20*60; // Time after mission completion at which any remaining live AI are deleted.
// How precisely player locations will be revealed to AI after an AI kill // How precisely player locations will be revealed to AI after an AI kill
// values are ordered as follows [blue, red, green, orange]; // values are ordered as follows [blue, red, green, orange];
@ -355,60 +329,6 @@
blck_maxMoneyRed = 30; blck_maxMoneyRed = 30;
blck_maxMoneyBlue = 20; blck_maxMoneyBlue = 20;
#ifdef GRGserver
blck_AIAlertDistance = [250,425,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 = 1; // 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 = 30;
blck_MaxAI_Orange = 35;
blck_AIGrps_Orange = 5;
blck_SkillsOrange = [
["aimingAccuracy",0.6],["aimingShake",0.9],["aimingSpeed",0.9],["endurance",1.00],["spotDistance",1.0],["spotTime",1.0],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]
];
// Green Missions
blck_MinAI_Green = 26;
blck_MaxAI_Green = 31;
blck_AIGrps_Green = 4;
blck_SkillsGreen = [
["aimingAccuracy",0.55],["aimingShake",0.75],["aimingSpeed",0.85],["endurance",0.9],["spotDistance",0.9],["spotTime",0.9],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75]
];
// Red Missions
blck_MinAI_Red = 12;
blck_MaxAI_Red = 18;
blck_AIGrps_Red = 3;
blck_SkillsRed = [
["aimingAccuracy",0.4],["aimingShake",0.6],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.8],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70]
];
// Blue Missions
blck_MinAI_Blue = 8;
blck_MaxAI_Blue = 14;
blck_AIGrps_Blue = 2;
blck_SkillsBlue = [
["aimingAccuracy",0.12],["aimingShake",0.3],["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
private["_modType"]; private["_modType"];
_modType = [] call blck_fnc_getModType; _modType = [] call blck_fnc_getModType;
if (_modType isEqualTo "Epoch") then if (_modType isEqualTo "Epoch") then

View File

@ -122,26 +122,27 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in
blck_mainThreadUpdateInterval = 10; blck_mainThreadUpdateInterval = 10;
blck_enableOrangeMissions = 1; blck_enableOrangeMissions = 1;
blck_enableGreenMissions = 1; blck_enableGreenMissions = 1;
blck_enableRedMissions = 2; blck_enableRedMissions = -2;
blck_enableBlueMissions = 2; blck_enableBlueMissions = -2;
blck_numberUnderwaterDynamicMissions = 3; blck_numberUnderwaterDynamicMissions = -3;
blck_enableHunterMissions = -1; blck_enableHunterMissions = -1;
blck_enableScoutsMissions = 1; blck_enableScoutsMissions = -1;
blck_maxCrashSites = 3; blck_maxCrashSites = 0;
//blck_enabeUnderwaterMissions = 1; //blck_enabeUnderwaterMissions = 1;
blck_cleanupCompositionTimer = 10; // Time after mission completion at which items in the composition are deleted. blck_cleanupCompositionTimer = 10; // Time after mission completion at which items in the composition are deleted.
blck_AliveAICleanUpTimer = 10; // Time after mission completion at which any remaining live AI are deleted. blck_AliveAICleanUpTimer = 10; // Time after mission completion at which any remaining live AI are deleted.
blck_bodyCleanUpTimer = 10; blck_bodyCleanUpTimer = 10;
blck_vehicleDeleteTimer = 60;
blck_noPatrolHelisOrange = [2,4]; blck_noPatrolHelisOrange = 0;
//blck_chanceHeliPatrolBlue = 1; //blck_chanceHeliPatrolBlue = 1;
blck_SpawnEmplaced_Orange = [2,4]; // Number of static weapons at Orange Missions blck_SpawnEmplaced_Orange = 0; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 3; // Number of static weapons at Green Missions blck_SpawnEmplaced_Green = 0; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions blck_SpawnEmplaced_Blue = 0; // Number of static weapons at Blue Missions
blck_SpawnEmplaced_Red = 2; blck_SpawnEmplaced_Red = 0;
blck_SpawnVeh_Orange = [2,4]; // Number of static weapons at Orange Missions blck_SpawnVeh_Orange = [2,4]; // Number of static weapons at Orange Missions
blck_SpawnVeh_Green = 3; // Number of static weapons at Green Missions blck_SpawnVeh_Green = 3; // Number of static weapons at Green Missions

View File

@ -12,7 +12,6 @@
http://creativecommons.org/licenses/by-nc-sa/4.0/ http://creativecommons.org/licenses/by-nc-sa/4.0/
*/ */
//#define GRGserver
#define wpModeMove #define wpModeMove
#define useAPEX #define useAPEX
#define useDynamicSimulation #define useDynamicSimulation

View File

@ -1,5 +0,0 @@
["B_HMG_01_high_F",[47.1777,73.5469,-3.12644],0,[true,false]],
["B_GMG_01_high_F",[-32.8926,-35.8047,-3.1268],0,[true,false]],
["B_G_Mortar_01_F",[33.1582,-34.8867,-4.76837e-007],0,[true,false]],

View File

@ -2,8 +2,8 @@
Run scripts exported from M3EDEN Editor plug in for Arma 3 or other map addons. Run scripts exported from M3EDEN Editor plug in for Arma 3 or other map addons.
Add addons to the arrays for Epoch or Exile as appropriate. Add addons to the arrays for Epoch or Exile as appropriate.
Arrays should contain ["mapname", "name of folder within mapaddons","name of file to execute"] Arrays should contain ["mapname", "name of folder within mapaddons","name of file to execute"]
by Ghostrider-DbD- by Ghostrider [GRG]
for DBD Clan for ghostridergaming
11/12/16 11/12/16
-------------------------- --------------------------
License License
@ -38,7 +38,7 @@ _addonsExile = [
_fnc_runIt = _fnc_runIt =
{ {
params["_addons"]; params["_addons"];
//if (blck_debugON) then {diag_log format["[blckeagls] MapAddons:: addons list is %1",_addons];}; if (blck_debugON) then {diag_log format["[blckeagls] MapAddons:: addons list is %1",_addons];};
_worldName = toLower (worldName); _worldName = toLower (worldName);
{ {
if (toLower format["%1",_x select 0] isEqualTo _worldName) then if (toLower format["%1",_x select 0] isEqualTo _worldName) then
@ -50,7 +50,7 @@ _fnc_runIt =
} else { } else {
_path = format["%1%2%3",_addonsPath,_x select 1,"\"]; _path = format["%1%2%3",_addonsPath,_x select 1,"\"];
}; };
if (blck_debugLevel > 2) then {diag_log format["[blckeagls] MapAddons::-->> Running the following script: %1%2",_path,_x select 2];}; if (blck_debugLevel > 1) then {diag_log format["[blckeagls] MapAddons::-->> Running the following script: %1%2",_path,_x select 2];};
[] execVM format["%1%2",_path,_x select 2]; [] execVM format["%1%2",_path,_x select 2];
}; };
}forEach _addons; }forEach _addons;

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -41,11 +41,10 @@ _noEmplacedWeapons = blck_SpawnEmplaced_Blue;
_useMines = blck_useMines; _useMines = blck_useMines;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_chanceParaBlue;
_chanceReinforcements = 0; //blck_reinforcementsBlue select 0; _noPara = blck_noParaBlue;
_noPara = 2; //blck_reinforcementsBlue select 1; _chanceHeliPatrol = blck_chanceHeliPatrolBlue;
_chanceHeliPatrol = 0;//blck_reinforcementsBlue select 2; _chanceLoot = 0.992;
_chanceLoot = 0.992; //blck_reinforcementsBlue select 3;
private["_weap","_mags","_backpacks","_optics","_loadout","_reinforcementLootCounts"]; private["_weap","_mags","_backpacks","_optics","_loadout","_reinforcementLootCounts"];
_weap = 3 + floor(random(4)); _weap = 3 + floor(random(4));

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -53,11 +53,29 @@ _missionLootBoxes = [
]; // Parameters are "Box Item Code", array defining the loot to be spawned, and position. ]; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
// blck_lootCountsBlue= [4,12,3,6,6,1]; // blck_lootCountsBlue= [4,12,3,6,6,1];
_missionLootVehicles = [ _missionLootVehicles = [
["I_G_Offroad_01_armed_F",[-8,8,0],_crateLoot,[0,10,2,5,5,1]], //["I_G_Offroad_01_armed_F",[-8,8,0],_crateLoot,[0,10,2,5,5,1]],
["I_G_Offroad_01_armed_F",[8,17,0],_crateLoot,[0,10,2,5,5,1]] //["I_G_Offroad_01_armed_F",[8,17,0],_crateLoot,[0,10,2,5,5,1]]
]; // Parameters are "vehiclel type", offset relative to mission center, loot array, items to load from each category of the loot array. ]; // Parameters are "vehiclel type", offset relative to mission center, loot array, items to load from each category of the loot array.
// ["B_HMG_01_high_F"/*,"B_GMG_01_high_F","O_static_AT_F"*/]; // ["B_HMG_01_high_F"/*,"B_GMG_01_high_F","O_static_AT_F"*/];
_missionEmplacedWeapons = [["B_HMG_01_high_F",[-10,-15,0]],["B_GMG_01_high_F",[10,12,0]],["O_static_AT_F",[-10,10,0]]]; // can be used to define the type and precise placement of static weapons [["wep",[1,2,3]] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used _missionGroups =
[
//_x params["_position","_minAI","_maxAI","_skillLevel","_minPatrolRadius","_maxPatrolRadius"];
[[-10.9121,-10.9824,-1.20243],5,7,"Green",5,12],
[[-10.2305,10.0215,-0.941586],5,7,"Green",5,12],
[[10.5605,-10.4043,-0.00143886],5,7,"Green",5,12],
[[10.61133,10.5918,-0.001438863],5,7,"Green",5,12]
]; // Can be used to define spawn positions of AI patrols
_missionEmplacedWeapons = [
//["B_HMG_01_high_F",[-10,-15,0]],
//["B_GMG_01_high_F",[10,12,0]],
//["O_static_AT_F",[-10,10,0]]
]; // can be used to define the type and precise placement of static weapons [["wep",[1,2,3]] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used
_missionPatrolVehicles = [
["B_MRAP_01_hmg_F",[27.8945,100.275,0],0,[true,false]],
["B_MRAP_01_hmg_F",[-84.7793,72.2617,9.53674e-007],0,[true,false]],
["B_MRAP_01_gmg_F",[-87.8457,-109.947,7.15256e-007],0,[true,false]],
];
// Change _useMines to true/false below to enable mission-specific settings. // Change _useMines to true/false below to enable mission-specific settings.
_useMines = blck_useMines; _useMines = blck_useMines;
_minNoAI = blck_MinAI_Blue; _minNoAI = blck_MinAI_Blue;
@ -67,9 +85,9 @@ _noVehiclePatrols = blck_SpawnVeh_Blue;
_noEmplacedWeapons = blck_SpawnEmplaced_Blue; _noEmplacedWeapons = blck_SpawnEmplaced_Blue;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
// _chanceReinforcements = blck_reinforcementsBlue select 0; _chanceReinforcements = blck_chanceParaBlue;
//_noPara = blck_reinforcementsBlue select 1; _noPara = blck_noParaBlue;
//_helipatrol = blck_reinforcementsBlue select 2; _chanceHeliPatrol = blck_chanceHeliPatrolBlue;
_endCondition = "allUnitsKilled"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1; //_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -55,10 +55,10 @@ _noVehiclePatrols = blck_SpawnVeh_Blue;
_noEmplacedWeapons = blck_SpawnEmplaced_Blue; _noEmplacedWeapons = blck_SpawnEmplaced_Blue;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsBlue select 0; _chanceReinforcements = blck_chanceParaBlue;
_noPara = blck_reinforcementsBlue select 1; _noPara = blck_noParaBlue;
_chanceHeliPatrol = blck_reinforcementsBlue select 2; _chanceHeliPatrol = blck_chanceHeliPatrolBlue;
_chanceLoot = blck_reinforcementsBlue select 3; _chanceLoot = 0;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1; //_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -81,10 +81,10 @@ _noVehiclePatrols = blck_SpawnVeh_Blue;
_noEmplacedWeapons = blck_SpawnEmplaced_Blue; _noEmplacedWeapons = blck_SpawnEmplaced_Blue;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsBlue select 0; _chanceReinforcements = blck_chanceParaBlue;
_noPara = blck_reinforcementsBlue select 1; _noPara = blck_noParaBlue;
_chanceHeliPatrol = blck_reinforcementsBlue select 2; _chanceHeliPatrol = blck_chanceHeliPatrolBlue;
_chanceLoot = blck_reinforcementsBlue select 3; _chanceLoot = 0;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1; //_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -47,10 +47,10 @@ _noVehiclePatrols = blck_SpawnVeh_Blue;
_noEmplacedWeapons = blck_SpawnEmplaced_Blue; _noEmplacedWeapons = blck_SpawnEmplaced_Blue;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsBlue select 0; _chanceReinforcements = blck_chanceParaBlue;
_noPara = blck_reinforcementsBlue select 1; _noPara = blck_noParaBlue;
_chanceHeliPatrol = blck_reinforcementsBlue select 2; _chanceHeliPatrol = blck_chanceHeliPatrolBlue;
_chanceLoot = blck_reinforcementsBlue select 3; _chanceLoot = 0;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1; //_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -0,0 +1,102 @@
/*
Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016
Last modified 3/20/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/
*/
private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_markerMissionName","_missionLandscapeMode","_missionLandscape",
"_missionLootBoxes","_missionLootVehicles","_missionEmplacedWeapons","_minNoAI","_maxNoAI","_noAIGroups","_noVehiclePatrols","_noEmplacedWeapons",
"_uniforms","_headgear","_chanceReinforcements","_noPara","_helipatrol","_endCondition","_markerColor","_markerType","_useMines"];
//diag_log "[blckeagls] Spawning Green Mission with template = default";
_crateLoot = blck_BoxLoot_Green;
_lootCounts = blck_lootCountsGreen;
_startMsg = "An enemy research center was sighted in a nearby sector! Check the Green marker on your map for the location!";
_endMsg = "The Sector at the Green Marker is under survivor control!";
_markerLabel = "";
_markerType = ["ELIPSE",[225,225],"GRID"];
_markerColor = "ColorGreen";
_markerMissionName = "Research Center";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Flag_AltisColonial_F",[12.9492,-14.2676,0],0,[true,false]],
["Land_Research_HQ_F",[-40.4258,-57.4492,-7.15256e-007],0,[true,false]],
["Land_Research_HQ_F",[79.9063,68.1406,2.38419e-007],0,[true,false]],
["Land_Research_house_V1_F",[-27.6895,70.9883,0],0,[true,false]],
["Land_Research_house_V1_F",[-110.166,14.3926,0],0,[true,false]],
["Land_Research_house_V1_F",[54.5078,-70.8457,0],0,[true,false]],
["Land_Cargo_Patrol_V1_F",[111.865,11.9375,9.53674e-007],0,[true,false]],
["Land_Cargo_HQ_V2_F",[-115.473,-44.5977,-4.76837e-007],0,[true,false]],
["Land_SharpRock_apart",[-59.6836,-59.5996,-4.76837e-007],0,[true,false]],
["Land_W_sharpRock_apart",[-81.6973,-42.4082,-4.76837e-007],0,[true,false]],
["Land_SharpRock_apart",[-96.2168,-5.32031,4.76837e-007],0,[true,false]],
["Land_Limestone_01_apart_F",[-79.2305,43.4219,0],0,[true,false]],
["Land_Limestone_01_apart_F",[-50.2344,82.4746,0],0,[true,false]],
["Land_BluntRock_apart",[3.88281,-71.5488,-2.38419e-007],0,[true,false]],
["Land_Limestone_01_apart_F",[35.8926,-77.5918,0],0,[true,false]],
["Land_Limestone_01_apart_F",[78.541,-52.3926,-4.76837e-007],0,[true,false]],
["Land_Limestone_01_apart_F",[103.91,-6.88867,0],0,[true,false]],
["Land_BluntRock_apart",[-11.5586,93.9688,-2.38419e-007],0,[true,false]],
["Land_W_sharpStone_02",[54.7344,96.7012,0],0,[true,false]],
["Land_BluntRock_apart",[77.4453,88.8301,-2.38419e-007],0,[true,false]],
["Land_SharpRock_apart",[104.758,45.668,0],0,[true,false]],
["Land_Limestone_01_02_F",[99.5117,23.752,-4.76837e-007],0,[true,false]],
["Land_Limestone_01_02_F",[49.8477,50.0039,0],0,[true,false]],
["Land_Limestone_01_02_F",[-8.14844,32.2227,4.76837e-007],0,[true,false]],
["Land_Limestone_01_02_F",[-35.334,35.1465,-2.38419e-007],0,[true,false]],
["Land_SharpStone_02",[-28.6523,1.33398,4.76837e-007],0,[true,false]],
["Land_SharpStone_02",[-58.707,-7.46094,-4.76837e-007],0,[true,false]],
["Land_Limestone_01_02_F",[64.5078,31.9707,0],0,[true,false]],
["Land_Limestone_01_02_F",[33.7246,11.5469,0],0,[true,false]],
["Land_SharpStone_02",[69.4277,-3.20313,0],0,[true,false]],
["Land_SharpStone_02",[53.7227,-40.1777,-2.38419e-007],0,[true,false]],
["Land_Limestone_01_02_F",[-6.26563,-46.0996,-4.76837e-007],0,[true,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionEmplacedWeapons =
[
["B_HMG_01_high_F",[27.8945,100.275,0],0,[true,false]],
["B_HMG_01_high_F",[-84.7793,72.2617,9.53674e-007],0,[true,false]],
["B_G_Mortar_01_F",[76.0586,66.9414,-3.1265],0,[true,false]]
]; // can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used
_missionGroups =
[
//_x params["_position","_minAI","_maxAI","_skillLevel","_minPatrolRadius","_maxPatrolRadius"];
//[[-52.6523,15.8281,-0.00143838],4,6,"Green",4,8],
//[[-48.6113,-38.877,-0.00143886],4,6,"Green",4,8],
//[[18.4492,-39.5684,-0.00143838],4,6,"Green",4,8],
//[[42.6504,31.6621,-0.00143886],4,6,"Green",4,8],
//[[7.51563,46.4531,-0.001438864],4,6,"Green",4,8],
[[-8.99219,-11.623,-0.00143838],4,6,"Green",4,8]
]; // Can be used to define spawn positions of AI patrols
_missionPatrolVehicles = [
//[selectRandom blck_AIPatrolVehicles,[27.8945,100.275,0],0,[true,false]],
//[selectRandom blck_AIPatrolVehicles,[-84.7793,72.2617,9.53674e-007],0,[true,false]],
[selectRandom blck_AIPatrolVehicles,[-87.8457,-109.947,7.15256e-007],0,[true,false]]
]; // can be used to define the spawn positions of vehicle patrols
// Change _useMines to true/false below to enable mission-specific settings.
_useMines = blck_useMines;
_minNoAI = blck_MinAI_Green;
_maxNoAI = blck_MaxAI_Green;
_noAIGroups = blck_AIGrps_Green;
_noVehiclePatrols = blck_SpawnVeh_Green;
_noEmplacedWeapons = blck_SpawnEmplaced_Green;
_uniforms = blck_SkinList;
_headgear = blck_headgear;
_chanceReinforcements = blck_chanceParaGreen;
_noPara = blck_noParaGreen;
_helipatrol = blck_chanceHeliPatrolGreen;
_endCondition = "allKilledOrPlayerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -1,8 +1,7 @@
/* /*
for DBD Clan
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 3-14-17
-------------------------- --------------------------
License License
@ -14,22 +13,15 @@
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
private["_pathBlue","_missionListBlue"];
_pathScouts = "Scouts";
_missionListScouts = ["Scouts"];
_pathHunters = "Hunters";
_missionListHunters = ["Hunters"];
_pathBlue = "Blue"; _pathBlue = "Blue";
_missionListBlue = ["default"/*,"default2","medicalCamp","redCamp","resupplyCamp"*/]; //_missionListBlue = [/*"default",*/"default2"/*,"medicalCamp","redCamp","resupplyCamp"*/];
_missionListBlue = ["default"/*,"default2"/*,"medicalCamp","redCamp","resupplyCamp"*/];
_pathRed = "Red"; _pathRed = "Red";
_missionListRed = [/*"default","default2","medicalCamp",*/"redCamp"/*,"resupplyCamp"*/]; _missionListRed = [/*"default","default2","medicalCamp",*/"redCamp"];
_pathGreen = "Green"; _pathGreen = "Green";
_missionListGreen = [/*"default","default2",*/"medicalCamp"/*,"redCamp","resupplyCamp"*/]; _missionListGreen = [/*"default","default2",/*"redCamp",*//*"resupplyCamp",*/"medicalCamp"];
_pathOrange = "Orange"; _pathOrange = "Orange";
_missionListOrange = [/*"default","default2","medicalCamp","redCamp",*/"resupplyCamp"]; _missionListOrange = [/*"default","default2","medicalCamp","redCamp",*/"resupplyCamp"];

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -38,9 +38,9 @@ _noVehiclePatrols = blck_SpawnVeh_Green;
_noEmplacedWeapons = blck_SpawnEmplaced_Green; _noEmplacedWeapons = blck_SpawnEmplaced_Green;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsGreen select 0; //_chanceReinforcements = blck_chanceParaGreen;
_noPara = blck_reinforcementsGreen select 1; //_noPara = blck_noParaGreen;
_helipatrol = blck_reinforcementsGreen select 2; //_helipatrol = blck_chanceHeliPatrolGreen;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1; //_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -57,11 +57,10 @@ _noVehiclePatrols = blck_SpawnVeh_Green;
_noEmplacedWeapons = blck_SpawnEmplaced_Green; _noEmplacedWeapons = blck_SpawnEmplaced_Green;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
//_chanceReinforcements = blck_chanceParaGreen;
_chanceReinforcements = 0.5; //blck_reinforcementsBlue select 0; //_noPara = blck_noParaGreen;
_noPara = 4; //blck_reinforcementsBlue select 1; //_helipatrol = blck_chanceHeliPatrolGreen;
_chanceHeliPatrol = 0;//blck_reinforcementsBlue select 2; //_chanceLoot = 0.33; //blck_reinforcementsBlue select 3;
_chanceLoot = 0.33; //blck_reinforcementsBlue select 3;
private["_weap","_mags","_backpacks","_optics","_loadout"]; private["_weap","_mags","_backpacks","_optics","_loadout"];
_weap = 3 + floor(random(4)); _weap = 3 + floor(random(4));

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -81,9 +81,9 @@ _noVehiclePatrols = blck_SpawnVeh_Green;
_noEmplacedWeapons = blck_SpawnEmplaced_Green; _noEmplacedWeapons = blck_SpawnEmplaced_Green;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsGreen select 0; //_chanceReinforcements = blck_chanceParaGreen;
_noPara = blck_reinforcementsGreen select 1; //_noPara = blck_noParaGreen;
_helipatrol = blck_reinforcementsGreen select 2; //_helipatrol = blck_chanceHeliPatrolGreen;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1; //_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -47,9 +47,9 @@ _noVehiclePatrols = blck_SpawnVeh_Green;
_noEmplacedWeapons = blck_SpawnEmplaced_Green; _noEmplacedWeapons = blck_SpawnEmplaced_Green;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsGreen select 0; //_chanceReinforcements = blck_chanceParaGreen;
_noPara = blck_reinforcementsGreen select 1; //_noPara = blck_noParaGreen;
_helipatrol = blck_reinforcementsGreen select 2; //_helipatrol = blck_chanceHeliPatrolGreen;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1; //_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -0,0 +1,102 @@
/*
Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016
Last modified 3/20/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/
*/
private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_markerMissionName","_missionLandscapeMode","_missionLandscape",
"_missionLootBoxes","_missionLootVehicles","_missionEmplacedWeapons","_minNoAI","_maxNoAI","_noAIGroups","_noVehiclePatrols","_noEmplacedWeapons",
"_uniforms","_headgear","_chanceReinforcements","_noPara","_helipatrol","_endCondition","_markerColor","_markerType","_useMines"];
//diag_log "[blckeagls] Spawning Green Mission with template = default";
_crateLoot = blck_BoxLoot_Green;
_lootCounts = blck_lootCountsGreen;
_startMsg = "An enemy research center was sighted in a nearby sector! Check the Green marker on your map for the location!";
_endMsg = "The Sector at the Green Marker is under survivor control!";
_markerLabel = "";
_markerType = ["ELIPSE",[225,225],"GRID"];
_markerColor = "ColorGreen";
_markerMissionName = "Research Center";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Flag_AltisColonial_F",[12.9492,-14.2676,0],0,[true,false]],
["Land_Research_HQ_F",[-40.4258,-57.4492,-7.15256e-007],0,[true,false]],
["Land_Research_HQ_F",[79.9063,68.1406,2.38419e-007],0,[true,false]],
["Land_Research_house_V1_F",[-27.6895,70.9883,0],0,[true,false]],
["Land_Research_house_V1_F",[-110.166,14.3926,0],0,[true,false]],
["Land_Research_house_V1_F",[54.5078,-70.8457,0],0,[true,false]],
["Land_Cargo_Patrol_V1_F",[111.865,11.9375,9.53674e-007],0,[true,false]],
["Land_Cargo_HQ_V2_F",[-115.473,-44.5977,-4.76837e-007],0,[true,false]],
["Land_SharpRock_apart",[-59.6836,-59.5996,-4.76837e-007],0,[true,false]],
["Land_W_sharpRock_apart",[-81.6973,-42.4082,-4.76837e-007],0,[true,false]],
["Land_SharpRock_apart",[-96.2168,-5.32031,4.76837e-007],0,[true,false]],
["Land_Limestone_01_apart_F",[-79.2305,43.4219,0],0,[true,false]],
["Land_Limestone_01_apart_F",[-50.2344,82.4746,0],0,[true,false]],
["Land_BluntRock_apart",[3.88281,-71.5488,-2.38419e-007],0,[true,false]],
["Land_Limestone_01_apart_F",[35.8926,-77.5918,0],0,[true,false]],
["Land_Limestone_01_apart_F",[78.541,-52.3926,-4.76837e-007],0,[true,false]],
["Land_Limestone_01_apart_F",[103.91,-6.88867,0],0,[true,false]],
["Land_BluntRock_apart",[-11.5586,93.9688,-2.38419e-007],0,[true,false]],
["Land_W_sharpStone_02",[54.7344,96.7012,0],0,[true,false]],
["Land_BluntRock_apart",[77.4453,88.8301,-2.38419e-007],0,[true,false]],
["Land_SharpRock_apart",[104.758,45.668,0],0,[true,false]],
["Land_Limestone_01_02_F",[99.5117,23.752,-4.76837e-007],0,[true,false]],
["Land_Limestone_01_02_F",[49.8477,50.0039,0],0,[true,false]],
["Land_Limestone_01_02_F",[-8.14844,32.2227,4.76837e-007],0,[true,false]],
["Land_Limestone_01_02_F",[-35.334,35.1465,-2.38419e-007],0,[true,false]],
["Land_SharpStone_02",[-28.6523,1.33398,4.76837e-007],0,[true,false]],
["Land_SharpStone_02",[-58.707,-7.46094,-4.76837e-007],0,[true,false]],
["Land_Limestone_01_02_F",[64.5078,31.9707,0],0,[true,false]],
["Land_Limestone_01_02_F",[33.7246,11.5469,0],0,[true,false]],
["Land_SharpStone_02",[69.4277,-3.20313,0],0,[true,false]],
["Land_SharpStone_02",[53.7227,-40.1777,-2.38419e-007],0,[true,false]],
["Land_Limestone_01_02_F",[-6.26563,-46.0996,-4.76837e-007],0,[true,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionEmplacedWeapons =
[
["B_HMG_01_high_F",[27.8945,100.275,0],0,[true,false]],
["B_HMG_01_high_F",[-84.7793,72.2617,9.53674e-007],0,[true,false]],
["B_G_Mortar_01_F",[76.0586,66.9414,-3.1265],0,[true,false]]
]; // can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used
_missionGroups =
[
//_x params["_position","_minAI","_maxAI","_skillLevel","_minPatrolRadius","_maxPatrolRadius"];
//[[-52.6523,15.8281,-0.00143838],4,6,"Green",4,8],
//[[-48.6113,-38.877,-0.00143886],4,6,"Green",4,8],
//[[18.4492,-39.5684,-0.00143838],4,6,"Green",4,8],
//[[42.6504,31.6621,-0.00143886],4,6,"Green",4,8],
//[[7.51563,46.4531,-0.001438864],4,6,"Green",4,8],
[[-8.99219,-11.623,-0.00143838],4,6,"Green",4,8]
]; // Can be used to define spawn positions of AI patrols
_missionPatrolVehicles = [
//[selectRandom blck_AIPatrolVehicles,[27.8945,100.275,0],0,[true,false]],
//[selectRandom blck_AIPatrolVehicles,[-84.7793,72.2617,9.53674e-007],0,[true,false]],
[selectRandom blck_AIPatrolVehicles,[-87.8457,-109.947,7.15256e-007],0,[true,false]]
]; // can be used to define the spawn positions of vehicle patrols
// Change _useMines to true/false below to enable mission-specific settings.
_useMines = blck_useMines;
_minNoAI = blck_MinAI_Green;
_maxNoAI = blck_MaxAI_Green;
_noAIGroups = blck_AIGrps_Green;
_noVehiclePatrols = blck_SpawnVeh_Green;
_noEmplacedWeapons = blck_SpawnEmplaced_Green;
_uniforms = blck_SkinList;
_headgear = blck_headgear;
_chanceReinforcements = blck_chanceParaGreen;
_noPara = blck_noParaGreen;
_helipatrol = blck_chanceHeliPatrolGreen;
_endCondition = "allKilledOrPlayerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -38,9 +38,9 @@ _noVehiclePatrols = blck_SpawnVeh_Orange;
_noEmplacedWeapons = blck_SpawnEmplaced_Orange; _noEmplacedWeapons = blck_SpawnEmplaced_Orange;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsOrange select 0; //_chanceReinforcements = blck_reinforcementsOrange select 0;
_noPara = blck_reinforcementsOrange select 1; //_noPara = blck_reinforcementsOrange select 1;
_helipatrol = blck_reinforcementsOrange select 2; //_helipatrol = blck_reinforcementsOrange select 2;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1; //_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -56,9 +56,9 @@ _noEmplacedWeapons = blck_SpawnEmplaced_Orange;
_useMines = blck_useMines; _useMines = blck_useMines;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsOrange select 0; //_chanceReinforcements = blck_reinforcementsOrange select 0;
_noPara = blck_reinforcementsOrange select 1; //_noPara = blck_reinforcementsOrange select 1;
_helipatrol = blck_reinforcementsOrange select 2; //_helipatrol = blck_reinforcementsOrange select 2;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
////_timeOut = -1; ////_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -81,9 +81,9 @@ _noVehiclePatrols = blck_SpawnVeh_Orange;
_noEmplacedWeapons = blck_SpawnEmplaced_Orange; _noEmplacedWeapons = blck_SpawnEmplaced_Orange;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsOrange select 0; //_chanceReinforcements = blck_reinforcementsOrange select 0;
_noPara = blck_reinforcementsOrange select 1; //_noPara = blck_reinforcementsOrange select 1;
_helipatrol = blck_reinforcementsOrange select 2;; //_helipatrol = blck_reinforcementsOrange select 2;;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
////_timeOut = -1; ////_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -60,7 +60,7 @@ _weap = 4 + floor(random(4));
_mags = 12 + floor(random(6)); _mags = 12 + floor(random(6));
_backpacks = 1 + floor(random(2)); _backpacks = 1 + floor(random(2));
_optics = 5 + floor(random(6)); _optics = 5 + floor(random(6));
_reinforcementLootCounts = [_weap,_mags,_optics,0,0,_backpacks]; //_reinforcementLootCounts = [_weap,_mags,_optics,0,0,_backpacks];
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1; //_timeOut = -1;

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -38,9 +38,9 @@ _noEmplacedWeapons = blck_SpawnEmplaced_Red;
_useMines = blck_useMines; _useMines = blck_useMines;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsRed select 0; //_chanceReinforcements = blck_reinforcementsRed select 0;
_noPara = blck_reinforcementsRed select 1; //_noPara = blck_reinforcementsRed select 1;
_helipatrol = blck_reinforcementsRed select 2; //_helipatrol = blck_reinforcementsRed select 2;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1; //_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -55,9 +55,9 @@ _noEmplacedWeapons = blck_SpawnEmplaced_Red;
_useMines = blck_useMines; _useMines = blck_useMines;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsRed select 0; //_chanceReinforcements = blck_reinforcementsRed select 0;
_noPara = blck_reinforcementsRed select 1; //_noPara = blck_reinforcementsRed select 1;
_helipatrol = blck_reinforcementsRed select 2; //_helipatrol = blck_reinforcementsRed select 2;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1; //_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -84,10 +84,10 @@ _useMines = blck_useMines;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = 0.10; //blck_reinforcementsBlue select 0; //_chanceReinforcements = 0.10; //blck_reinforcementsBlue select 0;
_noPara = 2; //blck_reinforcementsBlue select 1; //_noPara = 2; //blck_reinforcementsBlue select 1;
_chanceHeliPatrol = 0;//blck_reinforcementsBlue select 2; //_chanceHeliPatrol = 0;//blck_reinforcementsBlue select 2;
_chanceLoot = 0.10; //blck_reinforcementsBlue select 3; //_chanceLoot = 0.10; //blck_reinforcementsBlue select 3;
private["_weap","_mags","_backpacks","_optics","_loadout"]; private["_weap","_mags","_backpacks","_optics","_loadout"];
_weap = 3 + floor(random(4)); _weap = 3 + floor(random(4));

View File

@ -1,6 +1,6 @@
/* /*
Mission Template by Ghostrider-DbD- Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for DBD Clan Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016 Copyright 2016
Last modified 3/20/17 Last modified 3/20/17
@ -47,9 +47,9 @@ _noEmplacedWeapons = blck_SpawnEmplaced_Red;
_useMines = blck_useMines; _useMines = blck_useMines;
_uniforms = blck_SkinList; _uniforms = blck_SkinList;
_headgear = blck_headgear; _headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsRed select 0; //_chanceReinforcements = blck_reinforcementsRed select 0;
_noPara = blck_reinforcementsRed select 1; //_noPara = blck_reinforcementsRed select 1;
_helipatrol = blck_reinforcementsRed select 2; //_helipatrol = blck_reinforcementsRed select 2;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" _endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
//_timeOut = -1; //_timeOut = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -20,6 +20,8 @@ switch (toLower worldName) do
case "namalsk": {_mapCenter = getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition");_maxDistance = 5000}; case "namalsk": {_mapCenter = getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition");_maxDistance = 5000};
case "taviana": {_mapCenter = [12000,12000,0];_maxDistance = 12000}; case "taviana": {_mapCenter = [12000,12000,0];_maxDistance = 12000};
case "napf" : {_mapCenter = getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition");_maxDistance = 12000}; case "napf" : {_mapCenter = getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition");_maxDistance = 12000};
case "lythium": {_mapCenter = [10000,10000,0]; _maxDistance = 6000;};
default {_mapCenter = [6000,6000,0]; _maxDistance = 6000;};
}; };
_evaluate = true; _evaluate = true;

View File

@ -1,10 +1,7 @@
/* /*
Define loot crate configurations for Epoch. Define loot crate configurations for Epoch.
By Ghostrider [GRG]
for DBD Clan
By Ghostrider-DBD-
Copyright 2016 Copyright 2016
Last Modified 3-14-17
-------------------------- --------------------------
License License
@ -146,6 +143,7 @@ _loot_build = blck_epochBuildingSupplies;
_loot_explosives = [["HandGrenade",3],["MiniGrenade",3],["SatchelCharge_Remote_Mag",3],["DemoCharge_Remote_Mag",3],["ClaymoreDirectionalMine_Remote_Mag",3]]; _loot_explosives = [["HandGrenade",3],["MiniGrenade",3],["SatchelCharge_Remote_Mag",3],["DemoCharge_Remote_Mag",3],["ClaymoreDirectionalMine_Remote_Mag",3]];
_loot_launchers = ["launch_NLAW_F","launch_RPG32_F","launch_B_Titan_F","launch_Titan_short_F"]; _loot_launchers = ["launch_NLAW_F","launch_RPG32_F","launch_B_Titan_F","launch_Titan_short_F"];
// Loot Configuration 1: Heavy Weapons and explosives // Loot Configuration 1: Heavy Weapons and explosives
_box1_Pistols = 3; _box1_Pistols = 3;
_box1_Rifles = 5; _box1_Rifles = 5;

View File

@ -1,10 +1,8 @@
/* /*
Define constants for SLS for Exile Define constants for SLS for Exile
for DBD Clan By Ghostrider [GRG]
By Ghostrider-DBD-
Copyright 2016 Copyright 2016
Last Modified 3-14-17
-------------------------- --------------------------
License License
@ -13,9 +11,7 @@
http://creativecommons.org/licenses/by-nc-sa/4.0/ http://creativecommons.org/licenses/by-nc-sa/4.0/
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
diag_log "[blckeagls] SLS : Loading Static Loot Container Spawning System for Exile";
_lootBoxes = _lootBoxes =
[ [
/*[ /*[
@ -41,8 +37,10 @@ _lootBoxes =
] // No comma after this last one ] // No comma after this last one
] // No comma after this last one ] // No comma after this last one
*/ */
]; ];
private["_loot_uniforms","_loot_pistols","_loot_rifles","_loot_snipers","_loot_LMG","_loot_silencers"]; private["_loot_uniforms","_loot_pistols","_loot_rifles","_loot_snipers","_loot_LMG","_loot_silencers"];
// Edit these to your liking // Edit these to your liking
//Uniforms //Uniforms

View File

@ -1,6 +1,6 @@
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 8-23-17 Last Modified 8-23-17
@ -13,7 +13,7 @@
*/ */
//Based on the Random Loot Crates addon by Darth_Rogue & Chisel (tdwhite) //Based on the Random Loot Crates addon by Darth_Rogue & Chisel (tdwhite)
// Re-written by Ghostrider-DBD- to add features and clean up code // Re-written by Ghostrider [GRG] to add features and clean up code
// Do not touch anything below this line. // Do not touch anything below this line.
/// ******************************************************************************************************************************************************************************************************************************** /// ********************************************************************************************************************************************************************************************************************************

View File

@ -1,6 +1,6 @@
/* /*
Static loot crate spawner Static loot crate spawner
by Ghostrider-DbD- by Ghostrider [GRG]
For Arma 3 Exile and Epoch For Arma 3 Exile and Epoch
Last Updated 11/12/16 Last Updated 11/12/16
-------------------------- --------------------------
@ -10,7 +10,9 @@
http://creativecommons.org/licenses/by-nc-sa/4.0/ http://creativecommons.org/licenses/by-nc-sa/4.0/
*/ */
#ifdef blck_debugMode
diag_log "[blckeagls] SLS System: Initializing Static Loot Crate System!"; diag_log "[blckeagls] SLS System: Initializing Static Loot Crate System!";
#endif
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
if not (isNull( configFile >> "CfgPatches" >> "a3_epoch_server" )) then if not (isNull( configFile >> "CfgPatches" >> "a3_epoch_server" )) then

View File

@ -1,6 +1,6 @@
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 3-14-17 Last Modified 3-14-17

View File

@ -1,6 +1,6 @@
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 3-14-17 Last Modified 3-14-17

View File

@ -1,8 +1,7 @@
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 3-14-17
-------------------------- --------------------------
License License

View File

@ -1,163 +0,0 @@
/*
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-DbD
Last Modified 3-18-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";
if !(isNil "blck_Initialized") exitWith{};
private["_blck_loadingStartTime"];
_blck_loadingStartTime = diag_tickTime;
#include "\q\addons\custom_server\init\build.sqf";
diag_log format["[blckeagls] Loading Version %2 Build Date %1",_blck_versionDate,_blck_version];
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf";
waitUntil {(isNil "blck_variablesLoaded") isEqualTo false;};
waitUntil{blck_variablesLoaded};
blck_variablesLoaded = nil;
//if !(blck_debugON) then {uiSleep 60;};
// compile functions
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf";
waitUntil {(isNil "blck_functionsCompiled") isEqualTo false;};
waitUntil{blck_functionsCompiled};
blck_functionsCompiled = nil;
diag_log format["[blckeagls] debug mode settings:blck_debugON = %1 blck_debugLevel = %2",blck_debugON,blck_debugLevel];
execVM "\q\addons\custom_server\Configs\blck_configs.sqf";
waitUntil {(isNil "blck_configsLoaded") isEqualTo false;};
waitUntil{blck_configsLoaded};
blck_configsLoaded = nil;
// spawn map addons to give the server time to position them before spawning in crates etc.
if (blck_spawnMapAddons) then
{
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\MapAddons\MapAddons_init.sqf";
}else{
diag_log "[blckegls] Map Addons disabled";
};
blck_spawnMapAddons = nil;
diag_log "[blckeagls] Loading Map-specific information";
execVM "\q\addons\custom_server\Compiles\Functions\GMS_fnc_findWorld.sqf";
waitUntil {(isNil "blck_worldSet") isEqualTo false;};
waitUntil{blck_worldSet};
blck_worldSet = nil;
// set up the lists of available missions for each mission category
diag_log "[blckeagls] Loading Mission Lists";
#include "\q\addons\custom_server\Missions\GMS_missionLists.sqf";
#ifdef DBDserver
//start the dynamic loot crate system
[] execVM "\q\addons\custom_server\DLS\DLS_init.sqf";
waitUntil {(isNil "blck_DLSComplete") isEqualTo false;};
waitUntil{blck_DLSComplete};
blck_DLSComplete = nil;
#endif
// Load any user-defined specifications or overrides
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf";
diag_log format["[blckeagls] version %1 Build %2 Loaded in %3 seconds",_blck_versionDate,_blck_version,diag_tickTime - _blck_loadingStartTime]; //,blck_modType];
diag_log format["blckeagls] waiting for players to join ---- >>>>"];
if !(blck_debugON || (blck_debugLevel isEqualTo 0)) then
{
waitUntil{{isPlayer _x}count playableUnits > 0};
diag_log "[blckeagls] Player Connected, spawning missions";
} else {
diag_log "[blckeagls] spawning Missions";
};
if (blck_spawnStaticLootCrates) then
{
// Start the static loot crate spawner
diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner Started";
[] spawn compileFinal preprocessFileLineNumbers "\q\addons\custom_server\SLS\SLS_init.sqf";
_wait = true;
while {_wait} do
{
if !(isNil "blck_SLSComplete") then {
if (blck_SLSComplete) then {
blck_SLSComplete = nil;
_wait = false;
};
};
diag_log format["Waiting for SLS to be completed at %1",diag_tickTime];
uiSleep 1;
};
diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner Done";
}else{
diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner disabled";
};
#ifdef DBDserver
diag_log "[blckegls] Running DBD Clan Version";
#endif
#ifdef useDynamicSimulation
diag_log "[blckegls] dynamic simulation manager enabled";
#else
diag_log "[blckegls] blckegls simulation manager enabled";
#endif
// Initialize static missions
[] execVM "\q\addons\custom_server\Missions\Static\GMS_StaticMissions_init.sqf";
uiSleep 1.0;
//Start the mission timers
if (blck_enableOrangeMissions > 0) then
{
//[_missionListOrange,_pathOrange,"OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange] spawn blck_fnc_missionTimer;//Starts major mission system (Orange Map Markers)
[_missionListOrange,_pathOrange,"OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange,blck_enableOrangeMissions] call blck_fnc_addMissionToQue;
};
if (blck_enableGreenMissions > 0) then
{
//[_missionListGreen,_pathGreen,"GreenMarker","green",blck_TMin_Green,blck_TMax_Green] spawn blck_fnc_missionTimer;//Starts major mission system 2 (Green Map Markers)
[_missionListGreen,_pathGreen,"GreenMarker","green",blck_TMin_Green,blck_TMax_Green,blck_enableGreenMissions] call blck_fnc_addMissionToQue;
};
if (blck_enableRedMissions > 0) then
{
//[_missionListRed,_pathRed,"RedMarker","red",blck_TMin_Red,blck_TMax_Red] spawn blck_fnc_missionTimer;//Starts minor mission system (Red Map Markers)//Starts minor mission system 2 (Red Map Markers)
[_missionListRed,_pathRed,"RedMarker","red",blck_TMin_Red,blck_TMax_Red,blck_enableRedMissions] call blck_fnc_addMissionToQue;
};
if (blck_enableBlueMissions > 0) then
{
//[_missionListBlue,_pathBlue,"BlueMarker","blue",blck_TMin_Blue,blck_TMax_Blue] spawn blck_fnc_missionTimer;//Starts minor mission system (Blue Map Markers)
[_missionListBlue,_pathBlue,"BlueMarker","blue",blck_TMin_Blue,blck_TMax_Blue,blck_enableBlueMissions] call blck_fnc_addMissionToQue;
};
#ifdef DBDserver
if (blck_enableScoutsMissions > 0) then
{
//[_missionListScouts,_pathScouts,"ScoutsMarker","red",blck_TMin_Scouts,blck_TMax_Scouts] spawn blck_fnc_missionTimer;
[_missionListScouts,_pathScouts,"ScoutsMarker","red",blck_TMin_Scouts,blck_TMax_Scouts,blck_enableScoutsMissions, false] call blck_fnc_addMissionToQue;
};
if (blck_enableHunterMissions > 0) then
{
//[_missionListHunters,_pathHunters,"HunterMarker","green",blck_TMin_Hunter,blck_TMax_Hunter] spawn blck_fnc_missionTimer;
// params["_missionList","_path","_marker","_difficulty","_tMin","_tMax","_noMissions"];
[_missionListHunters,_pathHunters,"HunterMarker","green",blck_TMin_Hunter,blck_TMax_Hunter,blck_enableHunterMissions, false] call blck_fnc_addMissionToQue;
};
// Running new version of Crash sites.
if (blck_maxCrashSites > 0) then
{
[] execVM "\q\addons\custom_server\Missions\HeliCrashs\Crashes2.sqf";
};
#endif
// start the main thread for the mission system which monitors missions running and stuff to be cleaned up
[] spawn blck_fnc_mainThread;
diag_log "[blckeagls] Mission spawner started";

View File

@ -6,8 +6,8 @@
And mostly importantly, 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. 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-DbD By Ghostrider-GRG-
Last Modified 3-18-17
-------------------------- --------------------------
License License
-------------------------- --------------------------
@ -46,9 +46,6 @@ blck_configsLoaded = nil;
// Load any user-defined specifications or overrides // Load any user-defined specifications or overrides
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf"; call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf";
#ifdef GRGserver
diag_log "[blckegls] Running DBD Clan Version";
#endif
#ifdef useDynamicSimulation #ifdef useDynamicSimulation
diag_log "[blckegls] dynamic simulation manager enabled"; diag_log "[blckegls] dynamic simulation manager enabled";
#else #else

View File

@ -1,13 +1,6 @@
/* /*
AI Mission for Epoch and Exile Mods to Arma 3 By Ghostrider-GRG-
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-DbD
Last Modified 3-18-17
-------------------------- --------------------------
License License
-------------------------- --------------------------
@ -64,14 +57,6 @@ blck_worldSet = nil;
diag_log "[blckeagls] Loading Mission Lists"; diag_log "[blckeagls] Loading Mission Lists";
#include "\q\addons\custom_server\Missions\GMS_missionLists.sqf"; #include "\q\addons\custom_server\Missions\GMS_missionLists.sqf";
#ifdef GRGserver
//start the dynamic loot crate system
[] execVM "\q\addons\custom_server\DLS\DLS_init.sqf";
waitUntil {(isNil "blck_DLSComplete") isEqualTo false;};
waitUntil{blck_DLSComplete};
blck_DLSComplete = nil;
#endif
// Load any user-defined specifications or overrides // Load any user-defined specifications or overrides
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf"; call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf";
@ -108,9 +93,6 @@ if (blck_spawnStaticLootCrates) then
diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner disabled"; diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner disabled";
}; };
#ifdef GRGserver
diag_log "[blckegls] Running GhostriderGaming Version";
#endif
#ifdef useDynamicSimulation #ifdef useDynamicSimulation
diag_log "[blckegls] dynamic simulation manager enabled"; diag_log "[blckegls] dynamic simulation manager enabled";
#else #else
@ -139,26 +121,6 @@ if (blck_enableBlueMissions > 0) then
[_missionListBlue,_pathBlue,"BlueMarker","blue",blck_TMin_Blue,blck_TMax_Blue,blck_enableBlueMissions] call blck_fnc_addMissionToQue; [_missionListBlue,_pathBlue,"BlueMarker","blue",blck_TMin_Blue,blck_TMax_Blue,blck_enableBlueMissions] call blck_fnc_addMissionToQue;
}; };
#ifdef GRGserver
if (blck_enableScoutsMissions > 0) then
{
//[_missionListScouts,_pathScouts,"ScoutsMarker","red",blck_TMin_Scouts,blck_TMax_Scouts] spawn blck_fnc_missionTimer;
[_missionListScouts,_pathScouts,"ScoutsMarker","red",blck_TMin_Scouts,blck_TMax_Scouts,blck_enableScoutsMissions] call blck_fnc_addMissionToQue;
};
if (blck_enableHunterMissions > 0) then
{
//[_missionListHunters,_pathHunters,"HunterMarker","green",blck_TMin_Hunter,blck_TMax_Hunter] spawn blck_fnc_missionTimer;
// params["_missionList","_path","_marker","_difficulty","_tMin","_tMax","_noMissions"];
[_missionListHunters,_pathHunters,"HunterMarker","green",blck_TMin_Hunter,blck_TMax_Hunter,blck_enableHunterMissions] call blck_fnc_addMissionToQue;
};
// Running new version of Crash sites.
if (blck_maxCrashSites > 0) then
{
[] execVM "\q\addons\custom_server\Missions\HeliCrashs\Crashes2.sqf";
};
#endif
// start the main thread for the mission system which monitors missions running and stuff to be cleaned up // start the main thread for the mission system which monitors missions running and stuff to be cleaned up
[] spawn blck_fnc_mainThread; [] spawn blck_fnc_mainThread;

View File

@ -1,6 +1,6 @@
private ["_version","_versionDate"]; private ["_version","_versionDate"];
blck_version = "6.76 Build 102"; blck_version = "6.78 Build 106";
_blck_version = blck_version; _blck_version = blck_version;
_blck_versionDate = "12-22-17 7:00 PM"; _blck_versionDate = "1-5-18 7:00 PM";
blck_pvs_version = _blck_version; blck_pvs_version = _blck_version;
publicVariable blck_pvs_version; publicVariable blck_pvs_version;

5
KnownIssues.txt Normal file
View File

@ -0,0 +1,5 @@
Known issues
1. AI Vehicles are not unlocked when an HC is connected.

View File

@ -8,6 +8,11 @@ Ideas or code from that by Vampire and KiloSwiss have been used for certain func
Significant Changes: Significant Changes:
===================== =====================
Version 6.78 build 106
Changed how event handlers are handled.
bug fixes
Removed lines specific to GRG servers.
Version 6.76 Build 104 Version 6.76 Build 104
Added: A new timer that determines the time after which Vehicles are deleted once all AI are dead if no player has entered the driver's seat. Added: A new timer that determines the time after which Vehicles are deleted once all AI are dead if no player has entered the driver's seat.
Added: an optional variable in the template for missions called _missionGroups by which you can define the parameters (position, skill level, number, patrol radius) for each group spawned. Added: an optional variable in the template for missions called _missionGroups by which you can define the parameters (position, skill level, number, patrol radius) for each group spawned.