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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,284 @@
// (c) facoptere@gmail.com, licensed to DayZMod for the community
#include "\ca\editor\Data\Scripts\dikCodes.h"
local _dikCode = _this select 1;
local _shiftState = _this select 2;
local _ctrlState = _this select 3;
local _altState = _this select 4;
local _handled = false;
if (isNil "keyboard_keys") then {
local _cancelBuild = {
DZE_cancelBuilding = true;
call dayz_EjectPlayer;
_handled = false;
if (r_player_dead) then {_handled = true;}; // Disable ESC after death
};
local _dze_f = {
if (!_ctrlState && !_altState) then {DZE_F = true;};
};
local _dze_q = {
if (!_ctrlState && !_altState) then {DZE_Q = true;};
if (!_ctrlState && _altState) then {DZE_Q_alt = true;};
if (_ctrlState && !_altState) then {DZE_Q_ctrl = true;};
};
local _dze_z = {
if (!_ctrlState && !_altState) then {DZE_Z = true;};
if (!_ctrlState && _altState) then {DZE_Z_alt = true;};
if (_ctrlState && !_altState) then {DZE_Z_ctrl = true;};
};
local _autoRun = {
if (!dayz_autoRun) then {
dayz_autoRun = true;
dayz_autoRunThread = [] spawn {
local _weapon = currentWeapon player;
while {dayz_autoRun} do {
// SurfaceIsWater does not work for ponds
// Check weapon to detect Arma action (dayz action is handled in dz_fn_switchWeapon)
if (player != vehicle player || {r_fracture_legs || {surfaceIsWater getPosASL player} || {currentWeapon player != _weapon} || {(call fn_nearWaterHole) select 0}}) exitWith {
call dayz_autoRunOff;
};
player playAction "FastF";
uiSleep 0.5;
};
};
} else {
call dayz_autoRunOff;
};
_handled = true;
};
local _filterCheat = {
//Overriding default engine handling does not stop cheat input, need manual disableUserInput too
_handled = [displayNull,_dikCode,_shiftState] call dze_filterCheats;
};
local _openGroups = {
if (dayz_requireRadio && {!("ItemRadio" in items player)}) then {
localize "STR_EPOCH_NEED_RADIO" call dayz_rollingMessages;
} else {
if (isNull findDisplay 80000) then {
if (!isNil "dayz_groupInit") then {[] spawn dayz_openGroupDialog;};
} else {
findDisplay 80000 closeDisplay 2;
};
};
_handled = true;
};
local _muteSound = {
call player_toggleSoundMute;
_handled = true;
};
local _statusUI = {
DZE_UI = DZE_UI + 1;
if (DZE_UI == 6) then {DZE_UI = 0; [format[localize "STR_UI_STATUS_ICONS" + " %1",localize "STR_DISABLED"],1] call dayz_rollingMessages;};
if (DZE_UI == 1) then {[format[localize "STR_UI_STATUS_ICONS" + " %1",localize "STR_ENABLED"],1] call dayz_rollingMessages;};
profileNamespace setVariable ["statusUI",DZE_UI];
saveProfileNamespace;
call ui_changeDisplay;
_handled = true;
};
local _rifle = {
2 call dz_fn_switchWeapon;
_handled = true;
};
local _pistol = {
3 call dz_fn_switchWeapon;
_handled = true;
};
local _melee = { // Also works for rifle on back if DZE_TwoPrimaries = 2;
4 call dz_fn_switchWeapon;
_handled = true;
};
local _surrender = {
call player_surrender;
_handled = true;
};
local _gear = {
if ((vehicle player != player) && {!_shiftState && !_ctrlState && !_altState && !dialog}) then {
createGearDialog [player, "RscDisplayGear"];
_handled = true;
} else {
if ((vehicle player == player) && {speed vehicle player > 0}) then {
//[objNull, player, rSwitchMove,""] call RE;
_handled = true;
};
};
};
local _forcesave = {
if (diag_tickTime - dayz_lastSave > 10) then {
call player_forceSave;
};
};
local _drop = {
local _doors = [];
if (r_drag_sqf) then {
_doors = nearestObjects [player, DayZ_DropDrageeObjects, 3]; //Prevent dropping dragged player through objects
if (count _doors > 0) then {_handled = true;};
force_dropBody = true;
} else {
_doors = nearestObjects [player, DZE_DoorsLocked, 3];
if (count _doors > 0 && {speed player > 0}) then {_handled = true;}; //Prevent sprint and prone through doors glitch
};
};
local _interrupt = {
r_interrupt = true;
if (DZE_Surrender) then {call dze_surrender_off};
if (dayz_autoRun) then {call dayz_autoRunOff;};
};
// TODO: left/right, when gear open: onKeyDown = "[_this,'onKeyDown',0,107,0,107] execVM '\z\addons\dayz_code\system\handleGear.sqf'";
local _noise = {
//Overriding default engine handling does not stop combination binds, need manual disableUserInput too
_handled = [displayNull,_dikCode,_shiftState] call dze_filterCheats;
if (diag_ticktime - dayz_lastCheckBit > 10 && {!(_dikCode in channel_keys)}) then {
dayz_lastCheckBit = diag_ticktime;
[player,20,true,(getPosATL player)] call player_alertZombies;
};
};
local _journal = {
if (!dayz_isSwimming && !dialog) then {
[player,4,true,(getPosATL player)] call player_alertZombies;
createDialog 'horde_journal_front_cover';
};
_handled = true;
};
local _bunnyhop = {
r_interrupt = true;
if (animationState player in ["bunnyhopunarmed","bunnyhoprifle"]) then {
//Fixes invisible weapon switch glitch if double tapping vault with no weapon in hands
_handled = true;
};
if (player isKindOf "PZombie_VB") then {
_handled = true; // do not allow player zombies to vault or jump
} else {
local _nearbyObjects = nearestObjects [getPosATL player, dayz_disallowedVault, 8];
if (count _nearbyObjects > 0) then {
if (diag_tickTime - dayz_lastCheckBit > 4) then {
[objNull, player, rSwitchMove,"GetOver"] call RE;
player playActionNow "GetOver";
dayz_lastCheckBit = diag_tickTime;
} else {
_handled = true;
};
};
};
};
_rifle1 = {
2 call dz_fn_switchWeapon;
_handled = true;
};
_rifle2 = {
4 call dz_fn_switchWeapon;
_handled = true;
};
_pistol = {
3 call dz_fn_switchWeapon;
_handled = true;
};
_painkiller = {
[0,0,0,[player]] execVM "rlnt\scripts\Weapon HUD\actions\rlnt_painkiller.sqf";
_handled = true;
};
_bandage = {
[0,0,0,[player]] execVM "rlnt\scripts\Weapon HUD\actions\rlnt_bandage.sqf";
_handled = true;
};
local _block = {
_handled = true;
};
local _addArray = {
{
if (_x <= 999999) then {
keyboard_keys set [_x, _this select 1];
};
} forEach (_this select 0);
};
keyboard_keys = [];
channel_keys = [];
voice_keys = [];
{voice_keys = voice_keys + (actionKeys _x)} count voice_actions;
{channel_keys = channel_keys + (actionKeys _x)} count ["NextChannel","PrevChannel"];
keyboard_keys resize 256;
[[DIK_ESCAPE], _cancelBuild] call _addArray;
[[DIK_INSERT], {DZE_Q_alt = true;}] call _addArray;
[[DIK_A,DIK_D,DIK_LEFT,DIK_RIGHT], _interrupt] call _addArray;
[[DIK_F], _dze_f] call _addArray;
[[DIK_PRIOR], _dze_q] call _addArray;
[[DIK_NEXT], _dze_z] call _addArray;
[[DIK_Q], {DZE_4 = true;}] call _addArray;
[[DIK_E], {DZE_6 = true;}] call _addArray;
[[DIK_0], _autoRun] call _addArray;
[[DIK_NUMPADMINUS,DIK_LSHIFT], _filterCheat] call _addArray;
[[DIK_SPACE], {DZE_5 = true;}] call _addArray;
[actionKeys "User6", {DZE_F = true;}] call _addArray;
[actionKeys "User7", {DZE_Q_ctrl = true;}] call _addArray;
[actionKeys "User8", {DZE_Z_ctrl = true;}] call _addArray;
[actionKeys "User13", {DZE_Q_alt = true;}] call _addArray;
[actionKeys "User14", {DZE_Z_alt = true;}] call _addArray;
[actionKeys "User15", {DZE_Q = true;}] call _addArray;
[actionKeys "User16", {DZE_Z = true;}] call _addArray;
[actionKeys "User17", {DZE_4 = true;}] call _addArray;
[actionKeys "User18", {DZE_6 = true;}] call _addArray;
[actionKeys "User19", {DZE_5 = true;}] call _addArray;
[actionKeys "Surrender", _surrender] call _addArray;
[[DIK_1], _rifle] call _addArray;
[[DIK_2], _pistol] call _addArray;
[[DIK_3], _melee] call _addArray;
[actionKeys "Gear", _gear] call _addArray;
[actionKeys "Prone", _drop] call _addArray;
[actionKeys "Crouch", _drop] call _addArray;
[actionKeys "MoveLeft", _interrupt] call _addArray;
[actionKeys "MoveRight", _interrupt] call _addArray;
[actionKeys "MoveForward", _interrupt] call _addArray;
[actionKeys "MoveBack", _interrupt] call _addArray;
[actionKeys "TurnLeft", _interrupt] call _addArray;
[actionKeys "TurnRight", _interrupt] call _addArray;
[actionKeys "PushToTalk", _noise] call _addArray;
[actionKeys "PushToTalkAll", _noise] call _addArray;
[actionKeys "PushToTalkCommand", _noise] call _addArray;
[actionKeys "PushToTalkDirect", _noise] call _addArray;
[actionKeys "PushToTalkGroup", _noise] call _addArray;
[actionKeys "PushToTalkSide", _noise] call _addArray;
[actionKeys "PushToTalkVehicle", _noise] call _addArray;
[actionKeys "VoiceOverNet", _noise] call _addArray;
[actionKeys "NextChannel", _noise] call _addArray;
[actionKeys "PrevChannel", _noise] call _addArray;
[actionKeys "Chat", _noise] call _addArray;
[actionKeys "User20", _journal] call _addArray;
[actionKeys "Diary", _journal] call _addArray;
[actionKeys "NetworkStats", _journal] call _addArray;
[[DIK_F1], _muteSound] call _addArray;
[[DIK_F3], _statusUI] call _addArray;
[[DIK_F4], {if (diag_tickTime - dayz_lastSave > 10) then {call player_forceSave;};_handled = true;}] call _addArray;
[[DIK_TAB,DIK_DELETE], _forcesave] call _addArray;
[actionKeys "LeanLeft", {DZE_4 = true; dayz_dodge = true;}] call _addArray;
[actionKeys "LeanRight", {DZE_6 = true; dayz_dodge = true;}] call _addArray;
[actionKeys "GetOver", _bunnyhop] call _addArray; // V
[actionKeys "ForceCommandingMode", {DZE_5 = true;_handled = true;}] call _addArray;
[[ DIK_F9,DIK_F10,DIK_F11,DIK_F12,
DIK_F8,DIK_F7,DIK_F6,DIK_F5,
DIK_F2,DIK_9,
DIK_8,DIK_7,DIK_6], _block] call _addArray;
if (dayz_groupSystem) then {
[[DIK_F5], _openGroups] call _addArray;
[[DIK_LWIN,DIK_RWIN], {dayz_groupNameTags = !dayz_groupNameTags;_handled = true;}] call _addArray;
[actionKeys "TacticalView", _block] call _addArray;
};
[actionKeys "DSInterface", _block] call _addArray;
[[DIK_P], {if (_shiftState) then {_handled = true;};}] call _addArray;
//diag_log "keyboard_keys reset";
};
if (r_player_unconsciousInputDisabled) exitWith {true};
local _code = keyboard_keys select _dikCode;
if (!isNil "_code") then {
call _code;
};
_handled

View File

@ -0,0 +1,13 @@
private ["_vehicle","_status"];
_vehicle = _this select 0;
_status = _this select 1;
if (local _vehicle) then {
if(_status) then {
_vehicle setVehicleLock "LOCKED";
//_vehicle setVariable ["MF_Tow_Cannot_Tow",true,true];
} else {
_vehicle setVehicleLock "UNLOCKED";
//_vehicle setVariable ["MF_Tow_Cannot_Tow",false,true];
};
};

View File

@ -0,0 +1,106 @@
//private ["_control","_button","_parent","_group","_pos","_item","_conf","_name","_cfgActions","_numActions","_height","_menu","_config","_type","_script","_outputOriented","_compile","_array","_outputClass","_outputType"];
disableSerialization;
_control = _this select 0;
_button = _this select 1;
_parent = findDisplay 106;
if (carryClick) then {carryClick = false;};
if (_button == 1) then {
if (animationState player in ["ainjppnemstpsnonwnondnon_rolltofront","amovppnemstpsnonwnondnon_healed"]) exitWith {
//Prevent bypassing unconscious wake up animation with bandage or other right click actions
localize "str_player_actionslimit" call dayz_rollingMessages;
};
private ["_conf","_name","_compile","_height","_item"];
_group = _parent displayCtrl 6902;
_pos = ctrlPosition _group;
_item = gearSlotData _control;
if ( //No right click action
(!DZE_SelfTransfuse && {_item in ["ItemBloodbag","wholeBloodBagANEG","wholeBloodBagAPOS","wholeBloodBagBNEG","wholeBloodBagBPOS","wholeBloodBagABNEG","wholeBloodBagABPOS","wholeBloodBagONEG","wholeBloodBagOPOS"]})
) exitWith {};
if (mouseOverCarry) then {
_item = DayZ_onBack;
carryClick = true;
};
_pos set [0,((_this select 2) + 0.46)];
_pos set [1,((_this select 3) + 0.07)];
_conf = configFile >> "cfgMagazines" >> _item;
if (!isClass _conf) then {
_conf = configFile >> "cfgWeapons" >> _item;
};
_name = getText(_conf >> "displayName");
_cfgActions = _conf >> "ItemActions";
_numActions = (count _cfgActions);
_height = 0;
if (!dayz_groupSystem && {_item == "ItemRadio"}) then {_numActions = 1;}; // Used to bypass the group action when not enabled.
//Populate Menu
for "_i" from 0 to (_numActions - 1) do
{
_menu = _parent displayCtrl (1600 + _i);
_menu ctrlShow true;
_config = (_cfgActions select _i);
_type = getText (_config >> "text");
_script = getText (_config >> "script");
_outputOriented = getNumber (_config >> "outputOriented") == 1;
_height = _height + (0.025 * safezoneH);
_compile = format["_id = '%2' %1;",_script,_item];
uiNamespace setVariable ['uiControl', _control];
if (_outputOriented) then {
/*
This flag means that the action is output oriented
the output class will then be transferred to the script
and the type used for the name
*/
_array = getArray (_config >> "output");
_outputClass = _array select 0;
_outputType = _array select 1;
_name = getText (configFile >> _outputType >> _outputClass >> "displayName");
_compile = format["_id = ['%2',%3] %1;",_script,_item,_array];
};
_menu ctrlSetText format[_type,_name];
_menu ctrlSetEventHandler ["ButtonClick",_compile];
};
_isKey = ((["ItemKey",_item] call fnc_inString) && (_item != "ItemKeyKit"));
{
private["_classname","_text","_execute","_condition","_option"];
_classname = _x select 0;
_text = _x select 1;
_execute = _x select 2;
_condition = _x select 3;
if (count _this > 4) then {_option = _x select 4};
if ((_item == _classname || (_isKey && (_className == "ItemKey"))) && (call compile _condition)) then {
_menu = _parent displayCtrl (1600 + _numActions);
_menu ctrlShow true;
_height = _height + (0.025 * safezoneH);
uiNamespace setVariable ['uiControl', _control];
_menu ctrlSetText _text;
if (_isKey && (_className == "ItemKey")) then {
_menu ctrlSetEventHandler ["ButtonClick",format ["[%1,%2] %3",str _item,_option,_execute]];
} else {
_menu ctrlSetEventHandler ["ButtonClick",_execute];
};
_numActions = _numActions + 1;
};
} forEach DZE_CLICK_ACTIONS;
_pos set [3,_height];
//hint format["Obj: %1 \nHeight: %2\nPos: %3",_item,_height,_grpPos];
_group ctrlShow true;
ctrlSetFocus _group;
_group ctrlSetPosition _pos;
_group ctrlCommit 0;
};

View File

@ -0,0 +1,7 @@
if (isServer) then {
diag_log "Loading custom server configVariables";
};
if (!isDedicated) then {
diag_log "Loading custom client configVariables";
};

View File

@ -0,0 +1,114 @@
class RscText
{
type = 0;
idc = -1;
x = 0;
y = 0;
h = 0.037;
w = 0.3;
style = 0x100;
font = Zeppelin32;
SizeEx = 0.03921;
colorText[] = {1,1,1,1};
colorBackground[] = {0, 0, 0, 0};
linespacing = 1;
};
class RscPicture
{
access=0;
type=0;
idc=-1;
style=48;
colorBackground[]={0,0,0,0};
colorText[]={1,1,1,1};
font="TahomaB";
sizeEx=0;
lineSpacing=0;
text="";
};
class RscLoadingText : RscText
{
style = 2;
x = 0.323532;
y = 0.666672;
w = 0.352944;
h = 0.039216;
sizeEx = 0.03921;
colorText[] = {0.543,0.5742,0.4102,1.0};
};
class RscProgress
{
x = 0.344;
y = 0.619;
w = 0.313726;
h = 0.0261438;
texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
colorFrame[] = {0,0,0,0};
colorBar[] = {1,1,1,1};
};
class RscProgressNotFreeze
{
idc = -1;
type = 45;
style = 0;
x = 0.022059;
y = 0.911772;
w = 0.029412;
h = 0.039216;
texture = "#(argb,8,8,3)color(0,0,0,0)";
};
class DayZ_loadingScreen
{
idd = -1;
duration = 10e10;
fadein = 0;
fadeout = 0;
name = "loading screen";
class controlsBackground
{
class blackBG : RscText
{
x = safezoneX;
y = safezoneY;
w = safezoneW;
h = safezoneH;
text = "";
colorText[] = {0,0,0,0};
colorBackground[] = {0,0,0,1};
};
};
class controls
{
class Title1 : RscLoadingText
{
text = "$STR_LOADING";
};
class CA_Progress : RscProgress
{
idc = 104;
type = 8;
style = 0;
texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";
};
class CA_Progress2 : RscProgressNotFreeze
{
idc = 103;
};
class Name2: RscText
{
idc = 101;
x = 0.05;
y = 0.029412;
w = 0.9;
h = 0.04902;
text = "";
sizeEx = 0.05;
colorText[] = {0.543,0.5742,0.4102,1.0};
};
};
};

View File

@ -0,0 +1,14 @@
if (isServer) then {
diag_log "Loading custom server compiles";
};
if (!isDedicated) then {
diag_log "Loading custom client compiles";
player_selectSlot = compile preprocessFileLineNumbers "dayz_code\compile\ui_selectSlot.sqf";
fnc_usec_selfActions = compile preprocessFileLineNumbers "dayz_code\compile\fn_selfActions.sqf";
locateVehicle = compile preprocessFileLineNumbers "scripts\locateVehicle.sqf";
remoteVehicle = compile preprocessFileLineNumbers "scripts\remoteVehicle\remoteVehicle.sqf";
};
DZ_KeyDown_EH = compile preprocessFileLineNumbers "dayz_code\compile\keyboard.sqf";

View File

@ -0,0 +1,50 @@
if (isServer) then {
diag_log "Loading custom server variables";
vkc_clearAmmo = true; // Clear the ammo of vehicles after they have been rekeyed/claimed? (stops users getting a free rearm)
vkc_disableThermal = [""]; // Array of vehicle config classes as well as vehicle classnames to disable thermal on when being spawned. i.e: ["All","Land","Air","Ship","StaticWeapon","AH1Z","MTVR"];
vg_clearAmmo = true; // Clear the ammo of vehicles spawned during the same restart they are stored? (stops users storing a vehicle for a free rearm)
vg_disableThermal = []; // Array of vehicle config classes as well as vehicle classnames to disable thermal on when being spawned. i.e: ["All","Land","Air","Ship","StaticWeapon","AH1Z","MTVR"];
vg_sortColumn = 0; //0 or an out of range value sorts by the default column 'DisplayName', otherwise 1 = 'DateStored', 2 = 'id', 3 = 'Name' (of storing player), 4 = 'DateMaintained'
};
if (!isDedicated) then {
diag_log "Loading custom client variables";
vkc_claimPrice = 1000; // Amount in worth for claiming a vehicle. See the top of this script for an explanation.
vkc_changePrice = 5000; // Amount in worth for changing the key for a vehicle. See the top of this script for an explanation.
vg_list = ["Plastic_Pole_EP1_DZ"]; // List of objects/traders that are allowed to interact with virtual garage. i.e: ["Plastic_Pole_EP1_DZ","Worker2"];
vg_blackListed = []; // Array of vehicle config classes as well as vehicle classnames that are blacklisted from being stored, i.e ["All","Land","Air","Ship","StaticWeapon","AH1Z","MTVR"]
vg_heliPads = ["Helipad_Civil_DZ","Helipad_Rescue_DZ","Helipad_Army_DZ","Helipad_Cross_DZ","Helipad_ParkBorder_DZ"]; // Array of heli pad classnames
vg_removeKey = true; // Remove the key from the players inventory after storing vehicle?
vg_requireKey = true; // Require the player to have the key when storing a locked vehicle.
vg_storeWithGear = true; // Allow storing vehicles with gear?
vg_tiedToPole = true; // Tie the virtual garage to a local plot pole? If no plot pole is present (i.e a communal garage at a trader etc) the players UID will be used.
vg_pricePer = 100; // Price in worth to store a vehicle per gear item, use 0 if you want it to be free.
vg_maintainCost = 10000; //cost is 1000 per 10oz gold, gem cost is as defined in DZE_GemWorthArray; if you use ZSC then this is an amount of coins. This is a flate rate for all vehicles in the garage/per player depending on vg_tiedToPole
vg_price = [["Land",500],["Air",500],["Ship",500]];
/*
vg_price can be an array of vehicle config classes as well as vehicle classnames, you need to put these in order of what you prefer to get checked first.
Price is in worth for briefcases or coins for gold based servers (10,000 worth is considered 1 briefcase, 100,000 coins is considered 1 briefcase)
i.e:
vg_price = [["Land",500],["Air",300],["Ship",100]];
vg_price = [["350z_red",200],["Land",500],["AH1Z",1000],["Air",300],["Ship",100]];
*/
vg_limit = [["Land",10],["Air",5],["Ship",5]];
/*
vg_limit can be an array of vehicle config classes and classnames to narrow down what players can store or it can be a numerical value for a total limit.
These can be classnames as well as config classnames, you need to put these in order of what you prefer to get checked first.
i.e:
vg_limit = [["Land",5],["Air",3],["Ship",1]];
vg_limit = [["350z_red",2],["Land",5],["AH1Z",1],["Air",3],["Ship",1]];
vg_limit = 5;
*/
};
Z_singleCurrency = true;
Z_globalBanking = true;
Z_globalBankingTraders = true;