Added capacity to disable simulation and damage to objects

May appply onlyt to objects spawned at dynamic missions.
Should save a little expecially for certain objects like cars.
This commit is contained in:
Ghostrider-GRG- 2018-03-03 18:54:20 -05:00
parent 9e8e540650
commit dac9601dcf
34 changed files with 394 additions and 1494 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1,522 +0,0 @@
/*
Generic Mission Spawner
By Ghostrider GRG
Copyright 2016
Last modified 10/9/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";
#define delayTime 1
private ["_abort","_crates","_aiGroup","_objects","_groupPatrolRadius","_missionLandscape","_mines","_blck_AllMissionAI","_blck_localMissionMarker","_AI_Vehicles","_timeOut","_aiDifficultyLevel","_missionPatrolVehicles","_missionGroups"];
params["_coords","_mission",["_allowReinforcements",true]];
//diag_log format["_missionSpawner (18):: _allowReinforcements = %1",_allowReinforcements];
////////
// set all variables needed for the missions
// data is pulled either from the mission description or from the _mission variable passsed as a parameter
// Deal with situations where some of these variables might not be defined as well.
////////
// _mission params[_missionListOrange,_pathOrange,"OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange];
_markerClass = _mission select 2;
_aiDifficultyLevel = _mission select 3;
[_mission,"active",_coords] call blck_fnc_updateMissionQue;
blck_ActiveMissionCoords pushback _coords;
diag_log format["[blckeagls] missionSpawner (17):: Initializing mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
private["_chanceHeliPatrol","_noPara","_reinforcementLootCounts","_chanceLoot","_heliCrew","_loadCratesTiming"];
if (isNil "_markerColor") then {_markerColor = "ColorBlack"};
if (isNil "_markerType") then {_markerType = ["mil_box",[]]};
//if (isNil "_timeOut") then {_timeOut = -1;};
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"];
if (isNil "_useMines") then {_useMines = blck_useMines;};
_objects = [];
_mines = [];
_crates = [];
_aiGroup = [];
_missionAIVehicles = [];
_blck_AllMissionAI = [];
_AI_Vehicles = [];
_blck_localMissionMarker = [_markerClass,_coords,"","",_markerColor,_markerType];
_delayTime = 1;
_groupPatrolRadius = 50;
if (blck_labelMapMarkers select 0) then
{
//diag_log "labeling map markers *****";
_blck_localMissionMarker set [2, _markerMissionName];
};
if !(blck_preciseMapMarkers) then
{
//diag_log "Map marker will be OFFSET from the mission position";
_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?
[["start",_startMsg,_markerMissionName]] call blck_fnc_messageplayers;
private _marker = [_blck_localMissionMarker] call blck_fnc_spawnMarker;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (77) message players and spawn a mission marker";};
if (blck_debugLevel > 0) then {diag_log format["missionSpawner:: (77) _marker = %1",_marker];};
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (77) waiting for player to trigger the mission";};
#endif
////////
// All parameters are defined, lets wait until a player is nearby or the mission has timed out
////////
private["_wait","_missionStartTime","_playerInRange","_missionTimedOut"];
_missionStartTime = diag_tickTime;
_playerInRange = false;
_missionTimedOut = false;
_wait = true;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (90) starting mission trigger loop"};
#endif
while {_wait} do
{
#ifdef blck_debugMode
//diag_log "missionSpawner:: top of mission trigger loop";
if (blck_debugLevel > 2) exitWith {_playerInRange = true;};
#endif
if ([_coords, blck_TriggerDistance, false] call blck_fnc_playerInRange) exitWith {_playerInRange = true;};
if ([_missionStartTime] call blck_fnc_timedOut) exitWith {_missionTimedOut = true;};
uiSleep 5;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["missionSpawner:: Trigger Loop - blck_debugLevel = %1 and _coords = %2",blck_debugLevel, _coords];
diag_log format["missionSpawner:: Trigger Loop - players in range = %1",{isPlayer _x && _x distance2D _coords < blck_TriggerDistance} count allPlayers];
diag_log format["missionSpawner:: Trigger Loop - timeout = %1", [_missionStartTime] call blck_fnc_timedOut];
};
#endif
};
if (_missionTimedOut) exitWith
{
/*
*/
// Deal with the case in which the mission timed out.
//["timeOut",_endMsg,_blck_localMissionMarker select 2] call blck_fnc_messageplayers;
blck_recentMissionCoords pushback [_coords,diag_tickTime];
blck_ActiveMissionCoords = blck_ActiveMissionCoords - [ _coords];
[_mission,"inactive",[0,0,0]] call blck_fnc_updateMissionQue;
blck_missionsRunning = blck_missionsRunning - 1;
[_blck_localMissionMarker select 0] call blck_fnc_deleteMarker;
//_blck_localMissionMarker set [1,[0,0,0]];
//_blck_localMissionMarker set [2,""];
[_objects, 0.1] spawn blck_fnc_cleanupObjects;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (133) Mission Timed Out: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
};
////////
// Spawn the mission objects, loot chest, and AI
////////
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (142) -- >> Mission tripped: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
private ["_temp"];
if (blck_SmokeAtMissions select 0) then // spawn a fire and smoke near the crate
{
_temp = [_coords,blck_SmokeAtMissions select 1] call blck_fnc_smokeAtCrates;
if (typeName _temp isEqualTo "ARRAY") then
{
_objects append _temp;
};
};
uiSleep _delayTime;
if (_useMines) then
{
_mines = [_coords] call blck_fnc_spawnMines;
//uiSleep _delayTime;;
};
uiSleep _delayTime;
_temp = [];
diag_log format["_missionSpawner"" _missionLandscape = %1",_missionLandscape];
if (_missionLandscapeMode isEqualTo "random") then
{
_temp = [_coords,_missionLandscape, 3, 15, 2] call blck_fnc_spawnRandomLandscape;
} else {
params["_center","_objects"];
_temp = [_coords, _missionLandscape] call blck_fnc_spawnCompositionObjects;
//uiSleep 1;
};
if (typeName _temp isEqualTo "ARRAY") then
{
_objects append _temp;
};
//diag_log format["_fnc_missionSpawner:: (181)->> _objects = %1",_objects];
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (190) Landscape spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
uiSleep _delayTime;;
_temp = [_coords,_missionLootVehicles] call blck_fnc_spawnMissionLootVehicles;
//uisleep 1;
_crates append _temp;
uiSleep _delayTime;
_abort = false;
_temp = [[],[],false];
_temp = [_coords, _minNoAI,_maxNoAI,_aiDifficultyLevel,_uniforms,_headGear,_missionGroups] call blck_fnc_spawnMissionAI;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then {
diag_log format["missionSpawner :: (209) blck_fnc_spawnMissionAI returned a value of _temp = %1",_temp]; uiSleep 1;
};
_abort = _temp select 1;
if (blck_debugLevel > 2) then {
diag_log format["missionSpawner :: (214) blck_fnc_spawnMissionAI returned a value of _abort = %1",_abort]; uiSleep 1;
};
#endif
if (_abort) exitWith
{
if (blck_debugLevel > 1) then {
diag_log "missionSpawner:: (220) grpNull returned, mission termination criteria met, calling blck_fnc_endMission"
};
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,1] call blck_fnc_endMission;
};
if !(_abort) then
{
_blck_AllMissionAI append (_temp select 0);
};
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (235) AI Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
uiSleep _delayTime;
_temp = [[],[],false];
_abort = false;
private["_patrolVehicles","_vehToSpawn"];
_vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange;
//diag_log format["_missionSpawner:: _vehToSpawn = %1",_vehToSpawn];
//diag_log format["_missionSpawner (245):: _missionPatrolVehicles = %1",_missionPatrolVehicles];
if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || count _missionPatrolVehicles > 0)) then
{
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_uniforms,_headGear,_missionPatrolVehicles] call blck_fnc_spawnMissionVehiclePatrols;
//[_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then {
diag_log format["missionSpawner :: (251) blck_fnc_spawnMissionVehiclePatrols returned _temp = %1",_temp];
};
#endif
if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
};
if !(_abort) then
{
_patrolVehicles = _temp select 0;
_blck_AllMissionAI append (_temp select 1);
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (267) Vehicle Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
};
};
if (_abort) exitWith
{
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {
diag_log "missionSpawner:: (279) grpNull returned, 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;
_temp = [[],[],false];
_abort = false;
if (_allowReinforcements) then
{
_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
_temp = [];
#ifdef blck_debugMode
if (blck_debugLevel > 1) then
{
diag_log format["[blckeagls] missionSpawner:: (298) calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
private _noChoppers = 0;
private _chancePara = 0.5;
switch (toLower _aiDifficultyLevel) do
{
case "blue":{
_noChoppers = [blck_noPatrolHelisBlue] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaBlue] call blck_fnc_getNumberFromRange;
};
case "red":{
_noChoppers = [blck_noPatrolHelisRed] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaRed] call blck_fnc_getNumberFromRange;
};
case "green":{
_noChoppers = [blck_noPatrolHelisGreen] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaGreen] call blck_fnc_getNumberFromRange;
};
case "orange":{
_noChoppers = [blck_noPatrolHelisOrange] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaOrange] call blck_fnc_getNumberFromRange;
};
};
#ifdef blck_debugMode
diag_log format["_missionSpawner(322):: _noChoppers = %1 && _chancePara = %2",_noChoppers,_chancePara];
#endif
for "_i" from 1 to (_noChoppers) do
{
//params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"];
_temp = [_coords,_aiDifficultyLevel,_weaponList,_uniforms,_headGear,_chancePara] call blck_fnc_spawnMissionReinforcements;
#ifdef blck_debugMode
if (blck_debugLevel >= 2) then
{
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(335):: _temp = %1",_temp];
};
#endif
if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
blck_monitoredVehicles pushBack (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
if (_abort) then
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log "missionSpawner:: (349) grpNul or ERROR in blck_fnc_spawnMissionReinforcements, mission termination criteria met, calling blck_endMission";
};
#endif
_objects pushback (_temp select 0);
[_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;
};
#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
#ifdef blck_debugMode
diag_log format["[blckeagls] mission Spawner(436) _endCondition = %1",_endCondition];
#endif
private["_missionComplete","_endIfPlayerNear","_endIfAIKilled"];
_missionComplete = -1;
_startTime = diag_tickTime;
if (blck_showCountAliveAI) then
{
//diag_log format["_missionSpawner(441): Adding Number Alive AI: _marker = %1 | _markerMissionName = %2",_marker,_markerMissionName];
//diag_log format["_missionSpawner(442): Alive AI = %1 | Current Marker Text = %2",{alive _x} count _blck_AllMissionAI, markerText _marker];
if !(_marker isEqualTo "") then
{
[_marker,_markerMissionName,_blck_AllMissionAI] call blck_fnc_updateMarkerAliveCount;
blck_missionMarkers pushBack [_marker,_markerMissionName,_blck_AllMissionAI];
//diag_log format["_missionSpawner: blck_missionMarkers = %1",blck_missionMarkers];
};
};
switch (_endCondition) do
{
case "playerNear": {_endIfPlayerNear = true;_endIfAIKilled = false;};
case "allUnitsKilled": {_endIfPlayerNear = false;_endIfAIKilled = true;};
case "allKilledOrPlayerNear": {_endIfPlayerNear = true;_endIfAIKilled = true;};
};
#ifdef blck_debugMode
diag_log format["missionSpawner :: (449) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled];
#endif
private["_locations"];
_locations = [_coords];
{
_locations pushback (getPos _x);
_x setVariable["crateSpawnPos", (getPos _x)];
} forEach _crates;
#ifdef blck_debugMode
diag_log format["missionSpawner (458):: _coords = %1 | _crates = %2 | _locations = %3",_coords,_crates,_locations];
#endif
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 ((_endIfPlayerNear) && [_locations,10,true] call blck_fnc_playerInRangeArray) exitWith {};
if ((_endIfAIKilled) && ({alive _x} count _blck_AllMissionAI) < 1) exitWith {};
{
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;
};
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
if (blck_debugLevel > 0) then
{
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 :: (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
private["_result"];
// Force passing the mission name for informational purposes.
_blck_localMissionMarker set [2, _markerMissionName];
if (blck_showCountAliveAI) then
{
_marker setMarkerText format["%1: All AI Dead",_markerMissionName];
// blck_missionMarkers pushBack [_marker, _markerMissionName, _blck_AllMissionAI];
{
if ((_x select 1) isEqualTo _markerMissionName) exitWith{blck_missionMarkers deleteAt _forEachIndex};
}forEach blck_missionMarkers;
};
_result = [_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,0] call blck_fnc_endMission;
diag_log format["[blckeagls] missionSpawner:: (507)end of mission: blck_fnc_endMission has returned control to _fnc_missionSpawner"];

View File

@ -1,519 +0,0 @@
/*
Generic Mission Spawner
By Ghostrider GRG
Copyright 2016
Last modified 10/9/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";
#define delayTime 1
private ["_abort","_crates","_aiGroup","_objects","_groupPatrolRadius","_missionLandscape","_mines","_blck_AllMissionAI","_blck_localMissionMarker","_AI_Vehicles","_timeOut","_aiDifficultyLevel","_missionPatrolVehicles","_missionGroups"];
params["_coords","_mission",["_allowReinforcements",true]];
//diag_log format["_missionSpawner (18):: _allowReinforcements = %1",_allowReinforcements];
////////
// set all variables needed for the missions
// data is pulled either from the mission description or from the _mission variable passsed as a parameter
// Deal with situations where some of these variables might not be defined as well.
////////
// _mission params[_missionListOrange,_pathOrange,"OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange];
_markerClass = _mission select 2;
_aiDifficultyLevel = _mission select 3;
[_mission,"active",_coords] call blck_fnc_updateMissionQue;
blck_ActiveMissionCoords pushback _coords;
diag_log format["[blckeagls] missionSpawner (17):: Initializing mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
private["_chanceHeliPatrol","_noPara","_reinforcementLootCounts","_chanceLoot","_heliCrew","_loadCratesTiming"];
if (isNil "_markerColor") then {_markerColor = "ColorBlack"};
if (isNil "_markerType") then {_markerType = ["mil_box",[]]};
//if (isNil "_timeOut") then {_timeOut = -1;};
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"];
if (isNil "_useMines") then {_useMines = blck_useMines;};
_objects = [];
_mines = [];
_crates = [];
_aiGroup = [];
_missionAIVehicles = [];
_blck_AllMissionAI = [];
_AI_Vehicles = [];
_blck_localMissionMarker = [_markerClass,_coords,"","",_markerColor,_markerType];
_delayTime = 1;
_groupPatrolRadius = 50;
if (blck_labelMapMarkers select 0) then
{
//diag_log "labeling map markers *****";
_blck_localMissionMarker set [2, _markerMissionName];
};
if !(blck_preciseMapMarkers) then
{
//diag_log "Map marker will be OFFSET from the mission position";
_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?
[["start",_startMsg,_markerMissionName]] call blck_fnc_messageplayers;
[_blck_localMissionMarker] call blck_fnc_spawnMarker;
blck_aiCountMarkers pushBack ["ai_count" + _markerClass, _blck_AllMissionAI];
#ifdef blck_debugMode
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
////////
// All parameters are defined, lets wait until a player is nearby or the mission has timed out
////////
private["_wait","_missionStartTime","_playerInRange","_missionTimedOut"];
_missionStartTime = diag_tickTime;
_playerInRange = false;
_missionTimedOut = false;
_wait = true;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (90) starting mission trigger loop"};
#endif
while {_wait} do
{
#ifdef blck_debugMode
//diag_log "missionSpawner:: top of mission trigger loop";
if (blck_debugLevel > 2) exitWith {_playerInRange = true;};
#endif
if ([_coords, blck_TriggerDistance, false] call blck_fnc_playerInRange) exitWith {_playerInRange = true;};
if ([_missionStartTime] call blck_fnc_timedOut) exitWith {_missionTimedOut = true;};
uiSleep 5;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["missionSpawner:: Trigger Loop - blck_debugLevel = %1 and _coords = %2",blck_debugLevel, _coords];
diag_log format["missionSpawner:: Trigger Loop - players in range = %1",{isPlayer _x && _x distance2D _coords < blck_TriggerDistance} count allPlayers];
diag_log format["missionSpawner:: Trigger Loop - timeout = %1", [_missionStartTime] call blck_fnc_timedOut];
};
#endif
};
if (_missionTimedOut) exitWith
{
/*
*/
// Deal with the case in which the mission timed out.
//["timeOut",_endMsg,_blck_localMissionMarker select 2] call blck_fnc_messageplayers;
blck_recentMissionCoords pushback [_coords,diag_tickTime];
blck_ActiveMissionCoords = blck_ActiveMissionCoords - [ _coords];
[_mission,"inactive",[0,0,0]] call blck_fnc_updateMissionQue;
blck_missionsRunning = blck_missionsRunning - 1;
[_blck_localMissionMarker select 0] call blck_fnc_deleteMarker;
//_blck_localMissionMarker set [1,[0,0,0]];
//_blck_localMissionMarker set [2,""];
[_objects, 0.1] spawn blck_fnc_cleanupObjects;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (133) Mission Timed Out: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
};
////////
// Spawn the mission objects, loot chest, and AI
////////
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (142) -- >> Mission tripped: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
private ["_temp"];
if (blck_SmokeAtMissions select 0) then // spawn a fire and smoke near the crate
{
_temp = [_coords,blck_SmokeAtMissions select 1] call blck_fnc_smokeAtCrates;
if (typeName _temp isEqualTo "ARRAY") then
{
_objects append _temp;
};
};
uiSleep _delayTime;
if (_useMines) then
{
_mines = [_coords] call blck_fnc_spawnMines;
//uiSleep _delayTime;;
};
uiSleep _delayTime;
_temp = [];
diag_log format["_missionSpawner"" _missionLandscape = %1",_missionLandscape];
if (_missionLandscapeMode isEqualTo "random") then
{
_temp = [_coords,_missionLandscape, 3, 15, 2] call blck_fnc_spawnRandomLandscape;
} else {
params["_center","_objects"];
_temp = [_coords, _missionLandscape] call blck_fnc_spawnCompositionObjects;
//uiSleep 1;
};
if (typeName _temp isEqualTo "ARRAY") then
{
_objects append _temp;
};
//diag_log format["_fnc_missionSpawner:: (181)->> _objects = %1",_objects];
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (190) Landscape spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
uiSleep _delayTime;;
_temp = [_coords,_missionLootVehicles] call blck_fnc_spawnMissionLootVehicles;
//uisleep 1;
_crates append _temp;
uiSleep _delayTime;
_abort = false;
_temp = [[],[],false];
_temp = [_coords, _minNoAI,_maxNoAI,_aiDifficultyLevel,_uniforms,_headGear,_missionGroups] call blck_fnc_spawnMissionAI;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then {
diag_log format["missionSpawner :: (209) blck_fnc_spawnMissionAI returned a value of _temp = %1",_temp]; uiSleep 1;
};
_abort = _temp select 1;
if (blck_debugLevel > 2) then {
diag_log format["missionSpawner :: (214) blck_fnc_spawnMissionAI returned a value of _abort = %1",_abort]; uiSleep 1;
};
#endif
if (_abort) exitWith
{
if (blck_debugLevel > 1) then {
diag_log "missionSpawner:: (220) grpNull returned, mission termination criteria met, calling blck_fnc_endMission"
};
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,1] call blck_fnc_endMission;
};
if !(_abort) then
{
_blck_AllMissionAI append (_temp select 0);
};
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (235) AI Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
uiSleep _delayTime;
_temp = [[],[],false];
_abort = false;
private["_patrolVehicles","_vehToSpawn"];
_vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange;
//diag_log format["_missionSpawner:: _vehToSpawn = %1",_vehToSpawn];
//diag_log format["_missionSpawner (245):: _missionPatrolVehicles = %1",_missionPatrolVehicles];
if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || count _missionPatrolVehicles > 0)) then
{
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_uniforms,_headGear,_missionPatrolVehicles] call blck_fnc_spawnMissionVehiclePatrols;
//[_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then {
diag_log format["missionSpawner :: (251) blck_fnc_spawnMissionVehiclePatrols returned _temp = %1",_temp];
};
#endif
if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
};
if !(_abort) then
{
_patrolVehicles = _temp select 0;
_blck_AllMissionAI append (_temp select 1);
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (267) Vehicle Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
};
};
if (_abort) exitWith
{
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {
diag_log "missionSpawner:: (279) grpNull returned, 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;
_temp = [[],[],false];
_abort = false;
if (_allowReinforcements) then
{
_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
_temp = [];
#ifdef blck_debugMode
if (blck_debugLevel > 1) then
{
diag_log format["[blckeagls] missionSpawner:: (298) calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
private _noChoppers = 0;
private _chancePara = 0.5;
switch (toLower _aiDifficultyLevel) do
{
case "blue":{
_noChoppers = [blck_noPatrolHelisBlue] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaBlue] call blck_fnc_getNumberFromRange;
};
case "red":{
_noChoppers = [blck_noPatrolHelisRed] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaRed] call blck_fnc_getNumberFromRange;
};
case "green":{
_noChoppers = [blck_noPatrolHelisGreen] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaGreen] call blck_fnc_getNumberFromRange;
};
case "orange":{
_noChoppers = [blck_noPatrolHelisOrange] call blck_fnc_getNumberFromRange;
_chancePara = [blck_chanceParaOrange] call blck_fnc_getNumberFromRange;
};
};
#ifdef blck_debugMode
diag_log format["_missionSpawner(322):: _noChoppers = %1 && _chancePara = %2",_noChoppers,_chancePara];
#endif
for "_i" from 1 to (_noChoppers) do
{
//params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"];
_temp = [_coords,_aiDifficultyLevel,_weaponList,_uniforms,_headGear,_chancePara] call blck_fnc_spawnMissionReinforcements;
#ifdef blck_debugMode
if (blck_debugLevel >= 2) then
{
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(335):: _temp = %1",_temp];
};
#endif
if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
_objects pushback (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
if (_abort) then
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log "missionSpawner:: (349) grpNul or ERROR in blck_fnc_spawnMissionReinforcements, mission termination criteria met, calling blck_endMission";
};
#endif
[_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;
};
#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
/*
_name = "label" + _name;
_textPos = [(_pos select 0) + (count toArray (_text) * 12), (_pos select 1) - (_size select 0), 0];
_MainMarker = createMarker [_name, _textPos];
*/
private _aliveAImarker;
if (blck_showCountOfAliveAI) then
{
private _text = format["% Alive",{alive _x} count _blck_AllMissionAI];
_aliveAImarker = createMarker["aiCount" + _markerClass, [(_coords select 0) + (count toArray (_text) * 12), (_coords select 1) + (100), 0]];
_aliveAImarker setMarkerText _text;;
blck_aiCountMarkers pushBack [_aliveAImarker, _blck_AllMissionAI];
diag_log format["Alive AI Marker Spawned with Marker of %1 and blck_aiCountMarkers = %2",_aliveAImarker,blck_aiCountMarkers];
};
// Trigger for mission end
#ifdef blck_debugMode
diag_log format["[blckeagls] mission Spawner(436) _endCondition = %1",_endCondition];
#endif
private["_missionComplete","_endIfPlayerNear","_endIfAIKilled"];
_missionComplete = -1;
_startTime = diag_tickTime;
switch (_endCondition) do
{
case "playerNear": {_endIfPlayerNear = true;_endIfAIKilled = false;};
case "allUnitsKilled": {_endIfPlayerNear = false;_endIfAIKilled = true;};
case "allKilledOrPlayerNear": {_endIfPlayerNear = true;_endIfAIKilled = true;};
};
#ifdef blck_debugMode
diag_log format["missionSpawner :: (449) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled];
#endif
private["_locations"];
_locations = [_coords];
{
_locations pushback (getPos _x);
_x setVariable["crateSpawnPos", (getPos _x)];
} forEach _crates;
#ifdef blck_debugMode
diag_log format["missionSpawner (458):: _coords = %1 | _crates = %2 | _locations = %3",_coords,_crates,_locations];
#endif
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 ((_endIfPlayerNear) && [_locations,10,true] call blck_fnc_playerInRangeArray) exitWith {};
if ((_endIfAIKilled) && ({alive _x} count _blck_AllMissionAI) < 1) exitWith {};
{
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;
};
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
if (blck_debugLevel > 0) then
{
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 :: (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
private["_result"];
// 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;
if (blck_showCountOfAliveAI) then
{
deleteMarker _aliveAImarker;
blck_aiCountMarkers = blck_aiCountMarkers - [_aliveAImarker, _blck_AllMissionAI];
};
diag_log format["[blckeagls] missionSpawner:: (507)end of mission: blck_fnc_endMission has returned control to _fnc_missionSpawner"];

View File

@ -163,7 +163,7 @@ if (_useMines) then
};
uiSleep _delayTime;
_temp = [];
diag_log format["_missionSpawner"" _missionLandscape = %1",_missionLandscape];
//diag_log format["_missionSpawner"" _missionLandscape = %1",_missionLandscape];
if (_missionLandscapeMode isEqualTo "random") then
{
_temp = [_coords,_missionLandscape, 3, 15, 2] call blck_fnc_spawnRandomLandscape;

View File

@ -0,0 +1,49 @@
/*
Spawn objects from an array using offsects from a central location.
The code provided by M3Editor EDEN has been addapted to add checks for vehicles, should they be present.
Returns an array of spawned objects.
version of 10/13/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["_center","_objects"];
if (count _center == 2) then {_center pushBack 0};
//diag_log format["_spawnBaseObjects:: -> _objects = %1",_objects];
private ["_newObjs"];
_newObjs = [];
{
//diag_log format["_fnc_spawnBaseObjects::-->> _x = %1",_x];
private _obj = (_x select 0) createVehicle [0,0,0];
//diag_log format["_fnc_spawnBaseObjects: _obj = %1",_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 enableDynamicSimulation 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.
if ( (typeOf _obj) isKindOf "LandVehicle" || (typeOf _obj) isKindOf "Air" || (typeOf _obj) isKindOf "Sea") then
{
[_obj] call blck_fnc_configureMissionVehicle;
};
} forEach _objects;
//diag_log format["_fnc_spawnBaseObjects: _newObjs = 51",_newObjs];
_newObjs

View File

@ -16,12 +16,22 @@
params["_center","_objects"];
if (count _center == 2) then {_center pushBack 0};
//diag_log format["_spawnBaseObjects:: -> _objects = %1",_objects];
private ["_newObjs"];
private ["_newObjs","_simDam"];
_newObjs = [];
// Assume that the list of objects to spawn has each object defined using one of two methods where parameters for simulation and damage are optional with default settings.
// 1. ["class_name",[pos x, y, z], dir, [eneable simulation, enable damage]]
{
//diag_log format["_fnc_spawnBaseObjects::-->> _x = %1",_x];
if (count _x == 3) then
{
_simDam = [false,false];
}
else
{
_simDam = _x select 3;
};
private _obj = (_x select 0) createVehicle [0,0,0];
//diag_log format["_fnc_spawnBaseObjects: _obj = %1",_obj];
_newObjs pushback _obj;
@ -36,8 +46,8 @@ _newObjs = [];
//diag_log "_fnc_spawnBaseObjects: detected surface = Land";
};
_obj setDir (_x select 2);
_obj enableDynamicSimulation true;
_obj allowDamage true;
_obj enableDynamicSimulation (_simDam select 0);
_obj allowDamage (_simDam select 1);
// 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.
if ( (typeOf _obj) isKindOf "LandVehicle" || (typeOf _obj) isKindOf "Air" || (typeOf _obj) isKindOf "Sea") then
{

View File

@ -28,25 +28,26 @@ if (blck_debugLevel >=2) then
}forEach _this;
};
#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",["_weapons",[]],["_vests",blck_vests],["_isScubaGroup",false]];
private["_unitsToSpawn","_unitsPerGroup","_ResidualUnits","_newGroup","_blck_AllMissionAI","_abort"];
_unitsToSpawn = [[_minNoAI,_maxNoAI]] call blck_fnc_getNumberFromRange; //round(_minNoAI + round(random(_maxNoAI - _minNoAI)));
_unitsPerGroup = floor(_unitsToSpawn/_noAIGroups);
_ResidualUnits = _unitsToSpawn - (_unitsPerGroup * _noAIGroups);
_blck_AllMissionAI = [];
_abort = false;
if (count _weapons == 0) then
{
_weapons = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
};
#ifdef blck_debugMode
if (blck_debugLevel >= 2) then
{
diag_log format["_fnc_spawnMissionAI (30):: _unitsToSpawn %1 ; _unitsPerGroup %2 _ResidualUnits %3",_unitsToSpawn,_unitsPerGroup,_ResidualUnits];
};
#endif
if (count _missionGroups > 0) then
// [_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",["_weapons",[]],["_vests",blck_vests],["_isScubaGroup",false]];
private["_unitsToSpawn","_unitsPerGroup","_ResidualUnits","_newGroup","_blck_AllMissionAI","_abort"];
// Can add optional debug code here if needed.
_unitsToSpawn = [[_minNoAI,_maxNoAI]] call blck_fnc_getNumberFromRange; //round(_minNoAI + round(random(_maxNoAI - _minNoAI)));
_unitsPerGroup = floor(_unitsToSpawn/_noAIGroups);
_ResidualUnits = _unitsToSpawn - (_unitsPerGroup * _noAIGroups);
_blck_AllMissionAI = [];
_abort = false;
if (count _weapons == 0) then
{
_weapons = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
};
#ifdef blck_debugMode
if (blck_debugLevel >= 2) then
{
diag_log format["_fnc_spawnMissionAI (30):: _unitsToSpawn %1 ; _unitsPerGroup %2 _ResidualUnits %3",_unitsToSpawn,_unitsPerGroup,_ResidualUnits];
};
#endif
if ( (count _missionGroups > 0) && _noAIGroups > 0) then
{
{ //[[-98.9121,-35.9824,-1.20243],5,7,"Green",5,12],[[1,-1,-1],"red",4, 5,10]
_x params["_position","_minAI","_maxAI","_skillLevel","_minPatrolRadius","_maxPatrolRadius"];
@ -81,7 +82,7 @@ if (count _missionGroups > 0) then
};
}forEach _missionGroups;
};
if (_missionGroups isEqualTo []) then
if (_missionGroups isEqualTo [] && _noAIGroups > 0) then
{
switch (_noAIGroups) do
{

View File

@ -22,6 +22,10 @@ _objects = [];
// https://community.bistudio.com/wiki/BIS_fnc_findSafePos
_pos = [_coords,_min,_max,_nearest,0,5,0] call BIS_fnc_findSafePos;
_wreck = createVehicle[_x, _pos, [], 25, "NONE"];
_wreck allowDamage false;
_wreck enableSimulation false;
_wreck enableSimulationGlobal false;
_wreck enableDynamicSimulation false;
_wreck setVariable ["LAST_CHECK", (diag_tickTime + 100000)];
private["_dir","_dirOffset"];

View File

@ -43,7 +43,7 @@ _fn_destroyVehicleAndCrew = {
params["_veh"];
//private["_crew"];
//_crew = crew _veh;
diag_log format["_fn_destroyVehicleAndCrew: called for _veh = %1",_veh];
//diag_log format["_fn_destroyVehicleAndCrew: called for _veh = %1",_veh];
{[_x] call blck_fnc_deleteAI;} forEach (crew _veh);
[_veh] call blck_fn_deleteAIvehicle;
};
@ -78,7 +78,7 @@ _fn_reloadAmmo = {
blck_fn_deleteAIvehicle = {
params["_veh"];
diag_log format["blck_fn_deleteAIvehicle: _veh %1 deleted",_veh];
//diag_log format["blck_fn_deleteAIvehicle: _veh %1 deleted",_veh];
{
_veh removeAllEventHandlers _x;
}forEach ["Hit","HitPart","GetIn","GetOut","Fired","FiredNear","HandleDamage","Reloaded"];
@ -116,7 +116,7 @@ if (blck_debugLevel > 0) then {diag_log format["_fnc_vehicleMonitor:: function c
_evaluate = false;
_veh setVariable["blck_DeleteAt",0];
blck_monitoredVehicles = blck_monitoredVehicles - [_veh];
diag_log format["_fnc_vehicleMonitor: vehicle %1 now owned by player %2",_veh, owner _veh];
//diag_log format["_fnc_vehicleMonitor: vehicle %1 now owned by player %2",_veh, owner _veh];
};
if (_allCrewDead && _evaluate) then
@ -140,7 +140,7 @@ if (blck_debugLevel > 0) then {diag_log format["_fnc_vehicleMonitor:: function c
_veh setDamage 0.7;
_veh setVariable["blck_DeleteAt",diag_tickTime + 60];
} else {
diag_log format["_fnc_vehicleMonitor:: case of RELEASE where vehicle = %1 and Vehicle is typeOf %2",_veh, typeOf _veh];
//diag_log format["_fnc_vehicleMonitor:: case of RELEASE where vehicle = %1 and Vehicle is typeOf %2",_veh, typeOf _veh];
[_veh] call _fn_releaseVehicle;
};
_evaluate = false;
@ -149,7 +149,7 @@ if (blck_debugLevel > 0) then {diag_log format["_fnc_vehicleMonitor:: function c
if (_missionCompleted && !(_allCrewDead)) then
{
diag_log format["_fnc_vehicleMonitor:: case of mission vehicle with AI alive at mission end: schedule destruction with _veh = %1 and typeOf _veh = %2",_veh, typeOf _veh];
//diag_log format["_fnc_vehicleMonitor:: case of mission vehicle with AI alive at mission end: schedule destruction with _veh = %1 and typeOf _veh = %2",_veh, typeOf _veh];
private _cleanupTimer = _veh getVariable["blck_DeleteAt",0]; // The time delete to deleting any alive AI units
if (_cleanupTimer == 0) then {_veh setVariable["blck_DeleteAt",diag_tickTime + blck_vehicleDeleteTimer]};
_evaluate = false;

View File

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

View File

@ -1,9 +1,6 @@
/*
Mission Template by Ghostrider [GRG]
Mission Compositions by Bill prepared for ghostridergaming
Copyright 2016
Last modified 3/20/17
--------------------------
License
--------------------------
@ -46,18 +43,21 @@ _missionLandscape = [
["Land_BagBunker_Small_F",[-23.0186,28.6738,-0.0271301],120.012,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[37.1504,34.5742,0.0146866],255,1,0,[],"","",true,false]
]; // list of objects to spawn as landscape; // list of objects to spawn as landscape
_missionLootBoxes = [
["Box_NATO_Wps_F",[3,-3,0],_crateLoot,[4,10,2,5,5,1]], // Standard loot crate with standard loadout
["Land_PaperBox_C_EPOCH",[-4,-3,0],_crateLoot,[0,0,0,10,10,3]], // No Weapons, Magazines, or optics; 10 each construction supplies and food/drink items, 3 backpacks
["Land_CargoBox_V1_F",[3,4,0],_crateLoot,[0,10,2,5,5,1]]
]; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
// blck_lootCountsBlue= [4,12,3,6,6,1];
_missionLootVehicles = [
//["I_G_Offroad_01_armed_F",[-8,8,0],_crateLoot,[0,10,2,5,5,1]],
//["I_G_Offroad_01_armed_F",[8,17,0],_crateLoot,[0,10,2,5,5,1]]
]; // Parameters are "vehiclel type", offset relative to mission center, loot array, items to load from each category of the loot array.
// ["B_HMG_01_high_F"/*,"B_GMG_01_high_F","O_static_AT_F"*/];
_missionGroups =
_missionGroups =
[
//_x params["_position","_minAI","_maxAI","_skillLevel","_minPatrolRadius","_maxPatrolRadius"];
[[-10.9121,-10.9824,-1.20243],5,7,"Green",5,12],
@ -67,14 +67,15 @@ _missionGroups =
]; // Can be used to define spawn positions of AI patrols
_missionEmplacedWeapons = [
//["B_HMG_01_high_F",[-10,-15,0]],
//["B_GMG_01_high_F",[10,12,0]],
//["O_static_AT_F",[-10,10,0]]
["B_HMG_01_high_F",[-10,-15,0]],
["B_GMG_01_high_F",[10,12,0]],
["O_static_AT_F",[-10,10,0]]
]; // can be used to define the type and precise placement of static weapons [["wep",[1,2,3]] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used
_missionPatrolVehicles = [
_missionPatrolVehicles = [
["B_MRAP_01_hmg_F",[27.8945,100.275,0],0,[true,false]],
["B_MRAP_01_hmg_F",[-84.7793,72.2617,9.53674e-007],0,[true,false]],
["B_MRAP_01_gmg_F",[-87.8457,-109.947,7.15256e-007],0,[true,false]],
["B_MRAP_01_gmg_F",[-87.8457,-109.947,7.15256e-007],0,[true,false]]
];
// Change _useMines to true/false below to enable mission-specific settings.
_useMines = blck_useMines;

View File

@ -26,22 +26,23 @@ _markerColor = "ColorBlue";
_markerMissionName = "Medical Camp";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Land_dp_transformer_F",[1.698242,-10.4668,-0.00763702],271.32,1,0,[],"","",true,false],
["Land_Wreck_BRDM2_F",[1.37012,13.498,0.00109863],184.487,0.00819469,0.830999,[],"","",true,false],
["Land_BagBunker_Small_F",[18.4512,-3.66406,0.00780487],305.003,1,0,[],"","",true,false],
["Land_Cargo_HQ_V1_F",[-20.1367,11.7539,0],90.8565,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-22.707,-3.75586,-0.0130234],44.9901,1,0,[],"","",true,false],
["Land_Cargo_House_V1_F",[24.3584,7.45313,0.00111389],91.6329,1,0,[],"","",true,false],
["StorageBladder_01_fuel_forest_F",[1.29492,29.3184,0.000999451],179.65,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-9.45996,31.252,0.02005],184.595,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-13.0459,32.668,-0.0283051],184.595,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-11.5957,33.125,-0.598007],184.595,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-8.98145,34.5801,-0.00514221],184.592,1,0,[],"","",true,false],
["Land_Addon_02_V1_ruins_F",[24.8369,24.6582,-0.00820923],90.9637,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-10.9443,35.0449,0.577057],184.592,1,0,[],"","",true,false],
["Land_Cargo20_military_green_F",[14.6533,32.9004,0.000480652],90.0989,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-23.0186,28.6738,-0.0271301],120.012,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[37.1504,34.5742,0.0146866],255,1,0,[],"","",true,false]
["Flag_AAF_F",[3,3,0],0,[false,false]],
["Land_dp_transformer_F",[1.698242,-10.4668,-0.00763702],271.32,[true,true]],
["Land_Wreck_BRDM2_F",[1.37012,13.498,0.00109863],184.487,[true,true]],
["Land_BagBunker_Small_F",[18.4512,-3.66406,0.00780487],305.003,[true,true]],
["Land_Cargo_HQ_V1_F",[-20.1367,11.7539,0],90.8565,[true,false]],
["Land_BagBunker_Small_F",[-22.707,-3.75586,-0.0130234],44.9901,[true,true]],
["Land_Cargo_House_V1_F",[24.3584,7.45313,0.00111389],91.6329,[true,true]],
["StorageBladder_01_fuel_forest_F",[1.29492,29.3184,0.000999451],179.65,[false,false]],
["Land_GarbageBags_F",[-9.45996,31.252,0.02005],184.595,[false,false]],
["Land_GarbageBags_F",[-13.0459,32.668,-0.0283051],184.595,[false,false]],
["Land_GarbageBags_F",[-11.5957,33.125,-0.598007],184.595,[false,false]],
["Land_GarbageBags_F",[-8.98145,34.5801,-0.00514221],184.592,[false,false]],
["Land_Addon_02_V1_ruins_F",[24.8369,24.6582,-0.00820923],90.9637,[false,false]],
["Land_GarbageBags_F",[-10.9443,35.0449,0.577057],184.592,[false,false]],
["Land_Cargo20_military_green_F",[14.6533,32.9004,0.000480652],90.0989,[false,false]],
["Land_BagBunker_Small_F",[-23.0186,28.6738,-0.0271301],120.012,[false,false]],
["Land_BagBunker_Small_F",[37.1504,34.5742,0.0146866],255,[false,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.

View File

@ -26,48 +26,48 @@ _markerColor = "ColorBlue";
_markerMissionName = "Bandit Camp";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Land_CampingChair_V1_F",[1.32227,2.07813,8.2016e-005],108.293,1,0],
["Land_CampingChair_V1_F",[-2.01465,2.91992,3.05176e-005],236.049,1,0],
["FirePlace_burning_F",[0.0302734,4.26563,2.47955e-005],359.997,1,0],
["Land_CampingChair_V1_F",[2.47168,4.21484,0.000102997],108.293,1,0],
["Land_CampingChair_V1_F",[-1.86816,5.07422,3.05176e-005],319.489,1,0],
["Land_CampingChair_V1_F",[0.915039,6.20898,1.71661e-005],51.7207,1,0],
["Land_Sleeping_bag_brown_F",[8.27441,0.609375,0.00414658],98.0314,1,0],
["Land_Sleeping_bag_brown_F",[8.27344,2.76758,0.00447083],91.7928,1,0],
["Land_Sleeping_bag_brown_F",[7.9082,4.95898,-0.00173759],85.1176,1,0],
["Land_Garbage_square3_F",[-4.95508,8.24023,0.00018692],60.0024,1,0],
["Land_Camping_Light_F",[8.92773,3.80273,-0.000205994],344.236,1,0],
["Land_Sleeping_bag_brown_F",[7.32129,7.55859,-0.0051899],60.1216,1,0],
["Land_TentDome_F",[-9.75488,3.13477,0.00125313],146.574,1,0],
["Land_WoodPile_F",[-0.322266,9.97266,-0.000553131],35.0017,1,0],
["Land_Razorwire_F",[-0.0185547,-9.84961,0.0752335],1.7831,1,0],
["Land_CampingChair_V1_folded_F",[3.8584,9.59375,0],60,1,0],
["Land_TentDome_F",[-8.76855,7.85156,-0.00471497],207.522,1,0],
["Land_BagFence_Round_F",[8.99707,-8.01367,-0.00951576],326.002,1,0],
["Land_BagFence_Round_F",[-10.8164,-6.33594,-0.0038681],59.9991,1,0],
["Land_TentDome_F",[-7.12207,11.8398,-0.00328445],231.101,1,0],
["Land_CampingTable_small_F",[-4.62598,13.2754,7.62939e-005],344.243,1,0],
["Land_Camping_Light_F",[-4.5957,13.332,0.687943],344.243,1,0],
["Land_Razorwire_F",[15.5459,0.605469,0.145557],102.505,1,0],
["Land_BagFence_Round_F",[7.16211,13.8516,0.000429153],221.639,1,0],
["Land_Razorwire_F",[15.9678,8.35938,0.0635166],85.7459,1,0],
["Land_Razorwire_F",[-19.1553,-1.61328,-0.0238552],70.0997,1,0],
["Land_Razorwire_F",[-12.3906,-15.4492,0.0128002],19.2641,1,0],
["Land_Razorwire_F",[-19.4629,5.67969,0.0492821],102.505,1,0],
["Land_BagFence_Round_F",[-11.2891,17.6777,-0.00759888],128.563,1,0],
["Land_Razorwire_F",[15.2949,-14.3027,0.0502853],139.224,1,0],
["Land_Razorwire_F",[15.2852,16.2656,-0.0208111],85.1363,1,0],
["Land_Razorwire_F",[4.80273,21.8223,-0.0563145],49.2133,1,0],
["Land_Razorwire_F",[-17.7891,13.4863,-0.0646877],102.5,1,0],
["Land_Razorwire_F",[-14.7109,20.2871,0.0674477],306.189,1,0],
["Land_BagFence_Round_F",[25.3975,-6.08008,0.00466537],272.26,1,0],
["Land_Wreck_Truck_F",[26.6289,12.2441,0.00333214],344.243,1,0],
["Land_GarbageBags_F",[-24.9463,17.3066,0.000968933],60.0003,1,0],
["Land_BagFence_Round_F",[11.167,28.832,-0.00405121],178.394,1,0],
["Land_BagFence_Round_F",[-6.36914,30.6953,-0.000207901],178.378,1,0],
["Land_Wreck_Hunter_F",[21.0391,25.9707,0.0118179],325.412,1,0],
["Land_Camping_Light_F",[-33.7852,10.0371,0.000759125],344.235,1,0],
["Land_BagFence_Round_F",[-34.3232,10.1035,0.00181007],60.0012,1,0]
["Land_CampingChair_V1_F",[1.32227,2.07813,8.2016e-005],108.293,[false,false]],
["Land_CampingChair_V1_F",[-2.01465,2.91992,3.05176e-005],236.049,[false,false]],
["FirePlace_burning_F",[0.0302734,4.26563,2.47955e-005],359.997,[false,false]],
["Land_CampingChair_V1_F",[2.47168,4.21484,0.000102997],108.293,[false,false]],
["Land_CampingChair_V1_F",[-1.86816,5.07422,3.05176e-005],319.489,[false,false]],
["Land_CampingChair_V1_F",[0.915039,6.20898,1.71661e-005],51.7207,[false,false]],
["Land_Sleeping_bag_brown_F",[8.27441,0.609375,0.00414658],98.0314,[false,false]],
["Land_Sleeping_bag_brown_F",[8.27344,2.76758,0.00447083],91.7928,[false,false]],
["Land_Sleeping_bag_brown_F",[7.9082,4.95898,-0.00173759],85.1176,[false,false]],
["Land_Garbage_square3_F",[-4.95508,8.24023,0.00018692],60.0024,[false,false]],
["Land_Camping_Light_F",[8.92773,3.80273,-0.000205994],344.236,[false,false]],
["Land_Sleeping_bag_brown_F",[7.32129,7.55859,-0.0051899],60.1216,[false,false]],
["Land_TentDome_F",[-9.75488,3.13477,0.00125313],146.574,[false,false]],
["Land_WoodPile_F",[-0.322266,9.97266,-0.000553131],35.0017,[false,false]],
["Land_Razorwire_F",[-0.0185547,-9.84961,0.0752335],1.7831,[false,false]],
["Land_CampingChair_V1_folded_F",[3.8584,9.59375,0],60,[false,false]],
["Land_TentDome_F",[-8.76855,7.85156,-0.00471497],207.522,[false,false]],
["Land_BagFence_Round_F",[8.99707,-8.01367,-0.00951576],326.002,[false,false]],
["Land_BagFence_Round_F",[-10.8164,-6.33594,-0.0038681],59.9991,[false,false]],
["Land_TentDome_F",[-7.12207,11.8398,-0.00328445],231.101,[false,false]],
["Land_CampingTable_small_F",[-4.62598,13.2754,7.62939e-005],344.243,[false,false]],
["Land_Camping_Light_F",[-4.5957,13.332,0.687943],344.243,[false,false]],
["Land_Razorwire_F",[15.5459,0.605469,0.145557],102.505,[false,false]],
["Land_BagFence_Round_F",[7.16211,13.8516,0.000429153],221.639,[false,false]],
["Land_Razorwire_F",[15.9678,8.35938,0.0635166],85.7459,[false,false]],
["Land_Razorwire_F",[-19.1553,-1.61328,-0.0238552],70.0997,[false,false]],
["Land_Razorwire_F",[-12.3906,-15.4492,0.0128002],19.2641,[false,false]],
["Land_Razorwire_F",[-19.4629,5.67969,0.0492821],102.505,[false,false]],
["Land_BagFence_Round_F",[-11.2891,17.6777,-0.00759888],128.563,[false,false]],
["Land_Razorwire_F",[15.2949,-14.3027,0.0502853],139.224,[false,false]],
["Land_Razorwire_F",[15.2852,16.2656,-0.0208111],85.1363,[false,false]],
["Land_Razorwire_F",[4.80273,21.8223,-0.0563145],49.2133,[false,false]],
["Land_Razorwire_F",[-17.7891,13.4863,-0.0646877],102.5,[false,false]],
["Land_Razorwire_F",[-14.7109,20.2871,0.0674477],306.189,[false,false]],
["Land_BagFence_Round_F",[25.3975,-6.08008,0.00466537],272.26,[false,false]],
["Land_Wreck_Truck_F",[26.6289,12.2441,0.00333214],344.243,[false,false]],
["Land_GarbageBags_F",[-24.9463,17.3066,0.000968933],60.0003,[false,false]],
["Land_BagFence_Round_F",[11.167,28.832,-0.00405121],178.394,[false,false]],
["Land_BagFence_Round_F",[-6.36914,30.6953,-0.000207901],178.378,[false,false]],
["Land_Wreck_Hunter_F",[21.0391,25.9707,0.0118179],325.412,[false,false]],
["Land_Camping_Light_F",[-33.7852,10.0371,0.000759125],344.235,[false,false]],
["Land_BagFence_Round_F",[-34.3232,10.1035,0.00181007],60.0012,[false,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.

View File

@ -26,14 +26,14 @@ _markerColor = "ColorBlue";
_markerMissionName = "Resupply Camp";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Land_Cargo_Patrol_V1_F",[-29.41016,0.13477,-0.0224228],359.992,1,0,[],"","",true,false],
["Land_Cargo_House_V1_F",[29.2988,-0.1,0.150505],54.9965,0,0.848867,[],"","",true,false],
["CamoNet_INDP_big_F",[-20.4346,15.43164,-0.00395203],54.9965,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-20.4346,15.43164,-0.0138168],119.996,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-20.3604,-15.6035,-0.0130463],44.9901,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[18.4453,-15.791,0.00744629],305.003,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[18.3711,15.5703,0.0101624],254.999,1,0,[],"","",true,false],
["CamoNet_INDP_big_F",[18.3711,15.5703,-0.00395203],54.9965,1,0,[],"","",true,false]
["Land_Cargo_Patrol_V1_F",[-29.41016,0.13477,-0.0224228],359.992,[true,true]],
["Land_Cargo_House_V1_F",[29.2988,-0.1,0.150505],54.9965,[true,true]],
["CamoNet_INDP_big_F",[-20.4346,15.43164,-0.00395203],54.9965,[false,false]],
["Land_BagBunker_Small_F",[-20.4346,15.43164,-0.0138168],119.996,[false,false]],
["Land_BagBunker_Small_F",[-20.3604,-15.6035,-0.0130463],44.9901,[false,false]],
["Land_BagBunker_Small_F",[18.4453,-15.791,0.00744629],305.003,[false,false]],
["Land_BagBunker_Small_F",[18.3711,15.5703,0.0101624],254.999,[false,false]],
["CamoNet_INDP_big_F",[18.3711,15.5703,-0.00395203],54.9965,[false,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.

View File

@ -82,7 +82,7 @@ _missionGroups =
_missionPatrolVehicles = [
//[selectRandom blck_AIPatrolVehicles,[27.8945,100.275,0],0,[true,false]],
//[selectRandom blck_AIPatrolVehicles,[-84.7793,72.2617,9.53674e-007],0,[true,false]],
[selectRandom blck_AIPatrolVehicles,[-87.8457,-109.947,7.15256e-007],0,[true,false]]
[selectRandom blck_AIPatrolVehiclesGreen,[-87.8457,-109.947,7.15256e-007],0,[true,false]]
]; // can be used to define the spawn positions of vehicle patrols
// Change _useMines to true/false below to enable mission-specific settings.

View File

@ -24,8 +24,8 @@ _markerLabel = "";
_markerType = ["ELIPSE",[225,225],"GRID"];
_markerColor = "ColorGreen";
_markerMissionName = "Bandit Patrol";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = []; // list of objects to spawn as landscape
_missionLandscapeMode = "random"; // acceptable values are "none","random","precise"
_missionLandscape = ["Land_WoodPile_F","Land_BagFence_Short_F","Land_WoodPile_F","Land_BagFence_Short_F","Land_WoodPile_F","Land_BagFence_Short_F","Land_FieldToilet_F","Land_TentDome_F","Land_TentDome_F","Land_TentDome_F","Land_TentDome_F","Land_CargoBox_V1_F","Land_CargoBox_V1_F"]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionEmplacedWeapons = []; // can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used

View File

@ -1,38 +0,0 @@
/*
Mission Compositions by Bill prepared for DBD Clan
*/
private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_markerMissionName","_missionLandscapeMode","_missionLandscape",
"_missionLootBoxes","_missionLootVehicles","_missionEmplacedWeapons","_minNoAI","_maxNoAI","_noAIGroups","_noVehiclePatrols","_noEmplacedWeapons",
"_uniforms","_headgear","_chanceReinforcements","_noPara","_helipatrol","_endCondition"];
diag_log "[blckeagls] Spawning Green Mission with template = default2";
_crateLoot = blck_BoxLoot_Green;
_lootCounts = blck_lootCountsGreen;
_startMsg = "A group of Bandits was sighted in a nearby sector! Check the Green marker on your map for the location!";
_endMsg = "The Sector at the Green Marker is under survivor control!";
_markerLabel = "";
_markerType = ["ELIPSE",[225,225],"GRID"];
_markerColor = "ColorGreen";
_markerMissionName = "Bandit Patrol";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = []; // list of objects to spawn as landscape
_missionLootBoxes = [
["Box_NATO_Wps_F",_crateLoot,[0,0,0]], // Standard loot crate with standard loadout
["Land_PaperBox_C_EPOCH",_crateLoot,[-5,-5,0]], // No Weapons, Magazines, or optics; 10 each construction supplies and food/drink items, 3 backpacks
["Land_CargoBox_V1_F",_crateLoot,[7, 5.4,0]]]; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = [["I_G_Offroad_01_armed_F","I_G_Offroad_01_armed_F"]]; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionEmplacedWeapons = []; // can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used
_minNoAI = blck_MinAI_Green;
_maxNoAI = blck_MaxAI_Green;
_noAIGroups = blck_AIGrps_Green;
_noVehiclePatrols = blck_SpawnVeh_Green;
_noEmplacedWeapons = blck_SpawnEmplaced_Green;
_uniforms = blck_SkinList;
_headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsGreen select 0;
_noPara = blck_reinforcementsGreen select 1;
_helipatrol = blck_reinforcementsGreen select 2;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "playerNear"
_timeout = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -27,23 +27,23 @@ _markerColor = "ColorGreen";
_markerMissionName = "Medical Camp";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Flag_AAF_F",[3,3,0],0,1,0,[],"","",true,false],
["Land_dp_transformer_F",[1.698242,-10.4668,-0.00763702],271.32,1,0,[],"","",true,false],
["Land_Wreck_BRDM2_F",[1.37012,13.498,0.00109863],184.487,0.00819469,0.830999,[],"","",true,false],
["Land_BagBunker_Small_F",[18.4512,-3.66406,0.00780487],305.003,1,0,[],"","",true,false],
["Land_Cargo_HQ_V1_F",[-20.1367,11.7539,0],90.8565,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-22.707,-3.75586,-0.0130234],44.9901,1,0,[],"","",true,false],
["Land_Cargo_House_V1_F",[24.3584,7.45313,0.00111389],91.6329,1,0,[],"","",true,false],
["StorageBladder_01_fuel_forest_F",[1.29492,29.3184,0.000999451],179.65,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-9.45996,31.252,0.02005],184.595,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-13.0459,32.668,-0.0283051],184.595,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-11.5957,33.125,-0.598007],184.595,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-8.98145,34.5801,-0.00514221],184.592,1,0,[],"","",true,false],
["Land_Addon_02_V1_ruins_F",[24.8369,24.6582,-0.00820923],90.9637,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-10.9443,35.0449,0.577057],184.592,1,0,[],"","",true,false],
["Land_Cargo20_military_green_F",[14.6533,32.9004,0.000480652],90.0989,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-23.0186,28.6738,-0.0271301],120.012,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[37.1504,34.5742,0.0146866],255,1,0,[],"","",true,false]
["Flag_AAF_F",[3,3,0],0,[false,false]],
["Land_dp_transformer_F",[1.698242,-10.4668,-0.00763702],271.32,[true,true]],
["Land_Wreck_BRDM2_F",[1.37012,13.498,0.00109863],184.487,[true,true]],
["Land_BagBunker_Small_F",[18.4512,-3.66406,0.00780487],305.003,[true,true]],
["Land_Cargo_HQ_V1_F",[-20.1367,11.7539,0],90.8565,[true,false]],
["Land_BagBunker_Small_F",[-22.707,-3.75586,-0.0130234],44.9901,[true,true]],
["Land_Cargo_House_V1_F",[24.3584,7.45313,0.00111389],91.6329,[true,true]],
["StorageBladder_01_fuel_forest_F",[1.29492,29.3184,0.000999451],179.65,[false,false]],
["Land_GarbageBags_F",[-9.45996,31.252,0.02005],184.595,[false,false]],
["Land_GarbageBags_F",[-13.0459,32.668,-0.0283051],184.595,[false,false]],
["Land_GarbageBags_F",[-11.5957,33.125,-0.598007],184.595,[false,false]],
["Land_GarbageBags_F",[-8.98145,34.5801,-0.00514221],184.592,[false,false]],
["Land_Addon_02_V1_ruins_F",[24.8369,24.6582,-0.00820923],90.9637,[false,false]],
["Land_GarbageBags_F",[-10.9443,35.0449,0.577057],184.592,[false,false]],
["Land_Cargo20_military_green_F",[14.6533,32.9004,0.000480652],90.0989,[false,false]],
["Land_BagBunker_Small_F",[-23.0186,28.6738,-0.0271301],120.012,[false,false]],
["Land_BagBunker_Small_F",[37.1504,34.5742,0.0146866],255,[false,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.

View File

@ -26,48 +26,48 @@ _markerColor = "ColorGreen";
_markerMissionName = "Bandit Camp";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Land_CampingChair_V1_F",[1.32227,2.07813,8.2016e-005],108.293,1,0],
["Land_CampingChair_V1_F",[-2.01465,2.91992,3.05176e-005],236.049,1,0],
["FirePlace_burning_F",[0.0302734,4.26563,2.47955e-005],359.997,1,0],
["Land_CampingChair_V1_F",[2.47168,4.21484,0.000102997],108.293,1,0],
["Land_CampingChair_V1_F",[-1.86816,5.07422,3.05176e-005],319.489,1,0],
["Land_CampingChair_V1_F",[0.915039,6.20898,1.71661e-005],51.7207,1,0],
["Land_Sleeping_bag_brown_F",[8.27441,0.609375,0.00414658],98.0314,1,0],
["Land_Sleeping_bag_brown_F",[8.27344,2.76758,0.00447083],91.7928,1,0],
["Land_Sleeping_bag_brown_F",[7.9082,4.95898,-0.00173759],85.1176,1,0],
["Land_Garbage_square3_F",[-4.95508,8.24023,0.00018692],60.0024,1,0],
["Land_Camping_Light_F",[8.92773,3.80273,-0.000205994],344.236,1,0],
["Land_Sleeping_bag_brown_F",[7.32129,7.55859,-0.0051899],60.1216,1,0],
["Land_TentDome_F",[-9.75488,3.13477,0.00125313],146.574,1,0],
["Land_WoodPile_F",[-0.322266,9.97266,-0.000553131],35.0017,1,0],
["Land_Razorwire_F",[-0.0185547,-9.84961,0.0752335],1.7831,1,0],
["Land_CampingChair_V1_folded_F",[3.8584,9.59375,0],60,1,0],
["Land_TentDome_F",[-8.76855,7.85156,-0.00471497],207.522,1,0],
["Land_BagFence_Round_F",[8.99707,-8.01367,-0.00951576],326.002,1,0],
["Land_BagFence_Round_F",[-10.8164,-6.33594,-0.0038681],59.9991,1,0],
["Land_TentDome_F",[-7.12207,11.8398,-0.00328445],231.101,1,0],
["Land_CampingTable_small_F",[-4.62598,13.2754,7.62939e-005],344.243,1,0],
["Land_Camping_Light_F",[-4.5957,13.332,0.687943],344.243,1,0],
["Land_Razorwire_F",[15.5459,0.605469,0.145557],102.505,1,0],
["Land_BagFence_Round_F",[7.16211,13.8516,0.000429153],221.639,1,0],
["Land_Razorwire_F",[15.9678,8.35938,0.0635166],85.7459,1,0],
["Land_Razorwire_F",[-19.1553,-1.61328,-0.0238552],70.0997,1,0],
["Land_Razorwire_F",[-12.3906,-15.4492,0.0128002],19.2641,1,0],
["Land_Razorwire_F",[-19.4629,5.67969,0.0492821],102.505,1,0],
["Land_BagFence_Round_F",[-11.2891,17.6777,-0.00759888],128.563,1,0],
["Land_Razorwire_F",[15.2949,-14.3027,0.0502853],139.224,1,0],
["Land_Razorwire_F",[15.2852,16.2656,-0.0208111],85.1363,1,0],
["Land_Razorwire_F",[4.80273,21.8223,-0.0563145],49.2133,1,0],
["Land_Razorwire_F",[-17.7891,13.4863,-0.0646877],102.5,1,0],
["Land_Razorwire_F",[-14.7109,20.2871,0.0674477],306.189,1,0],
["Land_BagFence_Round_F",[25.3975,-6.08008,0.00466537],272.26,1,0],
["Land_Wreck_Truck_F",[26.6289,12.2441,0.00333214],344.243,1,0],
["Land_GarbageBags_F",[-24.9463,17.3066,0.000968933],60.0003,1,0],
["Land_BagFence_Round_F",[11.167,28.832,-0.00405121],178.394,1,0],
["Land_BagFence_Round_F",[-6.36914,30.6953,-0.000207901],178.378,1,0],
["Land_Wreck_Hunter_F",[21.0391,25.9707,0.0118179],325.412,1,0],
["Land_Camping_Light_F",[-33.7852,10.0371,0.000759125],344.235,1,0],
["Land_BagFence_Round_F",[-34.3232,10.1035,0.00181007],60.0012,1,0]
["Land_CampingChair_V1_F",[1.32227,2.07813,8.2016e-005],108.293,[false,false]],
["Land_CampingChair_V1_F",[-2.01465,2.91992,3.05176e-005],236.049,[false,false]],
["FirePlace_burning_F",[0.0302734,4.26563,2.47955e-005],359.997,[false,false]],
["Land_CampingChair_V1_F",[2.47168,4.21484,0.000102997],108.293,[false,false]],
["Land_CampingChair_V1_F",[-1.86816,5.07422,3.05176e-005],319.489,[false,false]],
["Land_CampingChair_V1_F",[0.915039,6.20898,1.71661e-005],51.7207,[false,false]],
["Land_Sleeping_bag_brown_F",[8.27441,0.609375,0.00414658],98.0314,[false,false]],
["Land_Sleeping_bag_brown_F",[8.27344,2.76758,0.00447083],91.7928,[false,false]],
["Land_Sleeping_bag_brown_F",[7.9082,4.95898,-0.00173759],85.1176,[false,false]],
["Land_Garbage_square3_F",[-4.95508,8.24023,0.00018692],60.0024,[false,false]],
["Land_Camping_Light_F",[8.92773,3.80273,-0.000205994],344.236,[false,false]],
["Land_Sleeping_bag_brown_F",[7.32129,7.55859,-0.0051899],60.1216,[false,false]],
["Land_TentDome_F",[-9.75488,3.13477,0.00125313],146.574,[false,false]],
["Land_WoodPile_F",[-0.322266,9.97266,-0.000553131],35.0017,[false,false]],
["Land_Razorwire_F",[-0.0185547,-9.84961,0.0752335],1.7831,[false,false]],
["Land_CampingChair_V1_folded_F",[3.8584,9.59375,0],60,[false,false]],
["Land_TentDome_F",[-8.76855,7.85156,-0.00471497],207.522,[false,false]],
["Land_BagFence_Round_F",[8.99707,-8.01367,-0.00951576],326.002,[false,false]],
["Land_BagFence_Round_F",[-10.8164,-6.33594,-0.0038681],59.9991,[false,false]],
["Land_TentDome_F",[-7.12207,11.8398,-0.00328445],231.101,[false,false]],
["Land_CampingTable_small_F",[-4.62598,13.2754,7.62939e-005],344.243,[false,false]],
["Land_Camping_Light_F",[-4.5957,13.332,0.687943],344.243,[false,false]],
["Land_Razorwire_F",[15.5459,0.605469,0.145557],102.505,[false,false]],
["Land_BagFence_Round_F",[7.16211,13.8516,0.000429153],221.639,[false,false]],
["Land_Razorwire_F",[15.9678,8.35938,0.0635166],85.7459,[false,false]],
["Land_Razorwire_F",[-19.1553,-1.61328,-0.0238552],70.0997,[false,false]],
["Land_Razorwire_F",[-12.3906,-15.4492,0.0128002],19.2641,[false,false]],
["Land_Razorwire_F",[-19.4629,5.67969,0.0492821],102.505,[false,false]],
["Land_BagFence_Round_F",[-11.2891,17.6777,-0.00759888],128.563,[false,false]],
["Land_Razorwire_F",[15.2949,-14.3027,0.0502853],139.224,[false,false]],
["Land_Razorwire_F",[15.2852,16.2656,-0.0208111],85.1363,[false,false]],
["Land_Razorwire_F",[4.80273,21.8223,-0.0563145],49.2133,[false,false]],
["Land_Razorwire_F",[-17.7891,13.4863,-0.0646877],102.5,[false,false]],
["Land_Razorwire_F",[-14.7109,20.2871,0.0674477],306.189,[false,false]],
["Land_BagFence_Round_F",[25.3975,-6.08008,0.00466537],272.26,[false,false]],
["Land_Wreck_Truck_F",[26.6289,12.2441,0.00333214],344.243,[false,false]],
["Land_GarbageBags_F",[-24.9463,17.3066,0.000968933],60.0003,[false,false]],
["Land_BagFence_Round_F",[11.167,28.832,-0.00405121],178.394,[false,false]],
["Land_BagFence_Round_F",[-6.36914,30.6953,-0.000207901],178.378,[false,false]],
["Land_Wreck_Hunter_F",[21.0391,25.9707,0.0118179],325.412,[false,false]],
["Land_Camping_Light_F",[-33.7852,10.0371,0.000759125],344.235,[false,false]],
["Land_BagFence_Round_F",[-34.3232,10.1035,0.00181007],60.0012,[false,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.

View File

@ -26,14 +26,14 @@ _markerColor = "ColorGreen";
_markerMissionName = "Resupply Camp";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Land_Cargo_Patrol_V1_F",[-29.41016,0.13477,-0.0224228],359.992,1,0,[],"","",true,false],
["Land_Cargo_House_V1_F",[29.2988,-0.1,0.150505],54.9965,0,0.848867,[],"","",true,false],
["CamoNet_INDP_big_F",[-20.4346,15.43164,-0.00395203],54.9965,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-20.4346,15.43164,-0.0138168],119.996,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-20.3604,-15.6035,-0.0130463],44.9901,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[18.4453,-15.791,0.00744629],305.003,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[18.3711,15.5703,0.0101624],254.999,1,0,[],"","",true,false],
["CamoNet_INDP_big_F",[18.3711,15.5703,-0.00395203],54.9965,1,0,[],"","",true,false]
["Land_Cargo_Patrol_V1_F",[-29.41016,0.13477,-0.0224228],359.992,[true,true]],
["Land_Cargo_House_V1_F",[29.2988,-0.1,0.150505],54.9965,[true,true]],
["CamoNet_INDP_big_F",[-20.4346,15.43164,-0.00395203],54.9965,[false,false]],
["Land_BagBunker_Small_F",[-20.4346,15.43164,-0.0138168],119.996,[false,false]],
["Land_BagBunker_Small_F",[-20.3604,-15.6035,-0.0130463],44.9901,[false,false]],
["Land_BagBunker_Small_F",[18.4453,-15.791,0.00744629],305.003,[false,false]],
["Land_BagBunker_Small_F",[18.3711,15.5703,0.0101624],254.999,[false,false]],
["CamoNet_INDP_big_F",[18.3711,15.5703,-0.00395203],54.9965,[false,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.

View File

@ -80,9 +80,9 @@ _missionGroups =
]; // Can be used to define spawn positions of AI patrols
_missionPatrolVehicles = [
//[selectRandom blck_AIPatrolVehicles,[27.8945,100.275,0],0,[true,false]],
//[selectRandom blck_AIPatrolVehicles,[-84.7793,72.2617,9.53674e-007],0,[true,false]],
[selectRandom blck_AIPatrolVehicles,[-87.8457,-109.947,7.15256e-007],0,[true,false]]
//[selectRandom blck_AIPatrolVehiclesGreen,[27.8945,100.275,0],0,[true,false]],
//[selectRandom blck_AIPatrolVehiclesGreen,[-84.7793,72.2617,9.53674e-007],0,[true,false]],
[selectRandom blck_AIPatrolVehiclesGreen,[-87.8457,-109.947,7.15256e-007],0,[true,false]]
]; // can be used to define the spawn positions of vehicle patrols
// Change _useMines to true/false below to enable mission-specific settings.

View File

@ -24,8 +24,8 @@ _markerLabel = "";
_markerType = ["ELIPSE",[250,250],"GRID"];
_markerColor = "ColorOrange";
_markerMissionName = "Bandit Patrol";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = []; // list of objects to spawn as landscape
_missionLandscapeMode = "random"; // acceptable values are "none","random","precise"
_missionLandscape = ["Land_WoodPile_F","Land_BagFence_Short_F","Land_WoodPile_F","Land_BagFence_Short_F","Land_WoodPile_F","Land_BagFence_Short_F","Land_FieldToilet_F","Land_TentDome_F","Land_TentDome_F","Land_TentDome_F","Land_TentDome_F","Land_CargoBox_V1_F","Land_CargoBox_V1_F"]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionEmplacedWeapons = []; // can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used

View File

@ -1,53 +0,0 @@
/*
Mission Compositions by Bill prepared for DBD Clan
*/
_crateLoot =
[
[// Weapons
],
[//Magazines
],
[ // Optics
],
[// Materials and supplies
],
[//Items
],
[ // Backpacks
]
];
private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_markerMissionName","_missionLandscapeMode","_missionLandscape",
"_missionLootBoxes","_missionLootVehicles","_missionEmplacedWeapons","_minNoAI","_maxNoAI","_noAIGroups","_noVehiclePatrols","_noEmplacedWeapons",
"_uniforms","_headgear","_chanceReinforcements","_noPara","_helipatrol","_endCondition"];
diag_log "[blckeagls] Spawning Orange Mission with template = default2";
_crateLoot = blck_BoxLoot_Orange;
_lootCounts = blck_lootCountsOrange;
_startMsg = "A group of Bandits was sighted in a nearby sector! Check the Orange marker on your map for the location!";
_endMsg = "The Sector at the Orange Marker is under survivor control!";
_markerLabel = "";
_markerType = ["ELIPSE",[250,250],"GRID"];
_markerColor = "ColorOrange";
_markerMissionName = "Bandit Patrol";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = []; // list of objects to spawn as landscape
_missionLootBoxes = [
["Box_NATO_Wps_F",_crateLoot,[0,0,0]], // Standard loot crate with standard loadout
["Land_PaperBox_C_EPOCH",_crateLoot,[-5,-5,0]], // No Weapons, Magazines, or optics; 10 each construction supplies and food/drink items, 3 backpacks
["Land_CargoBox_V1_F",_crateLoot,[7, 5.4,0]]]; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = [["I_G_Offroad_01_armed_F","I_G_Offroad_01_armed_F"]]; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionEmplacedWeapons = []; // can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used
_minNoAI = blck_MinAI_Orange;
_maxNoAI = blck_MaxAI_Orange;
_noAIGroups = blck_AIGrps_Orange;
_noVehiclePatrols = blck_SpawnVeh_Orange;
_noEmplacedWeapons = blck_SpawnEmplaced_Orange;
_uniforms = blck_SkinList;
_headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsOrange select 0;
_noPara = blck_reinforcementsOrange select 1;
_helipatrol = blck_reinforcementsOrange select 2;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "playerNear"
_timeout = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -26,22 +26,23 @@ _markerColor = "ColorOrange";
_markerMissionName = "Medical Camp";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Land_dp_transformer_F",[1.698242,-10.4668,-0.00763702],271.32,1,0,[],"","",true,false],
["Land_Wreck_BRDM2_F",[1.37012,13.498,0.00109863],184.487,0.00819469,0.830999,[],"","",true,false],
["Land_BagBunker_Small_F",[18.4512,-3.66406,0.00780487],305.003,1,0,[],"","",true,false],
["Land_Cargo_HQ_V1_F",[-20.1367,11.7539,0],90.8565,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-22.707,-3.75586,-0.0130234],44.9901,1,0,[],"","",true,false],
["Land_Cargo_House_V1_F",[24.3584,7.45313,0.00111389],91.6329,1,0,[],"","",true,false],
["StorageBladder_01_fuel_forest_F",[1.29492,29.3184,0.000999451],179.65,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-9.45996,31.252,0.02005],184.595,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-13.0459,32.668,-0.0283051],184.595,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-11.5957,33.125,-0.598007],184.595,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-8.98145,34.5801,-0.00514221],184.592,1,0,[],"","",true,false],
["Land_Addon_02_V1_ruins_F",[24.8369,24.6582,-0.00820923],90.9637,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-10.9443,35.0449,0.577057],184.592,1,0,[],"","",true,false],
["Land_Cargo20_military_green_F",[14.6533,32.9004,0.000480652],90.0989,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-23.0186,28.6738,-0.0271301],120.012,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[37.1504,34.5742,0.0146866],255,1,0,[],"","",true,false]
["Flag_AAF_F",[3,3,0],0,[false,false]],
["Land_dp_transformer_F",[1.698242,-10.4668,-0.00763702],271.32,[true,true]],
["Land_Wreck_BRDM2_F",[1.37012,13.498,0.00109863],184.487,[true,true]],
["Land_BagBunker_Small_F",[18.4512,-3.66406,0.00780487],305.003,[true,true]],
["Land_Cargo_HQ_V1_F",[-20.1367,11.7539,0],90.8565,[true,false]],
["Land_BagBunker_Small_F",[-22.707,-3.75586,-0.0130234],44.9901,[true,true]],
["Land_Cargo_House_V1_F",[24.3584,7.45313,0.00111389],91.6329,[true,true]],
["StorageBladder_01_fuel_forest_F",[1.29492,29.3184,0.000999451],179.65,[false,false]],
["Land_GarbageBags_F",[-9.45996,31.252,0.02005],184.595,[false,false]],
["Land_GarbageBags_F",[-13.0459,32.668,-0.0283051],184.595,[false,false]],
["Land_GarbageBags_F",[-11.5957,33.125,-0.598007],184.595,[false,false]],
["Land_GarbageBags_F",[-8.98145,34.5801,-0.00514221],184.592,[false,false]],
["Land_Addon_02_V1_ruins_F",[24.8369,24.6582,-0.00820923],90.9637,[false,false]],
["Land_GarbageBags_F",[-10.9443,35.0449,0.577057],184.592,[false,false]],
["Land_Cargo20_military_green_F",[14.6533,32.9004,0.000480652],90.0989,[false,false]],
["Land_BagBunker_Small_F",[-23.0186,28.6738,-0.0271301],120.012,[false,false]],
["Land_BagBunker_Small_F",[37.1504,34.5742,0.0146866],255,[false,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.

View File

@ -26,48 +26,48 @@ _markerColor = "ColorOrange";
_markerMissionName = "Bandit Camp";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Land_CampingChair_V1_F",[1.32227,2.07813,8.2016e-005],108.293,1,0],
["Land_CampingChair_V1_F",[-2.01465,2.91992,3.05176e-005],236.049,1,0],
["FirePlace_burning_F",[0.0302734,4.26563,2.47955e-005],359.997,1,0],
["Land_CampingChair_V1_F",[2.47168,4.21484,0.000102997],108.293,1,0],
["Land_CampingChair_V1_F",[-1.86816,5.07422,3.05176e-005],319.489,1,0],
["Land_CampingChair_V1_F",[0.915039,6.20898,1.71661e-005],51.7207,1,0],
["Land_Sleeping_bag_brown_F",[8.27441,0.609375,0.00414658],98.0314,1,0],
["Land_Sleeping_bag_brown_F",[8.27344,2.76758,0.00447083],91.7928,1,0],
["Land_Sleeping_bag_brown_F",[7.9082,4.95898,-0.00173759],85.1176,1,0],
["Land_Garbage_square3_F",[-4.95508,8.24023,0.00018692],60.0024,1,0],
["Land_Camping_Light_F",[8.92773,3.80273,-0.000205994],344.236,1,0],
["Land_Sleeping_bag_brown_F",[7.32129,7.55859,-0.0051899],60.1216,1,0],
["Land_TentDome_F",[-9.75488,3.13477,0.00125313],146.574,1,0],
["Land_WoodPile_F",[-0.322266,9.97266,-0.000553131],35.0017,1,0],
["Land_Razorwire_F",[-0.0185547,-9.84961,0.0752335],1.7831,1,0],
["Land_CampingChair_V1_folded_F",[3.8584,9.59375,0],60,1,0],
["Land_TentDome_F",[-8.76855,7.85156,-0.00471497],207.522,1,0],
["Land_BagFence_Round_F",[8.99707,-8.01367,-0.00951576],326.002,1,0],
["Land_BagFence_Round_F",[-10.8164,-6.33594,-0.0038681],59.9991,1,0],
["Land_TentDome_F",[-7.12207,11.8398,-0.00328445],231.101,1,0],
["Land_CampingTable_small_F",[-4.62598,13.2754,7.62939e-005],344.243,1,0],
["Land_Camping_Light_F",[-4.5957,13.332,0.687943],344.243,1,0],
["Land_Razorwire_F",[15.5459,0.605469,0.145557],102.505,1,0],
["Land_BagFence_Round_F",[7.16211,13.8516,0.000429153],221.639,1,0],
["Land_Razorwire_F",[15.9678,8.35938,0.0635166],85.7459,1,0],
["Land_Razorwire_F",[-19.1553,-1.61328,-0.0238552],70.0997,1,0],
["Land_Razorwire_F",[-12.3906,-15.4492,0.0128002],19.2641,1,0],
["Land_Razorwire_F",[-19.4629,5.67969,0.0492821],102.505,1,0],
["Land_BagFence_Round_F",[-11.2891,17.6777,-0.00759888],128.563,1,0],
["Land_Razorwire_F",[15.2949,-14.3027,0.0502853],139.224,1,0],
["Land_Razorwire_F",[15.2852,16.2656,-0.0208111],85.1363,1,0],
["Land_Razorwire_F",[4.80273,21.8223,-0.0563145],49.2133,1,0],
["Land_Razorwire_F",[-17.7891,13.4863,-0.0646877],102.5,1,0],
["Land_Razorwire_F",[-14.7109,20.2871,0.0674477],306.189,1,0],
["Land_BagFence_Round_F",[25.3975,-6.08008,0.00466537],272.26,1,0],
["Land_Wreck_Truck_F",[26.6289,12.2441,0.00333214],344.243,1,0],
["Land_GarbageBags_F",[-24.9463,17.3066,0.000968933],60.0003,1,0],
["Land_BagFence_Round_F",[11.167,28.832,-0.00405121],178.394,1,0],
["Land_BagFence_Round_F",[-6.36914,30.6953,-0.000207901],178.378,1,0],
["Land_Wreck_Hunter_F",[21.0391,25.9707,0.0118179],325.412,1,0],
["Land_Camping_Light_F",[-33.7852,10.0371,0.000759125],344.235,1,0],
["Land_BagFence_Round_F",[-34.3232,10.1035,0.00181007],60.0012,1,0]
["Land_CampingChair_V1_F",[1.32227,2.07813,8.2016e-005],108.293,[false,false]],
["Land_CampingChair_V1_F",[-2.01465,2.91992,3.05176e-005],236.049,[false,false]],
["FirePlace_burning_F",[0.0302734,4.26563,2.47955e-005],359.997,[false,false]],
["Land_CampingChair_V1_F",[2.47168,4.21484,0.000102997],108.293,[false,false]],
["Land_CampingChair_V1_F",[-1.86816,5.07422,3.05176e-005],319.489,[false,false]],
["Land_CampingChair_V1_F",[0.915039,6.20898,1.71661e-005],51.7207,[false,false]],
["Land_Sleeping_bag_brown_F",[8.27441,0.609375,0.00414658],98.0314,[false,false]],
["Land_Sleeping_bag_brown_F",[8.27344,2.76758,0.00447083],91.7928,[false,false]],
["Land_Sleeping_bag_brown_F",[7.9082,4.95898,-0.00173759],85.1176,[false,false]],
["Land_Garbage_square3_F",[-4.95508,8.24023,0.00018692],60.0024,[false,false]],
["Land_Camping_Light_F",[8.92773,3.80273,-0.000205994],344.236,[false,false]],
["Land_Sleeping_bag_brown_F",[7.32129,7.55859,-0.0051899],60.1216,[false,false]],
["Land_TentDome_F",[-9.75488,3.13477,0.00125313],146.574,[false,false]],
["Land_WoodPile_F",[-0.322266,9.97266,-0.000553131],35.0017,[false,false]],
["Land_Razorwire_F",[-0.0185547,-9.84961,0.0752335],1.7831,[false,false]],
["Land_CampingChair_V1_folded_F",[3.8584,9.59375,0],60,[false,false]],
["Land_TentDome_F",[-8.76855,7.85156,-0.00471497],207.522,[false,false]],
["Land_BagFence_Round_F",[8.99707,-8.01367,-0.00951576],326.002,[false,false]],
["Land_BagFence_Round_F",[-10.8164,-6.33594,-0.0038681],59.9991,[false,false]],
["Land_TentDome_F",[-7.12207,11.8398,-0.00328445],231.101,[false,false]],
["Land_CampingTable_small_F",[-4.62598,13.2754,7.62939e-005],344.243,[false,false]],
["Land_Camping_Light_F",[-4.5957,13.332,0.687943],344.243,[false,false]],
["Land_Razorwire_F",[15.5459,0.605469,0.145557],102.505,[false,false]],
["Land_BagFence_Round_F",[7.16211,13.8516,0.000429153],221.639,[false,false]],
["Land_Razorwire_F",[15.9678,8.35938,0.0635166],85.7459,[false,false]],
["Land_Razorwire_F",[-19.1553,-1.61328,-0.0238552],70.0997,[false,false]],
["Land_Razorwire_F",[-12.3906,-15.4492,0.0128002],19.2641,[false,false]],
["Land_Razorwire_F",[-19.4629,5.67969,0.0492821],102.505,[false,false]],
["Land_BagFence_Round_F",[-11.2891,17.6777,-0.00759888],128.563,[false,false]],
["Land_Razorwire_F",[15.2949,-14.3027,0.0502853],139.224,[false,false]],
["Land_Razorwire_F",[15.2852,16.2656,-0.0208111],85.1363,[false,false]],
["Land_Razorwire_F",[4.80273,21.8223,-0.0563145],49.2133,[false,false]],
["Land_Razorwire_F",[-17.7891,13.4863,-0.0646877],102.5,[false,false]],
["Land_Razorwire_F",[-14.7109,20.2871,0.0674477],306.189,[false,false]],
["Land_BagFence_Round_F",[25.3975,-6.08008,0.00466537],272.26,[false,false]],
["Land_Wreck_Truck_F",[26.6289,12.2441,0.00333214],344.243,[false,false]],
["Land_GarbageBags_F",[-24.9463,17.3066,0.000968933],60.0003,[false,false]],
["Land_BagFence_Round_F",[11.167,28.832,-0.00405121],178.394,[false,false]],
["Land_BagFence_Round_F",[-6.36914,30.6953,-0.000207901],178.378,[false,false]],
["Land_Wreck_Hunter_F",[21.0391,25.9707,0.0118179],325.412,[false,false]],
["Land_Camping_Light_F",[-33.7852,10.0371,0.000759125],344.235,[false,false]],
["Land_BagFence_Round_F",[-34.3232,10.1035,0.00181007],60.0012,[false,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.

View File

@ -27,15 +27,14 @@ _markerColor = "ColorOrange";
_markerMissionName = "Resupply Camp";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Flag_AAF_F",[3,3,0],0,1,0,[],"","",true,false],
["Land_Cargo_Patrol_V1_F",[-29.41016,0.13477,-0.0224228],359.992,1,0,[],"","",true,false],
["Land_Cargo_House_V1_F",[29.2988,-0.1,0.150505],54.9965,0,0.848867,[],"","",true,false],
["CamoNet_INDP_big_F",[-20.4346,15.43164,-0.00395203],54.9965,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-20.4346,15.43164,-0.0138168],119.996,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-20.3604,-15.6035,-0.0130463],44.9901,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[18.4453,-15.791,0.00744629],305.003,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[18.3711,15.5703,0.0101624],254.999,1,0,[],"","",true,false],
["CamoNet_INDP_big_F",[18.3711,15.5703,-0.00395203],54.9965,1,0,[],"","",true,false]
["Land_Cargo_Patrol_V1_F",[-29.41016,0.13477,-0.0224228],359.992,[true,true]],
["Land_Cargo_House_V1_F",[29.2988,-0.1,0.150505],54.9965,[true,true]],
["CamoNet_INDP_big_F",[-20.4346,15.43164,-0.00395203],54.9965,[false,false]],
["Land_BagBunker_Small_F",[-20.4346,15.43164,-0.0138168],119.996,[false,false]],
["Land_BagBunker_Small_F",[-20.3604,-15.6035,-0.0130463],44.9901,[false,false]],
["Land_BagBunker_Small_F",[18.4453,-15.791,0.00744629],305.003,[false,false]],
["Land_BagBunker_Small_F",[18.3711,15.5703,0.0101624],254.999,[false,false]],
["CamoNet_INDP_big_F",[18.3711,15.5703,-0.00395203],54.9965,[false,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.

View File

@ -24,8 +24,9 @@ _markerLabel = "";
_markerType = ["ELIPSE",[200,200],"GRID"];
_markerColor = "ColorRed";
_markerMissionName = "Bandit Patrol";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = []; // list of objects to spawn as landscape
_missionLandscapeMode = "random"; // acceptable values are "none","random","precise"
_missionLandscape = ["Land_WoodPile_F","Land_BagFence_Short_F","Land_WoodPile_F","Land_BagFence_Short_F","Land_WoodPile_F","Land_BagFence_Short_F","Land_FieldToilet_F","Land_TentDome_F","Land_TentDome_F","Land_TentDome_F","Land_TentDome_F","Land_CargoBox_V1_F","Land_CargoBox_V1_F"]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionEmplacedWeapons = []; // can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used

View File

@ -1,41 +0,0 @@
/*
Mission Compositions by Bill prepared for DBD Clan
*/
private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_markerMissionName","_missionLandscapeMode","_missionLandscape",
"_missionLootBoxes","_missionLootVehicles","_missionEmplacedWeapons","_minNoAI","_maxNoAI","_noAIGroups","_noVehiclePatrols","_noEmplacedWeapons",
"_uniforms","_headgear","_chanceReinforcements","_noPara","_helipatrol","_endCondition"];
diag_log "[blckeagls] Spawning Red Mission with template = default2";
_crateLoot = blck_BoxLoot_Red;
_lootCounts = blck_lootCountsRed;
_startMsg = "A group of Bandits was sighted in a nearby sector! Check the Blue marker on your map for the location!";
_endMsg = "The Sector at the Blue Marker is under survivor control!";
_markerLabel = "";
_markerType = ["ELIPSE",[200,200],"GRID"];
_markerColor = "ColorRed";
_markerMissionName = "Bandit Patrol";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = []; // list of objects to spawn as landscape
_missionLootBoxes = [
["Box_NATO_Wps_F",_crateLoot,[0,0,0]], // Standard loot crate with standard loadout
["Land_PaperBox_C_EPOCH",_crateLoot,[-5,-5,0]], // No Weapons, Magazines, or optics; 10 each construction supplies and food/drink items, 3 backpacks
["Land_CargoBox_V1_F",_crateLoot,[7, 5.4,0]]]; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = [["I_G_Offroad_01_armed_F","I_G_Offroad_01_armed_F"]]; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionEmplacedWeapons = []; // can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used
_minNoAI = blck_MinAI_Red;
_maxNoAI = blck_MaxAI_Red;
_noAIGroups = blck_AIGrps_Red;
_noVehiclePatrols = blck_SpawnVeh_Red;
_noEmplacedWeapons = blck_SpawnEmplaced_Red;
_uniforms = blck_SkinList;
_headgear = blck_headgear;
_chanceReinforcements = blck_reinforcementsRed select 0;
_noPara = blck_reinforcementsRed select 1;
_helipatrol = blck_reinforcementsRed select 2;
_endCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "playerNear"
_timeout = -1;
#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";

View File

@ -26,22 +26,23 @@ _markerColor = "ColorRed";
_markerMissionName = "Medical Camp";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Land_dp_transformer_F",[1.698242,-10.4668,-0.00763702],271.32,1,0,[],"","",true,false],
["Land_Wreck_BRDM2_F",[1.37012,13.498,0.00109863],184.487,0.00819469,0.830999,[],"","",true,false],
["Land_BagBunker_Small_F",[18.4512,-3.66406,0.00780487],305.003,1,0,[],"","",true,false],
["Land_Cargo_HQ_V1_F",[-20.1367,11.7539,0],90.8565,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-22.707,-3.75586,-0.0130234],44.9901,1,0,[],"","",true,false],
["Land_Cargo_House_V1_F",[24.3584,7.45313,0.00111389],91.6329,1,0,[],"","",true,false],
["StorageBladder_01_fuel_forest_F",[1.29492,29.3184,0.000999451],179.65,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-9.45996,31.252,0.02005],184.595,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-13.0459,32.668,-0.0283051],184.595,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-11.5957,33.125,-0.598007],184.595,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-8.98145,34.5801,-0.00514221],184.592,1,0,[],"","",true,false],
["Land_Addon_02_V1_ruins_F",[24.8369,24.6582,-0.00820923],90.9637,1,0,[],"","",true,false],
["Land_GarbageBags_F",[-10.9443,35.0449,0.577057],184.592,1,0,[],"","",true,false],
["Land_Cargo20_military_green_F",[14.6533,32.9004,0.000480652],90.0989,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-23.0186,28.6738,-0.0271301],120.012,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[37.1504,34.5742,0.0146866],255,1,0,[],"","",true,false]
["Flag_AAF_F",[3,3,0],0,[false,false]],
["Land_dp_transformer_F",[1.698242,-10.4668,-0.00763702],271.32,[true,true]],
["Land_Wreck_BRDM2_F",[1.37012,13.498,0.00109863],184.487,[true,true]],
["Land_BagBunker_Small_F",[18.4512,-3.66406,0.00780487],305.003,[true,true]],
["Land_Cargo_HQ_V1_F",[-20.1367,11.7539,0],90.8565,[true,false]],
["Land_BagBunker_Small_F",[-22.707,-3.75586,-0.0130234],44.9901,[true,true]],
["Land_Cargo_House_V1_F",[24.3584,7.45313,0.00111389],91.6329,[true,true]],
["StorageBladder_01_fuel_forest_F",[1.29492,29.3184,0.000999451],179.65,[false,false]],
["Land_GarbageBags_F",[-9.45996,31.252,0.02005],184.595,[false,false]],
["Land_GarbageBags_F",[-13.0459,32.668,-0.0283051],184.595,[false,false]],
["Land_GarbageBags_F",[-11.5957,33.125,-0.598007],184.595,[false,false]],
["Land_GarbageBags_F",[-8.98145,34.5801,-0.00514221],184.592,[false,false]],
["Land_Addon_02_V1_ruins_F",[24.8369,24.6582,-0.00820923],90.9637,[false,false]],
["Land_GarbageBags_F",[-10.9443,35.0449,0.577057],184.592,[false,false]],
["Land_Cargo20_military_green_F",[14.6533,32.9004,0.000480652],90.0989,[false,false]],
["Land_BagBunker_Small_F",[-23.0186,28.6738,-0.0271301],120.012,[false,false]],
["Land_BagBunker_Small_F",[37.1504,34.5742,0.0146866],255,[false,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.

View File

@ -27,49 +27,48 @@ _markerColor = "ColorRed";
_markerMissionName = "Bandit Camp";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Flag_AAF_F",[3,3,0],0,1,0,[],"","",true,false],
["Land_CampingChair_V1_F",[1.32227,2.07813,8.2016e-005],108.293,1,0],
["Land_CampingChair_V1_F",[-2.01465,2.91992,3.05176e-005],236.049,1,0],
["FirePlace_burning_F",[0.0302734,4.26563,2.47955e-005],359.997,1,0],
["Land_CampingChair_V1_F",[2.47168,4.21484,0.000102997],108.293,1,0],
["Land_CampingChair_V1_F",[-1.86816,5.07422,3.05176e-005],319.489,1,0],
["Land_CampingChair_V1_F",[0.915039,6.20898,1.71661e-005],51.7207,1,0],
["Land_Sleeping_bag_brown_F",[8.27441,0.609375,0.00414658],98.0314,1,0],
["Land_Sleeping_bag_brown_F",[8.27344,2.76758,0.00447083],91.7928,1,0],
["Land_Sleeping_bag_brown_F",[7.9082,4.95898,-0.00173759],85.1176,1,0],
["Land_Garbage_square3_F",[-4.95508,8.24023,0.00018692],60.0024,1,0],
["Land_Camping_Light_F",[8.92773,3.80273,-0.000205994],344.236,1,0],
["Land_Sleeping_bag_brown_F",[7.32129,7.55859,-0.0051899],60.1216,1,0],
["Land_TentDome_F",[-9.75488,3.13477,0.00125313],146.574,1,0],
["Land_WoodPile_F",[-0.322266,9.97266,-0.000553131],35.0017,1,0],
["Land_Razorwire_F",[-0.0185547,-9.84961,0.0752335],1.7831,1,0],
["Land_CampingChair_V1_folded_F",[3.8584,9.59375,0],60,1,0],
["Land_TentDome_F",[-8.76855,7.85156,-0.00471497],207.522,1,0],
["Land_BagFence_Round_F",[8.99707,-8.01367,-0.00951576],326.002,1,0],
["Land_BagFence_Round_F",[-10.8164,-6.33594,-0.0038681],59.9991,1,0],
["Land_TentDome_F",[-7.12207,11.8398,-0.00328445],231.101,1,0],
["Land_CampingTable_small_F",[-4.62598,13.2754,7.62939e-005],344.243,1,0],
["Land_Camping_Light_F",[-4.5957,13.332,0.687943],344.243,1,0],
["Land_Razorwire_F",[15.5459,0.605469,0.145557],102.505,1,0],
["Land_BagFence_Round_F",[7.16211,13.8516,0.000429153],221.639,1,0],
["Land_Razorwire_F",[15.9678,8.35938,0.0635166],85.7459,1,0],
["Land_Razorwire_F",[-19.1553,-1.61328,-0.0238552],70.0997,1,0],
["Land_Razorwire_F",[-12.3906,-15.4492,0.0128002],19.2641,1,0],
["Land_Razorwire_F",[-19.4629,5.67969,0.0492821],102.505,1,0],
["Land_BagFence_Round_F",[-11.2891,17.6777,-0.00759888],128.563,1,0],
["Land_Razorwire_F",[15.2949,-14.3027,0.0502853],139.224,1,0],
["Land_Razorwire_F",[15.2852,16.2656,-0.0208111],85.1363,1,0],
["Land_Razorwire_F",[4.80273,21.8223,-0.0563145],49.2133,1,0],
["Land_Razorwire_F",[-17.7891,13.4863,-0.0646877],102.5,1,0],
["Land_Razorwire_F",[-14.7109,20.2871,0.0674477],306.189,1,0],
["Land_BagFence_Round_F",[25.3975,-6.08008,0.00466537],272.26,1,0],
["Land_Wreck_Truck_F",[26.6289,12.2441,0.00333214],344.243,1,0],
["Land_GarbageBags_F",[-24.9463,17.3066,0.000968933],60.0003,1,0],
["Land_BagFence_Round_F",[11.167,28.832,-0.00405121],178.394,1,0],
["Land_BagFence_Round_F",[-6.36914,30.6953,-0.000207901],178.378,1,0],
["Land_Wreck_Hunter_F",[21.0391,25.9707,0.0118179],325.412,1,0],
["Land_Camping_Light_F",[-33.7852,10.0371,0.000759125],344.235,1,0],
["Land_BagFence_Round_F",[-34.3232,10.1035,0.00181007],60.0012,1,0]
["Land_CampingChair_V1_F",[1.32227,2.07813,8.2016e-005],108.293,[false,false]],
["Land_CampingChair_V1_F",[-2.01465,2.91992,3.05176e-005],236.049,[false,false]],
["FirePlace_burning_F",[0.0302734,4.26563,2.47955e-005],359.997,[false,false]],
["Land_CampingChair_V1_F",[2.47168,4.21484,0.000102997],108.293,[false,false]],
["Land_CampingChair_V1_F",[-1.86816,5.07422,3.05176e-005],319.489,[false,false]],
["Land_CampingChair_V1_F",[0.915039,6.20898,1.71661e-005],51.7207,[false,false]],
["Land_Sleeping_bag_brown_F",[8.27441,0.609375,0.00414658],98.0314,[false,false]],
["Land_Sleeping_bag_brown_F",[8.27344,2.76758,0.00447083],91.7928,[false,false]],
["Land_Sleeping_bag_brown_F",[7.9082,4.95898,-0.00173759],85.1176,[false,false]],
["Land_Garbage_square3_F",[-4.95508,8.24023,0.00018692],60.0024,[false,false]],
["Land_Camping_Light_F",[8.92773,3.80273,-0.000205994],344.236,[false,false]],
["Land_Sleeping_bag_brown_F",[7.32129,7.55859,-0.0051899],60.1216,[false,false]],
["Land_TentDome_F",[-9.75488,3.13477,0.00125313],146.574,[false,false]],
["Land_WoodPile_F",[-0.322266,9.97266,-0.000553131],35.0017,[false,false]],
["Land_Razorwire_F",[-0.0185547,-9.84961,0.0752335],1.7831,[false,false]],
["Land_CampingChair_V1_folded_F",[3.8584,9.59375,0],60,[false,false]],
["Land_TentDome_F",[-8.76855,7.85156,-0.00471497],207.522,[false,false]],
["Land_BagFence_Round_F",[8.99707,-8.01367,-0.00951576],326.002,[false,false]],
["Land_BagFence_Round_F",[-10.8164,-6.33594,-0.0038681],59.9991,[false,false]],
["Land_TentDome_F",[-7.12207,11.8398,-0.00328445],231.101,[false,false]],
["Land_CampingTable_small_F",[-4.62598,13.2754,7.62939e-005],344.243,[false,false]],
["Land_Camping_Light_F",[-4.5957,13.332,0.687943],344.243,[false,false]],
["Land_Razorwire_F",[15.5459,0.605469,0.145557],102.505,[false,false]],
["Land_BagFence_Round_F",[7.16211,13.8516,0.000429153],221.639,[false,false]],
["Land_Razorwire_F",[15.9678,8.35938,0.0635166],85.7459,[false,false]],
["Land_Razorwire_F",[-19.1553,-1.61328,-0.0238552],70.0997,[false,false]],
["Land_Razorwire_F",[-12.3906,-15.4492,0.0128002],19.2641,[false,false]],
["Land_Razorwire_F",[-19.4629,5.67969,0.0492821],102.505,[false,false]],
["Land_BagFence_Round_F",[-11.2891,17.6777,-0.00759888],128.563,[false,false]],
["Land_Razorwire_F",[15.2949,-14.3027,0.0502853],139.224,[false,false]],
["Land_Razorwire_F",[15.2852,16.2656,-0.0208111],85.1363,[false,false]],
["Land_Razorwire_F",[4.80273,21.8223,-0.0563145],49.2133,[false,false]],
["Land_Razorwire_F",[-17.7891,13.4863,-0.0646877],102.5,[false,false]],
["Land_Razorwire_F",[-14.7109,20.2871,0.0674477],306.189,[false,false]],
["Land_BagFence_Round_F",[25.3975,-6.08008,0.00466537],272.26,[false,false]],
["Land_Wreck_Truck_F",[26.6289,12.2441,0.00333214],344.243,[false,false]],
["Land_GarbageBags_F",[-24.9463,17.3066,0.000968933],60.0003,[false,false]],
["Land_BagFence_Round_F",[11.167,28.832,-0.00405121],178.394,[false,false]],
["Land_BagFence_Round_F",[-6.36914,30.6953,-0.000207901],178.378,[false,false]],
["Land_Wreck_Hunter_F",[21.0391,25.9707,0.0118179],325.412,[false,false]],
["Land_Camping_Light_F",[-33.7852,10.0371,0.000759125],344.235,[false,false]],
["Land_BagFence_Round_F",[-34.3232,10.1035,0.00181007],60.0012,[false,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.

View File

@ -26,14 +26,14 @@ _markerColor = "ColorRed";
_markerMissionName = "Resupply Camp";
_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise"
_missionLandscape = [
["Land_Cargo_Patrol_V1_F",[-29.41016,0.13477,-0.0224228],359.992,1,0,[],"","",true,false],
["Land_Cargo_House_V1_F",[29.2988,-0.1,0.150505],54.9965,0,0.848867,[],"","",true,false],
["CamoNet_INDP_big_F",[-20.4346,15.43164,-0.00395203],54.9965,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-20.4346,15.43164,-0.0138168],119.996,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[-20.3604,-15.6035,-0.0130463],44.9901,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[18.4453,-15.791,0.00744629],305.003,1,0,[],"","",true,false],
["Land_BagBunker_Small_F",[18.3711,15.5703,0.0101624],254.999,1,0,[],"","",true,false],
["CamoNet_INDP_big_F",[18.3711,15.5703,-0.00395203],54.9965,1,0,[],"","",true,false]
["Land_Cargo_Patrol_V1_F",[-29.41016,0.13477,-0.0224228],359.992,[true,true]],
["Land_Cargo_House_V1_F",[29.2988,-0.1,0.150505],54.9965,[true,true]],
["CamoNet_INDP_big_F",[-20.4346,15.43164,-0.00395203],54.9965,[false,false]],
["Land_BagBunker_Small_F",[-20.4346,15.43164,-0.0138168],119.996,[false,false]],
["Land_BagBunker_Small_F",[-20.3604,-15.6035,-0.0130463],44.9901,[false,false]],
["Land_BagBunker_Small_F",[18.4453,-15.791,0.00744629],305.003,[false,false]],
["Land_BagBunker_Small_F",[18.3711,15.5703,0.0101624],254.999,[false,false]],
["CamoNet_INDP_big_F",[18.3711,15.5703,-0.00395203],54.9965,[false,false]]
]; // list of objects to spawn as landscape
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.

View File

@ -1,6 +1,6 @@
private ["_version","_versionDate"];
blck_version = "6.79 Build 116";
blck_version = "6.80 Build 117";
_blck_version = blck_version;
_blck_versionDate = "2-25-18 7:00 PM";
_blck_versionDate = "3-3-18 7:00 PM";
blck_pvs_version = _blck_version;
publicVariable blck_pvs_version;

View File

@ -8,6 +8,12 @@ Ideas or code from that by Vampire and KiloSwiss have been used for certain func
Significant Changes:
=====================
Version 1.80 Build 117
Added: you can now determine whether objects spawned at dynamic missions have simulation or damage enabled.
See the medicalCamp.sqf mission for an example of how this is done.
Added: you can now spawn simple objects as part of your mission landscape. Useful for STATIC missions only.
Changed: Default missions reworked to support the above.
Version 1.79, Build 116
Added: Map-specific information for Lythium.
Added: New configuration setting: blck_showCountAliveAI = true; When = true, the number of alive AI at a mission will be displayed by the mission marker.
@ -16,7 +22,7 @@ Added: You can now define the types of patrol vehicles spawned based on AI diffi
Fixed: Setting blck_useTimeAcceleration = false; now disables the time acceleration module.
Fixed: several issues with dynamic UMS missions.
Fixed: AI Heli's at missions should now be released to players when all AI are dead.
fixed: script errors when dynamic simulation off.
Fixed: script errors when dynamic simulation off.
Changed: Code for checking the state of AI vehicles and releasing them to players was re-written.
Changed: Eliminated useless files from the debug folder (mission.pbo).