MyChat Scripts: функция mGetUINByCID, получить UIN пользователя по номеру соединения
"Для разработчиков", "Серверные скрипты", "Описание функций", "Пользователи", "mGetUINByCID".
Получить идентификатор онлайн-пользователя (UIN) по его номеру подключения (CID).
Синтаксис
function mGetUINByCID(const iCID: int64): integer;
Параметры и возвращаемые значения
Параметр |
Тип |
Значение |
iCID |
int64 |
номер онлайн-подключения к серверу. |
Результат функции
UIN пользователя, если CID правильный, -1 — если подключения с таким номером нет.
Пример
Скрипт подсчитывает количество подключений всех онлайн-пользователей и выводит суммарную информацию в консоль.
procedure PrintCount(sUIN: string; iCount: integer);
begin
if iCount > 0 then mLogScript(IntToStr(iCount) + ' connections', 'UIN ' + sUIN);
end;
var
sCIDList, sUIN: string;
i, iCount: integer;
iCID: int64;
SL: TStringList;
begin
SL := TStringList.Create;
SL.Sorted := true;
SL.Duplicates := dupAccept;
sCIDList := mGetCIDSByClientType('any');
while length(sCIDList) > 0 do begin
iCID := StrToInt64(Fetch(sCIDList, ','));
SL.Add(IntToStr(mGetUINByCID(iCID)));
end;
if SL.Count > 0 then begin
sUIN := '';
for i := 0 to SL.Count - 1 do begin
if sUIN <> SL[i] then begin
PrintCount(sUIN, iCount);
sUIN := SL[i];
iCount := 1;
end else inc(iCount);
end;
PrintCount(sUIN, iCount);
end;
SL.Free;
end.
Результат работы скрипта
[13:25:25] (Log "mGetUINByCID"): [UIN 1] 5 connections
[13:25:25] (Log "mGetUINByCID"): [UIN 6] 1 connections
[13:25:25] (Run "mGetUINByCID"): Время выполнения скрипта: 5 мс
[13:25:25] (Run "mGetUINByCID"): Скрипт выполнен успешно.