pc.send_block_mode

не может быть вызвана анонимно
Функция pc.send_block_mode блокирует определенные опции игрока.

Параметры

number options

Битовая маска, образованная из сложения кодов опций. Если передать число 0, то все опции будут разблокированы.

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

Данная функция ничего не возвращает. Другими словами, она всегда возвращает nil.

Примеры использования

  1. #7

Примечания

Битовая маска получается путем сложения всех кодов опций, которые необходимо заблокировать:

КодНазвание флагаНазвание опции
1block_exchangeБлокировка приема предложения торговли
2block_party_inviteБлокировка приема приглашений в группу
4block_guild_inviteБлокировка приема приглашений в гильдию
8block_whisperБлокировка приема и отправки личных сообщений
16block_messenger_inviteБлокировка приема приглашений стать друзьями
32block_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).

Пример кода, блокирующий только приглашения в группу и торговлю:

-- Lua - 0.006 s. (36.84 KB/s)
pc.send_block_mode(3) pc.setf("game_options", "block_exchange", 1) -- блокируем торговлю pc.setf("game_options", "block_party_invite", 1) -- блокируем приглашения в группу
175