3 урока pawn для новичков

Описание: Основы скриптинга
Модератор: SJplayer

Дим M
Автор темы, Администратор
Администратор
Аватара
Дим M
Автор темы, Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#1 Дим » 9 мая 2013, 14:02

3 урока pawn для новичков

Урок 1. Изучаем программу pawno

Добро пожаловать на первый урок. Здесь мы с вами познакомимся с интерфейсом программы, и разберёмся с расширениями amx и pwn. Итак, приступим.

Интерфейс Pawno

Интерфейс программы очень простой и интуитивно понятный.

Изображение


Как видите программа очень простая. Красным выделена панель меню с помощью который можно легко сделать простейшие операции с текстом и фалами. Зеленым выделена панель быстрого доступа через которую можно выполнить часто используемые операции. Синим выделена рабочая область, в которой будет писаться сам код. Оранжевым выделена панель со списком функций, что это – мы разберем попозже.

AMX и PWN

Если вы при написании мода нажмете на кнопку сохранения на панели быстрого доступа либо File Save (Ctrl + S) то вы сохраните свой проект, но если вы запустите сервер, то у вас появится ошибка, что мод указанный в server.cfg не найден в папке gamemodes. В чем же проблема? Мы же сохранили файл, почему сервер не находит его. Дело вот в чем pwn – текстовый файл, аналог txt. А игра работает с файлом который содержит четкие указания и им является файл с расширением amx. Как же pwn превратить в amx? А очень просто. Надо нажать на кнопку Compile Изображение на панеле быстрого доступа либо F5. И в папке у нас появился файл amx. Именного его надо ложить в папку gamemodes. Теперь вы поняли в чем разница между pwn и amx.

Урок 2. Переменные и массивы

Добро пожаловать на второй урок. Вот мы и начинаем уже писать код. Здесь мы ознакомимся с такими понятиями как переменная (variable) и массив (massive). Очень важно понять эту тему, иначе дальше двигаться не получится. Переменные и массивы служат для запоминания данных и их использования в процессе исполнения мода. В процессе работы вы поймете на сколько важны эти вещи. Итак, приступим.

1.Переменная.

Давайте представим себе какой нибудь ящик с именем. Мы можем чтонибудь положить в этот ящик, а потом использовать то, что там лежит. Например мы положим в ящик яблоко и дадим имя ящику – Яблоко. Вот мы положили яблоко и забыли про него. Таких ящиков у нас может быть большое множество. Через некоторое время мы можем открыть этот ящик и что ми там увидим? Конечно же то же самое яблоко, которое мы положили туда 15 минут назад. Примерно по такому же приципу работают переменные, это те же самые ящики, но в них можно ложить только числа или 1 символ и обращатся к этим ящикам по имени. Число которое лежит в переменной будем называть значением переменной. Все переменные надо объявлять. Переменные объявлятся так: new <имя переменной>; Так же в процессе работы нашего мода мы можем изменить значение переменной. Переменная в samp может быть двух типов: целочисленная (integer) и переменная с плавающей точкой (float). Переменные с плавающей точкой должны объявлятся так: new Float:<имя переменной>;

2.Массив

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

2.1 Простой массив

Начнем с простого массива. У вас мог возникнуть вопрос: “Как можно запомнить целое предложение если переменная может запоминать только 1 символ?”. Так вот массив это множество переменных не имеющих имен а только свой порядковый номер (индекс). Простой массив можно представить в виде таблицы с одной строкой и множеством столбцов. Каждый столбец пронумерован. Массивы также как и переменные надо объявлять. Массивы объявлятся так: new <имя массива>[<размер массива>];. Предположим мы объявили массив new mymassive[6]; Этот массив можно заменить пятью переменными, но согласитесь, удобней создать один массив чем 6 переменных. Теперь можно в каждую ячейку массива внести по символу.

Код: Выделить всё

mymassive[0] = "П";
 mymassive[1] = "р"
 mymassive[2] = "и"
 mymassive[3] = "в"
 mymassive[4] = "е"
 mymassive[5] = "т"


Если представить этот массив в виде таблицы то будет выглядеть примерно так:

1.jpg
1.jpg (9 КБ) 4122 просмотра


2.2 Многомерный массив

Многомерный массив можно представить в виде таблицы с множеством строк и столбцов. То есть многомерный массив может содержать несколько предложений. Конечно несколько предложений можно и записать в простой массив. Но если мы захотим выбрать определенное предложение из массива то с простым это не получится. В виде таблицы многомерный массив можно представить так:

Копия 1.jpg
Копия 1.jpg (22.38 КБ) 4122 просмотра


Многомерный массив объявляется так же как и простой массив только указывается сколько строк в массиве а затем сколько символов в кажой строке: new massive[2][15]. Все “переменные” в массиве могут быть только одного типа: либо целочесленный, либо с плавающей точкой. О внесении данных в многомерный массив мы поговрим чуть позже.

Урок 3. События и функции.

Итак, мы приступаем к изучению самого главного. От того, как вы поймете этот урок будет зависеть то, как вы будете программировать далее. Если же вы решили серьезно занятся скриптингом, то вам просто необходимо понять эту тему. Начнем с того, что опять проведем параллель с реальной жизнью. Что такое событие? Событие в жизни это какое-либо значимое проишествие, например: бракосочетание, рождение ребенка, решение проблемы мирового масштаба и многое другое. Событие в программирование очень похоже на событие в жизни, с той лишь разницой, что событие может быть не столь важным, например: игрок сел в машину, игрок подключился, игрок отсоеденился и многое другое, все это является программным событием (пабликом).

Функции

Функция – определенная реакция на определенное событие. Например: на событие игрок сел в машину мы напишем функцию с помощью которой выведем сообщение в чат. В коде функция записывается в таком виде: имя_функции(аргументы); Каждая функция имеет свое имя. Например, функция вывода сообщения в чат – SendClientMessage. Теперь давайте разберем что же такое аргументы функции. В аргументах указываются в определенном порядке переменные, которые необходимы для выполнения данной функции. Например для выполнения функции SendClientMessage нужно указать ID игрока, которому выводить сообщение в чат, цвет сообщения и сам текст сообщения. Все эти данные вводятся в круглых скобках после имени функции. Например если написать SendClientMessage(0,0xFFFFFFFF,"Привет мир"); выведет сообщение “Привет мир” белым цветом для игрока ID которого равен 0. Теперь разберем где можно использовать эти функции.

События


Теперь давайте разберемся как выглядят события и функции в коде. Давайте откроем Pawno и нажмем Ctrl+N. Мы увидим шаблон, который нам приготовил Pawno, если сейчас его сохранить и скомпилировать, то зайдя на сервер у вас будет только 1 скин и ни одной машины, но сервер будет работать исправно. Давайте опять заглянем в код и посмотрим на строку под номером 54: public OnPlayerConnect(playerid), это и есть название события. Если вы знаете английский язык, то возможно вы уже догадались, что это за событие, это событие подключения игрока к серверу. То что написано в круглых скобках мы разберем чуть позже. Сейчас глянем на строки 55 и 57, где мы увидим открывающуюся и закрывающуюся фигурные скобки. Между этими скобками будут находится все функции, которые будут выполнятся после подключения игрока к серверу. Теперь давайте обратим внимание на слово playerid в круглых скобках после названия паблика. Что бы это значило? Слово playerid означает, что внутри этой функции есть локальная переменная с именем playerid в которой хранится ID подключившегося игрока . Все переменные, объявленные внутри какого либо события, или находящиеся в круглых скобках после названия события, существуют только внутри этого события, например: если мы объявим переменную new var1; внутри этого события, то мы не сможем использовать эту переменную внутри другого паблика. Давайте поставим перед собой задачу: Когда игрок заходит на сервер вывести ему в чат сообщение: “Добро пожаловать на мой сервер”. Как вы помните, функция для вывода сообщения в чат – SendClientMessage. События входа игрока на сервер – OnPlayerConnect. После открывающейся фигурной скобки пишем SendClientMessage. Далее нам надо указать аргументы: ID игрока, цвет сообщения и само сообщение. Все это указывается в круглых скобках после имени функции. Как мы помним, внутри события OnPlayerConnect существует переменная playerid, хранящая ID игрока подключившегося к серверу. Её мы и будем использовать. Итак, после SendClientMessage пишем (playerid,0xFFFFFFFF,”Добро пожаловать на мой сервер”); Теперь разберем все что мы сделали. Мы указали серверу, что нужно делать когда игрок подключается к серверу, а именно: отправить сообщение “Добро пожаловать на мой сервер” белым цветом в чат тому игроку, который подключился. Нажимаем F6, запускаем сервер и проверяем.
[center]i love you [s]mxIni[/s] Mysql[/center]


Вернуться в «Основы скриптинга»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 6 гостей