Add Object A2 sensor with light and sound SFX

Added sensor to mission.sqm to trigger Sumrak's custom lighting and sound effects when entering Object A2. The config position in mission.sqm doesn't want to work correctly with the distance command so I used the original position from Sumrak's file. The trigger activates when you get down the ladder about 2 meters.
This commit is contained in:
worldwidesorrow
2023-09-15 14:09:18 -05:00
parent 55ffa33628
commit d9c4075143
6 changed files with 81 additions and 3 deletions

View File

@@ -0,0 +1,59 @@
/*
* AII module light system
* intensity variable DZE_ObjectA2lightIntensity (RECOMMENDED VALUE = 0.10, 0 = off (dark), 1 = fully on (not recommended))
*
* AII module SFX system
* parallel procedure to the light system
* enabling / disabling environment sounds
* ominous sound effect
*/
local _showText = _this select 0;
local _status = _this select 1;
DZE_AII_Lights = [];
// Do not show message when player changes clothes in object A2.
if ((dayz_lastClothesChange + 3 > diag_tickTime) || {(player distance respawn_west_original < 100)}) then {
_showText = false;
};
if (_status == "enter") then {
if (_showText) then {
localize "STR_OBJECTA2_ENTER" call dayz_rollingMessages;
};
enableEnvironment false;
// create light sources
{
local _light = "#LightPoint" createVehicleLocal _x;
_light setLightBrightness DZE_ObjectA2lightIntensity;
_light setLightAmbient [0.5, 0.5, 0.5];
_light setLightColor [1.0, 1.0, 1.0];
_light setPos _x;
DZE_AII_Lights = DZE_AII_Lights + [_light];
} count [[4978.8086,6630.834,0],[4983.9385,6614.6343,0],[4975.1152,6606.9126,0]];
// Four second sound effect gets repeated until leaving.
[] spawn {
while {count DZE_AII_Lights > 0} do {
playSound "ns_fx_aii_underground";
uiSleep 4;
};
//diag_log "Object A2 Sound loop has ended";
};
} else {
if (_showText) then {
localize "STR_OBJECTA2_LEAVE" call dayz_rollingMessages;
};
// remove light sources
{
_x setLightBrightness 0;
deleteVehicle _x;
} count DZE_AII_Lights;
DZE_AII_Lights = [];
enableEnvironment true;
};

View File

@@ -752,6 +752,7 @@ if (!isDedicated) then {
dayz_EjectPlayer = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\dze_ejectPlayer.sqf";
fnc_isInsideBuilding = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_isInsideBuilding.sqf"; //_isInside = [_unit,_building] call fnc_isInsideBuilding;
fnc_setCombat = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_setCombat.sqf";
if (worldName == "namalsk") then {player_objectAII = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_objectA2.sqf";};
};
//Both

View File

@@ -37225,6 +37225,12 @@
<German>Haufen Erde</German>
<Russian>Кучка земли</Russian>
</Key>
<Key ID="STR_OBJECTA2_ENTER">
<English>Entering Object AII</English>
</Key>
<Key ID="STR_OBJECTA2_LEAVE">
<English>Leaving Object AII</English>
</Key>
<!--Placeholder strings for new items server admins want to add within the mission by overwrite this strings-->
<Key ID="STR_PLACEHOLDER_ITEM_NAME_01">

View File

@@ -34,7 +34,7 @@
5 displaySetEventHandler
1 DZE_doorManagementAdmins !="00, \nfalse, \n2 \n];\n\nDZE_PlotManagementAdmins = []; \nDZE_doorManagementAdmins = []; \n\nDZE_disableThermal = []; \nDZE_clearStaticAm" !="true; };\n} count _doorFriends;\n\n\n\n\nif(_playerUID in DZE_DoorManagementAdmins) then { _isDoorAdmin = true; };\n};\n\n\n[ _isOwner\n, _"
1 DZE_PlotManagementAdmins !="3, \n.25, \n1, \n1, \n.2,\n10, \n0, \n400, \nfalse, \n2 \n];\n\nDZE_PlotManagementAdmins = []; \nDZE_doorManagementAdmins = []; \n\nDZE_disable" !="ay = []; \nlocal _isAdmin = dayz_playerUID in DZE_PlotManagementAdmins;\n\nlocal _dir = 0; \nlocal _vector = []; " !="_Pole_EP1_DZ\");\nlocal _isAdmin = dayz_playerUID in DZE_PlotManagementAdmins;\nlocal _canBuild = false;\nlocal _plotPoles = 0;\nlo" !="true; };\n} count _plotFriends;\n\n\n\n\nif(_playerUID in DZE_PlotManagementAdmins) then { _isPlotAdmin = true; };\n};\n\n\nif(_targetType" !="ove select 0) == _ownerPUID && (!(dayz_playerUID in DZE_PlotManagementAdmins) && !(dayz_playerUID == _ownerPUID))) exitWith {sys"
5 enableEnvironment
5 enableEnvironment !="ze \"STR_OBJECTA2_ENTER\" call dayz_rollingMessages;\n};\n\nenableEnvironment false;\n\n\n{\nlocal _light = \"#LightPoint\" createVehicleLo"
5 endMission !"rendMission" !"clearWeaponCargo\",\n\"endMission\"," !"enablesimulation\", \"endMission\"," !"lize \"str_player_login_timeout\", \"PLAIN DOWN\"];\nuiSleep 5;\nendMission" !"\npublicVariableServer \"PVDZ_sec_atp\";\nendMission \"LOSER\";\n};\n" !"Terminate\",\"BACK\"];\ncamDestroy _camera;\n\nendMission" !"endMission \"END1\";\n\n\ndayz_authed = true"
5 entities !"nearEntities" !="\n if (isnil 'BIS_fnc_sceneCreateSoundEntities' || false) then {\n BIS_fnc_sceneCreateSoundEntities = {\n i" !="_loginCompleted = true;\n\n\ndayz_currentGlobalZombies = count entities \"zZombie_Base\";\n\n{\ncall compile preprocessFileLineNumbers (" !="haracterID)) then {\n_plotPoles = _plotPoles +1;\n};\n} count (entities \"Plastic_Pole_EP1_DZ\");\n};\n} else {\n_plotcheck = [player, f" !="VDZ_sec_atp\";\n};\n};\n\nif (isNull _grp) then { _grp = group ((entities 'FunctionsManager') select 0); };\nif (!isNull _grp) then {\n" !="_playerUID) then {\n_plotPoles = _plotPoles + 1;\n};\n} count (entities \"Plastic_Pole_EP1_DZ\"); \n};\n\nif ((DZE_limitPlots > 0) && (_"
1 execVM !"rexecVM" !"\"execVM\", " !="[] execVM \"initJIPcompatible.sqf\";" !="_script = [] execVM (BIS_MP_Path + BIS_PATH_SQF + \"JIPWaitFor.sqf\");" !"execVM \"\\ca\\Data\\" !"execVM '\\ca\\Data\\" !"execVM \"\\ca\\missions" !"execVM 'ca\\modules\\" !"execVM \"ca\\modules\\" !"'\\ca\\ui\\" !"\"\\ca\\ui\\" !"scriptName \"MP\\data\\script" !"_handle\"];\n_handle = [_display] execVM _script;\n}" !"execVM '\\z\\addons\\dayz_code\\" !"execVM 'z\\addons\\dayz_code\\" !"execVM \"z\\addons\\dayz_code\\" !"execVM \"\\z\\addons\\dayz_code\\" !"execVM (\"\\z\\addons\\dayz_code\\" !="dayz_rulesHandle = execVM \"rules.sqf\";" !"execvm '\\ASC\\" !"\\usec_ch53\\scripts\\" !"execVM (_actionDir + \"warn.sqf" !="_this execVM \"\\GNT_C185\\scr\\C185_Exhaust.sqf\";[_this select 0] execvm \"\\GNT_C185\\scr\\G_CheckEngine.sqf\";" !="dummy = _this execVM \"ca\\characters2\\OTHER\\scripts\\fly.sqf\""

View File

@@ -551,6 +551,9 @@ if (!isDedicated) then {
DZE_EVRBloodLoss = [4000,8000]; // Random number of blood loss if a player does not have an APSI and/or is not inside a building [min, max]. Player will not die, there is a minimum of 1000 after the calculation
DZE_EVRSafezoneExempt = true; // Players in safe zones are exempt from the effects of the EVR storms.
};
// Namalsk Object AII Light Intensity
DZE_ObjectA2lightIntensity = .10; // (RECOMMENDED VALUE = 0.10, 0 = off (dark), 1 = fully on (not recommended))
// Garage Door Opener
DZE_GarageDoor_Opener = false; // Enables the option to open Garage Doors from the inside of a vehicle.

View File

@@ -319,7 +319,7 @@ class Mission
class Sensors
{
items=4;
items=5;
#define TRGDEF a=100;b=100;activationBy="WEST";repeating=1;interruptable=1;age="UNKNOWN";class Effects{};
class Item0
{
@@ -356,7 +356,16 @@ class Mission
expCond="(player distance zonedock) < 100;";
expActiv="[""Dock Trader"",true,""enter""] call player_traderCity;";
expDesactiv="[""Dock Trader"",true,""leave""] call player_traderCity;";
};
};
class Item4
{
position[]={4977.15,4.74,6624.89};
TRGDEF
name="zoneAII";
expCond="(player distance [4977.15,6624.89,0.74293]) < 41;";
expActiv="[true,""enter""] call player_objectAII;";
expDesactiv="[true,""leave""] call player_objectAII;";
};
};
};
class Intro