[Samp gamemode creation] Обзор языка программирования PAWN (часть 1)
Итак, сегодня я буду рассказывать как я пишу мод на SAMP. Для начала разберёмся на каком языке пишут скрипты и моды для SAMP. Моды и скрипты в SAMP пишутся на языке PAWN. Pawn - это С-подобный скриптовый язык (как и lua) но, в отличии от lua, в Pawn скрипты именно компилируются,в байт код для запуска на абстрактной машине, а не интерпретируются как в Lua. Скажите - ну и что это даёт? А даёт это многое, например: компилятор pawn ещё до выполнение скрипта проверяет на наличие ошибок, и поэтому у вас никогда не будет внезапных ошибок в программе, также ещё скорость работы скрипта больше чем в том-же Lua, потому-что код скомпилирован в сразу понятный для машины код. Что такое pawn мы разобрались.
Давайте разберёмся с средой разработки, если в lua мы могли писать скрипты хоть в блокноте, то теперь нам нужна полноценная среда разработки.
1. Pawno - Очень простой редактор, в есть необходимый минимум чтобы писать скрипты на pawn.
Плюсы:
+ Малый размер (768 кб)
+ Идёт сразу с Samp server
+ Встроенный список функций из всех инклудов
+ Сразу есть все паблики и функции samp
Минусы:
- Подсветка синтаксиса сделана чисто для галочки (всего два цвета подсветки синий и чёрный)
- На windows начиная с vista надо запускать от имени админа
- На больших скриптах может вылетать
2. Notepad++ (с плагином nppexec) - Самый популярный редактор скриптов. Поддерживает плагины, и также множество языков программирования
Плюсы:
+ Расширяемость
+ Нормальная подсветка синтаксиса
+ Авто-табуляция кода
+ Удобная навигация по коду (можно сразу перейти к другой строке, и есть карта документа)
Минусы:
- Для поддержки pawn надо много чего настраивать.
- Нету Встроенного списока функций
Настройка плагина NppExec:
1. Выберите plugin manager
2. Откроется окно, ищём Nppexec, выбираем галочкой, жмём install, перезапускаем.
3. Должно появится в меню пункт, жмём
4. Откроется окно
вписываем туда код:
cd $(CURRENT_DIRECTORY) "Путь до pawncc.exe" "$(FILE_NAME)" -; -(
5. Нажимаем ok и компиляция начнётся
Но давайте перейдём к написанию программы "hello world!" Как я и сказал у меня samp вариант Pawn. Вот как выглядит hello world в pawn:
main(){ print("hello world!");}
Компилируем:
Как видим, всё прошло успешно и компиляция завершена.
Вот как выглядела бы ошибка:
С компиляцией разобрались, теперь нам надо запустить сервер, запускаем сервер и видем наше сообщение:
Теперь хотелось-бы чтобы например: hello world писалось не в консоль сервра, а например игроку в чат. Для этого нужно использовать include, да-да как и в си или c++ pawn поддерживает include и константы #define, и даже команды пре-процесса #pragma. Теперь, давайте подключим include к нашему скрипту для того, чтобы подключить include надо в начале скрипта написать #include <a_samp>, тем самым мы подключили include для работы функций samp. Теперь мы можем создать код в нашем скрипте:
public OnPlayerConnect(playerid) // Создаём паблик чтобы при подключении игрока что-то происходило{ SendClientMessage(playerid, -1, "hello world"); // Функция отправки сообщения return 1; // функция должна что-то возвращать}
Playerid - Ид игрока которому мы будем отправлять сообщение (в данном случае игроку который подключился к серверу)
-1 - Цвет сообщения (белый)
"hello world" - Строка которая будет отправляться.
Запускаем сервер, заходим в игру и видим наше сообщение:
Ну вот и всё это был весь мой обзор языка pawn. ВНИМАНИЕ! Я некого не собираюсь учить (я сам учусь) это был просто мини-обзор языка Pawn. Потому-что никто на форуме не знает этот замечательный язык программирования. Если бы он был в OpenComputers я бы был рад!
- 3
11 комментариев
Рекомендуемые комментарии