Роботы, плагины и скрипты к чату MyChat. Разработка альтернативных клиентов и различных утилит. Технические вопросы по программированию, замечания и предложения по развитию API
Аватара пользователя
debobaher
Здравствуйте!

Подскажите, пожалуйста, почему происходит ошибка в скрипте:
Код: Выделить всё
function OnUserLogin(iCID, iLoginUIN, iLoginState: integer; sLoginIP, sLoginMAC, sLoginHardwareID, sLoginCompName, sLoginVersion, sLoginDomain, sAuthService, sClientType, sRemoteOS: string): boolean;
var
   iCID2: integer;
begin
   // Проверяем есть ли уже подключение от этого пользователя. Если есть - закрываем его
    if (mIsUINOnline(iLoginUIN)) then begin
       iCID2 := mGetUserCID(iLoginUIN);
        mLogScriptToDisk('Login '+IntToStr(iLoginUIN)+' from OS: ['+sRemoteOS+']. Connection: '+IntToStr(iCID)+'. Found else connection: '+IntToStr(iCID2));
       if ((iCID2 > 0) and (iCID2 <> iCID)) then begin
           mHaltMyChatClient(iCID2);
        end;
   end;
   
   result := true; // по-умолчанию пускаем
end;

Лог показывает, что mGetUserCID() возвращает "-1", хотя этот пользователь точно уже подключён к серверу и залогинен, и работает. Вот выводв лог:
Код: Выделить всё
Скрипт "checkUsers", сообщение: "Login 139 from OS: []. Connection: 81502. Found else connection: -1"

Также можно заметить, что в обработчик события не попала версия операционной системы. Это нормально?

От скрипта я хочу:
  1. Получить список подключений пользователя, который сейчас пытается залогиниться.
  2. Закрыть старые подключения (на данный момент).
  3. В последствии: пройтись по списку подключений и закрыть все, кроме подключений с Android и iOS.
Аватара пользователя
Алексей Пикуров
Добрый день.
Функция mGetUserCID устарела и её нужно заменить. В условиях мультилогина она не будет работать корректно.
Также можно заметить, что в обработчик события не попала версия операционной системы. Это нормально?

Не нормально, надо это тоже проверить.

Ожидайте, я дополню API, эта функция будет удалена, а новая — добавлена. Потом помогу вам со скриптом.
Аватара пользователя
debobaher
Большое спасибо, Алексей!
Буду ждать.
Аватара пользователя
Алексей Пикуров
Сделали функцию, ожидайте обновления, уже скоро.
Аватара пользователя
debobaher
Большое спасибо!
Жду :)