Перейти к содержимому


Фотография

getPosASLW


Лучший Ответ 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
Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 OFFLINE   TopDen

TopDen

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

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

Отправлено 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), и только показывало бы высоту ниже уровня воды. (хочу использовать как простой глубиномер)


Сообщение отредактировал TopDen: 22 June 2018 - 08:57

  • 0

#2 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 сообщений
  • Откуда:SPB

Отправлено 22 June 2018 - 10:01


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

getPosATL?


  • 0

#3 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 сообщений
  • Откуда:SPB

Отправлено 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

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


Сообщение отредактировал NoNameUltima: 22 June 2018 - 10:30

  • 0

#4 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 22 June 2018 - 10:53

 

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

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


_diverPos = getPosWorld player;
_depth = _diverPos select 2;

  • 0

#5 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1780 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 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

Сообщение отредактировал Schatten: 22 June 2018 - 13:56

  • 1

#6 OFFLINE   TopDen

TopDen

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

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

Отправлено 22 June 2018 - 12:04

Спасибо  Schatten .

То что надо.


Сообщение отредактировал TopDen: 22 June 2018 - 12:10

  • 0

#7 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 сообщений
  • Откуда:SPB

Отправлено 22 June 2018 - 14:49


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

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


  • 0

#8 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1780 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 22 June 2018 - 15:00

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


Сообщение отредактировал Schatten: 22 June 2018 - 15:01

  • 0

#9 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 сообщений
  • Откуда:SPB

Отправлено 22 June 2018 - 16:07

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


  • 0




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