|

Твой собственный супер-скрипт для IRC
Хакер, номер #025, стр. 025-036-3
Вот так. Все, как видишь, не так уж и сложно. А вот теперь давай перейдем к более сложным эвентам.
ON KICK - это событие срабатывает на ЛЮБОЙ кик в канале. Т.е. не только когда кикнули тебя, но и когда кикнули любого другого чела. Тебе этот эвент понадобится только для защиты своих друзей, которых ты пропишешь в свой pHr1end$ L1sT, но это уже отдельная история. Поэтому мы рассмотрим другой эвент, который намного ближе к тебе, любимому.
ON KICKED - вот он! Эвент, срабатывающий, когда какая-то гадина кикнула именно тебя. Формат у эвента такой же, как и у ON TEXT (кстати, у них у всех один формат), за исключением маленькой поправки. Если перед этим эвентом ты поставил знак @, вот так: @ON KICKED, то эвент будет срабатывать только если ты ОП на канале. Если ты этот значок не поставишь, то эвент будет пытаться сработать в любом случае.
В моей версии этот эвент работает вот так:
@ON KICKED:*:#:/chanserv unban # |/chanserv deop # $nick |/join # |/chanserv op # $me |/timer $nick 1 60 | /kick # $nick (=SINtez Russian Script=) ЕщЕ ра3 киКнеШь и тЫ в $hiT L!$tE!!!
Объясняю - я обычно сижу на сетке DalNet, где фунциклируют всякие боты типа ChanServ-а и NickServ-а. Поэтому, когда меня кто-нибудь кикнет (то он сразу покойник :))), скрипт посылает ChanServ-у команду деопнуть обидчика ($nick - это переменная, которая записывается в память и несет в себе ник человека, который тебя кикнул). Затем пытается зайти на канал (/join #). Причем, заметь, команды отделяются знаком "|", который означает переход на новую строку. Затем приказывает Чансерву опнуть меня (/chanserv op # $me. Где $me - переменная, которая хранит в памяти мой ник). Затем, из-за того, что модемная связь дает тебе лаг (торможение) и твои команды не исполняются сразу, включает таймер на ник обидчика (имя таймера можешь ставить любое, но мне удобнее называть их по имени врагов). В таймере показывается, что он сработает с циклом 1 раз на 60 миллисекунд (т.е. на одну секунду). Затем, как только таймер закончится (т.е. через секунду), скрипт пытается кикнуть обидчика (обычно секунды хватает на то, чтобы вернуться на канал). Все ясно? Если нет, то прочитай этот абзай еще раз, а если да, то пойдем дальше.
ON BAN - событие, срабатывающее на любой бан в канале. К сожалению, в ПИРЧе нет команды ON BANNED, а извратиться другими способами я не смог (хотя, возможно, кто-то смог). Поэтому у меня не получилось настроить свой скрипт реагировать, когда банят только меня, и он у меня реагирует на любой бан, пытаясь защитить хозяина. Но не будем отвлекаться. У меня это событие выглядит вот так:
ON BAN:*:#:/chanserv unban #
Т.е. если кто-то поставил бан, то скрипт дает команду чансерву отбанить меня. Заметь, я не стал это вносить в событие ON KICKED, хотя, чаще всего, после бана следует кик. А все из-за того, что я пытаюсь опередить врага. Т.е. как только он меня забанит, скрипт меня отбанивает. А когда он меня кикнет, мой скрипт уже начнет операцию по возвращению в канал и наказанию засранца. К тому же, бывают все-таки случаи, когда тебя банят, но не кикают, поэтому лучше все события разделять, а не загонять все в одну большую кучу дерьма. Если ты очень воинственный боец, то можешь добавить в событие ON BAN наказание. Тогда, если успеешь, то сможешь выкинуть обидчика, не дожидаясь, пока это сделает он. Я этого делать не стал, т.к. на модемной связи это чаще всего не успеть.
Назад на стр. 025-036-2 Содержание Вперед на стр. 025-036-4
|