Pawn. Основы
Вступление🔗︎
Прочитав различные Pawn уроки(иногда именуемые как Pawno уроки, что в корне неправильно) в Интернете, я понял, что большинство из них нельзя читать новичкам, ибо это может привести к деформации мировоззрения о программировании в целом... В связи с этим, я решил начать писать свою серию уроков по языку Pawn. Постараюсь излагать всё как можно более понятно и подробно. Собственно, первый Pawn урок, дальше - больше, лучше. Следить за уроками можно по тегу Pawn.
Основы🔗︎
Pawn - компилируемый язык программирования. Язык не приобрел широкой популярности, самые знаменитые проекты, использующие этот язык, это: AMXX и SA-MP.
Синтаксис языка имеет 'Си-подобный' вид. Форматы исходного файла: p
, pwn
, inc
. Формат компилированного файла - amx
.
Есть несколько редакторов Pawn скриптов, разработчики SA-MP по умолчанию предлагают использовать редактор Pawno.
Нам необходимо иметь SA-MP сервер, библиотеки(инклуды) и компилятор, всё это можно скачать с сайта sa-mp.com.
В каталоге pawno/
есть файл new.pwn
, с ним то мы и будем работать.
Здесь есть public
'и(callbacks, колбэки), они выполняются при каком-то событии, например паблик OnGameModeInit
выполняется при загрузке игрового режима, а OnPlayerConnect
, при подключении игрока к серверу. Более подробное описание других колбэков можно найти на википедии проекта - wiki.sa-mp.com.
Для каждого public'а нужно прописывать forward
. Но для стандартных колбэков это делать не нужно, потому что это прописано в стандартных библиотеках.
main()
выполняется после загрузки игрового режима.
Немного о простых функциях🔗︎
Функция print
отправляет строку в консоль сервера.
Пример:
main()
{
print("Hello, World!");
}
Функция printf
отправляет форматированную строку в консоль сервера.
Пример:
main()
{
new x = 1;
printf("x = %d",x);
}
Для форматирования используются следующие заполнители:
%b
- двоичная система счисления%c
- один символ%d
- целое число%f
- дробное число%i
- целое число%s
- строка%x
- шестнадцатеричная система счисления%%
- знак %