Welcome to Сообщество игровых серверов NETZONA.ORG

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. Зарегистрировавшись и войдя в систему, вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию другим участникам, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?
  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта NetZONA.org: https://netzona.org/help/public-offer/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами использования Ваших файлов cookie на Проекте NetZONA.org: https://netzona.org/help/cookies/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с Политикой конфиденциальности Проекта NetZONA.org: https://netzona.org/pages/privacy-policy/

  • Ответы на основные вопросы: https://netzona.org/threads/populjarnye-voprosy-i-otvety-na-nix.6122/

  • Приветствуем на сайте, Гость! Приобрести (купить) Информационную услугу (в том числе группу "Проверенный") на Проекте NetZONA.org: https://netzona.org/account/upgrades

Серверная и клиентская части кода

Статус
В этой теме нельзя размещать новые ответы.

Neon

Создатель
Команда форума
Проверенный
Регистрация
9 Фев 2013
Сообщения
1,394
Реакции
3
Баллы
49
Здесь привожу вольный перевод официальной статьи с вики: States - Garry's Mod

Состояния или так называемые стороны представляют собой различные состояния Lua.
В Garry's Mod есть 3 "состояния" кода.

Клиент (Client)
Сторона Клиента (client-side) - это в основном ваш игровой клиент. Он обрабатывает такие вещи, как визуальный рендеринг. Он может связываться с состоянием сервера через сетевые библиотеки. Набор переменных со стороны Клиента не может быть получен на стороне Сервера без передачи через соответствующие библиотеки (net, umsg).

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

Сервер (Server)
Сторона Сервера (server-side) обрабатывает всё на сервере; это единственное состояние, используемое на выделенных серверах. Он обрабатывает такие вещи как: говорит что делать энтити, контроллирует оружие, игроков и всю игровую логику. Он также может связываться с состоянием клиента через сетевые библиотеки. Набор переменных со стороны Сервера не может быть получен на стороне Клиента без передачи через эти же библиотеки (net, umsg).

Меню (Menu)
Состояние Меню - это скрытое и изолированное состояние для главного меню. Он имеет некоторые жизненно важные функции, доступные для функциональности Главного меню и не может связываться с состояниями Клиента или Сервера. Любой Lua, запускаемый в этом состоянии, будет работать независимо от sv_allowcslua.

Другое
В вики вы также можете увидеть следующие псевдо-состояния:
Shared (клиент и сервер)
Клиент и меню
Shared и меню (все состояния - клиент, сервер и меню)

Это не фактические состояния, скорее, они означают, что функции или хуки (hook) могут выполняться в каждом из указанных состояний.

Это не обязательно означает, что функция/хук вернет те же значения в разных состояниях (сторонах) или будет делать то же самое на всех сторонах. Например, функция Entity:GetPos() может вызываться на сервере и клиенте, поэтому она является общей. undo.GetTable также является общей функцией, но она работает по-разному на клиенте и сервере, как описано здесь: undo.GetTable - Garry's Mod. С другой стороны, математическая библиотека (math) и библиотека строк (string) могут использоваться во всех трех состояниях.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу