MyChat Scripts: функция mGetUINByCID, получить UIN пользователя по номеру соединения

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"): Скрипт выполнен успешно.

 

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

Fetch

Inc

IntToStr

Length

mGetCIDSByClientType

mLogScript

StrToInt64

Класс TStringList