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