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


Фотография

Активация триггера только для одного игрока


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

#21 OFFLINE   Gonarx

Gonarx

    Рядовой

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

Отправлено 15 September 2022 - 23:26

if (local s1) then {
s1 =createTrigger ["EmptyDetector", [1713.52,5492.68,0], false];
s1 setTriggerArea [0, 0, 0, false];
s1 setTriggerActivation ["Bravo","NOT PRESENT", true];
s1 setTriggerStatements ["this", "hint 'trigger on'", ""];};
 
Вот с таким текстом сделал скрипт initPlayerLocal.sqf, поменял только if (local this) на if (local s1), так как ругалась игра на "this", но ситуация не поменялась, все равно триггер с рацией Браво видят все, проверил назвав скрипт  просто init.sqf, то же самое. Странно получается любой триггер всегда глобален, не смотря на параметр "false" (как сказано в БИСВики)

  • 0

#22 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 15 September 2022 - 23:37

Gonarx, нифига он не глобален. initPlayerLocal.sqf и init.sqf запускаются у каждого игрока, поэтому локальный триггер создаётся у каждого игрока. Суть перемещения кода в файл -- добавить проверку, чтобы триггер был создан у конкретного игрока.


  • 0

#23 OFFLINE   Gonarx

Gonarx

    Рядовой

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

Отправлено 16 September 2022 - 00:03

Gonarx, нифига он не глобален. initPlayerLocal.sqf и init.sqf запускаются у каждого игрока, поэтому локальный триггер создаётся у каждого игрока. Суть перемещения кода в файл -- добавить проверку, чтобы триггер был создан у конкретного игрока.

 

 

Тогда не могу понять, почему создавая триггер из скрипта, он виден всем игрокам, на всех сторонах и каждый может его запустить, разве не может быть, что рация всегда глобальна, ведь запуск через "0"- а это вызов глобального радио. Читая вики я понял - это так.


  • 0

#24 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 16 September 2022 - 00:13

Тогда не могу понять, почему создавая триггер из скрипта, он виден всем игрокам, на всех сторонах и каждый может его запустить

initPlayerLocal.sqf и init.sqf запускаются у каждого игрока, поэтому локальный триггер создаётся у каждого игрока.

 

Для ограничения попробуй такое условие:

if (!(isNil "s1")) then {
    ...
};

То есть если юнита s1 кто-то выберет, то переменная s1 будет определена, и код выполнится.

 

разве не может быть, что рация всегда глобальна, ведь запуск через "0"- а это вызов глобального радио

Не знаю, но очень сомневаюсь.


Сообщение отредактировал Schatten: 16 September 2022 - 00:13

  • 0

#25 OFFLINE   Gonarx

Gonarx

    Рядовой

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

Отправлено 16 September 2022 - 00:43

 

Тогда не могу понять, почему создавая триггер из скрипта, он виден всем игрокам, на всех сторонах и каждый может его запустить

initPlayerLocal.sqf и init.sqf запускаются у каждого игрока, поэтому локальный триггер создаётся у каждого игрока.

 

Для ограничения попробуй такое условие:

if (!(isNil "s1")) then {
    ...
};

То есть если юнита s1 кто-то выберет, то переменная s1 будет определена, и код выполнится.

 

разве не может быть, что рация всегда глобальна, ведь запуск через "0"- а это вызов глобального радио

Не знаю, но очень сомневаюсь.

 

не помогает, то же самое!!! 

 

if (!(isNil "s1")) then {
s1 =createTrigger ["EmptyDetector", [1713.52,5492.68,0], false];
s1 setTriggerArea [0, 0, 0, false];
s1 setTriggerActivation ["Bravo","NOT PRESENT", true];
s1 setTriggerStatements ["this", "hint 'trigger on'", ""];};

  • 0

#26 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 16 September 2022 - 00:57

не помогает, то же самое!!!

А у меня всё отлично в hosted-игре работает. Причём также с таким кодом в init-поле юнита:

if (local this) then {
    ...
};

  • 1

#27 OFFLINE   Gonarx

Gonarx

    Рядовой

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

Отправлено 16 September 2022 - 19:47

Schatten

 

Это уже радует, если у тебя работает, значит, точно разберемся, почему не работает у меня!

 

Давай только уточним, как и что работает?

 

1. Карта - 3 игровых юнита,  2 за West, один за East.

2. Имя одного из юнитов s1 (у других нет имен)

3. В ините юнита s1 текст:

 

 if (local this) then {

s1 =createTrigger ["EmptyDetector", [1713.52,5492.68,0], false];
s1 setTriggerArea [0, 0, 0, false];
s1 setTriggerActivation ["Bravo","NOT PRESENT", true];
s1 setTriggerStatements ["this", "hint 'trigger on'", ""];};
 
4. Игра запускается как "Играть в сетевую игру МР" 
5. Выбираем юнита S1 (сторона West) - вызываем рацию  0_0 \ Браво (есть в меню радио Браво)
6. Выбираем другого игрока на  стороне West  - вызываем рацию  0_0 \ меню пустое (если так, то сработало)
7. Выбираем другого игрока на  стороне EAST  - вызываем рацию  0_0 \ меню пустое (если так, то сработало)
 
Вот у меня пункты 6 и 7 работают не правильно в них у любого выбранного игрока -  вызываем рацию  0_0 \ Браво (есть в меню радио Браво)
 
Не верю в волшебство в ПО, поэтому думаю, где то у меня, что то должно быть не так, раз не работает.

  • 0

#28 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 16 September 2022 - 20:36

Gonarx, по сути, как ты описал, так и работает.

Прикрепленный файл  Trigger.VR.zip   1.71К   2 Количество загрузок:


  • 1

#29 OFFLINE   Gonarx

Gonarx

    Рядовой

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

Отправлено 16 September 2022 - 20:57

Открыть миссию не смог так как у меня  нет пустынного мода, но создал такую же, пока все та же проблема _t - что за юнит?


  • 0

#30 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 16 September 2022 - 21:10

Открыть миссию не смог так как у меня  нет пустынного мода

Руками миссию можно подкорректировать, заменив юниты из WS и требуемые дополнения. Или можешь загрузить

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

.
 

но создал такую же, пока все та же проблема

Чудеса какие-то.

Скрытый текст

 

_t - что за юнит?

Вообще-то это переменная.


Сообщение отредактировал Schatten: 16 September 2022 - 21:15

  • 1

#31 OFFLINE   Gonarx

Gonarx

    Рядовой

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

Отправлено 16 September 2022 - 22:14

Я правильно понимаю, что у тебя в миссии, принудительно отключен ИИ?  И грузиться только юнит под управлением Player? 

 

 

Если отключать ИИ, то действительно работает. Подумаю, принципиально ли оставлять ИИ для смысла миссии. Больше спасибо за помощь. 


Сообщение отредактировал Gonarx: 16 September 2022 - 22:19

  • 0

#32 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 16 September 2022 - 22:24

Gonarx, да, ИИ отключён.

Если ИИ оставить неотключённым, то его юниты будут локальны игроку-серверу, и, соответственно, радио будет доступно юниту p2 (в моей миссии).
Можно вот так сделать:

if ((vehicleVarName player) == "p1") then {
    ...
};

Тогда даже с включённым ИИ радио будет доступно только для юнита p1.


Сообщение отредактировал Schatten: 16 September 2022 - 22:25

  • 0

#33 OFFLINE   Gonarx

Gonarx

    Рядовой

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

Отправлено 16 September 2022 - 22:30

Gonarx, да, ИИ отключён.

Если ИИ оставить неотключённым, то его юниты будут локальны игроку-серверу, и, соответственно, радио будет доступно юниту p2 (в моей миссии).
Можно вот так сделать:

if ((vehicleVarName player) == "p1") then {
    ...
};

Тогда даже с включённым ИИ радио будет доступно только для юнита p1.

 

 

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


Сообщение отредактировал Gonarx: 16 September 2022 - 22:51

  • 0

#34 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 16 September 2022 - 23:06

Gonarx, и как только у меня всё работает?

Скрытый текст

Сообщение отредактировал Schatten: 16 September 2022 - 23:09

  • 0

#35 OFFLINE   Gonarx

Gonarx

    Рядовой

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

Отправлено 16 September 2022 - 23:09

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


  • 0

#36 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 16 September 2022 - 23:14

Gonarx, ну держи.

Прикрепленный файл  Trigger2.VR.zip   1.69К   5 Количество загрузок:


  • 1

#37 OFFLINE   Gonarx

Gonarx

    Рядовой

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

Отправлено 17 September 2022 - 00:31

Schatten,

 

Огромное спасибо!!! Все работает!!! 


  • 0




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