Скриптова подія MyChat Server: OnUserStateChange, зміна статусу користувача
Подія генерується під час зміни статусу користувача. Наприклад, коли він підключається до сервера, відключається від нього, змінює свій статус вручну ("Вільний" / "Не турбувати") або автоматично, коли немає активності ("Немає на місці").
У роботі зі статусами користувачами є багато нюансів, які так чи інакше "розрулює" сервер, тому що онлайн може бути відразу кілька пристроїв, залогінених під одним і тим самим обліковим записом. Наприклад, Windows-застосунок, підключення у Web-браузері та програми для iPhone. Сервер відстежує всі поєднання статусів кожного конкретного підключення та виводить якесь середнє за складним алгоритмом.
Шаблон події
procedure OnUserStateChange(const iUIN, iState: integer);
begin
// your own code
end;
begin
end.
Замість коментаря може бути будь-який ваш код.
Опис параметрів
Параметр |
Тип |
Значення |
iUIN |
integer |
числовий ідентифікатор користувача. |
iState |
integer |
тип статусу користувача. |
Приклад
const
WATCH_USER_UIN = 3;
INFORM_USER_UIN = 6;
procedure OnUserStateChange(const iUIN, iState: integer);
var
s: string;
begin
if iUIN = WATCH_USER_UIN then begin
case iState of
-1: s := 'offline';
0: s := 'free, online';
1: s := 'away, online';
2: s := 'do not disturb, online';
end;
mSendPrivateMessage(0, INFORM_USER_UIN,
'User ' + mGetUserAttribute(WATCH_USER_UIN, 'DisplayName') + ' is ' + s, 1);
end;
end;
begin
end.
Скрипт відстежує зміни статусу конкретного користувача та повідомляє про це іншу людину в чаті приватним повідомленням від імені вбудованого робота Elisa (UIN 0).