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