diff --git a/AI/civilian.sqf b/AI/civilian.sqf
index 1214b133..6e99efcf 100644
--- a/AI/civilian.sqf
+++ b/AI/civilian.sqf
@@ -30,6 +30,20 @@ _unit addEventHandler ["FiredNear", {
_u disableAI "fsm";
}];
+_unit addEventHandler ["HandleDamage", {
+ _me = _this select 0;
+ _dmg = _this select 2;
+ _src = _this select 3;
+ _proj = _this select 4;
+ _veh = vehicle _src;
+ if(_veh != _src) then {
+ if((driver _veh) == _src) then {
+ _dmg = 0;
+ };
+ };
+ _dmg;
+}];
+
while {alive _unit} do {
_s = _unit getVariable ["scared",-1];
if(_s > -1) then {
diff --git a/AI/criminal.sqf b/AI/criminal.sqf
index 593b9f63..dbe02718 100644
--- a/AI/criminal.sqf
+++ b/AI/criminal.sqf
@@ -4,4 +4,19 @@ _unit = _this select 0;
_town = _this select 1;
_unit setVariable ["criminal",true,false];
-_unit setVariable ["town",_town,false];
\ No newline at end of file
+_unit setVariable ["town",_town,false];
+
+_unit addEventHandler ["HandleDamage", {
+ _me = _this select 0;
+ _src = _this select 3;
+ if(isPlayer _src) then {
+ if((vehicle _src) != _src or (_src call unitSeenCRIM)) then {
+ _src setCaptive false;
+ {
+ if(side _x == east) then {
+ _x reveal [_src,1.5];
+ };
+ }foreach(_src nearentities ["Man",50]);
+ };
+ };
+}];
\ No newline at end of file
diff --git a/AI/military.sqf b/AI/military.sqf
index 5b2f7c53..1c4b72e9 100644
--- a/AI/military.sqf
+++ b/AI/military.sqf
@@ -1 +1,16 @@
-_unit = _this select 0;
\ No newline at end of file
+_unit = _this select 0;
+
+_unit addEventHandler ["HandleDamage", {
+ _me = _this select 0;
+ _src = _this select 3;
+ if(isPlayer _src) then {
+ if((vehicle _src) != _src or (_src call unitSeenNATO)) then {
+ _src setCaptive false;
+ {
+ if(side _x == west) then {
+ _x reveal [_src,1.5];
+ };
+ }foreach(_src nearentities ["Man",50]);
+ };
+ };
+}];
\ No newline at end of file
diff --git a/AI/police.sqf b/AI/police.sqf
index cf6e0185..13273af8 100644
--- a/AI/police.sqf
+++ b/AI/police.sqf
@@ -8,6 +8,21 @@ _unit setVariable ["garrison",_town,false];
_stability = server getVariable format["stability%1",_town];
+_unit addEventHandler ["HandleDamage", {
+ _me = _this select 0;
+ _src = _this select 3;
+ if(isPlayer _src) then {
+ if((vehicle _src) != _src or (_src call unitSeenNATO)) then {
+ _src setCaptive false;
+ {
+ if(side _x == west) then {
+ _x reveal [_src,1.5];
+ };
+ }foreach(_src nearentities ["Man",50]);
+ };
+ };
+}];
+
_skill = 0.5;
if(_stability < 60) then {
_skill = 0.6;
diff --git a/VCOMAI/functions/VCOMAI_ClosestAllyWarn.sqf b/VCOMAI/functions/VCOMAI_ClosestAllyWarn.sqf
index 840a282b..71874103 100644
--- a/VCOMAI/functions/VCOMAI_ClosestAllyWarn.sqf
+++ b/VCOMAI/functions/VCOMAI_ClosestAllyWarn.sqf
@@ -5,29 +5,6 @@ private ["_Unit","_Wall","_Direction","_Killer","_UnitSide","_NoFlanking","_Grab
_Unit = _this select 0;
-_Unit spawn
-{
-sleep 8;
-private ["_Wall"];
- _Direction = 0;
- for "_i" from 0 to 1 step 1 do
- {
- _Wall = "Land_InvisibleBarrier_F" createvehiclelocal (getpos _this);
- _Wall disableCollisionWith _this;
- _Wall setDir _Direction;
- _Wall setposATL (getposATL _this);
-
-
- //[[_Wall],"DisableCollisionALL"] call BIS_fnc_MP;
- [_Wall] remoteExec ["DisableCollisionALL",0];
- _Wall disableCollisionWith player;
-
- _Wall spawn {sleep 120;deletevehicle _this;};
- _Direction = 90;
- };
-};
-
-
if !(side _unit in VCOM_SideBasedMovement) exitWith {};
diff --git a/VCOMAI/functions/VCOMAI_DefaultSettings.sqf b/VCOMAI/functions/VCOMAI_DefaultSettings.sqf
index 6a6bd24f..3566aa7c 100644
--- a/VCOMAI/functions/VCOMAI_DefaultSettings.sqf
+++ b/VCOMAI/functions/VCOMAI_DefaultSettings.sqf
@@ -47,7 +47,7 @@ ArtilleryArray = [];
AccuracyFunctionRank6 = {
_Unit = _this select 0;
-_Unit setSkill ["aimingAccuracy",(0.6 + (random 0.1))];
+_Unit setSkill ["aimingAccuracy",(0.4 + (random 0.3))];
_Unit setSkill ["aimingShake",(0.6 + (random 0.1))];
_Unit setSkill ["spotDistance",1];
_Unit setSkill ["spotTime",1];
@@ -62,8 +62,8 @@ _Unit setSkill ["reloadSpeed",(0.2 + (random 0.3))];
AccuracyFunctionRank5 = {
_Unit = _this select 0;
-_Unit setSkill ["aimingAccuracy",(0.6 + (random 0.1))];
-_Unit setSkill ["aimingShake",(0.6 + (random 0.1))];
+_Unit setSkill ["aimingAccuracy",(0.4 + (random 0.2))];
+_Unit setSkill ["aimingShake",(0.5 + (random 0.1))];
_Unit setSkill ["spotDistance",1];
_Unit setSkill ["spotTime",1];
_Unit setSkill ["courage",(0.6 + (random 0.3))];
@@ -77,8 +77,8 @@ _Unit setSkill ["reloadSpeed",(0.3 + (random 0.3))];
AccuracyFunctionRank4 = {
_Unit = _this select 0;
-_Unit setSkill ["aimingAccuracy",(0.6 + (random 0.1))];
-_Unit setSkill ["aimingShake",(0.6 + (random 0.1))];
+_Unit setSkill ["aimingAccuracy",(0.3 + (random 0.3))];
+_Unit setSkill ["aimingShake",(0.4 + (random 0.1))];
_Unit setSkill ["spotDistance",0.9];
_Unit setSkill ["spotTime",1];
_Unit setSkill ["courage",(0.5 + (random 0.3))];
@@ -92,8 +92,8 @@ _Unit setSkill ["reloadSpeed",(0.4 + (random 0.3))];
AccuracyFunctionRank3 = {
_Unit = _this select 0;
-_Unit setSkill ["aimingAccuracy",(0.5 + (random 0.1))];
-_Unit setSkill ["aimingShake",(0.5 + (random 0.1))];
+_Unit setSkill ["aimingAccuracy",(0.3 + (random 0.2))];
+_Unit setSkill ["aimingShake",(0.3 + (random 0.1))];
_Unit setSkill ["spotDistance",0.8];
_Unit setSkill ["spotTime",1];
_Unit setSkill ["courage",(0.4 + (random 0.3))];
@@ -107,8 +107,8 @@ _Unit setSkill ["reloadSpeed",(0.5 + (random 0.3))];
AccuracyFunctionRank2 = {
_Unit = _this select 0;
-_Unit setSkill ["aimingAccuracy",(0.4 + (random 0.1))];
-_Unit setSkill ["aimingShake",(0.4 + (random 0.1))];
+_Unit setSkill ["aimingAccuracy",(0.2 + (random 0.3))];
+_Unit setSkill ["aimingShake",(0.2 + (random 0.1))];
_Unit setSkill ["spotDistance",0.7];
_Unit setSkill ["spotTime",1];
_Unit setSkill ["courage",(0.3 + (random 0.3))];
@@ -122,8 +122,8 @@ _Unit setSkill ["reloadSpeed",(0.6 + (random 0.3))];
AccuracyFunctionRank1 = {
_Unit = _this select 0;
-_Unit setSkill ["aimingAccuracy",(0.3 + (random 0.1))];
-_Unit setSkill ["aimingShake",(0.3 + (random 0.1))];
+_Unit setSkill ["aimingAccuracy",(0.2 + (random 0.2))];
+_Unit setSkill ["aimingShake",(0.1 + (random 0.1))];
_Unit setSkill ["spotDistance",0.6];
_Unit setSkill ["spotTime",1];
_Unit setSkill ["courage",(0.2 + (random 0.3))];
@@ -138,7 +138,7 @@ AccuracyFunctionRank0 = {
_Unit = _this select 0;
_Unit setSkill ["aimingAccuracy",(0.2 + (random 0.1))];
-_Unit setSkill ["aimingShake",(0.2 + (random 0.1))];
+_Unit setSkill ["aimingShake",(random 0.1)];
_Unit setSkill ["spotDistance",0.5];
_Unit setSkill ["spotTime",1];
_Unit setSkill ["courage",(0.2 + (random 0.3))];
diff --git a/dialogs/stats.hpp b/dialogs/stats.hpp
index 845f4b55..f2099e77 100644
--- a/dialogs/stats.hpp
+++ b/dialogs/stats.hpp
@@ -26,14 +26,14 @@ class RscTitles {
x = safezoneX + (0.8 * safezoneW);
y = safezoneY + (0.15 * safezoneH);
w = 0.19 * safezoneW;
- h = 0.0660106 * safezoneH;
+ h = 0.1 * safezoneH;
size = 0.055;//0.020
colorBackground[] = {0,0,0,0};
colorText[] = {0.34,0.33,0.33,0};//{1,1,1,1}
text = "";
- font = "PuristaSemiBold";
+ font = "PuristaLight";
class Attributes {
- font = "PuristaSemiBold";
+ font = "PuristaLight";
color = "#C1C0BB";//"#FFFFFF";
align = "RIGHT";
valign = "top";
diff --git a/initPlayerLocal.sqf b/initPlayerLocal.sqf
index 8843bdd1..4be986a5 100644
--- a/initPlayerLocal.sqf
+++ b/initPlayerLocal.sqf
@@ -12,11 +12,14 @@ removeVest player;
player linkItem "ItemMap";
+
if(isMultiplayer and (!isServer)) then {
call compile preprocessFileLineNumbers "initFuncs.sqf";
call compile preprocessFileLineNumbers "initVar.sqf";
};
+player forceAddUniform (AIT_clothes_locals call BIS_fnc_selectRandom);
+
if(player == bigboss) then {
waitUntil {!(isnull (findDisplay 46))};
sleep 1;
@@ -26,15 +29,26 @@ if(player == bigboss) then {
};
waitUntil {sleep 1;server getVariable ["StartupType",""] != ""};
-
-player forceAddUniform (AIT_clothes_locals call BIS_fnc_selectRandom);
-
_newplayer = true;
_furniture = [];
_town = "";
_pos = [];
_housepos = [];
+player addEventHandler ["HandleDamage", {
+ _me = _this select 0;
+ _dmg = _this select 2;
+ _src = _this select 3;
+ _proj = _this select 4;
+ _veh = vehicle _src;
+ if(_veh != _src) then {
+ if((driver _veh) == _src) then {
+ _dmg = _dmg * 0.01;
+ };
+ };
+ _dmg;
+}];
+
if(isMultiplayer || (server getVariable "StartupType") == "LOAD") then {
_data = server getvariable (getplayeruid player);
if !(isNil "_data") then {
diff --git a/mission.sqm b/mission.sqm
index 9c9a4a78..9a6c32da 100644
--- a/mission.sqm
+++ b/mission.sqm
@@ -8,7 +8,7 @@ class EditorData
toggles=10;
class ItemIDProvider
{
- nextID=1317;
+ nextID=1318;
};
class MarkerIDProvider
{
@@ -16,7 +16,7 @@ class EditorData
};
class LayerIndexProvider
{
- nextID=47;
+ nextID=48;
};
class Camera
{
@@ -38,13 +38,14 @@ addons[]=
"ace_medical",
"A3_Characters_F_Exp_Civil",
"A3_Boat_F_Exp_Boat_Transport_02",
- "CUP_WaterVehicles_Fregata"
+ "CUP_WaterVehicles_Fregata",
+ "A3_Modules_F_Curator_Curator"
};
class AddonsMetaData
{
class List
{
- items=9;
+ items=10;
class Item0
{
className="A3_Modules_F";
@@ -104,6 +105,13 @@ class AddonsMetaData
className="CUP_WaterVehicles_Fregata";
name="CUP_WaterVehicles_Fregata";
};
+ class Item9
+ {
+ className="A3_Modules_F_Curator";
+ name="Arma 3 Zeus Update - Scripted Modules";
+ author="Bohemia Interactive";
+ url="http://www.arma3.com";
+ };
};
};
randomSeed=2938931;
@@ -567,7 +575,7 @@ class Mission
};
class Entities
{
- items=28;
+ items=29;
class Item0
{
dataType="Logic";
@@ -3567,5 +3575,115 @@ class Mission
type="CUP_B_Frigate_ANZAC";
atlOffset=11.208818;
};
+ class Item28
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={1990.705,30.77953,11241.978};
+ };
+ id=1317;
+ type="ModuleCurator_F";
+ atlOffset=1.9073486e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ModuleCurator_F_Owner";
+ expression="_this setVariable ['Owner',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="bigboss";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="ModuleCurator_F_Forced";
+ expression="_this setVariable ['Forced',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ModuleCurator_F_Name";
+ expression="_this setVariable ['Name',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="";
+ };
+ };
+ };
+ class Attribute3
+ {
+ property="ModuleInfo";
+ expression="false";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ class Attribute4
+ {
+ property="ModuleCurator_F_Addons";
+ expression="_this setVariable ['Addons',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=2;
+ };
+ };
+ };
+ nAttributes=5;
+ };
+ };
};
};
diff --git a/spawners/insertion/reGarrisonTown.sqf b/spawners/insertion/reGarrisonTown.sqf
index cd577445..5400d3b3 100644
--- a/spawners/insertion/reGarrisonTown.sqf
+++ b/spawners/insertion/reGarrisonTown.sqf
@@ -60,12 +60,11 @@ if(_stability < 25) then {
while {_count < _num} do {
_start = [_spawnpos,[10,29],random 360] call SHK_pos;
_civ = _group createUnit [AIT_NATO_Units_LevelTwo call BIS_fnc_selectRandom, _start, [],0, "NONE"];
- _civ setRank "CAPTAIN";
+ _civ setRank "SERGEANT";
_police pushBack _civ;
[_civ,_town] call initPolice;
_count = _count + 1;
sleep 0.1;
- _townPos spawn CTRGsupport;
};
}else{
if(_stability < 40 and (random 100) > 50) then {
@@ -75,7 +74,7 @@ if(_stability < 25) then {
while {_count < _num} do {
_start = [_spawnpos,[10,29],random 360] call SHK_pos;
_civ = _group createUnit [AIT_NATO_Unit_Police, _start, [],0, "NONE"];
- _civ setRank "SERGEANT";
+ _civ setRank "CORPORAL";
_police pushBack _civ;
[_civ,_town] call initPolice;
@@ -111,7 +110,7 @@ _police pushBack _veh;
_start = [_spawnpos,[10,29],random 360] call SHK_pos;
_civ = _group createUnit [AIT_NATO_Unit_PoliceCommander, _start, [],0, "NONE"];
_civ setVariable ["garrison",_town,false];
-_civ setRank "CAPTAIN";
+_civ setRank "CORPORAL";
_civ moveInCargo _veh;
_police pushBack _civ;
[_civ,_town] call initPolice;
@@ -122,7 +121,7 @@ if(_stability > 50) then {
sleep 0.1;
_start = [_spawnpos,[10,29],random 360] call SHK_pos;
_civ = _group createUnit [AIT_NATO_Unit_Police, _start, [],0, "NONE"];
-_civ setRank "SERGEANT";
+_civ setRank "PRIVATE";
_civ moveInCargo _veh;
_civ setVariable ["garrison",_town,false];
diff --git a/stats.sqf b/stats.sqf
index bff0e87f..f0baaaf0 100644
--- a/stats.sqf
+++ b/stats.sqf
@@ -46,7 +46,7 @@ while {alive player} do {
};
};
};
- _txt = format ["$%1
%2
%3
%4", [player getVariable "money", 1, 0, true] call CBA_fnc_formatNumber,_standing,_seen,_wanted];
+ _txt = format ["$%1
%2
%3
%4", [player getVariable "money", 1, 0, true] call CBA_fnc_formatNumber,_standing,_seen,_wanted];
if (_txt != _currentTxt) then {
_setText ctrlSetStructuredText (parseText format ["%1", _txt]);
_setText ctrlCommit 0;