-
_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
-
pc.send_block_mode()
Функция pc.send_block_mode блокирует определенные опции игрока.
Параметры функции
options
Тип number. Обязательный параметр. Битовая маска, образованная из сложения кодов опций. Если передать число 0, то все опции будут разблокированы.
Примечания
Функция не может быть вызвана анонимно.
Битовая маска получается путем сложения всех кодов опций, которые необходимо заблокировать:
| Код | Название флага | Название опции |
|---|---|---|
| 1 | block_exchange | Блокировка приема предложения торговли |
| 2 | block_party_invite | Блокировка приема приглашений в группу |
| 4 | block_guild_invite | Блокировка приема приглашений в гильдию |
| 8 | block_whisper | Блокировка приема и отправки личных сообщений |
| 16 | block_messenger_invite | Блокировка приема приглашений стать друзьями |
| 32 | block_party_request | Блокировка приема просьб впустить в группу, где состоит игрок |
На самом деле эта функция не блокирует опции. Она лишь изменяет положение кнопочек (нажата или не нажата) в окне настроек. Блокировкой занимаются квестовые флаги. Изменение опций происходит, когда игрок нажимает в клиенте кнопки опций. После каждого нажатия они отправляют на сервер команду /setblockmode options Python-функцией net.SendChatPacket(). Также блокировать опции можно и через квест, изменяя необходимые системные флаги с помощью функции pc.setqf(). Проще говоря, вызвав только эту функцию, опции у игрока не изменятся. Изменится лишь положение кнопочек в окне настроек, но по факту настройки изменены не будут. Чтобы настройки были изменены, вместе с этой функцией надо вызвать функцию pc.setqf() (если вызывается внутри квеста game_option) или pc.setf(), в качестве параметра flag_name передать значение из столбца «Название флага», а в качестве параметра value передать 1, чтобы заблокировать опцию и 0, чтобы разблокировать. Значения квестовых флагов привязаны к квесту game_options.
Объяснения на пальцах: битовая маска, равная 1, заблокирует опцию торговли. Если маска равна, допустим, 3, то заблокируется и торговля (+1), и приглашения в группу (+2). Если маска равна 25, то заблокируются предложения дружбы (+16), личные сообщения (+8) и торговля (+1).
Пример кода, блокирующий только приглашения в группу и торговлю:
pc.send_block_mode(3)
pc.setf("game_options", "block_exchange", 1) -- блокируем торговлю
pc.setf("game_options", "block_party_invite", 1) -- блокируем приглашения в группу