Кодирование - Начало

## Вступление

Файл Lua называется скриптом. Скрипты Lua - это обычные текстовые файлы. Для создания и редактирования сценариев Lua вам понадобится обычный текстовый редактор, такой как notepad.

Вы можете использовать любой обычный текстовый редактор, но вам придется нелегко, если вы не используете один из многих доступных редакторов Lua, таких как Sublime Text или Visual Studio Code.

**Внимание!**

```
Не используйте Wordpad!

```

```
Это форматированный текстовый редактор, а не обычный текстовый редактор. Это поместит бесполезные теги вокруг вашего кода, что приведет к сбою при загрузке. Как правило, если у вас может быть текст, использующий два разных шрифта в одном файле, то это не обычный текстовый редактор.

```

## Создание скрипта

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

Функция печати делает именно это. Введите следующий код в выбранный вами редактор :

```
print( "Hello world" )

```

Вот и все! Разве это было не просто? Так и должно было быть.

## Объяснение

print - это функция. Функция - это команда, которая что-то делает, когда вы ее вызываете. Многие функции могут принимать аргументы, то есть данные, которые вы предоставляете функции, чтобы изменить именно то, что она делает. В этом случае print() принимает только один аргумент, который представляет собой строку (последовательность букв, цифр, пробелов и так далее), и когда вызывается print(), он помещает эту строку в консоль в Garry's Mod.

## Сохранение скрипта

Теперь вы готовы сохранить фактический файл Lua. Чтобы найти свою папку Lua, следуйте по следующему пути - в зависимости от того, где вы установили Garry's Mod на свой компьютер, этот путь может отличаться, но будет выглядеть примерно так:

```
C:\Program Files\Steam\steamapps\common\GarrysMod\garrysmod\lua\
^^^^^^^^^^^^^^^^^^^^^^
Это может быть по-другому!

```

В поле Имя файла введите helloworld.lua (обратите внимание, что вы должны указать .lua), а в поле Сохранить как тип выберите Все файлы. Теперь просто нажмите enter (или нажмите кнопку сохранить), чтобы сохранить ваш сценарий.

**Внимание!**

```
Установите флажок "Расширения имен файлов" в проводнике файлов!

```

```
Убедитесь, что у вас установлен флажок "Расширения имен файлов" в проводнике. Если этот флажок не установлен, ваш текстовый редактор может случайно сохранить ваш файл .lua как .lua.txt . Чтобы убедиться, что этот флажок установлен, откройте окно проводника, перейдите на вкладку "Вид" вверху и установите флажок (он находится в категории "Показать/скрыть" вверху).

```

## Запуск скрипта

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

```
lua_openscript helloworld.lua

```

Нажмите ввод. Если вы все делали правильно до этого момента, вы должны увидеть сообщение в консоли:

```
Hello World!

```

Поздравляем! Вы написали и запустили свой первый Lua-скрипт.

## Автоматический запуск скриптов

Чтобы ваш скрипт запускался автоматически при запуске сервера, вы просто помещаете его в одну из этих папок. Опять же, если у вас установлен Garry's Mod где-то в другом месте, перейдите туда вместо этого.

* Для общих скриптов ( Загружается либо на клиенте, либо на сервере )

```
C:\Program Files\Steam\steamapps\common\GarrysMod\garrysmod\lua\autorun

```

* Для клиентских скриптов (загружаемых только на клиенте )

```
C:\Program Files\Steam\steamapps\common\GarrysMod\garrysmod\lua\autorun\client

```

* Для серверных скриптов (загружаемых только на сервер )

```
C:\Program Files\Steam\steamapps\common\GarrysMod\garrysmod\lua\autorun\server

```

Для этого конкретного руководства любой из этих путей будет работать просто отлично.

## Пометка!

Все клиентские и общие файлы должны быть загружены с помощью AddCSLuaFile, чтобы они могли работать в многопользовательском режиме.

## Загрузка частей скрипта на клиент или сервер

Если вы хотите использовать один файл для клиентского и серверного кода, но хотите, чтобы отдельные части кода передавались между клиентом и сервером, мы можем сделать что-то вроде этого:

* Запускать код только на клиенте

```
if CLIENT then
    -- Ваш клиентский код
end

```

* Запускать код только на сервере

```
if SERVER then
   --Ваш серверный код
end

```

* Чтобы загрузить на общий доступ (клиент или сервер), не проверяйте специально наличие КЛИЕНТА или СЕРВЕРА, просто запишите свой код без блока if.

Пример:

```
print( "Hello Shared!" )

if SERVER then
	print( "Hello Server!" )
end

if CLIENT then
	print( "Hello Client!" )
end

```

Переменные КЛИЕНТА и СЕРВЕРА, которые вы видите там, описаны на странице Состояния.

## Что дальше?

Далее мы узнаем о переменных.

Клиентская сторона, серверная сторона и общий доступ объясняются здесь: Состояния.