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

Description: Основы скриптинга
Moderator: SJplayer

Дим M
Topic author, Администратор
Администратор
Avatar
Дим M
Topic author, Администратор
Администратор
Posts: 1613
Joined: 5 Apr 2013
With us: 11 years 8 months

#1by Дим » 7 Apr 2013, 14:53

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

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

Пример

Code: Select all

new integer = 1337; // Объявляет новую целочисленную переменную с именем "integer" и устанавливает ее значение в "1337".
new integer; // Объявляет новую целочисленную переменную с именем "integer" с автоматическим значением "0".
Возможное использование
if(integer == 1337) { /* Сделать что-либо */ 


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

Пример

Code: Select all

new Float:float; // Объявляет новую пустую вещественную перменную с именем "float".
new Float:float = 2.0; // Объявляет новую вещественную перменную с именем "float" и устанавливает ее значение в "2.0".
Возможное использование
SetPlayerPos
(playerid, float, 2.0, 1400.0);


Глобальные переменные

Они объявляются в начале скрипта и они доступны всему скрипту, т. е. обратиться к переменной можно из любой автовызываемой функции. Локальные переменные объявляются в теле автовызываемой функции и они доступны только в внутри этой функции, из другой функции скрипта, ее вызвать нельзя.

Code: Select all

new pawn// это глобальная переменная
public OnGameModeInit()
{
new 
samp// это локальная переменная
return 1;


Строка – это место для хранения букв или символов. Строки должны быть помещены в массив, так как каждая ячейка может содержать букву. Чтобы объявить строковую переменную, нужно написать следующее:

Code: Select all

new pawn[5] = “samp”


Таким образом мы создали строковую переменную и присвоили ей значение «samp». Число в квадратных скобках означает количество ячеек выделенное для строки. Почему 5 ячеек, когда слово состоит из 4 букв, потому что вы должны указать экстра-ячейку для идентификатора строки – 0. Тоесть цифра в квадратных скобках всегда больше значения переменной на единицу. Переменные могут быть предназначены как для всех игроков, так и для конкретного игрока. Если мы хотим сделать переменную индивидуальной для каждого игрока, то мы пишем так, пишу для всех типов переменных:

Code: Select all

new pawn[MAX_PLAYERS] = 25//переменная целочисленного типа для каждого игрока
new Float:pawn[MAX_PLAYERS] = 25.4//переменная вещественного типа для каждого игрока
new bool:pawn[MAX_PLAYERS] = true//переменная логического типа для каждого игрока 


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

Code: Select all

new pawn[MAX_VEHICLES] = 25//переменная целочисленного типа для каждого транспорта
new Float:pawn[MAX_VEHICLES] = 25.4//переменная вещественного типа для каждого транспорта
new bool:pawn[MAX_VEHICLES] = true//переменная логического типа для каждого транспорта 


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

Code: Select all

pawn[playerid] = 5// устанавливаем значение переменной для игрока на 5
pawn[vehicleid] = 5// устанавливаем значение переменной для транспорта на 5 
[center]i love you [s]mxIni[/s] Mysql[/center]


Return to “Основы скриптинга”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest