MSL: событие OnPrivateRequest

Скриптовое событие MyChat Server: OnPrivateRequest

Событие, возникающее при попытке открытия приватного диалога между двумя пользователями.

 

Шаблон события

function OnPrivateRequest(iCID, iUIN, iUINTo, iRole, iRoleReciever, iTask: integer): boolean;
begin
  // your own code

  result := true;
end;

begin

end.

Вместо комментария может быть любой ваш код.

 

Описание параметров

Параметр

Тип

Значение

iCID

integer

Connection ID клиента, уникальный сеансовый идентификатор в онлайн-структуре сетевых подключений к серверу;

iUIN

integer

уникальный идентификатор инициатора приватного диалога (число >=0);

iUINTo

integer

уникальный идентификатор получателя сообщения (число >=0);

iRole

integer

индекс группы прав отправителя;

iRoleReciever

integer

индекс группы прав получателя;

iTask

integer

тип задачи: 0 — стандартное приватное сообщение, 1 — попытка отправки файлов из программы, 2 — попытка отправки файлов из контекстного меню Проводника (Explorer).

 

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

По умолчанию функция должна возврашать true. Если вы присвоите результату функции false — приват не откроется, никаких сообщений при этом выдано не будет.

 

Пример

function OnPrivateRequest(iCID, iUIN, iUINTo, iRole, iRoleReciever, iTask: integer): boolean;
begin
  if (iUIN = 6) and (iUINTo = 3) then begin
    mSendCustomMsgToClientConsoleByCID(iCID, 'Вам запрещено общаться с этим человеком.' + CRLF +
                                             'Все вопросы к Яндексу :)',
                                             'Error', true, true, 74); 
    result := false;
  end else result := true;
end;

begin

end.

Скрипт отслеживает, какой пользователь пытается открыть сеанс приватного разговора, и если разговор начинает пользователь с UIN 6, а его оппонент — пользователь с UIN 3, то попытка приватного разговора пресекается и никаких сообщений ни одному, ни другому пользователю не выдаётся.

 

Однако в примере мы дополнительно отправляем пользователю, который пытался начать разговор, специальное системное сообщение, чтобы уведомить его о том, что приватный разговор не начался потому, что администратор сервера запретил это.

 

Пользовательское сообщение в консоли MyChat Client, отправленное из серверного скрипта

 

Ещё посмотреть

CRLF

mSendCustomMsgToClientConsoleByCID