Added UMS; Added respawn timer to statics; Fixed event handler errors.

This commit is contained in:
Ghostrider-DbD- 2017-12-17 17:51:44 -05:00
parent 4c2fdd89d7
commit 927b1b0550
152 changed files with 3415 additions and 630 deletions

View File

@ -1,5 +1,5 @@
//This script sends Message Information to allplayers //This script sends Message Information to allplayers
// Last modified 1/4/17 by Ghostrider-DBD- // Last modified 1/4/17 by Ghostrider [GRG]
/* /*
-------------------------- --------------------------
License License

View File

@ -1,9 +1,9 @@
/* /*
Determines the total number of spawned groups on the side used by the mission system and returns this value. Determines the total number of spawned groups on the side used by the mission system and returns this value.
By Ghostrider-DbD- By Ghostrider [GRG]
Last updated 12/21/16 Last updated 12/21/16
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
-------------------------- --------------------------
License License
-------------------------- --------------------------

View File

@ -6,7 +6,7 @@
If _item is a string then add 1 of that item to the container. If _item is a string then add 1 of that item to the container.
If _item is an array with 2 elements ["itemName",3] then assume that the first element is a string and is the name of the item, and the second is the number to add. If _item is an array with 2 elements ["itemName",3] then assume that the first element is a string and is the name of the item, and the second is the number to add.
if _item is an array with 3 elements ["itemName",2,6] assume that the first element is the item name (string), the second the min # to add and the third the max # to add. if _item is an array with 3 elements ["itemName",2,6] assume that the first element is the item name (string), the second the min # to add and the third the max # to add.
by Ghostrider-DbD- by Ghostrider [GRG]
11/14/16 11/14/16
-------------------------- --------------------------
@ -26,7 +26,10 @@
_isBackpack = false; _isBackpack = false;
_quant = 0; _quant = 0;
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log format["blck_addItemToCrate:: -- >> itemInfo = %1 | _crate %2 | _addAmmo %3",_itemInfo, _crate, _addAmmo]; if (blck_debugLevel > 2) then
{
diag_log format["blck_addItemToCrate:: -- >> itemInfo = %1 | _crate %2 | _addAmmo %3",_itemInfo, _crate, _addAmmo];
};
#endif #endif
if (typeName _itemInfo isEqualTo "STRING") then {_item = _itemInfo; _quant = 1}; // case where only the item descriptor was provided if (typeName _itemInfo isEqualTo "STRING") then {_item = _itemInfo; _quant = 1}; // case where only the item descriptor was provided
if (typeName _itemInfo isEqualTo "ARRAY") then { if (typeName _itemInfo isEqualTo "ARRAY") then {

View File

@ -2,7 +2,7 @@
// Returns an array of all players on the server // Returns an array of all players on the server
/* /*
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 8/16/17 Last Modified 8/16/17
-------------------------- --------------------------

View File

@ -1,7 +1,7 @@
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
-------------------------- --------------------------
License License
-------------------------- --------------------------

View File

@ -1,7 +1,7 @@
/* /*
call as [] call blck_fnc_cleanEmptyGroups; call as [] call blck_fnc_cleanEmptyGroups;
Deletes any empty groups and thereby prevents errors resulting from createGroup returning nullGroup. Deletes any empty groups and thereby prevents errors resulting from createGroup returning nullGroup.
By Ghostrider-DbD- By Ghostrider [GRG]
11/16/16 11/16/16
-------------------------- --------------------------
License License

View File

@ -1,7 +1,7 @@
/* /*
Generates an array of equidistant positions along the circle of diameter _radius Generates an array of equidistant positions along the circle of diameter _radius
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 1-22-17 Last Modified 1-22-17
-------------------------- --------------------------

View File

@ -2,8 +2,8 @@
// As written this relies on BIS_fnc_findSafePos to ensure that the spawn point is not on water or an excessively steep slope. // As written this relies on BIS_fnc_findSafePos to ensure that the spawn point is not on water or an excessively steep slope.
// //
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 1-22-17 Last Modified 1-22-17
-------------------------- --------------------------

View File

@ -1,5 +1,5 @@
// Last modified 8/13/17 by Ghostrider-DBD- // Last modified 8/13/17 by Ghostrider [GRG]
/* /*
-------------------------- --------------------------
License License

View File

@ -1,6 +1,6 @@
// pull trader cities from config // pull trader cities from config
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
-------------------------- --------------------------
License License
-------------------------- --------------------------

View File

@ -1,6 +1,6 @@
// pull trader cities from config // pull trader cities from config
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
-------------------------- --------------------------
License License
-------------------------- --------------------------

View File

@ -15,7 +15,7 @@
case 1: [["item1",...,"itemN"],6]; The script will randomly select from the array of item names 6 times and call the loot loader each time. case 1: [["item1",...,"itemN"],6]; The script will randomly select from the array of item names 6 times and call the loot loader each time.
case 2: [["item1",...,"itemN"],6, 9]; As above except that an item will be selected a minimum of 6 and maximum of 9 times. case 2: [["item1",...,"itemN"],6, 9]; As above except that an item will be selected a minimum of 6 and maximum of 9 times.
by Ghostrider-DbD- by Ghostrider [GRG]
8/13/17 8/13/17
-------------------------- --------------------------
@ -30,28 +30,24 @@
params["_loadout","_crate",["_addAmmo",0]]; params["_loadout","_crate",["_addAmmo",0]];
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log format["blck_fnc_loadLootFromItemsArray:: _this %1",_this]; if (blck_debugLevel > 2) then
diag_log format["blck_fnc_loadLootFromItemsArray:: _crate %1 | _addAmmo %2 | _loadout %3",_crate,_addAmmo,_loadout]; {
diag_log format["blck_fnc_loadLootFromItemsArray:: _this %1",_this];
diag_log format["blck_fnc_loadLootFromItemsArray:: _crate %1 | _addAmmo %2 | _loadout %3",_crate,_addAmmo,_loadout];
};
#endif #endif
if ((_loadout select 0) isEqualTo []) exitWith {}; if ((_loadout select 0) isEqualTo []) exitWith {};
{ {
private["_tries","_q","_item"]; private["_tries","_q","_item"];
_tries = 0; _tries = 0;
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log format["blck_fnc_loadLootFromItemsArray:: -- >> now loading for %1",_x]; if (blck_debugLevel > 2) then
{
diag_log format["blck_fnc_loadLootFromItemsArray:: -- >> now loading for %1",_x];
};
#endif #endif
_q = _x select 1; // this can be a number or array. _q = _x select 1; // this can be a number or array.
_tries = [_q] call blck_fnc_getNumberFromRange; _tries = [_q] call blck_fnc_getNumberFromRange;
/*
if ( (typeName _q) isEqualTo "ARRAY") then // Assume the array contains a min/max number to add
{
if ((count _q) isEqualTo 2) then {_tries = (_q select 0) + round(random(((_q select 1) - (_q select 0))));} else {_tries = 0;};
};
if ((typeName _q) isEqualTo "SCALAR") then
{
_tries = _q;
};
*/
for "_i" from 1 to _tries do for "_i" from 1 to _tries do
{ {
_item = selectRandom (_x select 0); _item = selectRandom (_x select 0);

View File

@ -1,5 +1,5 @@
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
Last modified 8-15-17 Last modified 8-15-17
-------------------------- --------------------------
License License
@ -10,10 +10,10 @@
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
diag_log format["starting _fnc_mainThread with time = %1",diag_tickTime]; //diag_log format["starting _fnc_mainThread with time = %1",diag_tickTime];
#ifdef DBDserver #ifdef GRGserver
diag_log "running DBDServer version of _fnc_mainThread"; diag_log "running GRGserver version of _fnc_mainThread";
#endif #endif
private["_modType","_timer1sec","_timer5sec","_timer20sec","_timer5min","_timer5min"]; private["_modType","_timer1sec","_timer5sec","_timer20sec","_timer5min","_timer5min"];
@ -30,7 +30,7 @@ while {true} do
if (diag_tickTime - _timer1sec > 1) then if (diag_tickTime - _timer1sec > 1) then
{ {
[] call blck_fnc_vehicleMonitor; [] call blck_fnc_vehicleMonitor;
#ifdef DBDserver #ifdef GRGserver
[] call blck_fnc_broadcastServerFPS; [] call blck_fnc_broadcastServerFPS;
#endif #endif
_timer1sec = diag_tickTime; _timer1sec = diag_tickTime;
@ -39,6 +39,7 @@ while {true} do
{ {
_timer5sec = diag_tickTime; _timer5sec = diag_tickTime;
[] call blck_fnc_missionGroupMonitor; [] call blck_fnc_missionGroupMonitor;
[] call blck_fnc_sm_monitorStaticMissionUnits;
//[] call blck_fnc_sm_checkForPlayerNearMission; //[] call blck_fnc_sm_checkForPlayerNearMission;
}; };
if (diag_tickTime - _timer20sec > 20) then if (diag_tickTime - _timer20sec > 20) then
@ -52,11 +53,13 @@ while {true} do
if ((diag_tickTime - _timer1min) > 60) then if ((diag_tickTime - _timer1min) > 60) then
{ {
_timer1min = diag_tickTime; _timer1min = diag_tickTime;
if (blck_useTimeAcceleration) then {[] call blck_fnc_timeAcceleration}; [] call blck_fnc_timeAcceleration;
//diag_log format["_fnc_mainThread: calling blck_fnc_spawnPendingMissions at %1",diag_tickTime];
[] call blck_fnc_spawnPendingMissions; [] call blck_fnc_spawnPendingMissions;
if !(blck_useHC) then //diag_log format["_fnc_mainThread: control returned to _fnc_mainThread from _fnc_spawnPendingMissions at %1",diag_tickTime];
if (blck_useHC) then
{ {
diag_log format["_mainThread:: calling blck_fnc_passToHCs at diag_tickTime = %1",diag_tickTime]; //diag_log format["_mainThread:: calling blck_fnc_passToHCs at diag_tickTime = %1",diag_tickTime];
[] call blck_fnc_passToHCs; [] call blck_fnc_passToHCs;
}; };
//[] call blck_fnc_missionGroupMonitor; //[] call blck_fnc_missionGroupMonitor;
@ -67,6 +70,10 @@ while {true} do
[] call blck_fnc_cleanEmptyGroups; [] call blck_fnc_cleanEmptyGroups;
}; // Exile cleans up empty groups automatically so this should not be needed with that mod. }; // Exile cleans up empty groups automatically so this should not be needed with that mod.
*/ */
#ifdef blck_debugMode
//diag_log format["_fnc_mainThread: active SQFscripts include: %1",diag_activeSQFScripts];
diag_log format["_fnc_mainThread: active scripts include: %1",diag_activeScripts];
#endif
}; };
if (blck_useTimeAcceleration) then if (blck_useTimeAcceleration) then
{ {
@ -75,4 +82,5 @@ while {true} do
_timer5min = diag_tickTime; _timer5min = diag_tickTime;
}; };
}; };
}; };

View File

@ -1,9 +1,9 @@
/* /*
Check if an HC is connected and if so transfer some AI to it. Check if an HC is connected and if so transfer some AI to it.
By Ghostrider-DbD- By Ghostrider [GRG]
Last modified 11-8-16 Last modified 11-8-16
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
-------------------------- --------------------------
License License
-------------------------- --------------------------

View File

@ -1,12 +1,12 @@
////////////////////////////////////////////////////// //////////////////////////////////////////////////////
// Test whether one object (e.g., a player) is within a certain range of any of an array of other objects // Test whether one object (e.g., a player) is within a certain range of any of an array of other objects
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 2/24/17 Last Modified 2/24/17
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
-------------------------- --------------------------
License License
-------------------------- --------------------------

View File

@ -1,12 +1,12 @@
////////////////////////////////////////////////////// //////////////////////////////////////////////////////
// Test whether one object (e.g., a player) is within a certain range of any of an array of other objects // Test whether one object (e.g., a player) is within a certain range of any of an array of other objects
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 2/24/17 Last Modified 2/24/17
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
-------------------------- --------------------------
License License
-------------------------- --------------------------

View File

@ -1,12 +1,12 @@
////////////////////////////////////////////// //////////////////////////////////////////////
// returns a position array at random position within a radius of _range relative to _pos. // returns a position array at random position within a radius of _range relative to _pos.
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 8-13-16 Last Modified 8-13-16
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
-------------------------- --------------------------
License License
-------------------------- --------------------------

View File

@ -1,6 +1,6 @@
////////////////////////////////////////////////////// //////////////////////////////////////////////////////
// test if a timeout condition exists. // test if a timeout condition exists.
// by Ghostrider-DBD- // by Ghostrider [GRG]
// Last modified 1/22/17 // Last modified 1/22/17
// [_startTime] call blck_fnc_timedOut // [_startTime] call blck_fnc_timedOut
// Returns true (timed out) or false (not timed out) // Returns true (timed out) or false (not timed out)

View File

@ -1,6 +1,6 @@
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 8-13-16 Last Modified 8-13-16
@ -9,7 +9,7 @@
[_minTime, _maxTime] call blck_fnc_waitTimer [_minTime, _maxTime] call blck_fnc_waitTimer
Returns true; Returns true;
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
-------------------------- --------------------------
License License
-------------------------- --------------------------

View File

@ -1,7 +1,7 @@
// Changes type of waypont0 for the specified group to "MOVE" and updates time stamps, WP postion and Timout parameters accordinglyD. // Changes type of waypont0 for the specified group to "MOVE" and updates time stamps, WP postion and Timout parameters accordinglyD.
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last modified 4/23/17 Last modified 4/23/17

View File

@ -1,7 +1,7 @@
// Sets the WP type for WP for the specified group and updates other atributes accordingly. // Sets the WP type for WP for the specified group and updates other atributes accordingly.
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last modified 4/29/17 Last modified 4/29/17

View File

@ -1,7 +1,7 @@
// Sets the WP type for WP for the specified group and updates other atributes accordingly. // Sets the WP type for WP for the specified group and updates other atributes accordingly.
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last modified 4/29/17 Last modified 4/29/17

View File

@ -1,7 +1,7 @@
/* /*
call as [] call blck_fnc_cleanEmptyGroups; call as [] call blck_fnc_cleanEmptyGroups;
Deletes any empty groups and thereby prevents errors resulting from createGroup returning nullGroup. Deletes any empty groups and thereby prevents errors resulting from createGroup returning nullGroup.
By Ghostrider-DbD- By Ghostrider [GRG]
3/18/17 3/18/17
-------------------------- --------------------------
License License

View File

@ -1,7 +1,7 @@
// Sets the WP type for WP for the specified group and updates other atributes accordingly. // Sets the WP type for WP for the specified group and updates other atributes accordingly.
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last modified 4/23/17 Last modified 4/23/17

View File

@ -5,7 +5,7 @@
If not it directs them to the next waypoint. If not it directs them to the next waypoint.
It uses a timestamp attached to the group that is cleared upon waypoint completion. It uses a timestamp attached to the group that is cleared upon waypoint completion.
By Ghostrider-DbD- By Ghostrider [GRG]
Last modified 3/14/17 Last modified 3/14/17
-------------------------- --------------------------

View File

@ -1,7 +1,7 @@
// Sets the WP type for WP for the specified group and updates other atributes accordingly. // Sets the WP type for WP for the specified group and updates other atributes accordingly.
/* /*
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,7 +1,7 @@
// Sets up waypoints for a specified group. // Sets up waypoints for a specified group.
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last modified 3/17/17 Last modified 3/17/17

View File

@ -1,7 +1,7 @@
// Sets up waypoints for a specified group. // Sets up waypoints for a specified group.
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last modified 6/1/17 Last modified 6/1/17
@ -14,14 +14,19 @@
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log "_fnc_setupWaypoints: blck_debugMode enabled"; if (blck_debugLevel > 2) then
{
diag_log format["_fnc_setupWaypoints: -> -This = %1",_this];
};
#endif #endif
private["_dir","_arc","_noWp","_newpos","_wpradius","_wp"]; private["_dir","_arc","_noWp","_newpos","_wpradius","_wp"];
params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_wpPatrolMode","SAD"],["_soldierType","null"] ]; params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_wpPatrolMode","SAD"],["_soldierType","null"] ];
_wp = [_group, 0]; _wp = [_group, 0];
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log format["_fnc_setupWaypoints (4/29/17): configuring waypoints for group %1: _mode = %2 | _wpPatrolMode = %3 _soldierType = %4",_group, _mode, _wpPatrolMode,_soldierType]; if (blck_debugLevel > 2) then
{
diag_log format["_fnc_setupWaypoints (4/29/17): configuring waypoints for group %1: _mode = %2 | _wpPatrolMode = %3 _soldierType = %4",_group, _mode, _wpPatrolMode,_soldierType];
};
#endif #endif
if (_soldierType isEqualTo "emplaced") then if (_soldierType isEqualTo "emplaced") then
{ {
@ -36,10 +41,10 @@ if (_soldierType isEqualTo "emplaced") then
_group setVariable["soldierType",_soldierType,true]; _group setVariable["soldierType",_soldierType,true];
#ifdef blck_debugMode #ifdef blck_debugMode
_wp setWaypointStatements ["true","this call blck_fnc_emplacedWeaponWaypoint; diag_log format['====Updating timestamp for group %1 and changing its WP to an emplaced weapon Waypoint',group this];"]; _wp setWaypointStatements ["true","this call blck_fnc_emplacedWeaponWaypoint; diag_log format['====Updating timestamp for group %1 and changing its WP to an emplaced weapon Waypoint',group this];"];
if (blck_debugLevel > 2) then {diag_log format["_fnc_setupWaypoints: configuring weapoints for group %2 for emplaced weapon with _soldierType = %1",_soldierType,_group];};
#else #else
_wp setWaypointStatements ["true","this call blck_fnc_emplacedWeaponWaypoint;"]; _wp setWaypointStatements ["true","this call blck_fnc_emplacedWeaponWaypoint;"];
#endif #endif
if (blck_debugLevel > 1) then {diag_log format["_fnc_setupWaypoints: configuring weapoints for group %2 for emplaced weapon with _soldierType = %1",_soldierType,_group];};
}; };
if !(_soldierType isEqualTo "emplaced") then if !(_soldierType isEqualTo "emplaced") then
{ {
@ -75,7 +80,7 @@ if !(_soldierType isEqualTo "emplaced") then
_wp setWaypointStatements ["true","this call blck_fnc_changeToMoveWaypoint;"]; _wp setWaypointStatements ["true","this call blck_fnc_changeToMoveWaypoint;"];
#endif #endif
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 1) then if (blck_debugLevel > 2) then
{ {
_marker = createMarker [format["GroupMarker%1",_group],_newPos]; _marker = createMarker [format["GroupMarker%1",_group],_newPos];
_group setVariable["wpMarker",_marker,true]; _group setVariable["wpMarker",_marker,true];

View File

@ -1,9 +1,9 @@
/* /*
Spawn and configure a group Spawn and configure a group
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last modified 4/25/17 Last modified 11/12/17
-------------------------- --------------------------
License License
@ -16,14 +16,12 @@
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel >=2) then if (blck_debugLevel >=2) then
{ {
{ diag_log format["_fnc_spawnGroup: _this = %1",_this];
diag_log format["_fnc_spawnGroup:: _this select %1 = %2",_forEachIndex,_x];
}forEach _this;
}; };
#endif #endif
private["_numbertospawn","_groupSpawned","_safepos","_weaponList","_useLauncher","_launcherType"]; private["_numbertospawn","_groupSpawned","_safepos","_weaponList","_useLauncher","_launcherType"];
params["_pos", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], "_center", ["_minDist",20], ["_maxDist",35], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_configureWaypoints",true] ]; params["_pos", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], "_center", ["_minDist",20], ["_maxDist",35], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_configureWaypoints",true],["_weaponList",[]],["_vests",blck_vests],["_scuba",false] ];
if (blck_debugLevel >= 1) then if (blck_debugLevel >= 1) then
{ {
diag_log format["[blckeagls] _fnc_spawnGroup called parameters: _numai1 %1, _numbai2 %2, _skillLevel %3, _center %4",_numai1,_numai2,_skillLevel,_center]; diag_log format["[blckeagls] _fnc_spawnGroup called parameters: _numai1 %1, _numbai2 %2, _skillLevel %3, _center %4",_numai1,_numai2,_skillLevel,_center];
@ -70,19 +68,12 @@ if !(isNull _groupSpawned) then
_groupSpawned setVariable ["blck_group",true,true]; _groupSpawned setVariable ["blck_group",true,true];
//diag_log format["spawnGroup:: group is %1",_groupSpawned]; //diag_log format["spawnGroup:: group is %1",_groupSpawned];
// Determines whether or not the group has launchers
_useLauncher = blck_useLaunchers; _useLauncher = blck_useLaunchers;
if (count _weaponList == 0) then
// define weapons list for the group {
switch (_skillLevel) do { _weaponList = [_skillLevel] call blck_fnc_selectAILoadout;
case "blue": {_weaponList = blck_WeaponList_Blue;};
case "red": {_weaponList = blck_WeaponList_Red;};
case "green": {_weaponList = blck_WeaponList_Green;};
case "orange": {_weaponList = blck_WeaponList_Orange;};
default {_weaponList = blck_WeaponList_Blue;};
}; };
//Spawns the correct number of AI Groups, each with the correct number of units //Spawns the correct number of AI Groups, each with the correct number of units
//Counter variable //Counter variable
_i = 0; _i = 0;
@ -96,17 +87,23 @@ if !(isNull _groupSpawned) then
}; };
//Finds a safe positon to spawn the AI in the area given //Finds a safe positon to spawn the AI in the area given
_safepos = [_pos,0,30,2,0,20,0] call BIS_fnc_findSafePos; //_safepos = [_pos,0,30,2,0,20,0] call BIS_fnc_findSafePos;
//Spawns the AI unit //Spawns the AI unit
//diag_log format["spawnGroup:: spawning unit #%1",_i]; #ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["spawnGroup:: spawning unit #%1",_i];
};
#endif
// params["_pos","_weaponList","_aiGroup",["_skillLevel","red"],["_Launcher","none"],["_uniforms",blck_SkinList],["_headGear",blck_BanditHeadgear]]; // params["_pos","_weaponList","_aiGroup",["_skillLevel","red"],["_Launcher","none"],["_uniforms",blck_SkinList],["_headGear",blck_BanditHeadgear]];
[_safepos,_weaponList,_groupSpawned,_skillLevel,_launcherType,_uniforms,_headGear] call blck_fnc_spawnAI; [_pos,_weaponList,_groupSpawned,_skillLevel,_launcherType,_uniforms,_headGear,_vests,_scuba] call blck_fnc_spawnAI;
}; };
_groupSpawned selectLeader (units _groupSpawned select 0); _groupSpawned selectLeader (units _groupSpawned select 0);
// params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_pattern",["MOVE","SAD"]]]; // params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_pattern",["MOVE","SAD"]]];
if (_configureWaypoints) then if (_configureWaypoints) then
{ {
if (_scuba) then {_infantryType = "scuba"} else {_infantryType = "infantry"};
[_pos,_minDist,_maxDist,_groupSpawned,"random","SAD","infantry"] spawn blck_fnc_setupWaypoints; [_pos,_minDist,_maxDist,_groupSpawned,"random","SAD","infantry"] spawn blck_fnc_setupWaypoints;
}; };
//[_pos,_minDist,_maxDist,_groupSpawned,"random","SENTRY"] spawn blck_fnc_setupWaypoints; //[_pos,_minDist,_maxDist,_groupSpawned,"random","SENTRY"] spawn blck_fnc_setupWaypoints;

View File

@ -15,7 +15,7 @@
case 1: [["item1",...,"itemN"],6]; The script will randomly select from the array of item names 6 times and call the loot loader each time. case 1: [["item1",...,"itemN"],6]; The script will randomly select from the array of item names 6 times and call the loot loader each time.
case 2: [["item1",...,"itemN"],6, 9]; As above except that an item will be selected a minimum of 6 and maximum of 9 times. case 2: [["item1",...,"itemN"],6, 9]; As above except that an item will be selected a minimum of 6 and maximum of 9 times.
by Ghostrider-DbD- by Ghostrider [GRG]
11/14/16 11/14/16
-------------------------- --------------------------

View File

@ -6,7 +6,7 @@
If _item is a string then add 1 of that item to the container. If _item is a string then add 1 of that item to the container.
If _item is an array with 2 elements ["itemName",3] then assume that the first element is a string and is the name of the item, and the second is the number to add. If _item is an array with 2 elements ["itemName",3] then assume that the first element is a string and is the name of the item, and the second is the number to add.
if _item is an array with 3 elements ["itemName",2,6] assume that the first element is the item name (string), the second the min # to add and the third the max # to add. if _item is an array with 3 elements ["itemName",2,6] assume that the first element is the item name (string), the second the min # to add and the third the max # to add.
by Ghostrider-DbD- by Ghostrider [GRG]
11/14/16 11/14/16
-------------------------- --------------------------

View File

@ -2,7 +2,7 @@
Adds a list of live AI associated with a mission to a que of live AI that will be deleted at a later time by the main thread Adds a list of live AI associated with a mission to a que of live AI that will be deleted at a later time by the main thread
call as [ [list of AI], time] call blck_fnc_addLiveAItoQue; where time is the time delay before deletion occurs call as [ [list of AI], time] call blck_fnc_addLiveAItoQue; where time is the time delay before deletion occurs
by Ghostrider-DbD- by Ghostrider [GRG]
Last modified 3-13-17 Last modified 3-13-17
-------------------------- --------------------------

View File

@ -1,7 +1,7 @@
/* /*
Adds the basic list of parameters that define a mission such as the marker name, mission list, mission path, AI difficulty, and timer settings, to the arrays that the main thread inspects. Adds the basic list of parameters that define a mission such as the marker name, mission list, mission path, AI difficulty, and timer settings, to the arrays that the main thread inspects.
by Ghostrider-DbD- by Ghostrider [GRG]
Last modified 1-21-17 Last modified 1-21-17
-------------------------- --------------------------

View File

@ -2,7 +2,7 @@
Adds a list of live AI associated with a mission to a que of live AI that will be deleted at a later time by the main thread Adds a list of live AI associated with a mission to a que of live AI that will be deleted at a later time by the main thread
call as [ [list of AI], time] call blck_fnc_addLiveAItoQue; where time is the time delay before deletion occurs call as [ [list of AI], time] call blck_fnc_addLiveAItoQue; where time is the time delay before deletion occurs
by Ghostrider-DbD- by Ghostrider [GRG]
Last modified 10-14-16 Last modified 10-14-16
-------------------------- --------------------------

View File

@ -3,8 +3,8 @@
//http://forums.bistudio.com/showthread.php?165184-Delete-Fire-Effect/page1 //http://forums.bistudio.com/showthread.php?165184-Delete-Fire-Effect/page1
// http://forums.bistudio.com/showthread.php?165184-Delete-Fire-Effect/page2 // http://forums.bistudio.com/showthread.php?165184-Delete-Fire-Effect/page2
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 4-11-17 Last Modified 4-11-17

View File

@ -1,7 +1,7 @@
// removes mines in a region centered around a specific position. // removes mines in a region centered around a specific position.
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 8-13-16 Last Modified 8-13-16

View File

@ -1,6 +1,6 @@
/* /*
[_mines,_objects,_blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission] call blck_fnc_endMission; [_mines,_objects,_blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,_isScubaMission] call blck_fnc_endMission;
schedules deletion of all remaining alive AI and mission objects. schedules deletion of all remaining alive AI and mission objects.
Updates the mission que. Updates the mission que.
Updates mission markers. Updates mission markers.
@ -14,29 +14,45 @@
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" #include "\q\addons\custom_server\Configs\blck_defines.hpp"
private["_cleanupAliveAITimer","_cleanupCompositionTimer","_isScubaMission"];
_fn_missionCleanup = { _fn_missionCleanup = {
params["_mines","_objects","_blck_AllMissionAI","_mission","_cleanupAliveAITimer","_cleanupCompositionTimer"]; params["_mines","_objects","_blck_AllMissionAI","_mission","_cleanupAliveAITimer","_cleanupCompositionTimer",["_isScubaMission",false]];
[_mines] spawn blck_fnc_clearMines; [_mines] spawn blck_fnc_clearMines;
//diag_log format["_fnc_endMission: (103) _objects = %1",_objects]; //diag_log format["_fnc_endMission: (103) _objects = %1",_objects];
[_objects, _cleanupCompositionTimer] spawn blck_fnc_addObjToQue; [_objects, _cleanupCompositionTimer] spawn blck_fnc_addObjToQue;
//diag_log format["_fnc_endMission:: (106) _blck_AllMissionAI = %1",_blck_AllMissionAI]; //diag_log format["_fnc_endMission:: (106) _blck_AllMissionAI = %1",_blck_AllMissionAI];
[_blck_AllMissionAI, (_cleanupAliveAITimer)] spawn blck_fnc_addLiveAItoQue; [_blck_AllMissionAI, (_cleanupAliveAITimer)] spawn blck_fnc_addLiveAItoQue;
blck_ActiveMissionCoords = blck_ActiveMissionCoords - [ _coords];
blck_recentMissionCoords pushback [_coords,diag_tickTime];
//diag_log format["_fnc_endMission:: (109) _mission = %1",_mission];
[_mission,"inactive",[0,0,0]] call blck_fnc_updateMissionQue;
blck_missionsRunning = blck_missionsRunning - 1; blck_missionsRunning = blck_missionsRunning - 1;
blck_ActiveMissionCoords = blck_ActiveMissionCoords - [ _coords];
if !(_isScubaMission) then
{
blck_recentMissionCoords pushback [_coords,diag_tickTime];
[_mission,"inactive",[0,0,0]] call blck_fnc_updateMissionQue;
//diag_log format["_fnc_endMission:: (109) _mission = %1",_mission];
};
if (_isScubaMission) then
{
blck_priorDynamicUMS_Missions pushback [_coords,diag_tickTime];
blck_UMS_ActiveDynamicMissions = blck_UMS_ActiveDynamicMissions - [_coords];
blck_dynamicUMS_MissionsRuning = blck_dynamicUMS_MissionsRuning - 1;
};
}; };
params["_mines","_objects","_crates","_blck_AllMissionAI","_endMsg","_blck_localMissionMarker","_coords","_mission",["_aborted",false],["_vehicles",[]]]; ///////////////////////////////////////////////////////////////////////
private["_cleanupAliveAITimer","_cleanupCompositionTimer"]; // MAIN FUNCTION STARTS HERE
//////////////////////////////////////////////////////////////////////
diag_log format["_fnc_endMission: _this = %1",_this];
params["_mines","_objects","_crates","_blck_AllMissionAI","_endMsg","_blck_localMissionMarker","_coords","_mission",["_aborted",false],["_vehicles",[]],["_isScubaMission",false]];
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 0) then if (blck_debugLevel > 0) then
{ {
diag_log format["_fnc_endMission: _blck_localMissionMarker %1 | _coords %2 | _mission %3 | _aborted %4",_blck_localMissionMarker,_coords,_mission,_aborted]; diag_log format["_fnc_endMission: _blck_localMissionMarker %1 | _coords %2 | _mission %3 | _aborted %4",_blck_localMissionMarker,_coords,_mission,_aborted];
diag_log format["_fnc_endMission: _aborted = %1",_aborted]; diag_log format["_fnc_endMission: _aborted = %1",_aborted];
diag_log format["_fnc_endMission: _isScubaMission = %1",_isScubaMission];
diag_log format["_fnc_endMission: prior to running mission end functions -> blck_missionsRunning = %1 | blck_dynamicUMS_MissionsRuning = %2",blck_missionsRunning,blck_dynamicUMS_MissionsRuning];
}; };
#endif #endif
@ -54,7 +70,8 @@ _fn_missionCleanup = {
[_blck_localMissionMarker select 0] call blck_fnc_deleteMarker; [_blck_localMissionMarker select 0] call blck_fnc_deleteMarker;
_cleanupCompositionTimer = 0; _cleanupCompositionTimer = 0;
_cleanupAliveAITimer = 0; _cleanupAliveAITimer = 0;
[_mines,_objects,_blck_AllMissionAI,_mission,_cleanupAliveAITimer,_cleanupCompositionTimer] call _fn_missionCleanup; // params["_mines","_objects","_blck_AllMissionAI","_mission","_cleanupAliveAITimer","_cleanupCompositionTimer",["_isScubaMission",false]];
[_mines,_objects,_blck_AllMissionAI,_mission,_cleanupAliveAITimer,_cleanupCompositionTimer,_isScubaMission] call _fn_missionCleanup;
{ {
deleteVehicle _x; deleteVehicle _x;
}forEach _crates; }forEach _crates;
@ -111,6 +128,9 @@ _fn_missionCleanup = {
blck_monitoredVehicles pushback _x; blck_monitoredVehicles pushback _x;
}; };
} forEach _vehicles; } forEach _vehicles;
[_mines,_objects,_blck_AllMissionAI,_mission,_cleanupAliveAITimer,_cleanupCompositionTimer] call _fn_missionCleanup; [_mines,_objects,_blck_AllMissionAI,_mission,_cleanupAliveAITimer,_cleanupCompositionTimer,_isScubaMission] call _fn_missionCleanup;
}; };
#ifdef blck_debugMode
diag_log format["_fnc_endMission: after to running mission end functions -> blck_missionsRunning = %1 | blck_dynamicUMS_MissionsRuning = %2",blck_missionsRunning,blck_dynamicUMS_MissionsRuning];
#endif
_aborted _aborted

View File

@ -1,7 +1,7 @@
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 8-13-17 Last Modified 8-13-17
Fill a crate with items Fill a crate with items

View File

@ -1,8 +1,8 @@
// removes mines in a region centered around a specific position. // removes mines in a region centered around a specific position.
/* /*
[_missionAIGroups] call blck_fnc_missionAIareDead; // _missionAIGroups is an array of groups. [_missionAIGroups] call blck_fnc_missionAIareDead; // _missionAIGroups is an array of groups.
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 3-13-17 Last Modified 3-13-17
-------------------------- --------------------------

View File

@ -1,9 +1,8 @@
/* /*
Generic Mission Spawner Generic Mission Spawner
for DBD Clan By Ghostrider GRG
By Ghostrider-DBD-
Copyright 2016 Copyright 2016
Last modified 8/13/17 Last modified 10/9/17
-------------------------- --------------------------
License License
@ -14,9 +13,9 @@
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
private ["_abort","_crates","_aiGroup","_objects","_groupPatrolRadius","_missionLandscape","_mines","_blck_AllMissionAI","_blck_localMissionMarker","_AI_Vehicles","_timeOut","_aiDifficultyLevel"]; private ["_abort","_crates","_aiGroup","_objects","_groupPatrolRadius","_missionLandscape","_mines","_blck_AllMissionAI","_blck_localMissionMarker","_AI_Vehicles","_timeOut","_aiDifficultyLevel","_missionPatrolVehicles","_missionGroups"];
params["_coords","_mission",["_allowReinforcements",true]]; params["_coords","_mission",["_allowReinforcements",true]];
diag_log format["_missionSpawner (18):: _allowReinforcements = %1",_allowReinforcements]; //diag_log format["_missionSpawner (18):: _allowReinforcements = %1",_allowReinforcements];
//////// ////////
// set all variables needed for the missions // set all variables needed for the missions
@ -28,8 +27,6 @@ diag_log format["_missionSpawner (18):: _allowReinforcements = %1",_allowReinfo
_markerClass = _mission select 2; _markerClass = _mission select 2;
_aiDifficultyLevel = _mission select 3; _aiDifficultyLevel = _mission select 3;
if (blck_debugLevel > 0) then {diag_log format["_fnc_mainThread:: -->> _markerClass = %1",_markerClass];};
[_mission,"active",_coords] call blck_fnc_updateMissionQue; [_mission,"active",_coords] call blck_fnc_updateMissionQue;
blck_ActiveMissionCoords pushback _coords; blck_ActiveMissionCoords pushback _coords;
diag_log format["[blckeagls] missionSpawner (17):: Initializing mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; diag_log format["[blckeagls] missionSpawner (17):: Initializing mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
@ -40,7 +37,12 @@ if (isNil "_markerColor") then {_markerColor = "ColorBlack"};
if (isNil "_markerType") then {_markerType = ["mil_box",[]]}; if (isNil "_markerType") then {_markerType = ["mil_box",[]]};
//if (isNil "_timeOut") then {_timeOut = -1;}; //if (isNil "_timeOut") then {_timeOut = -1;};
if (isNil "_loadCratesTiming") then {_loadCratesTiming = blck_loadCratesTiming}; // valid choices are "atMissionCompletion" and "atMissionSpawn"; if (isNil "_loadCratesTiming") then {_loadCratesTiming = blck_loadCratesTiming}; // valid choices are "atMissionCompletion" and "atMissionSpawn";
if (isNil "_missionPatrolVehicles") then {
//diag_log format["_missionSpawner (44):: _missionPatrolVehicles isNil, Definining it as an empty array"];
_missionPatrolVehicles = [];
//diag_log format["_missionSpawner (46):: _missionPatrolVehicles is %1",_missionPatrolVehicles];
};
if (isNil "_missionGroups") then {_missionGroups = []};
private["_useMines","_blck_AllMissionAI","_delayTime","_groupPatrolRadius"]; private["_useMines","_blck_AllMissionAI","_delayTime","_groupPatrolRadius"];
if (isNil "_useMines") then {_useMines = blck_useMines;}; if (isNil "_useMines") then {_useMines = blck_useMines;};
@ -66,12 +68,11 @@ if !(blck_preciseMapMarkers) then
_blck_localMissionMarker set [1,[_coords,75] call blck_fnc_randomPosition]; _blck_localMissionMarker set [1,[_coords,75] call blck_fnc_randomPosition];
}; };
_blck_localMissionMarker set [3,blck_labelMapMarkers select 1]; // Use an arrow labeled with the mission name? _blck_localMissionMarker set [3,blck_labelMapMarkers select 1]; // Use an arrow labeled with the mission name?
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (91) message players and spawn a mission marker";}; [["start",_startMsg,_markerMissionName]] call blck_fnc_messageplayers;
[["start",_startMsg,_blck_localMissionMarker select 2]] call blck_fnc_messageplayers; [_blck_localMissionMarker] call blck_fnc_spawnMarker;
[_blck_localMissionMarker] execVM "debug\spawnMarker.sqf";
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (94) waiting for player to trigger the mission";}; if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (91) message players and spawn a mission marker";};
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (77) waiting for player to trigger the mission";};
#endif #endif
//////// ////////
// All parameters are defined, lets wait until a player is nearby or the mission has timed out // All parameters are defined, lets wait until a player is nearby or the mission has timed out
@ -82,7 +83,10 @@ _missionStartTime = diag_tickTime;
_playerInRange = false; _playerInRange = false;
_missionTimedOut = false; _missionTimedOut = false;
_wait = true; _wait = true;
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (105) starting mission trigger loop"};
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (90) starting mission trigger loop"};
#endif
while {_wait} do while {_wait} do
{ {
@ -124,7 +128,7 @@ if (_missionTimedOut) exitWith
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 0) then if (blck_debugLevel > 0) then
{ {
diag_log format["[blckeagls] missionSpawner:: (105) Mission Timed Out: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; diag_log format["[blckeagls] missionSpawner:: (133) Mission Timed Out: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
}; };
#endif #endif
}; };
@ -135,30 +139,7 @@ if (_missionTimedOut) exitWith
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 0) then if (blck_debugLevel > 0) then
{ {
diag_log format["[blckeagls] missionSpawner:: (112) -- >> Mission tripped: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; diag_log format["[blckeagls] missionSpawner:: (142) -- >> Mission tripped: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
if (count _missionLootBoxes > 0) then
{
_crates = [_coords,_missionLootBoxes,_loadCratesTiming] call blck_fnc_spawnMissionCrates;
}
else
{
_crates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_crateLoot,_lootCounts]], _loadCratesTiming] call blck_fnc_spawnMissionCrates;
};
if (blck_cleanUpLootChests) then
{
_objects append _crates;
};
//uisleep 2;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (136) Crates Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
}; };
#endif #endif
@ -180,11 +161,13 @@ if (_useMines) then
}; };
uiSleep _delayTime; uiSleep _delayTime;
_temp = []; _temp = [];
diag_log format["_missionSpawner"" _missionLandscape = %1",_missionLandscape];
if (_missionLandscapeMode isEqualTo "random") then if (_missionLandscapeMode isEqualTo "random") then
{ {
_temp = [_coords,_missionLandscape, 3, 15, 2] call blck_fnc_spawnRandomLandscape; _temp = [_coords,_missionLandscape, 3, 15, 2] call blck_fnc_spawnRandomLandscape;
} else { } else {
_temp = [_coords, floor(random(360)),_missionLandscape,true] call blck_fnc_spawnCompositionObjects; params["_center","_objects"];
_temp = [_coords, _missionLandscape] call blck_fnc_spawnCompositionObjects;
//uiSleep 1; //uiSleep 1;
}; };
if (typeName _temp isEqualTo "ARRAY") then if (typeName _temp isEqualTo "ARRAY") then
@ -196,13 +179,13 @@ if (typeName _temp isEqualTo "ARRAY") then
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 0) then if (blck_debugLevel > 0) then
{ {
diag_log format["[blckeagls] missionSpawner:: (170) Landscape spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; diag_log format["[blckeagls] missionSpawner:: (190) Landscape spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
}; };
#endif #endif
uiSleep _delayTime;; uiSleep _delayTime;;
_temp = [_missionLootVehicles] call blck_fnc_spawnMissionLootVehicles; _temp = [_coords,_missionLootVehicles] call blck_fnc_spawnMissionLootVehicles;
//uisleep 1; //uisleep 1;
_crates append _temp; _crates append _temp;
@ -210,26 +193,25 @@ uiSleep _delayTime;
_abort = false; _abort = false;
_temp = [[],[],false]; _temp = [[],[],false];
_temp = [_coords, _minNoAI,_maxNoAI,_aiDifficultyLevel,_uniforms,_headGear] call blck_fnc_spawnMissionAI; _temp = [_coords, _minNoAI,_maxNoAI,_aiDifficultyLevel,_uniforms,_headGear,_missionGroups] call blck_fnc_spawnMissionAI;
//[_coords, _minNoAI,_maxNoAI,_aiDifficultyLevel,_uniforms,_headGear] call blck_fnc_spawnMissionAI;
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 2) then { if (blck_debugLevel > 2) then {
diag_log format["missionSpawner :: (185) blck_fnc_spawnMissionAI returned a value of _temp = %1",_temp]; uiSleep 1; diag_log format["missionSpawner :: (209) blck_fnc_spawnMissionAI returned a value of _temp = %1",_temp]; uiSleep 1;
}; };
_abort = _temp select 1; _abort = _temp select 1;
if (blck_debugLevel > 2) then { if (blck_debugLevel > 2) then {
diag_log format["missionSpawner :: (190) blck_fnc_spawnMissionAI returned a value of _abort = %1",_abort]; uiSleep 1; diag_log format["missionSpawner :: (214) blck_fnc_spawnMissionAI returned a value of _abort = %1",_abort]; uiSleep 1;
}; };
#endif #endif
if (_abort) exitWith if (_abort) exitWith
{ {
if (blck_debugLevel > 1) then { if (blck_debugLevel > 1) then {
diag_log "missionSpawner:: (194) grpNull returned, mission termination criteria met, calling blck_fnc_endMission" diag_log "missionSpawner:: (220) grpNull returned, mission termination criteria met, calling blck_fnc_endMission"
}; };
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true] call blck_fnc_endMission; [_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,1] call blck_fnc_endMission;
}; };
if !(_abort) then if !(_abort) then
{ {
@ -241,23 +223,24 @@ uiSleep _delayTime;
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 0) then if (blck_debugLevel > 0) then
{ {
diag_log format["[blckeagls] missionSpawner:: (202) AI Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; diag_log format["[blckeagls] missionSpawner:: (235) AI Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
}; };
#endif #endif
uiSleep 3; uiSleep _delayTime;
_temp = [[],[],false]; _temp = [[],[],false];
_abort = false; _abort = false;
private["_patrolVehicles","_vehToSpawn"]; private["_patrolVehicles","_vehToSpawn"];
_vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange; _vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange;
diag_log format["_missionSpawner:: _vehToSpawn = %1",_vehToSpawn]; //diag_log format["_missionSpawner:: _vehToSpawn = %1",_vehToSpawn];
if (blck_useVehiclePatrols && (_vehToSpawn > 0)) then //diag_log format["_missionSpawner (245):: _missionPatrolVehicles = %1",_missionPatrolVehicles];
if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || count _missionPatrolVehicles > 0)) then
{ {
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols; _temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_uniforms,_headGear,_missionPatrolVehicles] call blck_fnc_spawnMissionVehiclePatrols;
//[_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols; //[_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 1) then { if (blck_debugLevel > 1) then {
diag_log format["missionSpawner :: (216) blck_fnc_spawnMissionVehiclePatrols returned _temp = %1",_temp]; diag_log format["missionSpawner :: (251) blck_fnc_spawnMissionVehiclePatrols returned _temp = %1",_temp];
}; };
#endif #endif
@ -273,7 +256,7 @@ if (blck_useVehiclePatrols && (_vehToSpawn > 0)) then
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 0) then if (blck_debugLevel > 0) then
{ {
diag_log format["[blckeagls] missionSpawner:: (272) Vehicle Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; diag_log format["[blckeagls] missionSpawner:: (267) Vehicle Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
}; };
#endif #endif
@ -284,76 +267,17 @@ if (_abort) exitWith
{ {
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 0) then { if (blck_debugLevel > 0) then {
diag_log "missionSpawner:: (222) grpNull returned, mission termination criteria met, calling blck_endMission"; diag_log "missionSpawner:: (279) grpNull returned, mission termination criteria met, calling blck_endMission";
}; };
#endif #endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true] call blck_fnc_endMission; [_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,1] call blck_fnc_endMission;
}; };
uiSleep _delayTime; uiSleep _delayTime;
_temp = [[],[],false]; _temp = [[],[],false];
_abort = false; _abort = false;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log format["missionSpawner:: (234) preparing to spawn emplaced weapons for _coords %4 | _markerClass %3 | blck_useStatic = %1 | _noEmplacedWeapons = %2",blck_useStatic,_noEmplacedWeapons,_markerClass,_coords];};
#endif
uiSleep 3;
private["_noEmplacedToSpawn"];
_noEmplacedToSpawn = [_noEmplacedWeapons] call blck_fnc_getNumberFromRange;
diag_log format["_missionSpawner:: _noEmplacedToSpawn = %1",_vehToSpawn];
if (blck_useStatic && (_noEmplacedToSpawn > 0)) then
{
// params["_missionEmplacedWeapons","_noEmplacedWeapons","_aiDifficultyLevel","_coords","_uniforms","_headGear"];
_temp = [_missionEmplacedWeapons,_noEmplacedToSpawn,_aiDifficultyLevel,_coords,_uniforms,_headGear] call blck_fnc_spawnEmplacedWeaponArray;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format ["missionSpawner:: (232) blck_fnc_spawnEmplacedWeaponArray returned _temp = %1",_temp];
};
#endif
if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
};
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format ["missionSpawner:: (241) _abort = %1",_abort];
};
#endif
if !(_abort) then
{
_objects append (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (253) Static Weapons Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
};
};
if (_abort) exitWith
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log "missionSpawner:: (261) grpNull ERROR in blck_fnc_spawnEmplacedWeaponArray, mission termination criteria met, calling blck_endMission";
};
#endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true,_patrolVehicles] call blck_fnc_endMission;
};
uiSleep 3;
if (_allowReinforcements) then if (_allowReinforcements) then
{ {
_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout; _weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
@ -362,7 +286,7 @@ if (_allowReinforcements) then
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 1) then if (blck_debugLevel > 1) then
{ {
diag_log format["[blckeagls] missionSpawner:: (268) calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; diag_log format["[blckeagls] missionSpawner:: (298) calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
}; };
#endif #endif
private _noChoppers = 0; private _noChoppers = 0;
@ -386,7 +310,9 @@ if (_allowReinforcements) then
_chancePara = [blck_chanceParaOrange] call blck_fnc_getNumberFromRange; _chancePara = [blck_chanceParaOrange] call blck_fnc_getNumberFromRange;
}; };
}; };
diag_log format["_missionSpawner:: _noChoppers = %1 && _chancePara = %2",_noChoppers,_chancePara]; #ifdef blck_debugMode
diag_log format["_missionSpawner(322):: _noChoppers = %1 && _chancePara = %2",_noChoppers,_chancePara];
#endif
for "_i" from 1 to (_noChoppers) do for "_i" from 1 to (_noChoppers) do
{ {
//params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"]; //params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"];
@ -396,8 +322,8 @@ if (_allowReinforcements) then
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel >= 2) then if (blck_debugLevel >= 2) then
{ {
diag_log format["missionSpawner:: blck_fnc_spawnMissionReinforcements call for chopper # %1 out of a total of %2 choppers",_i, _noChoppers]; diag_log format["missionSpawner(334):: blck_fnc_spawnMissionReinforcements call for chopper # %1 out of a total of %2 choppers",_i, _noChoppers];
diag_log format["missionSpawner:: _temp = %1",_temp]; diag_log format["missionSpawner(335):: _temp = %1",_temp];
}; };
#endif #endif
@ -409,20 +335,105 @@ if (_allowReinforcements) then
}; };
if (_abort) then if (_abort) then
{ {
#ifdef blck_debugMode
#ifdef blck_debugMode
if (blck_debugLevel > 2) then if (blck_debugLevel > 2) then
{ {
diag_log "missionSpawner:: (276) grpNul or ERROR in blck_fnc_spawnMissionReinforcements, mission termination criteria met, calling blck_endMission"; diag_log "missionSpawner:: (349) grpNul or ERROR in blck_fnc_spawnMissionReinforcements, mission termination criteria met, calling blck_endMission";
}; };
#endif #endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true,_patrolVehicles] call blck_fnc_endMission; [_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,1] call blck_fnc_endMission;
}; };
}; };
}; };
//////////////////////////
// Spawn Crates and Emplaced Weapons Last to try to force them to correct positions relative to spawned buildinga or other objects.
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log format["missionSpawner:: (361) preparing to spawn emplaced weapons for _coords %4 | _markerClass %3 | blck_useStatic = %1 | _noEmplacedWeapons = %2",blck_useStatic,_noEmplacedWeapons,_markerClass,_coords];};
#endif
uiSleep 15;
private["_noEmplacedToSpawn"];
_noEmplacedToSpawn = [_noEmplacedWeapons] call blck_fnc_getNumberFromRange;
//diag_log format["_missionSpawner:: _noEmplacedToSpawn = %1",_vehToSpawn];
if (blck_useStatic && (_noEmplacedToSpawn > 0)) then
{
// params["_missionEmplacedWeapons","_noEmplacedWeapons","_aiDifficultyLevel","_coords","_uniforms","_headGear"];
_temp = [_missionEmplacedWeapons,_noEmplacedToSpawn,_aiDifficultyLevel,_coords,_uniforms,_headGear] call blck_fnc_spawnEmplacedWeaponArray;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format ["missionSpawner:: (375) blck_fnc_spawnEmplacedWeaponArray returned _temp = %1",_temp];
};
#endif
if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
};
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format ["missionSpawner:: (387) _abort = %1",_abort];
};
#endif
if !(_abort) then
{
_objects append (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (400) Static Weapons Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
};
};
if (_abort) exitWith
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log "missionSpawner:: (410) grpNull ERROR in blck_fnc_spawnEmplacedWeaponArray, mission termination criteria met, calling blck_endMission";
};
#endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,1] call blck_fnc_endMission;
};
uiSleep _delayTime;
if (count _missionLootBoxes > 0) then
{
_crates = [_coords,_missionLootBoxes,_loadCratesTiming] call blck_fnc_spawnMissionCrates;
}
else
{
_crates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_crateLoot,_lootCounts]], _loadCratesTiming] call blck_fnc_spawnMissionCrates;
};
if (blck_cleanUpLootChests) then
{
_objects append _crates;
};
//uisleep 2;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (428) Crates Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
// Trigger for mission end // Trigger for mission end
//diag_log format["[blckeagls] mission Spawner _endCondition = %1",_endCondition]; #ifdef blck_debugMode
diag_log format["[blckeagls] mission Spawner(436) _endCondition = %1",_endCondition];
#endif
private["_missionComplete","_endIfPlayerNear","_endIfAIKilled"]; private["_missionComplete","_endIfPlayerNear","_endIfAIKilled"];
_missionComplete = -1; _missionComplete = -1;
_startTime = diag_tickTime; _startTime = diag_tickTime;
@ -433,35 +444,61 @@ switch (_endCondition) do
case "allUnitsKilled": {_endIfPlayerNear = false;_endIfAIKilled = true;}; case "allUnitsKilled": {_endIfPlayerNear = false;_endIfAIKilled = true;};
case "allKilledOrPlayerNear": {_endIfPlayerNear = true;_endIfAIKilled = true;}; case "allKilledOrPlayerNear": {_endIfPlayerNear = true;_endIfAIKilled = true;};
}; };
//diag_log format["missionSpawner :: (269) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled]; #ifdef blck_debugMode
diag_log format["missionSpawner :: (449) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled];
#endif
private["_locations"]; private["_locations"];
_locations = [_coords]; _locations = [_coords];
{ {
_locations pushback (getPos _x); _locations pushback (getPos _x);
_x setVariable["crateSpawnPos", (getPos _x)];
} forEach _crates; } forEach _crates;
#ifdef blck_debugMode
//diag_log format["missionSpawner:: _coords = %1 | _crates = %2 | _locations = %3",_coords,_crates,_locations]; diag_log format["missionSpawner (458):: _coords = %1 | _crates = %2 | _locations = %3",_coords,_crates,_locations];
//diag_log format["missionSpawner:: Waiting for player to satisfy mission end criteria of _endIfPlayerNear %1 with _endIfAIKilled %2",_endIfPlayerNear,_endIfAIKilled]; #endif
while {_missionComplete isEqualTo -1} do private _crateStolen = false;
#ifdef blck_debugMode
diag_log format["missionSpawner(462):: Waiting for player to satisfy mission end criteria of _endIfPlayerNear %1 with _endIfAIKilled %2",_endIfPlayerNear,_endIfAIKilled];
#endif
_fn_crateMoved = {
params["_crate"];
private _result = (_x distance (_x getVariable["crateSpawnPos",[0,0,0]])) > 10;
//diag_log format["_fn_crateMoved:: _result = %1",_result];
_result;
};
while {_missionComplete isEqualTo -1} do
{ {
//if (blck_debugLevel isEqualTo 3) exitWith {uiSleep 180}; //if (blck_debugLevel isEqualTo 3) exitWith {uiSleep 180};
if ((_endIfPlayerNear) && [_locations,10,true] call blck_fnc_playerInRangeArray) exitWith {}; if ((_endIfPlayerNear) && [_locations,10,true] call blck_fnc_playerInRangeArray) exitWith {};
if ((_endIfAIKilled) && ({alive _x} count _blck_AllMissionAI) < 1 /*[_blck_AllMissionAI] call blck_fnc_missionAIareDead*/ ) exitWith {}; if ((_endIfAIKilled) && ({alive _x} count _blck_AllMissionAI) < 1) exitWith {};
//diag_log format["missionSpawner:: (283) missionCompleteLoop - > players near = %1 and ai alive = %2",[_coords,20] call blck_fnc_playerInRange, {alive _x} count _blck_AllMissionAI];
{
if ({[_x] call _fn_crateMoved} count _crates > 0) exitWith
{
_missionComplete = 1;
_crateStolen = true;
};
}forEach _crates;
//diag_log format["missionSpawner:: (483) missionCompleteLoop - > players near = %1 and ai alive = %2 and crates stolen = %3",[_coords,20] call blck_fnc_playerInRange, {alive _x} count _blck_AllMissionAI, _crateStolen];
uiSleep 4; uiSleep 4;
}; };
if (_crateStolen) exitWith
{
diag_log format["missionSpawner:: (491) Crate Stolen Callening _fnc_endMission - > players near = %1 and ai alive = %2 and crates stolen = %3",[_locations,10,true] call blck_fnc_playerInRangeArray, {alive _x} count _blck_AllMissionAI, _crateStolen];
[_mines,_objects,_crates, _blck_AllMissionAI,"Crate Removed from Mission Site Before Mission Completion: Mission Aborted",_blck_localMissionMarker,_coords,_mission,2] call blck_fnc_endMission;
};
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 0) then if (blck_debugLevel > 0) then
{ {
diag_log format["[blckeagls] missionSpawner:: (414) Mission completion criteria fulfilled: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; diag_log format["[blckeagls] missionSpawner:: (496) Mission completion criteria fulfilled: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
diag_log format["missionSpawner :: (415) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled]; diag_log format["missionSpawner :: (497) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled];
diag_log format["[blckeagls] missionSpawner:: (498) calling endMission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
}; };
#endif #endif
//diag_log format["[blckeagls] missionSpawner:: (418) calling endMission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
private["_result"]; private["_result"];
_result = [_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,false,_patrolVehicles] call blck_fnc_endMission; // Force passing the mission name for informational purposes.
_blck_localMissionMarker set [2, _markerMissionName];
_result = [_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,0] call blck_fnc_endMission;
//diag_log format["[blckeagls] missionSpawner:: (420)end of mission: blck_fnc_endMission returned value of %1","pending"]; diag_log format["[blckeagls] missionSpawner:: (507)end of mission: blck_fnc_endMission has returned control to _fnc_missionSpawner"];

View File

@ -12,7 +12,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"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
#define delayTime 1
private ["_abort","_crates","_aiGroup","_objects","_groupPatrolRadius","_missionLandscape","_mines","_blck_AllMissionAI","_blck_localMissionMarker","_AI_Vehicles","_timeOut","_aiDifficultyLevel","_missionPatrolVehicles","_missionGroups"]; private ["_abort","_crates","_aiGroup","_objects","_groupPatrolRadius","_missionLandscape","_mines","_blck_AllMissionAI","_blck_localMissionMarker","_AI_Vehicles","_timeOut","_aiDifficultyLevel","_missionPatrolVehicles","_missionGroups"];
params["_coords","_mission",["_allowReinforcements",true]]; params["_coords","_mission",["_allowReinforcements",true]];
//diag_log format["_missionSpawner (18):: _allowReinforcements = %1",_allowReinforcements]; //diag_log format["_missionSpawner (18):: _allowReinforcements = %1",_allowReinforcements];
@ -185,7 +185,7 @@ if (blck_debugLevel > 0) then
uiSleep _delayTime;; uiSleep _delayTime;;
_temp = [_missionLootVehicles] call blck_fnc_spawnMissionLootVehicles; _temp = [_coords,_missionLootVehicles] call blck_fnc_spawnMissionLootVehicles;
//uisleep 1; //uisleep 1;
_crates append _temp; _crates append _temp;
@ -218,8 +218,6 @@ if !(_abort) then
_blck_AllMissionAI append (_temp select 0); _blck_AllMissionAI append (_temp select 0);
}; };
uiSleep _delayTime;
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 0) then if (blck_debugLevel > 0) then
{ {
@ -421,8 +419,6 @@ if (blck_cleanUpLootChests) then
_objects append _crates; _objects append _crates;
}; };
//uisleep 2;
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 0) then if (blck_debugLevel > 0) then
{ {

View File

@ -5,7 +5,7 @@
returns: returns:
_lootarray _lootarray
by Ghostrider-DbD- by Ghostrider [GRG]
1/9-17 1/9-17
-------------------------- --------------------------

View File

@ -1,6 +1,6 @@
////////////////////////////////////////////////////// //////////////////////////////////////////////////////
// Attach a marker of type _marker to an object _crate // Attach a marker of type _marker to an object _crate
// by Ghostrider-DBD- based on code from Wicked AI for Arma 2 Dayz Epoch // by Ghostrider [GRG] based on code from Wicked AI for Arma 2 Dayz Epoch
// Last modified 8/2/15 // Last modified 8/2/15
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
/* /*

View File

@ -1,7 +1,7 @@
/* /*
Spawns a smoking wreck or object at a specified location and returns the objects spawn (wreck and the particle effects object) Spawns a smoking wreck or object at a specified location and returns the objects spawn (wreck and the particle effects object)
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last updated 8-14-16 Last updated 8-14-16

View File

@ -14,18 +14,28 @@
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
params["_center","_objects"]; params["_center","_objects"];
if (count _center == 2) then {_center pushBack 0};
//diag_log format["_spawnBaseObjects:: -> _objects = %1",_objects]; //diag_log format["_spawnBaseObjects:: -> _objects = %1",_objects];
private ["_newObjs"]; private ["_newObjs"];
_newObjs = []; _newObjs = [];
{ {
//diag_log format["_fnc_spawnBaseObjects::-->> _x = %1",_x]; //diag_log format["_fnc_spawnBaseObjects::-->> _x = %1",_x];
private _obj = (_x select 0) createVehicle [0,0,0]; private _obj = (_x select 0) createVehicle [0,0,0];
//diag_log format["_fnc_spawnBaseObjects: _obj = %1",_obj];
_newObjs pushback _obj; _newObjs pushback _obj;
//diag_log format["_fnc_spawnBaseObjects: _center = %1 and _x select 1 = %2",_center,_x select 1];
private _spawnPos = (_center vectorAdd (_x select 1));
if (surfaceIsWater _spawnPos) then
{
_obj setPosASL _spawnPos;
//diag_log "_fnc_spawnBaseObjects: detected surface == water";
} else {
_obj setPosATL _spawnPos;
//diag_log "_fnc_spawnBaseObjects: detected surface = Land";
};
_obj setDir (_x select 2); _obj setDir (_x select 2);
_obj setPosATL (_center vectorAdd (_x select 1));
_obj enableDynamicSimulation true; _obj enableDynamicSimulation true;
_obj allowDamage true; _obj allowDamage true;
// Lock any vehicles placed as part of the mission landscape. Note that vehicles that can be taken by players can be added via the mission template. // Lock any vehicles placed as part of the mission landscape. Note that vehicles that can be taken by players can be added via the mission template.
@ -34,4 +44,6 @@ _newObjs = [];
[_obj] call blck_fnc_configureMissionVehicle; [_obj] call blck_fnc_configureMissionVehicle;
}; };
} forEach _objects; } forEach _objects;
//diag_log format["_fnc_spawnBaseObjects: _newObjs = 51",_newObjs];
_newObjs _newObjs

View File

@ -1,10 +1,10 @@
/* /*
spawn a crate at a specific location and protect it against cleanup by Epoch spawn a crate at a specific location
returns the object (crate) that was created. returns the object (crate) that was created.
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last updated 9-4-16 Last updated 12-5-17
-------------------------- --------------------------
License License
@ -15,18 +15,33 @@
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
private ["_crate","_px","_py","_defaultCrate"]; private ["_crate"];
_defaultCrate = "Box_NATO_Wps_F"; params["_coords",["_crateType","Box_NATO_Wps_F"]];
params["_coords",["_crateType",_defaultCrate]];
_px = _coords select 0;
_py = _coords select 1;
_crate = objNull;
_crate = createVehicle [_crateType,_coords,[], 0, "CAN_COLLIDE"]; _crate = createVehicle [_crateType,_coords,[], 0, "CAN_COLLIDE"];
_crate setVariable ["LAST_CHECK", 100000]; _crate setVariable ["LAST_CHECK", 100000];
_crate setPosATL [_px, _py, 0.5];
_crate allowDamage false; _crate allowDamage false;
_crate enableRopeAttach false; _crate enableRopeAttach false;
[_crate] call blck_fnc_emptyObject; [_crate] call blck_fnc_emptyObject;
_crate setPosATL _coords;
_crate setVectorUp [0,0,0];
if ((_coords select 2) < 0 || surfaceIsWater (_coords)) then
{
private["_lantern","_bbr","_p1","_p2","_maxHeight"];
//_lantern = createVehicle ["PortableHelipadLight_01_red_F", [0,0,0],[],0,"CAN_COLLIDE"];// Land_Camping_Light_F
//_lantern enableSimulationGlobal true;
//_lantern switchLight "on";
_light = "#lightpoint" createVehicle (getPos _crate);
_light setLightDayLight true;
_light setLightBrightness 1.0;
_light setLightAmbient [0.0, 1.0, 0.0];
_light setLightColor [0.0, 1.0, 0.0];
_bbr = boundingBoxReal _crate;
_p1 = _bbr select 0;
_p2 = _bbr select 1;
_maxHeight = abs ((_p2 select 2) - (_p1 select 2));
//diag_log format["_fnc_spawnCrate: _bbr = %1 | _maxHeight = %2",_bbr,_maxHeight];
_light attachTo [_crate, [0,0,(_maxHeight + 0.5)]];
};
_crate; _crate;

View File

@ -2,7 +2,7 @@
[_missionEmplacedWeapons,_noEmplacedWeapons,_aiDifficultyLevel,_coords,_uniforms,_headGear] call blck_fnc_spawnEmplacedWeaponArray; [_missionEmplacedWeapons,_noEmplacedWeapons,_aiDifficultyLevel,_coords,_uniforms,_headGear] call blck_fnc_spawnEmplacedWeaponArray;
Last modified 4/27/17 Last modified 4/27/17
By Ghostrider-DbD- By Ghostrider [GRG]
-------------------------- --------------------------
License License

View File

@ -1,6 +1,6 @@
// Spawns mines in a region centered around a specific position and returns an array with the spawned mines for later use, i.e. deletion // Spawns mines in a region centered around a specific position and returns an array with the spawned mines for later use, i.e. deletion
/* /*
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last updated 8-14-16 Last updated 8-14-16

View File

@ -1,6 +1,6 @@
/* /*
blck_fnc_spawnMissionAI blck_fnc_spawnMissionAI
by Ghostrider-DbD- by Ghostrider [GRG]
8/13/17 8/13/17
[_coords, // center of the area within which to spawn AI [_coords, // center of the area within which to spawn AI
_minNoAI, // minimum number of AI to spawn _minNoAI, // minimum number of AI to spawn
@ -22,20 +22,21 @@
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel >=2) then if (blck_debugLevel >=2) then
{ {
diag_log format["_fnc_spawnMissionAI: _this = %1",_this];
{ {
diag_log format["_fnc_spawnMissionAI:: _this select %1 = %2",_forEachIndex,_x]; diag_log format["_fnc_spawnMissionAI:: _this select %1 = %2",_forEachIndex,_x];
}forEach _this; }forEach _this;
}; };
#endif #endif
// [_coords, _minNoAI,_maxNoAI,_aiDifficultyLevel,blck_UMS_uniforms,blck_UMS_headgear,_scubaGroupParameters,blck_UMS_weapons,blck_UMS_vests,isScubaGroup]
params["_coords",["_minNoAI",3],["_maxNoAI",6],["_aiDifficultyLevel","red"],["_uniforms",blck_SkinList],["_headGear",blck_BanditHeadgear],"_missionGroups"]; params["_coords",["_minNoAI",3],["_maxNoAI",6],["_aiDifficultyLevel","red"],["_uniforms",blck_SkinList],["_headGear",blck_BanditHeadgear],"_missionGroups",["_weapons",[]],["_vests",blck_vests],["_isScubaGroup",false]];
private["_unitsToSpawn","_unitsPerGroup","_ResidualUnits","_newGroup","_blck_AllMissionAI","_abort"]; private["_unitsToSpawn","_unitsPerGroup","_ResidualUnits","_newGroup","_blck_AllMissionAI","_abort"];
_unitsToSpawn = [[_minNoAI,_maxNoAI]] call blck_fnc_getNumberFromRange; //round(_minNoAI + round(random(_maxNoAI - _minNoAI))); _unitsToSpawn = [[_minNoAI,_maxNoAI]] call blck_fnc_getNumberFromRange; //round(_minNoAI + round(random(_maxNoAI - _minNoAI)));
_unitsPerGroup = floor(_unitsToSpawn/_noAIGroups); _unitsPerGroup = floor(_unitsToSpawn/_noAIGroups);
_ResidualUnits = _unitsToSpawn - (_unitsPerGroup * _noAIGroups); _ResidualUnits = _unitsToSpawn - (_unitsPerGroup * _noAIGroups);
_blck_AllMissionAI = []; _blck_AllMissionAI = [];
_abort = false; _abort = false;
if (count _weapons == 0) then {_weapons = [_aiDifficultyLevel] call blck_fnc_selectAILoadout};
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel >= 2) then if (blck_debugLevel >= 2) then
{ {
@ -44,15 +45,11 @@ if (blck_debugLevel >=2) then
#endif #endif
if (count _missionGroups > 0) then if (count _missionGroups > 0) then
{ {
{ { // [[1,-1,-1],"red",4, 5,10]
_x params["_position","_minAI","_maxAI","_skillLevel","_minPatrolRadius","_maxPatrolRadius"]; _x params["_position","_skillLevel","_numAI","_minPatrolRadius","_maxPatrolRadius"];
_groupSpawnPos = _coords vectorAdd _position; _groupSpawnPos = _coords vectorAdd _position;
// params["_pos", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], "_center", ["_minDist",20], ["_maxDist",35], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_configureWaypoints",true],["_weaponList",[]],["_vests",blck_vests],["_scuba",false] ];
diag_log format["_fnc_spawnMissionAI:: _x= %1",_x]; _newGroup = [_groupSpawnPos,_numAI,_numAI,_skillLevel,_coords,_minPatrolRadius,_maxPatrolRadius,_uniforms,_headGear,true,_weapons,_vests,_isScubaGroup] call blck_fnc_spawnGroup;
diag_log format["_fnc_spawnMissionAI:: _coords = %1 | _groupSpawnPos = %2 | _position = %3",_coords,_groupSpawnPos,_position];
// player modelToWorld [0,-1,3];
// params["_pos", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], "_center", ["_minDist",20], ["_maxDist",35], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_configureWaypoints",true] ];
_newGroup = [_groupSpawnPos,_minAI,_maxAI,_skillLevel,_coords,_minPatrolRadius,_maxPatrolRadius,_uniforms,_headGear,true] call blck_fnc_spawnGroup;
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel >= 2) then if (blck_debugLevel >= 2) then
@ -88,15 +85,16 @@ if (_missionGroups isEqualTo []) then
case 1: { // spawn the group near the mission center case 1: { // spawn the group near the mission center
#ifdef blck_debugMode #ifdef blck_debugMode
//params["_pos", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], "_center", ["_minDist",20], ["_maxDist",35], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear] ]; //params["_pos", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], "_center", ["_minDist",20], ["_maxDist",35], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_configureWaypoints",true],["_weaponList",[]],["_vests",blck_vests],["_scuba",false] ];
if (blck_debugLevel >= 2) then if (blck_debugLevel >= 2) then
{ {
diag_log format["missionSpawner: Spawning Groups: _noAIGroups=1"]; diag_log format["missionSpawner: Spawning Groups: _noAIGroups=1"];
}; };
#endif #endif
_minDist = 20;
_maxDist = 35;
_newGroup = [_coords,_unitsToSpawn,_unitsToSpawn,_aiDifficultyLevel,_coords,_minDist,_maxDist,_uniforms,_headGear,true,_weapons,_vests,_isScubaGroup] call blck_fnc_spawnGroup;
_newGroup = [_coords,_unitsToSpawn,_unitsToSpawn,_aiDifficultyLevel,_coords,25,30,_uniforms,_headGear,true] call blck_fnc_spawnGroup;
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel >= 2) then if (blck_debugLevel >= 2) then
{ {
@ -131,7 +129,8 @@ if (_missionGroups isEqualTo []) then
diag_log format["_fnc_spawnMissionAI(47): Spawning Groups: _noAIGroups=2"]; // spawn groups on either side of the mission area diag_log format["_fnc_spawnMissionAI(47): Spawning Groups: _noAIGroups=2"]; // spawn groups on either side of the mission area
}; };
#endif #endif
_minDist = 20;
_maxDist = 35;
_groupLocations = [_coords,_noAIGroups,15,30] call blck_fnc_findPositionsAlongARadius; _groupLocations = [_coords,_noAIGroups,15,30] call blck_fnc_findPositionsAlongARadius;
{ {
private["_adjusttedGroupSize"]; private["_adjusttedGroupSize"];
@ -142,7 +141,8 @@ if (_missionGroups isEqualTo []) then
} else { } else {
_adjusttedGroupSize = _unitsPerGroup; _adjusttedGroupSize = _unitsPerGroup;
}; };
_newGroup = [_x,_adjusttedGroupSize,_adjusttedGroupSize,_aiDifficultyLevel,_coords,15,25,_uniforms,_headGear] call blck_fnc_spawnGroup; _newGroup = [_x,_adjusttedGroupSize,_adjusttedGroupSize,_aiDifficultyLevel,_coords,_minDist,_maxDist,_uniforms,_headGear,true,_weapons,_vests,_isScubaGroup] call blck_fnc_spawnGroup;
if (isNull _newGroup) then if (isNull _newGroup) then
{ {
_abort = true; _abort = true;
@ -171,9 +171,10 @@ if (_missionGroups isEqualTo []) then
diag_log format["_fnc_spawnMissionAI (68): Spawning Groups: _noAIGroups=3"]; diag_log format["_fnc_spawnMissionAI (68): Spawning Groups: _noAIGroups=3"];
}; };
#endif #endif
_minDist = 20;
_maxDist = 35;
_newGroup = [_coords,_unitsPerGroup + _ResidualUnits,_unitsPerGroup + _ResidualUnits,_aiDifficultyLevel,_coords,10,15,_uniforms,_headGear] call blck_fnc_spawnGroup; _newGroup = [_coords,_unitsPerGroup + _ResidualUnits,_unitsPerGroup + _ResidualUnits,_aiDifficultyLevel,_coords,_minDist,_maxDist,_uniforms,_headGear,true,_weapons,_vests,_isScubaGroup] call blck_fnc_spawnGroup;
if (isNull _newGroup) then if (isNull _newGroup) then
{ {
_abort = true; _abort = true;
@ -193,7 +194,7 @@ if (_missionGroups isEqualTo []) then
_groupLocations = [_coords,2,20,35] call blck_fnc_findPositionsAlongARadius; _groupLocations = [_coords,2,20,35] call blck_fnc_findPositionsAlongARadius;
{ {
_newGroup = [_x,_unitsPerGroup,_unitsPerGroup,_aiDifficultyLevel,_coords,1,12,_uniforms,_headGear] call blck_fnc_spawnGroup; _newGroup = [_x,_unitsPerGroup,_unitsPerGroup,_aiDifficultyLevel,_coords,_minDist,_maxDist,_uniforms,_headGear,true,_weapons,_vests,_isScubaGroup] call blck_fnc_spawnGroup;
if (isNull _newGroup) then if (isNull _newGroup) then
{ {
_abort = true; _abort = true;
@ -223,7 +224,7 @@ if (_missionGroups isEqualTo []) then
}; };
#endif #endif
_newGroup = [_coords,_unitsPerGroup + _ResidualUnits,_unitsPerGroup + _ResidualUnits,_aiDifficultyLevel,_coords,1,12,_uniforms,_headGear] call blck_fnc_spawnGroup; _newGroup = [_coords,_unitsPerGroup + _ResidualUnits,_unitsPerGroup + _ResidualUnits,_aiDifficultyLevel,_coords,1,12,_uniforms,_headGear,true,_weapons,_vests,_isScubaGroup] call blck_fnc_spawnGroup;
if (isNull _newGroup) then if (isNull _newGroup) then
{ {
_abort = true; _abort = true;
@ -240,7 +241,9 @@ if (_missionGroups isEqualTo []) then
_blck_AllMissionAI append _newAI; _blck_AllMissionAI append _newAI;
_groupLocations = [_coords,(_noAIGroups - 1),20,40] call blck_fnc_findPositionsAlongARadius; _groupLocations = [_coords,(_noAIGroups - 1),20,40] call blck_fnc_findPositionsAlongARadius;
{ {
_newGroup = [_x,_unitsPerGroup,_unitsPerGroup,_aiDifficultyLevel,_coords,1,12,_uniforms,_headGear] call blck_fnc_spawnGroup; _minDist = 20;
_maxDist = 35;
_newGroup = [_x,_unitsPerGroup,_unitsPerGroup,_aiDifficultyLevel,_coords,_minDist,_maxDist,_uniforms,_headGear,true,_weapons,_vests,_isScubaGroup] call blck_fnc_spawnGroup;
if (isNull _newGroup) then if (isNull _newGroup) then
{ {
_abort = true; _abort = true;
@ -248,10 +251,12 @@ if (_missionGroups isEqualTo []) then
else else
{ {
_newAI = units _newGroup; _newAI = units _newGroup;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then if (blck_debugLevel > 2) then
{ {
diag_log format["_fnc_spawnMissionAI(99): _newGroup=%1",_newGroup]; diag_log format["_fnc_spawnMissionAI(99): _newGroup=%1",_newGroup];
}; };
#endif
_blck_AllMissionAI append _newAI; _blck_AllMissionAI append _newAI;
}; };
}forEach _groupLocations; }forEach _groupLocations;

View File

@ -1,6 +1,6 @@
/* /*
Spawn some crates using an array containing crate types and their offsets relative to a reference position and prevent their cleanup. Spawn some crates using an array containing crate types and their offsets relative to a reference position and prevent their cleanup.
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last updated 3-20-17 Last updated 3-20-17
@ -15,7 +15,7 @@
private ["_objs","_pos","_offset"]; private ["_objs","_pos","_offset"];
params[ ["_coords", [0,0,0]], ["_crates",[]], ["_loadCrateTiming","atMissionSpawn"] ]; params[ ["_coords", [0,0,0]], ["_crates",[]], ["_loadCrateTiming","atMissionSpawn"] ];
//diag_log format["_fnc_spawnMissionLootcrates: _this = %1",_this];
if ((count _coords) == 2) then // assume only X and Y offsets are provided if ((count _coords) == 2) then // assume only X and Y offsets are provided
{ {
_coords pushback 0;; // calculate the world coordinates _coords pushback 0;; // calculate the world coordinates
@ -28,6 +28,9 @@ _objs = [];
if (blck_debugLevel > 1) then if (blck_debugLevel > 1) then
{ {
diag_log format["_fnc_spawnMissionCrates: _crateType = %1 | _crateOffset = %2 | _lootArray = %3 | _lootCounts = %4",_crateType,_crateOffset,_lootArray,_lootCounts]; diag_log format["_fnc_spawnMissionCrates: _crateType = %1 | _crateOffset = %2 | _lootArray = %3 | _lootCounts = %4",_crateType,_crateOffset,_lootArray,_lootCounts];
_marker = createMarker [format["crateMarker%1",random(1000000)], _pos];
_marker setMarkerType "mil_triangle";
_marker setMarkerColor "colorGreen";
}; };
#endif #endif
_pos = _coords vectorAdd _crateOffset; _pos = _coords vectorAdd _crateOffset;

View File

@ -13,12 +13,13 @@
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
params["_missionLootVehicles",["_loadCrateTiming","atMissionSpawn"]]; params["_coords","_missionLootVehicles",["_loadCrateTiming","atMissionSpawn"]];
if (count _coords == 2) then {_coords pushBack 0};
private _vehs = []; private _vehs = [];
{ {
//diag_log format["spawnMissionCVehicles.sqf _x = %1",_x]; diag_log format["spawnMissionCVehicles.sqf _x = %1",_x];
_x params["_vehType","_vehOffset","_lootArray","_lootCounts"]; _x params["_vehType","_vehOffset","_lootArray","_lootCounts"];
//diag_log format["spawnMissionCVehicles: _vehType = %1 | _vehOffset = %2 | _lootArray = %3 | _lootCounts = %4",_vehType,_vehOffset,_lootArray,_lootCounts]; diag_log format["spawnMissionCVehicles: _vehType = %1 | _vehOffset = %2 | _lootArray = %3 | _lootCounts = %4",_vehType,_vehOffset,_lootArray,_lootCounts];
_pos = _coords vectorAdd _vehOffset; _pos = _coords vectorAdd _vehOffset;
_veh = [_vehType, _pos] call blck_fnc_spawnVehicle; _veh = [_vehType, _pos] call blck_fnc_spawnVehicle;
[_veh] call blck_fnc_emptyObject; [_veh] call blck_fnc_emptyObject;
@ -28,7 +29,7 @@ private _vehs = [];
}forEach ["getin","getout"]; }forEach ["getin","getout"];
if (_loadCrateTiming isEqualTo "atMissionSpawn") then if (_loadCrateTiming isEqualTo "atMissionSpawn") then
{ {
//diag_log format["blck_fnc_spawnMissionLootVehicles::-> loading loot at mission spawn for veh %1",_x]; diag_log format["blck_fnc_spawnMissionLootVehicles::-> loading loot at mission spawn for veh %1",_x];
[_veh,_lootArray,_lootCounts] call blck_fnc_fillBoxes; [_veh,_lootArray,_lootCounts] call blck_fnc_fillBoxes;
_veh setVariable["lootLoaded",true]; _veh setVariable["lootLoaded",true];
} }

View File

@ -1,6 +1,6 @@
/* /*
[_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear] call blck_fnc_spawnMissionVehiclePatrols [_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear] call blck_fnc_spawnMissionVehiclePatrols
by Ghostrider-DbD- by Ghostrider [GRG]
3/17/17 3/17/17
returns [] if no groups could be created returns [] if no groups could be created
returns [_AI_Vehicles,_missionAI] otherwise; returns [_AI_Vehicles,_missionAI] otherwise;
@ -14,11 +14,12 @@
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
params["_coords","_noVehiclePatrols","_aiDifficultyLevel","_uniforms","_headGear","_missionPatrolVehicles"]; params["_coords","_noVehiclePatrols","_aiDifficultyLevel","_uniforms","_headGear","_missionPatrolVehicles",["_useRelativePos",true],["_weapons",[]],["_vests",blck_vests],["_isScubaGroup",false]];
if (count _weapons == 0) then {_weapons = [_aiDifficultyLevel] call blck_fnc_selectAILoadout};
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 1) then if (blck_debugLevel > 1) then
{ {
diag_log format["_fnc_spawnMissionVehiclePatrols: _this = %1",_this];
diag_log format["_fnc_spawnMissionVehiclePatrols:: _coords = %1 | _noVehiclePatrols = %2 | _aiDifficultyLevel = %3",_coords,_noVehiclePatrols,_aiDifficultyLevel]; diag_log format["_fnc_spawnMissionVehiclePatrols:: _coords = %1 | _noVehiclePatrols = %2 | _aiDifficultyLevel = %3",_coords,_noVehiclePatrols,_aiDifficultyLevel];
}; };
#endif #endif
@ -27,17 +28,16 @@ private["_vehGroup","_patrolVehicle","_vehiclePatrolSpawns","_missionAI","_missi
_vehicles = []; _vehicles = [];
_missionAI = []; _missionAI = [];
_abort = false; _abort = false;
_useRelativePos = false; //_useRelativePos = false;
if (_missionPatrolVehicles isEqualTo []) then if (_missionPatrolVehicles isEqualTo []) then
{ {
_useRelativePos = false;
_vehiclePatrolSpawns = [_coords,_noVehiclePatrols,45,60] call blck_fnc_findPositionsAlongARadius; _vehiclePatrolSpawns = [_coords,_noVehiclePatrols,45,60] call blck_fnc_findPositionsAlongARadius;
{ {
private _v = selectRandom blck_AIPatrolVehicles; private _v = selectRandom blck_AIPatrolVehicles;
//diag_log format["_fnc_spawnMissionVehiclePatrols (36):: position = %1 and vehicle = %2",_x, _v]; //diag_log format["_fnc_spawnMissionVehiclePatrols (36):: position = %1 and vehicle = %2",_x, _v];
_missionPatrolVehicles pushBack [_v, _x]; _missionPatrolVehicles pushBack [_v, _x];
}forEach _vehiclePatrolSpawns; }forEach _vehiclePatrolSpawns;
} else {
_useRelativePos = true;
}; };
{ {
@ -56,7 +56,7 @@ if (_missionPatrolVehicles isEqualTo []) then
}; };
_vehicle = _x select 0; _vehicle = _x select 0;
_vehGroup = [_spawnPos,3,3,_aiDifficultyLevel,_coords,1,2,_uniforms,_headGear,false] call blck_fnc_spawnGroup; _vehGroup = [_spawnPos,3,3,_aiDifficultyLevel,_coords,1,2,_uniforms,_headGear,false,_weapons,_vests,_isScubaGroup] call blck_fnc_spawnGroup;
if (isNull _vehGroup) exitWith if (isNull _vehGroup) exitWith
{ {
_abort = true; _abort = true;
@ -70,8 +70,8 @@ if (_missionPatrolVehicles isEqualTo []) then
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 1) then if (blck_debugLevel > 1) then
{ {
diag_log format["_fnc_spawnMissionVehiclePatrols: group spawned = %1",_vehGroup]; diag_log format["_fnc_spawnMissionVehiclePatrols (73): group spawned = %1",_vehGroup];
//diag_log format["_fnc_spawnMissionVehiclePatrols (40):: -> _missionType = %3 _vehGroup = %1 and units _vehGroup = %2",_vehGroup, units _vehGroup,_missionType]; //diag_log format["_fnc_spawnMissionVehiclePatrols (74):: -> _missionType = %3 _vehGroup = %1 and units _vehGroup = %2",_vehGroup, units _vehGroup,_missionType];
}; };
#endif #endif
@ -83,7 +83,7 @@ if (_missionPatrolVehicles isEqualTo []) then
#endif #endif
//params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",30],["_maxDis",45],["_group",grpNull]]; //params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",30],["_maxDis",45],["_group",grpNull]];
_patrolVehicle = [_coords,_spawnPos,_vehicle,35,45,_vehGroup] call blck_fnc_spawnVehiclePatrol; _patrolVehicle = [_coords,_spawnPos,_vehicle,30,45,_vehGroup] call blck_fnc_spawnVehiclePatrol;
_vehGroup setVariable["groupVehicle",_vehicle]; _vehGroup setVariable["groupVehicle",_vehicle];
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 1) then if (blck_debugLevel > 1) then

View File

@ -1,11 +1,11 @@
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last modified 4/29/17 Last modified 4/29/17
checks the status of each entry in checks the status of each entry in
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
-------------------------- --------------------------
License License
-------------------------- --------------------------
@ -19,7 +19,6 @@
if (blck_debugLevel > 0) then { if (blck_debugLevel > 0) then {
diag_log format["_fnc_spawnPendingMissions:: blck_pendingMissions = %1", blck_pendingMissions]; diag_log format["_fnc_spawnPendingMissions:: blck_pendingMissions = %1", blck_pendingMissions];
}; };
diag_log format["_fnc_spawnPendingMissions: -- >> blck_missionsRunning = %1",blck_missionsRunning];
#endif #endif
if (blck_missionsRunning >= blck_maxSpawnedMissions) exitWith { if (blck_missionsRunning >= blck_maxSpawnedMissions) exitWith {
@ -61,7 +60,18 @@ if (count _readyToSpawnQue > 0) then
_missionName = selectRandom (_missionToSpawn select 0); _missionName = selectRandom (_missionToSpawn select 0);
_missionPath = _missionToSpawn select 1; _missionPath = _missionToSpawn select 1;
_allowReinforcements = _missionToSpawn select 8; _allowReinforcements = _missionToSpawn select 8;
[_coords,_missionToSpawn,_allowReinforcements] execVM format["\q\addons\custom_server\Missions\%1\%2.sqf",_missionPath,_missionName]; //[_coords,_missionToSpawn,_allowReinforcements] execVM format["\q\addons\custom_server\Missions\%1\%2.sqf",_missionPath,_missionName];
[_coords,_missionToSpawn,_allowReinforcements] spawn compileFinal preprocessFileLineNumbers format["\q\addons\custom_server\Missions\%1\%2.sqf",_missionPath,_missionName];
blck_missionsRunning = blck_missionsRunning + 1; blck_missionsRunning = blck_missionsRunning + 1;
}; };
//diag_log format["_fnc_spawnPendingMissions: blck_numberUnderwaterDynamicMissions = %1 |
if (blck_dynamicUMS_MissionsRuning < blck_numberUnderwaterDynamicMissions) then
{
diag_log "Adding dyanamic UMS Mission";
private ["_spawnPos"];
_spawnPos = call blck_fnc_findShoreLocation;
[_spawnPos] spawn blck_fnc_addDyanamicUMS_Mission;
//_spawnPos call compileFinal preprocessFileLineNumbers format["q\addons\custom_server\Missions\UMS\dynamicMissiones\%1.sqf";
};
true true

View File

@ -1,6 +1,6 @@
/* /*
spawn a group of objects in random locations aligned with the radial from the center of the region to the object. spawn a group of objects in random locations aligned with the radial from the center of the region to the object.
By Ghostrider-DbD- By Ghostrider [GRG]
Last modified 1/22/17 Last modified 1/22/17
copyright 2016 copyright 2016

View File

@ -1,7 +1,7 @@
/* /*
Update the parameters for a mission in the list of missions running at that time. Update the parameters for a mission in the list of missions running at that time.
Call with the name of the marker associated with the mission and either "Active" or "Completed" Call with the name of the marker associated with the mission and either "Active" or "Completed"
by Ghostrider-DbD- by Ghostrider [GRG]
Last modified 1-22-17 Last modified 1-22-17
-------------------------- --------------------------

View File

@ -1,5 +1,5 @@
/* /*
Author: Ghostrider-DbD- Author: Ghostrider [GRG]
Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP
License: Attribution-NonCommercial-ShareAlike 4.0 International License: Attribution-NonCommercial-ShareAlike 4.0 International
Last Modified 1/23/17 Last Modified 1/23/17

View File

@ -1,5 +1,5 @@
/* /*
Author: Ghostrider-DbD- Author: Ghostrider [GRG]
Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP
License: Attribution-NonCommercial-ShareAlike 4.0 International License: Attribution-NonCommercial-ShareAlike 4.0 International
call with call with

View File

@ -51,7 +51,7 @@ if (_time > (_sunset + 0.5) || _time < (_sunrise - 0.5)) exitWith {
// Day // Day
if (_time > (_sunrise + 0.5) && _time < (_sunset - 0.5)) exitWith { if (_time > (_sunrise + 0.5) && _time < (_sunset - 0.5)) exitWith {
setTimeMultiplier blck_timeAccelerationDay; setTimeMultiplier blck_timeAccelerationDay;
diag_log format["DAYTIME ADJUSTMENT:: time accel updated to %1; time of day = %2",timeMultiplier,dayTime]; //diag_log format["DAYTIME ADJUSTMENT:: time accel updated to %1; time of day = %2",timeMultiplier,dayTime];
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 2) then if (blck_debugLevel > 2) then
{ {

View File

@ -1,7 +1,7 @@
/* /*
Deals with instances in which a unit is damaged (not in use). Deals with instances in which a unit is damaged (not in use).
By Ghostrider-DbD- By Ghostrider [GRG]
Last modified 4-11-17 Last modified 4-11-17
unit: Object - Object the event handler is assigned to. unit: Object - Object the event handler is assigned to.

View File

@ -1,5 +1,5 @@
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
Last Modified 7-27-17 Last Modified 7-27-17
Handles the case where a unit is hit. Handles the case where a unit is hit.
@ -13,39 +13,6 @@
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
private ["_unit","_instigator","_group","_wp"]; _this remoteExec["blck_fnc_processAIHit",2];
diag_log format["_EH_AIHit::-->> _this = %1",_this];
_unit = _this select 0 select 0;
_instigator = _this select 0 select 3;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then
{
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
{
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

@ -15,5 +15,11 @@
params["_unit","_killer"]; params["_unit","_killer"];
diag_log format["EH_AIKilled:: _units = %1 and _killer = %2",_unit,_killer]; #ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
private _vars = ["unit","killer","instigator","useEffects"];
diag_log format["EH_AIKilled:: _this select %1 (_var select %2) = %3",_forEachIndex,_vars select _forEachIndex,_this select _forEachIndex];
};
#endif
[_unit,_killer] remoteExec ["blck_fnc_processAIKill",2]; [_unit,_killer] remoteExec ["blck_fnc_processAIKill",2];

View File

@ -2,7 +2,7 @@
Handle case where a unit reloads weapon. Handle case where a unit reloads weapon.
This was used in place of fired event handlers to add realism and deal with issues with the arma engine post v1.64 This was used in place of fired event handlers to add realism and deal with issues with the arma engine post v1.64
By Ghostrider-DbD- By Ghostrider [GRG]
Last modified 4-11-17 Last modified 4-11-17
https://community.bistudio.com/wiki/Arma_3:_Event_Handlers/Reloaded https://community.bistudio.com/wiki/Arma_3:_Event_Handlers/Reloaded
@ -32,11 +32,10 @@
//_mag = _this select 3 select 0; //_mag = _this select 3 select 0;
(_this select 0) addMagazine (_this select 3 select 0); (_this select 0) addMagazine (_this select 3 select 0);
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugON) then { if (blck_debugON || blck_debugLevel > 2) then {
//diag_log format["_EH_unitWeaponReloaded:: unit %1 reloaded weapon %2 with magazine %3",_this select 0, (_this select 3 select 0)]; //diag_log format["_EH_unitWeaponReloaded:: unit %1 reloaded weapon %2 with magazine %3",_this select 0, (_this select 3 select 0)];
//diag_log format["_EH_unitWeaponReloaded:: unit %1 currently has the following magazines 2",_this select 0,magazines (_this select 0)]; //diag_log format["_EH_unitWeaponReloaded:: unit %1 currently has the following magazines 2",_this select 0,magazines (_this select 0)];
diag_log format["_EH_unitWeaponReloaded:: one magazine of type %1 added to inventory of unit %2",_mag,_unit];
}; };
#endif #endif
if (blck_debugLevel > 2) then (diag_log format["_EH_unitWeaponReloaded:: one magazine of type %1 added to inventory of unit %2",_mag,_unit];

View File

@ -14,7 +14,7 @@
private["_knowsAbout","_intelligence","_group"]; private["_knowsAbout","_intelligence","_group"];
params["_unit","_target"]; params["_unit","_target"];
diag_log format["_fnc_alertGroupUnits called _unit = %1 and _targert = %2",_unit,_target]; //diag_log format["_fnc_alertGroupUnits called _unit = %1 and _targert = %2",_unit,_target];
_intelligence = _unit getVariable ["intelligence",1]; _intelligence = _unit getVariable ["intelligence",1];
_group = group _unit; _group = group _unit;
{ {

View File

@ -32,7 +32,7 @@ _fn_allertNearbyVehicleGroups = {
if (_target distance2D (leader _vehGroup) < 1000) then {[_vehGroup,_target] call _fn_alertGroupUnits;}; if (_target distance2D (leader _vehGroup) < 1000) then {[_vehGroup,_target] call _fn_alertGroupUnits;};
}forEach _vehicles; }forEach _vehicles;
}; };
diag_log format["_fnc_alertNearbyVehicles called: _target = %1",_target]; //diag_log format["_fnc_alertNearbyVehicles called: _target = %1",_target];
[blck_monitoredVehicles,_target] call _fn_allertNearbyVehicleGroups; [blck_monitoredVehicles,_target] call _fn_allertNearbyVehicleGroups;

View File

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

View File

@ -1,7 +1,7 @@
/* /*
Handle AI Deaths Handle AI Deaths
Last Modified 7/27/17 Last Modified 7/27/17
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
-------------------------- --------------------------
License License

View File

@ -1,6 +1,6 @@
/* /*
Remove all gear from an AI _unit Remove all gear from an AI _unit
By Ghostrider-DbD- By Ghostrider [GRG]
-------------------------- --------------------------
License License

View File

@ -3,7 +3,7 @@
Modified by Ghostrider Modified by Ghostrider
Logic for adding AI Ammo, GL Shells and Attachments addapted from that by Buttface (A3XAI). Logic for adding AI Ammo, GL Shells and Attachments addapted from that by Buttface (A3XAI).
Everything having to do with spawning and configuring an AI should happen here Everything having to do with spawning and configuring an AI should happen here
Last Modified 1/22/17 Last Modified 11/12/17
-------------------------- --------------------------
License License
-------------------------- --------------------------
@ -13,19 +13,27 @@
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
//Defines private variables so they don't interfere with other scripts private ["_i","_weap","_skin","_ai1","_skillLevel","_aiSkills","_launcherRound","_index","_ammoChoices"];
private ["_i","_weap","_skin","_ai1","_skillLevel","_aiSkills", params["_pos","_weaponList","_aiGroup",["_skillLevel","red"],["_Launcher","none"],["_uniforms", blck_SkinList],["_headGear",blck_headgear],["_vests",blck_vests],["_scuba",false]];
"_launcherRound","_index","_ammoChoices"]; #ifdef blck_debugMode
if (blck_debugLevel > 2) then
params["_pos","_weaponList","_aiGroup",["_skillLevel","red"],["_Launcher","none"],["_uniforms", blck_SkinList],["_headGear",blck_headgear],["_underwater",false]]; {
//_pos = _this select 0; // Position at which to spawn AI private _params = ["_pos","_weaponList","_aiGroup","_skillLevel","_Launcher","_uniforms","_headGear","_vests","_scuba"];
//_weaponList = _this select 1; // List of weapons with which to arm the AI {
//_aiGroup = _this select 2; // Group to which AI belongs diag_log format["_fnc_spawnUnit::-> _this select %1 (%2) = %3",_forEachIndex, _params select _forEachIndex, _this select _forEachIndex];
//_skillLevel = [_this,3,"red"] call BIS_fnc_param; // Assign a skill level in case one was not passed."blue", "red", "green", "orange" }forEach _this;
//_Launcher = [_this, 4, "none"] call BIS_fnc_param; // Set launchers to "none" if no setting was passed. //_pos = _this select 0; // Position at which to spawn AI
//_uniforms = [_this, 5, blck_SkinList] call BIS_fnc_param; // skins to add to AI //_weaponList = _this select 1; // List of weapons with which to arm the AI
//_headGear = [_this, 6, _shemag] call BIS_fnc_param;// headGear to add to AI //_aiGroup = _this select 2; // Group to which AI belongs
//_skillLevel = [_this,3,"red"] call BIS_fnc_param; // Assign a skill level in case one was not passed."blue", "red", "green", "orange"
//_Launcher = [_this, 4, "none"] call BIS_fnc_param; // Set launchers to "none" if no setting was passed.
//_uniforms = [_this, 5, blck_SkinList] call BIS_fnc_param; // skins to add to AI
//_headGear = [_this, 6, _shemag] call BIS_fnc_param;// headGear to add to AI
{
diag_log format["_fnc_spawnUnit:: _this select %1 = %2",_forEachIndex,_x];
}forEach _this;
};
#endif
if (isNull _aiGroup) exitWith {diag_log "[blckeagls] ERROR CONDITION:-->> NULL-GROUP Provided to _fnc_spawnUnit"}; if (isNull _aiGroup) exitWith {diag_log "[blckeagls] ERROR CONDITION:-->> NULL-GROUP Provided to _fnc_spawnUnit"};
_ai1 = ObjNull; _ai1 = ObjNull;
@ -52,7 +60,23 @@ if (_modType isEqualTo "Exile") then
case "orange":{_ai1 setVariable["ExileMoney",8 + floor(random(blck_maxMoneyOrange)),true];}; case "orange":{_ai1 setVariable["ExileMoney",8 + floor(random(blck_maxMoneyOrange)),true];};
}; };
}; };
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["_fnc_spawnUnit::-->> unit spawned = %1",_ai1];
};
#endif
[_ai1] call blck_fnc_removeGear; [_ai1] call blck_fnc_removeGear;
if (_scuba) then
{
_ai1 swiminDepth (_pos select 2);
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["_fnc_spawnUnit:: -- >> unit depth = %1 and underwater for unit = %2",_pos select 2, underwater _ai1];
};
#endif
};
_skin = ""; _skin = "";
_counter = 1; _counter = 1;
while {_skin isEqualTo "" && _counter < 10} do while {_skin isEqualTo "" && _counter < 10} do
@ -60,7 +84,12 @@ while {_skin isEqualTo "" && _counter < 10} do
_skin = selectRandom _uniforms; _skin = selectRandom _uniforms;
_ai1 forceAddUniform _skin; _ai1 forceAddUniform _skin;
_skin = uniform _ai1; _skin = uniform _ai1;
//diag_log format["_fnc_spawnUnit::-->> for unit _ai1 % uniform is %2",_ai1, uniform _ai1]; #ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["_fnc_spawnUnit::-->> for unit _ai1 % uniform is %2",_ai1, uniform _ai1];
};
#endif
_counter =+1; _counter =+1;
}; };
//Sets AI Tactics //Sets AI Tactics
@ -78,14 +107,11 @@ if (_modType isEqualTo "Epoch") then
// do this so the AI or corpse hangs around on Epoch servers. // do this so the AI or corpse hangs around on Epoch servers.
_ai1 setVariable ["LAST_CHECK",28800,true]; _ai1 setVariable ["LAST_CHECK",28800,true];
}; };
_ai1 addHeadgear (selectRandom _headGear); _ai1 addHeadgear (selectRandom _headGear);
// Add a vest to AI for storage _ai1 addVest selectRandom _vests;
_ai1 addVest selectRandom blck_vests;
if ( random (1) < blck_chanceBackpack) then if ( random (1) < blck_chanceBackpack) then
{ {
//_bpck = selectRandom blck_backpack;
_ai1 addBackpack selectRandom blck_backpacks; _ai1 addBackpack selectRandom blck_backpacks;
}; };
@ -106,7 +132,8 @@ if (random 1 < 0.4) then {_ai1 addPrimaryWeaponItem (selectRandom _legalOptics);
if (random 1 < 0.4) then {_ai1 addPrimaryWeaponItem (selectRandom _pointers);}; if (random 1 < 0.4) then {_ai1 addPrimaryWeaponItem (selectRandom _pointers);};
if (random 1 < 0.4) then {_ai1 addPrimaryWeaponItem (selectRandom _muzzles);}; if (random 1 < 0.4) then {_ai1 addPrimaryWeaponItem (selectRandom _muzzles);};
if (random 1 < 0.4) then {_ai1 addPrimaryWeaponItem (selectRandom _underbarrel);}; if (random 1 < 0.4) then {_ai1 addPrimaryWeaponItem (selectRandom _underbarrel);};
if ((count(getArray (configFile >> "cfgWeapons" >> _weap >> "muzzles"))) > 1) then { if ((count(getArray (configFile >> "cfgWeapons" >> _weap >> "muzzles"))) > 1) then
{
_ai1 addMagazine "1Rnd_HE_Grenade_shell"; _ai1 addMagazine "1Rnd_HE_Grenade_shell";
}; };
@ -116,12 +143,12 @@ _ai1 addWeaponGlobal _weap;
_ammoChoices = getArray (configFile >> "CfgWeapons" >> _weap >> "magazines"); _ammoChoices = getArray (configFile >> "CfgWeapons" >> _weap >> "magazines");
_ai1 addMagazines [selectRandom _ammoChoices, 2]; _ai1 addMagazines [selectRandom _ammoChoices, 2];
//add random items to AI. _other = ["ITEM","COUNT"] for "_i" from 1 to (1+floor(random(3))) do
for "_i" from 1 to (1+floor(random(3))) do { {
_ai1 addItem (selectRandom blck_ConsumableItems); _ai1 addItem (selectRandom blck_ConsumableItems);
}; };
// Add an First Aid or Grenade 50% of the time // Add First Aid or Grenade 50% of the time
if (round(random 10) <= 5) then if (round(random 10) <= 5) then
{ {
//_item = selectRandom blck_specialItems; //_item = selectRandom blck_specialItems;
@ -151,11 +178,17 @@ else
_ai1 setVariable ["hasNVG", false,true]; _ai1 setVariable ["hasNVG", false,true];
}; };
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["_fnc_spawnUnit:: --> unit loadout = %1", getUnitLoadout _ai1];
};
#endif
// Infinite ammo // Infinite ammo
//_ai1 addeventhandler ["fired", {(_this select 0) setvehicleammo 1;}]; //_ai1 addeventhandler ["fired", {(_this select 0) setvehicleammo 1;}];
_ai1 addMPEventHandler ["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 ["Hit",{ [_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",{diag_log "-------->>>>>>>> Weapon fired Near Unit";}];
//_ai1 addEventHandler ["FiredNear",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIFiredNear;};]; //_ai1 addEventHandler ["FiredNear",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIFiredNear;};];

View File

@ -0,0 +1,55 @@
/*
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,5 +1,5 @@
/* /*
By Ghostrider-DbD- By Ghostrider [GRG]
Last Modified 7-27-17 Last Modified 7-27-17
Handles the case where a vehicle is hit. Handles the case where a vehicle is hit.
@ -13,29 +13,6 @@
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
private ["_veh","_instigator","_group","_wp"]; _this remoteExec ["blck_fnc_HandleAIVehicleDamage",2];
//diag_log format["_EH_AIVehicle_HandleDamage::-->> _this = %1",_this];
//diag_log format["_EH_AIVehicle_HandleDamage:: _units = %1 and _instigator = %2 units damage is %3",_unit,_instigator, damage _unit];
_veh = _this select 0 select 0;
_instigator = _this select 0 select 3;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then
{
diag_log format["_EH_AIVehicle_HandleDamage:: _units = %1 and _instigator = %2 units damage is %3",_unit,_instigator, damage _unit];
};
#endif
if (!(alive _veh)) exitWith {};
if (!(isPlayer _instigator)) exitWith {};
_crew = crew _veh;
[_crew select 0,_instigator] call blck_fnc_alertGroupUnits;
[_instigator] call blck_fnc_alertNearbyVehicles;
_group = group (_veh select 0);
//_group setBehavior "COMBAT";
_wp = [_group, currentWaypoint _group];
_wp setWaypointBehaviour "COMBAT";
_group setCombatMode "RED";
_wp setWaypointCombatMode "RED";

View File

@ -0,0 +1,61 @@
/*
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";
private ["_veh","_instigator","_group","_wp"];
/*
_this select 1 contains:
unit: Object - Object the event handler is assigned to.
hitSelection: String - Name of the selection where the unit was damaged. "" for over-all structural damage, "?" for unknown selections.
damage: Number - Resulting level of damage for the selection.
source: Object - The source unit that caused the damage.
projectile: String - Classname of the projectile that caused inflicted the damage. ("" for unknown, such as falling damage.)
(Since Arma 3 v1.49)
hitPartIndex: Number - Hit part index of the hit point, -1 otherwise.
(Since Arma 3 v1.65)
instigator: Object - Person who pulled the trigger
(Since Arma 3 v 1.67)
hitPoint: String - hit point Cfg name
*/
_veh = _this select 0 select 0;
_instigator = _this select 0 select 3;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then
{
diag_log format["_fnc_HandleAIVehicleDamage: _this = %1",_this];
diag_log format["_EH_AIVehicle_HandleDamage:: _units = %1 and _instigator = %2 units damage is %3",_veh,_instigator, damage _veh];
};
#endif
if (!(alive _veh)) exitWith {};
if (!(isPlayer _instigator)) exitWith {};
_crew = crew _veh;
[_crew select 0,_instigator] call blck_fnc_alertGroupUnits;
[_instigator] call blck_fnc_alertNearbyVehicles;
_group = group (_crew select 0);
_group setBehaviour "COMBAT";
_wp = [_group, currentWaypoint _group];
_wp setWaypointBehaviour "COMBAT";
_group setCombatMode "RED";
_wp setWaypointCombatMode "RED";

View File

@ -1,6 +1,6 @@
// Configures a mission vehicle // Configures a mission vehicle
/* /*
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last updated 3-14-17 Last updated 3-14-17

View File

@ -1,5 +1,5 @@
/* /*
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last updated 3-14-17 Last updated 3-14-17

View File

@ -1,5 +1,5 @@
// Protect Vehicles from being cleaned up by the server // Protect Vehicles from being cleaned up by the server
// Last modified 2/26/16 by Ghostrider-DBD- // Last modified 2/26/16 by Ghostrider [GRG]
/* /*
-------------------------- --------------------------
License License

View File

@ -2,7 +2,7 @@
Handle the case that all AI assigned to a vehicle are dead. Handle the case that all AI assigned to a vehicle are dead.
Allows players to enter and use the vehicle. Allows players to enter and use the vehicle.
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last updated 3-24-17 Last updated 3-24-17
-------------------------- --------------------------

View File

@ -1,5 +1,5 @@
/* /*
Author: Ghostrider-DbD- Author: Ghostrider [GRG]
Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP
License: Attribution-NonCommercial-ShareAlike 4.0 International License: Attribution-NonCommercial-ShareAlike 4.0 International
Last Modified 1/23/17 Last Modified 1/23/17

View File

@ -0,0 +1,37 @@
/*
Spawn a vehicle and protect it against cleanup by Epoch
Returns the object (vehicle) created.
By Ghostrider [GRG]
Last modified 1-27-17
--------------------------
License
--------------------------
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
private["_veh","_modType"];
params["_vehType","_pos",["_clearInventory",true]];
#ifdef blck_debugMode
if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf: _vehType = %1 | _pos = %2",_vehType,_pos];};
#endif
_veh = createVehicle[_vehType, _pos, [], 0, "NONE"];
_veh setVariable["blck_vehicle",true];
[_veh] call blck_fnc_protectVehicle;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf:: vehicle spawned is %1",_veh];};
#endif
// params["_veh",["_clearInventory",true]];
[_veh,_clearInventory] call blck_fnc_configureMissionVehicle;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then {diag_log format["spawnVehicle:: returning parameter _veh = %1",_veh];};
#endif
_veh

View File

@ -1,6 +1,6 @@
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 8-15-17 Last Modified 8-15-17
@ -22,8 +22,8 @@ _uniforms = _this select 3;
_headGear = _this select 4; _headGear = _this select 4;
_helis = _this select 5; _helis = _this select 5;
*/ */
diag_log format["_fnc_spawnMissionHeli:: _this = %1",_this]; //diag_log format["_fnc_spawnMissionHeli:: _this = %1",_this];
diag_log format["_fnc_spawnMissionHeli:: _helis = %1 && _chanceParas = %2",_helis,_chanceParas]; //diag_log format["_fnc_spawnMissionHeli:: _helis = %1 && _chanceParas = %2",_helis,_chanceParas];
/* /*
Handles upper level functions of reinforcements utilizing helicoptor patrols and/or spawned from a helicopter. Handles upper level functions of reinforcements utilizing helicoptor patrols and/or spawned from a helicopter.
Calls on functions that spawn paratroops and/or loot chests at the heli's location. Calls on functions that spawn paratroops and/or loot chests at the heli's location.

View File

@ -1,5 +1,5 @@
/* /*
Author: Ghostrider-DbD- Author: Ghostrider [GRG]
Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP
License: Attribution-NonCommercial-ShareAlike 4.0 International License: Attribution-NonCommercial-ShareAlike 4.0 International
3/17/17 3/17/17

View File

@ -1,5 +1,5 @@
/* /*
Author: Ghostrider-DbD- Author: Ghostrider [GRG]
Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP
License: Attribution-NonCommercial-ShareAlike 4.0 International License: Attribution-NonCommercial-ShareAlike 4.0 International
call with call with

View File

@ -1,5 +1,5 @@
/* /*
Author: Ghostrider-DbD- Author: Ghostrider [GRG]
Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP
License: Attribution-NonCommercial-ShareAlike 4.0 International License: Attribution-NonCommercial-ShareAlike 4.0 International
3/17/17 3/17/17

View File

@ -1,6 +1,6 @@
/* /*
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 8-16-17 Last Modified 8-16-17

View File

@ -0,0 +1,37 @@
/*
Spawn a vehicle and protect it against cleanup by Epoch
Returns the object (vehicle) created.
By Ghostrider [GRG]
Last modified 1-27-17
--------------------------
License
--------------------------
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
private["_veh","_modType"];
params["_vehType","_pos",["_clearInventory",true]];
#ifdef blck_debugMode
if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf: _vehType = %1 | _pos = %2",_vehType,_pos];};
#endif
_veh = createVehicle[_vehType, _pos, [], 0, "NONE"];
_veh setVariable["blck_vehicle",true];
[_veh] call blck_fnc_protectVehicle;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf:: vehicle spawned is %1",_veh];};
#endif
// params["_veh",["_clearInventory",true]];
[_veh,_clearInventory] call blck_fnc_configureMissionVehicle;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then {diag_log format["spawnVehicle:: returning parameter _veh = %1",_veh];};
#endif
_veh

View File

@ -1,7 +1,7 @@
/* /*
Spawn a vehicle and protect it against cleanup by Epoch Spawn a vehicle and protect it against cleanup by Epoch
Returns the object (vehicle) created. Returns the object (vehicle) created.
By Ghostrider-DBD- By Ghostrider [GRG]
Last modified 1-27-17 Last modified 1-27-17
-------------------------- --------------------------
License License

View File

@ -1,5 +1,5 @@
/* /*
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last updated 3-17-17 Last updated 3-17-17
@ -35,7 +35,7 @@ if (blck_debugLevel > 1) then
if !(isNull _group) then if !(isNull _group) then
{ // exitWith {diag_log "[blckeagls] ERROR CONDITION:-->> NULL-GROUP Provided to _fnc_spawnVehiclePatrol"; objNull;}; { // exitWith {diag_log "[blckeagls] ERROR CONDITION:-->> NULL-GROUP Provided to _fnc_spawnVehiclePatrol"; objNull;};
_veh = [_vehType,_pos] call blck_fnc_spawnVehicle; _veh = [_vehType,_pos] call blck_fnc_spawnVehicle;
_veh addMPEventHandler["HandleDamage",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIVehicle_HandleDamage}]; _veh addEventHandler["HandleDamage",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIVehicle_HandleDamage}];
_group setVariable["groupVehicle",_veh]; _group setVariable["groupVehicle",_veh];
//#ifdef blck_debugMode //#ifdef blck_debugMode
if (blck_debugLevel > 1) then if (blck_debugLevel > 1) then

View File

@ -10,7 +10,7 @@
4) All AI Killed and players MAY keep vehicles -> release vehicle 4) All AI Killed and players MAY keep vehicles -> release vehicle
5) vehicle ammo low AND vehicle gunner is alive - > reloaded 5) vehicle ammo low AND vehicle gunner is alive - > reloaded
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last updated 1-22-17 Last updated 1-22-17

View File

@ -35,9 +35,9 @@ blck_fnc_loadLootItemsFromArray = compileFinal preprocessFileLineNumbers "\q\add
blck_fnc_getNumberFromRange = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getNumberFromRange.sqf"; blck_fnc_getNumberFromRange = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getNumberFromRange.sqf";
blck_fnc_passToHCs = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_passToHCs.sqf"; blck_fnc_passToHCs = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_passToHCs.sqf";
#ifdef DBDserver #ifdef GRGserver
blck_fnc_broadcastServerFPS = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_broadcastServerFPS.sqf"; blck_fnc_broadcastServerFPS = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_broadcastServerFPS.sqf";
diag_log "blck_functions loaded using DBDServer settings ---- >>>> "; diag_log "blck_functions loaded using GRGserver settings ---- >>>> ";
#endif #endif
// Player-related functions // Player-related functions
@ -91,6 +91,7 @@ blck_fnc_spawnMissionParatroops = compileFinal preprocessFileLineNumbers "\q\add
blck_fnc_spawnParaUnits = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_spawnParaUnits.sqf"; // Lumped here because these 'jump' from aircraft blck_fnc_spawnParaUnits = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_spawnParaUnits.sqf"; // Lumped here because these 'jump' from aircraft
blck_fnc_releaseVehicleToPlayers = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_releaseVehicleToPlayers.sqf"; // GMS_fnc_releaseVehicleToPlayers blck_fnc_releaseVehicleToPlayers = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_releaseVehicleToPlayers.sqf"; // GMS_fnc_releaseVehicleToPlayers
blck_EH_AIVehicle_HandleDamage = "\q\addons\custom_server\Compiles\Vehicles\GMS_EH_AIVehicle_HandleDamage.sqf"; blck_EH_AIVehicle_HandleDamage = "\q\addons\custom_server\Compiles\Vehicles\GMS_EH_AIVehicle_HandleDamage.sqf";
blck_fnc_HandleAIVehicleDamage = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_HandleAIVehicleDamage.sqf";
// functions to support Units // functions to support Units
blck_fnc_removeGear = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_removeGear.sqf"; // Strip an AI unit of all gear. blck_fnc_removeGear = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_removeGear.sqf"; // Strip an AI unit of all gear.
@ -110,6 +111,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";
// 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

@ -1,6 +1,6 @@
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 3-17-17 Last Modified 3-17-17
@ -20,21 +20,26 @@
#endif #endif
diag_log "[blckeagls] Loading configurations for Non-militarized servers: blck_configs.sqf"; diag_log "[blckeagls] Loading configurations for Non-militarized servers: blck_configs.sqf";
/* /***************************************************************
BLCKEAGLS SUPPLEMENTAL MODULES
****************************************************************
Configuration for Addons that support the overall Mission system. Configuration for Addons that support the overall Mission system.
These are a module to spawn map addons generated with the Eden Editor These are:
And a moduel to spawn static loot crates at specific location 1) a module to spawn map addons generated with the Eden Editor
A time acceleration module. 2) And a moduel to spawn static loot crates at specific location
3) A time acceleration module.
*/ */
blck_spawnMapAddons = true; // 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 = true; // When true, static loot crates will be spawned and loaded with loot as specified in custom_server\SLS\SLS_init_Epoch.sqf (or its exile equivalent). blck_spawnStaticLootCrates = true; // When true, static loot crates will be spawned and loaded with loot as specified in custom_server\SLS\SLS_init_Epoch.sqf (or its exile equivalent).
//blck_enableStaticUnits = true; // When true static missions are loaded and functions for spawning static AI groups on foot, in vehicles/aircraft or manning emplaced weapons are enabled.
//blck_enableUMS = true; // when true, blck_numberUnderwaterMissions Underwater missions will be spawned; static UMS units and subs will be spawned.
// 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 = true; // 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 = 0.25; // 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 = 12; // Nighttim time acceleration
/************************************************************** /**************************************************************
@ -51,7 +56,7 @@
***********************************************************/ ***********************************************************/
//////// ////////
// Headless Client Configurations // Headless Client Configurations
blck_useHC = false; // Not Yet Working blck_useHC = true; // Experimental (death messages and rewards not yet working).
/////////////////////////////// ///////////////////////////////
// Kill message configurations // Kill message configurations
@ -176,8 +181,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 DBDserver #ifdef GRGserver
blck_maxSpawnedMissions = 6; blck_maxSpawnedMissions = 15;
#else #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;
@ -186,9 +191,11 @@
//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;
blck_enableRedMissions = 1; blck_enableRedMissions = 2;
blck_enableBlueMissions = 1; blck_enableBlueMissions = 2;
#ifdef DBDserver 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_enableHunterMissions = 1;
blck_enableScoutsMissions = 1; blck_enableScoutsMissions = 1;
blck_maxcrashsites = 3; blck_maxcrashsites = 3;
@ -203,11 +210,12 @@
blck_TMin_Green = 200; blck_TMin_Green = 200;
blck_TMin_Blue = 120; blck_TMin_Blue = 120;
blck_TMin_Red = 150; blck_TMin_Red = 150;
#ifdef DBDserver blck_TMin_UMS = 180;
#ifdef GRGserver
blck_TMin_Hunter = 120; blck_TMin_Hunter = 120;
blck_TMin_Scouts = 115; blck_TMin_Scouts = 115;
blck_TMin_Crashes = 115; blck_TMin_Crashes = 115;
//blck_TMin_UMS = 200;
#endif #endif
//Maximum Spawn time between missions in seconds //Maximum Spawn time between missions in seconds
@ -215,11 +223,11 @@
blck_TMax_Green = 300; blck_TMax_Green = 300;
blck_TMax_Blue = 200; blck_TMax_Blue = 200;
blck_TMax_Red = 250; blck_TMax_Red = 250;
#ifdef DBDserver blck_TMax_UMS = 200;
#ifdef GRGserver
blck_TMax_Hunter = 200; blck_TMax_Hunter = 200;
blck_TMax_Scouts = 200; blck_TMax_Scouts = 200;
blck_TMax_Crashes = 200; blck_TMax_Crashes = 200;
//blck_TMax_UMS = 280;
#endif #endif
/////////////////////////////// ///////////////////////////////
@ -233,9 +241,9 @@
// Mission Vehicle Settings // Mission Vehicle Settings
//////////////////// ////////////////////
//Defines how many AI Vehicles to spawn. Set this to -1 to disable spawning of static weapons or vehicles. To discourage players runniing with with vehicles, spawn more B_GMG_01_high //Defines how many AI Vehicles to spawn. Set this to -1 to disable spawning of static weapons or vehicles. To discourage players runniing with with vehicles, spawn more B_GMG_01_high
blck_SpawnVeh_Orange = 3; // Number of static weapons at Orange Missions blck_SpawnVeh_Orange = [3,4]; // Number of static weapons at Orange Missions
blck_SpawnVeh_Green = 3; // Number of static weapons at Green Missions blck_SpawnVeh_Green = [2,3]; // Number of static weapons at Green Missions
blck_SpawnVeh_Blue = -1; // Number of static weapons at Blue Missions blck_SpawnVeh_Blue = 1; // Number of static weapons at Blue Missions
blck_SpawnVeh_Red = 1; // Number of static weapons at Red Missions blck_SpawnVeh_Red = 1; // Number of static weapons at Red Missions
/////////////////////////////// ///////////////////////////////
@ -251,7 +259,7 @@
//////////////////// ////////////////////
// Defines how many static weapons to spawn. Set this to -1 to disable spawning // Defines how many static weapons to spawn. Set this to -1 to disable spawning
blck_SpawnEmplaced_Orange = 3; // Number of static weapons at Orange Missions blck_SpawnEmplaced_Orange = [3,4]; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 3; // Number of static weapons at Green Missions blck_SpawnEmplaced_Green = 3; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
blck_SpawnEmplaced_Red = 1; // Number of static weapons at Red Missions blck_SpawnEmplaced_Red = 1; // Number of static weapons at Red Missions
@ -337,7 +345,7 @@
blck_maxMoneyRed = 15; blck_maxMoneyRed = 15;
blck_maxMoneyBlue = 10; blck_maxMoneyBlue = 10;
#ifdef DBDserver #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 = [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]; //blck_AIAlertDistance = [150,225,400,500];
// 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

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,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
@ -59,10 +59,14 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
//"O_MRAP_03_gmg_ghex_F", //"O_MRAP_03_gmg_ghex_F",
//"O_MRAP_03_hmg_ghex_F", //"O_MRAP_03_hmg_ghex_F",
"B_MBT_01_cannon_F", "B_MBT_01_cannon_F",
"B_MBT_01_cannon_F", // Duplicate to increase chance that these will spawn relative to others
//"B_MBT_01_mlrs_base_F", //"B_MBT_01_mlrs_base_F",
"B_MBT_01_mlrs_F", //"B_MBT_01_mlrs_F",
"B_MBT_01_TUSK_F", "B_MBT_01_TUSK_F",
"B_MBT_01_TUSK_F",// Duplicate to increase chance that these will spawn relative to others
"B_APC_Tracked_01_AA_F", "B_APC_Tracked_01_AA_F",
"B_APC_Tracked_01_AA_F",// Duplicate to increase chance that these will spawn relative to others
"B_APC_Tracked_01_AA_F",// Duplicate to increase chance that these will spawn relative to others
"B_APC_Tracked_01_CRV_F", "B_APC_Tracked_01_CRV_F",
"B_APC_Tracked_01_rcws_F" "B_APC_Tracked_01_rcws_F"
]; // Type of vehicle spawned to defend AI bases ]; // Type of vehicle spawned to defend AI bases

View File

@ -1,6 +1,5 @@
/* /*
for DBD Clan By Ghostrider [GRG]
By Ghostrider-DBD-
Copyright 2016 Copyright 2016
Last Modified 3-17-17 Last Modified 3-17-17
@ -16,15 +15,20 @@
diag_log "[blckeagls] Loading blck_configs_mil.sqf for Militarized Servers"; diag_log "[blckeagls] Loading blck_configs_mil.sqf for Militarized Servers";
/* /***************************************************************
BLCKEAGLS SUPPLEMENTAL MODULES
****************************************************************
Configuration for Addons that support the overall Mission system. Configuration for Addons that support the overall Mission system.
These are a module to spawn map addons generated with the Eden Editor These are:
And a moduel to spawn static loot crates at specific location 1) a module to spawn map addons generated with the Eden Editor
A time acceleration module. 2) And a moduel to spawn static loot crates at specific location
3) A time acceleration module.
*/ */
blck_spawnMapAddons = true; // 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 = true; // When true, static loot crates will be spawned and loaded with loot as specified in custom_server\SLS\SLS_init_Epoch.sqf (or its exile equivalent). blck_spawnStaticLootCrates = true; // When true, static loot crates will be spawned and loaded with loot as specified in custom_server\SLS\SLS_init_Epoch.sqf (or its exile equivalent).
//blck_enableStaticUnits = true; // When true static missions are loaded and functions for spawning static AI groups on foot, in vehicles/aircraft or manning emplaced weapons are enabled.
//blck_enableUMS = true; // when true, blck_numberUnderwaterMissions Underwater missions will be spawned; static UMS units and subs will be spawned.
// 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 = true; // 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.
@ -47,12 +51,12 @@
***********************************************************/ ***********************************************************/
//////// ////////
// Headless Client Configurations // Headless Client Configurations
blck_useHC = false; // Not Yet Working blck_useHC = true; //
/////////////////////////////// ///////////////////////////////
// Kill message configurations // Kill message configurations
// These determine whether and when messages are sent to players regarding AI Kills or illegal kills that might damage a vehicle. // These determine whether and when messages are sent to players regarding AI Kills or illegal kills that might damage a vehicle.
blck_useKillMessages = false; // when true a message will be broadcast to all players each time an AI is killed; may impact server performance. blck_useKillMessages = true; // when true a message will be broadcast to all players each time an AI is killed; may impact server performance.
blck_useKillScoreMessage = true; // when true a tile is displayed to the killer with the kill score information blck_useKillScoreMessage = true; // when true a tile is displayed to the killer with the kill score information
blck_useIEDMessages = true; // Displayes a message when a player vehicle detonates and IED (such as would happen if a player killed AI with a forbidden weapon). blck_useIEDMessages = true; // Displayes a message when a player vehicle detonates and IED (such as would happen if a player killed AI with a forbidden weapon).
@ -77,7 +81,7 @@
// It's position can be either "center" or "random". smoking wreck will be spawned at a random location between 15 and 50 m from the mission. // It's position can be either "center" or "random". smoking wreck will be spawned at a random location between 15 and 50 m from the mission.
blck_SmokeAtMissions = [false,"random"]; // set to [false,"anything here"] to disable this function altogether. blck_SmokeAtMissions = [false,"random"]; // set to [false,"anything here"] to disable this function altogether.
blck_useSignalEnd = true; // When true a smoke grenade/chemlight will appear at the loot crate for 2 min after mission completion. blck_useSignalEnd = true; // When true a smoke grenade/chemlight will appear at the loot crate for 2 min after mission completion.
blck_loadCratesTiming = "atMissionSpawn"; // valid choices are "atMissionCompletion" and "atMissionSpawn"; blck_loadCratesTiming = "atMissionCompletion"; // valid choices are "atMissionCompletion" and "atMissionSpawn";
/////////////////////////////// ///////////////////////////////
// PLAYER PENALTIES // PLAYER PENALTIES
@ -136,10 +140,10 @@
_blck_armed_attackHelis = ["B_Heli_Attack_01_F"]; _blck_armed_attackHelis = ["B_Heli_Attack_01_F"];
_blck_armed_heavyAttackHelis = ["O_Heli_Attack_02_F","O_Heli_Attack_02_black_F"]; _blck_armed_heavyAttackHelis = ["O_Heli_Attack_02_F","O_Heli_Attack_02_black_F"];
_blck_fighters = [ _blck_fighters = [
"O_Plane_CAS_02_F", // /ti-199 Neophron (CAS) //"O_Plane_CAS_02_F", // /ti-199 Neophron (CAS)
"I_Plane_Fighter_03_AA_F", // A-143 Buzzard (AA) "I_Plane_Fighter_03_AA_F", // A-143 Buzzard (AA)
"I_Plane_Fighter_04_F", // A-149 Gryphon //"I_Plane_Fighter_04_F", // A-149 Gryphon
"B_Plane_CAS_01_F", // A-164 Wipeout (CAS) //"B_Plane_CAS_01_F", // A-164 Wipeout (CAS)
"B_Plane_Fighter_01_F" // F/A-181 Black Wasp II "B_Plane_Fighter_01_F" // F/A-181 Black Wasp II
]; ];
/* /*
@ -165,24 +169,24 @@
blck_noPatrolHelisBlue = 1; blck_noPatrolHelisBlue = 1;
blck_chanceHeliPatrolRed = 0.8; // 0.4; blck_chanceHeliPatrolRed = 0.8; // 0.4;
blck_patrolHelisRed = _blck_armed_hellcats+_blck_armed_orcas + _blck_armed_ghosthawks; blck_patrolHelisRed = _blck_armed_hellcats;
blck_noPatrolHelisRed = 1; blck_noPatrolHelisRed = 1;
blck_chanceHeliPatrolGreen = 0.9999; blck_chanceHeliPatrolGreen = 0.9999;
blck_patrolHelisGreen = _blck_armed_heavyAttackHelis+_blck_armed_ghosthawks; blck_patrolHelisGreen = _blck_armed_ghosthawks;
blck_noPatrolHelisGreen = 2; //[1,3]; blck_noPatrolHelisGreen = [1,3];
blck_chanceHeliPatrolOrange = 0.9999; blck_chanceHeliPatrolOrange = 0.9999;
blck_patrolHelisOrange = _blck_armed_heavyAttackHelis + _blck_fighters; blck_patrolHelisOrange = _blck_armed_ghosthawks; // + _blck_fighters;
blck_noPatrolHelisOrange = 3; //[2,3]; blck_noPatrolHelisOrange = [2,4];
//////////////////// ////////////////////
// Enable / Disable Missions // Enable / Disable Missions
//////////////////// ////////////////////
// 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 DBDserver #ifdef GRGserver
blck_maxSpawnedMissions = 6; blck_maxSpawnedMissions = 15;
#else #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;
@ -191,9 +195,11 @@
//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;
blck_enableRedMissions = 1; blck_enableRedMissions = 2;
blck_enableBlueMissions = 1; blck_enableBlueMissions = 2;
#ifdef DBDserver 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_enableHunterMissions = 1;
blck_enableScoutsMissions = 1; blck_enableScoutsMissions = 1;
blck_maxcrashsites = 3; blck_maxcrashsites = 3;
@ -208,11 +214,12 @@
blck_TMin_Green = 200; blck_TMin_Green = 200;
blck_TMin_Blue = 120; blck_TMin_Blue = 120;
blck_TMin_Red = 150; blck_TMin_Red = 150;
#ifdef DBDserver blck_TMin_UMS = 180;
#ifdef GRGserver
blck_TMin_Hunter = 120; blck_TMin_Hunter = 120;
blck_TMin_Scouts = 115; blck_TMin_Scouts = 115;
blck_TMin_Crashes = 115; blck_TMin_Crashes = 115;
//blck_TMin_UMS = 200;
#endif #endif
//Maximum Spawn time between missions in seconds //Maximum Spawn time between missions in seconds
@ -220,11 +227,11 @@
blck_TMax_Green = 300; blck_TMax_Green = 300;
blck_TMax_Blue = 200; blck_TMax_Blue = 200;
blck_TMax_Red = 250; blck_TMax_Red = 250;
#ifdef DBDserver blck_TMax_UMS = 200;
#ifdef GRGserver
blck_TMax_Hunter = 200; blck_TMax_Hunter = 200;
blck_TMax_Scouts = 200; blck_TMax_Scouts = 200;
blck_TMax_Crashes = 200; blck_TMax_Crashes = 200;
//blck_TMax_UMS = 280;
#endif #endif
/////////////////////////////// ///////////////////////////////
@ -238,9 +245,9 @@
// Mission Vehicle Settings // Mission Vehicle Settings
//////////////////// ////////////////////
//Defines how many AI Vehicles to spawn. Set this to -1 to disable spawning of static weapons or vehicles. To discourage players runniing with with vehicles, spawn more B_GMG_01_high //Defines how many AI Vehicles to spawn. Set this to -1 to disable spawning of static weapons or vehicles. To discourage players runniing with with vehicles, spawn more B_GMG_01_high
blck_SpawnVeh_Orange = 4; //[3,5]; // Number of static weapons at Orange Missions blck_SpawnVeh_Orange = [3,5]; // Number of static weapons at Orange Missions
blck_SpawnVeh_Green = 3; //[3,4]; // Number of static weapons at Green Missions blck_SpawnVeh_Green = [3,4]; // Number of static weapons at Green Missions
blck_SpawnVeh_Blue = -1; // Number of static weapons at Blue Missions blck_SpawnVeh_Blue = 1; // Number of static weapons at Blue Missions
blck_SpawnVeh_Red = 2; // Number of static weapons at Red Missions blck_SpawnVeh_Red = 2; // Number of static weapons at Red Missions
/////////////////////////////// ///////////////////////////////
@ -249,6 +256,7 @@
blck_useStatic = true; // When true, AI will man static weapons spawned 20-30 meters from the mission center. These are very effective against most vehicles blck_useStatic = true; // When true, AI will man static weapons spawned 20-30 meters from the mission center. These are very effective against most vehicles
blck_killEmptyStaticWeapons = true; // When true, static weapons will have damage set to 1 when the AI manning them is killed. blck_killEmptyStaticWeapons = true; // When true, static weapons will have damage set to 1 when the AI manning them is killed.
// B_Mortar_01_F, B_HMG_01_F, B_GMG_01_F
blck_staticWeapons = ["B_HMG_01_high_F","B_GMG_01_high_F"]; // [0.50 cal, grenade launcher, AT Launcher] blck_staticWeapons = ["B_HMG_01_high_F","B_GMG_01_high_F"]; // [0.50 cal, grenade launcher, AT Launcher]
//////////////////// ////////////////////
@ -256,8 +264,8 @@
//////////////////// ////////////////////
// Defines how many static weapons to spawn. Set this to -1 to disable spawning // Defines how many static weapons to spawn. Set this to -1 to disable spawning
blck_SpawnEmplaced_Orange = 4; //[3,5]; // Number of static weapons at Orange Missions blck_SpawnEmplaced_Orange = [3,5]; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 3; //[3,4]; // Number of static weapons at Green Missions blck_SpawnEmplaced_Green = [3,4]; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
blck_SpawnEmplaced_Red = 2; // Number of static weapons at Red Missions blck_SpawnEmplaced_Red = 2; // Number of static weapons at Red Missions
@ -277,13 +285,19 @@
blck_useNVG = true; // When true, AI will be spawned with NVG if is dark blck_useNVG = true; // When true, AI will be spawned with NVG if is dark
blck_removeNVG = false; // When true, NVG will be removed from AI when they are killed. blck_removeNVG = false; // When true, NVG will be removed from AI when they are killed.
blck_useLaunchers = true; // When true, some AI will be spawned with RPGs; they do not however fire on vehicles for some reason so I recommend this be set to false for now blck_useLaunchers = true; // When true, some AI will be spawned with RPGs; they do not however fire on vehicles for some reason so I recommend this be set to false for now
blck_launcherTypes = ["launch_NLAW_F","launch_RPG32_F","launch_B_Titan_F","launch_I_Titan_F","launch_O_Titan_F","launch_B_Titan_short_F","launch_I_Titan_short_F","launch_O_Titan_short_F"]; blck_launcherTypes = ["launch_NLAW_F","launch_RPG32_F","launch_B_Titan_F","launch_I_Titan_F","launch_O_Titan_F","launch_B_Titan_short_F"];
//blck_launcherTypes = ["launch_RPG32_F"]; //blck_launcherTypes = ["launch_RPG32_F"];
blck_launchersPerGroup = 5; // Defines the number of AI per group spawned with a launcher blck_launchersPerGroup = 5; // Defines the number of AI per group spawned with a launcher
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 = 1200; // 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 = 1200; // Time after mission completion at which any remaining live AI are deleted.
@ -342,7 +356,7 @@
blck_maxMoneyRed = 30; blck_maxMoneyRed = 30;
blck_maxMoneyBlue = 20; blck_maxMoneyBlue = 20;
#ifdef DBDserver #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 = [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]; //blck_AIAlertDistance = [150,225,400,500];
// 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

View File

@ -1,7 +1,7 @@
/* /*
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
@ -32,10 +32,18 @@ switch (toLower (worldName)) do
{ {
case "altis": case "altis":
{ {
private ["_arr","_sunrise","_sunset","_time"];
_arr = date call BIS_fnc_sunriseSunsetTime;
_sunrise = _arr select 0;
_sunset = _arr select 1;
_daylight = _sunset - _sunrise;
_nightTime = abs(24 - _daylight);
_time = dayTime;
blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 0.5; // Daytime time accelearation blck_timeAccelerationDay = (_daylight)/6; // 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 = _nightTime / 6; // Nighttim time acceleration
blck_maxCrashSites = 3; blck_maxCrashSites = 3;
}; };
case"tanoa": case"tanoa":
@ -104,33 +112,38 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in
// Used primarily for debugging. // Used primarily for debugging.
diag_log "[blckeagls] Debug seting is ON, Custom configurations used"; diag_log "[blckeagls] Debug seting is ON, Custom configurations used";
blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. //blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 1; // Daytime time accelearation //blck_timeAccelerationDay = 1; // Daytime time accelearation
blck_timeAccelerationDusk = 18; // Dawn/dusk time accelearation //blck_timeAccelerationDusk = 18; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 24; // Nighttim time acceleration //blck_timeAccelerationNight = 24; // Nighttim time acceleration
//blck_useHC = true;
blck_maxSpawnedMissions = 10;
blck_mainThreadUpdateInterval = 10; blck_mainThreadUpdateInterval = 10;
blck_enableOrangeMissions = 1; blck_enableOrangeMissions = 1;
blck_enableGreenMissions = 1; blck_enableGreenMissions = 1;
blck_enableRedMissions = 1; blck_enableRedMissions = 2;
blck_enableBlueMissions = 1; blck_enableBlueMissions = 2;
blck_enableHunterMissions = 1; blck_numberUnderwaterDynamicMissions = 3;
blck_enableHunterMissions = -1;
blck_enableScoutsMissions = 1; blck_enableScoutsMissions = 1;
blck_maxCrashSites = 3; blck_maxCrashSites = 3;
//blck_enabeUnderwaterMissions = 1; //blck_enabeUnderwaterMissions = 1;
blck_cleanupCompositionTimer = 20; // 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 = 20; // 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 = 20; blck_bodyCleanUpTimer = 10;
blck_noPatrolHelisOrange = [2,4];
//blck_chanceHeliPatrolBlue = 1; //blck_chanceHeliPatrolBlue = 1;
blck_SpawnEmplaced_Orange = 4; // Number of static weapons at Orange Missions blck_SpawnEmplaced_Orange = [2,4]; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 3; // Number of static weapons at Green Missions blck_SpawnEmplaced_Green = 3; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
blck_SpawnEmplaced_Red = 2; blck_SpawnEmplaced_Red = 2;
blck_SpawnVeh_Orange = 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
blck_SpawnVeh_Blue = 1; // Number of static weapons at Blue Missions blck_SpawnVeh_Blue = 1; // Number of static weapons at Blue Missions
blck_SpawnVeh_Red = 2; blck_SpawnVeh_Red = 2;
@ -142,7 +155,7 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in
blck_TMin_Hunter = 20; blck_TMin_Hunter = 20;
blck_TMin_Scouts = 20; blck_TMin_Scouts = 20;
blck_TMin_Crashes = 5; blck_TMin_Crashes = 5;
blck_TMin_UMS = 20;
//Maximum Spawn time between missions in seconds //Maximum Spawn time between missions in seconds
blck_TMax_Blue = 12; blck_TMax_Blue = 12;
blck_TMax_Red = 15; blck_TMax_Red = 15;
@ -151,13 +164,14 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in
blck_TMax_Hunter = 22; blck_TMax_Hunter = 22;
blck_TMax_Scouts = 22; blck_TMax_Scouts = 22;
blck_TMax_Crashes = 15; blck_TMax_Crashes = 15;
blck_TMax_UMS = 25;
//blck_MissionTimout = 360; // 40 min //blck_MissionTimout = 360; // 40 min
/*
blck_MinAI_Blue = 3; blck_MinAI_Blue = 3;
blck_MaxAI_Blue = 5; blck_MaxAI_Blue = 5;
blck_AIGrps_Blue = 1; blck_AIGrps_Blue = 1;
*/
/*
blck_SkillsBlue = [ blck_SkillsBlue = [
["aimingAccuracy",0.01], ["aimingAccuracy",0.01],
["aimingShake",0.01], ["aimingShake",0.01],
@ -170,7 +184,7 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in
["commanding",0.8], ["commanding",0.8],
["general",1.00] ["general",1.00]
]; ];
*/
}; };

View File

@ -1,6 +1,6 @@
/* /*
for DBD Clan for ghostridergaming
By Ghostrider-DBD- By Ghostrider [GRG]
Copyright 2016 Copyright 2016
Last Modified 6/7/17 Last Modified 6/7/17
@ -12,7 +12,7 @@
http://creativecommons.org/licenses/by-nc-sa/4.0/ http://creativecommons.org/licenses/by-nc-sa/4.0/
*/ */
//#define DBDserver #define GRGserver
#define wpModeMove #define wpModeMove
#define useAPEX #define useAPEX
#define useDynamicSimulation #define useDynamicSimulation

View File

@ -0,0 +1,5 @@
["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

@ -0,0 +1,18 @@
/*
by Ghostrider [GRG]
for ghostridergaming
12/5/17
--------------------------
License
--------------------------
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
//diag_log format["_sm_addAircraft: _this = %5",_this];
params["_aircraftPatrol"];
//diag_log format["_sm_addAircraft: _aircraftPatrol = %1",_aircraftPatrol];
blck_sm_Aircraft pushBack [_aircraftPatrol,grpNull,0];
//diag_log format["_sm_addAircraft: updated blck_sm_Aircraft = %1",blck_sm_Aircraft];
true

View File

@ -0,0 +1,17 @@
/*
by Ghostrider [GRG]
for ghostridergaming
12/5/17
--------------------------
License
--------------------------
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
params["_emplacedWeapon"];
blck_sm_Emplaced pushBack [_emplacedWeapon,grpNull,0];
diag_log format["_sm_AddEmplaced::-> _emplacedWeapon = %1, blck_sm_Emplaced = %2",_emplacedWeapon,blck_sm_Emplaced];
true

View File

@ -0,0 +1,17 @@
/*
by Ghostrider [GRG]
for ghostridergaming
12/5/17
--------------------------
License
--------------------------
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
params["_group"];
blck_sm_Groups pushBack [_group,grpNull,0];
//diag_log format["_sm_AddGroup:: blck_sm_Groups = %1",blck_sm_Groups];
true

View File

@ -0,0 +1,16 @@
/*
by Ghostrider [GRG]
for ghostridergaming
12/5/17
--------------------------
License
--------------------------
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
params["_vehicle"];
blck_sm_Vehicles pushBack [_vehicle,grpNull,0];
true

Some files were not shown because too many files have changed in this diff Show More