Функции поиска прототипа
INTEGER GetProtoID(STRING <ProtoLib>, STRING <Prototype>[, STRING <Field>, VARIANT <Value>])
Функция ищет прототип с именем <Prototype>
в библиотеке прототипов с именем <ProtoLib>
и возвращает его ID или 0, если такого прототипа в библиотеке нет. Если заданы дополнительные параметры <Field>
и <Value>
, то если прототипа с именем <Prototype>
в библиотеке <Prototype>
не найдено, функция пытается найти прототип в той же библиотеке, у которого значение поля с именем <Field>
равно <Value>
. В качестве <Field>
можно указать ProtoMacro или GUID. Такая ситуация возможна, если пользователь переименовал прототип.
Возможные значения имен полей <Field>
:
- ProtoMacro — Имя файла макропрограммы создания прототипа — строковое поле
INTEGER GetProtoInfo(STRING <ProtoLib>, INT <ProtoID>, ARRAY <info>)
(с 18.02.2020)
Функция возвращает информацию о прототипе с ID <ProtoID>
в библиотеке прототипов с именем <ProtoLib>
.
Выходные параметры:
<info[1]>
— название прототипа (строка);<info[2]>
— макрокоманда создания прототипа (строка);<info[3]>
— файл с картинкой к прототипу (строка).
Функция возвращает число:
- -2 — нет прототипа с данным ID;
- -1 — нет такой протобиблиотеки;
- 0 — ошибка;
- > 0 — количество заполненных элементов в массиве
<info>
Поиск параметра прототипа по типу[править | править код]
Данная функция реализована только для К3-Мебель |
INT GetProtoPar(INT <ProtoID>, {INT <ProtoLibID> | STRING <ProtoLibName>}, INT <ParamType>, STRING <ParNameArray>)
Функция GetProtoPar находит среди параметров прототипа с ID = <ProtoID>
в библиотеке с номером <ProtoLibID>
или именем <ProtoLibName>
все параметры, тип которых равен <ParamType>
. По результатам этого функция создает массив с именем <ParNameArray>
и заполняет его именами найденных параметров.
Функция возвращает количество найденных параметров. Если параметров не найдено, функция возвращает 0 и массив с именем <ParNameArray>
не создает. Если прототипа с ID=<ProtoID>
в библиотеке <ProtoLibName>
(<ProtoLibID>
) не существует, функция возвращает -1.
В качестве типа параметров <ParamType>
может выступать ID группы подстановки или:
- 1 — размер
- 2 — количество
- 3 — значение да/нет
- 4 — набор значений
- 5 — индекс текстурного материала
Пример использования:
ProtoId=63; //-- ID прототипа для поиска параметров LibName="Shkaf"; //-- Название библиотеки для поиска параметров libid=1; //-- ID библиотеки (нужно лиьбо ID, либо название) ParamType=17; //-- Тип параметра прототипа arrayname="arrn"; //-- Имя массива для выходных данных num=GetProtoPar(ProtoId,libid,ParamType,arrayname); putmsg(num); putmsg(arrn); exit;