Текущее время: 18 апр 2019, 20:01


Новая темаКомментировать Страница 1 из 1   [ Сообщений: 2 ]
Автор Сообщение
 Заголовок сообщения: Триггер в мультиплеере
СообщениеДобавлено: 09 апр 2019, 16:52 
Опытный
Аватара пользователя

Зарегистрирован: 08 дек 2012, 18:58
Сообщения: 297
Откуда: Волгоград
Благодарил (а): 170 раз.
Поблагодарили: 109 раз.
Всем привет! Кто подскажет как заставить работать триггер в мультиплеере. На сервере работает, а на клиенте нет. Делал два триггера, один в FG выставлял на ClientOnly на втором ServerOnly. Один работает, второй нет. Изображение

Сразу скажу, это нужно для телепорта в мультиплеере.
Подробно что нужно: Есть модель дома статическая. Подойдя к двери, появляется надпись,,ВОЙТИ,, . При нажатии кнопки действия игрок перемещается (телепортируется) в комнату, которая находится вообще в другом месте на карте.
Или подскажите другой способ перемещения при нажатии кнопки действия. нод input key не предлагать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Триггер в мультиплеере
СообщениеДобавлено: 14 апр 2019, 21:29 
Новичок

Зарегистрирован: 22 фев 2017, 17:58
Сообщения: 14
Благодарил (а): 1 раз.
Поблагодарили: 10 раз.
Я думаю всё из-за разных ID игроков и сервера во время игры. (у ГГ в одиночной игре ID=30583). Чтобы Spawn сработал нужно привязать его к ID конкретного игрока, у SpawnPoint по умолчанию привязка к ID=30583, сменить которую не возможно.

Сам Proximity Trigger точно работает, через client only он работал и для сервера и для игроков когда я тестировал свой уровень. В моем случае когда игрок входит в него на карте ставилась точка с координатами Proximity Trigger (т.е. ID брался именно триггера по этому работало). Не всегда стабильно, но всё это работало.

Для начала нужно убедиться что Proximity Trigger срабатывает во время сетевой игры, например связать его со взрывом или выдать текст на экран при входе в него. Запустить сетевую игру и протестировать, если срабатывает на клиенте и сервере значит дело точно в ноде SpawnPoint.

Я вообще долго мучился с понятием игрок внутри сетевой игры. У каждого игрока для самого себя ID=30583, у остальных участников ID может быть какой угодно, каждый раз по разному.
Т.е. ID=30583 локальный обычно срабатывает только для сервера, есть ещё и глобальный ID он уже у всех разный, его вообще невозможно узнать просто так применив нод на себя самого. Можно только когда один игрок взаимодействует с другим, например через расширенный нод Input:Mouse. Во время сетевой игры один участник подходит к другому запускает нод и кликает мышкой по своему противнику и только так будет получен глобальный ID конкретного участника, через который с ним можно творить всё что угодно любому из участников.
Второй способ через стандартные ноды RayCastCamera, пример приводил здесь: viewtopic.php?f=6&t=882

Как получить глобальный ID игрока без взаимодействия участников я так и не нашел способа. В Proximity Trigger через Sender выводится ID игрока пошедшего в него, но не корректно работает по сетевой игре


нод Spawn в одиночной игре спавнит в своей позиции только ГГ, противники спавнятся там же где стояли в начале игры. Вряд ли будет корректно работать перемещение в сетевой игре лучше попробовать ноды EntityPos и EntityGetPos. Вот по такой схеме:
Изображение
Второй способ: триггер перемещает всех кто попадает в него
Изображение
И то не факт что будет нормально работать в сетевой игре, в одиночной 100% работает. Нужно тестировать уровень по сети.


Вернуться к началу
 Профиль

За это сообщение автора Timyr поблагодарил: rombal
  Рейтинг: 7.69%
 
 
Показать сообщения за:  Поле сортировки  
Новая темаКомментировать Страница 1 из 1   [ Сообщений: 2 ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Перейти:  
 cron


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