Build 164
More bug fixes and code cleanup.
This commit is contained in:
parent
abbd0b096c
commit
4c94e9e42c
@ -25,9 +25,6 @@ while {true} do
|
||||
if (diag_tickTime > _timer1sec) then
|
||||
{
|
||||
[] call blck_fnc_vehicleMonitor;
|
||||
#ifdef GRGserver
|
||||
[] call blck_fnc_broadcastServerFPS;
|
||||
#endif
|
||||
_timer1sec = diag_tickTime + 1;
|
||||
};
|
||||
if (diag_tickTime > _timer5sec) then
|
||||
|
@ -14,7 +14,7 @@
|
||||
params["_coords","_missionLandscape",["_min",3],["_max",15],["_nearest",1]];
|
||||
private["_objects","_wreck","_dir","_dirOffset"];
|
||||
#define maxObjectSpawnRadius 25
|
||||
#define minObjectSpawnRadius 10
|
||||
#define minObjectSpawnRadius 15
|
||||
private _objectSpawnRange = maxObjectSpawnRadius - minObjectSpawnRadius;
|
||||
|
||||
_objects = [];
|
||||
@ -25,21 +25,15 @@ _wreck enableSimulationGlobal false;
|
||||
_wreck enableDynamicSimulation false;
|
||||
_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])));
|
||||
_pos = [_coords,_min,_max,_nearest,0,5,0] call BIS_fnc_findSafePos;
|
||||
_wreck = createVehicle[_x, _pos, [], 2];
|
||||
private _dir = random(360);
|
||||
private _radius = minObjectSpawnRadius + random(maxObjectSpawnRadius);
|
||||
_wreck = createVehicle[_x, _coords getPos[_radius,_dir], [], 2];
|
||||
//diag_log format["_fnc_spawnRandomLandscape: _x = %1 | _wreck = %2",_x,_wreck];
|
||||
_wreck allowDamage true;
|
||||
_wreck enableSimulation false;
|
||||
_wreck enableSimulationGlobal false;
|
||||
_wreck enableDynamicSimulation false;
|
||||
_dirOffset = random(30) * ([1,-1] call BIS_fnc_selectRandom);
|
||||
_dir = _dirOffset +([_wreck,_coords] call BIS_fnc_dirTo);
|
||||
_wreck setDir _dir;
|
||||
//_wreck setDir (_wreck relativeDir _coords);
|
||||
_wreck setDir (_wreck getRelDir _coords);
|
||||
_objects pushback _wreck;
|
||||
sleep 0.1;
|
||||
} forEach _missionLandscape;
|
||||
|
@ -65,10 +65,10 @@ if (blck_useKillMessages) then
|
||||
_message = format["[blck] %1 killed with %2 from %3 meters",name _killer,getText(configFile >> "CfgWeapons" >> _weapon >> "DisplayName"), round(_unit distance _killer)];
|
||||
};
|
||||
_message =_message + _killstreakMsg;
|
||||
//diag_log format["[blck] unit killed message is %1",_message,""];
|
||||
diag_log format["[blck] unit killed message is %1",_message,""];
|
||||
[["aikilled",_message,"victory"],allPlayers] call blck_fnc_messageplayers;
|
||||
};
|
||||
|
||||
//diag_log format["calling blck_fnc_rewardKiller for death of unit %1 and killer %2",_unit,_killer];
|
||||
[_unit,_killer] call blck_fnc_rewardKiller;
|
||||
if (blck_showCountAliveAI) then
|
||||
{
|
||||
@ -77,6 +77,5 @@ if (blck_showCountAliveAI) then
|
||||
//diag_log format["_fnc_processAIKills: blck_missionMarkers itm %1 = %2",_forEachIndex,_x];
|
||||
[_x select 0, _x select 1, _x select 2] call blck_fnc_updateMarkerAliveCount;
|
||||
} forEach blck_missionMarkers;
|
||||
//call blck_fnc_updateAllMarkerAliveCounts;
|
||||
};
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
params["_unit","_killer"];
|
||||
private["_reward","_maxReward","_dist","_killstreakReward","_distanceBonus","_newKillerScore","_newKillerFrags","_money"];
|
||||
if (toLower(blck_modType) isEqualTo "Epoch") then
|
||||
if (toLower(blck_modType) isEqualTo "epoch") then
|
||||
{
|
||||
if ( (vehicle _killer) in blck_forbidenVehicles || (currentWeapon _killer) in blck_forbidenVehicleGuns ) then
|
||||
{
|
||||
@ -31,7 +31,8 @@ if (toLower(blck_modType) isEqualTo "Epoch") then
|
||||
if (_dist < 100) then { _reward = _maxReward - (_maxReward / 1.5); _reward };
|
||||
if (_dist < 800) then { _reward = _maxReward - (_maxReward / 2); _reward };
|
||||
if (_dist > 800) then { _reward = _maxReward - (_maxReward / 4); _reward };
|
||||
|
||||
//diag_log format["_fnc_rewardPlayer: _killer %1 | _dist %2 | _reward %3 ",_killer,_dist,_reward];
|
||||
//diag_log format["_fnc_rewardPlayer: blck_addAIMoney %1 | blck_useKillScoreMessage %2",blck_addAIMoney,blck_useKillScoreMessage];
|
||||
private _killstreakReward=+(_kills*2);
|
||||
if (blck_addAIMoney) then
|
||||
{
|
||||
@ -44,7 +45,7 @@ if (toLower(blck_modType) isEqualTo "Epoch") then
|
||||
};
|
||||
};
|
||||
|
||||
if (toLower(blck_modType) isEqualTo "Exile") then
|
||||
if (toLower(blck_modType) isEqualTo "exile") then
|
||||
{
|
||||
private["_distanceBonus","_overallRespectChange","_newKillerScore","_newKillerFrags","_maxReward","_money","_message"];
|
||||
if ( (isPlayer _killer) && (_killer getVariable["ExileHunger",0] > 0) && (_killer getVariable["ExileThirst",0] > 0) ) then
|
||||
|
@ -28,7 +28,7 @@
|
||||
// a bit of bandwidth seems worth ensuring that vehicles do in fact get unlocked.
|
||||
uiSleep 0.1;
|
||||
_count = _count + 1;
|
||||
diag_log format["_fnc_releaseVehicleToPlayersl: locked state of vehicle %1 = ^%2",_veh, locked _veh];
|
||||
//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};
|
||||
};
|
||||
|
||||
|
@ -21,12 +21,6 @@ if (_backpacks isEqualTo []) then {_backpacks = [_skillAI] call blck_fnc_sele
|
||||
if (_weaponList isEqualTo []) then {_weaponList = [_skillAI] call blck_fnc_selectAILoadout};
|
||||
if (_sideArms isEqualTo []) then {[_skillAI] call blck_fnc_selectAISidearms};
|
||||
|
||||
/*
|
||||
{
|
||||
diag_log format["_fnc_spawnMissionHeli: parameter %1 = %2",_foreachIndex,_x];
|
||||
}forEach [_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms];
|
||||
*/
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then
|
||||
{
|
||||
@ -44,20 +38,6 @@ if (isNull _grpPilot) then
|
||||
|
||||
if !(isNull _grpPilot) then
|
||||
{
|
||||
_grpPilot setBehaviour "COMBAT";
|
||||
_grpPilot setCombatMode "RED";
|
||||
_grpPilot setSpeedMode "NORMAL";
|
||||
_grpPilot allowFleeing 0;
|
||||
_grpPilot setVariable["patrolCenter",_coords];
|
||||
_grpPilot setVariable["minDis",15];
|
||||
_grpPilot setVariable["maxDis",30];
|
||||
_grpPilot setVariable["timeStamp",diag_tickTime];
|
||||
_grpPilot setVariable["arc",0];
|
||||
_grpPilot setVariable["wpRadius",30];
|
||||
_grpPilot setVariable["wpMode","SAD"];
|
||||
diag_log format["_fnc_spawnMissionHeli - max radii are: blue %1 | red %2 | green %3 | orange %4",blck_maxPatrolRadiusHelisBlue,blck_maxPatrolRadiusHelisRed,blck_maxPatrolRadiusHelisGreen,blck_maxPatrolRadiusHelisOrange];
|
||||
diag_log format["_fnc_spawnMissionHeli(59): _skillAI = %1 | _minDist = %2 | _maxDist = %3",_skillAI,_minDist,_maxDist];
|
||||
[_coords,_minDist,_maxDist,_grpPilot,"random","SAD","pilot"] call blck_fnc_setupWaypoints;
|
||||
switch (toLower(_skillAI)) do
|
||||
{
|
||||
case "blue": {_minDist = 150;_maxDist = blck_maxPatrolRadiusHelisBlue};
|
||||
@ -66,6 +46,21 @@ if !(isNull _grpPilot) then
|
||||
case "orange" : {_minDist = 150;_maxDist = blck_maxPatrolRadiusHelisOrange};
|
||||
default {_minDist = 150; _maxDist = 500};
|
||||
};
|
||||
_grpPilot setBehaviour "COMBAT";
|
||||
_grpPilot setCombatMode "RED";
|
||||
_grpPilot setSpeedMode "NORMAL";
|
||||
_grpPilot allowFleeing 0;
|
||||
_grpPilot setVariable["patrolCenter",_coords];
|
||||
_grpPilot setVariable["minDis",_minDist];
|
||||
_grpPilot setVariable["maxDis",_maxDist];
|
||||
_grpPilot setVariable["timeStamp",diag_tickTime];
|
||||
_grpPilot setVariable["arc",0];
|
||||
_grpPilot setVariable["wpRadius",30];
|
||||
_grpPilot setVariable["wpMode","SAD"];
|
||||
//diag_log format["_fnc_spawnMissionHeli - max radii are: blue %1 | red %2 | green %3 | orange %4",blck_maxPatrolRadiusHelisBlue,blck_maxPatrolRadiusHelisRed,blck_maxPatrolRadiusHelisGreen,blck_maxPatrolRadiusHelisOrange];
|
||||
//diag_log format["_fnc_spawnMissionHeli(59): _skillAI = %1 | _minDist = %2 | _maxDist = %3",_skillAI,_minDist,_maxDist];
|
||||
[_coords,_minDist,_maxDist,_grpPilot,"random","SAD","pilot"] call blck_fnc_setupWaypoints;
|
||||
|
||||
|
||||
blck_monitoredMissionAIGroups pushBack _grpPilot;
|
||||
//create helicopter and spawn it
|
||||
|
@ -163,11 +163,6 @@ private _functions = [
|
||||
missionnamespace setvariable [_name,compileFinal preprocessFileLineNumbers _path];
|
||||
} foreach _functions;
|
||||
|
||||
#ifdef GRGserver
|
||||
blck_fnc_broadcastServerFPS = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_broadcastServerFPS.sqf";
|
||||
diag_log "blck_functions loaded using GRGserver settings ---- >>>> ";
|
||||
#endif
|
||||
|
||||
onPlayerDisconnected {[_name,_owner] call blck_fnc_onPlayerDisconnected;};
|
||||
|
||||
|
||||
|
@ -20,10 +20,13 @@
|
||||
blck_debugON = false; // Do not touch ...
|
||||
blck_debugLevel = 0; // Do not touch ...
|
||||
#ifdef blck_milServer
|
||||
if (true) exitWith {execVM "\q\addons\custom_server\Configs\blck_configs_mil.sqf";};
|
||||
if (true) exitWith
|
||||
{
|
||||
diag_log format["[blckeagls] Running configs for militarized servers build %1",blck_buildNumber];
|
||||
execVM "\q\addons\custom_server\Configs\blck_configs_mil.sqf";
|
||||
};
|
||||
#endif
|
||||
|
||||
//diag_log "[blckeagls] Loading configurations for Non-militarized servers: blck_configs.sqf";
|
||||
diag_log format["[blckeagls] Loading configurations for Non-militarized servers build %1",blck_buildNumber];
|
||||
/*
|
||||
**************************************
|
||||
Configurations begin here
|
||||
@ -104,7 +107,7 @@
|
||||
blck_SmokeAtMissions = [false,"random"]; // set to [false,"anything here"] to disable this function altogether.
|
||||
blck_useSignalEnd = true; // When true a smoke grenade/chemlight will appear at the loot crate for 2 min after mission completion.
|
||||
blck_missionEndCondition = "allKilledOrPlayerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
blck_killPercentage = 0.999999; // The mission will complete if this fraction of the total AI spawned has been killed.
|
||||
blck_killPercentage = 0.999999999; // The mission will complete if this fraction of the total AI spawned has been killed.
|
||||
// This facilitates mission completion when one or two AI are spawned into objects.
|
||||
blck_spawnCratesTiming = "atMissionSpawnGround"; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
// Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute.
|
||||
@ -173,7 +176,7 @@
|
||||
_blck_armed_hurons = ["B_Heli_Transport_03_F","B_Heli_Transport_03_black_F"];
|
||||
_blck_armed_attackHelis = ["B_Heli_Attack_01_F"];
|
||||
_blck_armed_heavyAttackHelis = ["O_Heli_Attack_02_F","O_Heli_Attack_02_black_F"];
|
||||
_blck_fighters = [
|
||||
_blck_fighters = [
|
||||
"O_Plane_CAS_02_F", // /ti-199 Neophron (CAS)
|
||||
"I_Plane_Fighter_03_AA_F", // A-143 Buzzard (AA)
|
||||
"I_Plane_Fighter_04_F", // A-149 Gryphon
|
||||
@ -294,13 +297,13 @@
|
||||
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
|
||||
blck_SpawnEmplaced_Red = 1; // Number of static weapons at Red Missions
|
||||
|
||||
|
||||
|
||||
/****************************************************************
|
||||
|
||||
GENERAL AI SETTINGS
|
||||
|
||||
****************************************************************/
|
||||
// When true, AI loadouts will be set from the class names in CfgPricing rather than the settings in the mod-specific configuration files
|
||||
blck_useConfigsGeneratedLoadouts = true;
|
||||
|
||||
blck_groupBehavior = "SENTRY"; // Suggested choices are "SAD", "SENTRY", "AWARE" https://community.bistudio.com/wiki/ArmA:_AI_Combat_Modes
|
||||
blck_combatMode = "RED"; // Change this to "YELLOW" if the AI wander too far from missions for your tastes.
|
||||
@ -318,7 +321,7 @@
|
||||
blck_maximumPatrolRadius = 35;
|
||||
|
||||
//This defines how long after an AI dies that it's body disappears.
|
||||
blck_bodyCleanUpTimer = 60*40; // time in seconds after which dead AI bodies are deleted
|
||||
blck_bodyCleanUpTimer = 60*60; // time in seconds after which dead AI bodies are deleted
|
||||
// Each time an AI is killed, the location of the killer will be revealed to all AI within this range of the killed AI, set to -1 to disable
|
||||
// values are ordered as follows [blue, red, green, orange];
|
||||
blck_AliveAICleanUpTimer = 60*20; // Time after mission completion at which any remaining live AI are deleted.
|
||||
@ -433,17 +436,19 @@
|
||||
|
||||
if (toLower(blck_modType) isEqualTo "epoch") then
|
||||
{
|
||||
diag_log format["[blckeagls] Loading Mission System using Parameters for %1",_modType];
|
||||
diag_log format["[blckeagls] Loading Mission System using Parameters for %1",blck_modType];
|
||||
execVM "\q\addons\custom_server\Configs\blck_configs_epoch.sqf";
|
||||
};
|
||||
if (toLower(blck_modType) isEqualTo "exile") then
|
||||
{
|
||||
diag_log format["[blckeagls] Loading Mission System using Parameters for %1",_modType];
|
||||
diag_log format["[blckeagls] Loading Mission System using Parameters for %1",blck_modType];
|
||||
execVM "\q\addons\custom_server\Configs\blck_configs_exile.sqf";
|
||||
};
|
||||
waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"};
|
||||
waitUntil {!isNil "blck_maximumItemPriceInAI_Loadouts"};
|
||||
if (blck_useConfigsGeneratedLoadouts) then
|
||||
{
|
||||
diag_log format["[blckeagles] Dynamic Configs Enabled"];
|
||||
diag_log format["[blckeagls] Dynamic Configs Enabled"];
|
||||
execVM "\q\addons\custom_server\Configs\blck_dynamicConfigs.sqf";
|
||||
};
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
*/
|
||||
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
diag_log format["[blckeagls] loading configurations for Epoch for blckeagls build %1",blck_buildNumber];
|
||||
////////////
|
||||
// Epoch-specific settings
|
||||
////////////
|
||||
@ -47,8 +47,6 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
|
||||
blck_allowSalesAtBlackMktTraders = true; // Allow vehicles to be sold at Halvjes black market traders.
|
||||
|
||||
// When true, AI loadouts will be set from the class names in CfgPricing rather than the settings in the mod-specific configuration files
|
||||
blck_useConfigsGeneratedLoadouts = true;
|
||||
blck_maximumItemPriceInAI_Loadouts = 100;
|
||||
|
||||
_blck_lightlyArmed_ARMA3 = [
|
||||
@ -1100,4 +1098,4 @@ blck_supportLoot = blck_BoxLoot_Orange;
|
||||
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;
|
||||
|
||||
|
@ -15,10 +15,12 @@
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
#ifdef blck_milServer
|
||||
execVM "\q\addons\custom_server\Configs\blck_configs_exile_mil.sqf";
|
||||
if (true) exitWith {};
|
||||
if (true) exitWith
|
||||
{
|
||||
diag_log "[blckeagls] running blck_configs_exile_mil for militarized servers";
|
||||
execVM "\q\addons\custom_server\Configs\blck_configs_exile_mil.sqf";
|
||||
};
|
||||
#endif
|
||||
|
||||
diag_log "[blckeagls] Loading Exile-specific configs for Non-militarized servers: blck_configs_exile.sqf";
|
||||
////////////
|
||||
// Exile-specific settings
|
||||
@ -54,9 +56,7 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
blck_crateMoneyRed = [175, 300];
|
||||
blck_crateMoneyGreen = [300, 500];
|
||||
blck_crateMoneyOrange = [500, 750];
|
||||
|
||||
// When true, AI loadouts will be set from the class names in CfgPricing rather than the settings in the mod-specific configuration files
|
||||
blck_useConfigsGeneratedLoadouts = true;
|
||||
|
||||
blck_maximumItemPriceInAI_Loadouts = 1000;
|
||||
|
||||
_blck_armed_vehicles_Exile = [
|
||||
|
@ -47,8 +47,6 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
blck_crateMoneyGreen = [300, 500];
|
||||
blck_crateMoneyOrange = [500, 750];
|
||||
|
||||
// When true, AI loadouts will be set from the class names in CfgPricing rather than the settings in the mod-specific configuration files
|
||||
blck_useConfigsGeneratedLoadouts = true;
|
||||
blck_maximumItemPriceInAI_Loadouts = 1000;
|
||||
|
||||
_blck_armed_vehicles_Exile = [
|
||||
|
@ -11,8 +11,7 @@
|
||||
*/
|
||||
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
diag_log "[blckeagls] Loading blck_configs_mil.sqf for Militarized Servers";
|
||||
diag_log format["[blckeagls] Loading blck_configs_mil.sqf for Militarized Servers for blckeagls build %1",blck_buildNumber];
|
||||
|
||||
/***************************************************************
|
||||
BLCKEAGLS SUPPLEMENTAL MODULES
|
||||
@ -83,7 +82,7 @@
|
||||
blck_SmokeAtMissions = [false,"random"]; // set to [false,"anything here"] to disable this function altogether.
|
||||
blck_useSignalEnd = true; // When true a smoke grenade/chemlight will appear at the loot crate for 2 min after mission completion.
|
||||
blck_missionEndCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
blck_killPercentage = 0.9; // The mission will complete if this fraction of the total AI spawned has been killed.
|
||||
blck_killPercentage = 0.99999999999; // The mission will complete if this fraction of the total AI spawned has been killed.
|
||||
// This facilitates mission completion when one or two AI are spawned into objects.
|
||||
blck_spawnCratesTiming = "atMissionEndAir"; // Choices: "atMissionSpawnGround","atMissionStartAir","atMissionEndGround","atMissionEndAir".
|
||||
// Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute.
|
||||
@ -203,12 +202,8 @@
|
||||
////////////////////
|
||||
|
||||
// Maximum number of missions shown on the map at any one time.
|
||||
#ifdef GRGserver
|
||||
blck_maxSpawnedMissions = 15;
|
||||
#else
|
||||
// Change this value to reduce the number of spawned missions at any one time.
|
||||
blck_maxSpawnedMissions = 4;
|
||||
#endif
|
||||
|
||||
//Set to -1 to disable. Values of 2 or more force the mission spawner to spawn copies of that mission - this feature is not recommended because you may run out of available groups.
|
||||
blck_enableOrangeMissions = 1;
|
||||
@ -217,12 +212,6 @@
|
||||
blck_enableBlueMissions = 2;
|
||||
blck_numberUnderwaterDynamicMissions = 2; // Values from 0 (no UMS) to N (N Underwater missions will be spawned; static UMS units and subs will be spawned.
|
||||
|
||||
#ifdef GRGserver
|
||||
blck_enableHunterMissions = 1;
|
||||
blck_enableScoutsMissions = 2;
|
||||
blck_maxcrashsites = 3;
|
||||
#endif
|
||||
|
||||
////////////////////
|
||||
// MISSION TIMERS
|
||||
////////////////////
|
||||
@ -233,24 +222,13 @@
|
||||
blck_TMin_Blue = 120;
|
||||
blck_TMin_Red = 150;
|
||||
blck_TMin_UMS = 180;
|
||||
#ifdef GRGserver
|
||||
blck_TMin_Hunter = 120;
|
||||
blck_TMin_Scouts = 115;
|
||||
blck_TMin_Crashes = 115;
|
||||
|
||||
#endif
|
||||
|
||||
//Maximum Spawn time between missions in seconds
|
||||
blck_TMax_Orange = 360;
|
||||
blck_TMax_Green = 300;
|
||||
blck_TMax_Blue = 200;
|
||||
blck_TMax_Red = 250;
|
||||
blck_TMax_UMS = 200;
|
||||
#ifdef GRGserver
|
||||
blck_TMax_Hunter = 200;
|
||||
blck_TMax_Scouts = 200;
|
||||
blck_TMax_Crashes = 200;
|
||||
#endif
|
||||
|
||||
///////////////////////////////
|
||||
// AI VEHICLE PATROL PARAMETERS
|
||||
@ -290,7 +268,8 @@
|
||||
GENERAL AI SETTINGS
|
||||
|
||||
****************************************************************/
|
||||
|
||||
// When true, AI loadouts will be set from the class names in CfgPricing rather than the settings in the mod-specific configuration files
|
||||
blck_useConfigsGeneratedLoadouts = true;
|
||||
blck_groupBehavior = "SAD"; // Suggested choices are "SAD", "SENTRY", "AWARE" https://community.bistudio.com/wiki/ArmA:_AI_Combat_Modes
|
||||
blck_combatMode = "RED"; // Change this to "YELLOW" if the AI wander too far from missions for your tastes.
|
||||
blck_groupFormation = "WEDGE"; // Possibilities include "WEDGE","VEE","FILE","DIAMOND"
|
||||
@ -307,12 +286,7 @@
|
||||
blck_maximumPatrolRadius = 35;
|
||||
|
||||
//This defines how long after an AI dies that it's body disappears.
|
||||
blck_bodyCleanUpTimer = 40*60; // time in seconds after which dead AI bodies are deleted
|
||||
#ifdef GRGserver
|
||||
#ifdef blck_milServer
|
||||
blck_bodyCleanUpTimer = 40*60; // Trying to reduce lag with player counts > 20
|
||||
#endif
|
||||
#endif
|
||||
blck_bodyCleanUpTimer = 80*60; // time in seconds after which dead AI bodies are deleted
|
||||
|
||||
// Each time an AI is killed, the location of the killer will be revealed to all AI within this range of the killed AI, set to -1 to disable
|
||||
// values are ordered as follows [blue, red, green, orange];
|
||||
@ -372,79 +346,24 @@
|
||||
blck_maxMoneyRed = 30;
|
||||
blck_maxMoneyBlue = 20;
|
||||
|
||||
#ifdef GRGserver
|
||||
blck_AIAlertDistance = [250,425,650,800]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed.
|
||||
//blck_AIAlertDistance = [150,225,400,500];
|
||||
// How precisely player locations will be revealed to AI after an AI kill
|
||||
// values are ordered as follows [blue, red, green, orange];
|
||||
blck_AIIntelligence = [0.3, 0.5, 0.7, 0.9];
|
||||
|
||||
blck_baseSkill = 1; // The overal skill of the AI - range 0.1 to 1.0.
|
||||
|
||||
/***************************************************************
|
||||
|
||||
MISSION TYPE SPECIFIC AI SETTINGS
|
||||
|
||||
**************************************************************/
|
||||
//This defines the skill, minimum/Maximum number of AI and how many AI groups are spawned for each mission type
|
||||
// Orange Missions
|
||||
blck_MinAI_Orange = 30;
|
||||
blck_MaxAI_Orange = 35;
|
||||
blck_AIGrps_Orange = 5;
|
||||
blck_SkillsOrange = [
|
||||
["aimingAccuracy",0.6],["aimingShake",0.9],["aimingSpeed",0.9],["endurance",1.00],["spotDistance",1.0],["spotTime",1.0],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]
|
||||
];
|
||||
|
||||
// Green Missions
|
||||
blck_MinAI_Green = 26;
|
||||
blck_MaxAI_Green = 31;
|
||||
blck_AIGrps_Green = 4;
|
||||
blck_SkillsGreen = [
|
||||
["aimingAccuracy",0.55],["aimingShake",0.75],["aimingSpeed",0.85],["endurance",0.9],["spotDistance",0.9],["spotTime",0.9],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75]
|
||||
];
|
||||
|
||||
// Red Missions
|
||||
blck_MinAI_Red = 12;
|
||||
blck_MaxAI_Red = 18;
|
||||
blck_AIGrps_Red = 3;
|
||||
blck_SkillsRed = [
|
||||
["aimingAccuracy",0.4],["aimingShake",0.6],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.8],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70]
|
||||
];
|
||||
|
||||
// Blue Missions
|
||||
blck_MinAI_Blue = 8;
|
||||
blck_MaxAI_Blue = 14;
|
||||
blck_AIGrps_Blue = 2;
|
||||
blck_SkillsBlue = [
|
||||
["aimingAccuracy",0.12],["aimingShake",0.3],["aimingSpeed",0.5],["endurance",0.50],["spotDistance",0.6],["spotTime",0.6],["courage",0.60],["reloadSpeed",0.60],["commanding",0.7],["general",0.60]
|
||||
];
|
||||
|
||||
// Add some money to AI; only works with Exile for now.
|
||||
blck_maxMoneyOrange = 25;
|
||||
blck_maxMoneyGreen = 20;
|
||||
blck_maxMoneyRed = 15;
|
||||
blck_maxMoneyBlue = 10;
|
||||
#endif
|
||||
|
||||
if (toLower(blck_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",blck_modType];
|
||||
execVM "\q\addons\custom_server\Configs\blck_configs_epoch_mil.sqf";
|
||||
waitUntil {(isNil "blck_configsEpochLoaded") isEqualTo false;};
|
||||
waitUntil{blck_configsEpochLoaded};
|
||||
blck_configsEpochLoaded = nil;
|
||||
//diag_log "[blckeagls] Running getTraderCitiesEpoch to get location of trader cities";
|
||||
//execVM "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getTraderCitesEpoch.sqf";
|
||||
};
|
||||
if (toLower(blck_modType) isEqualTo "exile") then
|
||||
{
|
||||
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";
|
||||
//if (blck_blacklistTraderCities || blck_blacklistSpawns || blck_listConcreteMixerZones) then {execVM "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getTraderCitesExile.sqf";};
|
||||
};
|
||||
waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"}:
|
||||
waitUntil {!isNil "blck_maximumItemPriceInAI_Loadouts"}:
|
||||
if (blck_useConfigsGeneratedLoadouts) then
|
||||
{
|
||||
diag_log format["[blckeagles] Dynamic Configs Enabled"];
|
||||
diag_log format["[blckeagls] Dynamic Configs Enabled"];
|
||||
execVM "\q\addons\custom_server\Configs\blck_dynamicConfigs.sqf";
|
||||
};
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
|
||||
|
||||
#define blck_buildNumber 164
|
||||
#define useAPEX
|
||||
//#define blck_milServer
|
||||
//#define blck_useCUP
|
||||
@ -21,10 +21,7 @@
|
||||
// Do not touch anything below this line
|
||||
///////////////////////////
|
||||
|
||||
//#define useDynamicSimulation
|
||||
//#define blck_debugMode
|
||||
//#define GRG_TestServer
|
||||
//#define GRGserver
|
||||
#define blck_triggerLoopCompleteTime 40*60
|
||||
|
||||
#define onFoot 1
|
||||
|
@ -94,7 +94,7 @@ _misc = [];
|
||||
_baseClasses = [];
|
||||
|
||||
_classnameList = [];
|
||||
diag_log format["blck_modType = %1",blck_modType];
|
||||
//diag_log format["blck_modType = %1",blck_modType];
|
||||
if (toLower(blck_modType) isEqualTo "epoch") then
|
||||
{
|
||||
_classnameList = (missionConfigFile >> "CfgPricing" ) call BIS_fnc_getCfgSubClasses;
|
||||
@ -103,25 +103,23 @@ 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;
|
||||
_itemCategory = _temp select 0;
|
||||
_itemType = _temp select 1;
|
||||
_price = blck_maximumItemPriceInAI_Loadouts;
|
||||
if (blck_modType isEqualTo "Epoch") then
|
||||
if (toLower(blck_modType) isEqualTo "epoch") then
|
||||
{
|
||||
_price = getNumber(missionConfigFile >> "CfgPricing" >> _x >> "price");
|
||||
};
|
||||
if (blck_modType isEqualTo "Exile") then
|
||||
if (toLower(blck_modType) isEqualTo "exile") then
|
||||
{
|
||||
_price = getNumber(missionConfigFile >> "CfgExileArsenal" >> _x >> "price");
|
||||
};
|
||||
//diag_log format["_fnc_dynamicConfigsConfigurator: _price = %1",_price];
|
||||
if (_price < blck_maximumItemPriceInAI_Loadouts) then
|
||||
{
|
||||
//if (_itemCategory != "") then {diag_log format["_fnc_dynamicConfigsConfigurator: _itemCategory = %1 | _itemType = %2",_itemCategory,_itemType]};
|
||||
if (_itemCategory isEqualTo "Weapon") then
|
||||
{
|
||||
switch (_itemType) do
|
||||
@ -136,14 +134,11 @@ diag_log format["_fnc_dynamicConfigsConfigurator: count _classnameList = %1",cou
|
||||
case "Launcher": {if !(_x in blck_blacklistedLaunchersAndSwingWeapons) then {_wpnLauncher pushBack _x}};
|
||||
case "RocketLauncher": {if !(_x in blck_blacklistedLaunchersAndSwingWeapons) then {_wpnLauncher pushBack _x}};
|
||||
case "Throw": {if !(_x in blck_blacklistedItems) then {_wpnThrow pushBack _x}};
|
||||
//case "": {if !(_x in ) then { pushBack _x}};
|
||||
//case "": {if !(_x in ) then { pushBack _x}};
|
||||
};
|
||||
};
|
||||
|
||||
if (_itemCategory isEqualTo "Item") then
|
||||
{
|
||||
//diag_log format["Evaluating Item class name %1",_x];
|
||||
switch (_itemType) do
|
||||
{
|
||||
case "AccessoryMuzzle": {if !(_x in blck_blacklistedAttachments) then {_wpnMuzzles pushBack _x}};
|
||||
@ -153,22 +148,13 @@ diag_log format["_fnc_dynamicConfigsConfigurator: count _classnameList = %1",cou
|
||||
case "Binocular": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}};
|
||||
case "Compass": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}};
|
||||
case "GPS": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}};
|
||||
case "NVGoggles": {if !(_x in blck_blacklistedItems) then {_NVG pushBack _x}};
|
||||
//case "": {if !(_x in ) then { pushBack _x}};
|
||||
//case "": {if !(_x in ) then { pushBack _x}};
|
||||
//case "": {if !(_x in ) then { pushBack _x}};
|
||||
//case "": {if !(_x in ) then { pushBack _x}};
|
||||
//case "": {if !(_x in ) then { pushBack _x}};
|
||||
//case "": {if !(_x in ) then { pushBack _x}};
|
||||
//case "": {if !(_x in ) then { pushBack _x}};
|
||||
//case "": {if !(_x in ) then { pushBack _x}};
|
||||
case "NVGoggles": {if !(_x in blck_blacklistedItems) then {_NVG pushBack _x}};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
if (_itemCategory isEqualTo "Equipment") then
|
||||
{
|
||||
//diag_log format["Evaluating Equipment class name %1",_x];
|
||||
switch (_itemType) do
|
||||
{
|
||||
case "Glasses": {if !(_x in blck_blacklistedItems) then {_glasses pushBack _x}};
|
||||
|
@ -22,8 +22,6 @@ if ((tolower blck_modType) isEqualTo "epoch") then
|
||||
if (blck_debugON) then {diag_log format["[blckeagls] _fnc_getTraderCitiesEpoch:: -- >> Added epoch trader city location at %1", (_x select 3)];};
|
||||
#endif
|
||||
} foreach _telePos;
|
||||
diag_log format["[blckeagls] blckListPrior = %1",_blckListPrior];
|
||||
diag_log format["[blckeagls] ] blck_locationBlackList = %1",blck_locationBlackList];
|
||||
};
|
||||
|
||||
if ((tolower blck_modType) isEqualTo "exile") then
|
||||
|
@ -28,20 +28,20 @@ if ((toLower blck_modType) isEqualTo "exile") then
|
||||
|
||||
private _blck_loadingStartTime = diag_tickTime;
|
||||
#include "\q\addons\custom_server\init\build.sqf";
|
||||
diag_log format["[blckeagls] Loading Server Mission System Version"];
|
||||
diag_log format["[blckeagls] Loading Server Mission System Version",blck_buildNumber];
|
||||
|
||||
// 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;
|
||||
waitUntil{(!isNil "blck_useHC") && (!isNil "blck_simulationManager") && (!isNil "blck_debugOn")};
|
||||
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];
|
||||
|
||||
// Load any user-defined specifications or overrides
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf";
|
||||
diag_log format["[blckeagls] configurations loaded at %1",diag_tickTime];
|
||||
//diag_log format["[blckeagls] configurations loaded at %1",diag_tickTime];
|
||||
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf";
|
||||
|
||||
@ -80,37 +80,26 @@ switch (blck_simulationManager) do
|
||||
case 0: {diag_log "[blckeagls] simulation management disabled"};
|
||||
};
|
||||
|
||||
|
||||
#ifdef GRGserver
|
||||
// start the dynamic loot crate system
|
||||
compile preprocessfilelinenumbers "\q\addons\custom_server\DLS\DLS_init.sqf";
|
||||
#endif
|
||||
|
||||
diag_log format["[blckeagls] version %1 Build %2 Loaded in %3 seconds",_blck_versionDate,_blck_version,diag_tickTime - _blck_loadingStartTime]; //,blck_modType];
|
||||
diag_log format["blckeagls] waiting for players to join ---- >>>>"];
|
||||
#ifdef GRGserver
|
||||
diag_log "[blckeagls] Running GhostriderGaming Version";
|
||||
#endif
|
||||
|
||||
if !(blck_debugON || (blck_debugLevel isEqualTo 0)) then
|
||||
if ( !(blck_debugON) && (blck_debugLevel isEqualTo 0)) then
|
||||
{
|
||||
waitUntil{{isPlayer _x}count allPlayers > 0};
|
||||
diag_log "[blckeagls] Player Connected, spawning missions";
|
||||
} else {
|
||||
diag_log "[blckeagls] spawning Missions";
|
||||
diag_log "[blckeagls] Debug mode ON, proceding without players";
|
||||
};
|
||||
|
||||
if (blck_spawnStaticLootCrates) then
|
||||
{
|
||||
// Start the static loot crate spawner
|
||||
//diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner Started";
|
||||
call compile preprocessfilelinenumbers "\q\addons\custom_server\SLS\SLS_init.sqf";
|
||||
diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner Done";
|
||||
}else{
|
||||
diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner disabled";
|
||||
};
|
||||
|
||||
if (true /*blck_blacklistTraderCities*/) then
|
||||
if (blck_blacklistTraderCities) then
|
||||
{
|
||||
call compile preprocessfilelinenumbers "\q\addons\custom_server\init\GMS_fnc_getTraderCites.sqf";
|
||||
};
|
||||
@ -137,31 +126,6 @@ if (blck_enableBlueMissions > 0) then
|
||||
[_missionListBlue,_pathBlue,"BlueMarker","blue",blck_TMin_Blue,blck_TMax_Blue,blck_enableBlueMissions] call blck_fnc_addMissionToQue;
|
||||
};
|
||||
|
||||
#ifdef GRGserver
|
||||
|
||||
diag_log format["[blckeagls] _init_server: blck_enableScoutsMissions = %1",blck_enableScoutsMissions];
|
||||
if (blck_enableScoutsMissions > 0) then
|
||||
{
|
||||
//[_missionListScouts,_pathScouts,"ScoutsMarker","red",blck_TMin_Scouts,blck_TMax_Scouts] spawn blck_fnc_missionTimer;
|
||||
[_missionListScouts,_pathScouts,"ScoutsMarker","red",blck_TMin_Scouts,blck_TMax_Scouts,blck_enableScoutsMissions,false] call blck_fnc_addMissionToQue;
|
||||
};
|
||||
|
||||
diag_log format["[blckeagls] _init_server: blck_enableHunterMissions = %1",blck_enableHunterMissions];
|
||||
if (blck_enableHunterMissions > 0) then
|
||||
{
|
||||
//[_missionListHunters,_pathHunters,"HunterMarker","green",blck_TMin_Hunter,blck_TMax_Hunter] spawn blck_fnc_missionTimer;
|
||||
// params["_missionList","_path","_marker","_difficulty","_tMin","_tMax","_noMissions"];
|
||||
[_missionListHunters,_pathHunters,"HunterMarker","green",blck_TMin_Hunter,blck_TMax_Hunter,blck_enableHunterMissions,false] call blck_fnc_addMissionToQue;
|
||||
};
|
||||
|
||||
// Running new version of Crash sites.
|
||||
diag_log format["[blckeagls] _init_server: blck_maxCrashSites = %1",blck_maxCrashSites];
|
||||
if (blck_maxCrashSites > 0) then
|
||||
{
|
||||
[] execVM "\q\addons\custom_server\Missions\HeliCrashs\Crashes2.sqf";
|
||||
};
|
||||
#endif
|
||||
|
||||
// start the main thread for the mission system which monitors missions running and stuff to be cleaned up
|
||||
[] spawn blck_fnc_mainThread;
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
private ["_version","_versionDate"];
|
||||
blck_version = "6.88 Build 163";
|
||||
blck_version = format["6.88 Build %1",blck_buildNumber];
|
||||
_blck_version = blck_version;
|
||||
_blck_versionDate = "11-19-18 4:00 PM";
|
||||
_blck_versionDate = "11-21-18 4:00 PM";
|
||||
blck_pvs_version = _blck_version;
|
||||
publicVariable blck_pvs_version;
|
||||
|
Loading…
Reference in New Issue
Block a user