Setproperty — различия между версиями
Материал из Pro-Pawn Wiki
(Новая страница: «{{DISPLAYTITLE:setproperty}} {{Description | Создаёт новое свойство или изменяет значение уже существующего…») |
|||
Строка 27: | Строка 27: | ||
| Название свойства, указанное в параметре <code>name</code>, одновременно является и строковым значением свойства, возвращаемым в массиве <code>string</code>. Если нужно создать свойство, хранящее в себе строковое значение, вместо названия нужно отличать его от других свойств по ID (параметр <code>id</code>) или значению (параметр <code>value</code>). | | Название свойства, указанное в параметре <code>name</code>, одновременно является и строковым значением свойства, возвращаемым в массиве <code>string</code>. Если нужно создать свойство, хранящее в себе строковое значение, вместо названия нужно отличать его от других свойств по ID (параметр <code>id</code>) или значению (параметр <code>value</code>). | ||
| Все свойства хранятся в структуре типа "список". Чем больше создано свойств, тем дольше будет проходить процесс доступа к ним в среднем. | | Все свойства хранятся в структуре типа "список". Чем больше создано свойств, тем дольше будет проходить процесс доступа к ним в среднем. | ||
+ | }} | ||
+ | {{NotePawnBug | ||
+ | | {{NotePropertiesClearOnScriptUnload}} | ||
}} | }} | ||
{{Example}} | {{Example}} |
Текущая версия на 10:15, 18 июля 2018
Описание:
Создаёт новое свойство или изменяет значение уже существующего свойства.
Параметры:
(id=0, const name[]="", value=cellmin, const string[]="") |
id | ID свойства (необязательный параметр). Может использоваться в качестве ID скрипта в хост-приложениях, поддерживающих работу сразу нескольких скриптов. |
const name[] | Название, по которому функция будет искать свойство (необязательный параметр). |
value | Значение свойства (необязательный параметр). Если название (name ) не указано, функция будет искать свойство по ID и значению.
|
const string[] | Cтроковое значение свойства (необязательный параметр). |
Возвращаемое значение:
Предыдущее значение свойства (ячейка Pawn), если свойство существовало ранее, или 0, если оно только создано.
При выгрузке/перезагрузке гейммода или фильтрскрипта удаляются все свойства, даже те, которые были созданы другими скриптами. |
Пример использования:
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);
}
См. также: