Найти в Дзене

Что такое Pawn?

Привет всем, сегодня поведаю Вам о простом не типизированном 32-битном языке программирования — Pawn. Лично я работаю с данным языком программирования в GTA SA проектах, т.е. пишу игровые моды, системы и т.п. для серверов тех или иных жанров. Что ж, давайте окунёмся в историю данного ЯП. Pawn — был разработан для начинающих программистов, основой стал язык Си, разработчики данного языка хотели упростить язык Си таким образом, чтобы избегать или обходить ошибки, которые допускали юные программисты. О особенностях данного языка: Типы данных в Pawn: Циклы в Pawn Как и в других языках программирования, циклы также существуют и в Pawn. Пробуем реализовать цикл for(){} Результат: Пройдёмся по коду Аналогично с циклом while. Цикл while, кстати, также выполняется пока условие истинно, например, пока переменная a ≠ 5 — цикл выполняется. Операторы ветвления if(…) else if, switch() Также, в Pawn, существуют операторы ветвления if, else if, switch, пример их реализации представлен ниже. if, els
Оглавление

Привет всем, сегодня поведаю Вам о простом не типизированном 32-битном языке программирования — Pawn.

Лично я работаю с данным языком программирования в GTA SA проектах, т.е. пишу игровые моды, системы и т.п. для серверов тех или иных жанров. Что ж, давайте окунёмся в историю данного ЯП.

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

О особенностях данного языка:

  • Скриптовой Си-стайл ЯП
  • Для подключения файлов используется привычный нам #include <>('' '')
  • Поддерживает UNICODE\UCS-4 и UTF-8.

Типы данных в Pawn:

  • Целые числа (при объявлении переменной тип данных указывать не требуется)
Объявление переменной integer
Объявление переменной integer
  • Числа с плавающей точкой:
float
float
  • Булевые переменные:

Циклы в Pawn

Как и в других языках программирования, циклы также существуют и в Pawn. Пробуем реализовать цикл for(){}

Результат:

-3

Пройдёмся по коду

-4

Аналогично с циклом while.

Цикл while, кстати, также выполняется пока условие истинно, например, пока переменная a ≠ 5 — цикл выполняется.

Операторы ветвления if(…) else if, switch()

Также, в Pawn, существуют операторы ветвления if, else if, switch, пример их реализации представлен ниже.

if, else if:

if / else if
if / else if

switch:

switch
switch

Всё вышеперечисленное — базовые вещи Pawn, сюда можно отнести арифметические операции: ( +, -, /, *), всё это работает также как и в других языка программирования.

Приведу пример своих наработок, которые существенно облегчили мне тестирование других наработок реализованных не на Pawn.

Команда для телепорта по игровой карте GTA SA:

-7

Здесь использованы дополнительные плагины, а именно: командный процессор Pawn.CMD, что позволило написать мне первую строку кода, sscanf, позволяющий более удобно обрабатывать то, что игрок вводит в чат, а также API SA мультиплеера.

Команда для создания игровых автомобилей с учётом координат игрока:

-8

Функция получающая координаты игрока на карте — GetPlayerPos(), записывает их в переменные, которые в последующем создают необходимый транспорт, с помощью CreateVehicle();

неЛогический конец

Сегодня Мы познакомились с таким языком программирования как Pawn. Хотелось бы отметить, что на момент написания статьи люди, хорошо знающие и владеющие Pawn'ом востребованы в такой индустрии как SA:MP.