diff --git a/Missionframework/KPLIB_config.sqf b/Missionframework/KPLIB_config.sqf
index 417677657..cc9a7def7 100644
--- a/Missionframework/KPLIB_config.sqf
+++ b/Missionframework/KPLIB_config.sqf
@@ -188,12 +188,12 @@ KPLIB_height_halo = 2500;
// Range to activate a sector.
KPLIB_range_sectorActivation = 1000;
KPLIB_range_capitalActivation = 1250;
-KPLIB_range_cityActivation = 750;
-KPLIB_range_factoryActivation = 500;
+KPLIB_range_cityActivation = 1000;
+KPLIB_range_factoryActivation = 750;
KPLIB_range_militaryActivation = 1500;
KPLIB_range_towerActivation = 500;
-KPLIB_range_airSpawnActivation = 500;
-KPLIB_range_pointActivation = 500;
+KPLIB_range_airSpawnActivation = 1500;
+KPLIB_range_pointActivation = 1000;
// Range to capture a sector.
KPLIB_range_sectorCapture = 175;
diff --git a/Missionframework/KPLIB_transportConfigs.sqf b/Missionframework/KPLIB_transportConfigs.sqf
index 3351291f0..567131ba9 100644
--- a/Missionframework/KPLIB_transportConfigs.sqf
+++ b/Missionframework/KPLIB_transportConfigs.sqf
@@ -14,6 +14,9 @@
// Vehicle transport configs
KPLIB_transportConfigs = [
+ ["PRACS_SLA_URAL_Open", -6.5, [0,0,0.32],[0,-1.8,0.32]],
+ ["PRACS_SLA_Ural_flat_bed", -6.5, [0.73,0,0.32],[-0.73,0,0.32],[0.73,-1.4,0.32],[-0.73,-1.4,0.32],[0.73,-2.8,0.32],[-0.73,-2.8,0.32]],
+ ["PRACS_SLA_MAZ_Transport", -6.5, [0.8,0.8,2.25],[-0.8,0.8,2.25],[0.8,-0.7,2.25],[-0.8,-0.7,2.25],[0.8,-2.2,2.25],[-0.8,-2.2,2.25],[0.8,-3.7,2.25],[-0.8,-3.7,2.25],[0.8,-5.2,2.25],[-0.8,-5.2,2.25]],
["PRACS_m548", -6.5, [0.2,-0.2,-0.35],[0.2,-1.6,-0.35]],
["PRACS_M250", -6.5, [0,-1.0,2.12],[0,-2.5,2.12],[0,-4.0,2.12]],
["PRACS_M250_flat_bed", -6.5, [0.66,-1.0,2.12],[-0.79,-1.0,2.12],[0.66,-2.5,2.12],[-0.79,-2.5,2.12],[0.66,-4.0,2.12],[-0.79,-4.0,2.12]],
@@ -27,7 +30,17 @@ KPLIB_transportConfigs = [
["rhsusf_mtvr_mk27_d", -6.5, [0,0.9,0.1],[0,-0.6,0.1],[0,-2.1,0.1],[0,-3.6,0.1]],
["rhsusf_mtvr_mk27_apk_d", -6.5, [0,0.9,-0.3],[0,-0.6,-0.3],[0,-2.1,-0.3],[0,-3.6,-0.3]],
["rhsusf_mtvr_mk27_apk_m2_d", -6.5, [0,0.9,-0.75],[0,-0.6,-0.75],[0,-2.1,-0.75],[0,-3.6,-0.75]],
+ ["rhsusf_mtvr_mk23_wd", -6.5, [0,-0.4,0.1],[0,-2.4,0.1]],
+ ["rhsusf_mtvr_mk23_apk_wd", -6.5, [0,-0.4,-0.3],[0,-2.4,-0.3]],
+ ["rhsusf_mtvr_mk23_apk_m2_wd", -6.5, [0,-0.4,-0.75],[0,-2.4,-0.75]],
+ ["rhsusf_mtvr_mk37_wd", -6.5, [0,0.5,0.1],[0,-1.0,0.1],[0,-2.5,0.1]],
+ ["rhsusf_mtvr_mk37_apk_wd", -6.5, [0,0.5,-0.3],[0,-1.0,-0.3],[0,-2.5,-0.3]],
+ ["rhsusf_mtvr_mk37_apk_m2_wd", -6.5, [0,0.5,-0.75],[0,-1.0,-0.75],[0,-2.5,-0.75]],
+ ["rhsusf_mtvr_mk27_wd", -6.5, [0,0.9,0.1],[0,-0.6,0.1],[0,-2.1,0.1],[0,-3.6,0.1]],
+ ["rhsusf_mtvr_mk27_apk_wd", -6.5, [0,0.9,-0.3],[0,-0.6,-0.3],[0,-2.1,-0.3],[0,-3.6,-0.3]],
+ ["rhsusf_mtvr_mk27_apk_m2_wd", -6.5, [0,0.9,-0.75],[0,-0.6,-0.75],[0,-2.1,-0.75],[0,-3.6,-0.75]],
["rhusf_m1077a1_flatrack_Base", -6.5, [0,2,0.1],[0,0.6,0.1],[0,-0.8,0.1],[0,-2.2,0.1]],
+ ["rhusf_m1077a1_flatrack_wd", -6.5, [0,2,0.1],[0,0.6,0.1],[0,-0.8,0.1],[0,-2.2,0.1]],
["rhsusf_m871_trailer_wd", -6.5, [-0,4.2,0.65],[0.73,2.8,0.65],[-0.73,2.8,0.65],[0.73,1.4,0.65],[-0.73,1.4,0.65],[0.73,0,0.65],[-0.73,0,0.65],[0.73,-1.4,0.65],[-0.73,-1.4,0.65],[0.73,-2.8,0.65],[-0.73,-2.8,0.65],[-0,4.2,1.68],[0.73,2.8,1.68],[-0.73,2.8,1.68],[0.73,1.4,1.68],[-0.73,1.4,1.68],[0.73,0,1.68],[-0.73,0,1.68],[0.73,-1.4,1.68],[-0.73,-1.4,1.68],[0.73,-2.8,1.68],[-0.73,-2.8,1.68]],
["rhsusf_m870_trailer_wd", -6.5, [0.73,2.9,0.25],[-0.73,2.9,0.25],[0.73,1.5,0.25],[-0.73,1.5,0.25],[0.73,0.1,0.25],[-0.73,0.1,0.25],[0.73,-1.3,0.25],[-0.73,-1.3,0.25],[0.73,-2.7,0.25],[-0.73,-2.7,0.25],[0.73,-4.1,0.25],[-0.73,-4.1,0.25],[0.73,2.9,1.28],[-0.73,2.9,1.28],[0.73,1.5,1.28],[-0.73,1.5,1.28],[0.73,0.1,1.28],[-0.73,0.1,1.28],[0.73,-1.3,1.28],[-0.73,-1.3,1.28],[0.73,-2.7,1.28],[-0.73,-2.7,1.28],[0.73,-4.1,1.28],[-0.73,-4.1,1.28]],
["SX2220", -6.5, [0,0.15,-0.6],[0,-1.35,-0.6],[0,-2.85,-0.6]],
@@ -45,16 +58,16 @@ KPLIB_transportConfigs = [
["B_FR_H225_MCaracal_01", -6.5, [0,1.5,1.9], [0,0.0,1.9], [0,-1.5,1.9], [0,-2.5,1.9], [0,-4.0,2.2]],
["B_Heli_Transport_03_F", -8, [0,2.2,-1], [0,0.5,-1], [0,-1.2,-1]],
["B_Heli_Transport_03_unarmed_F", -8, [0,2.2,-1], [0,0.5,-1], [0,-1.2,-1]],
- ["B_T_Truck_01_cargo_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
- ["B_T_Truck_01_covered_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
- ["B_T_Truck_01_flatbed_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
- ["B_T_Truck_01_transport_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
["B_T_VTOL_01_infantry_F", -7.5,[0,4.7,-4.88],[0,3,-4.88],[0,1.3,-4.88],[0,-0.4,-4.88],[0,-2.1,-4.88]],
["B_T_VTOL_01_vehicle_F", -7.5,[0,4.7,-4.88],[0,3,-4.88],[0,1.3,-4.88],[0,-0.4,-4.88],[0,-2.1,-4.88]],
- ["B_Truck_01_cargo_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
- ["B_Truck_01_covered_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
- ["B_Truck_01_flatbed_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
- ["B_Truck_01_transport_F", -6.5, [0,-0.4,0.4], [0,-2.1,0.4], [0,-3.8,0.4]],
+ ["B_Truck_01_flatbed_F", -6.5, [0.06,0.45,-0.28], [0.06,-1.0,-0.28], [0.06,-2.45,-0.28], [0.06,-3.9,-0.28]],
+ ["B_T_Truck_01_flatbed_F", -6.5, [0.06,0.45,-0.28], [0.06,-1.0,-0.28], [0.06,-2.45,-0.28], [0.06,-3.9,-0.28]],
+ ["B_Truck_01_cargo_F", -6.5, [0,0.4,0], [0,-1.3,0], [0,-3.0,0]],
+ ["B_T_Truck_01_cargo_F", -6.5, [0,0.4,0], [0,-1.3,0], [0,-3.0,0]],
+ ["B_Truck_01_covered_F", -6.5, [0,-0.4,0], [0,-2.1,0], [0,-3.8,0]],
+ ["B_T_Truck_01_covered_F", -6.5, [0,-0.4,0], [0,-2.1,0], [0,-3.8,0]],
+ ["B_Truck_01_transport_F", -6.5, [0,-0.4,0], [0,-2.1,0], [0,-3.8,0]],
+ ["B_T_Truck_01_transport_F", -6.5, [0,-0.4,0], [0,-2.1,0], [0,-3.8,0]],
["BW_AW101_Trans_Heer_F", -6.5, [0,4.2,-1.45], [0,2.5,-1.45], [0,0.8,-1.45], [0,-0.9,-1.45]],
["BW_LKW7T_Trans_F", -6.5, [0,-0.8,0.4], [0,-2.4,0.4], [0,-4.0,0.4]],
["BWA3_WLP14_Flatbed_Oliv", -6.5, [0.73,2.5,-0.65],[-0.73,2.5,-0.65],[0.73,1.05,-0.65],[-0.73,1.05,-0.65],[0.73,-0.4,-0.65],[-0.73,-0.4,-0.65],[0.73,-1.85,-0.65],[-0.73,-1.85,-0.65]],
diff --git a/Missionframework/functions/fn_crGlobalMsg.sqf b/Missionframework/functions/fn_crGlobalMsg.sqf
index 55fbc791f..42c7acd60 100644
--- a/Missionframework/functions/fn_crGlobalMsg.sqf
+++ b/Missionframework/functions/fn_crGlobalMsg.sqf
@@ -24,7 +24,7 @@ params [
if (KPLIB_civrep_debug > 0) then {[format ["globalMsg called on: %1 - Parameters: [%2, %3]", debug_source, _msgType, _data], "CIVREP"] remoteExecCall ["KPLIB_fnc_log", 2];};
switch (_msgType) do {
- case 0: {systemChat localize "STR_CR_VEHICLEMSG";};
+ case 0: {systemChat (format [localize "STR_CR_VEHICLEMSG", (_data select 0)]);};
case 1: {systemChat (format [localize "STR_CR_BUILDINGMSG", (_data select 0)]);};
case 2: {systemChat (format [localize "STR_CR_KILLMSG", (_data select 0), (_data select 1)]);};
case 3: {systemChat (format [localize "STR_CR_RESISTANCE_KILLMSG", (_data select 0), (_data select 1)]);};
diff --git a/Missionframework/functions/fn_fullHeal.sqf b/Missionframework/functions/fn_fullHeal.sqf
index 13d51c4df..1da84f845 100644
--- a/Missionframework/functions/fn_fullHeal.sqf
+++ b/Missionframework/functions/fn_fullHeal.sqf
@@ -38,11 +38,12 @@ if (isClass (configfile >> "CfgPatches" >> "ace_field_rations")) then {_acefr =
{
private _target = _x;
- private _localtime = time;
- private _lastHeal = _target getVariable ["lastHealTime", -6000];
+ private _localtime = serverTime; // MP
+ if (_localtime isEqualTo 0) then {_localtime = time}; // SP
+ private _lastHeal = _target getVariable ["KPLIB_lastHealTime", -6000];
private _cooltime = KPLIB_param_fullHealCooldown + _lastHeal;
if (_cooltime < _localtime) then {
- _target setVariable ["lastHealTime", _localtime];
+ _target setVariable ["KPLIB_lastHealTime", _localtime];
if (KPLIB_ace_med) then {[_caller, _target] call ace_medical_treatment_fnc_fullHeal;} else {_target setDamage 0;};
if (isPlayer _target) then {
if (_acefr) then {_target setVariable ["acex_field_rations_thirst",0,true]; _target setVariable ["acex_field_rations_hunger",0,true];};
@@ -51,10 +52,10 @@ if (isClass (configfile >> "CfgPatches" >> "ace_field_rations")) then {_acefr =
} else {
_cooldownunits pushBack _target;
private _cooldowntime = (_cooltime - _localtime)/60;
- if (_target isNotEqualTo _caller) then {
- [format [localize "STR_FULLHEAL_COOLDOWN", round _cooldowntime, name _caller]] remoteExecCall ["hint", _target];
- } else {
+ if (_target isEqualTo _caller) then {
[format [localize "STR_FULLHEAL_COOLDOWN_OWN", round _cooldowntime]] remoteExecCall ["hint", _target];
+ } else {
+ [format [localize "STR_FULLHEAL_COOLDOWN", round _cooldowntime, name _caller]] remoteExecCall ["hint", _target];
};
};
} forEach _targetunits;
diff --git a/Missionframework/functions/fn_setVehicleSeized.sqf b/Missionframework/functions/fn_setVehicleSeized.sqf
index 4318ff6c8..4f55416c2 100644
--- a/Missionframework/functions/fn_setVehicleSeized.sqf
+++ b/Missionframework/functions/fn_setVehicleSeized.sqf
@@ -17,7 +17,8 @@
*/
params [
- ["_veh", objNull, [objNull]]
+ ["_veh", objNull, [objNull]],
+ ["_unit", objNull, [objNull]]
];
if (isNull _veh) exitWith {["Null object given"] call BIS_fnc_error; false};
@@ -28,7 +29,8 @@ if !(_type in KPLIB_c_vehicles) exitWith {false};
if !(_veh getVariable ["KPLIB_seized", false]) then {
_veh setVariable ["KPLIB_seized", true, true];
- [0] remoteExec ["KPLIB_fnc_crGlobalMsg"];
+ _seizedUser = name _unit;
+ [0, [_seizedUser]] remoteExec ["KPLIB_fnc_crGlobalMsg"];
[KPLIB_cr_vehicle_penalty, true] remoteExec ["F_cr_changeCR", 2];
stats_civilian_vehicles_seized = stats_civilian_vehicles_seized + 1;
publicVariable "stats_civilian_vehicles_seized";
diff --git a/Missionframework/scripts/client/init_client.sqf b/Missionframework/scripts/client/init_client.sqf
index fd61b4b86..a882a00dc 100644
--- a/Missionframework/scripts/client/init_client.sqf
+++ b/Missionframework/scripts/client/init_client.sqf
@@ -41,7 +41,7 @@ player addMPEventHandler ["MPKilled", {
if (KPLIB_param_fuelconsumption) then {
player addEventHandler ["GetInMan", {[_this select 2] spawn kp_fuel_consumption;}];
};
-player addEventHandler ["GetInMan", {[_this select 2] call KPLIB_fnc_setVehicleSeized;}];
+player addEventHandler ["GetInMan", {[_this select 2, _this select 0] call KPLIB_fnc_setVehicleSeized;}];
player addEventHandler ["GetInMan", {[_this select 2] call KPLIB_fnc_setVehicleCaptured;}];
player addEventHandler ["GetInMan", {[_this select 2] call kp_vehicle_permissions;}];
player addEventHandler ["GetInMan", {
diff --git a/Missionframework/scripts/server/ai/SAM_turret_manager.sqf b/Missionframework/scripts/server/ai/SAM_turret_manager.sqf
index 52811f567..5e5b30368 100644
--- a/Missionframework/scripts/server/ai/SAM_turret_manager.sqf
+++ b/Missionframework/scripts/server/ai/SAM_turret_manager.sqf
@@ -91,13 +91,13 @@ while {KPLIB_endgame == 0} do {
private _helislots = KPLIB_heli_slots;
private _planeslots = KPLIB_plane_slots * 1.5;
private _difficulty = KPLIB_param_difficulty;
- if (KPLIB_param_difficulty isEqualTo 4) then {_difficulty = 3};
- if (KPLIB_param_difficulty isEqualTo 10) then {_difficulty = 5};
- _maxSAMnumber = _maxSAMnumber + _helislots + _planeslots;
+ if (KPLIB_param_difficulty isEqualTo 4) then {_difficulty = 1};
+ if (KPLIB_param_difficulty isEqualTo 10) then {_difficulty = 2};
+ _maxSAMnumber = _maxSAMnumber + (_helislots / 2) + (_planeslots);
_maxSAMnumber = _maxSAMnumber + (KPLIB_enemyReadiness / 30);
_maxSAMnumber = _maxSAMnumber * _difficulty;
_maxSAMnumber = round _maxSAMnumber;
- if (_maxSAMnumber > 20) then {_maxSAMnumber = 20};
+ if (_maxSAMnumber > 10) then {_maxSAMnumber = 10};
// maximum amount of SAM turrets should not exceed number of opfor sectors
if (_maxSAMnumber > (count KPLIB_sectors_all - count KPLIB_sectors_player)) then {_maxSAMnumber = count KPLIB_sectors_all - count KPLIB_sectors_player};
diff --git a/Missionframework/scripts/server/ai/building_defence_ai.sqf b/Missionframework/scripts/server/ai/building_defence_ai.sqf
index fb87b23f3..7842ea99e 100644
--- a/Missionframework/scripts/server/ai/building_defence_ai.sqf
+++ b/Missionframework/scripts/server/ai/building_defence_ai.sqf
@@ -3,7 +3,7 @@ scriptName "building_defence_ai";
params ["_unit", ["_sector", ""]];
//Check LAMBS_Danger.fsm is running. if running, skip KPLIB built in troop garrisoning and call lambs wp garrisoning.
-if (isClass (configfile >> "CfgPatches" >> "lambs_wp")) exitWith {[_unit, _unit, 40] call lambs_wp_fnc_taskGarrison;};
+if (isClass (configfile >> "CfgPatches" >> "lambs_wp")) exitWith {[_unit, _unit, 40, [], false, false, -1, false] call lambs_wp_fnc_taskGarrison;};
_unit setUnitPos "UP";
_unit disableAI "PATH";
diff --git a/Missionframework/scripts/server/patrols/send_paratroopers.sqf b/Missionframework/scripts/server/patrols/send_paratroopers.sqf
index a10c86a68..d9d5f225a 100644
--- a/Missionframework/scripts/server/patrols/send_paratroopers.sqf
+++ b/Missionframework/scripts/server/patrols/send_paratroopers.sqf
@@ -47,7 +47,7 @@ while {(count (units _para_group)) < 8} do {
[KPLIB_o_paratrooper, markerPos _spawnsector, _para_group] call KPLIB_fnc_createManagedUnit;
};
-{removeBackpack _x; _x addBackPack "B_parachute"; _x moveInCargo _newvehicle;} forEach (units _para_group);
+{removeBackpack _x; _x addBackPack "B_parachute"; _x moveInCargo _newvehicle; _x assignAsCargo _newvehicle;} forEach (units _para_group);
while {(count (waypoints _pilot_group)) != 0} do {deleteWaypoint ((waypoints _pilot_group) select 0);};
while {(count (waypoints _para_group)) != 0} do {deleteWaypoint ((waypoints _para_group) select 0);};
diff --git a/Missionframework/stringtable.xml b/Missionframework/stringtable.xml
index d982cd664..8c5020e21 100644
--- a/Missionframework/stringtable.xml
+++ b/Missionframework/stringtable.xml
@@ -2356,8 +2356,11 @@
附身
取代
Değiştir
- Substituir.
- 분대원 교체Nahradit置き換え
+ Substituir
+ 분대원 교체
+ Nahradit
+ 置き換え
+
You will deploy on the selected squad member and replace them while keeping your current loadout.
Vous allez vous déployer à la place du member d'escouade selectionné tout en conservant votre équipement actuel.
@@ -6252,7 +6255,7 @@
民間人 %1 が %2 に殺害された!
- A civilian's vehicle was seized!
+ Citizens reporting their vehicle was seized by %1!
Ein Zivilfahrzeug wurde beschlagnahmt!
Un vehículo civil fue tomado!
Транспорт гражданского был захвачен!
@@ -6263,7 +6266,7 @@
Um veículo de civil foi tomado!
민간인의 차량이 탈취되었다!
Civilní vozidlo bylo zajato jednotkami BLUFOR!
- 民間車両を違法に徴用しています!
+ 市民は %1 によって彼らの車両が不当に徴用されたと報告しています!
Civilians are complaining about %1 lost buildings.