mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-13 19:52:38 +03:00
Remove 1.0.6.1A Hotfix from Missions
This commit is contained in:
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\takistan.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\mountains_acr.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -78,16 +78,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -101,9 +96,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\chernarus11.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\isladuala.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\tavi.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\namalsk.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\panthera2.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\chernarus17.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\fdf_isle1_a.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\utes.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\fapovo.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\caribou.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\smd_sahrani_a2.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\cmr_ovaron.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\napf.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
@@ -1,43 +0,0 @@
|
||||
private["_display","_control1","_control2","_watermark"];
|
||||
disableSerialization;
|
||||
//diag_log "DEBUG: loadscreen guard started.";
|
||||
|
||||
_timeoutStart=diag_ticktime;
|
||||
while {true} do {
|
||||
if (diag_ticktime - _timeoutStart >= 120) exitWith {
|
||||
1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"];
|
||||
uiSleep 5;
|
||||
endMission "END1";
|
||||
};
|
||||
if ((!isNil "Dayz_loginCompleted") and {(Dayz_loginCompleted)}) exitWith {
|
||||
//diag_log [ __FILE__, __LINE__, "End loop"];
|
||||
|
||||
// Logo watermark: adding a logo in the bottom left corner of the screen with the server name
|
||||
if (!isNil "dayZ_serverName") then {
|
||||
5 cutRsc ["wm_disp","PLAIN"];
|
||||
_watermark = (uiNamespace getVariable "wm_disp") displayCtrl 1;
|
||||
_watermark ctrlSetText dayZ_serverName;
|
||||
if (profileNamespace getVariable ["streamerMode",0] == 1) then {_watermark ctrlShow false;};
|
||||
};
|
||||
|
||||
if (dayz_enableRules && (profileNamespace getVariable ["streamerMode",0] == 0)) then {
|
||||
dayz_rulesHandle = execVM "rules.sqf";
|
||||
};
|
||||
|
||||
if (dayz_groupSystem) then {execVM "DZE_Hotfix_1.0.6.1A\groups\init.sqf";};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_groupSystem patched";
|
||||
};
|
||||
_display = uiNameSpace getVariable "BIS_loadingScreen";
|
||||
if (!isNil "_display") then {
|
||||
if (dayz_loadScreenMsg != "" ) then {
|
||||
_control1 = _display displayctrl 8400;
|
||||
_control1 ctrlSetText dayz_loadScreenMsg;
|
||||
};
|
||||
_control2 = _display displayctrl 102;
|
||||
_control2 ctrlSetText format["%1",floor(diag_ticktime - _timeoutStart)];
|
||||
};
|
||||
|
||||
uiSleep 0.2;
|
||||
//diag_log [ __FILE__, __LINE__, "Looping..."];
|
||||
};
|
||||
|
||||
@@ -79,16 +79,11 @@ onPreloadStarted "diag_log [diag_tickTime,'onPreloadStarted']; dayz_preloadFinis
|
||||
onPreloadFinished "diag_log [diag_tickTime,'onPreloadFinished']; dayz_preloadFinished = true;";
|
||||
with uiNameSpace do {RscDMSLoad=nil;}; // autologon at next logon
|
||||
|
||||
_verCheck = (getText (configFile >> "CfgMods" >> "DayZ" >> "version") == "DayZ Epoch 1.0.6.1");
|
||||
if (!isDedicated) then {
|
||||
enableSaving [false, false]; startLoadingScreen ["","RscDisplayLoadCustom"];
|
||||
progressLoadingScreen 0;
|
||||
dayz_loadScreenMsg = localize 'str_login_missionFile';
|
||||
if (_verCheck) then {
|
||||
progress_monitor = [] execVM "DZE_Hotfix_1.0.6.1A\system\progress_monitor.sqf";
|
||||
} else {
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
};
|
||||
progress_monitor = [] execVM "\z\addons\dayz_code\system\progress_monitor.sqf";
|
||||
0 cutText ['','BLACK',0];
|
||||
0 fadeSound 0;
|
||||
0 fadeMusic 0;
|
||||
@@ -102,9 +97,6 @@ progressLoadingScreen 0.1;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf";
|
||||
progressLoadingScreen 0.15;
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";
|
||||
if (_verCheck) then {
|
||||
#include "DZE_Hotfix_1.0.6.1A\init\compiles.sqf"
|
||||
};
|
||||
progressLoadingScreen 0.25;
|
||||
call compile preprocessFileLineNumbers "server_traders.sqf";
|
||||
call compile preprocessFileLineNumbers "\z\addons\dayz_code\system\mission\sauerland.sqf"; //Add trader city objects locally on every machine early
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
private ["_bodyCount","_count","_group","_hasGPS","_index","_inGroup","_marker","_markBody","_markGroup","_markSelf","_name","_pos","_self","_vehicle"];
|
||||
|
||||
while {true} do {
|
||||
_group = player call dayz_filterGroup;
|
||||
_inGroup = count _group > 1;
|
||||
|
||||
if (dayz_requireRadio && {_inGroup} && {!("ItemRadio" in items player)}) then {
|
||||
[player] joinSilent grpNull;
|
||||
if (!isNull findDisplay 80000) then {findDisplay 80000 closeDisplay 2;};
|
||||
terminate dayz_groupTags;
|
||||
80000 cutText ["","PLAIN"];
|
||||
localize "STR_EPOCH_LOST_RADIO_CONTACT" call dayz_rollingMessages;
|
||||
} else {
|
||||
if (_inGroup && scriptDone dayz_groupTags) then {
|
||||
dayz_groupTags = execVM "DZE_Hotfix_1.0.6.1A\groups\groupTags.sqf";
|
||||
};
|
||||
|
||||
if (visibleMap or !isNull (uiNamespace getVariable["BIS_RscMiniMap",displayNull])) then {
|
||||
_hasGPS = "ItemGPS" in items player;
|
||||
_markBody = (dayz_markBody == 1 or (dayz_markBody == 2 && _hasGPS));
|
||||
_markGroup = (dayz_markGroup == 1 or (dayz_markGroup == 2 && _hasGPS));
|
||||
_markSelf = (dayz_markSelf == 1 or (dayz_markSelf == 2 && _hasGPS));
|
||||
|
||||
_index = 0;
|
||||
{
|
||||
_self = _x == player;
|
||||
_vehicle = vehicle _x;
|
||||
if ((_self or _markGroup) && (!_self or _markSelf) && (effectiveCommander _vehicle == _x)) then {
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
_marker = createMarkerLocal [format["groupMember%1",_index],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal format ["%1",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];
|
||||
_marker setMarkerColorLocal "ColorGreen";
|
||||
} else {
|
||||
deleteMarkerLocal format["groupMember%1",_index];
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
// Remove markers for group members that left
|
||||
_count = count _group;
|
||||
if (dayz_oldMemberCount > _count) then {
|
||||
for "_i" from _count to dayz_oldMemberCount do {deleteMarkerLocal format["groupMember%1",_i];};
|
||||
};
|
||||
dayz_oldMemberCount = _count;
|
||||
|
||||
if (_markBody) then {
|
||||
_bodyCount = 0;
|
||||
_name = name player;
|
||||
{
|
||||
if (_x getVariable["bodyName",""] == _name) then {
|
||||
_bodyCount = _bodyCount + 1;
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
deleteMarkerLocal format["MyBody%1",_bodyCount];
|
||||
_marker = createMarkerLocal [format["MyBody%1",_bodyCount],_pos];
|
||||
_marker setMarkerTypeLocal "DestroyedVehicle";
|
||||
_marker setMarkerTextLocal localize "STR_EPOCH_RIP";
|
||||
_marker setMarkerColorLocal "ColorRed";
|
||||
};
|
||||
} count allDead;
|
||||
|
||||
// Remove markers for bodies that were deleted
|
||||
if (dayz_oldBodyCount > _bodyCount) then {
|
||||
for "_i" from _bodyCount to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
dayz_oldBodyCount = _bodyCount;
|
||||
} else {
|
||||
for "_i" from 1 to dayz_oldBodyCount do {deleteMarkerLocal format["MyBody%1",_i];};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
uiSleep 1;
|
||||
};
|
||||
@@ -1,52 +0,0 @@
|
||||
#define DRAW_TAGS (!visibleMap && count units group player > 1) //Use && cameraView != "GROUP" if tactical view is allowed (blocked by default)
|
||||
private ["_display","_distance","_group","_icon","_index","_pos","_scale","_screen","_text"];
|
||||
disableSerialization;
|
||||
|
||||
_refresh = {
|
||||
_group = player call dayz_filterGroup;
|
||||
|
||||
_display = uiNamespace getVariable "DZ_GroupTags";
|
||||
_index = 0;
|
||||
{
|
||||
_pos = [_x] call FNC_GetPos;
|
||||
_distance = _pos distance player;
|
||||
_icon = _display displayCtrl (100 + _index);
|
||||
if (_distance > 1 && _distance < 2500 && vehicle _x != vehicle player) then {
|
||||
_pos set [2,(_pos select 2) + 1.5];
|
||||
_screen = worldToScreen _pos;
|
||||
_text = composeText [image "\ca\ui\data\igui_side_unknown_ca.paa"," ",if (dayz_groupNameTags) then {name _x} else {""}];
|
||||
if (count _screen > 1) then {
|
||||
_scale = if (_distance < 200) then {.3} else {1 min ((1 - (_distance - 3) / 15) max .3)};
|
||||
_icon ctrlSetStructuredText _text;
|
||||
_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];
|
||||
_icon ctrlSetScale _scale;
|
||||
_icon ctrlSetFade ((1 - _scale) / 2);
|
||||
_icon ctrlCommit 0;
|
||||
_icon ctrlShow true;
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
} else {
|
||||
_icon ctrlShow false;
|
||||
};
|
||||
_index = _index + 1;
|
||||
} count _group;
|
||||
|
||||
if (dayz_oldGroupCount > count _group) then {
|
||||
_display displayCtrl (100 + _index) ctrlShow false;
|
||||
};
|
||||
|
||||
dayz_oldGroupCount = count _group;
|
||||
};
|
||||
|
||||
while {true} do {
|
||||
waitUntil {uiSleep 1; DRAW_TAGS};
|
||||
80000 cutRsc ["DZ_GroupTags","PLAIN"];
|
||||
|
||||
while {DRAW_TAGS} do {
|
||||
call _refresh; //Must be called to finish in current frame
|
||||
uiSleep 0.01;
|
||||
};
|
||||
|
||||
80000 cutText ["","PLAIN"];
|
||||
};
|
||||
@@ -1,51 +0,0 @@
|
||||
private ["_leader","_oldGroup","_savedGroup"];
|
||||
|
||||
uiSleep 1;
|
||||
if (count (units group player) > 1) then {
|
||||
[player] joinSilent grpNull;
|
||||
diag_log "Clearing group";
|
||||
};
|
||||
|
||||
_savedGroup = (PVCDZ_plr_Login select 10) - [getPlayerUID player];
|
||||
|
||||
if (count _savedGroup > 0 && {!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 _savedGroup) exitWith {
|
||||
_oldGroup = group player;
|
||||
[player] joinSilent _x;
|
||||
if (count (units _oldGroup) == 0) then {deleteGroup _oldGroup;};
|
||||
format[localize "STR_EPOCH_REJOINED_GROUP",name _leader] call dayz_rollingMessages;
|
||||
|
||||
// Update saved group in DB
|
||||
PVDZ_Server_UpdateGroup = [1,player];
|
||||
publicVariableServer "PVDZ_Server_UpdateGroup";
|
||||
};
|
||||
} count allGroups;
|
||||
};
|
||||
|
||||
dayz_oldBodyCount = 0;
|
||||
dayz_oldGroupCount = 0;
|
||||
dayz_oldMemberCount = 0;
|
||||
dayz_disbandGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\disband.sqf";
|
||||
dayz_filterGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\filter.sqf";
|
||||
dayz_getCrew = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getCrew.sqf";
|
||||
dayz_getPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\getPlayer.sqf";
|
||||
dayz_inviteToGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\invite.sqf";
|
||||
dayz_joinGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\join.sqf";
|
||||
dayz_kickFromGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\kick.sqf";
|
||||
dayz_leaveGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\leave.sqf";
|
||||
dayz_openGroupDialog = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\open.sqf";
|
||||
dayz_pickGroupMember = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickGroupMember.sqf";
|
||||
dayz_pickPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\pickPlayer.sqf";
|
||||
dayz_promotePlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\promote.sqf";
|
||||
dayz_rejectGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\reject.sqf";
|
||||
dayz_groupInit = true;
|
||||
|
||||
//Initialize as script data type, no scriptNull in A2
|
||||
dayz_groupDisbandThread = 0 spawn {};
|
||||
dayz_groupLeaveThread = 0 spawn {};
|
||||
dayz_groupTags = 0 spawn {};
|
||||
|
||||
execVM "DZE_Hotfix_1.0.6.1A\groups\groupMarkers.sqf";
|
||||
@@ -1,47 +0,0 @@
|
||||
if (!isDedicated) then {
|
||||
dayz_NutritionSystem = {
|
||||
private ["_type","_baseRegen","_nutrition","_calorieCount","_hungerCount","_thirstCount","_tempCount","_Thirst","_Hunger","_bloodregen","_golbalNutrition"];
|
||||
_type = _this select 0;
|
||||
_baseRegen = _this select 1;
|
||||
_nutrition = _this select 2;
|
||||
_calorieCount = ((_this select 2) select 0);
|
||||
_hungerCount = ((_this select 2) select 1);
|
||||
_thirstCount = ((_this select 2) select 2);
|
||||
_tempCount = ((_this select 2) select 3);
|
||||
if (_calorieCount > 0) then {
|
||||
_hungerCount = _hungerCount + (SleepFood * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_hunger / SleepFood))) / 100));
|
||||
_thirstCount = _thirstCount + (SleepWater * (((ln ((_calorieCount / 3610) * 100)) * (1 - (dayz_thirst / SleepWater))) / 100));
|
||||
};
|
||||
switch (_type) do {
|
||||
case "FoodDrink": {
|
||||
if (_hungerCount > 0) then {
|
||||
if (dayz_hunger > _hungerCount) then {
|
||||
dayz_hunger = dayz_hunger - (_hungerCount);
|
||||
} else {
|
||||
dayz_hunger = 0;
|
||||
};
|
||||
};
|
||||
if (_thirstCount > 0) then {
|
||||
if (dayz_thirst > _thirstCount) then {
|
||||
dayz_thirst = dayz_thirst - _thirstCount;
|
||||
} else {
|
||||
dayz_thirst = 0;
|
||||
};
|
||||
};
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + _tempCount; };
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition + _calorieCount; };
|
||||
if (_baseRegen > 0) then { r_player_bloodregen = r_player_bloodregen + _baseRegen; };
|
||||
};
|
||||
case "Working": {
|
||||
if (_calorieCount > 0) then { dayz_nutrition = dayz_nutrition - (_calorieCount / ((DZE_NutritionDivisor select 0) max 0.1)); };
|
||||
if (_thirstCount > 0) then { dayz_thirst = dayz_thirst + (_thirstCount / ((DZE_NutritionDivisor select 1) max 0.1)); };
|
||||
if (_hungerCount > 0) then { dayz_hunger = dayz_hunger + (_hungerCount / ((DZE_NutritionDivisor select 2) max 0.1)); };
|
||||
if (_tempCount > 0) then { dayz_temperatur = dayz_temperatur + (_tempCount / ((DZE_NutritionDivisor select 3) max 0.1)); };
|
||||
};
|
||||
};
|
||||
dayz_thirst = (dayz_thirst min SleepWater) max 0;
|
||||
dayz_hunger = (dayz_hunger min SleepFood) max 0;
|
||||
dayz_temperatur = (dayz_temperatur min dayz_temperaturmax) max dayz_temperaturmin;
|
||||
};
|
||||
Diag_Log "DZE_Hotfix_1.0.6.1A: dayz_NutritionSystem patched";
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user