no message
This commit is contained in:
parent
61a27ec36a
commit
99109572fb
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
#include "\A3XAI\globaldefines.hpp"
|
#include "\A3XAI\globaldefines.hpp"
|
||||||
|
|
||||||
private ["_unitGroup", "_waypoint", "_vehicle", "_endTime", "_vehiclePos", "_nearUnits", "_vehPos", "_despawnPos", "_reinforcePos","_vehicleArmed","_paraDrop","_reinforceTime"];
|
private ["_unitGroup", "_waypoint", "_vehicle", "_endTime", "_vehiclePos", "_nearUnits", "_vehPos", "_despawnPos", "_reinforcePos","_vehicleArmed","_paraDrop","_reinforceTime","_unitLevel","_canDeploy"];
|
||||||
|
|
||||||
_unitGroup = _this;
|
_unitGroup = _this;
|
||||||
|
|
||||||
@ -8,14 +8,25 @@ _unitGroup = _this;
|
|||||||
if (!hasInterface && !isDedicated) exitWith {diag_log format ["Error: %1 executed on headless client.",__FILE__];};
|
if (!hasInterface && !isDedicated) exitWith {diag_log format ["Error: %1 executed on headless client.",__FILE__];};
|
||||||
if !((typeName _unitGroup) isEqualTo "GROUP") exitWith {diag_log format ["A3XAI Error: Invalid group %1 provided to %2.",_unitGroup,__FILE__];};
|
if !((typeName _unitGroup) isEqualTo "GROUP") exitWith {diag_log format ["A3XAI Error: Invalid group %1 provided to %2.",_unitGroup,__FILE__];};
|
||||||
|
|
||||||
_vehicle = _unitGroup getVariable ["assignedVehicle",objNull];
|
_vehicle = _unitGroup getVariable ["assignedVehicle",objNull];
|
||||||
_vehicleArmed = ((({_x call A3XAI_checkIsWeapon} count (weapons _vehicle)) > 0) || {({_x call A3XAI_checkIsWeapon} count (_vehicle weaponsTurret [-1])) > 0} || {(_vehicle call A3XAI_countVehicleGunners) > 0});
|
_vehicleArmed = ((({_x call A3XAI_checkIsWeapon} count (weapons _vehicle)) > 0) || {({_x call A3XAI_checkIsWeapon} count (_vehicle weaponsTurret [-1])) > 0} || {(_vehicle call A3XAI_countVehicleGunners) > 0});
|
||||||
_reinforcePos = _unitGroup getVariable ["ReinforcePos",[0,0,0]];
|
_reinforcePos = _unitGroup getVariable ["ReinforcePos",[0,0,0]];
|
||||||
|
_canDeploy = true;
|
||||||
|
|
||||||
if (_vehicleArmed) then {
|
if (_vehicleArmed) then {
|
||||||
|
_unitLevel = _unitGroup getVariable ["unitLevel",0];
|
||||||
|
_canDeploy = (missionNamespace getVariable [format ["A3XAI_airReinforceDeployChance%1",_unitLevel],0.00]) call A3XAI_chance;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (_canDeploy) then {
|
||||||
|
_paraDrop = [_unitGroup,_vehicle,objNull] spawn A3XAI_heliParaDrop;
|
||||||
|
waitUntil {uiSleep 0.1; scriptDone _paraDrop};
|
||||||
|
} else {
|
||||||
_waypoint = [_unitGroup,0];
|
_waypoint = [_unitGroup,0];
|
||||||
_waypoint setWaypointStatements ["true",""];
|
_waypoint setWaypointStatements ["true",""];
|
||||||
_waypoint setWaypointType "GUARD";
|
|
||||||
|
//Original:
|
||||||
|
_waypoint setWaypointType "SAD";
|
||||||
_waypoint setWaypointBehaviour "AWARE";
|
_waypoint setWaypointBehaviour "AWARE";
|
||||||
_waypoint setWaypointCombatMode "RED";
|
_waypoint setWaypointCombatMode "RED";
|
||||||
|
|
||||||
@ -37,7 +48,14 @@ if (_vehicleArmed) then {
|
|||||||
_vehiclePos = getPosATL _vehicle;
|
_vehiclePos = getPosATL _vehicle;
|
||||||
_vehiclePos set [2,0];
|
_vehiclePos set [2,0];
|
||||||
_nearUnits = _vehiclePos nearEntities [[PLAYER_UNITS,"LandVehicle"],DETECT_RANGE_AIR_REINFORCE];
|
_nearUnits = _vehiclePos nearEntities [[PLAYER_UNITS,"LandVehicle"],DETECT_RANGE_AIR_REINFORCE];
|
||||||
if ((count _nearUnits) > 5) then {_nearUnits resize 5};
|
|
||||||
|
{
|
||||||
|
if !(isPlayer _x) then {
|
||||||
|
_nearUnits deleteAt _forEachIndex;
|
||||||
|
};
|
||||||
|
if (_forEachIndex > 4) exitWith {};
|
||||||
|
} forEach _nearUnits;
|
||||||
|
|
||||||
{
|
{
|
||||||
if ((isPlayer _x) && {(_unitGroup knowsAbout _x) < 3} && {(lineIntersectsSurfaces [(aimPos _vehicle),(eyePos _x),_vehicle,_x,true,1]) isEqualTo []}) then {
|
if ((isPlayer _x) && {(_unitGroup knowsAbout _x) < 3} && {(lineIntersectsSurfaces [(aimPos _vehicle),(eyePos _x),_vehicle,_x,true,1]) isEqualTo []}) then {
|
||||||
_unitGroup reveal [_x,3];
|
_unitGroup reveal [_x,3];
|
||||||
@ -47,14 +65,11 @@ if (_vehicleArmed) then {
|
|||||||
};
|
};
|
||||||
} forEach _nearUnits;
|
} forEach _nearUnits;
|
||||||
};
|
};
|
||||||
uiSleep 15;
|
uiSleep 10;
|
||||||
};
|
};
|
||||||
_unitGroup setSpeedMode "NORMAL";
|
_unitGroup setSpeedMode "NORMAL";
|
||||||
|
|
||||||
if (A3XAI_debugLevel > 0) then {diag_log format ["A3XAI Debug: Group %1 reinforcement timer complete.",_unitGroup];};
|
if (A3XAI_debugLevel > 0) then {diag_log format ["A3XAI Debug: Group %1 reinforcement timer complete.",_unitGroup];};
|
||||||
} else {
|
|
||||||
_paraDrop = [_unitGroup,_vehicle,objNull] spawn A3XAI_heliParaDrop;
|
|
||||||
waitUntil {uiSleep 0.1; scriptDone _paraDrop};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (((_unitGroup getVariable ["GroupSize",-1]) < 1) or {!((_unitGroup getVariable ["unitType",""]) isEqualTo "air_reinforce")}) exitWith {
|
if (((_unitGroup getVariable ["GroupSize",-1]) < 1) or {!((_unitGroup getVariable ["unitType",""]) isEqualTo "air_reinforce")}) exitWith {
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
#include "\A3XAI\globaldefines.hpp"
|
||||||
|
|
||||||
|
private ["_vehicle", "_unitLevel", "_weapon", "_magazine", "_lootItem"];
|
||||||
|
|
||||||
|
_vehicle = _this;
|
||||||
|
|
||||||
|
if (isNull _vehicle) exitWith {};
|
||||||
|
|
||||||
|
_unitLevel = A3XAI_unitLevels call A3XAI_selectRandom;
|
||||||
|
|
||||||
|
for "_i" from 1 to A3XAI_weaponLootVehicleCount do {
|
||||||
|
_weapon = _unitLevel call A3XAI_getWeapon;
|
||||||
|
_magazine = getArray (configFile >> "CfgWeapons" >> _weapon >> "magazines") select 0;
|
||||||
|
_vehicle addWeaponCargoGlobal [_weapon,1];
|
||||||
|
_vehicle addMagazineCargoGlobal [_magazine,A3XAI_ammoLootPerWeapon];
|
||||||
|
};
|
||||||
|
|
||||||
|
for "_i" from 1 to A3XAI_foodLootVehicleCount do {
|
||||||
|
_lootItem = (A3XAI_foodLoot call A3XAI_selectRandom);
|
||||||
|
_vehicle addItemCargoGlobal [_lootItem,1];
|
||||||
|
};
|
||||||
|
|
||||||
|
for "_i" from 1 to A3XAI_miscLootVehicleCount do {
|
||||||
|
_lootItem = (A3XAI_miscLoot call A3XAI_selectRandom);
|
||||||
|
_vehicle addItemCargoGlobal [_lootItem,1];
|
||||||
|
};
|
||||||
|
|
||||||
|
for "_i" from 1 to A3XAI_medicalLootVehicleCount do {
|
||||||
|
_lootItem = (A3XAI_medicalLoot call A3XAI_selectRandom);
|
||||||
|
_vehicle addItemCargoGlobal [_lootItem,1];
|
||||||
|
};
|
||||||
|
|
||||||
|
if (A3XAI_debugLevel > 1) then {
|
||||||
|
diag_log format ["A3XAI Debug: Generated loot for AI %1 at %2 with unitLevel %3.",(typeOf _vehicle),(getPosATL _vehicle),_unitLevel];
|
||||||
|
};
|
||||||
|
|
||||||
|
true
|
@ -9,6 +9,7 @@ if ((toLower _vehicleClass) isEqualTo "autonomous") exitWith {};
|
|||||||
|
|
||||||
_object removeAllEventHandlers "GetIn";
|
_object removeAllEventHandlers "GetIn";
|
||||||
if (isDedicated) then {
|
if (isDedicated) then {
|
||||||
|
_object call A3XAI_generateVehicleLoot;
|
||||||
_object addEventHandler ["GetIn",{
|
_object addEventHandler ["GetIn",{
|
||||||
if (isPlayer (_this select 2)) then {
|
if (isPlayer (_this select 2)) then {
|
||||||
(_this select 0) call A3XAI_releaseVehicleNow;
|
(_this select 0) call A3XAI_releaseVehicleNow;
|
||||||
|
@ -117,6 +117,7 @@ A3XAI_deleteGroup = compileFinal preprocessFileLineNumbers format ["%1\compile\A
|
|||||||
A3XAI_deleteCustomSpawn = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_deleteCustomSpawn.sqf",A3XAI_directory];
|
A3XAI_deleteCustomSpawn = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_deleteCustomSpawn.sqf",A3XAI_directory];
|
||||||
A3XAI_findSpawnPos = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_findSpawnPos.sqf",A3XAI_directory];
|
A3XAI_findSpawnPos = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_findSpawnPos.sqf",A3XAI_directory];
|
||||||
A3XAI_fixStuckGroup = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_fixStuckGroup.sqf",A3XAI_directory];
|
A3XAI_fixStuckGroup = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_fixStuckGroup.sqf",A3XAI_directory];
|
||||||
|
A3XAI_generateVehicleLoot = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_generateVehicleLoot.sqf",A3XAI_directory];
|
||||||
A3XAI_getNoAggroStatus = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_getNoAggroStatus.sqf",A3XAI_directory];
|
A3XAI_getNoAggroStatus = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_getNoAggroStatus.sqf",A3XAI_directory];
|
||||||
A3XAI_getSafePosReflected = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_getSafePosReflected.sqf",A3XAI_directory];
|
A3XAI_getSafePosReflected = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_getSafePosReflected.sqf",A3XAI_directory];
|
||||||
A3XAI_getSpawnParams = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_getSpawnParams.sqf",A3XAI_directory];
|
A3XAI_getSpawnParams = compileFinal preprocessFileLineNumbers format ["%1\compile\A3XAI_utilities\A3XAI_getSpawnParams.sqf",A3XAI_directory];
|
||||||
|
@ -191,6 +191,10 @@ _fnc_getConfigValue = {
|
|||||||
["airReinforcementSpawnChance2",0.20],
|
["airReinforcementSpawnChance2",0.20],
|
||||||
["airReinforcementSpawnChance3",0.30],
|
["airReinforcementSpawnChance3",0.30],
|
||||||
["airReinforcementAllowedFor",["static","dynamic","random"]],
|
["airReinforcementAllowedFor",["static","dynamic","random"]],
|
||||||
|
["airReinforceDeployChance0",0.60],
|
||||||
|
["airReinforceDeployChance1",0.70],
|
||||||
|
["airReinforceDeployChance2",0.80],
|
||||||
|
["airReinforceDeployChance3",0.90],
|
||||||
["airReinforcementDuration0",120],
|
["airReinforcementDuration0",120],
|
||||||
["airReinforcementDuration1",180],
|
["airReinforcementDuration1",180],
|
||||||
["airReinforcementDuration2",240],
|
["airReinforcementDuration2",240],
|
||||||
@ -300,6 +304,12 @@ _fnc_getConfigValue = {
|
|||||||
["underbarrelChance3",0.90],
|
["underbarrelChance3",0.90],
|
||||||
["foodLootCount",2],
|
["foodLootCount",2],
|
||||||
["miscLootCount",2],
|
["miscLootCount",2],
|
||||||
|
["weaponLootVehicleCount",6],
|
||||||
|
["ammoLootPerWeapon",3],
|
||||||
|
["foodLootVehicleCount",6],
|
||||||
|
["miscLootVehicleCount",6],
|
||||||
|
["medicalLootVehicleCount",3],
|
||||||
|
["medicalLoot",["Exile_Item_InstaDoc","Exile_Item_Bandage","Exile_Item_Vishpirin"]],
|
||||||
["firstAidKitChance",0.25],
|
["firstAidKitChance",0.25],
|
||||||
["lootPullChance0",0.20,true],
|
["lootPullChance0",0.20,true],
|
||||||
["lootPullChance1",0.40,true],
|
["lootPullChance1",0.40,true],
|
||||||
|
@ -301,8 +301,9 @@ if (A3XAI_pistolList isEqualTo []) then {A3XAI_pistolList = ["hgun_ACPC2_F","hgu
|
|||||||
if (A3XAI_rifleList isEqualTo []) then {A3XAI_rifleList = ["arifle_Katiba_C_F","arifle_Katiba_F","arifle_Katiba_GL_F","arifle_Mk20_F","arifle_Mk20_GL_F","arifle_Mk20_GL_plain_F","arifle_Mk20_plain_F","arifle_Mk20C_F","arifle_Mk20C_plain_F","arifle_MX_Black_F","arifle_MX_F","arifle_MX_GL_Black_F","arifle_MX_GL_F","arifle_MXC_Black_F","arifle_MXC_F","arifle_SDAR_F","arifle_TRG20_F","arifle_TRG21_F","arifle_TRG21_GL_F"]};
|
if (A3XAI_rifleList isEqualTo []) then {A3XAI_rifleList = ["arifle_Katiba_C_F","arifle_Katiba_F","arifle_Katiba_GL_F","arifle_Mk20_F","arifle_Mk20_GL_F","arifle_Mk20_GL_plain_F","arifle_Mk20_plain_F","arifle_Mk20C_F","arifle_Mk20C_plain_F","arifle_MX_Black_F","arifle_MX_F","arifle_MX_GL_Black_F","arifle_MX_GL_F","arifle_MXC_Black_F","arifle_MXC_F","arifle_SDAR_F","arifle_TRG20_F","arifle_TRG21_F","arifle_TRG21_GL_F"]};
|
||||||
if (A3XAI_machinegunList isEqualTo []) then {A3XAI_machinegunList = ["arifle_MX_SW_Black_F","arifle_MX_SW_F","LMG_Mk200_F","LMG_Zafir_F","MMG_01_hex_F","MMG_01_tan_F","MMG_02_black_F","MMG_02_camo_F","MMG_02_sand_F"]};
|
if (A3XAI_machinegunList isEqualTo []) then {A3XAI_machinegunList = ["arifle_MX_SW_Black_F","arifle_MX_SW_F","LMG_Mk200_F","LMG_Zafir_F","MMG_01_hex_F","MMG_01_tan_F","MMG_02_black_F","MMG_02_camo_F","MMG_02_sand_F"]};
|
||||||
if (A3XAI_sniperList isEqualTo []) then {A3XAI_sniperList = ["arifle_MXM_Black_F","arifle_MXM_F","srifle_DMR_01_F","srifle_DMR_02_camo_F","srifle_DMR_02_F","srifle_DMR_02_sniper_F","srifle_DMR_03_F","srifle_DMR_03_khaki_F","srifle_DMR_03_multicam_F","srifle_DMR_03_tan_F","srifle_DMR_03_woodland_F","srifle_DMR_04_F","srifle_DMR_04_Tan_F","srifle_DMR_05_blk_F","srifle_DMR_05_hex_F","srifle_DMR_05_tan_f","srifle_DMR_06_camo_F","srifle_DMR_06_olive_F","srifle_EBR_F","srifle_GM6_camo_F","srifle_GM6_F","srifle_LRR_camo_F","srifle_LRR_F"]};
|
if (A3XAI_sniperList isEqualTo []) then {A3XAI_sniperList = ["arifle_MXM_Black_F","arifle_MXM_F","srifle_DMR_01_F","srifle_DMR_02_camo_F","srifle_DMR_02_F","srifle_DMR_02_sniper_F","srifle_DMR_03_F","srifle_DMR_03_khaki_F","srifle_DMR_03_multicam_F","srifle_DMR_03_tan_F","srifle_DMR_03_woodland_F","srifle_DMR_04_F","srifle_DMR_04_Tan_F","srifle_DMR_05_blk_F","srifle_DMR_05_hex_F","srifle_DMR_05_tan_f","srifle_DMR_06_camo_F","srifle_DMR_06_olive_F","srifle_EBR_F","srifle_GM6_camo_F","srifle_GM6_F","srifle_LRR_camo_F","srifle_LRR_F"]};
|
||||||
if (A3XAI_foodLoot isEqualTo []) then {A3XAI_foodLootCount = 0};
|
if (A3XAI_foodLoot isEqualTo []) then {A3XAI_foodLootCount = 0; A3XAI_foodLootVehicleCount = 0;};
|
||||||
if (A3XAI_MiscLoot isEqualTo []) then {A3XAI_miscLootCount = 0};
|
if (A3XAI_miscLoot isEqualTo []) then {A3XAI_miscLootCount = 0; A3XAI_miscLootVehicleCount = 0;};
|
||||||
|
if (A3XAI_medicalLoot isEqualTo []) then {A3XAI_medicalLootCount = 0; A3XAI_medicalLootVehicleCount = 0;};
|
||||||
if (A3XAI_airReinforcementVehicles isEqualTo []) then {A3XAI_maxAirReinforcements = 0; A3XAI_airReinforcementSpawnChance1 = 0; A3XAI_airReinforcementSpawnChance2 = 0; A3XAI_airReinforcementSpawnChance3 = 0;};
|
if (A3XAI_airReinforcementVehicles isEqualTo []) then {A3XAI_maxAirReinforcements = 0; A3XAI_airReinforcementSpawnChance1 = 0; A3XAI_airReinforcementSpawnChance2 = 0; A3XAI_airReinforcementSpawnChance3 = 0;};
|
||||||
|
|
||||||
diag_log format ["[A3XAI] Verified %1 unique classnames in %2 seconds.",(count _verified),(diag_tickTime - _startTime)];
|
diag_log format ["[A3XAI] Verified %1 unique classnames in %2 seconds.",(count _verified),(diag_tickTime - _startTime)];
|
||||||
|
@ -424,7 +424,14 @@ class CfgA3XAISettings {
|
|||||||
|
|
||||||
//AI types permitted to summon reinforcements. Default: airReinforcementAllowedFor[] = {"static","dynamic","random"};
|
//AI types permitted to summon reinforcements. Default: airReinforcementAllowedFor[] = {"static","dynamic","random"};
|
||||||
//Usable AI types: "static", "dynamic", "random", "air", "land", "staticcustom", "aircustom", "landcustom", "vehiclecrew"
|
//Usable AI types: "static", "dynamic", "random", "air", "land", "staticcustom", "aircustom", "landcustom", "vehiclecrew"
|
||||||
airReinforcementAllowedFor[] = {"static","dynamic","random"};
|
airReinforcementAllowedFor[] = {"static","dynamic","random","vehiclecrew","land","air"};
|
||||||
|
|
||||||
|
//Probability to deploy infantry AI. If chance roll fails, air vehicle will remain in area for duration defined by airReinforcementDuration0-3 and engage detected players
|
||||||
|
//Unarmed air vehicle will always have a 1.00 probability to deploy at least 1 infantry AI unit.
|
||||||
|
airReinforceDeployChance0 = 0.60;
|
||||||
|
airReinforceDeployChance1 = 0.70;
|
||||||
|
airReinforceDeployChance2 = 0.80;
|
||||||
|
airReinforceDeployChance3 = 0.90;
|
||||||
|
|
||||||
//Maximum time for reinforcement for armed air vehicles in seconds. AI air vehicle will leave the area after this time if not destroyed.
|
//Maximum time for reinforcement for armed air vehicles in seconds. AI air vehicle will leave the area after this time if not destroyed.
|
||||||
airReinforcementDuration0 = 120;
|
airReinforcementDuration0 = 120;
|
||||||
@ -635,6 +642,25 @@ class CfgA3XAISettings {
|
|||||||
//Maximum number of items to select from MiscLoot (generic loot) table. (Default: 2)
|
//Maximum number of items to select from MiscLoot (generic loot) table. (Default: 2)
|
||||||
miscLootCount = 2;
|
miscLootCount = 2;
|
||||||
|
|
||||||
|
/* AI loot quantity settings (Vehicle)
|
||||||
|
|
||||||
|
Note: A3XAI_vehiclesAllowedForPlayers = 1; must be set in order to enable the settings in this section
|
||||||
|
--------------------------------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
//Maximum number of weapons from pistolList, rifleList, machinegunList, sniperList found in vehicles recovered by players. (Default: 5)
|
||||||
|
weaponLootVehicleCount = 5;
|
||||||
|
|
||||||
|
//Maximum number of magazines to generate for each weapon loot added to vehicle inventory (Default: 3)
|
||||||
|
ammoLootPerWeapon = 3;
|
||||||
|
|
||||||
|
//Maximum number of food loot items from foodLoot found in vehicles recovered by players. (Default: 10)
|
||||||
|
foodLootVehicleCount = 2;
|
||||||
|
|
||||||
|
//Maximum number of items to select from miscLoot found in vehicles recovered by players. (Default: 10)
|
||||||
|
miscLootVehicleCount = 10;
|
||||||
|
|
||||||
|
//Maximum number of items to select from medicalLoot found in vehicles recovered by players. (Default: 5)
|
||||||
|
medicalLootVehicleCount = 3;
|
||||||
|
|
||||||
/* AI loot probability settings. AI loot is pre-generated into a pool for each unit and randomly pulled to units as time passes.
|
/* AI loot probability settings. AI loot is pre-generated into a pool for each unit and randomly pulled to units as time passes.
|
||||||
--------------------------------------------------------------------------------------------------------------------*/
|
--------------------------------------------------------------------------------------------------------------------*/
|
||||||
@ -731,6 +757,11 @@ class CfgA3XAISettings {
|
|||||||
foodLoot[] = {"Exile_Item_GloriousKnakworst","Exile_Item_SausageGravy","Exile_Item_ChristmasTinner","Exile_Item_BBQSandwich","Exile_Item_Surstromming","Exile_Item_Catfood","Exile_Item_PlasticBottleFreshWater","Exile_Item_Beer","Exile_Item_Energydrink"};
|
foodLoot[] = {"Exile_Item_GloriousKnakworst","Exile_Item_SausageGravy","Exile_Item_ChristmasTinner","Exile_Item_BBQSandwich","Exile_Item_Surstromming","Exile_Item_Catfood","Exile_Item_PlasticBottleFreshWater","Exile_Item_Beer","Exile_Item_Energydrink"};
|
||||||
miscLoot[] = {"Exile_Item_Rope","Exile_Item_DuctTape","Exile_Item_ExtensionCord","Exile_Item_FuelCanisterEmpty","Exile_Item_JunkMetal","Exile_Item_LightBulb","Exile_Item_MetalBoard","Exile_Item_MetalPole","Exile_Item_CamoTentKit"};
|
miscLoot[] = {"Exile_Item_Rope","Exile_Item_DuctTape","Exile_Item_ExtensionCord","Exile_Item_FuelCanisterEmpty","Exile_Item_JunkMetal","Exile_Item_LightBulb","Exile_Item_MetalBoard","Exile_Item_MetalPole","Exile_Item_CamoTentKit"};
|
||||||
|
|
||||||
|
//AI Medical item types.
|
||||||
|
// Note: medicalLoot will not be read if generateMedicalFood is enabled.
|
||||||
|
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
medicalLoot[] = {"Exile_Item_InstaDoc","Exile_Item_Bandage","Exile_Item_Vishpirin"};
|
||||||
|
|
||||||
|
|
||||||
//AI toolbelt item types. Toolbelt items are added to AI inventory upon death. Format: [item classname, item probability]
|
//AI toolbelt item types. Toolbelt items are added to AI inventory upon death. Format: [item classname, item probability]
|
||||||
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
11
5. Changelogs/0.2.2.txt
Normal file
11
5. Changelogs/0.2.2.txt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
A3XAI 0.2.2
|
||||||
|
|
||||||
|
Files changed:
|
||||||
|
A3XAI.pbo update required: Yes
|
||||||
|
A3XAI_config.pbo update required: Yes
|
||||||
|
Headless Client Files/Keys update required: Removed
|
||||||
|
A3XAI Client Addon update required: No
|
||||||
|
|
||||||
|
[Changed] AI Reinforcement to allow for paratroopers
|
||||||
|
[Added] Randomised configurable vehicle loot
|
||||||
|
[Fixed] Fixed vehicle type detection (Air, Land) for kill types (was updated prior to now but I forget to update it here
|
Binary file not shown.
@ -1,5 +1,7 @@
|
|||||||
A3XAI - Current Version: 0.2.1
|
A3XAI - Current Version: 0.2.2
|
||||||
=====
|
=====
|
||||||
|
Updated to include vehicle loot and paratrooper reinforcements by Porkeld
|
||||||
|
---
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
---
|
---
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
Listed in absolutely no particular order:
|
|
||||||
|
|
||||||
1. Prerelease Build Test Volunteers:
|
|
||||||
Darth Rogue
|
|
||||||
Dirty Sanchez
|
|
||||||
Tobias Solem
|
|
||||||
Dobrowney
|
|
||||||
Skare
|
|
||||||
|
|
||||||
2. Other works used:
|
|
||||||
BIN_taskPatrol: BIS, Binesi, Wolffy.au
|
|
||||||
SHK_Pos: Shuko
|
|
||||||
Code excerpts used to support Exile features: Exile Mod devs @ http://www.exilemod.com/
|
|
||||||
|
|
||||||
If you have contributed your effort or works towards development of A3XAI and were not credited, please notify me ASAP. Username on Exile mod forums: http://www.exilemod.com/profile/66-face/
|
|
Loading…
Reference in New Issue
Block a user