Как поменять master.client?

Сеть в Unity3D

Как поменять master.client?

Сообщение jimmm 05 сен 2017, 05:41

Ситуация такая, один игрок создает комнату в photon cloud и становится мастер клиентом, создает ботов и управляет ими, подсоединяется другой игрок.
Как можно передать мастер клиента другому игроку во время игры, и следовательно передать ему управление ботами ?
Такое вообще возможно?

Это на случай если игроки играют кооператив, и мастер игрок случайно вылетает из игры, чтоб другой игрок продолжил миссию, а первый-вылетевший игрок смог опять к миссии подсоедениться.
jimmm
UNIверсал
 
Сообщения: 417
Зарегистрирован: 23 янв 2013, 22:57

Re: Как поменять master.client?

Сообщение ikhtd 05 сен 2017, 09:25

Фотон клауд на автомате меняет мастер клиента, если с ним случается например вылет из комнаты и не позволяет разрабу из кода менять мастер клиента. Есть только команда на проверку - является ли игрок мастер клиентом.
То есть в фотон клауд не нужно думать о том, чтобы передавать мастер клиента. Типа в целях безопасности они не дают разрабу контроль над сменой мастер клиента.
Скрытый текст:
Объективная реальность это - что в жизни не может быть более одного пути, который в свою очередь обусловлен максимальным существующим давлением. (второй _ttp://habrahabr.ru/post/202654/)
ikhtd
Адепт
 
Сообщения: 1124
Зарегистрирован: 24 мар 2014, 12:20

Re: Как поменять master.client?

Сообщение jimmm 05 сен 2017, 12:22

А как быть с ботами?
Если их спаунит и передвигает мастер клиент, как их передавать новому мастер клиенту? А то они просто исчезают если мастер клиент вылетает.
jimmm
UNIверсал
 
Сообщения: 417
Зарегистрирован: 23 янв 2013, 22:57

Re: Как поменять master.client?

Сообщение ikhtd 05 сен 2017, 20:49

Хороший вопрос. Наверное проверять на фотон дисконект и передавать новому мастер клиенту. Хотя непонятно, если проверка на дисконект, следовательно геймобъект не в сети и его тогда в комнате уже не существует. А если после дисконекта резко сделать повторно команду конекта в эту комнату... Я точно не знаю, только предполагаю. У меня реально в игре боты игрока пропадали, когда он покидал.
Скрытый текст:
Объективная реальность это - что в жизни не может быть более одного пути, который в свою очередь обусловлен максимальным существующим давлением. (второй _ttp://habrahabr.ru/post/202654/)
ikhtd
Адепт
 
Сообщения: 1124
Зарегистрирован: 24 мар 2014, 12:20

Re: Как поменять master.client?

Сообщение jimmm 08 сен 2017, 08:38

Возможно только если переинстантить таких же ботов в тех же местах.
А как можно отследить что мастер клиент поменялся?? Что игрок вдруг стал мастер клиентом?
jimmm
UNIверсал
 
Сообщения: 417
Зарегистрирован: 23 янв 2013, 22:57

Re: Как поменять master.client?

Сообщение юnity 08 сен 2017, 12:58

Помоему, даже сами разработчики PhotonCloodа сами не очень горят желанием отвечать на такие вопросвы. Ну судя по моим личным поискам. Когда то я тоже заинтересовался этим, и пролистал весь код в демках - там ничего похожего тоже не нашёл. И пытался со своим неидеальным английским что то искать на сайтах photonenine. Помню на чём начал, на том всё и закончилось. :( Помню, у меня получилось передать сцене бота, но поползло огромное колличество варнингов в консоли, всё оканчивалось ошибкой из за изменённого viewId, фотон не видел такого объекта, но отправлял ему сообщения.
Give exact coordinates of the decision of the problems
Аватара пользователя
юnity
UNITрон
 
Сообщения: 290
Зарегистрирован: 21 июл 2015, 18:30

Re: Как поменять master.client?

Сообщение IDoNotExist 08 сен 2017, 13:26

Никак вы б**дь не научитесь смотреть в документацию.
https://doc-api.photonengine.com/en/pun/current/class_photon_network.html#a85b058bab4a369d0c5730cf43b462962
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Как поменять master.client?

Сообщение юnity 08 сен 2017, 18:00

IDoNotExist писал(а):Никак вы б**дь не научитесь смотреть в документацию.
https://doc-api.photonengine.com/en/pun/current/class_photon_network.html#a85b058bab4a369d0c5730cf43b462962

А как это RPC сделать? Может такой пример есть в интернете, я лично не нашёл.
Give exact coordinates of the decision of the problems
Аватара пользователя
юnity
UNITрон
 
Сообщения: 290
Зарегистрирован: 21 июл 2015, 18:30

Re: Как поменять master.client?

Сообщение IDoNotExist 08 сен 2017, 18:33

юnity писал(а):А как это RPC сделать? Может такой пример есть в интернете, я лично не нашёл.

Какое еще RPC, PhotonNetwork.SetMasterClient - статическая функция, русским по белому же написано, всё что вам надо сделать это вызвать её, передав туда нужного PhotonPlayer.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Как поменять master.client?

Сообщение jimmm 08 сен 2017, 20:26

IDoNotExist писал(а):
юnity писал(а):А как это RPC сделать? Может такой пример есть в интернете, я лично не нашёл.

Какое еще RPC, PhotonNetwork.SetMasterClient - статическая функция, русским по белому же написано, всё что вам надо сделать это вызвать её, передав туда нужного PhotonPlayer.

Насколько я везде читал, это не поможет, всеравно все заинстанчиные объекты удалятся, когда выйдет тот кто их создавал.
Поэтому одно из "кастыльных" решений, это реинстантить ботов у нового мастера, понять бы когда происходит этот момент.
jimmm
UNIверсал
 
Сообщения: 417
Зарегистрирован: 23 янв 2013, 22:57

Re: Как поменять master.client?

Сообщение maksimov 08 сен 2017, 21:09

Ох...

По пунктам.

1. Вы можете менять мастер-клиента, когда вам заблагорассудиться. Для этого существует функция PhotonNetwork.SetMasterClient(PlayerID). Отлавливать данное событие можно с помощью OnMasterClientSwitch.
2. Как вам верно заметили, для решения ваших нужд, менять мастер-клиента не нужно. Он меняется автоматически, при выходе текущего.
3. Если вам не нужно, что бы при выходе пользователя, уничтожались инстанцированные им объекты, просто поменяйте настройку: m_autoCleanUpPlayerObjects = false

4. В ВАШЕМ СЛУЧАЕ, необходимо просто интанцировать ботов не от игрока, а от сцены: PhotonNetwork.InstantiateSceneObject. Такой объект, будет существовать, даже если все игроки выйдут из комнаты.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

Re: Как поменять master.client?

Сообщение jimmm 09 сен 2017, 07:08

maksimov писал(а):Ох...

По пунктам.

4. В ВАШЕМ СЛУЧАЕ, необходимо просто интанцировать ботов не от игрока, а от сцены: PhotonNetwork.InstantiateSceneObject. Такой объект, будет существовать, даже если все игроки выйдут из комнаты.

Хорошо попробую.
А кто будет управлять этими ботами в фотон клауде( то есть без серверным решением)?
jimmm
UNIверсал
 
Сообщения: 417
Зарегистрирован: 23 янв 2013, 22:57

Re: Как поменять master.client?

Сообщение Woolf 09 сен 2017, 07:21

jimmm писал(а):А как быть с ботами?
Если их спаунит и передвигает мастер клиент, как их передавать новому мастер клиенту? А то они просто исчезают если мастер клиент вылетает.

Просто передавать постоянно состояние ботов, а управлять ими, проверяя флаг isMaster. Если мастер вылетает, то управление ботами тут же подхватит новый мастер.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Как поменять master.client?

Сообщение Ert Donuell 09 сен 2017, 09:47

Такое возможно. Только это не фотон:
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: Как поменять master.client?

Сообщение ikhtd 09 сен 2017, 13:50

Ох...

По пунктам.


спасибо. не знал такого.

ЗЫ скоро конец форуму так что сохраняйте ответы автономоно.
Скрытый текст:
Объективная реальность это - что в жизни не может быть более одного пути, который в свою очередь обусловлен максимальным существующим давлением. (второй _ttp://habrahabr.ru/post/202654/)
ikhtd
Адепт
 
Сообщения: 1124
Зарегистрирован: 24 мар 2014, 12:20

След.

Вернуться в Сеть

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

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