From 2f8ae7b46bda2d65471038a508e97e419858d736 Mon Sep 17 00:00:00 2001 From: GNCLORD-MDB Date: Fri, 24 Jun 2022 13:58:59 +0200 Subject: [PATCH 1/6] dymamische sichtweite --- addons/main/GELDZEIT/fn_clientInit.sqf | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/addons/main/GELDZEIT/fn_clientInit.sqf b/addons/main/GELDZEIT/fn_clientInit.sqf index d0fd0aa7..7dfe0a09 100644 --- a/addons/main/GELDZEIT/fn_clientInit.sqf +++ b/addons/main/GELDZEIT/fn_clientInit.sqf @@ -68,4 +68,36 @@ // Freeze-Time [] call FUNC(frezztime); + +// Dynamische Sichtweite bei den CSAT Seebasen +//Gegenseite kann nur bis zur Sichtlinie das Wasser einsehen +[{ + if (!(OPT_SECTORCONTROL_trainingon)) then + { + if (playerSide == blufor) then + { + private _userviewdistance = viewDistance; + private _sichtline = [Opforlinie1,Opforlinie2,Opforlinie3,Opforlinie4,Opforlinie5]; + private _userdistance = 0; + + { + _userdistance = Player distance2D _x; + + if (_x > _userviewdistance) then + { + setViewDistance -1; + + } + else + { + setViewDistance _x; + }; + + } forEach _sichtline; + + }; + }; + +}, 1, _this] call CFUNC(addPerFrameHandler); + }] call CFUNC(addEventhandler); From b357f6f4ad162b94e44221d00ed994aef1d22839 Mon Sep 17 00:00:00 2001 From: GNCLORD-MDB Date: Fri, 24 Jun 2022 14:31:35 +0200 Subject: [PATCH 2/6] umstellung --- addons/main/GELDZEIT/fn_clientInit.sqf | 30 +++++++++++++++----------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/addons/main/GELDZEIT/fn_clientInit.sqf b/addons/main/GELDZEIT/fn_clientInit.sqf index 7dfe0a09..69c106bf 100644 --- a/addons/main/GELDZEIT/fn_clientInit.sqf +++ b/addons/main/GELDZEIT/fn_clientInit.sqf @@ -77,23 +77,29 @@ if (playerSide == blufor) then { private _userviewdistance = viewDistance; - private _sichtline = [Opforlinie1,Opforlinie2,Opforlinie3,Opforlinie4,Opforlinie5]; + private _sichtline = [Opforlinie1,Opforlinie2,Opforlinie3,Opforlinie4,Opforlinie5,Opforlinie6,Opforlinie7,Opforlinie8,Opforlinie9,Opforlinie10,Opforlinie11,Opforlinie12,Opforlinie13,Opforlinie14,Opforlinie15]; private _userdistance = 0; + private _userdistancearray = []; + private _userdistancemin = 0; { _userdistance = Player distance2D _x; - - if (_x > _userviewdistance) then - { - setViewDistance -1; - - } - else - { - setViewDistance _x; - }; - + _userdistancearray pushBack _userdistance; + } forEach _sichtline; + + _userdistancemin = selectMin _userdistancearray; + + systemChat format ["UD:%1 X:%2 b:%3",_userdistancemin,viewDistance,(_userdistancemin > _userviewdistance)]; + + if (_userdistancemin > _userviewdistance) then + { + setViewDistance -1; + } + else + { + setViewDistance _userdistancemin; + }; }; }; From 7a32a5c76c0ba172d5ac3e0c534074cfd8242472 Mon Sep 17 00:00:00 2001 From: GNCLORD-MDB Date: Fri, 24 Jun 2022 15:21:17 +0200 Subject: [PATCH 3/6] =?UTF-8?q?=C3=A4nderung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/main/GELDZEIT/fn_clientInit.sqf | 11 +++++++---- addons/main/script_version.hpp | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/addons/main/GELDZEIT/fn_clientInit.sqf b/addons/main/GELDZEIT/fn_clientInit.sqf index 69c106bf..0eaf703c 100644 --- a/addons/main/GELDZEIT/fn_clientInit.sqf +++ b/addons/main/GELDZEIT/fn_clientInit.sqf @@ -71,12 +71,14 @@ // Dynamische Sichtweite bei den CSAT Seebasen //Gegenseite kann nur bis zur Sichtlinie das Wasser einsehen + +GVAR(userviewdistance) = viewDistance; + [{ if (!(OPT_SECTORCONTROL_trainingon)) then { if (playerSide == blufor) then { - private _userviewdistance = viewDistance; private _sichtline = [Opforlinie1,Opforlinie2,Opforlinie3,Opforlinie4,Opforlinie5,Opforlinie6,Opforlinie7,Opforlinie8,Opforlinie9,Opforlinie10,Opforlinie11,Opforlinie12,Opforlinie13,Opforlinie14,Opforlinie15]; private _userdistance = 0; private _userdistancearray = []; @@ -89,12 +91,13 @@ } forEach _sichtline; _userdistancemin = selectMin _userdistancearray; + setViewDistance _userdistancemin; - systemChat format ["UD:%1 X:%2 b:%3",_userdistancemin,viewDistance,(_userdistancemin > _userviewdistance)]; + systemChat format ["UD:%1 D:%4 X:%2 b:%3",_userdistancemin,GVAR(userviewdistance),(_userdistancemin > GVAR(userviewdistance)),viewDistance]; - if (_userdistancemin > _userviewdistance) then + if (_userdistancemin > GVAR(userviewdistance)) then { - setViewDistance -1; + setViewDistance GVAR(userviewdistance); } else { diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 94c022e3..0e9e28ea 100755 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -2,7 +2,7 @@ #define MAJOR 1 #define MINOR 9 #define PATCHLVL 2 -#define BUILD 632 +#define BUILD 636 #ifdef VERSION From fac1abf1c3154fcc19f04323a3be4de8a698974e Mon Sep 17 00:00:00 2001 From: GNCLORD-MDB Date: Sat, 25 Jun 2022 16:46:24 +0200 Subject: [PATCH 4/6] =?UTF-8?q?Blickwinkelerg=C3=A4nzung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/main/GELDZEIT/fn_clientInit.sqf | 43 +---------- .../main/GELDZEIT/fn_dynamischesichtweite.sqf | 77 +++++++++++++++++++ addons/main/modules.hpp | 1 + addons/main/script_version.hpp | 2 +- 4 files changed, 82 insertions(+), 41 deletions(-) create mode 100644 addons/main/GELDZEIT/fn_dynamischesichtweite.sqf diff --git a/addons/main/GELDZEIT/fn_clientInit.sqf b/addons/main/GELDZEIT/fn_clientInit.sqf index 0eaf703c..615baf97 100644 --- a/addons/main/GELDZEIT/fn_clientInit.sqf +++ b/addons/main/GELDZEIT/fn_clientInit.sqf @@ -68,45 +68,8 @@ // Freeze-Time [] call FUNC(frezztime); - -// Dynamische Sichtweite bei den CSAT Seebasen -//Gegenseite kann nur bis zur Sichtlinie das Wasser einsehen - -GVAR(userviewdistance) = viewDistance; - -[{ - if (!(OPT_SECTORCONTROL_trainingon)) then - { - if (playerSide == blufor) then - { - private _sichtline = [Opforlinie1,Opforlinie2,Opforlinie3,Opforlinie4,Opforlinie5,Opforlinie6,Opforlinie7,Opforlinie8,Opforlinie9,Opforlinie10,Opforlinie11,Opforlinie12,Opforlinie13,Opforlinie14,Opforlinie15]; - private _userdistance = 0; - private _userdistancearray = []; - private _userdistancemin = 0; - - { - _userdistance = Player distance2D _x; - _userdistancearray pushBack _userdistance; - - } forEach _sichtline; - - _userdistancemin = selectMin _userdistancearray; - setViewDistance _userdistancemin; - - systemChat format ["UD:%1 D:%4 X:%2 b:%3",_userdistancemin,GVAR(userviewdistance),(_userdistancemin > GVAR(userviewdistance)),viewDistance]; - - if (_userdistancemin > GVAR(userviewdistance)) then - { - setViewDistance GVAR(userviewdistance); - } - else - { - setViewDistance _userdistancemin; - }; - - }; - }; - -}, 1, _this] call CFUNC(addPerFrameHandler); + + // Dynamische Sichtweite bei den CSAT Seebasen + [] call FUNC(dynamischesichtweite); }] call CFUNC(addEventhandler); diff --git a/addons/main/GELDZEIT/fn_dynamischesichtweite.sqf b/addons/main/GELDZEIT/fn_dynamischesichtweite.sqf new file mode 100644 index 00000000..02f4ae25 --- /dev/null +++ b/addons/main/GELDZEIT/fn_dynamischesichtweite.sqf @@ -0,0 +1,77 @@ +/** +* Description: +* Dymamische Sichtweite in Festgelegten bereichen +* +* Author: +* Lord-MDB +* +* Arguments: +* None +* +* Return Value: +* None +* +* Server only: +* No +* +* Public: +* No +* +* Global: +* No +* +* API: +* No +* +* Example: +* [] call FUNC(dynamischesichtweite); +*/ +#include "macros.hpp" + +// Dynamische Sichtweite bei den CSAT Seebasen +//Gegenseite kann nur bis zur Sichtlinie das Wasser einsehen + +GVAR(userviewdistance) = viewDistance; + +[{ + if (True) then + //if (!(OPT_SECTORCONTROL_trainingon)) then + { + if (playerSide == blufor) then + { + private _sichtlinearray = [Opforlinie0,Opforlinie1,Opforlinie2,Opforlinie3,Opforlinie4,Opforlinie5,Opforlinie6,Opforlinie7,Opforlinie8,Opforlinie9,Opforlinie10,Opforlinie11,Opforlinie12,Opforlinie13,Opforlinie14,Opforlinie15,Opforlinie16]; + private _sichtwinkelarray = [[90,270],[90,270],[1,270],[1,180],[1,180],[1,180],[1,180],[1,180],[1,235],[45,235],[45,235],[45,235],[45,235],[45,235],[45,235],[45,235],[45,235]]; + private _userdistance = 0; + private _userdistancearray = []; + private _userdistancemin = 0; + private _userdir = 0; + private _userdistancearrayindex = 0; + private _sichtwinkelblock = []; + + // Distance erfassen für ermittlung des kleines abstands zu Sichtline + { + _userdistance = vehicle Player distance2D _x; + _userdistancearray pushBack _userdistance; + + } forEach _sichtlinearray; + + // Blickwinkel des Spielers + _userdir = Getdir vehicle Player; + _userdistancemin = selectMin _userdistancearray; + _userdistancearrayindex = _userdistancearray findIf {_userdistancemin isEqualTo _x}; + _sichtwinkelblock = _sichtwinkelarray select _userdistancearrayindex; + + //systemChat format ["UD:%1 D:%4 X:%2 UDir:%3 I:%5 SWA:%6 ",_userdistancemin,GVAR(userviewdistance),_userdir,viewDistance,_userdistancearrayindex,_sichtwinkelblock]; + + if ((_userdir > (_sichtwinkelblock select 0)) and (_userdir < (_sichtwinkelblock select 1)) and (_userdistancemin < GVAR(userviewdistance))) then + { + setViewDistance _userdistancemin; + } + else + { + setViewDistance GVAR(userviewdistance); + }; + }; + }; + +}, 1, _this] call CFUNC(addPerFrameHandler); \ No newline at end of file diff --git a/addons/main/modules.hpp b/addons/main/modules.hpp index de2deeeb..6fcf93dd 100644 --- a/addons/main/modules.hpp +++ b/addons/main/modules.hpp @@ -89,6 +89,7 @@ class CfgCLibModules FNC(spritverbrauch); FNC(berggang); FNC(berggangcheck); + FNC(dynamischesichtweite); }; MODULE(BEAM) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 0e9e28ea..db9c9985 100755 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -2,7 +2,7 @@ #define MAJOR 1 #define MINOR 9 #define PATCHLVL 2 -#define BUILD 636 +#define BUILD 646 #ifdef VERSION From 9979e9226144fa91e9b919174ff82d78ea832acb Mon Sep 17 00:00:00 2001 From: GNCLORD-MDB Date: Sat, 25 Jun 2022 16:55:29 +0200 Subject: [PATCH 5/6] ready --- addons/main/GELDZEIT/fn_dynamischesichtweite.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/main/GELDZEIT/fn_dynamischesichtweite.sqf b/addons/main/GELDZEIT/fn_dynamischesichtweite.sqf index 02f4ae25..37b8f663 100644 --- a/addons/main/GELDZEIT/fn_dynamischesichtweite.sqf +++ b/addons/main/GELDZEIT/fn_dynamischesichtweite.sqf @@ -34,8 +34,7 @@ GVAR(userviewdistance) = viewDistance; [{ - if (True) then - //if (!(OPT_SECTORCONTROL_trainingon)) then + if (!(OPT_SECTORCONTROL_trainingon)) then { if (playerSide == blufor) then { From d97665ba0257c5cb92ed2e3ac4a9fba4b9e72fd2 Mon Sep 17 00:00:00 2001 From: GNCLORD-MDB Date: Sat, 25 Jun 2022 17:06:04 +0200 Subject: [PATCH 6/6] umstellung --- .../main/GELDZEIT/fn_dynamischesichtweite.sqf | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/addons/main/GELDZEIT/fn_dynamischesichtweite.sqf b/addons/main/GELDZEIT/fn_dynamischesichtweite.sqf index 37b8f663..35a44ec3 100644 --- a/addons/main/GELDZEIT/fn_dynamischesichtweite.sqf +++ b/addons/main/GELDZEIT/fn_dynamischesichtweite.sqf @@ -33,11 +33,11 @@ GVAR(userviewdistance) = viewDistance; -[{ - if (!(OPT_SECTORCONTROL_trainingon)) then +if (!(OPT_SECTORCONTROL_trainingon)) then +{ + if (playerSide == blufor) then { - if (playerSide == blufor) then - { + [{ private _sichtlinearray = [Opforlinie0,Opforlinie1,Opforlinie2,Opforlinie3,Opforlinie4,Opforlinie5,Opforlinie6,Opforlinie7,Opforlinie8,Opforlinie9,Opforlinie10,Opforlinie11,Opforlinie12,Opforlinie13,Opforlinie14,Opforlinie15,Opforlinie16]; private _sichtwinkelarray = [[90,270],[90,270],[1,270],[1,180],[1,180],[1,180],[1,180],[1,180],[1,235],[45,235],[45,235],[45,235],[45,235],[45,235],[45,235],[45,235],[45,235]]; private _userdistance = 0; @@ -46,12 +46,12 @@ GVAR(userviewdistance) = viewDistance; private _userdir = 0; private _userdistancearrayindex = 0; private _sichtwinkelblock = []; - + // Distance erfassen für ermittlung des kleines abstands zu Sichtline { _userdistance = vehicle Player distance2D _x; _userdistancearray pushBack _userdistance; - + } forEach _sichtlinearray; // Blickwinkel des Spielers @@ -70,7 +70,6 @@ GVAR(userviewdistance) = viewDistance; { setViewDistance GVAR(userviewdistance); }; - }; - }; - -}, 1, _this] call CFUNC(addPerFrameHandler); \ No newline at end of file + }, 1, _this] call CFUNC(addPerFrameHandler); + }; +}; \ No newline at end of file