MyChat Scripts: функция mGetConfUsersList, получить список пользователей конференции

MyChat Scripts: функция mGetConfUsersList, получить список пользователей конференции

"Для разработчиков", "Серверные скрипты", "Описание функций", "Конференции", "mGetConfUsersList".

 

Получить список пользователей указанной текстовой конференции, которые в данный момент подключены к серверу (онлайн).

 

Синтаксис

function mGetConfUsersList(const iUID: integer): string;

 

Параметры и возвращаемые значения

Параметр

Тип

Значение

iUID

integer

числовой идентификатор конференции (UID).

 

Результат функции

Список UIN-ов пользователей, разделённые запятыми. Если UID указан неправильно или конференции не существует — вернётся пустая строка.

 

Пример

Скрипт на событие OnConfMessage, работает только в конференции "main", отзывается на команду "!spin".

// ---------------------------------------
// Script created by Alexey Pikurov (support@nsoft-s.com)
// 13.01.2021 15:03:15
// ---------------------------------------
const
  CONF_NAME = 'main';
  ACTIONS_COUNT = 58;
  ACTION_TEXT = 'обнять|накурить|потанцевать|улыбнуться|отшлепать|сделать все, что угодно|уединиться с|подарить подарок|шлёпнуть|' +
                'чмокнуть|пнуть|пощупать|отдаться|купить пива|дать $100|пригласить на чашку чая|пригласить на чашку кофе|дать в глаз|' +
                'разбить эту самую бутылочку об|поцеловать|поцеловать в губы|поцеловать в ушко|обнять|прижаться к|потыкать|поклониться|'+
                'подарить свою ласку|облизать|прочитать молитву|наказать|сделать массаж|кинуть снежком в|дать пощечину|открутить голову|'+
                'угостить пивом|откусить ухо у|сказать приятную вещь|сделать все что захочет|чмокнуть в щёчку|рассказать о своих чувствах|'+
                'дать пинка|купить торт|дать подзатыльник|дернуть за ухо|признаться в любви|подмигнуть левым глазом|подмигнуть правым глазом|'+
                'дать денег на маршрутку|принести Coca-Cola для|угостить йогуртом|почесать за ушком|поставить в игнор|где-нибудь забанить|'+
                'где-нибудь кикнуть|станцевать стриптиз для|подарить букет красных роз|подарить розу|нежно чмокнуть';
                
function GetSpin(iUID, iUIN: integer): boolean;
var
  sUsersList, sUser1, sUser2, sMsg, sWhat, sData: string;
  UsersList: array of integer;
  iCount, iUserUIN, iWhat, i: integer;
begin
  sUsersList := mGetConfUsersList(iUID);
  SetArrayLength(UsersList, 0);
  iCount := 0;

    while length(sUsersList) > 0 do begin
      iUserUIN := StrToIntDef(Fetch(sUsersList, ','), -1);
      
        if (iUserUIN <> -1) and (iUserUIN <> iUIN) then begin
          inc(iCount);
          SetArrayLength(UsersList, iCount);
          UsersList[iCount - 1] := iUserUIN;
        end;
     end;
  
  sUser1 := mGetUserAttribute(iUIN, 'DisplayName');
  
    if iCount = 0 then begin
      mSendConfMessage(iUID, 0, sUser1 + ', тут не с кем играть в бутылочку :)', 1);
      result := false;
    end else begin
      iUserUIN := UsersList[Random(iCount)];
      
      sUser2 := mGetUserAttribute(iUserUIN, 'DisplayName');

      mSendConfMessage(iUID, iUIN, '!spin', 1);
      mSendConfMessage(iUID, 0, sUser1 + ' крутит бутылочку...', 1);
      mSendConfMessage(iUID, 0, 'Крутится... крутится... останавливается... и указывает на...', 1);
      mSendConfMessage(iUID, 0, 'На... на... Итак, горлышко бутылочки указало на — ' + sUser2, 1);
  
      iWhat := Random(ACTIONS_COUNT) + 1;
      sData := ACTION_TEXT;
      
        for i := 1 to iWhat do sWhat := Fetch(sData, '|');
        
      mSendConfMessage(iUID, 0, 'А теперь, ' + sUser1 + ', вам надо ' + sWhat + ' ' + sUser2, 1);        
      
      result := true;
    end;
end;

function OnConfMessage(iCID, iUIN, iUID, iMsgType: integer; sConfName, sMsg: string): boolean;
var
  sOutMsg: string;
begin
  if (mGetConfNameByUID(iUID) = CONF_NAME) and (LowerCase(sMsg) = '!spin') then begin
    GetSpin(iUID, iUIN);
        
    result := false;
  end else result := true;
end;

begin

end.

Результат работы скрипта

Alexander

!spin

Elisa

Alexander крутит бутылочку...

Крутится... крутится... останавливается... и указывает на...

На... на... Итак, горлышко бутылочки указало на — Helen

А теперь, Alexander, вам надо обнять Helen
 

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

Fetch

Inc

Length

LowerCase

mGetConfNameByUID

mGetUserAttribute

mSendConfMessage

Random

SetArrayLength

StrToIntDef