Основы скриптинга (RU)

From SA-MP Wiki

Jump to: navigation, search

Contents

Основы скриптинга

Типы переменных

Переменные - это места, куда вы можете хранить данные. В PAWN имена переменных чувствительны к регистру, поэтому переменная "lolhax" не то же самое, что и "LOLHAX" или "lOLhAx" к примеру; имена переменных должны также начинаться с буквы алфавита (A-Z)

Целочисленный тип

Этот тип переменной по умолчанию, он используется для хранения целых чисел. Вы не должны использовать числа с десятичной точкой, так как они не целые числа, даже в том случае, когда числа после десятичной точки - все нули (например, 5.00), все равно это технически не целое число.

Пример

new integer = 1337; // Объявляет новую целочисленную переменную с именем "integer" и устанавливает ее значение в "1337".
new integer; // Объявляет новую целочисленную переменную с именем "integer" с автоматическим значением "0".


Возможное использование

if(integer == 1337) { /* Сделать что-либо */ }


Вещественный тип

Переменные вещественного типа могут хранить десятичные числа, так называемые числа "с плавающей точкой".

Пример

new Float:float; // Объявляет новую пустую вещественную переменную с именем "float".
new Float:float = 2.0; // Объявляет новую вещественную переменную с именем "float" и устанавливает ее значение в "2.0".

Возможное использование

SetPlayerPos(playerid, float, 2.0, 1400.0);


Строка

Строки - это места для хранения символов (букв и/или символов). Строки должны быть помещены в массив, так что каждая ячейка может содержать букву, вы должны указать экстра-ячейку для идентификатора строки - "0".

Примеры

new string[7] = "String"; // 7 - это число ячеек, необходимых для хранения каждой буквы в строке, в том числе и идентификатора.

new string[7];
string[0] = 'S';
string[1] = 't';
string[2] = 'r';
string[3] = 'i';
string[4] = 'n';
string[5] = 'g';

string[6] = 0;


Обычное использование

new string[255];


Возможное использование

SendClientMessage(playerid, 0xFFFFFFAA, string);


Логический тип

Используется для результатов "истина" (true) или "ложь" (false). True эквивалентен "1" и false эквивалентен "0", новые переменные этого типа автоматически принимают значение false.

Примеры

new bool:boolname;

Возможное использование

if(boolname == true) { /* Сделать что-либо */ }


Массив

Массивы - это большие места для хранения данных, виртуальные таблицы. Вы можете иметь одномерные и многомерные массивы. Вам нужно создать новый массив вещественного или логического типа так же, как вы создаете переменные, не массивы, использую предопределенные имена тегов (bool:, Float:).

Заметьте, что в массиве вы НЕ МОЖЕТЕ использовать последний столбец или линию

Одномерный массив

Одномерный массив - это один столбец, разбитый на указанное число ячеек.

new onedimensionalarray[CELLS];


Пример

new onedimensionarray[5] = {4, 6, 7, 9, 2}; // "5", написанная в [], указывает, сколько ячеек выделено для хранения данных.

Возможное использование

new randomnumber = random(sizeof(onedimensionalarray)); // Получает случайное число для ячейки.
printf("Random number is: %d", onedimensionalarray[random]); // Использует случайное число для выбора ячейки.


Двумерный массив

Двумерный массив позволяет вам иметь много строк и столбцов.

new twodimensionalarray[ROWS][COLLUMNS];


Пример

new Float:twodimensionarray[4][3] = {

{3.0, 4.5, 5.76}, // Столбец номер 0
{10.85, 76.34, 23.54}, // Столбец номер 1
{2.32, 10.23, 80.2}, // Столбец номер 2
{6.6666, 45.3, 32.64} // Столбец номер 3

};

Возможное использование

SetPlayerPos(playerid, twodimensionalarray[2][2], twodimensionalarray[3][1], twodimensionalarray[2][0]);


Трехмерный массив - строка двумерных массивов

new treedimensionalarray[ROWS][COLLUMNS][Z];


Строка двумерных массивов

new twodimensionalarraystring[ROWS][COLLUMNS][255]; // для строки в 256 байт


Условные конструкции

Условные конструкции позволяют Вам посмотреть, удовлетворяют ли данные условиям, а затем в зависимости от результата выполнить код. Наиболее распространенный тип условных конструкций - if/else-конструкция, но помимо нее есть много других: case, цикл for и цикл while.

if/else

if/else-конструкции позволяют вам посмотреть, удовлетворяют ли данные условию при помощи операторов, и если это так, то выполнить код.

Операторы сравнения

Операторы сравнения более всего используются в выражениях if/else; они проверяют соотношение между двумя наборами данных перед выполнением кода.

Оператор Значение Использование
== Левое равно правому if(Left == Right)
!= Левое не равно правому if(Left != Right)
> Левое больше, чем правое if(Left > Right)
>= Левое больше или равно правому if(Left >= Right)
< Левое меньше, чем правое if(Left < Right)
<= Левое меньше или равно правому if(Left <= Right)
Оператор Значение Использование
&& И if(Left && Right)
|| ИЛИ if(Left || Right)
 ! НЕ if(!Variable)
НЕ ИЛИ if(!(Left || Right))
НЕ И if(!(Left && Right))
ИЛИ ИЛИ if((Left && !Right)||(!Left && Right))
НЕ ИЛИ ИЛИ if(!((Left && !Right)||(!Left && Right)))

Пример

if(lvalue > rvalue) { /* Выполнить код */ }


В этом примере если условие между lvalue и rvalue истинно, выполнится код. Условие представляет собой - если lvalue больше, чем rvalue...

Personal tools
Navigation
Toolbox
In other languages