getproperty
Материал из Pro-Pawn Wiki
Описание:
Получает значение свойства.
Параметры:
(id=0, const name[]="", value=cellmin, string[]="") |
id | ID свойства (необязательный параметр). Может использоваться в качестве ID скрипта в хост-приложениях, поддерживающих работу сразу нескольких скриптов. |
const name[] | Название, по которому функция будет искать свойство (необязательный параметр). |
value | Значение свойства (необязательный параметр). Если название (name ) не указано, функция будет искать свойство по ID и значению.
|
string[] | Массив для сохранения строкового значения свойства (необязательный параметр). |
Возвращаемое значение:
Значение свойства (ячейка Pawn). Строковое значение возвращается косвенно через массив
string
.
Примечание |
Функция производит поиск свойства по комбинации из ID и названия (параметры id и name соответственно). Если название не указано, поиск производится по комбинации из ID и значения (параметр value ).
Название свойства, указанное в параметре name , одновременно является и строковым значением свойства, возвращаемым в массиве string . Если нужно создать свойство, хранящее в себе строковое значение, вместо названия нужно отличать его от других свойств по ID (параметр id ) или значению (параметр value ).
Функция сохраняет строку в массиве string в упакованном виде. Некоторые функции SA-MP, такие как printf() и format() , не умеют правильно работать с упакованными строками, поэтому вам может понадобиться распаковать строку с помощью strunpack() , прежде чем использовать её в одной из упомянутых функций.
Все свойства хранятся в структуре типа "список". Чем больше создано свойств, тем дольше будет проходить процесс доступа к ним в среднем. |
Пример использования:
main()
{
// Создадим свойство с названием "prop1", ID равным нулю и значением 10.
setproperty(0, "prop1", 10);
// Создадим ещё одно свойство, на этот раз для хранения строки ("abcd123").
// Поскольку нужно сохранить строку, название указывать не следует.
setproperty(1, "", 23, "abcd123");
new string[10];
new value;
// Получим и выведем значение свойства "prop1".
value = getproperty(0, "prop1");
// Вывод: "prop1: 10"
printf("prop1: %d", value);
// Получим строковое значение из другого свойства.
// Поиск производится по ID и одиночному (не строковому) значению -
// указываем их те же, что и в вызове setproperty() при создании свойства.
getproperty(1, "", 23, string);
// Также не следует забывать, что полученная строка будет упакованная
// и её придётся распаковать, чтобы она правильно выводилась через printf().
strunpack(string, string);
// Вывод: "Безымянное свойство<1, 23>: "abcd123""
printf("Безымянное свойство<1, 23>: \"%s\"", string);
}
{
// Создадим свойство с названием "prop1", ID равным нулю и значением 10.
setproperty(0, "prop1", 10);
// Создадим ещё одно свойство, на этот раз для хранения строки ("abcd123").
// Поскольку нужно сохранить строку, название указывать не следует.
setproperty(1, "", 23, "abcd123");
new string[10];
new value;
// Получим и выведем значение свойства "prop1".
value = getproperty(0, "prop1");
// Вывод: "prop1: 10"
printf("prop1: %d", value);
// Получим строковое значение из другого свойства.
// Поиск производится по ID и одиночному (не строковому) значению -
// указываем их те же, что и в вызове setproperty() при создании свойства.
getproperty(1, "", 23, string);
// Также не следует забывать, что полученная строка будет упакованная
// и её придётся распаковать, чтобы она правильно выводилась через printf().
strunpack(string, string);
// Вывод: "Безымянное свойство<1, 23>: "abcd123""
printf("Безымянное свойство<1, 23>: \"%s\"", string);
}
См. также: