Цитата Сообщение от -atas- Посмотреть сообщение
Чтобы юзерам было неудобно программировать, было меньше миссий, меньше продаж. Саботаж, в общем Все авторы, даже такие профессионалы как Kodiak с этим мучаются часами.[COLOR="Silver"]
Определение игроков не отличается ни для сервера, ни для сингла. И там и там это - AiPlayer.
GamePlay.gpPlayer() - мы всегда получаем хост. Для сингла он будет совпадать с собственно игроком. gpRemotePlayers() получает список всех игроков, подключившихся удаленно. Нет тут ни проблемы, ни противоречия вообще.
Если хотим сделать универсальный скрипт, проверяем сразу gpRemotePlayers() + gpPlayer(). Не вижу зла, в общем.

В конце концов можно проверить, что запущено - сингл, сервер или дедик.

Для мультиплеера:
GamePlay.gpRemotePlayers() - массив игроков на сервере(он состоит из GamePlay.gpPlayer() ?)
Проблема с определениями. GamePlay.gpPlayer() - это метод, возвращающий объект AiPlayer(). GamePlay.gpRemotePlayers() соответственно возвращает набор таких AiPlayer.

Универсальный совет - при получении любого массива методами из GamePlay и т.д., перед использованием всегда проверяем его на null.

Попробую сделать определение языка для каждого игрока из массива и тправку сообщений в соответствии с ним, но я не очень хорошо понимаю отличия выделенного/сингла от мультиплеера. Хотел бы уточнить, чтобы правильно понимать что происходит с этими плеерами, так как они везде используются.
Не изобретай велосипед.