myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> ChatAfterLoginLocker, API2 | Доступ к чату после N минут онлайн

Теги
Нет тегов для показа
Nickolya
сообщение 8.1.2011, 2:48
Сообщение #1


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 724
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 772 раза




Название: ChatAfterLoginLocker
Версия: 1.0
Автор: Nickolya
+ в теме еще есть варианты скрипта от Ksan и alex82
Описание: блокирует чат для заданных профилей на N-ное количество времени после входа на хаб.

Собственно весь конфиг скрипта:
Код
-- блокируемые профили и время их блокировки, в секундах:
tLockProfiles = {
    [3] = 3*60,
    [-1] = 10*60,
}


При отправке сообщения в чат, юзер видит работу скрипта в следующем виде:
Цитата
<PtokaX> *** Для того, чтобы общаться в чате, твоему профилю необходимо выждать 10 мин. после входа на хаб. Лично тебе осталось ждать еще 3 мин. 1 сек.

Прикрепленные файлы
Прикрепленный файл  ChatAfterLoginLocker_v1.0_byNickolya.lua ( 1.08 килобайт ) Кол-во скачиваний: 85
 
Go to the top of the page
+Quote Post
 
Начать новую тему
Ответов
Stym
сообщение 8.1.2011, 1:35
Сообщение #2


Абсолютный новичок


Группа: Пользователи
Сообщений: 9
Регистрация: 13.8.2009
Пользователь №: 4 168
Спасибо сказали: 14 раз




В голову пришла такая идейка, а что если сделать для юзера небольшую паузу после того как он зашел на хаб, например 10 минут, чтобы стал доступен чат.. Я думаю всякие задротам, которые игнорируют баны надоест ждать некоторое время...
Сам могу только подправить, дописать скрипты, но никак с нуля написать, что то подобное мне к сожалению не попалось на этом хорошем форуме..
Ну или какая нибудь хорошая подсказка мне нужна, типа как вычислить сессию каждого юзера.. или как вписать таймер...
Go to the top of the page
+Quote Post
alex82
сообщение 8.1.2011, 2:42
Сообщение #3


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1386 раз




Примерно так:
Код
tUsers = {}

function UserConnected(user)
    tUsers[user.sNick] = os.time()
end
RegConnected = UserConnected

function UserDisconnected(user)
    tUsers[user.sNick] = nil
end
RegDisconnected = UserDisconnected

function ChatArrival(user)
    if tUsers[user.sNick] and tUsers[user.sNick] > os.time()-600 then
        Core.SendToUser(user,"<"..SetMan.GetString(21).."> В данный момент Вы не можете отправлять сообщения в чат. Пожалуйста подождите.")
        return true
    end
end


Спасибо сказали:
Go to the top of the page
+Quote Post
Ksan
сообщение 8.1.2011, 3:10
Сообщение #4


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 710
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 644 раза




Эхх, тоже хотел кинуть, смотрю, тут уже успели сразу 2 помочь. big_smile.gif
Ай, ладно, чтоб труд не пропал даром, тоже кину своё зёрнышко..
Код
local iPause = 10*60 -- ожидание в секундах
local tWaitUsers = {}

function UserConnected(tUser)
    tWaitUsers[tUser.sNick] = os.time(os.date("*t")) + iPause
end
RegConnected = UserConnected

function UserDisconnected(tUser)
    tWaitUsers[tUser.sNick] = nil
end
RegDisconnected = UserDisconnected

function ChatArrival(tUser, sData)
    if tWaitUsers[tUser.sNick] then
        if tWaitUsers[tUser.sNick] > os.time(os.date("*t")) then
            Core.SendToNick(tUser.sNick, "<"..SetMan.GetString(21).."> "..tUser.sNick..": Для общения в чате ещё не прошли "..tostring(iPause/60).." мин. с вашего захода на хаб! Погодите малость..")
            return true
        else
            tWaitUsers[tUser.sNick] = nil
        end
    end
end


Спасибо сказали:
Go to the top of the page
+Quote Post
Stym
сообщение 8.1.2011, 3:11
Сообщение #5


Абсолютный новичок


Группа: Пользователи
Сообщений: 9
Регистрация: 13.8.2009
Пользователь №: 4 168
Спасибо сказали: 14 раз




Цитата(Ksan @ 8.1.2011, 4:10) *
Эхх, тоже хотел кинуть, смотрю, тут уже успели сразу 2 помочь. big_smile.gif

Киданул бы, если есть уже готовый вариант big_smile.gif

Спасибо всем за ответ!!!


Спасибо сказали:
Go to the top of the page
+Quote Post
DEN 007
сообщение 8.1.2011, 15:36
Сообщение #6


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 276
Регистрация: 23.3.2010
Из: РФ Смоленск
Пользователь №: 6 429
Спасибо сказали: 60 раз




А что идейка хорошая для анрегов, спс
Go to the top of the page
+Quote Post
Ksan
сообщение 9.1.2011, 19:14
Сообщение #7


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 710
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 644 раза




Кстати, любой из вышепредставленных скриптов, если убрать строки
Код
RegConnected = UserConnected
и
Код
RegDisconnected = UserDisconnected
отличное средство против быстрого чата для нерегенных (а рекламщики, как правило, нерегенные) - достаточно просто увеличить срок паузы хотя бы до получаса.
Go to the top of the page
+Quote Post
Nickolya
сообщение 10.1.2011, 15:57
Сообщение #8


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 724
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 772 раза




Ksan, посмотри как это всё сделано в моем скрипте, и не надо обрабатывать вход/выход юзеров + гибкая настройка по профлям big_smile.gif


Спасибо сказали:
Go to the top of the page
+Quote Post
Ksan
сообщение 10.1.2011, 16:07
Сообщение #9


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 710
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 644 раза




Nickolya, кстати, классное решение! Никогда не обращал внимание на эту переменную - iLoginTime, потому о нём даже не вспомнил..
Go to the top of the page
+Quote Post
Артём
сообщение 17.3.2011, 15:04
Сообщение #10


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 605
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 765 раз




Название: ChatAfterLoginLocker
Версия: 1.1
Автор: Nickolya
Описание: блокирует чат для заданных профилей на N-ное количество времени после входа на хаб. При входе сообщает время 'молчания', по истечению времени сообщает юзеру
Цитата
*** Ваше время ожидание истекло, можете общаться!

Прикрепленный файл  ChatAfterLoginLocker_v1.1_byNickolya.lua ( 2.44 килобайт ) Кол-во скачиваний: 21


Спасибо сказали:
Go to the top of the page
+Quote Post
Accelerator
сообщение 17.3.2011, 15:21
Сообщение #11


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Из: Челябинск
Пользователь №: 1 075
Спасибо сказали: 243 раза




Артём, а не лучше сделать так:
Оставляем только функцию UserConnected, а ChatArrival и ToArrival убираем полностью. Вместо этого прописываем:
Код
ChatArrival = UserConnected
ToArrival = UserConnected

Зачем одно и то же для каждой функции делать? big_smile.gif
Go to the top of the page
+Quote Post
Артём
сообщение 17.3.2011, 15:34
Сообщение #12


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 605
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 765 раз




Accelerator, вопросы к автору скрипта big_smile.gif
Go to the top of the page
+Quote Post
Nickolya
сообщение 17.3.2011, 15:44
Сообщение #13


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 724
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 772 раза




Там же есть различность небольшая big_smile.gif
UserConnected и ChatArrival одинаковы, а вот в ToArrival идет
Код
Core.SendPmToUser(tUser, sBot,


Спасибо сказали:
Go to the top of the page
+Quote Post
Accelerator
сообщение 17.3.2011, 15:46
Сообщение #14


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Из: Челябинск
Пользователь №: 1 075
Спасибо сказали: 243 раза




Не заметил big_smile.gif
Go to the top of the page
+Quote Post
Master-Grow
сообщение 22.5.2011, 13:51
Сообщение #15


Участник
**

Группа: Пользователи
Сообщений: 35
Регистрация: 13.11.2008
Из: Тульская обл
Пользователь №: 1 082
Спасибо сказали: 0 раз




Цитата(Nickolya @ 8.1.2011, 3:48) *
Название: ChatAfterLoginLocker
Версия: 1.0
Автор: Nickolya
+ в теме еще есть варианты скрипта от Ksan и alex82
Описание: блокирует чат для заданных профилей на N-ное количество времени после входа на хаб.

Собственно весь конфиг скрипта:
Код
-- блокируемые профили и время их блокировки, в секундах:
tLockProfiles = {
    [3] = 3*60,
    [-1] = 10*60,
}


При отправке сообщения в чат, юзер видит работу скрипта в следующем виде:


а вот можно сделать переделать этот скрипт ,действовал для незарегистрированых плиззз
Go to the top of the page
+Quote Post
Ksan
сообщение 22.5.2011, 14:20
Сообщение #16


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 710
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 644 раза




Master-Grow, а это для чего, как ты думаешь?
Цитата
[-1] = 10*60,

Если для регистренных не надо, то убери строку (или закомменти):
Цитата
[3] = 3*60,
Go to the top of the page
+Quote Post
Master-Grow
сообщение 22.5.2011, 17:27
Сообщение #17


Участник
**

Группа: Пользователи
Сообщений: 35
Регистрация: 13.11.2008
Из: Тульская обл
Пользователь №: 1 082
Спасибо сказали: 0 раз




Цитата(Ksan @ 22.5.2011, 15:20) *
Master-Grow, а это для чего, как ты думаешь?

Если для регистренных не надо, то убери строку (или закомменти):


извени я том особ непонимаю вот и вспрашиваю
убрал. хаб\0.4.1.2\scripts\ChatAfterLoginLocker_v1.0_byNickolya.lua:4: unexpected symbol near ']'
да мож непоняли друг друга,уберать не получается,регистрируешься и всё равно просит подождать

усё спасибо разгодал секрет))))))
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Сейчас: 26.4.2018, 20:13