|
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
![]() ![]()
Сообщение
#1
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 89 Регистрация: 9.6.2008 Из: Крым Пользователь №: 23 Спасибо сказали: 5 раз ![]() |
Нужен скрипт (или подскажите как сделать).
При появлении нового ника определённого IP-диапазона ему в приват отправляется заготовленный текст. |
|
|
![]()
Сообщение
#2
|
|
![]() [n00b] ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 291 Регистрация: 10.7.2008 Из: Россия,Пенза Пользователь №: 168 Спасибо сказали: 24 раза ![]() |
Прям-таки определенного диапазона? А то тут где-то лежал скрипт, который отсылает собщения новому нику-не важно какого диапазона...
|
|
|
![]()
Сообщение
#3
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 89 Регистрация: 9.6.2008 Из: Крым Пользователь №: 23 Спасибо сказали: 5 раз ![]() |
В данной ситуации важны пользователи местной сети. И к тому же нужен скрипт не приветствий, а который бы отправлял сообщение именно в приват.
|
|
|
![]() ![]()
Сообщение
#4
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 9 Регистрация: 11.10.2009 Пользователь №: 4 695 Спасибо сказали: 0 раз ![]() |
Тоже необходимо подобное.
|
|
|
![]()
Сообщение
#5
|
|
![]() 7 квадратиков ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз ![]() |
Держи:
Раскрывающийся текст Код local sDiap = "10.31.%d+.%d+" -- шаблон диапазона local sBot = nil -- ник бота или nil для использования ника главного бота local sMsg = [[ Здесь пишем текст сообщения, отсылаемый в приват пользователям из диапазона ]] function OnStartup() if not sBot then sBot = SetMan.GetString(21) end end function UserConnected(tUser) if tUser.sIP:find(sDiap) then Core.SendPmToUser(tUser, sBot, sMsg) end end RegConnected = UserConnected OpConnected = UserConnected Если это не то или не совсем то - нужно чётче формулировать пожелания. |
|
|
![]() ![]()
Сообщение
#6
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 9 Регистрация: 11.10.2009 Пользователь №: 4 695 Спасибо сказали: 0 раз ![]() |
Alexey Огромное спасибо заработало просто идеально и какраз то что нужно!!!
![]() |
|
|
![]()
Сообщение
#7
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 89 Регистрация: 9.6.2008 Из: Крым Пользователь №: 23 Спасибо сказали: 5 раз ![]() |
Спасибо, работает.
Но как бы сделать, чтобы текст отправлялся новому пользователю только 1 раз. Такой скрипт был бы идеальным. |
|
|
![]()
Сообщение
#8
|
|
![]() 7 квадратиков ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз ![]() |
Так?
Раскрывающийся текст Код local sDiap = "10.31.%d+.%d+" -- шаблон диапазона local sBot = nil -- ник бота или nil для использования ника главного бота local tSeen = {} local sMsg = [[ Здесь пишем текст сообщения, отсылаемый в приват пользователям из диапазона ]] function OnStartup() if not sBot then sBot = SetMan.GetString(21) end end function UserConnected(tUser) if tUser.sIP:find(sDiap) then if not IsPresent(tUser.sNick) then table.insert(tSeen, tUser.sNick) Core.SendPmToUser(tUser, sBot, sMsg) end end end RegConnected = UserConnected OpConnected = UserConnected function IsPresent(sNick) for key, vNick in pairs(tSeen) do if sNick == vNick then return true end end return false end |
|
|
![]() ![]()
Сообщение
#9
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 9 Регистрация: 11.10.2009 Пользователь №: 4 695 Спасибо сказали: 0 раз ![]() |
А что в данном скрипте доработано, а то чтото не разобрался?
local tSeen = {} я так понял запоминает кому отправлялось, а где это хранится? |
|
|
![]()
Сообщение
#10
|
|
![]() 7 квадратиков ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз ![]() |
Добавлен запрошенный функционал.
В памяти, при выключении скрипта никуда не сохраняется. |
|
|
![]()
Сообщение
#11
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 89 Регистрация: 9.6.2008 Из: Крым Пользователь №: 23 Спасибо сказали: 5 раз ![]() |
Alexey:
Меня вполне устраивает этот скрипт, то, что нужно! Но, добавь пожалуйста возможность действовать в нескольких диапазонах. |
|
|
![]() ![]()
Сообщение
#12
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 9 Регистрация: 11.10.2009 Пользователь №: 4 695 Спасибо сказали: 0 раз ![]() |
Ещё раз спасибо за скрипт!
|
|
|
![]()
Сообщение
#13
|
|
![]() 7 квадратиков ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз ![]() |
Ещё раз спасибо за скрипт! Пожалуйста! Perspect: Третья редакция: ![]() |
|
|
![]()
Сообщение
#14
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
мне кажется оптимальнее было бы так:
Код function UserConnected(tUser) if InDiap(tUser.sIP) then if not tSeen[tUser.sNick] then tSeen[tUser.sNick] = 1 Core.SendPmToUser(tUser, sBot, sMsg) end end end RegConnected = UserConnected OpConnected = UserConnected и выкинуть функцию IsPresent(sNick) |
|
|
![]()
Сообщение
#15
|
|
![]() 7 квадратиков ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз ![]() |
Пожалуй, соглашусь... изврат какой-то набыдлокодил.
Исправление принято, спасибо. ![]() |
|
|
![]()
Сообщение
#16
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Кстати да... При каждом вызове функции, она запихивается в стек вызовов, кроме этого, под параметры функции также создаётся стек. Поэтому при многочисленных вызовах различных функций в скором времени можно задуматься о затратах на вызовы функций. К сожалению, в отличии от с++, в lua отсутствует понятие встраиваемой функции, поэтому задумываться о лишних вызовах стоит!
![]() |
|
|
![]()
Сообщение
#17
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 89 Регистрация: 9.6.2008 Из: Крым Пользователь №: 23 Спасибо сказали: 5 раз ![]() |
Кто подскажет?
После перегрузки скрипта или компа сообщения снова будут отправляться пользователям. Что можно сделать, чтобы избежать этого. Мало-ли сколько раз придётся перегружаться. Может скопировать, а потом снова закинуть информацию в стек о пользователях, которые уже получали сообщение? |
|
|
![]()
Сообщение
#18
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
ну про стек это конечно же лихо))) простое сохранение в таблицу)))
|
|
|
![]()
Сообщение
#19
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 89 Регистрация: 9.6.2008 Из: Крым Пользователь №: 23 Спасибо сказали: 5 раз ![]() |
ну про стек это конечно же лихо))) простое сохранение в таблицу))) Как бы это сделать? Вообще, возможно-ли это? Может есть альтернативы? ![]() Этот скрипт использую для привлечения голосов в пользу хаба. Не хотелось бы доставать пользователей однообразной информацией, которая уже для многих не актуальна. |
|
|
![]()
Сообщение
#20
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
найди любой скрипт который работает с таблицами в файле и посмотри как там сделано!
|
|
|
![]() ![]() |
Похожие темы
![]() |
Сейчас: 17.2.2025, 6:47 |