Определение игроков не отличается ни для сервера, ни для сингла. И там и там это - AiPlayer.
GamePlay.gpPlayer() - мы всегда получаем хост. Для сингла он будет совпадать с собственно игроком. gpRemotePlayers() получает список всех игроков, подключившихся удаленно. Нет тут ни проблемы, ни противоречия вообще.
Если хотим сделать универсальный скрипт, проверяем сразу gpRemotePlayers() + gpPlayer(). Не вижу зла, в общем.
В конце концов можно проверить, что запущено - сингл, сервер или дедик.
Проблема с определениями. GamePlay.gpPlayer() - это метод, возвращающий объект AiPlayer(). GamePlay.gpRemotePlayers() соответственно возвращает набор таких AiPlayer.Для мультиплеера:
GamePlay.gpRemotePlayers() - массив игроков на сервере(он состоит из GamePlay.gpPlayer() ?)
Универсальный совет - при получении любого массива методами из GamePlay и т.д., перед использованием всегда проверяем его на null.
Не изобретай велосипед.Попробую сделать определение языка для каждого игрока из массива и тправку сообщений в соответствии с ним, но я не очень хорошо понимаю отличия выделенного/сингла от мультиплеера. Хотел бы уточнить, чтобы правильно понимать что происходит с этими плеерами, так как они везде используются.![]()