Страница 1 из 1

Основы Pawn

СообщениеДобавлено: 13 фев 2009, 22:03
Dimanok
Статья о создании своего плагина AMX mod X
Прежде чем начать, я советую скачать последнюю версию AMXX Studio — это конечно не самый лучший в мире редактор, но это ведь лучше, чем блокнот, не правда ли?

1. Файл плагина
Разрешение исходника ПАВН - *.SMA (В принципе может быть любой текстовый файл)
Как вы наверно уже догадались, его можно открыть блокнотом, если вдруг у вас нет АМХХ Студии

2. Комментарии
Любой участок кода, содержащий перед собой двойной прямой слеш (//) считается комментарием, и при компиляции игнорируется, например:

// Это комментарий, он не будет считываться
Если надо закомментировать более 1 строчки, то можно использовать комбинацию символов /* чтобы открыть комментарий, и */ чтобы закрыть (в принципе можно на каждой строчке поставить //, эффект будет тот же), например:
Код: Выделить всёРазвернуть
/* Строчка 1
Строчка 2
Строчка 3
Это комментарий */

3. Добавление инклудов (include)
Инклуд – это директива препроцессора. В этой директивe указывается путь к заголовочному файлу (текстовые файлы в папке ‘include’) в котором содержатся прототипы функций (объявления, declaration) и различные константы
Чтобы добавить Инклуд, нужно написать:

Код: Выделить всёРазвернуть
#include // Этой строкой мы указали плагину использовать амх мод


Полный список заголовочных фалов вы можете найти в вышеуказанной папке.
(Пояснения для любопытных: при компиляции в плагин будут добавляться объявления только тех функций, которые были непосредственно использованы в коде, так что бвают случаи, когда приходится подключать заголовочный файл ради одной полезной функции)

4. Создание новых переменных
Для создания переменных используется зарезервированное слово NEW. Следующих основных типов:
1. Целый тип
2. Вещественный тип
3. Булев тип (значение может быть только ‘true’ или ‘false’)
Пример:
Код: Выделить всёРазвернуть
new z
new Float:f
new bool:some_bool= true /* Объявляем логическую переменную и присваиваем ей значение «правда» */

5. Добавление констант (define, const)
Константа – переменная, значение которой нельзя изменять.
Задать к. можно 2 способами:

1) Через дефайн (тоже директива препроцессора, при компиляции указанные здесь константы заменяются в коде соответствующим значением. ВНИМАНИЕ! Данная запись фактически не является константой):
Код: Выделить всёРазвернуть
#define CONST 5
#define FCONST 5.0
#define SCONST ‘5’



2) Или через new:
Код: Выделить всёРазвернуть
new const CONST2 = 5 // Значение задать обязательно!!!!


По правилам программистской этики принято писать имена констант заглавными буквами, но никто не заставляет вас этому следовать.

6. Массивы
Массив - это структура данных одного типа, распологающихся в памяти в определенном порядке

Массив задается следующим образом:
Код: Выделить всёРазвернуть
new имя_массива[размерность_массива]


индексация элементов начинается с 0 и заканчивается числом размерность_массива - 1
обращение к элементам массива аналогично обращению к переменной, только необходимо указывать индекс элемента в квадратных скобках:
Код: Выделить всёРазвернуть
new a[10]
...
a[0] = 0 // Здесь допустимые индексы от 0 до 9


Массивы могут быть 3х основных типов указанных выше по тексту.
Рассмотренные в примере массивы называются одномерными. Но, технически, массивы могут быть любой размерности - за каждую новую отвечает пара квадратных скобок:
new b[10][10] // Двумерный массив размерностью 10х10 (100 элементов)

Массив может быть сразу инициализирован при объявлении:
Код: Выделить всёРазвернуть
new a[10] = {0,1,2,3,4,5,6,7,8,9}


7. Строки (неполная информация)
Строка по своей сути является массивом символов и задается таким же образом. Массив строк по своей сути является двумерным массивом. Строки так же могут быть инициализированы при объявлении:
Код: Выделить всёРазвернуть
new name[32]
new str[] = "Some string, huh"
new strs[5][] = {"111","222","333","444","555"}

Автор: AlMod

Re: Основы Pawn

СообщениеДобавлено: 15 фев 2009, 12:37
AlMod
Может напишешь чья статья, а? Где мое авторство?

Re: Основы Pawn

СообщениеДобавлено: 16 фев 2009, 16:51
Dimanok
AlMod писал(а):Может напишешь чья статья, а? Где мое авторство?

так так так .....про тебя мне не чего не известно...статью писал JGHG так что не надо тут....

Re: Основы Pawn

СообщениеДобавлено: 16 фев 2009, 18:50
AlMod
Я не знаю, че за JGHG выдал мою статью за свою, но вот оригинал на моем сайте
http://amxmodx.ucoz.ru/publ/3-1-0-2

Первоначально статья писалась для portal.san.ru

P.S. Причем тобой содрана именно измененная версия, что меня если честно поражает

-----------------------------------------------------------------------------------------------------------

Все теперь претензий нет :)