PDA

Просмотр полной версии : [Native] getproperty



Daniel_Cortez
22.05.2014, 19:47
Описание:

Получает из виртуальной машины значение указанного свойства.

Параметры:

id - ID виртуальной машины (по умолчанию 0). Желательно пропускать этот параметр (см. пример ниже) либо оставлять его равным нулю, т.к. в SA:MP используется всего одна виртуальная машина.
name - название свойства (используется только если значение свойства не является строковым).
value - уникальный идентификатор свойства. Обычно это хеш для хранения строкового значения, для свойств с целочисленными значениями этот параметр не нужен.
string[] - переменная для сохранения в ней значения строкового типа (используется, если значение свойства имеет строковый тип).


Возвращаемое значение:

Значение свойства или 0, если указанного свойства не существует. Кроме того, если в свойстве хранится значение строкового типа, функция возвращает это значение через массив string.

Примечения:
При получении значений свойств строкового типа размер строковой переменной не указывается, из-за чего может произойти выход за пределы массива.
Внимательно относитесь к вопросу задания размеров строковой переменной перед получением в неё значения.
Строки возвращаются в упакованном виде. Некоторые функции, такие как format и printf, неправильно обрабатывают упакованные строки, поэтому их следует предварительно распаковать с помощью функции strunpack.


Пример использования:

Получение значения свойства целочисленного типа:

// создаём свойство "my_int1" со целочисленным значением 23
setproperty(_, "my_int1", 23);
// получаем значение свойства и выводим его на экран
printf("my_int1 = %d", getproperty(_, "my_int1", _, _));

Получение значения свойства строкового типа (для получения хеша имени свойства используется y_stringhash (http://u.to/vzzCBg)):

// создаём свойство "my_string1" со строковым значением "Sample text"
new hash = YHash("my_string1", true, hash_fnv1);
setproperty(_, _, hash, "Sample text");
// получаем значение свойства и выводим его на экран
new text[32];
getproperty(_, _, hash, text);
print(text);

См. также:

[Native] setproperty (http://pro-pawn.ru/showthread.php?8911)
[Native] existproperty (http://pro-pawn.ru/showthread.php?8930)
[Native] deleteproperty (http://pro-pawn.ru/showthread.php?8931)



Статью подготовил: Daniel_Cortez (http://pro-pawn.ru/member.php?u=100)

Специально для Pro-Pawn.ru (http://www.pro-pawn.ru)
Копирование данной статьи на других ресурсах без разрешения автора запрещено!