Скриптовое событие 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, то попытка приватного разговора пресекается и никаких сообщений ни одному, ни другому пользователю не выдаётся.
Однако в примере мы дополнительно отправляем пользователю, который пытался начать разговор, специальное системное сообщение, чтобы уведомить его о том, что приватный разговор не начался потому, что администратор сервера запретил это.