Jump to content


Photo

getPosASLW


Best Answer Schatten , 22 June 2018 - 12:01

По-моему, достаточно так:

private _depth = 0;

if (surfaceIsWater (getPosASL player)) then {
    _depth = (getPosASLW player) select 2;

    if (_depth > 0) then {_depth = 0;};
};

_depth
Go to the full post


  • Please log in to reply
8 replies to this topic

#1 OFFLINE   TopDen

TopDen

    Мл. лейтенант

  • Пользователи
  • 803 posts
  • Откуда:Москва
  • Отряд:[АТР] АРМАТОП

Posted 22 June 2018 - 08:52

Есть такая команда getPosASLW  (показывает высоту над уровнем моря)
У меня в скрипте она используется так:
 

    while {true} do {

_DEEP = round((getPosASLW player) select 2);

((uiNamespace getVariable "RscWastelandStatusBar")displayCtrl 55554) ctrlSetStructuredText
            parseText
            format
            ["<t shadow='1' shadowColor='#000000' color='#007fff'><img size='0.9'  shadowColor='#000000' image='addons\statusbar\icons\water.paa' color='%5'/> %2м</t>",

                        "%",
                        _DEEP

            ];
            
        };
    };

далее она показывает в статус баре соответсвенно высоту. Вопрос: можно как-то написать условие, чтобы высоту ВЫШЕ моря не показывало (или показывало всегда 0), и только показывало бы высоту ниже уровня воды. (хочу использовать как простой глубиномер)


Edited by TopDen, 22 June 2018 - 08:57.

  • 0

#2 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 posts
  • Откуда:SPB

Posted 22 June 2018 - 10:01


высоту ниже уровня воды

getPosATL?


  • 0

#3 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 posts
  • Откуда:SPB

Posted 22 June 2018 - 10:18

Private["_result"];
if !(surfaceIsWater position player) exitWith
    {0};
_result    =    round( ((getPosATL player) select 2) - ((getPosASLW player) select 2) );
if (_result >= 0) exitWith
    {0};
_result*-1

Хотя не правильно... ну надо расчитать разницу...


Edited by NoNameUltima, 22 June 2018 - 10:30.

  • 0

#4 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 22 June 2018 - 10:53

 

Есть такая команда getPosASLW  (показывает высоту над уровнем моря)

Согласно описанию на вики эта команда возвращает высоту над уровнем моря, с учётом высоты волны.


_diverPos = getPosWorld player;
_depth = _diverPos select 2;

  • 0

#5 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1791 posts
  • Откуда:Тбилиси, Грузия

Posted 22 June 2018 - 12:01   Best Answer

По-моему, достаточно так:

private _depth = 0;

if (surfaceIsWater (getPosASL player)) then {
    _depth = (getPosASLW player) select 2;

    if (_depth > 0) then {_depth = 0;};
};

_depth

Edited by Schatten, 22 June 2018 - 13:56.

  • 1

#6 OFFLINE   TopDen

TopDen

    Мл. лейтенант

  • Пользователи
  • 803 posts
  • Откуда:Москва
  • Отряд:[АТР] АРМАТОП

Posted 22 June 2018 - 12:04

Спасибо  Schatten .

То что надо.


Edited by TopDen, 22 June 2018 - 12:10.

  • 0

#7 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 posts
  • Откуда:SPB

Posted 22 June 2018 - 14:49


По-моему, достаточно так:

Это же покажет - насколько погружен в воду(от поверхности воды, с учетом высоты волны, - до объекта)?


  • 0

#8 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1791 posts
  • Откуда:Тбилиси, Грузия

Posted 22 June 2018 - 15:00

NoNameUltima, ну да. Когда же говорят о глубине погружения, то имеют ввиду расстояние от поверхности воды до объекта, а не от дна.


Edited by Schatten, 22 June 2018 - 15:01.

  • 0

#9 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 posts
  • Откуда:SPB

Posted 22 June 2018 - 16:07

Schatten, Да он в общем то написал не о глубине погружения, а о глубиномере...))Я чет подумал - от поверхности воды(волны) до дна_))


  • 0




Яндекс.Метрика