Re: Crazy CommFort Plugin v2.15 [плагин для клиента]
Добавлено: 13:56, 24.03.2012
VoFka,вот я подчеркнул канал и текст. 

форум поддержки
https://www.commfort.com/ru/forum/
Название канала берётся из события (cp.EventChannel, т.е. канал, в котором сработало событие), а текст темы в переменной str.VoFka писал(а):2. Нефига не получается((( Где тут в скрипте менять название канала и текста?Вероятно до этого не допетрю(((
Можно перечислить каналы разделив их символом "|".VoFka писал(а):Урасики))) заработало)))Всем спасибо))
Единственный вопросик, если одно и тоже действие при том же событии требуется для нескольких каналов, то нужно для каждого канала отдельно событие и действие настраивать или, например, перечислением названий каналов в событии через знак препинания или еще как там можно сделать?
Работает))), спсCrazyVirus писал(а):Можно перечислить каналы разделив их символом "|".
Как-то так:ermolai писал(а):Ну вот к примеру я сижу 24\7 в комнате main. Как сделать, что бы при написании мне готов от 10 разных пользователей, запускался скрипт и после удачного запуска скрипта этим пользователям приходило ЛС о удачном запуске?
Код: Выделить всё
file = cp.CommDataDir & "PluginsData\users.txt"
max_cnt = 10
msg = "набралось " & max_cnt & " голос(а,ов)"
cnt = cp.GetValue("count")
If cnt = Empty Then
cnt = 0
End If
exists = False
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(file, 1, True, -1)
Do While f.AtEndOfStream <> True
line = f.ReadLine
If line = cp.EventUserName Then
exists = True
Exit Do
End If
Loop
If exists = False Then
Set f = fso.OpenTextFile(file, 8, True, -1)
f.WriteLine cp.EventUserName
cnt = cnt + 1
If cnt = max_cnt Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(file, 1, False, -1)
Do While f.AtEndOfStream <> True
line = f.ReadLine
cp.SendUserMsg line, msg, False
Loop
End If
cp.SetValue "count", CInt(cnt)
End If
ermolai писал(а):И ещё вопрос, как сделать ограничение на количество пользователей в канале, к примеру что бы максимум там могло сидеть 10 пользователей.
Код: Выделить всё
users = cp.GetChannelUsers(cp.EventChannel)
If UBound(users) > 10 Then
cp.SetRestriction cp.EventChannel, "лишний", cp.EventUserName, 1, 2, 3, True
End If
Что то не работает совсемfile = cp.CommDataDir & "PluginsData\users.txt"
max_cnt = 10
msg = "набралось " & max_cnt & " голос(а,ов)"
cnt = cp.GetValue("count")
If cnt = Empty Then
cnt = 0
End If
exists = False
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(file, 1, True, -1)
Do While f.AtEndOfStream <> True
line = f.ReadLine
If line = cp.EventUserName Then
exists = True
Exit Do
End If
Loop
If exists = False Then
Set f = fso.OpenTextFile(file, 8, True, -1)
f.WriteLine cp.EventUserName
cnt = cnt + 1
If cnt = max_cnt Then
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(file, 1, False, -1)
Do While f.AtEndOfStream <> True
line = f.ReadLine
cp.SendUserMsg line, msg, False
Loop
End If
cp.SetValue "count", CInt(cnt)
End If
file - файл для записи пользователей, max_cnt - требуемое кол-во сообщений, msg - сообщение. Скрипт привязать к событию получения нужного сообщения. Счётчик и файл когда-то нужно обнулять, Вам виднее когда.![]()
В VB нет нормального способа замены строк, поэтому файл нужно будет перезаписывать полностью. Т.е. плохой способ.Stranger22 писал(а):CrazyVirus, реально ли реализовать что-то наподобии команды !seen одного из старых ботов?![]()
Когда пользователь выходит - он попадает в файлик с временем выхода.
Пользователь№1 вышел из чата 10/04/2012 16:47
Пользователь№2 вышел из чата 10/04/2012 19:35
Пользователь№3 сейчас в чате
Пользователь№4 вышел из чата 08/04/2012 15:05
По запросу с его ником - эта строчка выдаётся в канал или сообщением.
Когда пользователь возвращается в чат строка должна изменяться на "пользователь онлайн".
Возможно ли такое через VB-скрипты?
Если у кого реализовано, поделитесь
А если сервер не на 1000 человек, а на 10-20 ? Можно и целиком позаписывать файл.В VB нет нормального способа замены строк, поэтому файл нужно будет перезаписывать полностью. Т.е. плохой способ.
Можно пихать в БД, а не в файл. Тогда без проблем.Stranger22 писал(а): И нет ли другого способа реализовать это?