Compare commits
36 Commits
Developmen
...
Experiment
Author | SHA1 | Date | |
---|---|---|---|
3581aa9a1c | |||
6cc3cef49d | |||
0842796307 | |||
6a8bb9e476 | |||
4d56107e15 | |||
dc82f9a362 | |||
1e6d4aeabe | |||
498e7e06e1 | |||
ccb6b17d10 | |||
66ae8eb113 | |||
99621912f6 | |||
d6b433d2e3 | |||
7c88d1fead | |||
644925cbb8 | |||
2447c309c0 | |||
eb683730b5 | |||
6b3a295a2a | |||
bf9aeb4bc8 | |||
3e2f5ed99b | |||
844be883f7 | |||
b37c9eb77e | |||
b1864ec337 | |||
18bd169a76 | |||
4cd5fbe141 | |||
c86375c4d4 | |||
507530f5a1 | |||
bbbd73a18e | |||
a1a39799e4 | |||
d2d0325498 | |||
242d1ab23c | |||
bb119d2808 | |||
3e06a0d2fd | |||
ca4ec19ddf | |||
9d061e7e40 | |||
7afa108cba | |||
0e4198f05b |
@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||||
|
// Need to debug for GM map
|
||||||
private ["_coords","_coordArray","_return"];
|
private ["_coords","_coordArray","_return"];
|
||||||
params["_missionCategoryDescriptors","_missionParameters","_missionCount"];
|
params["_missionCategoryDescriptors","_missionParameters","_missionCount"];
|
||||||
_missionCategoryDescriptors params [
|
_missionCategoryDescriptors params [
|
||||||
|
@ -34,6 +34,9 @@ _fn_doUpdates = {
|
|||||||
{
|
{
|
||||||
[["showScore",[_reward,"",_kills],""],[_player]] call blck_fnc_messageplayers;
|
[["showScore",[_reward,"",_kills],""],[_player]] call blck_fnc_messageplayers;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// SUggestion to update Epoch player stats from He-Man
|
||||||
|
[_killer, "AIKills", 1, true] call EPOCH_server_updatePlayerStats;
|
||||||
};
|
};
|
||||||
if (toLower(blck_modType) isEqualTo "exile") then
|
if (toLower(blck_modType) isEqualTo "exile") then
|
||||||
{
|
{
|
||||||
|
@ -15,6 +15,15 @@
|
|||||||
|
|
||||||
params["_unit","_killer","_instigator"];
|
params["_unit","_killer","_instigator"];
|
||||||
|
|
||||||
|
// the blck_graveyardGroup is always owned by the server.
|
||||||
|
// which makes some cleanup easier
|
||||||
|
[_unit] joinSilent blck_graveyardGroup;
|
||||||
|
|
||||||
|
if (count(units (group _unit)) isEqualTo 0) then
|
||||||
|
{
|
||||||
|
deleteGroup _group;
|
||||||
|
};
|
||||||
|
|
||||||
if (local _unit) then
|
if (local _unit) then
|
||||||
{
|
{
|
||||||
if !((vehicle _unit) isKindOf "Man") then
|
if !((vehicle _unit) isKindOf "Man") then
|
||||||
@ -35,12 +44,7 @@ _unit disableAI "ALL";
|
|||||||
{
|
{
|
||||||
_unit removeAllEventHandlers _x;
|
_unit removeAllEventHandlers _x;
|
||||||
}forEach["FiredNear","Reloaded"];
|
}forEach["FiredNear","Reloaded"];
|
||||||
[_unit] joinSilent blck_graveyardGroup;
|
|
||||||
|
|
||||||
if (count(units (group _unit)) isEqualTo 0) then
|
|
||||||
{
|
|
||||||
deleteGroup _group;
|
|
||||||
};
|
|
||||||
|
|
||||||
if !((vehicle _unit) isKindOf "Man") then
|
if !((vehicle _unit) isKindOf "Man") then
|
||||||
{
|
{
|
||||||
|
@ -11,21 +11,27 @@
|
|||||||
*/
|
*/
|
||||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||||
|
|
||||||
private["_launcher","_launcherRounds"];
|
|
||||||
params["_unit"]; // = _this select 0;
|
params["_unit"]; // = _this select 0;
|
||||||
_launcher = _unit getVariable ["Launcher",""];
|
private _loadout = _unit getVariable["launcher",[[],[]]];
|
||||||
_unit removeWeapon _Launcher;
|
//diag_log format["_removeLaunchers: _loadout = %1",_loadout];
|
||||||
if (_launcher != "") then
|
private _mags = magazines _unit;
|
||||||
|
//diag_log format["_removeLaunchers: _mags = %1",_mags];
|
||||||
{
|
{
|
||||||
_unit removeWeapon _Launcher;
|
if (_forEachIndex > 0) then
|
||||||
{
|
{
|
||||||
if (_launcher in weaponCargo _x) exitWith {
|
//diag_log format["_removeLaunchers: _x = %1",_x];
|
||||||
deleteVehicle _x;
|
_unit removeMagazines _x;
|
||||||
};
|
};
|
||||||
} forEach ((getPosATL _unit) nearObjects ["WeaponHolderSimulated",10]);
|
} forEach (_loadout select 1);
|
||||||
_launcherRounds = getArray (configFile >> "CfgWeapons" >> _Launcher >> "magazines"); //0;
|
|
||||||
{
|
|
||||||
if(_x in _launcherRounds) then {_unit removeMagazine _x;};
|
|
||||||
} count magazines _unit;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
private _launcher = _loadout select 0;
|
||||||
|
if !(_launcher isEqualTo []) then
|
||||||
|
{
|
||||||
|
if (_launcher in (weapons _unit)) then {
|
||||||
|
_unit removeWeapon _launcher;
|
||||||
|
} else {
|
||||||
|
{
|
||||||
|
if (_launcher in (weaponCargo _x)) exitWith {deleteVehicle _x};
|
||||||
|
} forEach (_unit nearObjects ["WeaponHolderSimulated",10]);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||||
|
|
||||||
private ["_i","_weap","_unit","_skillLevel","_aiSkills","_launcherRound","_index","_ammoChoices","_optics","_pointers","_muzzles","_underbarrel","_legalOptics"];
|
private ["_i","_weap","_unit","_skillLevel","_aiSkills","_launcherRound","_index","_ammoChoices","_optics","_pointers","_muzzles","_underbarrel","_legalOptics"];
|
||||||
params["_pos","_aiGroup",["_skillLevel","red"],["_uniforms", []],["_headGear",[]],["_vests",[]],["_backpacks",[]],["_Launcher","none"],["_weaponList",[]],["_sideArms",[]],["_scuba",false],["_garrison",false]];
|
params["_pos","_aiGroup",["_skillLevel","red"],["_uniforms", []],["_headGear",[]],["_vests",[]],["_backpacks",[]],["_launcher","none"],["_weaponList",[]],["_sideArms",[]],["_scuba",false],["_garrison",false]];
|
||||||
|
|
||||||
if (_weaponList isEqualTo []) then {_weaponList = [_skillLevel] call blck_fnc_selectAILoadout};
|
if (_weaponList isEqualTo []) then {_weaponList = [_skillLevel] call blck_fnc_selectAILoadout};
|
||||||
if (_sideArms isEqualTo []) then {_sideArms = [_skillLevel] call blck_fnc_selectAISidearms};
|
if (_sideArms isEqualTo []) then {_sideArms = [_skillLevel] call blck_fnc_selectAISidearms};
|
||||||
@ -70,6 +70,8 @@ _unit allowDammage true;
|
|||||||
_unit setBehaviour "COMBAT";
|
_unit setBehaviour "COMBAT";
|
||||||
_unit setunitpos "AUTO";
|
_unit setunitpos "AUTO";
|
||||||
|
|
||||||
|
/*
|
||||||
|
//
|
||||||
if (surfaceIsWater (getPos _unit)) then
|
if (surfaceIsWater (getPos _unit)) then
|
||||||
{
|
{
|
||||||
_uniforms = blck_UMS_uniforms;
|
_uniforms = blck_UMS_uniforms;
|
||||||
@ -77,6 +79,7 @@ if (surfaceIsWater (getPos _unit)) then
|
|||||||
_weaponList = blck_UMS_weapons;
|
_weaponList = blck_UMS_weapons;
|
||||||
_vests = blck_UMS_vests;
|
_vests = blck_UMS_vests;
|
||||||
};
|
};
|
||||||
|
*/
|
||||||
_unit forceAddUniform (selectRandom _uniforms);
|
_unit forceAddUniform (selectRandom _uniforms);
|
||||||
if !(_headGear isEqualTo []) then
|
if !(_headGear isEqualTo []) then
|
||||||
{
|
{
|
||||||
@ -92,17 +95,11 @@ _weap = selectRandom _weaponList;
|
|||||||
_unit addWeaponGlobal _weap;
|
_unit addWeaponGlobal _weap;
|
||||||
_ammoChoices = getArray (configFile >> "CfgWeapons" >> _weap >> "magazines");
|
_ammoChoices = getArray (configFile >> "CfgWeapons" >> _weap >> "magazines");
|
||||||
_unit addMagazines[selectRandom _ammochoices,3];
|
_unit addMagazines[selectRandom _ammochoices,3];
|
||||||
/*
|
|
||||||
_optics = getArray (configfile >> "CfgWeapons" >> _weap >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems");
|
|
||||||
_pointers = getArray (configFile >> "CfgWeapons" >> _weap >> "WeaponSlotsInfo" >> "PointerSlot" >> "compatibleItems");
|
|
||||||
_muzzles = getArray (configFile >> "CfgWeapons" >> _weap >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems");
|
|
||||||
_underbarrel = getArray (configFile >> "CfgWeapons" >> _weap >> "WeaponSlotsInfo" >> "UnderBarrelSlot" >> "compatibleItems");
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (random 1 < 0.4) then {_unit addPrimaryWeaponItem (selectRandom ([_weap, 101] call BIS_fnc_compatibleItems))}; // muzzles
|
if (random 1 < blck_chanceMuzzle) then {_unit addPrimaryWeaponItem (selectRandom ([_weap, 101] call BIS_fnc_compatibleItems))}; // muzzles
|
||||||
if (random 1 < 0.4) then {_unit addPrimaryWeaponItem (selectRandom ([_weap, 201] call BIS_fnc_compatibleItems))}; // optics
|
if (random 1 < blck_chanceOptics) then {_unit addPrimaryWeaponItem (selectRandom ([_weap, 201] call BIS_fnc_compatibleItems))}; // optics
|
||||||
if (random 1 < 0.4) then {_unit addPrimaryWeaponItem (selectRandom ([_weap, 301] call BIS_fnc_compatibleItems))}; // pointers
|
if (random 1 < blck_chancePointer) then {_unit addPrimaryWeaponItem (selectRandom ([_weap, 301] call BIS_fnc_compatibleItems))}; // pointers
|
||||||
if (random 1 < 0.4) then {_unit addPrimaryWeaponItem (selectRandom ([_weap, 302] call BIS_fnc_compatibleItems))}; // underbarrel
|
if (random 1 < blck_chanceUnderbarrel) then {_unit addPrimaryWeaponItem (selectRandom ([_weap, 302] call BIS_fnc_compatibleItems))}; // underbarrel
|
||||||
if ((count(getArray (configFile >> "cfgWeapons" >> _weap >> "muzzles"))) > 1) then
|
if ((count(getArray (configFile >> "cfgWeapons" >> _weap >> "muzzles"))) > 1) then
|
||||||
{
|
{
|
||||||
_unit addMagazine "1Rnd_HE_Grenade_shell";
|
_unit addMagazine "1Rnd_HE_Grenade_shell";
|
||||||
@ -126,23 +123,6 @@ if (round(random 10) <= 5) then
|
|||||||
_unit addItem selectRandom blck_specialItems;
|
_unit addItem selectRandom blck_specialItems;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
if ( !(_Launcher isEqualTo "none") && !(_backpacks isEqualTo [])) then
|
|
||||||
{
|
|
||||||
_unit addWeaponGlobal _Launcher;
|
|
||||||
_unit addBackpack (selectRandom _backpacks);
|
|
||||||
for "_i" from 1 to 3 do
|
|
||||||
{
|
|
||||||
_unit addItemToBackpack (getArray (configFile >> "CfgWeapons" >> _Launcher >> "magazines") select 0); // call BIS_fnc_selectRandom;
|
|
||||||
};
|
|
||||||
_unit setVariable["Launcher",_launcher,true];
|
|
||||||
} else {
|
|
||||||
if ( random (1) < blck_chanceBackpack && !(_backpacks isEqualTo [])) then
|
|
||||||
{
|
|
||||||
_unit addBackpack selectRandom _backpacks;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
if !(_backpacks isEqualTo []) then
|
if !(_backpacks isEqualTo []) then
|
||||||
{
|
{
|
||||||
if (_Launcher isEqualTo "none") then
|
if (_Launcher isEqualTo "none") then
|
||||||
@ -152,14 +132,17 @@ if !(_backpacks isEqualTo []) then
|
|||||||
_unit addBackpack selectRandom _backpacks;
|
_unit addBackpack selectRandom _backpacks;
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
_unit addWeaponGlobal _Launcher;
|
_unit addWeaponGlobal _launcher;
|
||||||
_unit addBackpack (selectRandom _backpacks);
|
_unit addBackpack (selectRandom _backpacks);
|
||||||
|
private _roundsAdded = [];
|
||||||
private _mags = getArray (configFile >> "CfgWeapons" >> _Launcher >> "magazines");
|
private _mags = getArray (configFile >> "CfgWeapons" >> _Launcher >> "magazines");
|
||||||
for "_i" from 1 to 3 do
|
for "_i" from 1 to 3 do
|
||||||
{
|
{
|
||||||
_unit addItemToBackpack (_mags select 0); // call BIS_fnc_selectRandom;
|
private _lr = selectRandom _mags; // call BIS_fnc_selectRandom;
|
||||||
|
_roundsAdded pushBack _lr;
|
||||||
|
_unit addItemToBackpack _lr;
|
||||||
};
|
};
|
||||||
_unit setVariable["Launcher",_launcher,true];
|
_unit setVariable["Launcher",[_launcher,_roundsAdded],true];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -439,6 +439,12 @@
|
|||||||
blck_maxMoneyRed = 15;
|
blck_maxMoneyRed = 15;
|
||||||
blck_maxMoneyBlue = 10;
|
blck_maxMoneyBlue = 10;
|
||||||
|
|
||||||
|
// Define the chance of attachments
|
||||||
|
blck_chanceOptics = 0.4;
|
||||||
|
blck_chanceMuzzle = 0.3;
|
||||||
|
blck_chancePointer = 0.25;
|
||||||
|
blck_chanceUnderbarrel = 0.25;
|
||||||
|
|
||||||
#ifdef GRGserver
|
#ifdef GRGserver
|
||||||
blck_AIAlertDistance = [250,450,650,800]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed.
|
blck_AIAlertDistance = [250,450,650,800]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed.
|
||||||
//blck_AIAlertDistance = [150,225,400,500];
|
//blck_AIAlertDistance = [150,225,400,500];
|
||||||
|
@ -24,13 +24,13 @@
|
|||||||
3) A time acceleration module.
|
3) A time acceleration module.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
blck_spawnMapAddons = true; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf
|
blck_spawnMapAddons = false; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf
|
||||||
blck_spawnStaticLootCrates = true; // When true, static loot crates will be spawned and loaded with loot as specified in custom_server\SLS\SLS_init_Epoch.sqf (or its exile equivalent).
|
blck_spawnStaticLootCrates = false; // When true, static loot crates will be spawned and loaded with loot as specified in custom_server\SLS\SLS_init_Epoch.sqf (or its exile equivalent).
|
||||||
blck_simulationManager = blck_useBlckeaglsSimulationManagement;
|
blck_simulationManager = blck_useBlckeaglsSimulationManagement;
|
||||||
blck_hideRocksAndPlants = true; // When true, any rocks, trees or bushes under enterable buildings will be 'hidden'
|
blck_hideRocksAndPlants = true; // When true, any rocks, trees or bushes under enterable buildings will be 'hidden'
|
||||||
|
|
||||||
// Note that you can define map-specific variants in custom_server\configs\blck_custom_config.sqf
|
// Note that you can define map-specific variants in custom_server\configs\blck_custom_config.sqf
|
||||||
blck_useTimeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
|
blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
|
||||||
blck_timeAccelerationDay = 2; // Daytime time accelearation
|
blck_timeAccelerationDay = 2; // Daytime time accelearation
|
||||||
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
|
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
|
||||||
blck_timeAccelerationNight = 8; // Nighttim time acceleration
|
blck_timeAccelerationNight = 8; // Nighttim time acceleration
|
||||||
@ -78,7 +78,7 @@
|
|||||||
|
|
||||||
//Minimum distance between missions
|
//Minimum distance between missions
|
||||||
blck_MinDistanceFromMission = 2000;
|
blck_MinDistanceFromMission = 2000;
|
||||||
blck_minDistanceToBases = 800;
|
blck_minDistanceToBases = 500;
|
||||||
blck_minDistanceToPlayer = 500;
|
blck_minDistanceToPlayer = 500;
|
||||||
blck_minDistanceFromTowns = 300;
|
blck_minDistanceFromTowns = 300;
|
||||||
blck_minDistanceFromDMS = 500; // minimum distance for a blackeagls mission from any nearby DMS missions. set to -1 to disable this check.
|
blck_minDistanceFromDMS = 500; // minimum distance for a blackeagls mission from any nearby DMS missions. set to -1 to disable this check.
|
||||||
@ -420,7 +420,11 @@
|
|||||||
blck_maxMoneyGreen = 40;
|
blck_maxMoneyGreen = 40;
|
||||||
blck_maxMoneyRed = 30;
|
blck_maxMoneyRed = 30;
|
||||||
blck_maxMoneyBlue = 20;
|
blck_maxMoneyBlue = 20;
|
||||||
|
// Define the chance of attachments
|
||||||
|
blck_chanceOptics = 0.4;
|
||||||
|
blck_chanceMuzzle = 0.3;
|
||||||
|
blck_chancePointer = 0.25;
|
||||||
|
blck_chanceUnderbarrel = 0.25;
|
||||||
if (toLower(blck_modType) isEqualTo "epoch") then
|
if (toLower(blck_modType) isEqualTo "epoch") then
|
||||||
{
|
{
|
||||||
[format[" Loading Mission System using Parameters for %1 for militarized servers",blck_modType]] call blck_fnc_log;
|
[format[" Loading Mission System using Parameters for %1 for militarized servers",blck_modType]] call blck_fnc_log;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
#define blck_buildNumber 230 // Address issues with cleanup of objects
|
#define blck_buildNumber 233 // Address issues with cleanup of objects
|
||||||
#define blck_versionNumber 7.02
|
#define blck_versionNumber 7.04
|
||||||
#define blck_buildDate "10-5-20"
|
#define blck_buildDate "11-8-20"
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
|
|
||||||
uiSleep 5;
|
|
||||||
diag_log format["<< ---- START TEST Crate Loading ---- >>"];
|
|
||||||
_coords = [12000,12000,0];
|
|
||||||
//_loot = blck_supportLoot; //[causes problems] blck_highPoweredLoot; // [causes problems] blck_contructionLoot ; //blck_BoxLoot_Orange;
|
|
||||||
_loot = blck_BoxLoot_Orange;
|
|
||||||
_lootCounts = [100,100,100,100,100,100];
|
|
||||||
_aiDifficultyLevel = "Orange";
|
|
||||||
for "_i" from 1 to 100 do
|
|
||||||
{
|
|
||||||
diag_log format["testCrateLoading: pass %1",_i];
|
|
||||||
_crateType = selectRandom blck_crateTypes;
|
|
||||||
_crate = [_coords,_crateType] call blck_fnc_spawnCrate;
|
|
||||||
[_crate,_loot,_lootCounts] call blck_fnc_fillBoxes;
|
|
||||||
//uiSleep 0.1;
|
|
||||||
diag_log format["testCrateLoading: crate inventory = %1",getItemCargo _crate];
|
|
||||||
};
|
|
||||||
|
|
@ -1,21 +1,7 @@
|
|||||||
Variables to define
|
Features:
|
||||||
marker parameters
|
|
||||||
Marker Text
|
|
||||||
|
|
||||||
Mission start message
|
Exports static or dynamic missions preformated in .sqf code. Simply paste the output of the editor into a new .sqf file, edit entires to refine mission parameters and add the name of the mission file to GMS_missionLists.
|
||||||
Mission end message
|
Captures simple objects, sets allow dammage and allow similation according to editor settings, and captures marker configurations.
|
||||||
Mission level
|
|
||||||
|
|
||||||
To pull units:
|
|
||||||
private _units = allUnits;
|
|
||||||
|
|
||||||
|
|
||||||
To pull objects:
|
|
||||||
_center = allMissionObejcts "RoadCone_L_F";
|
|
||||||
_buildings = allMissionObjects "Building";
|
|
||||||
_things = allMissionObjects "ThingX";
|
|
||||||
_baseObjects = _buildings append _things;
|
|
||||||
|
|
||||||
_static = allMissionObejcts "StaticWeapon";
|
|
||||||
_vehicles = allMissionObejcts "Car" + allMissionObejcts "Tank" + allMissionObejcts "Ship";
|
|
||||||
_air = allMissionObejcts "Air";
|
|
||||||
|
@ -10,6 +10,13 @@ Many thanks for new Coding and ideas from Grahame.
|
|||||||
Significant Changes:
|
Significant Changes:
|
||||||
|
|
||||||
=====================
|
=====================
|
||||||
|
7.03 Build 233
|
||||||
|
|
||||||
|
New: Player stats updated for each AI kill on Epoch.
|
||||||
|
Fixed: Launchers and Launcher rounds were not being deleted.
|
||||||
|
AI at Turrets were spawned with scubba loadouts.
|
||||||
|
|
||||||
|
|
||||||
7.02 Build 230
|
7.02 Build 230
|
||||||
|
|
||||||
New: Option to hide bushes and trees that happen to be under the location in which an enterable building is spawned
|
New: Option to hide bushes and trees that happen to be under the location in which an enterable building is spawned
|
||||||
|
Reference in New Issue
Block a user