v13 tweaks
This commit is contained in:
parent
d0f81fc838
commit
f48e02f403
@ -37,7 +37,7 @@ SC_SurvivorsChance = 33; // chance in % to spawn surv
|
|||||||
|
|
||||||
|
|
||||||
// Occupation Military (roaming AI near military buildings)
|
// Occupation Military (roaming AI near military buildings)
|
||||||
SC_occupyMilitary = false; // true if you want military buildings patrolled (specify which types of building below)
|
SC_occupyMilitary = true; // true if you want military buildings patrolled (specify which types of building below)
|
||||||
|
|
||||||
SC_buildings = [ "Land_Cargo_Patrol_V1_F","Land_i_Barracks_V1_F","Land_i_Barracks_V1_dam_F", "Land_i_Barracks_V2_F",
|
SC_buildings = [ "Land_Cargo_Patrol_V1_F","Land_i_Barracks_V1_F","Land_i_Barracks_V1_dam_F", "Land_i_Barracks_V2_F",
|
||||||
"Land_Cargo_House_V1_F","Land_Cargo_HQ_V1_F","Land_Cargo_HQ_V2_F","Land_Cargo_HQ_V3_F","Land_Cargo_Patrol_V2_F",
|
"Land_Cargo_House_V1_F","Land_Cargo_HQ_V1_F","Land_Cargo_HQ_V2_F","Land_Cargo_HQ_V3_F","Land_Cargo_Patrol_V2_F",
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// Server Occupation script by second_coming
|
// Server Occupation script by second_coming
|
||||||
//
|
//
|
||||||
SC_occupationVersion = "v12 (13-04-2016)";
|
SC_occupationVersion = "v13 (13-04-2016)";
|
||||||
//
|
//
|
||||||
// http://www.exilemod.com/profile/60-second_coming/
|
// http://www.exilemod.com/profile/60-second_coming/
|
||||||
//
|
//
|
||||||
@ -43,6 +43,7 @@ SC_occupationVersion = "v12 (13-04-2016)";
|
|||||||
SC_fnc_getIn = compile preprocessFileLineNumbers "\x\addons\a3_exile_occupation\scripts\reactions\getIn.sqf";
|
SC_fnc_getIn = compile preprocessFileLineNumbers "\x\addons\a3_exile_occupation\scripts\reactions\getIn.sqf";
|
||||||
SC_fnc_refuel = compile preprocessFileLineNumbers "\x\addons\a3_exile_occupation\scripts\reactions\refuel.sqf";
|
SC_fnc_refuel = compile preprocessFileLineNumbers "\x\addons\a3_exile_occupation\scripts\reactions\refuel.sqf";
|
||||||
SC_fnc_comeUnstuck = compile preprocessFileLineNumbers "\x\addons\a3_exile_occupation\scripts\reactions\comeUnstuck.sqf";
|
SC_fnc_comeUnstuck = compile preprocessFileLineNumbers "\x\addons\a3_exile_occupation\scripts\reactions\comeUnstuck.sqf";
|
||||||
|
SC_fnc_unitMPHit = compile preprocessFileLineNumbers "\x\addons\a3_exile_occupation\scripts\reactions\unitMPHit.sqf";
|
||||||
|
|
||||||
_logDetail = "=============================================================================================================";
|
_logDetail = "=============================================================================================================";
|
||||||
[_logDetail] call SC_fnc_log;
|
[_logDetail] call SC_fnc_log;
|
||||||
|
@ -30,29 +30,28 @@ if(diag_fps < _minFPS) exitWith
|
|||||||
|
|
||||||
_aiActive = {alive _x && (side _x == EAST OR side _x == WEST)} count allUnits;
|
_aiActive = {alive _x && (side _x == EAST OR side _x == WEST)} count allUnits;
|
||||||
|
|
||||||
//_aiActive = count(_spawnCenter nearEntities ["O_recon_F", _maxDistance+1000]);
|
|
||||||
if(_aiActive > _maxAIcount) exitWith
|
if(_aiActive > _maxAIcount) exitWith
|
||||||
{
|
{
|
||||||
_logDetail = format ["[OCCUPATION Military]:: %1 active AI, so not spawning AI this time",_aiActive];
|
_logDetail = format ["[OCCUPATION Military]:: %1 active AI, so not spawning AI this time",_aiActive];
|
||||||
[_logDetail] call SC_fnc_log;
|
[_logDetail] call SC_fnc_log;
|
||||||
};
|
};
|
||||||
|
|
||||||
for [{_i = 0},{_i < (count _buildings)},{_i =_i + 1}] do
|
|
||||||
{
|
{
|
||||||
_logDetail = format ["[OCCUPATION Military]:: scanning buildings around %2 started at %1",time,_areaToScan];
|
_logDetail = format ["[OCCUPATION Military]:: scanning buildings around %2 started at %1",time,_areaToScan];
|
||||||
[_logDetail] call SC_fnc_log;
|
[_logDetail] call SC_fnc_log;
|
||||||
|
|
||||||
_currentBuilding = _buildings select _i;
|
_currentBuilding = _x;
|
||||||
_building = _areaToScan nearObjects [_currentBuilding, 750];
|
_building = _areaToScan nearObjects [_currentBuilding, 750];
|
||||||
|
|
||||||
_logDetail = format ["[OCCUPATION Military]:: scan for %2 building finished at %1",time,_currentBuilding];
|
_logDetail = format ["[OCCUPATION Military]:: scan for %2 building finished at %1",time,_currentBuilding];
|
||||||
[_logDetail] call SC_fnc_log;
|
[_logDetail] call SC_fnc_log;
|
||||||
|
|
||||||
for [{_n = 0},{_n < (count _building)-1},{_n =_n + 1}] do
|
|
||||||
{
|
{
|
||||||
_okToSpawn = true;
|
_okToSpawn = true;
|
||||||
Sleep 0.1;
|
Sleep 0.1;
|
||||||
_foundBuilding = (_building select _n);
|
_foundBuilding = _x;
|
||||||
_location = getPos _foundBuilding;
|
_location = getPos _foundBuilding;
|
||||||
_pos = [_location select 0, _location select 1, 0];
|
_pos = [_location select 0, _location select 1, 0];
|
||||||
|
|
||||||
@ -114,7 +113,7 @@ for [{_i = 0},{_i < (count _buildings)},{_i =_i + 1}] do
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Don't spawn additional AI if there are players in range
|
// Don't spawn additional AI if there are players in range
|
||||||
if([_pos, 200] call ExileClient_util_world_isAlivePlayerInRange) exitwith
|
if([_pos, 250] call ExileClient_util_world_isAlivePlayerInRange) exitwith
|
||||||
{
|
{
|
||||||
_okToSpawn = false;
|
_okToSpawn = false;
|
||||||
if(SC_extendedLogging) then
|
if(SC_extendedLogging) then
|
||||||
@ -218,7 +217,7 @@ for [{_i = 0},{_i < (count _buildings)},{_i =_i + 1}] do
|
|||||||
_okToSpawn = false;
|
_okToSpawn = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
}foreach _building;
|
||||||
};
|
}foreach _buildings;
|
||||||
_logDetail = "[OCCUPATION Military]: Ended";
|
_logDetail = "[OCCUPATION Military]: Ended";
|
||||||
[_logDetail] call SC_fnc_log;
|
[_logDetail] call SC_fnc_log;
|
@ -198,6 +198,7 @@ _locations = (nearestLocations [_spawnCenter, ["NameVillage","NameCity", "NameCi
|
|||||||
[_unit] joinSilent _group;
|
[_unit] joinSilent _group;
|
||||||
if(_side == "survivor") then
|
if(_side == "survivor") then
|
||||||
{
|
{
|
||||||
|
_unit addMPEventHandler ["mphit", "_this call SC_fnc_unitMPHit;"];
|
||||||
removeUniform _unit;
|
removeUniform _unit;
|
||||||
_unit forceAddUniform "Exile_Uniform_BambiOverall";
|
_unit forceAddUniform "Exile_Uniform_BambiOverall";
|
||||||
if(SC_debug) then
|
if(SC_debug) then
|
||||||
@ -294,12 +295,14 @@ _locations = (nearestLocations [_spawnCenter, ["NameVillage","NameCity", "NameCi
|
|||||||
[_unit] joinSilent _group2;
|
[_unit] joinSilent _group2;
|
||||||
if(_side == "survivor") then
|
if(_side == "survivor") then
|
||||||
{
|
{
|
||||||
|
_unit addMPEventHandler ["mphit", "_this call SC_fnc_unitMPHit;"];
|
||||||
removeUniform _unit;
|
removeUniform _unit;
|
||||||
_unit forceAddUniform "Exile_Uniform_BambiOverall";
|
_unit forceAddUniform "Exile_Uniform_BambiOverall";
|
||||||
if(SC_debug) then
|
if(SC_debug) then
|
||||||
{
|
{
|
||||||
_tag = createVehicle ["Sign_Arrow_Green_F", position _unit, [], 0, "CAN_COLLIDE"];
|
_tag = createVehicle ["Sign_Arrow_Green_F", position _unit, [], 0, "CAN_COLLIDE"];
|
||||||
_tag attachTo [_unit,[0,0,0.6],"Head"];
|
_tag attachTo [_unit,[0,0,0.6],"Head"];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -309,7 +312,6 @@ _locations = (nearestLocations [_spawnCenter, ["NameVillage","NameCity", "NameCi
|
|||||||
_tag attachTo [_unit,[0,0,0.6],"Head"];
|
_tag attachTo [_unit,[0,0,0.6],"Head"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}foreach units _initialGroup2;
|
}foreach units _initialGroup2;
|
||||||
|
|
||||||
[_group2, _pos, _groupRadius] call bis_fnc_taskPatrol;
|
[_group2, _pos, _groupRadius] call bis_fnc_taskPatrol;
|
||||||
|
@ -197,6 +197,7 @@ if(_vehiclesToSpawn >= 1) then
|
|||||||
_unit = [_group,_spawnLocation,"assault","random",_side,"Vehicle"] call DMS_fnc_SpawnAISoldier;
|
_unit = [_group,_spawnLocation,"assault","random",_side,"Vehicle"] call DMS_fnc_SpawnAISoldier;
|
||||||
if(_side == "survivor") then
|
if(_side == "survivor") then
|
||||||
{
|
{
|
||||||
|
_unit addMPEventHandler ["mphit", "_this call SC_fnc_unitMPHit;"];
|
||||||
removeUniform _unit;
|
removeUniform _unit;
|
||||||
_unit forceAddUniform "Exile_Uniform_BambiOverall";
|
_unit forceAddUniform "Exile_Uniform_BambiOverall";
|
||||||
};
|
};
|
||||||
@ -209,6 +210,7 @@ if(_vehiclesToSpawn >= 1) then
|
|||||||
_unit = [_group,_spawnLocation,"assault","random",_side,"Vehicle"] call DMS_fnc_SpawnAISoldier;
|
_unit = [_group,_spawnLocation,"assault","random",_side,"Vehicle"] call DMS_fnc_SpawnAISoldier;
|
||||||
if(_side == "survivor") then
|
if(_side == "survivor") then
|
||||||
{
|
{
|
||||||
|
_unit addMPEventHandler ["mphit", "_this call SC_fnc_unitMPHit;"];
|
||||||
removeUniform _unit;
|
removeUniform _unit;
|
||||||
_unit forceAddUniform "Exile_Uniform_BambiOverall";
|
_unit forceAddUniform "Exile_Uniform_BambiOverall";
|
||||||
};
|
};
|
||||||
|
21
scripts/reactions/unitMPHit.sqf
Normal file
21
scripts/reactions/unitMPHit.sqf
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Get the variables from the event handler
|
||||||
|
_unit = _this select 0;
|
||||||
|
_aggressor = _this select 1;
|
||||||
|
_damage = _this select 2;
|
||||||
|
|
||||||
|
// remove the eventhandler to stop it triggering multiple times simultaneously
|
||||||
|
_unit removeAllMPEventHandlers "mphit";
|
||||||
|
|
||||||
|
if (side _aggressor == RESISTANCE) then
|
||||||
|
{
|
||||||
|
// Make victim and his group aggressive to players
|
||||||
|
_group = group _unit;
|
||||||
|
_group reveal [_aggressor, 2.5];
|
||||||
|
_group moveTo (position _aggressor);
|
||||||
|
};
|
||||||
|
|
||||||
|
if(alive _unit) then
|
||||||
|
{
|
||||||
|
// reapply the eventhandler
|
||||||
|
_unit addMPEventHandler ["mphit", "_this call SC_fnc_unitMPHit;"];
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user