+ Ответить в теме
Страница 1 из 7 1 2 3 ... ПоследняяПоследняя
Показано с 1 по 10 из 70

Тема: Скриптование под мультиплеер

  1. #1
    Разработчик Trainz UP Аватар для kemal
    Регистрация
    22.10.2009
    Страна
    Адрес
    Казань / 793км
    Возраст
    31
    Сообщений
    3,159

    Script Скриптование под мультиплеер

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

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

    Например, имеется один простой скрипт: при наезде поезда на триггер переключается стрелка. Нужно ли здесь что-то предпринимать для синхронизации? Критично ли переводить стрелку только на сервере или можно это не проверять и пусть скрипт выполняется у всех игроков?

  2. #2
    Пользователь Аватар для Эрендир
    Регистрация
    13.01.2010
    Страна
    Адрес
    Я Бот, живу в сети :)
    Возраст
    35
    Сообщений
    6,240

    По умолчанию

    Цитата Сообщение от kemal Посмотреть сообщение
    Что именно синхронизирует игра
    стрелки, тротлы лока и его положение, формирование составов. Возможно ещё наличие груза (хотя это сомнительно). Гудок стандартный, свисток стандартный, токоприёмники, прожектор, привязку машинистов к составу.
    Цитата Сообщение от kemal Посмотреть сообщение
    а что надо синхронизировать вручную?
    Всё остальное, что тебе требуется.


    Цитата Сообщение от kemal Посмотреть сообщение
    И что делать с вычислениями, которые должны выполниться только в одном месте?
    Ты уже ответил
    Цитата Сообщение от kemal Посмотреть сообщение
    Всех их выполнять только на сервере

  3. #3
    Разработчик Trainz UP Аватар для kemal
    Регистрация
    22.10.2009
    Страна
    Адрес
    Казань / 793км
    Возраст
    31
    Сообщений
    3,159
    Автор

    По умолчанию

    Спасибо за ответы.
    Но таки что делать в примере со стрелкой? Можно признать этот скрипт простым и не требующем "адаптации", но тогда стрелку будут переводить все, что как я понимаю не хорошо. А можно всё же обеспечить перевод стрелки только на одном клиенте.
    Кстати про выполнение только на одном клиенте. А возможно ли и имеет ли смысл поручать такие вычисления тому клиенту, чей поезд вызвал событие?

  4. #4
    Пользователь Аватар для Эрендир
    Регистрация
    13.01.2010
    Страна
    Адрес
    Я Бот, живу в сети :)
    Возраст
    35
    Сообщений
    6,240

    По умолчанию

    Всё возможно. Нужно исходить из того, что ты хочешь реализовать. Так, например, в моём скрипте ПОНАБ, все расчёты выполняются на том клиенте, игрок которого привязан к поезду вызвавшему событие наезда на триггер. А вот в пульте ДСП все расчёты, переводы стрелок, сборка маршрутов и тп (кроме открытия светофоров) происходит на стороне сервера. Клиенты лишь отправляют запрос.

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

  5. #5
    Разработчик Trainz UP Аватар для kemal
    Регистрация
    22.10.2009
    Страна
    Адрес
    Казань / 793км
    Возраст
    31
    Сообщений
    3,159
    Автор

    По умолчанию

    Я хотел, чтобы всё это здесь осталось, вдруг ещё кому-нибудь пригодиться. А так да, пойду в скайп.

  6. #6
    Пользователь Аватар для Эрендир
    Регистрация
    13.01.2010
    Страна
    Адрес
    Я Бот, живу в сети :)
    Возраст
    35
    Сообщений
    6,240

    По умолчанию

    А зачем? Практика показывает, что народ читать не любит. Да и скриптеров 1,5 землекопа. Кому нужно, спросит. Тайны ведь из этого (в отличии от Аурана) никто не делает. На самом деле в синхронизации в ТРС ничего сложного нет, просто нужно грамотно перед собой задачу поставить.

  7. #7
    Пользователь Аватар для glebqip
    Регистрация
    04.08.2011
    Страна
    Адрес
    Россия, Москва
    Сообщений
    39

    По умолчанию

    Господа скриптёры, как мне ПРАВИЛЬНО получить юзернейм в кабине? Я уже час пытаюсь что нибудь сделать, но получаю либо NullReference, либо null вместо имени. Делаю в одном файле отдельном классе. Класс выглядит так:
    Открыть
    Вызывается функция GetUsername в Update:
    [PHP]Username=TestLib.GetUsername();[/PHP]

    Комментарий администрации (Внимание! Ответ на этот комментарий приводит к блокировке пользователя)

    1. kemal:
    2. вынесено из темы "Вопросы по Auran GameScript"
    Последний раз редактировалось kemal; 12.01.2014 в 16:00.

  8. #8
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    29
    Сообщений
    15,131

    По умолчанию

    Цитата Сообщение от glebqip Посмотреть сообщение
    юзернейм
    Код:
    string Username = me.GetAsset().GetConfigSoup().GetNamedTag("username");

  9. Сказал спасибо:


  10. #9
    Пользователь Аватар для glebqip
    Регистрация
    04.08.2011
    Страна
    Адрес
    Россия, Москва
    Сообщений
    39

    По умолчанию

    Тьфу, не так сформулировал. Мне нужно имя игрока, который сидит в данный момент в кабине.

  11. #10
    Пользователь Аватар для TRam_
    Регистрация
    22.09.2009
    Возраст
    29
    Сообщений
    15,131

    По умолчанию

    ты о мультиплеере?

+ Ответить в теме
Страница 1 из 7 1 2 3 ... ПоследняяПоследняя

Ваши права

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