Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
38 lines (30 sloc) 3.53 KB

item.has_flag()

Функция item.has_flag проверяет, имеет ли «выделенный» предмет определенный флаг.

Параметры функции

flag

Тип number. Обязательный параметр. Значение флага.

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

has_flag

Тип number. Имеет ли предмет определенный флаг или нет. true, если имеет; false, если не имеет, если предмет не был «выделен» или если параметр не является числом.

Примечания

Функция не может быть вызвана анонимно.

Если точнее, то эта функция делает проверку по битовой маске. Существуют следующие коды флагов:

Флаг Название флага Назначение
1 ITEM_FLAG_REFINEABLE Позволяет предмету перетачиваться
2 ITEM_FLAG_SAVE неизвестно
4 ITEM_FLAG_STACKABLE Позволяет складывать предметы в пачки
8 ITEM_FLAG_COUNT_PER_1GOLD неизвестно
16 ITEM_FLAG_SLOW_QUERY неизвестно
32 ITEM_FLAG_UNUSED01 Этот флаг не используется сервером
64 ITEM_FLAG_UNIQUE неизвестно
128 ITEM_FLAG_MAKECOUNT неизвестно
256 ITEM_FLAG_IRREMOVABLE Предположительно, этот флаг запрещает игроку снимать предмет после того, как он был надет, как, например, сделано с некоторыми перчатками вора и кольцами опыта — они будут надеты до тех пор, пока не выйдет время
512 ITEM_FLAG_CONFIRM_WHEN_USE Предположительно, при использовании предмета у игрока спросят, действительно ли он хочет использовать сей предмет
1024 ITEM_FLAG_QUEST_USE неизвестно
2048 ITEM_FLAG_QUEST_USE_MULTIPLE неизвестно
4096 ITEM_FLAG_QUEST_GIVE неизвестно
8192 ITEM_FLAG_LOG В syslog при использовании и выбрасывании предмета с этим флагом будут появляться логи
16384 ITEM_FLAG_APPLICABLE неизвестно

Битовая маска получается путем сложения всех необходимых кодов. Например, маска 5 означает, что предмет может перетачиваться (1) и складываться в пачки (4), итого 1 + 4 = 5. Каждая битовая маска уникальна, поэтому по маске можно безошибочно определить, имеет ли она определенный флаг или нет. Например, если параметр flag у предмета равен 5, то вызвав функцию item.has_flag(4) можно безошибочно узнать, складывается ли предмет в пачки или нет.

Эта функция работает только с «выделенными» предметами. Подробнее тут: item.

You can’t perform that action at this time.