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;