From a39a7273468e4cecbcf69acebc040b1912ae83b4 Mon Sep 17 00:00:00 2001 From: Chris Cardozo Date: Tue, 20 Nov 2018 23:35:30 -0500 Subject: [PATCH] small updates --- .../Compiles/Functions/GMS_fnc_mainThread.sqf | 22 +-- .../Groups/GMS_fnc_blckSimulationMonitor.sqf | 38 ++++ .../Groups/GMS_fnc_cleanEmptyGroups.sqf | 24 ++- .../Groups/GMS_fnc_groupWaypointMonitor.sqf | 126 ++++++++++++++ .../Groups/GMS_fnc_missionGroupMonitor.sqf | 162 +----------------- .../Missions/GMS_fnc_spawnRandomLandscape.sqf | 4 +- .../Compiles/Units/GMS_fnc_rewardKiller.sqf | 54 +----- .../Vehicles/GMS_fnc_HandleAIVehicleHit.sqf | 4 - .../Vehicles/GMS_fnc_deleteAIVehicle.sqf | 20 +-- .../GMS_fnc_destroyVehicleAndCrew.sqf | 6 +- .../Vehicles/GMS_fnc_processAIVehicleKill.sqf | 5 - .../GMS_fnc_releaseVehicleToPlayers.sqf | 7 +- .../Vehicles/GMS_fnc_vehicleMonitor.sqf | 2 +- .../custom_server/Compiles/blck_functions.sqf | 6 +- .../custom_server/Compiles/blck_variables.sqf | 11 +- .../custom_server/Configs/blck_configs.sqf | 23 +-- .../Configs/blck_configs_epoch_mil.sqf | 2 +- .../Configs/blck_configs_exile.sqf | 2 - .../Configs/blck_configs_exile_mil.sqf | 1 - .../Configs/blck_configs_mil.sqf | 17 +- .../custom_server/Configs/blck_defines.hpp | 4 +- .../Configs/blck_dynamicConfigs.sqf | 8 +- .../custom_server/init/blck_init_server.sqf | 20 ++- 23 files changed, 246 insertions(+), 322 deletions(-) create mode 100644 @GMS/addons/custom_server/Compiles/Groups/GMS_fnc_blckSimulationMonitor.sqf create mode 100644 @GMS/addons/custom_server/Compiles/Groups/GMS_fnc_groupWaypointMonitor.sqf diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf index 46d1e1c..ce9de82 100644 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf @@ -33,7 +33,8 @@ while {true} do if (diag_tickTime > _timer5sec) then { _timer5sec = diag_tickTime + 5; - [] call blck_fnc_missionGroupMonitor; + //[] call blck_fnc_missionGroupMonitor; + if (blck_simulationManager == blck_useBlckeaglsSimulationManagement) then {call blck_fnc_blckSimulationManager}; [] call blck_fnc_sm_missionPatrolMonitor; }; if (diag_tickTime > _timer20sec) then @@ -42,25 +43,18 @@ while {true} do [] call blck_fnc_cleanupObjects; [] call blck_fnc_cleanupDeadAI; [] call blck_fnc_scanForPlayersNearVehicles; - [] call blck_fnc_cleanEmptyGroups; + //[] call blck_fnc_cleanEmptyGroups; _timer20sec = diag_tickTime + 20; }; if ((diag_tickTime > _timer1min)) then { _timer1min = diag_tickTime + 60; [] call blck_fnc_spawnPendingMissions; - if (blck_dynamicUMS_MissionsRuning < blck_numberUnderwaterDynamicMissions) then - { - [] spawn blck_fnc_addDyanamicUMS_Mission; - }; - if (blck_useHC) then - { - [] call blck_fnc_HC_passToHCs; - }; - if (blck_useTimeAcceleration) then - { - [] call blck_fnc_timeAcceleration; - }; + [] call blck_fnc_cleanEmptyGroups; + [] call bck_fnc_groupWaypointMonitor; + if (blck_dynamicUMS_MissionsRuning < blck_numberUnderwaterDynamicMissions) then {[] spawn blck_fnc_addDyanamicUMS_Mission}; + if (blck_useHC) then {[] call blck_fnc_HC_passToHCs}; + if (blck_useTimeAcceleration) then {[] call blck_fnc_timeAcceleration}; #ifdef blck_debugMode //diag_log format["_fnc_mainThread: active SQFscripts include: %1",diag_activeSQFScripts]; diag_log format["_fnc_mainThread: active scripts include: %1",diag_activeScripts]; diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_blckSimulationMonitor.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_blckSimulationMonitor.sqf new file mode 100644 index 0000000..7934ffe --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_blckSimulationMonitor.sqf @@ -0,0 +1,38 @@ +/* + Managages simulation using blckeagls logic + By Ghostrider-GRG- + + -------------------------- + License + -------------------------- + All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. + + http://creativecommons.org/licenses/by-nc-sa/4.0/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +private["_playerType","_players"]; + +switch (toLower(blck_modType)) do +{ + case "exile": {_playerType = ["Exile_Unit_Player"]}; + case "epoch": {_playerType = ["Epoch_Male_F","Epoch_Female_F"]}; +}; +{ + private _players = (leader _x) nearEntities [_playerType, blck_simulationEnabledDistance]; + if (count _players > 0) then + { + private _group = _x; + if (blck_revealMode isEqualTo "detailed") then + { + { + _x enableSimulationGlobal true; + (_players select 0) reveal _x; // Force simulation on + }forEach (units _group); + } else { + _x enableSimulationGlobal true; + (_players select 0) reveal _x; // Force simulation on + }; + }else{ + {_x enableSimulationGlobal false}forEach (units _x); + }; +} forEach blck_monitoredMissionAIGroups; diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_cleanEmptyGroups.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_cleanEmptyGroups.sqf index c2691c6..f93068c 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_cleanEmptyGroups.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_cleanEmptyGroups.sqf @@ -1,4 +1,5 @@ /* + removes empty or null groups from blck_monitoredMissionAIGroups By Ghostrider [GRG] -------------------------- License @@ -9,19 +10,14 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -#ifdef blck_debugMode -if (blck_debugLevel > 2) then +for "_i" from 0 to ((count blck_monitoredMissionAIGroups) - 1) do { - diag_log format ["_fnc_cleanEmptyGroups:: -- >> group count = %1 ",(count allGroups)]; - diag_log format ["_fnc_cleanEmptyGroups:: -- >> Group count AI side = %1", call blck_fnc_groupsOnAISide]; -}; -#endif + if (_i >= (count blck_monitoredMissionAIGroups)) exitWith {}; + _grp = blck_monitoredMissionAIGroups deleteat 0; + + //if (!(_grp isEqualTo grpNull) then + //{ + if ({alive _x} count units _grp > 0) then { blck_monitoredMissionAIGroups pushBack _grp}; + //}; +}; -private _grp = allGroups; -{ - //diag_log format["_fnc_cleanEmptyGroups:: - >> type of object _x = %1",typeName _x]; - if ((count units _x) isEqualTo 0) then {deleteGroup _x}; -}forEach _grp; -#ifdef blck_debugMode -if (blck_debugLevel > 2) then {diag_log "_fnc_cleanEmptyGroups:: -- >> exiting function";}; -#endif diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_groupWaypointMonitor.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_groupWaypointMonitor.sqf new file mode 100644 index 0000000..6bbad33 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_groupWaypointMonitor.sqf @@ -0,0 +1,126 @@ + +/* + Checks for groups that have not reached their waypoints within a proscribed period + and redirects them. + + for ghostridergaming + By Ghostrider [GRG] + Copyright 2016 + -------------------------- + 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"; + +_fn_waypointComplete = { + private _group = _this select 0; + private _wp = currentWaypoint _group; + private _done = if (currentWaypoint _group) > (count (waypoints _group)) then {true} else {false}; + _done +}; + +_fn_aliveGroupUnits = { + private _group = _this select 0; + private _units = {alive _x} count (units _group); + _units +}; +{ + private["_timeStamp","_index","_unit","_soldierType"]; + // check for error conditions + if ( !(_x isEqualTo grpNull) && ([_x] call _fn_aliveGroupUnits > 0) ) then + { + /* + #define blck_turnBackRadiusInfantry 800 + #define blck_turnBackRadiusVehicles 1000 + #define blck_turnBackRadiusHelis 1000 + #define blck_turnBackRadiusJets 1500 + */ + diag_log format["_fn_monitorGroupWaypoints - radii: on foot %1 | vehicle %2 | heli %3 | jet %4",blck_turnBackRadiusInfantry,blck_turnBackRadiusVehicles,blck_turnBackRadiusHelis,blck_turnBackRadiusJets]; + _timeStamp = _x getVariable ["timeStamp",0]; + if (_timeStamp isEqualTo 0) then { + _x setVariable["timeStamp",diag_tickTime]; + //diag_log format["_fn_monitorGroupWaypoints::--> updating timestamp for group %1 at time %2",_x,diag_tickTime]; + }; + _soldierType = _x getVariable["soldierType","null"]; + //diag_log format["_fn_monitorGroupWaypoints::--> soldierType for group %1 = %2 and timeStamp = %3",_x,_soldierType,_timeStamp]; + private _maxtime = 0; + switch (soldierType) do + { + case "infantry": {_maxtime = 60}; + case "vehicle": {_maxtime = 90}; + case "aircraft": {_maxtime = 90}; + }; + _private _updateNeeded = if (diag_tickTime > (_x getVariable "timeStamp") + 60) then + { + + } + if (_soldierType isEqualTo "infantry") then + { + if (diag_tickTime > (_x getVariable "timeStamp") + 60) then + { + _units = [_x] call _fn_aliveGroupUnits; + if (count _units > 0) then + { + private _leader = leader _x; + (_leader) call blck_fnc_changeToMoveWaypoint; + #ifdef blck_debugMode + if (blck_debugLevel > 2) then {diag_log format["_fnc_missionGroupMonitor: infantry group %1 stuck, waypoint reset",_x];}; + #endif + /* + if ( (getPos _leader) distance2d (_group getVariable "patrolCenter") > 200) then + { + + }; + */ + }; + + }; + }; + if (_soldierType isEqualTo "vehicle") then + { + if (diag_tickTime > (_x getVariable "timeStamp") + 60) then + { + _units = [_x] call _fn_aliveGroupUnits; + if (count _units > 0) then + { + private _leader = leader _x; + (_leader) call blck_fnc_changeToMoveWaypoint; + //#ifdef blck_debugMode + if (true /*blck_debugLevel > 2*/) then {diag_log format["_fnc_missionGroupMonitor: vehicle group %1 stuck, waypoint reset",_x];}; + //#endif + /* + if ( (getPos _leader) distance2d (_group getVariable "patrolCenter") > 200) then + { + }; + */ + }; + + }; + }; + /* + if (_soldierType isEqualTo "helicopter") then + { + if ((diag_tickTime > (_x getVariable "timeStamp")) then + { + private _units = [_x] call _fn_aliveGroupUnits; + if (count _units > 0) then + { + private _leader = leader _x; + if (_leader distance (_group getVariable "patrolCenter") > blck_turnBackRadiusHelis) then + { + _leader call blck_fnc_changeToMoveWaypoint; + //#ifdef blck_debugMode + if (true ) then {diag_log format["_fnc_missionGroupMonitor: helicopter group %1 stuck, waypoint reset",_x];}; + //#endif + //diag_log format["_fnc_missionGroupMonitor: helicopter group %1 stuck, waypoint reset",_x]; + }; + }; + + }; + }; + */ +} forEach blck_monitoredMissionAIGroups; + diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_missionGroupMonitor.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_missionGroupMonitor.sqf index 35d171a..fa467f5 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_missionGroupMonitor.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_missionGroupMonitor.sqf @@ -6,8 +6,7 @@ It uses a timestamp attached to the group that is cleared upon waypoint completion. By Ghostrider-GRG- - Last modified 3/14/17 - + -------------------------- License -------------------------- @@ -19,167 +18,14 @@ #ifdef blck_debugMode diag_log format["_fnc_missionGroupMonitor (4/29:4:09 PM)::-->> running function at diag_tickTime = %1 with blck_fnc_missionGroupMonitor = %2",diag_tickTime,blck_monitoredMissionAIGroups]; -//diag_log format["_fnc_missionGroupMonitor:: blck_debugMode defined"]; #endif -_fn_allPlayers = { - private ["_players"]; - _players = []; - { - if (isPlayer _x) then {_players pushback _x}; - }forEach playableUnits; - //diag_log format["_fn_allPlayers::-->> result s %1",_players]; - _players -}; -//////////////// -// local functions -//////////////// - - -_fn_removeEmptyOrNullGroups = { - //diag_log format["_fn_removeEmptyOrNullGroups::-->> excuting function at %1",diag_tickTime]; - // Remove any null groups (which will occur if all units in the group are dead) or groups with no alive AI. - for "_i" from 0 to ((count blck_monitoredMissionAIGroups) - 1) do - { - private["_grp"]; - if (_i >= (count blck_monitoredMissionAIGroups)) exitWith {}; - _grp = blck_monitoredMissionAIGroups select _i; - if (_grp isEqualTo grpNull) then { - blck_monitoredMissionAIGroups set[_i, -1]; - blck_monitoredMissionAIGroups = blck_monitoredMissionAIGroups - [-1]; - //diag_log "_fnc_waypointMonitor::-->> deleting a NULL-GROUP"; - }; - if ({alive _x} count units _grp < 1) then { - blck_monitoredMissionAIGroups = blck_monitoredMissionAIGroups - [_grp]; - //diag_log "_fnc_waypointMonitor::-->> deleting an empty group"; - }; - }; -}; - -_fn_centerGroup = { - -}; - -_fn_monitorGroupWaypoints = { - { - private["_timeStamp","_index","_unit","_soldierType"]; - /* - #define blck_turnBackRadiusInfantry 800 - #define blck_turnBackRadiusVehicles 1000 - #define blck_turnBackRadiusHelis 1000 - #define blck_turnBackRadiusJets 1500 - */ - diag_log format["_fn_monitorGroupWaypoints - radii: on foot %1 | vehicle %2 | heli %3 | jet %4",blck_turnBackRadiusInfantry,blck_turnBackRadiusVehicles,blck_turnBackRadiusHelis,blck_turnBackRadiusJets]; - _timeStamp = _x getVariable ["timeStamp",0]; - if (_timeStamp isEqualTo 0) then { - _x setVariable["timeStamp",diag_tickTime]; - //diag_log format["_fn_monitorGroupWaypoints::--> updating timestamp for group %1 at time %2",_x,diag_tickTime]; - }; - _soldierType = _x getVariable["soldierType","null"]; - //diag_log format["_fn_monitorGroupWaypoints::--> soldierType for group %1 = %2 and timeStamp = %3",_x,_soldierType,_timeStamp]; - - if (_soldierType isEqualTo "infantry") then - { - if (diag_tickTime > (_x getVariable "timeStamp") + 60) then - { - _units = [_x] call _fn_aliveGroupUnits; - if (count _units > 0) then - { - private _leader = leader _x; - (_leader) call blck_fnc_changeToMoveWaypoint; - #ifdef blck_debugMode - if (blck_debugLevel > 2) then {diag_log format["_fnc_missionGroupMonitor: infantry group %1 stuck, waypoint reset",_x];}; - #endif - /* - if ( (getPos _leader) distance2d (_group getVariable "patrolCenter") > 200) then - { - - }; - */ - }; - - }; - }; - if (_soldierType isEqualTo "vehicle") then - { - if (diag_tickTime > (_x getVariable "timeStamp") + 60) then - { - _units = [_x] call _fn_aliveGroupUnits; - if (count _units > 0) then - { - private _leader = leader _x; - (_leader) call blck_fnc_changeToMoveWaypoint; - //#ifdef blck_debugMode - if (true /*blck_debugLevel > 2*/) then {diag_log format["_fnc_missionGroupMonitor: vehicle group %1 stuck, waypoint reset",_x];}; - //#endif - /* - if ( (getPos _leader) distance2d (_group getVariable "patrolCenter") > 200) then - { - }; - */ - }; - - }; - }; - /* - if (_soldierType isEqualTo "helicopter") then - { - if ((diag_tickTime > (_x getVariable "timeStamp")) then - { - private _units = [_x] call _fn_aliveGroupUnits; - if (count _units > 0) then - { - private _leader = leader _x; - if (_leader distance (_group getVariable "patrolCenter") > blck_turnBackRadiusHelis) then - { - _leader call blck_fnc_changeToMoveWaypoint; - //#ifdef blck_debugMode - if (true ) then {diag_log format["_fnc_missionGroupMonitor: helicopter group %1 stuck, waypoint reset",_x];}; - //#endif - //diag_log format["_fnc_missionGroupMonitor: helicopter group %1 stuck, waypoint reset",_x]; - }; - }; - - }; - }; - */ - } forEach blck_monitoredMissionAIGroups; -}; - -_fn_simulationMonitor = { - private["_playerType","_players"]; - - if (blck_modType isEqualTo "Exile") then - { - _playerType = ["Exile_Unit_Player"]; - }else{ - _playerType = ["Epoch_Male_F","Epoch_Female_F"]; - }; - { - private _players = (leader _x) nearEntities [_playerType, blck_simulationEnabledDistance]; - if (count _players > 0) then - { - private _group = _x; - { - { - _x enableSimulationGlobal true; - (_players select 0) reveal _x; // Force simulation on - }forEach (units _group); - }; - }else{ - {_x enableSimulationGlobal false}forEach (units _x); - }; - } forEach blck_monitoredMissionAIGroups; -}; -//////// -// Start of main function -//////// #ifdef blck_debugMode if (blck_debugLevel > 2) then {diag_log format["_fnc_missionGroupMonitor: executing function at %1",diag_tickTime];}; #endif -[] call _fn_removeEmptyOrNullGroups; +[] call blck_fnc_cleanEmptyGroups; uiSleep 0.1; -//[] call _fn_monitorGroupWaypoints; +//[] call bck_fnc_groupWaypointMonitor; -if (blck_simulationManager == blck_useBlckeaglsSimulationManagement) then {[] call _fn_simulationMonitor}; +if (blck_simulationManager == blck_useBlckeaglsSimulationManagement) then {call blck_fnc_blckSimulationManager}; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnRandomLandscape.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnRandomLandscape.sqf index d0d906e..3b81704 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnRandomLandscape.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnRandomLandscape.sqf @@ -27,8 +27,8 @@ _objects pushBack _wreck; { //Random Position Objects based on distance in array // https://community.bistudio.com/wiki/BIS_fnc_findSafePos - private _posX = ((_coords select 0) + ((random(_objectSpawnRange) + minObjectSpawnRadius) * (selectRandom[1,-1])); - private _posY = ((_coords select 1) + ((random(_objectSpawnRange) + minObjectSpawnRadius) * (selectRandom[1,-1])); + private _posX = ((_coords select 0) + ((random(_objectSpawnRange) + minObjectSpawnRadius) * (selectRandom[1,-1]))); + private _posY = ((_coords select 1) + ((random(_objectSpawnRange) + minObjectSpawnRadius) * (selectRandom[1,-1]))); _pos = [_coords,_min,_max,_nearest,0,5,0] call BIS_fnc_findSafePos; _wreck = createVehicle[_x, _pos, [], 2]; //diag_log format["_fnc_spawnRandomLandscape: _x = %1 | _wreck = %2",_x,_wreck]; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_rewardKiller.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_rewardKiller.sqf index 778bfc0..bb9f714 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_rewardKiller.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_rewardKiller.sqf @@ -14,24 +14,15 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; params["_unit","_killer"]; -//diag_log format["rewardKiller:: _unit = %1 and _killer %2",_unit,_killer]; - private["_reward","_maxReward","_dist","_killstreakReward","_distanceBonus","_newKillerScore","_newKillerFrags","_money"]; - -//diag_log format["[blckeagls] rewardKiller:: - _modType = %1",_modType]; -//if (_modType isEqualTo "Epoch") exitWith {}; // Have players pull crypto from AI bodies now that this feature is available. - -if (blck_modType isEqualTo "Epoch") then +if (toLower(blck_modType) isEqualTo "Epoch") then { - //diag_log "calculating reward for Epoch"; - if ( (vehicle _killer) in blck_forbidenVehicles || (currentWeapon _killer) in blck_forbidenVehicleGuns ) then { _reward = 0; } else { - // Give the player money for killing an AI _maxReward = 50; _dist = _unit distance _killer; _reward = 0; @@ -42,7 +33,6 @@ if (blck_modType isEqualTo "Epoch") then if (_dist > 800) then { _reward = _maxReward - (_maxReward / 4); _reward }; private _killstreakReward=+(_kills*2); - //diag_log format["fnd_rewardKiller:: _bonus returned will be %1",_reward]; if (blck_addAIMoney) then { [_killer,_reward + _killstreakReward] call blck_fnc_giveTakeCrypto; @@ -54,44 +44,22 @@ if (blck_modType isEqualTo "Epoch") then }; }; -/* -_player setVariable ["ExileHunger", _data select 4]; -_player setVariable ["ExileThirst", _data select 5]; -_player setVariable ["ExileAlcohol", _data select 6]; -_player setVariable ["ExileTemperature", _data select 44]; -_player setVariable ["ExileWetness", _data select 45]; -*/ - -if (blck_modType isEqualTo "Exile") then +if (toLower(blck_modType) isEqualTo "Exile") then { private["_distanceBonus","_overallRespectChange","_newKillerScore","_newKillerFrags","_maxReward","_money","_message"]; - /* - // Temporary fix for the Loss of Respect Bug. - diag_log format["GMS_fnc_rewardKiller.sqf:: _killer name = %2 | ExileScore = %1 | Kills %3",_killer getVariable [ "ExileScore", 0 ], name _killer, _killer getVariable["ExileKills",0]]; - diag_log format["GMS_fnc_rewardKiller.sqf:: _killer = %1 | vehicle _killer = %2 | objectParent _killer %3",_killer, vehicle _killer, objectParent _killer]; - diag_log format["GMS_fnc_rewardKiller.sqf:: _killer is gunner = %1 | killer is driver = %2",_killer isEqualTo gunner objectParent _killer,_killer isEqualTo driver objectParent _killer]; - diag_log format["GMS_fnc_rewardKiller.sqf:: _killer ExileOwnerUID = %1 ",_killer getVariable["ExileOwnerUID",0]]; // ExileOwnerUID - diag_log format["GMS_fnc_rewardKiller.sqf:: _killer ExileHunger = %1 ",_killer getVariable["ExileHunger",0]]; // ExileOwnerUID - diag_log format["GMS_fnc_rewardKiller.sqf:: _killer ExileThirst = %1 ",_killer getVariable["ExileThirst",0]]; // ExileOwnerUID - diag_log format["GMS_fnc_rewardKiller.sqf:: _killer ExileAlcohol = %1 ",_killer getVariable["ExileAlcohol",0]]; // ExileOwnerUID - diag_log format["GMS_fnc_rewardKiller.sqf:: _killer ExileWetness = %1 ",_killer getVariable["ExileWetness",0]]; // ExileOwnerUID - */ if ( (isPlayer _killer) && (_killer getVariable["ExileHunger",0] > 0) && (_killer getVariable["ExileThirst",0] > 0) ) then { _distanceBonus = floor((_unit distance _killer)/100); _killstreakBonus = 3 * (_killer getVariable["blck_kills",0]); _respectGained = 25 + _distanceBonus + _killstreakBonus; _score = _killer getVariable ["ExileScore", 0]; - //diag_log format["GMS_fnc_rewardKiller.sqf:: ExileScore = %1",_killer getVariable ["ExileScore", 0]]; _score = _score + (_respectGained); - //diag_log format["GMS_fnc_rewardKiller.sqf:: _new = %1",_score]; _killer setVariable ["ExileScore", _score]; format["setAccountScore:%1:%2", _score,getPlayerUID _killer] call ExileServer_system_database_query_fireAndForget; _newKillerFrags = _killer getVariable ["ExileKills", 0]; _newKillerFrags = _newKillerFrags + 1; _killer setVariable ["ExileKills", _newKillerFrags]; format["addAccountKill:%1", getPlayerUID _killer] call ExileServer_system_database_query_fireAndForget; - //_message = ["showFragRequest",_respectGained]; _killer call ExileServer_object_player_sendStatsUpdate; if (blck_useKillScoreMessage) then { @@ -99,21 +67,3 @@ if (blck_modType isEqualTo "Exile") then }; }; }; - - -/* - if (_overallRespectChange > 0) then { - _score = _killer getVariable ["ExileScore", 0]; - _score = _score + _overallRespectChange; - _killer setVariable ["ExileScore", _score]; - format["setAccountScore:%1:%2", _score,_killerPlayerUID] call ExileServer_system_database_query_fireAndForget; - [_killer, "showFragRequest", [_killerRespectPoints]] call A3XAI_sendExileMessage; - }; - - //["systemChatRequest", [_killMessage]] call ExileServer_system_network_send_broadcast; //To-do: Non-global version - _newKillerFrags = _killer getVariable ["ExileKills", 0]; - _killer setVariable ["ExileKills", _newKillerFrags + 1]; - format["addAccountKill:%1", _killerPlayerUID] call ExileServer_system_database_query_fireAndForget; - - _killer call ExileServer_object_player_sendStatsUpdate; -}; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_HandleAIVehicleHit.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_HandleAIVehicleHit.sqf index 4eac6dc..ec8c725 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_HandleAIVehicleHit.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_HandleAIVehicleHit.sqf @@ -23,15 +23,11 @@ if (blck_debugLevel > 1) then }; #endif -//if (!(alive _veh)) exitWith {}; if (!(isPlayer _instigator)) exitWith {}; _crew = crew _veh; _group = group (_crew select 0); -// Tell the vehicle crew something about the player who caused the damage [_crew select 0,_instigator] call blck_fnc_alertGroupUnits; -// Tell nearby vehicles something about the player who caused the damage [_instigator] call blck_fnc_alertNearbyVehicles; -// Ask for help from the nearest group of infantry, especially if they have launchers _nearestGroup = [getPos _veh] call blck_fnc_findNearestInfantryGroup; [(units _nearestGroup) select 0,_instigator] call blck_fnc_alertGroupUnits; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_deleteAIVehicle.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_deleteAIVehicle.sqf index c6d97d7..36aef30 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_deleteAIVehicle.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_deleteAIVehicle.sqf @@ -11,13 +11,13 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; - params["_veh"]; - //diag_log format["blck_fnc_deleteAIvehicle: _veh %1 deleted",_veh]; - { - _veh removeAllEventHandlers _x; - }forEach ["Hit","HitPart","GetIn","GetOut","Fired","FiredNear","HandleDamage","Reloaded"]; - { - _veh removeAllMPEventHandlers _x; - }forEach ["MPHit","MPKilled"]; - blck_monitoredVehicles = blck_monitoredVehicles - [_veh]; - deleteVehicle _veh; +params["_veh"]; +//diag_log format["blck_fnc_deleteAIvehicle: _veh %1 deleted",_veh]; +{ + _veh removeAllEventHandlers _x; +}forEach ["Hit","HitPart","GetIn","GetOut","Fired","FiredNear","HandleDamage","Reloaded"]; +{ + _veh removeAllMPEventHandlers _x; +}forEach ["MPHit","MPKilled"]; +blck_monitoredVehicles = blck_monitoredVehicles - [_veh]; +deleteVehicle _veh; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_destroyVehicleAndCrew.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_destroyVehicleAndCrew.sqf index 6594767..c69d706 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_destroyVehicleAndCrew.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_destroyVehicleAndCrew.sqf @@ -11,6 +11,6 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; - params["_veh"]; - {[_x] call blck_fnc_deleteAI;} forEach (crew _veh); - [_veh] call blck_fnc_deleteAIvehicle; +params["_veh"]; +{[_x] call blck_fnc_deleteAI;} forEach (crew _veh); +[_veh] call blck_fnc_deleteAIvehicle; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_processAIVehicleKill.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_processAIVehicleKill.sqf index 82bbda4..a336c23 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_processAIVehicleKill.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_processAIVehicleKill.sqf @@ -31,21 +31,16 @@ if (blck_debugLevel > 1) then }; #endif -//if (!(alive _veh)) exitWith {}; if (!(isPlayer _instigator)) exitWith {}; _crew = crew _veh; if !(count _crew == 0) then { _group = group (_crew select 0); - // Tell the vehicle crew something about the player who caused the damage }; -// Tell nearby vehicles something about the player who caused the damage [_instigator] call blck_fnc_alertNearbyVehicles; -// Ask for help from the nearest group of infantry, especially if they have launchers _nearestGroup = [getPos _veh] call blck_fnc_findNearestGroup; [(units _nearestGroup) select 0,_instigator] call blck_fnc_alertGroupUnits; - _group setBehaviour "COMBAT"; _wp = [_group, currentWaypoint _group]; _wp setWaypointBehaviour "COMBAT"; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_releaseVehicleToPlayers.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_releaseVehicleToPlayers.sqf index bed3ea3..582afd3 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_releaseVehicleToPlayers.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_releaseVehicleToPlayers.sqf @@ -10,6 +10,7 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ +// Needs optimization for headless clients #include "\q\addons\custom_server\Configs\blck_defines.hpp"; params["_veh"]; @@ -30,8 +31,7 @@ diag_log format["_fnc_releaseVehicleToPlayersl: locked state of vehicle %1 = ^%2",_veh, locked _veh]; //if ((_veh locked) isEqualTo "UNLOCKED" || (diag_tickTime - _timeIn) > 5) then {_locked = false}; }; - // {player setAmmo [primaryWeapon player, 1];} remoteExec ["bis_fnc_call", 0]; - //{[_veh setVehicleLock "UNLOCKED"];} remoteExec ["BIS_fnc_call",(owner _veh)]; + { _veh removealleventhandlers _x; } forEach ["GetIn","GetOut","fired","hit","hitpart","reloaded","dammaged","HandleDamage"]; @@ -46,5 +46,4 @@ { diag_log format["_fnc_vehicleMonitor:: case of patrol vehicle released to players where vehicle = %1",_veh]; }; - #endif -//diag_log format["_fnc_vehicleMonitor:: case of patrol vehicle released to players where vehicle = %1",_veh]; \ No newline at end of file + #endif \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehicleMonitor.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehicleMonitor.sqf index be77337..8980975 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehicleMonitor.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehicleMonitor.sqf @@ -18,7 +18,7 @@ _vehList = +blck_monitoredVehicles; if (blck_debugLevel > 2) then {diag_log format["_fnc_vehicleMonitor:: function called at %1 with _vehList %2 and blck_monitoredVehicles %3",diag_tickTime,_vehList,blck_monitoredVehicles];}; #endif //diag_log format["_fnc_vehicleMonitor:: function called at %1 with _vehList %2 ",diag_tickTime,_vehList,blck_monitoredVehicles]; - +// Needs debugging for HC operation. { /* Determine state of vehicle diff --git a/@GMS/addons/custom_server/Compiles/blck_functions.sqf b/@GMS/addons/custom_server/Compiles/blck_functions.sqf index 6c45af0..78c76c8 100644 --- a/@GMS/addons/custom_server/Compiles/blck_functions.sqf +++ b/@GMS/addons/custom_server/Compiles/blck_functions.sqf @@ -39,7 +39,7 @@ private _functions = [ ["blck_fnc_spawnMissionEmplacedRelative","\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnMissionEmplacedRelative.sqf"], ["blck_fnc_spawnMissionLootBoxesRelative","\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnMissionLootBoxesRelative.sqf"], ["blck_fnc_spawnSingleObject","\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnSingleObject.sqf"], - ["blck_fnc_emptyObjectInventory","\q\addons\custom_server\Compiles\Functions\GMS_fnc_emptyObjectInventory.sqf"], + //["blck_fnc_emptyObjectInventory","\q\addons\custom_server\Compiles\Functions\GMS_fnc_emptyObjectInventory.sqf"], ["blck_fnc_spawnMissionLandscapeRelative","\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnMissionLandscapeRelative.sqf"], ["blck_fnc_nearestPlayers","\q\addons\custom_server\Compiles\Functions\GMS_fnc_nearestPlayers.sqf"], @@ -99,7 +99,9 @@ private _functions = [ ["blck_fnc_cleanEmptyGroups","\q\addons\custom_server\Compiles\Groups\GMS_fnc_cleanEmptyGroups.sqf"], // GMS_fnc_cleanEmptyGroups ["blck_fnc_findNearestInfantryGroup","\q\addons\custom_server\Compiles\Groups\GMS_fnc_findNearestInfantryGroup.sqf"], ["blck_fnc_create_AI_Group","\q\addons\custom_server\Compiles\Groups\GMS_fnc_create_AI_Group.sqf"], // create a group for which other functions spawn AI. - + ["blck_fnc_blckSimulationManager","\q\addons\custom_server\Compiles\Groups\GMS_fnc_blckSimulationMonitor.sqf"], + ["bck_fnc_groupWaypointMonitor","\q\addons\custom_server\Compiles\Groups\GMS_fnc_groupWaypointMonitor.sqf"], + // Functions specific to vehicles, whether wheeled, aircraft or static ["blck_fnc_spawnVehicle","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_spawnVehicle.sqf"], ["blck_fnc_spawnVehiclePatrol","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_spawnVehiclePatrol.sqf"], diff --git a/@GMS/addons/custom_server/Compiles/blck_variables.sqf b/@GMS/addons/custom_server/Compiles/blck_variables.sqf index ac57890..3a7a168 100644 --- a/@GMS/addons/custom_server/Compiles/blck_variables.sqf +++ b/@GMS/addons/custom_server/Compiles/blck_variables.sqf @@ -12,7 +12,7 @@ */ #include"\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log "[blckeagls] loading variables"; +diag_log "[blckeagls] loading variables"; blck_minFPS = 8; @@ -40,16 +40,9 @@ blck_activeMissions = []; blck_deadAI = []; blck_connectedHCs = []; blck_missionMarkers = []; - -if (blck_simulationManager == 2) then -{ - "Group" setDynamicSimulationDistance 1800; - enableDynamicSimulationSystem true; -}; - blck_heliCrashSites = []; blck_mainThreadUpdateInterval = 60; blck_revealMode = "detailed"; //""basic" /*group or vehicle level reveals*/,detailed /*unit by unit reveals*/"; -//diag_log "[blckeagls] Variables Loaded"; +diag_log "[blckeagls] Variables Loaded"; diff --git a/@GMS/addons/custom_server/Configs/blck_configs.sqf b/@GMS/addons/custom_server/Configs/blck_configs.sqf index e5b6db4..3e6db71 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs.sqf @@ -17,11 +17,10 @@ changing any of these variables may break the mission systemChat */ blck_locationBlackList = []; // Do not touch ... - blck_debugON = true; // Do not touch ... - blck_debugLevel = 3; // Do not touch ... + blck_debugON = false; // Do not touch ... + blck_debugLevel = 0; // Do not touch ... #ifdef blck_milServer - execVM "\q\addons\custom_server\Configs\blck_configs_mil.sqf"; - if (true) exitWith {}; + if (true) exitWith {execVM "\q\addons\custom_server\Configs\blck_configs_mil.sqf";}; #endif //diag_log "[blckeagls] Loading configurations for Non-militarized servers: blck_configs.sqf"; @@ -432,30 +431,20 @@ blck_maxMoneyBlue = 10; #endif - private["_modType"]; - _modType = [] call blck_fnc_getModType; - if (_modType isEqualTo "Epoch") then + if (toLower(blck_modType) isEqualTo "epoch") then { diag_log format["[blckeagls] Loading Mission System using Parameters for %1",_modType]; execVM "\q\addons\custom_server\Configs\blck_configs_epoch.sqf"; - waitUntil {(isNil "blck_configsEpochLoaded") isEqualTo false;}; - waitUntil{blck_configsEpochLoaded}; - blck_configsEpochLoaded = nil; }; - if (_modType isEqualTo "Exile") then + if (toLower(blck_modType) isEqualTo "exile") then { diag_log format["[blckeagls] Loading Mission System using Parameters for %1",_modType]; execVM "\q\addons\custom_server\Configs\blck_configs_exile.sqf"; - waitUntil {(isNil "blck_configsExileLoaded") isEqualTo false;}; - waitUntil{blck_configsExileLoaded}; }; if (blck_useConfigsGeneratedLoadouts) then { diag_log format["[blckeagles] Dynamic Configs Enabled"]; execVM "\q\addons\custom_server\Configs\blck_dynamicConfigs.sqf"; - //waitUntil {(isNil "blck_configsExileLoaded") isEqualTo false;}; - //waitUntil{blck_dynamicConfigsLoaded}; - //blck_dynamicConfigsLoaded = nil; }; - uisleep 3; + blck_configsLoaded = true; diff --git a/@GMS/addons/custom_server/Configs/blck_configs_epoch_mil.sqf b/@GMS/addons/custom_server/Configs/blck_configs_epoch_mil.sqf index 9002f51..b2abc31 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_epoch_mil.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_epoch_mil.sqf @@ -995,4 +995,4 @@ for examples of how you can do this see \Major\Compositions.sqf blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. diag_log "[blckeagls] Configurations for Epoch Loaded"; - blck_configsEpochLoaded = true; + diff --git a/@GMS/addons/custom_server/Configs/blck_configs_exile.sqf b/@GMS/addons/custom_server/Configs/blck_configs_exile.sqf index 6283616..4fa6433 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_exile.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_exile.sqf @@ -1152,5 +1152,3 @@ blck_highPoweredLoot = [ blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. diag_log format["[blckeagls] Configurations for Exile Loaded"]; - - blck_configsExileLoaded = true; diff --git a/@GMS/addons/custom_server/Configs/blck_configs_exile_mil.sqf b/@GMS/addons/custom_server/Configs/blck_configs_exile_mil.sqf index 80d5520..ac66b67 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_exile_mil.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_exile_mil.sqf @@ -1166,4 +1166,3 @@ blck_highPoweredLoot = [ diag_log format["[blckeagls] Configurations for Exile Loaded"]; - blck_configsExileLoaded = true; diff --git a/@GMS/addons/custom_server/Configs/blck_configs_mil.sqf b/@GMS/addons/custom_server/Configs/blck_configs_mil.sqf index dd114cd..1b67fe0 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_mil.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_mil.sqf @@ -426,11 +426,9 @@ blck_maxMoneyBlue = 10; #endif - private["_modType"]; - _modType = [] call blck_fnc_getModType; - if (_modType isEqualTo "Epoch") then + if (toLower(blck_modType) isEqualTo "epoch") then { - diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",_modType]; + diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",blck_modType]; execVM "\q\addons\custom_server\Configs\blck_configs_epoch_mil.sqf"; waitUntil {(isNil "blck_configsEpochLoaded") isEqualTo false;}; waitUntil{blck_configsEpochLoaded}; @@ -438,21 +436,16 @@ //diag_log "[blckeagls] Running getTraderCitiesEpoch to get location of trader cities"; //execVM "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getTraderCitesEpoch.sqf"; }; - if (_modType isEqualTo "Exile") then + if (toLower(blck_modType) isEqualTo "exile") then { - diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",_modType]; + diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",blck_modType]; execVM "\q\addons\custom_server\Configs\blck_configs_exile_mil.sqf"; - waitUntil {(isNil "blck_configsExileLoaded") isEqualTo false;}; - waitUntil{blck_configsExileLoaded}; - blck_configsExileLoaded = nil; //if (blck_blacklistTraderCities || blck_blacklistSpawns || blck_listConcreteMixerZones) then {execVM "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getTraderCitesExile.sqf";}; }; if (blck_useConfigsGeneratedLoadouts) then { diag_log format["[blckeagles] Dynamic Configs Enabled"]; execVM "\q\addons\custom_server\Configs\blck_dynamicConfigs.sqf"; - waitUntil {(isNil "blck_configsExileLoaded") isEqualTo false;}; - waitUntil{blck_dynamicConfigsLoaded}; - blck_dynamicConfigsLoaded = nil; }; + blck_configsLoaded = true; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Configs/blck_defines.hpp b/@GMS/addons/custom_server/Configs/blck_defines.hpp index 3e7d592..25b8433 100644 --- a/@GMS/addons/custom_server/Configs/blck_defines.hpp +++ b/@GMS/addons/custom_server/Configs/blck_defines.hpp @@ -12,8 +12,8 @@ */ -//#define useAPEX -//#define blck_milServer +#define useAPEX +#define blck_milServer //#define blck_useCUP //#define blck_useRHS diff --git a/@GMS/addons/custom_server/Configs/blck_dynamicConfigs.sqf b/@GMS/addons/custom_server/Configs/blck_dynamicConfigs.sqf index eefa601..c75c9ae 100644 --- a/@GMS/addons/custom_server/Configs/blck_dynamicConfigs.sqf +++ b/@GMS/addons/custom_server/Configs/blck_dynamicConfigs.sqf @@ -95,15 +95,15 @@ _baseClasses = []; _classnameList = []; diag_log format["blck_modType = %1",blck_modType]; -if (blck_modType isEqualTo "Epoch") then +if (toLower(blck_modType) isEqualTo "epoch") then { _classnameList = (missionConfigFile >> "CfgPricing" ) call BIS_fnc_getCfgSubClasses; }; -if (blck_modType isEqualTo "Exile") then +if (toLower(blck_modType) isEqualTo "exile") then { _classnameList = (missionConfigFile >> "CfgExileArsenal" ) call BIS_fnc_getCfgSubClasses; }; -//diag_log format["_fnc_dynamicConfigsConfigurator: count _classnameList = %1",count _classnameList]; +diag_log format["_fnc_dynamicConfigsConfigurator: count _classnameList = %1",count _classnameList]; { private _temp = [_x] call bis_fnc_itemType; //diag_log _temp; @@ -218,3 +218,5 @@ blck_backpacks_green = blck_backpacks; blck_backpacks_orange = blck_backpacks; blck_explosives = _wpnThrow; + +diag_log format["Compilation of dynamic AI Loadouts complete at %1",diag_tickTime]; \ No newline at end of file diff --git a/@GMS/addons/custom_server/init/blck_init_server.sqf b/@GMS/addons/custom_server/init/blck_init_server.sqf index 37f96d5..1e9c53d 100644 --- a/@GMS/addons/custom_server/init/blck_init_server.sqf +++ b/@GMS/addons/custom_server/init/blck_init_server.sqf @@ -14,24 +14,28 @@ if !(isNil "blck_Initialized") exitWith{}; // find and set Mod blck_modType = if (!isNull (configFile >> "CfgPatches" >> "exile_server")) then {"Exile"} else {if (!isnull (configFile >> "CfgPatches" >> "a3_epoch_server")) then {"Epoch"} else {""}}; publicVariable "blck_modType"; -/* + if ((tolower blck_modType) isEqualto "epoch") then { diag_log "[blckeagls] Waiting until EpochMod is ready..."; waituntil {!isnil "EPOCH_SERVER_READY"}; }; -*/ +if ((toLower blck_modType) isEqualTo "exile") then +{ + diag_log "[blckeagls] Waiting until ExileMod is ready ..."; + waitUntil {!isNil "PublicServerIsLoaded"}; +}; #include "\q\addons\custom_server\Configs\blck_defines.hpp"; - private _blck_loadingStartTime = diag_tickTime; #include "\q\addons\custom_server\init\build.sqf"; -diag_log format["[blckeagls] Loading Server Mission System Version %2 Build Date %1",_blck_versionDate,_blck_version]; +diag_log format["[blckeagls] Loading Server Mission System Version"]; // compile functions call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf"; diag_log format["[blckeagls] functions compiled in %1 seconds",diag_tickTime-_blck_loadingStartTime]; call compile preprocessfilelinenumbers "\q\addons\custom_server\Configs\blck_configs.sqf"; +uiSleep 10; diag_log format["[blckeagls] blck_useHC = %1 | blck_simulationManager = %2 ",blck_useHC,blck_simulationManager]; diag_log format["[blckeagls] debug mode settings:blck_debugON = %1 blck_debugLevel = %2",blck_debugON,blck_debugLevel]; @@ -39,9 +43,13 @@ diag_log format["[blckeagls] debug mode settings:blck_debugON = %1 blck_debugLev call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf"; diag_log format["[blckeagls] configurations loaded at %1",diag_tickTime]; - call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf"; -diag_log format["[blckeagls] blck_variables loaded at %1",diag_tickTime]; + +if (blck_simulationManager == 2) then +{ + "Group" setDynamicSimulationDistance 1800; + enableDynamicSimulationSystem true; +}; // spawn map addons to give the server time to position them before spawning in crates etc. if (blck_spawnMapAddons) then