This commit is contained in:
2022-04-21 16:15:41 +03:00
commit 9d4fc88901
601 changed files with 66252 additions and 0 deletions

View File

@ -0,0 +1,12 @@
if (isServer) then {
diag_log "Loading custom rlnt server compiles...";
};
if (!isDedicated) then {
diag_log "Loading custom rlnt client compiles...";
//RLNT - Relentless
/* RLNT - WeaponHUD */
fnc_hud_getImages = compile preprocessFileLineNumbers "rlnt\functions\hud_getImages.sqf";
fnc_hud_updateImages = compile preprocessFileLineNumbers "rlnt\functions\hud_updateImages.sqf";
};

View File

@ -0,0 +1,213 @@
/*
Filename: rlnt_defines.hpp
Author: Relentless
Description: Defines for RLNT Classes
Calculation: 1 GUI_GRID = 0.0173 * SafezoneH
*/
/* RLNT Control Types */
#define CT_STATIC 0
#define CT_BUTTON 1
#define CT_EDIT 2
#define CT_SLIDER 3
#define CT_COMBO 4
#define CT_LISTBOX 5
#define CT_TOOLBOX 6
#define CT_CHECKBOXES 7
#define CT_PROGRESS 8
#define CT_HTML 9
#define CT_STATIC_SKEW 10
#define CT_ACTIVETEXT 11
#define CT_TREE 12
#define CT_STRUCTURED_TEXT 13
#define CT_CONTEXT_MENU 14
#define CT_CONTROLS_GROUP 15
#define CT_SHORTCUTBUTTON 16
#define CT_XKEYDESC 40
#define CT_XBUTTON 41
#define CT_XLISTBOX 42
#define CT_XSLIDER 43
#define CT_XCOMBO 44
#define CT_ANIMATED_TEXTURE 45
#define CT_OBJECT 80
#define CT_OBJECT_ZOOM 81
#define CT_OBJECT_CONTAINER 82
#define CT_OBJECT_CONT_ANIM 83
#define CT_LINEBREAK 98
#define CT_USER 99
#define CT_MAP 100
#define CT_MAP_MAIN 101
#define CT_LISTNBOX 102
/* RLNT Static Style */
#define ST_POS 0x0F
#define ST_HPOS 0x03
#define ST_VPOS 0x0C
#define ST_LEFT 0x00
#define ST_RIGHT 0x01
#define ST_CENTER 0x02
#define ST_DOWN 0x04
#define ST_UP 0x08
#define ST_VCENTER 0x0C
#define ST_GROUP_BOX 96
#define ST_GROUP_BOX2 112
#define ST_ROUNDED_CORNER ST_GROUP_BOX + ST_CENTER
#define ST_ROUNDED_CORNER2 ST_GROUP_BOX2 + ST_CENTER
#define ST_TYPE 0xF0
#define ST_SINGLE 0x00
#define ST_MULTI 0x10
#define ST_TITLE_BAR 0x20
#define ST_PICTURE 0x30
#define ST_FRAME 0x40
#define ST_BACKGROUND 0x50
#define ST_GROUP_BOX 0x60
#define ST_GROUP_BOX2 0x70
#define ST_HUD_BACKGROUND 0x80
#define ST_TILE_PICTURE 0x90
#define ST_WITH_RECT 0xA0
#define ST_LINE 0xB0
#define ST_SHADOW 0x100
#define ST_NO_RECT 0x200
#define ST_KEEP_ASPECT_RATIO 0x800
#define ST_TITLE ST_TITLE_BAR + ST_CENTER
/* RLNT Slider Styles */
#define SL_DIR 0x400
#define SL_VERT 0
#define SL_HORZ 0x400
#define SL_TEXTURES 0x10
/* RLNT Progress Bar */
#define ST_VERTICAL 0x01
#define ST_HORIZONTAL 0
/* RLNT Listbox Styles */
#define LB_TEXTURES 0x10
#define LB_MULTI 0x20
/* RLNT Tree Styles */
#define TR_SHOWROOT 1
#define TR_AUTOCOLLAPSE 2
/* RLNT Message Box Styles */
#define MB_BUTTON_OK 1
#define MB_BUTTON_CANCEL 2
#define MB_BUTTON_USER 4
/* RLNT BASE CLASSES */
class RLNT_RscText
{
access = 0;
idc = -1;
type = CT_STATIC;
style = 0;
linespacing = 1;
colorBackground[] = {0,0,0,0};
colorText[] = {1,1,1,1};
text = "";
shadow = 0;
font = "Zeppelin32";
sizeEx = 0.0173 * SafezoneH;
fixedWidth = 0;
x = 0;
y = 0;
h = 0;
w = 0;
};
class RLNT_RscPicture
{
access = 0;
idc = -1;
type = CT_STATIC;
style = ST_PICTURE;
colorBackground[] = {0,0,0,0};
colorText[] = {1,1,1,1};
font = "Zeppelin32";
sizeEx = 0.0173 * SafezoneH;
lineSpacing = 0;
text = "";
fixedWidth = 0;
shadow = 0;
x = 0;
y = 0;
w = 0.2;
h = 0.15;
};
class RLNT_RscButton_Static
{
access = 0;
type = 1;
text = "";
colorText[] = {1,1,1,1};
colorDisabled[] = {1,1,1,0.25};
colorBackground[] = {0.45,0.45,0.45,1};
colorBackgroundDisabled[] = {0,0,0,0.5};
colorBackgroundActive[] = {-1,-1,-1,-1};
colorFocused[] = {-1,-1,-1,-1};
colorShadow[] = {0,0,0,0};
colorBorder[] = {0,0,0,1};
soundEnter[] = {"\ca\ui\data\sound\onover",0.09,1};
soundPush[] = {"\ca\ui\data\sound\new1",0,0};
soundClick[] = {"\ca\ui\data\sound\onclick",0.07,1};
soundEscape[] = {"\ca\ui\data\sound\onescape",0.09,1};
style = 2;
x = 0;
y = 0;
w = 0.095589;
h = 0.039216;
shadow = 2;
font = "Zeppelin32";
sizeEx = 0.0173 * SafezoneH;
offsetX = 0.003;
offsetY = 0.003;
offsetPressedX = 0.002;
offsetPressedY = 0.002;
borderSize = 0;
};
class RLNT_RscButton_Dynamic
{
access = 0;
type = 1;
text = "";
colorText[] = {1,1,1,1};
colorDisabled[] = {1,1,1,0.25};
colorBackground[] = {0.45,0.45,0.45,1};
colorBackgroundDisabled[] = {0,0,0,0.5};
colorBackgroundActive[] = {0.75,0.75,0.75,1};
colorFocused[] = {0.75,0.75,0.75,1};
colorShadow[] = {0,0,0,0};
colorBorder[] = {0,0,0,1};
soundEnter[] = {"\ca\ui\data\sound\onover",0.09,1};
soundPush[] = {"\ca\ui\data\sound\new1",0,0};
soundClick[] = {"\ca\ui\data\sound\onclick",0.07,1};
soundEscape[] = {"\ca\ui\data\sound\onescape",0.09,1};
style = 2;
x = 0;
y = 0;
w = 0.095589;
h = 0.039216;
shadow = 2;
font = "Zeppelin32";
sizeEx = 0.0173 * SafezoneH;
offsetX = 0.003;
offsetY = 0.003;
offsetPressedX = 0.002;
offsetPressedY = 0.002;
borderSize = 0;
};
class RLNT_RscFrame
{
type = 0;
idc = -1;
style = 64;
shadow = 2;
colorBackground[] = {0,0,0,0};
colorText[] = {1,1,1,1};
font = "Zeppelin32";
SizeEx = 0.0173 * SafezoneH;
text = "";
};

View File

@ -0,0 +1,211 @@
/*
Filename: rlnt_weaponhud.hpp
Author: Relentless
Description: Dialog for the Weapon HUD
*/
class rlnt_weaponhud_2_bg {
idd = 7202;
movingenable = false;
duration = 10e10;
onLoad = "";
class controls {
class text_rifle_1: RLNT_RscText
{
idc = 1000;
text = "1";
x = 0.108258 * safezoneW + safezoneX;
y = 0.939838 * safezoneH + safezoneY;
w = 0.010309 * safezoneW;
h = 0.0439838 * safezoneH;
colorText[] = {255,255,255,1};
};
class text_rifle_2: RLNT_RscText
{
idc = 1001;
text = "2";
x = 0.200008 * safezoneW + safezoneX;
y = 0.939838 * safezoneH + safezoneY;
w = 0.010309 * safezoneW;
h = 0.0439838 * safezoneH;
colorText[] = {255,255,255,1};
};
class text_secondary: RLNT_RscText
{
idc = 1002;
text = "3";
x = 0.291758 * safezoneW + safezoneX;
y = 0.939838 * safezoneH + safezoneY;
w = 0.010309 * safezoneW;
h = 0.0439838 * safezoneH;
colorText[] = {255,255,255,1};
};
class text_painkiller: RLNT_RscText
{
idc = 1003;
text = "4";
x = 0.361859 * safezoneW + safezoneX;
y = 0.939838 * safezoneH + safezoneY;
w = 0.010309 * safezoneW;
h = 0.0439838 * safezoneH;
colorText[] = {255,255,255,1};
};
class text_bandage: RLNT_RscText
{
idc = 1004;
text = "5";
x = 0.431961 * safezoneW + safezoneX;
y = 0.939838 * safezoneH + safezoneY;
w = 0.010309 * safezoneW;
h = 0.0439838 * safezoneH;
colorText[] = {255,255,255,1};
};
class bg_rifle_1: RLNT_RscText
{
idc = 1005;
x = 0.108258 * safezoneW + safezoneX;
y = 0.928842 * safezoneH + safezoneY;
w = 0.0876266 * safezoneW;
h = 0.0659757 * safezoneH;
colorBackground[] = {0,0,0,0.4};
};
class bg_rifle_2: RLNT_RscText
{
idc = 1006;
x = 0.200008 * safezoneW + safezoneX;
y = 0.928842 * safezoneH + safezoneY;
w = 0.0876266 * safezoneW;
h = 0.0659757 * safezoneH;
colorBackground[] = {0,0,0,0.4};
};
class bg_secondary: RLNT_RscText
{
idc = 1007;
x = 0.291758 * safezoneW + safezoneX;
y = 0.928842 * safezoneH + safezoneY;
w = 0.0670085 * safezoneW;
h = 0.0659757 * safezoneH;
colorBackground[] = {0,0,0,0.4};
};
class bg_painkiller: RLNT_RscText
{
idc = 1008;
x = 0.361859 * safezoneW + safezoneX;
y = 0.928842 * safezoneH + safezoneY;
w = 0.0670085 * safezoneW;
h = 0.0659757 * safezoneH;
colorBackground[] = {0,0,0,0.4};
};
class bg_bandage: RLNT_RscText
{
idc = 1009;
x = 0.43196 * safezoneW + safezoneX;
y = 0.928842 * safezoneH + safezoneY;
w = 0.0670085 * safezoneW;
h = 0.0659757 * safezoneH;
colorBackground[] = {0,0,0,0.4};
};
class frame_rifle_1: RLNT_RscText
{
idc = 1010;
x = 0.118567 * safezoneW + safezoneX;
y = 0.928842 * safezoneH + safezoneY;
w = 0.0773175 * safezoneW;
h = 0.0659757 * safezoneH;
colorBackground[] = {0,0,0,0.4};
};
class frame_rifle_2: RLNT_RscText
{
idc = 1011;
x = 0.211348 * safezoneW + safezoneX;
y = 0.928842 * safezoneH + safezoneY;
w = 0.0773175 * safezoneW;
h = 0.0659757 * safezoneH;
colorBackground[] = {0,0,0,0.4};
};
class frame_secondary: RLNT_RscText
{
idc = 1012;
x = 0.302067 * safezoneW + safezoneX;
y = 0.928842 * safezoneH + safezoneY;
w = 0.0566995 * safezoneW;
h = 0.0659757 * safezoneH;
colorBackground[] = {0,0,0,0.4};
};
class frame_painkiller: RLNT_RscText
{
idc = 1013;
x = 0.372168 * safezoneW + safezoneX;
y = 0.928842 * safezoneH + safezoneY;
w = 0.0566995 * safezoneW;
h = 0.0659757 * safezoneH;
colorBackground[] = {0,0,0,0.4};
};
class frame_bandage: RLNT_RscText
{
idc = 1014;
x = 0.442269 * safezoneW + safezoneX;
y = 0.928842 * safezoneH + safezoneY;
w = 0.0566995 * safezoneW;
h = 0.0659757 * safezoneH;
colorBackground[] = {0,0,0,0.4};
};
};
};
class rlnt_weaponhud_2_items {
idd = 7203;
movingenable = false;
duration = 10e10;
onLoad = "uiNamespace setVariable ['rlnt_weaponhud_2_items', _this select 0];";
class controls {
class img_rifle_1: RLNT_RscPicture
{
idc = 1200;
text = "#(argb,8,8,3)color(0,0,0,0)";
x = 0.118567 * safezoneW + safezoneX;
y = 0.928842 * safezoneH + safezoneY;
w = 0.0773175 * safezoneW;
h = 0.0659757 * safezoneH;
};
class img_rifle_2: RLNT_RscPicture
{
idc = 1201;
text = "#(argb,8,8,3)color(0,0,0,0)";
x = 0.211348 * safezoneW + safezoneX;
y = 0.928842 * safezoneH + safezoneY;
w = 0.0773175 * safezoneW;
h = 0.0659757 * safezoneH;
};
class img_secondary: RLNT_RscPicture
{
idc = 1202;
text = "#(argb,8,8,3)color(0,0,0,0)";
x = 0.302067 * safezoneW + safezoneX;
y = 0.928841 * safezoneH + safezoneY;
w = 0.0566995 * safezoneW;
h = 0.0659757 * safezoneH;
};
class img_painkiller: RLNT_RscPicture
{
idc = 1203;
text = "#(argb,8,8,3)color(0,0,0,0)";
x = 0.377323 * safezoneW + safezoneX;
y = 0.93544 * safezoneH + safezoneY;
w = 0.0463905 * safezoneW;
h = 0.0549797 * safezoneH;
};
class img_bandage: RLNT_RscPicture
{
idc = 1204;
text = "#(argb,8,8,3)color(0,0,0,0)";
x = 0.447424 * safezoneW + safezoneX;
y = 0.935439 * safezoneH + safezoneY;
w = 0.0463905 * safezoneW;
h = 0.0549797 * safezoneH;
};
};
};

View File

@ -0,0 +1,39 @@
/*
Filename: hud_getImages.sqf
Author: Relentless
Description: Function to get images for Weapon HUD
*/
private ["_hasPainkiller","_hasBandage","_display"];
disableSerialization;
/* Variables */
_hasPainkiller = 'ItemPainkiller' in magazines player;
_hasBandage = 'ItemBandage' in magazines player;
_display = uiNamespace getVariable["rlnt_rlnt_weaponhud_2_items", displayNull];
/* Delay so the display spawns first */
sleep 1;
/* Set Images */
//Primary Weapon
(_display displayCtrl 1200) ctrlSetText(gettext(configFile >> 'cfgWeapons' >> (primaryWeapon player) >> 'picture'));
//Seccond Primary Weapon
(_display displayCtrl 1201) ctrlSetText(gettext(configFile >> 'cfgWeapons' >> dayz_onBack >> 'picture'));
//Handgun Weapon
{
if ((getNumber (configFile >> 'cfgWeapons' >> _x >> 'Type')) == 2) exitWith {
(_display displayCtrl 1202) ctrlSetText(getText(configFile >> 'cfgWeapons' >> _x >> 'picture'));
};
} forEach weapons player;
//Painkiller
if (_hasPainkiller) then {
(_display displayCtrl 1203) ctrlSetText(gettext(configFile >> 'cfgMagazines' >> 'itempainkiller' >> 'picture'));
};
//Bandage
if (_hasBandage) then {
(_display displayCtrl 1204) ctrlSetText(gettext(configFile >> 'cfgMagazines' >> 'itembandage' >> 'picture'));
};

View File

@ -0,0 +1,51 @@
/*
Filename: hud_updateImages.sqf
Author: Relentless
Description: Function to refresh images for Weapon HUD
*/
private ["_display","_rifle1Update","_rifle2Update","_secondaryUpdate","_painkillerUpdate","_bandageUpdate","_hasPainkiller","_hasBandage","_handgun"];
disableSerialization;
/* Variables */
_display = uiNamespace getVariable["rlnt_weaponhud_2_items", displayNull];
_rifle1Update = _display displayCtrl 1200;
_rifle2Update = _display displayCtrl 1201;
_secondaryUpdate = _display displayCtrl 1202;
_painkillerUpdate = _display displayCtrl 1203;
_bandageUpdate = _display displayCtrl 1204;
_hasPainkiller = 'ItemPainkiller' in magazines player;
_hasBandage = 'ItemBandage' in magazines player;
_handgun = "";
/* Refresh images */
//Primary Weapon
_rifle1Update ctrlSetText(gettext(configFile >> 'cfgWeapons' >> (primaryWeapon player) >> 'picture'));
//Seccond Primary Weapon
_rifle2Update ctrlSetText(gettext(configFile >> 'cfgWeapons' >> dayz_onBack >> 'picture'));
//Handgun Weapon
{
if ((getNumber(configFile >> 'cfgWeapons' >> _x >> 'Type')) == 2) then {
_handgun = _x;
};
} forEach weapons player;
if (_handgun == "") then {
_secondaryUpdate ctrlSetText("");
} else {
_secondaryUpdate ctrlSetText(getText(configFile >> 'cfgWeapons' >> _handgun >> 'picture'));
};
//Painkiller
if (_hasPainkiller) then {
_painkillerUpdate ctrlSetText(gettext(configFile >> 'cfgMagazines' >> 'itempainkiller' >> 'picture'));
} else {
_painkillerUpdate ctrlSetText("");
};
//Bandage
if (_hasBandage) then {
_bandageUpdate ctrlSetText(gettext(configFile >> 'cfgMagazines' >> 'itembandage' >> 'picture'));
} else {
_bandageUpdate ctrlSetText("");
};

View File

@ -0,0 +1,80 @@
/*
Filename: bandage.sqf
Author: Dayz Epoch Mod - Team
Modifications: Relentless
Description: Custom bandage script to avoid Client errors
*/
private ["_unit","_item","_hasItem","_animState","_started","_finished","_isMedic","_id"];
/* Variables */
_unit = player;
_item = "ItemBandage";
_hasItem = _item in magazines player;
/* Avoid animation if player doesn't have the item */
if !(_hasItem) exitWith {};
/* Take item from player */
player removeMagazine _item;
closedialog 0;
/* Reset self_action */
call fnc_usec_medic_removeActions;
r_action = false;
/* Perform animation */
if (vehicle player == player) then {
player playActionNow "Medic";
};
/* Reset variables */
r_interrupt = false;
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
[player,"bandage",0,false] call dayz_zombieSpeak;
/* Error Loop */
while {r_doLoop} do {
_animState = animationState player;
_isMedic = ["medic",_animState] call fnc_inString;
if (_isMedic) then {
_started = true;
};
if (_started and !_isMedic) then {
r_doLoop = false;
_finished = true;
};
if (r_interrupt) then {
r_doLoop = false;
};
if (vehicle player != player) then {
uiSleep 3;
r_doLoop = false;
_finished = true;
};
uiSleep 0.1;
};
r_doLoop = false;
/* Humanity reward when healing another player */
if (_finished) then {
if ((_unit == player) or (vehicle player != player)) then {
_id = [player,player] execVM "\z\addons\dayz_code\medical\publicEH\medBandaged.sqf";
if (_item=="ItemSepsisBandage") then {
r_player_Sepsis = [false, 0];
player setVariable ["USEC_Sepsis", false, true];
player setVariable ["sepsisStarted", nil];
};
} else {
PVDZ_send = [_unit,"Bandage",[_unit,player]];
publicVariableServer "PVDZ_send";
[20,0] call player_humanityChange;
};
} else {
r_interrupt = false;
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
player addMagazine _item;
};

View File

@ -0,0 +1,38 @@
/*
Filename: bandage.sqf
Author: Dayz Epoch Mod - Team
Modifications: Relentless
Description: Custom painkiller script to avoid Client errors
*/
private ["_unit","_item","_hasItem","_id"];
/* Variables */
_unit = player;
_item = "ItemPainkiller";
_hasItem = _item in magazines player;
/* Avoid animation if player doesn't have the item */
if !(_hasItem) exitWith {};
/* Perform animation and take item from player */
player playActionNow "Gear";
player removeMagazine _item;
/* Reset self_action */
call fnc_usec_medic_removeActions;
r_action = false;
/* Perform animation */
if (vehicle player == player) then {
player playActionNow "Gear";
};
/* Humanity reward if giving other player painkillers */
if ((_unit == player) or (vehicle player != player)) then {
_id = [player,player] execVM "\z\addons\dayz_code\medical\publicEH\medPainkiller.sqf";
} else {
PVDZ_send = [_unit,_item,[_unit,player]];
publicVariableServer "PVDZ_send";
[20,0] call player_humanityChange;
};

View File

@ -0,0 +1,13 @@
/*
Filename: hud_bg.sqf
Author: Relentless
Description: Only gets executed when DZE_TwoPrimaries = 2
*/
private ["_layer"];
disableSerialization;
/* Variables */
_layer = 1300;
/* Create Dialog / Weapon HUD */
_layer cutRsc ["rlnt_weaponhud_2_bg","PLAIN",1];

View File

@ -0,0 +1,15 @@
/*
Filename: hud_items.sqf
Author: Relentless
Description: Only gets executed when DZE_TwoPrimaries = 2
*/
private ["_layer"];
disableSerialization;
/* Variables */
_layer = 1301;
/* Create Dialog / Weapon HUD */
_layer cutRsc ["rlnt_weaponhud_2_items","PLAIN",1];
sleep 2;
[] spawn fnc_hud_getImages;

View File

@ -0,0 +1,17 @@
/*
Filename: loop.sqf
Author: Relentless
Description: Only gets executed when DZE_TwoPrimaries = 2
*/
private ["_i"];
sleep 5;
/* Perform loop while weaponHUD is activated */
while {DZE_weaponHUD} do {
[] spawn fnc_hud_updateImages;
for "_i" from 1 to 6 step 1 do {
if (DZE_weaponHUD) then {
sleep 0.5;
};
};
};

View File

@ -0,0 +1,27 @@
/*
Filename: weaponhud_init.sqf
Author: Relentless
Description: Checks for style of the Weapon HUD
*/
if (DZE_weaponHUD) then {
switch (DZE_TwoPrimaries) do {
case 0: {
//Style 0 == 1 Primary Weapon == 4 Boxes
execVM "rlnt\scripts\Weapon HUD\style1\hud_bg.sqf";
execVM "rlnt\scripts\Weapon HUD\style1\hud_items.sqf";
execVM "rlnt\scripts\Weapon HUD\style1\loop.sqf";
};
case 1: {
//Style 1 == 1 Primary Weapon == 4 Boxes
execVM "rlnt\scripts\Weapon HUD\style1\hud_bg.sqf";
execVM "rlnt\scripts\Weapon HUD\style1\hud_items.sqf";
execVM "rlnt\scripts\Weapon HUD\style1\loop.sqf";
};
case 2: {
//Style 2 == 2 Primary Weapon == 5 Boxes
execVM "rlnt\scripts\Weapon HUD\style2\hud_bg.sqf";
execVM "rlnt\scripts\Weapon HUD\style2\hud_items.sqf";
execVM "rlnt\scripts\Weapon HUD\style2\loop.sqf";
};
};
};