Added Settings, Bug Fixes
This commit is contained in:
parent
c83eebe513
commit
1581856cec
@ -1,9 +1,9 @@
|
||||
//This script sends Message Information to allplayers
|
||||
// Last modified 11/14/15 by Ghostrider-DBD-
|
||||
// Last modified 1/4/17 by Ghostrider-DBD-
|
||||
|
||||
//blck_Message = _this;
|
||||
params["_msg",["_players",playableUnits]];
|
||||
//diag_log format["AIM.sqf ===] _this = %1 | _msg = %2 | _players = %3",_this,_msg, _players];
|
||||
diag_log format["AIM.sqf ===] _this = %1 | _msg = %2 | _players = %3",_this,_msg, _players];
|
||||
blck_Message = _msg;
|
||||
{
|
||||
//diag_log format["AIM.sqf ===] _ = %2, and (owner _x) = %1", (owner _x), _x];
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
Handle AI Deaths
|
||||
Last Modified 11/20/16
|
||||
Last Modified 1/4/17
|
||||
By Ghostrider-DBD-
|
||||
Copyright 2016
|
||||
*/
|
||||
@ -33,18 +33,21 @@ if ((diag_tickTime - _lastkill) < 240) then
|
||||
_killer setVariable["blck_kills",0];
|
||||
};
|
||||
|
||||
_weapon = currentWeapon _killer;
|
||||
_killstreakMsg = format[" %1X KILLSTREAK",_kills];
|
||||
|
||||
if (blck_useKilledAIName) then
|
||||
if (blck_useKillMessages) then
|
||||
{
|
||||
_message = format["[blck] %2: killed by %1 from %3m",name _killer,name _unit,round(_unit distance _killer)];
|
||||
}else{
|
||||
_message = format["[blck] %1 killed with %2 from %3 meters",name _killer,getText(configFile >> "CfgWeapons" >> _weapon >> "DisplayName"), round(_unit distance _killer)];
|
||||
_weapon = currentWeapon _killer;
|
||||
_killstreakMsg = format[" %1X KILLSTREAK",_kills];
|
||||
|
||||
if (blck_useKilledAIName) then
|
||||
{
|
||||
_message = format["[blck] %2: killed by %1 from %3m",name _killer,name _unit,round(_unit distance _killer)];
|
||||
}else{
|
||||
_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,""];
|
||||
[["aikilled",_message,"victory"],playableUnits] call blck_fnc_messageplayers;
|
||||
};
|
||||
_message =_message + _killstreakMsg;
|
||||
//diag_log format["[blck] unit killed message is %1",_message,""];
|
||||
[["aikilled",_message,"victory"]] call blck_fnc_messageplayers;
|
||||
[_unit,_killer,_kills] call blck_fnc_rewardKiller;
|
||||
{
|
||||
_unit removeAllEventHandlers _x;
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
by Ghostrider
|
||||
11-7-16
|
||||
1-4-17
|
||||
*/
|
||||
|
||||
private["_missionType","_wasRunover","_launcher","_legal"];
|
||||
@ -9,7 +9,7 @@ params["_unit","_killer"];
|
||||
_launcher = _unit getVariable ["Launcher",""];
|
||||
_legal = true;
|
||||
|
||||
fn_targetVehicle = { // force AI to fire on the vehicle with launchers if equiped
|
||||
_fn_targetVehicle = { // force AI to fire on the vehicle with launchers if equiped
|
||||
params["_vk","_unit"];
|
||||
{
|
||||
if (((position _x) distance (position _unit)) <= 350) then
|
||||
@ -28,7 +28,7 @@ fn_targetVehicle = { // force AI to fire on the vehicle with launchers if equip
|
||||
} forEach allUnits;
|
||||
};
|
||||
|
||||
fn_applyVehicleDamage = { // apply a bit of damage
|
||||
_fn_applyVehicleDamage = { // apply a bit of damage
|
||||
private["_vd"];
|
||||
params["_vk"];
|
||||
//_vk = _this select 0;
|
||||
@ -36,13 +36,13 @@ fn_applyVehicleDamage = { // apply a bit of damage
|
||||
_vk setDamage (_vd + blck_RunGearDamage);
|
||||
};
|
||||
|
||||
fn_deleteAIGear = {
|
||||
_fn_deleteAIGear = {
|
||||
params["_ai"];
|
||||
{deleteVehicle _x}forEach nearestObjects [(getPosATL _ai), ['GroundWeaponHolder','WeaponHolderSimulated','WeaponHolder'], 3]; //Adapted from the AI cleanup logic by KiloSwiss
|
||||
[_ai] call blck_fnc_removeGear;
|
||||
};
|
||||
|
||||
fn_msgIED = {
|
||||
_fn_msgIED = {
|
||||
params["_killer"];
|
||||
diag_log format["fn_msgIED:: -- >> msg = %1 and owner _killer = %2",blck_Message, (owner _killer)];
|
||||
[["IED","",0,0],[_killer]] call blck_fnc_MessagePlayers;
|
||||
@ -53,19 +53,18 @@ if (typeOf _killer != typeOf (vehicle _killer)) then // AI was killed by a vehi
|
||||
{
|
||||
if(_killer == driver(vehicle _killer))then{ // The AI was runover
|
||||
if(blck_RunGear) then { // If we are supposed to delete gear from AI that were run over then lets do it.
|
||||
[_unit] call fn_deleteAIGear;
|
||||
[_unit] call _fn_deleteAIGear;
|
||||
if (blck_debugON) then
|
||||
{
|
||||
diag_log format["<<--->> Unit %1 was run over by %2",_unit,_killer];
|
||||
};
|
||||
};
|
||||
if (blck_VK_RunoverDamage) then {//apply vehicle damage
|
||||
[vehicle _killer] call fn_applyVehicleDamage;
|
||||
[vehicle _killer] call _fn_applyVehicleDamage;
|
||||
if (blck_debugON) then{diag_log format[">>---<< %1's vehicle has had damage applied",_killer];};
|
||||
[_killer] call fn_msgIED;
|
||||
[_killer] call _fn_msgIED;
|
||||
};
|
||||
[_unit, vehicle _killer] call fn_targetVehicle;
|
||||
|
||||
[_unit, vehicle _killer] call _fn_targetVehicle;
|
||||
_legal = false;
|
||||
};
|
||||
};
|
||||
@ -76,11 +75,11 @@ if ( blck_VK_GunnerDamage &&((typeOf vehicle _killer) in blck_forbidenVehicles o
|
||||
diag_log format["!!---!! Unit was killed by a forbidden vehicle or gun",_unit];
|
||||
};
|
||||
|
||||
if (blck_VK_Gear) then {[_unit] call fn_deleteAIGear;};
|
||||
[_unit, vehicle _killer] call fn_targetVehicle;
|
||||
[vehicle _killer] call fn_applyVehicleDamage;
|
||||
if (blck_VK_Gear) then {[_unit] call _fn_deleteAIGear;};
|
||||
[_unit, vehicle _killer] call _fn_targetVehicle;
|
||||
[vehicle _killer] call _fn_applyVehicleDamage;
|
||||
|
||||
[_killer] call fn_msgIED;
|
||||
[_killer] call _fn_msgIED;
|
||||
|
||||
_legal = false;
|
||||
};
|
||||
|
@ -3,7 +3,7 @@
|
||||
calculate a reward player for AI Kills in crypto.
|
||||
Code fragment adapted from VEMF
|
||||
call as [_unit,_killer] call blck_fnc_rewardKiller;
|
||||
NOTE the dependency on HALV_server_takegive_crypto !!
|
||||
Last modified 1/4/17
|
||||
*/
|
||||
|
||||
params["_unit","_killer","_kills"];
|
||||
@ -37,7 +37,10 @@ if (_modType isEqualTo "Epoch") then
|
||||
private _killstreakReward=+(_kills*2);
|
||||
//diag_log format["fnd_rewardKiller:: _bonus returned will be %1",_reward];
|
||||
[_killer,_reward + _killstreakReward] call blck_fnc_giveTakeCrypto;
|
||||
[["showScore",[_reward,"",_kills],""],[_killer]] call blck_fnc_messageplayers;
|
||||
if (blck_useKillScoreMessage) then
|
||||
{
|
||||
[["showScore",[_reward,"",_kills],""],[_killer]] call blck_fnc_messageplayers;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -61,7 +64,9 @@ if (_modType isEqualTo "Exile") then
|
||||
format["setAccountMoney:%1:%2", _money, (getPlayerUID _killer)] call ExileServer_system_database_query_fireAndForget;
|
||||
_message = ["showFragRequest",_overallRespectChange];
|
||||
_killer call ExileServer_object_player_sendStatsUpdate;
|
||||
[["showScore",[50,_distanceBonus,_kills]], [_killer]] call blck_fnc_messageplayers;
|
||||
if (blck_useKillScoreMessage) then
|
||||
{
|
||||
[["showScore",[50,_distanceBonus,_kills]], [_killer]] call blck_fnc_messageplayers;
|
||||
};
|
||||
};
|
||||
|
||||
//_reward
|
||||
|
@ -6,7 +6,7 @@
|
||||
Last modified 10/25/16
|
||||
*/
|
||||
//blck_variablesLoaded = false;
|
||||
blck_debugON = false;
|
||||
blck_debugON = true;
|
||||
blck_debugLevel = 0; // Reserved for certain testing modes.
|
||||
blck_minFPS = 10;
|
||||
|
||||
|
@ -56,6 +56,11 @@ Last modified 8/1/15
|
||||
// Headless Client Configurations
|
||||
blck_useHC = false; // Not Yet Working
|
||||
|
||||
// Kill message configurations
|
||||
blck_useKillMessages = false; // when true a message will be broadcast to all players each time an AI is killed.
|
||||
blck_useKillScoreMessage = true; // when true a tile is displayed to the killer with the kill score information
|
||||
blck_useIEDMessages = true;
|
||||
|
||||
// MISSION MARKER CONFIGURATION
|
||||
// blck_labelMapMarkers: Determines if when the mission composition provides text labels, map markers with have a text label indicating the mission type
|
||||
//When set to true,"arrow", text will be to the right of an arrow below the mission marker.
|
||||
@ -212,6 +217,8 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
|
||||
**********************************************************************************/
|
||||
|
||||
#define useAPEX 1
|
||||
|
||||
// Blacklisted itesm
|
||||
blck_blacklistedOptics = ["optic_Nightstalker","optic_tws","optic_tws_mg"];
|
||||
|
||||
@ -241,8 +248,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"optic_LRPS_tna_F","optic_LRPS_ghex_F",
|
||||
"optic_Holosight_blk_F","optic_Holosight_khk_F","optic_Holosight_smg_blk_F"
|
||||
];
|
||||
blck_Optics = blck_Optics_Holo + blck_Optics_Reticule + blck_Optics_Scopes + blck_Optics_Apex;
|
||||
blck_Optics = blck_Optics_Holo + blck_Optics_Reticule + blck_Optics_Scopes;
|
||||
|
||||
#ifdef useAPEX
|
||||
blck_Optics = blck_Optics + blck_Optics_Apex;
|
||||
#endif
|
||||
blck_bipods = [
|
||||
"bipod_01_F_blk","bipod_01_F_mtp","bipod_01_F_snd","bipod_02_F_blk","bipod_02_F_hex","bipod_02_F_tan","bipod_03_F_blk","bipod_03_F_oli",
|
||||
//Apex
|
||||
@ -301,14 +311,23 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
blck_WeaponList_Green = blck_RifleSniper + blck_RifleAsault_650 +blck_RifleLMG + blck_DLC_MMG + blck_apexWeapons;
|
||||
blck_WeaponList_Blue = blck_RifleOther + blck_RifleAsault_556 +blck_RifleAsault_650;
|
||||
blck_WeaponList_Red = blck_RifleAsault_556 + blck_RifleSniper + blck_RifleAsault_650 + blck_RifleLMG;
|
||||
|
||||
|
||||
#ifdef useAPEX
|
||||
|
||||
blck_WeaponList_Orange = blck_WeaponList_Orange + blck_apexWeapons;
|
||||
blck_WeaponList_Green = blck_WeaponList_Green + blck_apexWeapons;
|
||||
#endif
|
||||
|
||||
blck_baseBackpacks = ["B_Carryall_ocamo","B_Carryall_oucamo","B_Carryall_mcamo","B_Carryall_oli","B_Carryall_khk","B_Carryall_cbr" ];
|
||||
blck_ApexBackpacks = [
|
||||
"B_Bergen_mcamo_F","B_Bergen_dgtl_F","B_Bergen_hex_F","B_Bergen_tna_F","B_AssaultPack_tna_F","B_Carryall_ghex_F",
|
||||
"B_FieldPack_ghex_F","B_ViperHarness_blk_F","B_ViperHarness_ghex_F","B_ViperHarness_hex_F","B_ViperHarness_khk_F",
|
||||
"B_ViperHarness_oli_F","B_ViperLightHarness_blk_F","B_ViperLightHarness_ghex_F","B_ViperLightHarness_hex_F","B_ViperLightHarness_khk_F","B_ViperLightHarness_oli_F"
|
||||
];
|
||||
blck_backpacks = blck_baseBackpacks + blck_ApexBackpacks;
|
||||
|
||||
#ifdef useAPEX
|
||||
blck_backpacks = blck_baseBackpacks + blck_ApexBackpacks;
|
||||
#endif
|
||||
|
||||
blck_BanditHeadgear = ["H_Shemag_khk","H_Shemag_olive","H_Shemag_tan","H_ShemagOpen_khk"];
|
||||
//This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI.
|
||||
@ -584,6 +603,12 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
|
||||
[
|
||||
[// Weapons
|
||||
#ifdef useAPEX
|
||||
"arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F",
|
||||
"arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F",
|
||||
"arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F",
|
||||
"arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F",
|
||||
#endif
|
||||
["MultiGun","EnergyPackLg"],
|
||||
["arifle_Katiba_F","30Rnd_65x39_caseless_green"],
|
||||
["arifle_Katiba_GL_F","30Rnd_65x39_caseless_green"],
|
||||
@ -623,11 +648,8 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["srifle_DMR_06_camo_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_04_F","10Rnd_127x54_Mag"],
|
||||
["srifle_DMR_05_blk_F","10Rnd_93x64_DMR_05_Mag"],
|
||||
["srifle_DMR_06_olive_F","20Rnd_762x51_Mag"],
|
||||
"arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F",
|
||||
"arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F",
|
||||
"arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F",
|
||||
"arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F"
|
||||
["srifle_DMR_06_olive_F","20Rnd_762x51_Mag"]
|
||||
|
||||
],
|
||||
[//Magazines
|
||||
["3rnd_HE_Grenade_Shell",3,6],
|
||||
@ -695,6 +717,12 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
[
|
||||
[// Weapons
|
||||
// Format is ["Weapon Name","Magazine Name"],
|
||||
#ifdef useAPEX
|
||||
"arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F",
|
||||
"arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F",
|
||||
"arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F",
|
||||
"arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F",
|
||||
#endif
|
||||
["MultiGun","EnergyPackLg"],
|
||||
["arifle_Katiba_F","30Rnd_65x39_caseless_green"],
|
||||
["arifle_Katiba_GL_F","30Rnd_65x39_caseless_green"],
|
||||
@ -723,11 +751,8 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["srifle_DMR_03_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_05_hex_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_06_camo_F","10Rnd_338_Mag"],
|
||||
"arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F",
|
||||
"arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F",
|
||||
"arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F",
|
||||
"arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F"
|
||||
["srifle_DMR_06_camo_F","10Rnd_338_Mag"]
|
||||
|
||||
],
|
||||
[//Magazines
|
||||
// Format is ["Magazine name, Minimum number to add, Maximum number to add],
|
||||
|
@ -55,6 +55,10 @@ Last modified 8/1/15
|
||||
////////
|
||||
// Headless Client Configurations
|
||||
blck_useHC = false; // Not Yet Working
|
||||
|
||||
// Kill message configurations
|
||||
blck_useKillMessages = false; // when true a message will be broadcast to all players each time an AI is killed.
|
||||
blck_useKillScoreMessage = true; // when true a tile is displayed to the killer with the kill score information
|
||||
|
||||
// MISSION MARKER CONFIGURATION
|
||||
// blck_labelMapMarkers: Determines if when the mission composition provides text labels, map markers with have a text label indicating the mission type
|
||||
@ -218,6 +222,8 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
|
||||
**********************************************************************************/
|
||||
|
||||
#define useAPEX 1
|
||||
|
||||
// Blacklisted itesm
|
||||
blck_blacklistedOptics = ["optic_Nightstalker","optic_tws","optic_tws_mg"];
|
||||
|
||||
@ -247,7 +253,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"optic_LRPS_tna_F","optic_LRPS_ghex_F",
|
||||
"optic_Holosight_blk_F","optic_Holosight_khk_F","optic_Holosight_smg_blk_F"
|
||||
];
|
||||
blck_Optics = blck_Optics_Holo + blck_Optics_Reticule + blck_Optics_Scopes + blck_Optics_Apex;
|
||||
blck_Optics = blck_Optics_Holo + blck_Optics_Reticule + blck_Optics_Scopes;
|
||||
|
||||
#ifdef useAPEX
|
||||
blck_Optics = blck_Optics + blck_Optics_Apex;
|
||||
#endif
|
||||
|
||||
blck_bipods = [
|
||||
"bipod_01_F_blk","bipod_01_F_mtp","bipod_01_F_snd","bipod_02_F_blk","bipod_02_F_hex","bipod_02_F_tan","bipod_03_F_blk","bipod_03_F_oli",
|
||||
@ -310,15 +320,22 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
blck_WeaponList_Green = blck_RifleSniper + blck_RifleAsault_650 +blck_RifleLMG + blck_DLC_MMG + blck_apexWeapons;
|
||||
blck_WeaponList_Blue = blck_RifleOther + blck_RifleAsault_556 +blck_RifleAsault_650;
|
||||
blck_WeaponList_Red = blck_RifleAsault_556 + blck_RifleSniper + blck_RifleAsault_650 + blck_RifleLMG;
|
||||
|
||||
|
||||
#ifdef useAPEX
|
||||
blck_WeaponList_Orange = blck_WeaponList_Orange + blck_apexWeapons;
|
||||
blck_WeaponList_Green = blck_WeaponList_Green + blck_apexWeapons;
|
||||
#endif
|
||||
|
||||
blck_baseBackpacks = ["B_Carryall_ocamo","B_Carryall_oucamo","B_Carryall_mcamo","B_Carryall_oli","B_Carryall_khk","B_Carryall_cbr" ];
|
||||
blck_ApexBackpacks = [
|
||||
"B_Bergen_mcamo_F","B_Bergen_dgtl_F","B_Bergen_hex_F","B_Bergen_tna_F","B_AssaultPack_tna_F","B_Carryall_ghex_F",
|
||||
"B_FieldPack_ghex_F","B_ViperHarness_blk_F","B_ViperHarness_ghex_F","B_ViperHarness_hex_F","B_ViperHarness_khk_F",
|
||||
"B_ViperHarness_oli_F","B_ViperLightHarness_blk_F","B_ViperLightHarness_ghex_F","B_ViperLightHarness_hex_F","B_ViperLightHarness_khk_F","B_ViperLightHarness_oli_F"
|
||||
];
|
||||
|
||||
#ifdef useAPEX
|
||||
blck_backpacks = blck_baseBackpacks + blck_ApexBackpacks;
|
||||
|
||||
#endif
|
||||
blck_BanditHeadgear = ["H_Shemag_khk","H_Shemag_olive","H_Shemag_tan","H_ShemagOpen_khk"];
|
||||
//This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI.
|
||||
blck_headgear = [
|
||||
@ -669,6 +686,12 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
|
||||
[
|
||||
[// Weapons
|
||||
#ifdef useAPEX
|
||||
"arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F",
|
||||
"arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F",
|
||||
"arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F",
|
||||
"arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F",
|
||||
#endif
|
||||
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
@ -695,11 +718,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["srifle_DMR_06_camo_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_04_F","10Rnd_127x54_Mag"],
|
||||
["srifle_DMR_05_blk_F","10Rnd_93x64_DMR_05_Mag"],
|
||||
["srifle_DMR_06_olive_F","20Rnd_762x51_Mag"],
|
||||
"arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F",
|
||||
"arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F",
|
||||
"arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F",
|
||||
"arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F"
|
||||
["srifle_DMR_06_olive_F","20Rnd_762x51_Mag"]
|
||||
],
|
||||
[//Magazines
|
||||
["3rnd_HE_Grenade_Shell",3,6],
|
||||
@ -757,6 +776,12 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
[
|
||||
[// Weapons
|
||||
// Format is ["Weapon Name","Magazine Name"],
|
||||
#ifdef useAPEX
|
||||
"arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F",
|
||||
"arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F",
|
||||
"arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F",
|
||||
"arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F",
|
||||
#endif
|
||||
["arifle_Katiba_F","30Rnd_65x39_caseless_green"],
|
||||
["arifle_Katiba_GL_F","30Rnd_65x39_caseless_green"],
|
||||
["arifle_MX_F","30Rnd_65x39_caseless_mag"],
|
||||
@ -778,11 +803,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["srifle_DMR_03_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_05_hex_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_06_camo_F","10Rnd_338_Mag"],
|
||||
"arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F",
|
||||
"arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F",
|
||||
"arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F",
|
||||
"arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F"
|
||||
["srifle_DMR_06_camo_F","10Rnd_338_Mag"]
|
||||
],
|
||||
[//Magazines
|
||||
// Format is ["Magazine name, Minimum number to add, Maximum number to add],
|
||||
|
@ -4,6 +4,16 @@ Loosely based on the AI mission system by blckeagls ver 2.0.2
|
||||
Contributions by Narines: bug fixes, testing, 'fired' event handler
|
||||
Ideas or code from that by Vampire and KiloSwiss have been used for certain functions.
|
||||
|
||||
1/3/17 Version 6.51 Build 22
|
||||
Moved configuration for the client from debug\blckclient.sqf to debug\blckconfig.sqf.
|
||||
Added a setting blck_useKillMessages = true/false; (line 60 of the config. when true, kill messages will be send to all players when a player kills an AI. The style of the message is controlled client-side (debug\blck_config.sqf)
|
||||
Added a setting blck_useKillScoreMessage = true/false; // (line 61 of the config) when true a tile is displayed to the killer with the kill score information
|
||||
Added a setting blck_useIEDMessages = true/false; // when true players will receive a message that their vehicle was damaged when AI are killed in a forbidden way (Run over Or Killed with vehicle-mounted weapons)
|
||||
Fixed: Messages that a nearby IED was detonated are now properly displayed when players illegally kill AI.
|
||||
Added a way to easily include / exclude APEX items. To exclude them comment out the line
|
||||
#define useAPEX 1
|
||||
at approximately line 219 in the config.
|
||||
|
||||
12/21/16 Version 6.50 Build 21
|
||||
Added a check for mod type to the routine that deletes empty groups as this is only needed for Epoch.
|
||||
Added back the code that (a) eliminates the mission timers and (b) allows multiple instances of a mission to be spawned.
|
||||
|
@ -1,3 +1,3 @@
|
||||
private ["_version","_versionDate"];
|
||||
_blck_version = "6.50 Build 22";
|
||||
_blck_versionDate = "1-3-17 7:00 PM";
|
||||
_blck_version = "6.51 Build 23";
|
||||
_blck_versionDate = "1-4-17 9:00 PM";
|
||||
|
@ -1,29 +1,18 @@
|
||||
////////////////////////////////////////////
|
||||
// Start Server-side functions and Create, Display Mission Messages for blckeagls mission system for Arma 3 Epoch
|
||||
// Last Updated 11/20/16
|
||||
// Last Updated 1/4/17
|
||||
// by Ghostrider-DbD-
|
||||
//////////////////////////////////////////
|
||||
|
||||
if (hasInterface) then
|
||||
{
|
||||
//diag_log "[blckeagls] initializing client variables";
|
||||
blck_MarkerPeristTime = 300;
|
||||
blck_useHint = false;
|
||||
blck_useSystemChat = true;
|
||||
blck_useTitleText = false;
|
||||
blck_useDynamic = true;
|
||||
blck_useToast = false; // Exile only
|
||||
blck_aiKilluseSystemChat = true;
|
||||
blck_aiKilluseDynamic = false;
|
||||
blck_aiKilluseTitleText = false;
|
||||
blck_processingMsg = -1;
|
||||
blck_processingKill = -1;
|
||||
blck_message = "";
|
||||
if (isServer || (!hasInterface)) exitWith {};
|
||||
|
||||
#include "blckconfigs.sqf";
|
||||
|
||||
blck_message = "";
|
||||
fn_killScoreNotification = {
|
||||
params["_bonus","_distanceBonus","_killStreak"];
|
||||
//diag_log format["fn_killScoreNotification:: -- >> _bonus = %1 | _distanceBonus = %2 | _killStreak = %3",_bonus,_distanceBonus,_killStreak];
|
||||
_msg2 = format["<t color ='#7CFC00' size = '1.4' align='right'>AI Killed</t><br/>"];
|
||||
private _msg2 = format["<t color ='#7CFC00' size = '1.4' align='right'>AI Killed</t><br/>"];
|
||||
if (typeName _bonus isEqualTo "SCALAR") then // add message for the bonus
|
||||
{
|
||||
if (_bonus > 0) then
|
||||
@ -45,7 +34,7 @@ if (hasInterface) then
|
||||
_msg2 = _msg2 + format["<t color = '#7CFC00' size = '1.4' align = 'right'>Killstreak <t color = '#ffffff'>%1X<br/>",_killStreak];
|
||||
};
|
||||
};
|
||||
[parseText _msg2,[0.0823437 * safezoneW + safezoneX,0.379 * safezoneH + safezoneY,0.0812109 * safezoneW,0.253 * safezoneH], nil, 7, 0.3, 0] spawn BIS_fnc_textTiles;
|
||||
[parseText _msg2,[0.0823437 * safezoneW + safezoneX,0.379 * safezoneH + safezoneY,0.0812109 * safezoneW,0.253 * safezoneH], nil, 3, 0.3, 0] spawn BIS_fnc_textTiles;
|
||||
};
|
||||
|
||||
fn_dynamicNotification = {
|
||||
@ -100,7 +89,7 @@ if (hasInterface) then
|
||||
fn_AI_KilledNotification = {
|
||||
private["_message","_text","_screentime","_xcoord","_ycoord"];
|
||||
_message = _this select 0;
|
||||
//diag_log format["_fn_AI_KilledNotification ====] Paremeters _event %1 _message %2 _mission %3",_message];
|
||||
//diag_log format["_fn_AI_KilledNotification ====] Paremeters: _message= %1", _message];
|
||||
if (blck_aiKilluseSystemChat) then {systemChat format["%1",_message];};
|
||||
if (blck_aiKilluseTitleText) then {titleText [_message, "PLAIN DOWN",5];uiSleep 5; titleText ["", "PLAIN DOWN",5]};
|
||||
if (blck_aiKilluseDynamic) then {
|
||||
@ -121,25 +110,25 @@ if (hasInterface) then
|
||||
|
||||
fn_handleMessage = {
|
||||
//private["_event","_msg","_mission"];
|
||||
diag_log format["blck_Message ====] Paremeters = _this = %1",_this];
|
||||
//diag_log format["fn_handleMessage ====] Paremeters = _this = %1",_this];
|
||||
params["_event","_message",["_mission",""]];
|
||||
|
||||
diag_log format["blck_Message ====] Paremeters _event %1 _message %2 paramter #3 %3",_event,_message,_mission];
|
||||
diag_log format["blck_Message ====] _message isEqualTo %1",_message];
|
||||
private _timer = 0;
|
||||
//diag_log format["fn_handleMessage ====] Paremeters _event= %1 _message= %2 paramter #3= %3",_event,_message,_mission];
|
||||
//diag_log format["fn_handleMessage ====] _message isEqualTo %1",_message];
|
||||
|
||||
switch (_event) do
|
||||
{
|
||||
case "start":
|
||||
{
|
||||
playSound "UAV_05";
|
||||
diag_log "switch start";
|
||||
//diag_log "switch start";
|
||||
//_mission = _this select 1 select 2;
|
||||
[_event,_message,_mission] spawn fn_missionNotification;
|
||||
};
|
||||
case "end":
|
||||
{
|
||||
playSound "UAV_03";
|
||||
diag_log "switch end";
|
||||
//diag_log "switch end";
|
||||
//_mission = _this select 1 select 2;
|
||||
[_event,_message,_mission] spawn fn_missionNotification;
|
||||
};
|
||||
@ -155,14 +144,15 @@ if (hasInterface) then
|
||||
case "reinforcements":
|
||||
{
|
||||
if ( (player distance _mission) < 1000) then {playsound "AddItemOK"; ["Alert",_message] call fn_dynamicNotification;};
|
||||
diag_log "---->>>> Reinforcements Spotted";
|
||||
//diag_log "---->>>> Reinforcements Spotted";
|
||||
};
|
||||
case "IED":
|
||||
{
|
||||
[1] call BIS_fnc_Earthquake;
|
||||
//["IED","Bandits targeted your vehicle with an IED"] call fn_dynamicNotification;
|
||||
["Bandits targeted your vehicle with an IED.", 5] call Epoch_message;
|
||||
for "_i" from 1 to 3 do {playSound "BattlefieldExplosions3_3D";uiSleep 0.3;};
|
||||
//[1] spawn BIS_fnc_Earthquake;
|
||||
private _msg = format["<t color = '#ce2029' size ='1.4' align='center'>IED Detonated <t color = '#ffffff'>%1<br/>"," **Vehicle Damaged** "];
|
||||
systemChat "IED Detonated Nearby: Vehicle Damaged";
|
||||
[parseText _msg,[0.314375 * safezoneW + safezoneX,0.687 * safezoneH + safezoneY,0.37125 * safezoneW,0.044 * safezoneH], nil, 3, 0.1, 0] spawn BIS_fnc_textTiles;
|
||||
playSound "BattlefieldExplosions3_3D";
|
||||
};
|
||||
case "showScore":
|
||||
{
|
||||
@ -178,7 +168,7 @@ if (hasInterface) then
|
||||
if (!isNil "blck_RedMarker") then {[blck_RedMarker] execVM "debug\spawnMarker.sqf"};
|
||||
if (!isNil "blck_BlueMarker") then {[blck_BlueMarker] execVM "debug\spawnMarker.sqf"};
|
||||
|
||||
diag_log "blck client loaded ver 8/14/16 1.0 7:47 AM";
|
||||
diag_log "blck client loaded ver 1/4/17 9 PM";
|
||||
//diag_log "[blckeagls] starting client loop";
|
||||
private["_start"];
|
||||
_start = diag_tickTime;
|
||||
@ -196,6 +186,5 @@ if (hasInterface) then
|
||||
uiSleep 0.3;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
20
MPMissions/epoch.Altis/debug/blckconfigs.sqf
Normal file
20
MPMissions/epoch.Altis/debug/blckconfigs.sqf
Normal file
@ -0,0 +1,20 @@
|
||||
////////////////////////////////////////////
|
||||
// Define configurations for the client-side of the mission system
|
||||
// Last Updated 11/20/16
|
||||
// by Ghostrider-DbD-
|
||||
//////////////////////////////////////////
|
||||
|
||||
//diag_log "[blckeagls] initializing client variables";
|
||||
blck_MarkerPeristTime = 300;
|
||||
blck_useHint = true;
|
||||
blck_useSystemChat = false;
|
||||
blck_useTitleText = false;
|
||||
blck_useDynamic = false;
|
||||
blck_useToast = false; // Exile only
|
||||
blck_aiKilluseSystemChat = true;
|
||||
blck_aiKilluseDynamic = false;
|
||||
blck_aiKilluseTitleText = false;
|
||||
blck_processingMsg = -1;
|
||||
blck_processingKill = -1;
|
||||
|
||||
|
@ -4,25 +4,27 @@ Loosely based on the AI mission system by blckeagls ver 2.0.2
|
||||
Contributions by Narines: bug fixes, testing, 'fired' event handler
|
||||
Ideas or code from that by Vampire and KiloSwiss have been used for certain functions.
|
||||
|
||||
12/4-16 Version 6.45 Build 19
|
||||
Added Option to display mission information in Toasts (Exile Only).
|
||||
Fixed several issues related to the update to Arma 1.66
|
||||
Known Issues: Need a patch so you can loot AI bodies in Epoch.
|
||||
1/3/17 Version 6.51 Build 22
|
||||
Moved configuration for the client from debug\blckclient.sqf to debug\blckconfig.sqf.
|
||||
Added a setting blck_useKillMessages = true/false; (line 60 of the config. when true, kill messages will be send to all players when a player kills an AI. The style of the message is controlled client-side (debug\blck_config.sqf)
|
||||
Added a setting blck_useKillScoreMessage = true/false; // (line 61 of the config) when true a tile is displayed to the killer with the kill score information
|
||||
Added a setting blck_useIEDMessages = true/false; // when true players will receive a message that their vehicle was damaged when AI are killed in a forbidden way (Run over Or Killed with vehicle-mounted weapons)
|
||||
Fixed: Messages that a nearby IED was detonated are now properly displayed when players illegally kill AI.
|
||||
Added a way to easily include / exclude APEX items. To exclude them comment out the line
|
||||
#define useAPEX 1
|
||||
at approximately line 219 in the config.
|
||||
|
||||
11/16/16 Version 6.44 Build 15
|
||||
Added parameters
|
||||
blck_blacklistTraderCities=true; // the locations of the Epoch/Exile trader cities will be pulled from the config and added to the location blacklist for the mission system.
|
||||
blcklistConcreteMixerZones = true; // Locations of the concrete mixers will be pulled from the configs; no missions will be spawned within 1000 m of these locations.
|
||||
blck_blacklistSpawns = true; // Locations of Exile spawns will be pulled from the config. No missions will spawn within 1000 m of these locations.
|
||||
Added: the main thread now runs a function that checks for empty groups.
|
||||
Fixed: The mission system would hang on epoch after a while because createGroup returned nullGroup. this appeared to occur because the maximum number of active groups had been reached. Deleting empty groups periodically solved the issue on a test machine.
|
||||
Teaked: code to check whether a possible mission spawn location is near a flag or plot pole. Still needs work.
|
||||
Added: Completed adding EDEN weapons, optics, bipods, optics to AI configurations and mission loot crates.
|
||||
Added APEX headgear and uniforms. (Note, you would need to add any of these you wished for players to sell to Epoch\<Map Name>\epoch_config\CfgPricing.hpp on Epoch)
|
||||
Changed: Definitions of blacklist locations such as spawns moved from GMS_findWorld.sqf to the blck_configs_(epoch|exile).
|
||||
Changed: Divided rifles and optics into subcategories to better enable assigning weapons to AI difficulties in a sort of class-based way, e.g., 556, 6.5, or LMG are separate classes.
|
||||
Changed: DLS crate loader (not publically available yet) now uses blck_fnc_loadLootItemsFromArray rather than the prior approach for which specific crate loading functions were called depending on the loadout type (weapons, building supplies, foord etc).
|
||||
Fixed: You can now loot AI bodies in Epoch.
|
||||
12/21/16 Version 6.50 Build 21
|
||||
Added a check for mod type to the routine that deletes empty groups as this is only needed for Epoch.
|
||||
Added back the code that (a) eliminates the mission timers and (b) allows multiple instances of a mission to be spawned.
|
||||
|
||||
12/20/16 Version 6.46 Buid 20
|
||||
Moved Variables for time acceleration to the config files.
|
||||
Reworked code for time acceleration to use timeDay and BIS_fnc_sunriseSunsetTime.
|
||||
|
||||
11/20/16 Build 6.45 Build 19
|
||||
Added Option to display mission information in Toasts (Exile Only).
|
||||
Fixed an issue related to bugs in Arma 1.66
|
||||
|
||||
11/16/16 Version 6.44 Build 15
|
||||
Added parameters
|
||||
|
Loading…
Reference in New Issue
Block a user