diff --git a/SQF/dayz_code/Configs/RscDisplay/advancedTrading.hpp b/SQF/dayz_code/Configs/RscDisplay/advancedTrading.hpp
index 041fb4be8..b9aa13f0c 100644
--- a/SQF/dayz_code/Configs/RscDisplay/advancedTrading.hpp
+++ b/SQF/dayz_code/Configs/RscDisplay/advancedTrading.hpp
@@ -10,7 +10,6 @@ class AT_Zupa_BlueButton: ZSC_RscButtonMenu {
class AdvancedTrading
{
idd = 711197;
- onLoad = "uiNamespace setVariable ['AdvancedTrading', _this select 0]";
class Controls {
class RscText_ATBackground1: ZSC_RscText
{
diff --git a/SQF/dayz_code/Configs/RscDisplay/doorManagement/doorManagement.hpp b/SQF/dayz_code/Configs/RscDisplay/doorManagement/doorManagement.hpp
index 7a04f457d..6f5118b8c 100644
--- a/SQF/dayz_code/Configs/RscDisplay/doorManagement/doorManagement.hpp
+++ b/SQF/dayz_code/Configs/RscDisplay/doorManagement/doorManagement.hpp
@@ -1,7 +1,7 @@
class DoorManagement
{
idd = 711195;
- onLoad = "uiNamespace setVariable ['DoorManagement', _this select 0]";
+ onLoad = "if (DZE_doorManagementMustBeClose) then {(_this select 0) displayCtrl 7108 ctrlSetText localize 'STR_EPOCH_HUMANS_NEARBY';};";
class Controls {
class RscText_7100: ZSC_RscTextT
{
@@ -80,7 +80,7 @@ class DoorManagement
class RscText_7108: ZSC_RscTextT
{
idc = 7108;
- text = $STR_EPOCH_HUMANS_NEARBY;
+ text = $STR_MP_PLAYERS;
x = 0.31 * safezoneW + safezoneX;
y = 0.38 * safezoneH + safezoneY;
w = 0.13 * safezoneW;
diff --git a/SQF/dayz_code/Configs/RscDisplay/plotManagement.hpp b/SQF/dayz_code/Configs/RscDisplay/plotManagement.hpp
index c1a59ad71..00d2671cb 100644
--- a/SQF/dayz_code/Configs/RscDisplay/plotManagement.hpp
+++ b/SQF/dayz_code/Configs/RscDisplay/plotManagement.hpp
@@ -1,7 +1,7 @@
class PlotManagement
{
idd = 711194;
- onLoad = "uiNamespace setVariable ['PlotManagement', _this select 0]";
+ onLoad = "if (DZE_plotManagementMustBeClose) then {(_this select 0) displayCtrl 7015 ctrlSetText localize 'STR_EPOCH_HUMANS_NEARBY';};";
class Controls {
class RscText_7000: ZSC_RscTextT
{
@@ -92,8 +92,8 @@ class PlotManagement
class RscText_7008: ZSC_RscTextT
{
- idc = -1;
- text = $STR_EPOCH_HUMANS_NEARBY;
+ idc = 7015;
+ text = $STR_MP_PLAYERS;
x = 0.31 * safezoneW + safezoneX;
y = 0.38 * safezoneH + safezoneY;
w = 0.13 * safezoneW;
diff --git a/SQF/dayz_code/actions/maintain_area.sqf b/SQF/dayz_code/actions/maintain_area.sqf
index 9be3708d9..442af0506 100644
--- a/SQF/dayz_code/actions/maintain_area.sqf
+++ b/SQF/dayz_code/actions/maintain_area.sqf
@@ -17,7 +17,7 @@ Please see configVariables.sqf for the value of gems (DZE_GemWorthArray) and the
*/
-private ["_objectID","_objectUID","_target","_objects","_requirements","_count","_objects_filtered","_ctrl","_itemText","_type","_amount","_success","_wealth","_message1","_message2","_option"];
+private ["_objectID","_objectUID","_target","_objects","_requirements","_count","_objects_filtered","_itemText","_type","_amount","_success","_wealth","_message1","_message2","_option","_line1","_line2","_plotDialog"];
disableSerialization;
if (dayz_actionInProgress) exitWith {localize "STR_EPOCH_ACTIONS_2" call dayz_rollingMessages;};
@@ -36,6 +36,9 @@ _objects = nearestObjects [_target, DZE_maintainClasses, DZE_maintainRange];
_objects_filtered = [];
_requirements = [];
_count = 0;
+_plotDialog = findDisplay 711194;
+_line1 = _plotDialog displayCtrl 7012;
+_line2 = _plotDialog displayCtrl 7013;
_req = {
private ["_count","_amount","_itemText"];
@@ -48,7 +51,7 @@ _req = {
};
_maintain = {
- private ["_requirements","_count","_amount","_itemText","_wealth","_success","_message1","_message2","_ctrl","_enoughMoney","_moneyInfo"];
+ private ["_requirements","_count","_amount","_itemText","_wealth","_success","_message1","_message2","_enoughMoney","_moneyInfo"];
_count = count (_this select 0);
_requirements = _count call _req;
@@ -96,10 +99,8 @@ _maintain = {
["Working",0,[100,15,10,0]] call dayz_NutritionSystem;
if (DZE_permanentPlot) then {
- _ctrl = (uiNamespace getVariable "PlotManagement") displayCtrl 7012;
- _ctrl ctrlSetText _message1;
- _ctrl = (uiNamespace getVariable "PlotManagement") displayCtrl 7013;
- _ctrl ctrlSetText _message2;
+ _line1 ctrlSetText _message1;
+ _line2 ctrlSetText _message2;
} else {
_message1 call dayz_rollingMessages;
};
@@ -114,10 +115,8 @@ _maintain = {
};
_message2 = " ";
if (DZE_permanentPlot) then {
- _ctrl = (uiNamespace getVariable "PlotManagement") displayCtrl 7012;
- _ctrl ctrlSetText _message1;
- _ctrl = (uiNamespace getVariable "PlotManagement") displayCtrl 7013;
- _ctrl ctrlSetText _message2;
+ _line1 ctrlSetText _message1;
+ _line2 ctrlSetText _message2;
} else {
_message1 call dayz_rollingMessages;
};
@@ -147,8 +146,7 @@ switch _option do {
if (_count == 0) then {
_message1 = localize "STR_EPOCH_PLOTMANAGEMENT_MAINTAIN_NONE";
if (DZE_permanentPlot) then {
- _ctrl = (uiNamespace getVariable "PlotManagement") displayCtrl 7012;
- _ctrl ctrlSetText _message1;
+ _line1 ctrlSetText _message1;
} else {
_message1 call dayz_rollingMessages;
};
@@ -161,8 +159,7 @@ switch _option do {
_message1 = format [localize "STR_EPOCH_PLOTMANAGEMENT_MAINTAIN_PRICE", _count,_requirements select 1,""];
};
if (DZE_permanentPlot) then {
- _ctrl = (uiNamespace getVariable "PlotManagement") displayCtrl 7012;
- _ctrl ctrlSetText _message1;
+ _line1 ctrlSetText _message1;
} else {
_message1 call dayz_rollingMessages;
};
@@ -175,8 +172,7 @@ switch _option do {
};
if (_count != count _objects) then {
if (DZE_permanentPlot) then {
- _ctrl = (uiNamespace getVariable "PlotManagement") displayCtrl 7013;
- _ctrl ctrlSetText _message2;
+ _line2 ctrlSetText _message2;
} else {
_message2 call dayz_rollingMessages;
};
diff --git a/SQF/dayz_code/actions/plotManagement/plotObjects.sqf b/SQF/dayz_code/actions/plotManagement/plotObjects.sqf
index 59e81f560..bd1753e12 100644
--- a/SQF/dayz_code/actions/plotManagement/plotObjects.sqf
+++ b/SQF/dayz_code/actions/plotManagement/plotObjects.sqf
@@ -16,5 +16,5 @@ if (_count / DZE_BuildingLimit * 100 > 75) then {
_colour = "#ff0000";
};
-_ctrl = ((uiNamespace getVariable "PlotManagement") displayCtrl 7014);
+_ctrl = findDisplay 711194 displayCtrl 7014;
_ctrl ctrlSetStructuredText parseText format["%1 / %2" , _count, DZE_BuildingLimit,_colour];
\ No newline at end of file
diff --git a/SQF/dayz_code/compile/object_infectedcamps.sqf b/SQF/dayz_code/compile/object_infectedcamps.sqf
deleted file mode 100644
index 15b90c4ea..000000000
--- a/SQF/dayz_code/compile/object_infectedcamps.sqf
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- Created exclusively for ArmA2:OA - DayZMod.
- Please request permission to use/alter from R4Z0R49.
-*/
-
-//"Infected Camps: [[[7020.76,4072.34,0],40],[[10066.8,12114.3,0],20],[[10033.4,12525,0],20],[[9125.71,7742.72,0],40],[[6057.93,2655.66,0],40]]"
-//Server_InfectedCamps, [[[_basePos],_amount,_radius]]
-
-//diag_log(str(__FILE__));
-
-private ["_markerstr","_counter","_camp","_campName","_campPos","_campAmount","_campRadius","_trigger","_trgcode","_array"];
-_array = _this;
-_counter = 0;
-
-{
- _counter = _counter + 1;
- _camp = _x;
- _campName = format["BaseCamp_%1",_counter];
-//diag_log ("Camp: " +str(_x));
- _campPos = _camp select 0;
-//diag_log ("CampPos: " +str(_campPos));
- _campAmount = _camp select 1;
-//diag_log ("CampAmont: " +str(_campAmount));
- _campRadius = _camp select 2;
-//diag_log ("CampRadius: " +str(_campRadius));
-/*
- _trigger = createTrigger["EmptyDetector",_campPos];
- _trigger setTriggerArea[_campRadius,_campRadius+100,false];
- _trigger setTriggerActivation["ANY","PRESENT",false];
- _trgcode = format["[%1,%2] call camp_spawnZombies;",_campPos,_campAmount];
- _trigger setTriggerStatements["player in thislist", _trgcode, ""];
- //_trigger setTriggerTimeout [0, 5, 3, false];
-*/
-
- if ("ItemMap_Debug" in items player) then {
- _markerstr = createMarker [_campName,_campPos];
- _markerstr setMarkerColor "ColorRed";
- _markerstr setMarkerShape "ELLIPSE";
- _markerstr setMarkerBrush "Border";
- _markerstr setMarkerSizeLocal [_campRadius, _campRadius];
- };
-
-} foreach _array;
\ No newline at end of file
diff --git a/SQF/dayz_code/configVariables.sqf b/SQF/dayz_code/configVariables.sqf
index c4b606839..08d5585e8 100644
--- a/SQF/dayz_code/configVariables.sqf
+++ b/SQF/dayz_code/configVariables.sqf
@@ -8,7 +8,7 @@ dayz_matchboxCount = false; // Enable match stick count. After five uses matches
dayz_toolBreaking = false; //Sledgehammer, crowbar and pickaxe have a chance to break when used.
dayz_waterBottleBreaking = false; // Water bottles have a chance to break when boiling and require duct tape to fix
dayz_tameDogs = false; // Allow taming dogs with raw meat
-dayz_townGenerator = false; // Spawn vanilla map junk instead of Epoch DynamicDebris. Currently only compatible with Chernarus. Need to add coordinates for other maps.
+dayz_townGenerator = false; // Spawn vanilla map junk instead of Epoch DynamicDebris. Currently only compatible with Chernarus.
dayz_townGeneratorBlackList = []; // Town generator will not spawn junk within 150m of these positions. Example for Chernarus trader cities: [[4053,11668,0],[11463,11349,0],[6344,7806,0],[1606,7803,0],[12944,12766,0],[5075,9733,0],[12060,12638,0]]
DynamicVehicleDamageLow = 0; // Min damage random vehicles can spawn with
@@ -27,7 +27,7 @@ DZE_DeathMsgDynamicText = false; // Display death messages as dynamicText in the
DZE_DeathMsgCutText = false; // Display death messages as cutText
DZE_DeathScreen = true; // True=Use Epoch death screen (Trade city obituaries have been amended) False=Use DayZ death screen (You are dead)
DZE_HaloJump = true; // Enable halo jumping out of air vehicles above 400m
-DZE_NameTags = 1; // Name displays when looking at player up close 0 = Off, 1= On, 2 = Player choice
+DZE_NameTags = 0; // Name displays when looking at player up close 0 = Off, 1= On, 2 = Player choice
DZE_ForceNameTagsInTrader = false; // Force name display when looking at player up close in traders. Overrides player choice.
DZE_HumanityTargetDistance = 25; // Distance to show name tags (red for bandit, blue for hero, green for friend)
DZE_HeartBeat = false; // Enable heartbeat sound when looking at bandit (<= -3000 humanity) up close
@@ -35,7 +35,7 @@ DZE_HeliLift = true; // Enable Epoch heli lift system
DZE_RestrictSkins = []; // Clothes that players are not allowed to wear. i.e. ["Skin_GUE_Soldier_CO_DZ","Skin_GUE_Soldier_2_DZ"] etc.
DZE_UI = "vanilla"; //"vanilla","epoch","dark" UI status icons style. Dark accommodates color blind people.
DZE_VanillaUICombatIcon = true; //Display or hide combat UI icon if using DZE_UI = "vanilla"; otherwise it has no affect.
-MaxAmmoBoxes = 3; // Max number of random Supply_Crate_DZE to spawn around the map
+MaxAmmoBoxes = 3; // Max number of random Supply_Crate_DZE filled with vehicle ammo to spawn around the map
MaxMineVeins = 50; // Max number of random mine veins to spawn around the map
timezoneswitch = 0; // Changes murderMenu times with this offset in hours.
DZE_SafeZonePosArray = []; //Prevent players in safeZones from being killed if their vehicle is destroyed. Format is [[[3D POS], RADIUS],[[3D POS], RADIUS]]; Ex. DZE_SafeZonePosArray = [[[6325.6772,7807.7412,0],150],[[4063.4226,11664.19,0],150]];
@@ -51,10 +51,10 @@ DZE_salvageLocked = true; //Enable or disable salvaging of locked vehicles, usef
DZE_ConfigTrader = true; // Use config files for traders instead of database. Loads faster and uses less network traffic. False enables database traders with legacy trader menu.
DZE_serverLogTrades = true; // Log trades to server RPT (sent with publicVariableServer on every trade)
DZE_GemWorthArray = [["ItemTopaz",15000], ["ItemObsidian",20000], ["ItemSapphire",25000], ["ItemAmethyst",30000], ["ItemEmerald",35000], ["ItemCitrine",40000], ["ItemRuby",45000]]; //array of gem prices, works only in advanced trading
-DZE_SaleRequiresKey = false; //Require the player has the key for a vehicle in order to sell it. The key can be in the player's toolbelt or backpack, or the vehicle's inventory. False by default
+DZE_SaleRequiresKey = false; //Require the player has the key for a vehicle in order to sell it. The key can be in the player's toolbelt, backpack, or the vehicle's inventory.
DZE_TRADER_SPAWNMODE = false; // Vehicles purchased at traders will be parachuted in
Z_AT_FolderLocation = '\z\addons\dayz_code\actions\AdvancedTrading';
-Z_VehicleDistance = 40; // Distance that a vehicle needs to be to see it's content or to sell it.
+Z_VehicleDistance = 40; // Distance a vehicle needs to be to see its content or sell it.
Z_AllowTakingMoneyFromBackpack = true; // When buying items with DEFAULT CURRENCY to any inventory. Do you allow the trader to take money from your backpack.
Z_AllowTakingMoneyFromVehicle = true; // When buying items with DEFAULT CURRENCY to any inventory. Do you allow the trader to take money from your vehicle.
Z_SingleCurrency = false; // Does your server use a single currency system?
@@ -64,7 +64,7 @@ DZE_MoneyStorageClasses = []; // If using single currency this is an array of ob
// Plot Management and Plot for Life
DZE_permanentPlot = true; // Plot ownership saves after death. Enables Plot for Life by @RimBlock and Plot Management by @DevZupa.
-DZE_plotManagementMustBeClose = true; //Players must be within 10m of pole to be added as a plot friend.
+DZE_plotManagementMustBeClose = false; //Players must be within 10m of pole to be added as a plot friend.
DZE_PlotManagementAdmins = []; //Array of admin PlayerUIDs enclosed in quotations, UIDs in this list are able to access every pole's management menu and delete or build any buildable with a pole nearby
DZE_MaxPlotFriends = 6; //Maximum number of friends allowed on a plot pole.
DZE_PlotOwnership = true; //allows plot owner to take ownership of buildables (excluding lockable items) near a plot pole. Useful for servers that allow base capturing so the new owner can modify/delete/upgrade existing structures
@@ -82,7 +82,7 @@ DZE_buildMaxHeightDistance = 10; // Max distance player can raise or lower objec
// Door Management
DZE_doorManagement = true; // Enable Door Management by @DevZupa.
-DZE_doorManagementMustBeClose = true; //Players must be within 10m of door to be added as a door friend.
+DZE_doorManagementMustBeClose = false; //Players must be within 10m of door to be added as a door friend.
DZE_doorManagementAdmins = []; //Array of admin PlayerUIDs enclosed in quotations, UIDs in this list are able to access every door's management menu and open it
DZE_doorManagementAllowManualCode = true; //Allows opening doors still using PIN
DZE_doorManagementMaxFriends = 10; //Maximum number of friends allowed on a door.
diff --git a/SQF/dayz_code/groups/disband.sqf b/SQF/dayz_code/groups/disband.sqf
index efba94a2c..db6c53cfb 100644
--- a/SQF/dayz_code/groups/disband.sqf
+++ b/SQF/dayz_code/groups/disband.sqf
@@ -13,5 +13,4 @@ dayz_groupDisbandThread = _group spawn {
{[_x] joinSilent grpNull} count (units _this);
deleteGroup _this;
- dayz_myGroup = [];
};
\ No newline at end of file
diff --git a/SQF/dayz_code/groups/groupMarkers.sqf b/SQF/dayz_code/groups/groupMarkers.sqf
index 3cf550a5a..1d411fd0d 100644
--- a/SQF/dayz_code/groups/groupMarkers.sqf
+++ b/SQF/dayz_code/groups/groupMarkers.sqf
@@ -1,5 +1,5 @@
// Two second loop
-private ["_count","_found","_group","_hasGPS","_index","_marker","_markBody","_markGroup","_markSelf","_pos","_self","_uid","_vehicle"];
+private ["_count","_found","_group","_hasGPS","_index","_marker","_markBody","_markGroup","_markSelf","_pos","_self","_vehicle"];
_group = player call dayz_filterGroup;
@@ -10,14 +10,6 @@ if (dayz_requireRadio && {count _group > 1} && {!("ItemRadio" in items player)})
localize "STR_EPOCH_RADIO_CONTACT_LOST" call dayz_rollingMessages;
};
-{
- _uid = getPlayerUID _x;
- if (!(_uid in dayz_myGroup) && _x != player) then {
- dayz_myGroup set [count dayz_myGroup,_uid];
- systemChat format [localize "STR_EPOCH_PLAYER_JOINED",name _x];
- };
-} count _group;
-
if (visibleMap or !isNull findDisplay 88890) then {
_hasGPS = "ItemGPS" in items player;
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
diff --git a/SQF/dayz_code/groups/handleInvite.sqf b/SQF/dayz_code/groups/handleInvite.sqf
index 7e4a9c481..d6a7d5c4d 100644
--- a/SQF/dayz_code/groups/handleInvite.sqf
+++ b/SQF/dayz_code/groups/handleInvite.sqf
@@ -3,8 +3,14 @@ private ["_add","_inviter","_recipient","_uid","_unit"];
_add = _this select 0;
_uid = _this select 1;
-if (typeName _add == "OBJECT") exitWith {
- (group player) selectLeader _add;
+if (typeName _add == "SCALAR") exitWith {
+ switch _add do {
+ case -1: { (group player) selectLeader _uid; }; //Promote
+ case 1: { systemChat format[localize "STR_EPOCH_PLAYER_JOINED",_uid]; };
+ case 2: { systemChat format[localize "STR_EPOCH_PLAYER_KICKED",name (_uid call dayz_getPlayer)]; };
+ case 3: { systemChat format[localize "STR_EPOCH_PLAYER_LEFT",_uid]; };
+ case 4: { localize "STR_EPOCH_GROUP_DISBANDED" call dayz_rollingMessages; };
+ };
};
// Update active invites on all machines with the change
diff --git a/SQF/dayz_code/groups/init.sqf b/SQF/dayz_code/groups/init.sqf
index 8ea88a0c4..92af81e6b 100644
--- a/SQF/dayz_code/groups/init.sqf
+++ b/SQF/dayz_code/groups/init.sqf
@@ -1,19 +1,20 @@
-private ["_leader","_oldGroup"];
+private ["_leader","_oldGroup","_savedGroup"];
uiSleep 1;
if (count (units group player) > 1) then {
[player] joinSilent grpNull;
};
-if (count dayz_myGroup > 1 && {!dayz_requireRadio or {dayz_requireRadio && "ItemRadio" in items player}}) then {
+_savedGroup = PVCDZ_plr_Login select 10;
+if (count _savedGroup > 1 && {!dayz_requireRadio or {dayz_requireRadio && "ItemRadio" in items player}}) then {
{
//Only auto join player into group if leader is in their savedGroup
_leader = leader _x;
- if (getPlayerUID _leader in dayz_myGroup) exitWith {
+ if (getPlayerUID _leader in _savedGroup) exitWith {
_oldGroup = group player;
[player] joinSilent _x;
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
- systemChat format [localize "STR_EPOCH_REJOINED_GROUP",name _leader];
+ format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
// Update saved group in DB
PVDZ_Server_UpdateGroup = [1,player];
diff --git a/SQF/dayz_code/groups/join.sqf b/SQF/dayz_code/groups/join.sqf
index 35d994397..c173bf916 100644
--- a/SQF/dayz_code/groups/join.sqf
+++ b/SQF/dayz_code/groups/join.sqf
@@ -27,12 +27,6 @@ if (!isNull _inviter) then {
_oldGroup = group player;
[player] joinSilent (group _inviter);
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
- {
- _uid = getPlayerUID _x;
- if !(_uid in dayz_myGroup) then {
- dayz_myGroup set [count dayz_myGroup,_uid];
- };
- } count (units group player);
// Update saved group in DB
PVDZ_Server_UpdateGroup = [1,player];
diff --git a/SQF/dayz_code/groups/kick.sqf b/SQF/dayz_code/groups/kick.sqf
index 9f39e1dc7..5874ff2c5 100644
--- a/SQF/dayz_code/groups/kick.sqf
+++ b/SQF/dayz_code/groups/kick.sqf
@@ -8,7 +8,6 @@ _target = _targetUID call dayz_getPlayer;
if (isNull _target or _target == player or player != leader group player) exitWith {};
[_target] joinSilent grpNull;
-dayz_myGroup = dayz_myGroup - [_targetUID];
PVDZ_Server_UpdateGroup = [2,player,_targetUID];
publicVariableServer "PVDZ_Server_UpdateGroup";
diff --git a/SQF/dayz_code/groups/leave.sqf b/SQF/dayz_code/groups/leave.sqf
index b652a2a1c..8f2a07d3d 100644
--- a/SQF/dayz_code/groups/leave.sqf
+++ b/SQF/dayz_code/groups/leave.sqf
@@ -11,5 +11,4 @@ dayz_groupLeaveThread = [] spawn {
//Wait for response from server to confirm group finished updating in DB
waitUntil {!isNil "dayz_groupLeft"};
[player] joinSilent grpNull;
- dayz_myGroup = [];
};
\ No newline at end of file
diff --git a/SQF/dayz_code/groups/server_updateGroup.sqf b/SQF/dayz_code/groups/server_updateGroup.sqf
index 33fa85a9d..ffeb2d04a 100644
--- a/SQF/dayz_code/groups/server_updateGroup.sqf
+++ b/SQF/dayz_code/groups/server_updateGroup.sqf
@@ -1,7 +1,8 @@
-private ["_event","_groupUIDs","_newGroup","_player","_playerUID","_save"];
+private ["_event","_groupUIDs","_name","_newGroup","_player","_playerUID","_save","_unit"];
_event = _this select 0;
_player = _this select 1;
+_name = if (alive _player) then {name _player} else {"unknown"};
_playerUID = getPlayerUID _player;
if (_event < 3) then {
@@ -11,7 +12,7 @@ if (_event < 3) then {
if (_event == -1) exitWith {
//Promote _player
- PVDZ_groupInvite = [_player,0];
+ PVDZ_groupInvite = [-1,_player];
(owner (leader group _player)) publicVariableClient "PVDZ_groupInvite";
};
@@ -28,7 +29,8 @@ _newGroup = switch _event do {
case 1: {_groupUIDs};
//Kick (target was already kicked from group)
case 2: {
- format["CHILD:204:%1:%2:%3:",(_this select 2),dayZ_instance,[]] call server_hiveWrite;
+ _name = _this select 2; //Kicked player's UID
+ format["CHILD:204:%1:%2:%3:",_name,dayZ_instance,[]] call server_hiveWrite;
_groupUIDs
};
//Leave
@@ -39,14 +41,24 @@ _newGroup = switch _event do {
};
//Disband
case 4: {
+ _name = 0; //Not needed
dayz_groupDisbanded = true;
(owner _player) publicVariableClient "dayz_groupDisbanded";
[]
};
};
-// Update all group members' saved group in DB
+//Update all group members' saved group in DB
{
_save = if (_event == 3 && _x == _playerUID) then {[]} else {_newGroup};
format["CHILD:204:%1:%2:%3:",_x,dayZ_instance,_save] call server_hiveWrite;
-} count _groupUIDs;
\ No newline at end of file
+} count _groupUIDs;
+
+//Notify group members of the change
+PVDZ_groupInvite = [_event,_name];
+{
+ _unit = getPlayerUID _x;
+ if (_unit in _groupUIDs && {_unit != _playerUID}) then {
+ owner _x publicVariableClient "PVDZ_groupInvite";
+ };
+} count allUnits;
\ No newline at end of file
diff --git a/SQF/dayz_code/init/compiles.sqf b/SQF/dayz_code/init/compiles.sqf
index 102bf72e8..178e7f8a7 100644
--- a/SQF/dayz_code/init/compiles.sqf
+++ b/SQF/dayz_code/init/compiles.sqf
@@ -145,8 +145,6 @@ if (!isDedicated) then {
//System
player_spawn_2 = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_spawn_2.sqf";
- infectedcamps = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_infectedcamps.sqf";
- //camp_spawnZombies = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\camp_spawnZombies.sqf"; //Server compile, used for loiter behaviour
//Crafting
fn_updateCraftUI = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_updateCraftUI.sqf";
diff --git a/SQF/dayz_code/init/publicEH.sqf b/SQF/dayz_code/init/publicEH.sqf
index c70d4fc0f..44d971e40 100644
--- a/SQF/dayz_code/init/publicEH.sqf
+++ b/SQF/dayz_code/init/publicEH.sqf
@@ -10,7 +10,6 @@
"PVCDZ_veh_SetFuel" addPublicVariableEventHandler {(_this select 1) spawn local_setFuel};
"PVCDZ_veh_engineSwitch" addPublicVariableEventHandler {(_this select 1) spawn dayz_engineSwitch};
"PVCDZ_OpenTarget_Reset" addPublicVariableEventHandler { OpenTarget_Time = diag_tickTime; }; //reset OpenTarget timer
-//"dayzInfectedCamps" addPublicVariableEventHandler {(_this select 1) call infectedcamps};
// EPOCH ADDITIONS
"PVDZE_veh_Lock" addPublicVariableEventHandler {(_this select 1) call local_lockUnlock};
diff --git a/SQF/dayz_code/init/variables.sqf b/SQF/dayz_code/init/variables.sqf
index e079adfd7..a00785f78 100644
--- a/SQF/dayz_code/init/variables.sqf
+++ b/SQF/dayz_code/init/variables.sqf
@@ -572,7 +572,6 @@ TimeOutDisplayed = false;
if (isServer) then {
dead_bodyCleanup = [];
needUpdate_objects = [];
- Server_InfectedCamps = [];
//dayz_spawnCrashSite_clutterCutter=0; // helicrash spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass
//dayz_spawnInfectedSite_clutterCutter=0; // infected base spawn... 0: loot hidden in grass, 1: loot lifted, 2: no grass
//Objects to remove when killed.
diff --git a/SQF/dayz_code/stringtable.xml b/SQF/dayz_code/stringtable.xml
index 6ec706cfc..9bbac52fb 100644
--- a/SQF/dayz_code/stringtable.xml
+++ b/SQF/dayz_code/stringtable.xml
@@ -16317,6 +16317,12 @@
You invited %1 to join the group.
Du hast %1 eingeladen der Gruppe beizutreten.
+
+ %1 was kicked from the group.
+
+
+ %1 left the group.
+
%1 joined the group.
%1 ist der Gruppe beigetreten.
@@ -16357,6 +16363,9 @@
распускать
Auflösen
+
+ The group disbanded
+
Leave
Оставлять
diff --git a/SQF/dayz_code/system/player_monitor.fsm b/SQF/dayz_code/system/player_monitor.fsm
index 090cb93b1..18a96d898 100644
--- a/SQF/dayz_code/system/player_monitor.fsm
+++ b/SQF/dayz_code/system/player_monitor.fsm
@@ -486,7 +486,6 @@ class FSM
"_isHiveOk = false;" \n
"_newPlayer = false;" \n
"_isInfected = false;" \n
- "dayz_myGroup = [];" \n
"_characterCoins = 0;" \n
"_globalCoins = 0;" \n
"_CoinsSpecial = 0;" \n
@@ -495,7 +494,6 @@ class FSM
" _isHiveOk = _msg select 7;" \n
" _newPlayer = _msg select 8;" \n
" _isInfected = _msg select 9;" \n
- " dayz_myGroup = _msg select 10;" \n
" _characterCoins = _msg select 11;" \n
" _globalCoins = _msg select 12;" \n
" _CoinsSpecial = _msg select 13;" \n
@@ -1136,11 +1134,6 @@ class FSM
name = "Initialize";
itemno = 31;
init = /*%FSM*/"if (_debug == 1) then {diag_log [diag_tickTime,'Initialize'];};" \n
- "" \n
- "if (!isNil ""dayzInfectedCamps"") then {" \n
- " //diag_log (""Infected Camps: "" +str(dayzInfectedCamps));" \n
- " dayzInfectedCamps call infectedcamps;" \n
- "};" \n
"" \n
"//Medical" \n
"dayz_medicalH = [] execVM ""\z\addons\dayz_code\medical\init_medical.sqf""; //Medical Monitor Script (client only)" \n