-
_images
-
ru
-
_articles
-
_quests
-
_triggers
-
affect
-
arena
-
ba
-
building
-
d
-
dance_event
-
DragonLair
-
ds
-
forked
-
game
-
global
-
guild
-
highscore
-
horse
-
item
-
marriage
-
member
-
mgmt
-
mob
-
pc
-
q
-
indexed_articles
-
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.