Jump to content


Photo

Вид от первого лица


Best Answer Schatten , 10 January 2022 - 15:58

AlexandrM, при деактивации:

onEachFrame { };

 
P. S.
В чём смысл этого:

if (player == player) then {
    ...
};

?

Go to the full post


  • Please log in to reply
16 replies to this topic

#1 OFFLINE   AlexandrM

AlexandrM

    Рядовой

  • Пользователи
  • 15 posts
  • Откуда:Ямало-Ненецкий Автономный округ

Posted 10 January 2022 - 15:39

Ребят всем привет. Вот думаю можно ли реализовать когда игрок входит допустим в город, то вид автоматический переключается от первого лица, а когда выходит из города то игрок может мень вид как захочет.

Пример того что я  написал в тригере :

При активации:
onEachFrame {
if(cameraOn == player) then {
    if(player == player) then {
        if(cameraView == "EXTERNAL") then {
            player switchCamera "INTERNAL";
        };
    };
};
};
При деактивации:
onEachFrame {
if(cameraOn == player) then {
    if(player == player) then {
        if(cameraView == "INTERNAL") then {
            player switchCamera "EXTERNAL";
        };
    };
};
};

При активации всё работает нормально, при деактивации вроде тоже , но игроку (при деактивации) не дают  выбор вида от какого лица он хочет играть далее.

Кто сможет , подскажите.

P.S.

Не в тот раздел написал, извиняюсь.


Edited by AlexandrM, 10 January 2022 - 15:44.

  • 0

#2 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1835 posts

Posted 10 January 2022 - 15:58   Best Answer

AlexandrM, при деактивации:

onEachFrame { };

 
P. S.
В чём смысл этого:

if (player == player) then {
    ...
};

?


  • 0

#3 OFFLINE   AlexandrM

AlexandrM

    Рядовой

  • Пользователи
  • 15 posts
  • Откуда:Ямало-Ненецкий Автономный округ

Posted 10 January 2022 - 17:37

 

P. S.
В чём смысл этого:

if (player == player) then {
    ...
};

?

 

 

Не знаю, методом исключения делал, на богемии брал примеры и пробовал. Я не силен в скриптах.

 

Спасибо !!! Всё теперь работает.


Edited by AlexandrM, 10 January 2022 - 17:46.

  • 0

#4 OFFLINE   AlexandrM

AlexandrM

    Рядовой

  • Пользователи
  • 15 posts
  • Откуда:Ямало-Ненецкий Автономный округ

Posted 10 January 2022 - 23:20

 

Да, все работает, но локально в редакторе, на сервере при входе в тригер, игрок всего лишь переключается на вид от первого лица и он свободно может обратно переключиться на вид от третьего лица.
Что то не хватает... :sad:


  • 0

#5 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1835 posts

Posted 11 January 2022 - 02:50

Не знаю, методом исключения делал, на богемии брал примеры и пробовал. Я не силен в скриптах.

Ясно. Я имел ввиду, что не вижу смысла в том куске кода.
 

Да, все работает, но локально в редакторе, на сервере при входе в тригер, игрок всего лишь переключается на вид от первого лица и он свободно может обратно переключиться на вид от третьего лица.

А триггер как настроен? Похоже, что он неповторяемый.


  • 0

#6 OFFLINE   AlexandrM

AlexandrM

    Рядовой

  • Пользователи
  • 15 posts
  • Откуда:Ямало-Ненецкий Автономный округ

Posted 11 January 2022 - 07:08

Триггер повторяемый стоит.


  • 0

#7 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1835 posts

Posted 11 January 2022 - 11:55

AlexandrM, а остальные настройки?


  • 0

#8 OFFLINE   AlexandrM

AlexandrM

    Рядовой

  • Пользователи
  • 15 posts
  • Откуда:Ямало-Ненецкий Автономный округ

Posted 11 January 2022 - 12:06

Вот скрин триггера с настройками 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

Галочку пробовал убирать с пункта "Только сервер" не помогло. Локально работает а на сервере нет. Сервер стоит на линуксе.


Edited by AlexandrM, 11 January 2022 - 12:07.

  • 0

#9 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1835 posts

Posted 11 January 2022 - 14:10

AlexandrM,
- Активация: нет.
- Только сервер: нет.
- Условие:

player inArea thisTrigger

- Код, срабатывающий при активации, можно чуть улучшить:

onEachFrame {
    if ((cameraOn == player) and { cameraView == "EXTERNAL" }) then {
        player switchCamera "INTERNAL";
    };
};

Edited by Schatten, 11 January 2022 - 14:12.

  • 0

#10 OFFLINE   AlexandrM

AlexandrM

    Рядовой

  • Пользователи
  • 15 posts
  • Откуда:Ямало-Ненецкий Автономный округ

Posted 11 January 2022 - 20:27

Так же всё. В зону заходишь первое лицо, но игрок тут же сразу может его изменить на третье...такое ощущение что привязки какой то нет.


  • 0

#11 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1835 posts

Posted 11 January 2022 - 20:42

AlexandrM, попробуй так:
- При активации:

call {
    _index = addMissionEventHandler ["EachFrame", {
        if ((cameraOn == player) and { cameraView == "EXTERNAL" }) then {
            player switchCamera "INTERNAL";
        };
    }];

    thisTrigger setVariable ["EachFrameEventHandlerIndex", _index];
};

- При деактивации:

call {
    _index = thisTrigger getVariable ["EachFrameEventHandlerIndex", -1];

    if (_index >= 0) then {
        removeMissionEventHandler ["EachFrame", _index];
    };
};

  • 0

#12 OFFLINE   AlexandrM

AlexandrM

    Рядовой

  • Пользователи
  • 15 posts
  • Откуда:Ямало-Ненецкий Автономный округ

Posted 12 January 2022 - 07:39

При таком коде, ничего не происходит, а если ставишь галочку "Повторяемый" и выбираешь "Любой игрок" , то любой игрок зашедший в триггер переключается на вид от первого лица, и все игроки находящиеся на сервере тоже переключаются на вид от первого лица. 

 

P.S.

а в условии что нужно ставить при таком коде "this"  или оставить "player inArea thisTrigger" ? 


Edited by AlexandrM, 12 January 2022 - 07:42.

  • 0

#13 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1835 posts

Posted 12 January 2022 - 11:46

а в условии что нужно ставить при таком коде "this"  или оставить "player inArea thisTrigger" ?

Поменять нужно было только значения полей "При активации" и "При деактивации", а остальное не менять:
- Активация: нет.
- Только сервер: нет.
- Повторяемый: да.
- Условие:

player inArea thisTrigger

Edited by Schatten, 12 January 2022 - 13:46.

  • 0

#14 OFFLINE   AlexandrM

AlexandrM

    Рядовой

  • Пользователи
  • 15 posts
  • Откуда:Ямало-Ненецкий Автономный округ

Posted 14 January 2022 - 15:25

Всё сделал спасибо огромное за советы )


  • 0

#15 OFFLINE   STEAL92

STEAL92

    Рядовой

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

Posted 21 July 2024 - 16:49

 

AlexandrM,
- Активация: нет.
- Только сервер: нет.
- Условие:

player inArea thisTrigger

- Код, срабатывающий при активации, можно чуть улучшить:

onEachFrame {
    if ((cameraOn == player) and { cameraView == "EXTERNAL" }) then {
        player switchCamera "INTERNAL";
    };
};

Вписал этот код по умолчанию в init. Есть способ отключить 3D вид без обработчика событий может как нибудь через Description?


  • 0

#16 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1835 posts

Posted 21 July 2024 - 19:27

Запрети путём настройки уровня сложности.


  • 0

#17 OFFLINE   STEAL92

STEAL92

    Рядовой

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

Posted 21 July 2024 - 20:03

Запрети путём настройки уровня сложности.

Понимаю так устанавливаю уровень сложности и дополнительно прописываю ботам умение и точность, пока не смотрел как это сделать, но обязательно разберусь. Спасибо.

 

 


  • 0




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