Задался целью соорудить скрипт для подсчета киков. Можно сказать: поставь Хуббу и не парься )), но в силу ряда причин набор-конструктор из отдельных скриптов ближе и удобнее.
Удалось добиться следующего. Скрипт учитывает команды tempban, fulltempban и drop, сохраняет в таблицу ники и количество киков. При повторном темпбане - сообщает, что юзер был уже кикнут столько-то раз.
А теперь больные вопросы.
1. Каким образом скрипт может перехватить для обработки и учесть кик-сообщение $Kick? И может ли вообще?
2. Возможно ли реализовать такую идею: скрипт сообщает, что юзер уже был кикнут, и предлагает забанить. Запускается таймер, и скрипт ждет, скажем, пять секунд - пока с клавиатуры не будет введено "Y" или нажата любая клавиша? Если да, то в каком направлении двигаться?
На будущее еще один вопрос: возможно ли, чтобы скрипт перехватывал команду, генерируемую другим скриптом?
Прилагаю сам сырой скрипт, основные функции взяты из Hostbans, выложенного Nickolya.
(Таймер сейчас в нем запускается, и отсчет идет, но пока только так, для пристрелки. Бывает ли "локальный таймер?" Как его организовать? Может быть, есть ссылка, где об этом расписано? )
Вопросов уйма, познания в этой области пока скромные. Не откажите в помощи))
1.
в старом api 1 таймер, который некоторыми уловками можно превратить в несколько (если это имеется ввиду)
а код наверное должен выглядеть так (хотя не проверял, скорее всего будут ошибки - сам доработаешь)
Уф
Добавлен учет непосредственно киков, таймер пока вынесен за скобки.
Wariner : а вот и неправда ))), таймер там запускается и отрабатывает, просто установки находятся не в Main(), а в ChatArrival(). Там они по первоначальной идее и должны были находиться, и StartTimer() должен был работать оттуда же, по условию. Интервал указывается в миллисекундах. Другое дело, как увязать задержку, предоставляемую таймером, и ввод команды с клавиатуры (?)
А вообще, конечно же, спасибо за содействие ;-)
Setuper - благодарю за код, сейчас буду усваивать информацию))
Setuper
Пока что никак не удается запустить саму логику скрипта, т.е задержку исполнения основной входящей команды (дроп, темпбан) за счет таймера.
Два вопроса.
1.Каков смысл вот этой строчки:
Вот рабочий код:
Setuper
Попробовал. С первого раза код не пошел, ну да ладно, как говаривал мой бывший начальник, "Ни одна уважающая себя схема не станет работать с первого раза". Разберемся ))
Пока суд да дело, все-таки, ответит ли кто-нибудь на мой вопрос? Может ли скрипт перехватывать и принимать к исполнению команду от расположенного выше в списке другого скрипта? Для меня это актуально, именно для этого конкретного скрипта учета киков: кики в основном раздает бот антипорна, расположенный выше в списке, и их нужно учитывать и сохранять в таблицу.
Если нет - значит нет, но ответьте уже, что ж все молчат как партизаны?
ustas
так придется видимо и сделать, если ответ будет отрицательным.
Это приведет к капитальной реконструкции бота-антипорно, а он из без того громоздкий, т.к. задумывался как универсальный для обоих API. Поэтому сначала хочется прощупать возможность более естественного, логичного решения.
А корреспондировать двум ботам все равно придется: база киков-то общая будет... Дополнительные глюки и траблы.
Попытаюсь ответить, только не пинайте сильно...
Команду напрямую передавать нельзя никак, можно сохранять куда-то данные одним скриптом, а потом брать их другим, но это доп. функции которые довольно затратно выглядят. Как вариант - файлы или бд. Хотя есть и более экзотические решения пораждаемые моим мозгом, но боюсь у вас глаза поползут на лоб при прочтении их, так что даже не буду описывать.
Будет и правда проще, правильнее и рациональнее скрестить 2 скрипта, чтобы использовать одну базу! Про громоздкость не знаю, заточенные мною скрипты для обоих апи выглядят довольно просто, всё зависит только от нужных функций. Могу помочь в этом деле, но если только скрипт будет досутпен для общественности. Стукни тогда в асю вечером, часов после 7, либо выложи где-нибудь скрипты и опиши что надо, а потом кинь ссылку в приват на форуме, либо опять же в асю.
Nickolya
Скрипт антипорна уже доступен для общественности, выложен http://mydc.ru/topic573.html.
Setuper
Проверил только что еще раз. Попытался просто "Выкинуть юзера" ($Kick). При не-введении Y с клавы, не происходит вообще ничего. При введении - счет останавливается, юзер получает простой дисконнект.
Ну да это уже тонкости, главное, сдвиги есть, а код, я глянул, переработан основательно. Мне нужно самому время и сил моральных, чтобы вникнуть как следует )) Если уж совсем будет затык, тогда снова обращусь.
А пока хотел бы попросить бросить взгяд на скриптик, выложенный мной http://mydc.ru/topic580.html.
Если будет время.
Думаю, добавить запрошенную фичу для знающего человека - дело на 10 минут
При первом кике пользователь должен кикнуться, но без сообщения о кике. При последующих киках (>1) всё правильно работает.
Думаю, что разобравшись в коде, ты сможешь сам исправить "первый кик".
Если, что не понятно - спрашивай. Объясню подробно, что и как.
Дабы не захламлять данный топик, все рассуждения и ответы, которые тут были перенёс в тему: http://mydc.ru/topic173.html, в которой они выглядят более естественно и понятно, и в которой потом каждый может посмотреть идеи и реализации.
Топик "Вопросы разработчикам скриптов" для этого и создан.
Прошу тех, кто пишет скрипты, писать в топик "Вопросы разработчикам скриптов":
- вопросы оптимизации кусков кодов;
- вопросы по lua;
- отдельные куски кодов;
- некие наработки.
А вопросы по конкретным скриптам в темы: "Запросы скриптов" и "Помощь по скриптам".