Programování mIRC X. – Dálkové akce

V mIRC vyberte Nástroje/Dálkové/ k otevření mIRC Editoru, pak vyberte ‚Náhled‘ a vyberte skript
nazvaný „events.ini“. Když tento soubor není dostupný, zkuste načíst připravený script ini soubor
nebo vytvořte nový soubor skriptů v Soubour/Nový/. Nový skript se nazve script1.ini výchozím nastavením.

Jak vidíte, Dálkové CTCP skripty pracují pouze s CTCP příkazy. Dálkové akce zase pracují
se vším co se děje na IRC. I když to zní divně, nemějte obavy. Jak bylo vysvětleno dříve,
tyto lekce na sebe navazují. Když rozumíte Dálkovým Příkazům, Dálkové Akce pro vás budou
hračka. Již jste se naučili složitější věci.

Upozornění: mIRC je velmi citlivé na špatnou syntaxi Dálkových Akcí. Použitím špatné syntaxe
můžete způsobit GPF (General Protection Fault – Chyba porušení ochrany), tak buďte opatrní!
Když se setkáte s problémy se stabilitou mIRC, zkontrolujte nejprve tuto část!

Syntaxe Dálkových akcí.

Dálkové Akce jsou: TEXT, JOIN, PART, KICK, OP, DEOP, INVITE, NICK, QUIT, TOPIC, SERVEROP,
NOTIFY, MODE, SERVERMODE a SMODE. Kromě TEXT jsou podobné ACTION, NOTICE, SNOTICE, CHAT, SERV
a WALLOPS jsou dostupné pro různé druhy textů. Nové jsou FILESENT a FILERCVD akce
a také CHATOPEN, CHATCLOSE, SERVOPEN, SERVCLOSE a několik dalších.

Co se s tím přesně dá dělat a jak to použít bude vysvětleno brzo. Nejdříveněkolik rychlých příkladů
a vyvětlení použité syntaxe.

Syntaxe je úplně stejná jako u Dálkových příkazů. Tady je příklad Dálkové akce pro TEXT:

on 1:TEXT:ahoj:#:/msg $nick Taky vás zdravím!

Jděte do Nástojr/Dálkové a podívejte se, jestli je tam soubor nazvaný events.ini. Pokud ne, jděte
do menu Soubor a vyberte ‚Nový‘ k vytvoření nového skriptu. Přesvědčte se, zda v „Sledování“ je vybrána
položka akce.(Když jsou položky v „Sledování“ nezaškrtnuté, tak například akce vámi vytvořené bude
mIRC ignorovat). Nyní umístěte výše uvedený příklad do existujícího nebo nového souboru skriptů.

Tato Dálková Akce se spustí když je nalezeno slovo „ahoj“ v nějakém aktivním kanálu. Odezvou mIRC
je poslání soukromé zprávy osobě, která to napsala, a sice „Taky vás zdravím!“

Tady je další příklad, nyní použití JOIN:

on 1:JOIN:#:/notice $nick Vítáme vás v $chan

Toto se spustí kdykoliv přijde do kanálu, kde jste, nějaký uživatel. Pak se mu pošle oznámení říkající
„Vítáme vás v {jméno_kanálu}“.

Když jste se dostali tak daleko a rozumíte Dálkovým příkazům, bude to pro vás celkem snadné.

Dálkové Akce mají většinou 3, 4 nebo 5 části oddělené mezerami. Mnoho akcí má 4 části,
kromě TEXT, která má 5 a QUIT a NICK mají jen 3.

Všechny akce *kromě* TEXT, QUIT a NICK jsou formátovany takhle:

{úroveň_akce}:{akce}:{kde}:{spuštěný_příkaz(y) s parametrem(y)}

{úroveň_akce} Tato akce má efekt jen na uživatele s danou úrovní a vyšší, pokud nejsou
pro tyto úrovně vytvořeny jiné. Stejné jako úroveň_příkazu v Dálkových příkazech.

{akce} Jméno akce kterou sledujete. JOIN, OP, atd.

{kde} #, #jméno. Kde sledujete tuto akci? Napište # (libovolný kanál) nebo jméno
daného kanálu (třeba #test).

VYJÍMKA: Nepoužívá se s NICK nebo QUIT. Proto přeskočte tuto část.

{spuštěný_příkaz(y) s parametrem(y)} Příkaz určený ke spuštění. Jako třeba v Dálkových příkazech
kromě toho, že je zde několik odlišných předdefinovaných parametrů.

…a samozřejmě, vyjímky jsou v TEXT a ACTION které fungují jako:

{úroveň_akce}:{akce}:{jaký_text}:{kde}:{spuštěný_příkaz(y) s parametrem(y)}

{úroveň_příkazu} Stejné jako výše uvedené.

{akce} To je v tomto případě buď TEXT anebo ACTION

{jaký_text} Určete slovo nebo větu ke sledování. Třeba „ahoj“ z prvního příkladu.

{kde} #, #jméno, ?, *. Jako výše, můžete říci ať TEXT a ACTION sledují všechny kanály (#)
nebo určitý kanál (třeba #test). Ale můžete také sledovat všechny soukromé zprávy posílané vám
(?) nebo text jak z kanálu tak i ze soukromých zpráv (*). TEXT nebo ACTION akce nemohou sledovat
věci řečené v DCC Chatech nebo zprávách Serveru.

{spuštěný_příkaz(y) s parametrem(y)} Stejné jako výše uvedené.

Akce

Zde jsou nejznámější Dálkové Akce, na které mIRC umí odpovídat…

TEXT akce Proběhne, když určená slova/věty jsou nalezeny v kanále nebo soukromé zprávě. ACTION funguje stejně …

Příklad:

on 1:TEXT:hloupost:#:/kick $chan $nick Žádné hlouposti!

To se ohlíží po slově „hloupost“ v jakémkoliv kanále a vykopne člověka, který to řekl.

Příklad:

on 1:TEXT:hloupost:#test:/kick $chan $nick | /notice $nick Nazdar $nick , řekl jste ‚hloupost‘
a to není povoleno v #test…

Když někdo řekne slovo „hloupost“ v kanále #test, je vykopnut (pokud jste vy opnuti v #test) a pošle
oznámení: „Nazdar {přezdívka} , řekl jste ‚hloupost‘ a to není povoleno v #test…“

Příklad:

on 5:TEXT:pomoc:?:/notice $nick Rád bych vám pomohl, ale nemohu.

Když nalezne slovo „pomoc“ v jakékoliv vaší soukromé zprávě, odpoví uživateli,

„Rád bych vám pomohl, ale nemohu“ in a notice.

Můžete určit zástupné znaky v textu na které mIRC umí reagovat:

* reaguje na libovolný text

slovo když uživatel řekne pouze (a přesně) toto slovo, proběhne akce. Je třeba přesné znění.
slovo* když uživatel začne řádek s tímto slovem, proběhne akce.

*slovo když uživatel ukončí řádek s tímto slovem, proběhne akce.

*slovo* když uživatel řekne toto slovo nebo větu kdekoliv, proběhne akce.

Příklad:

on 5:TEXT:pomoc:?:/notice $nick Rád bych vám pomohl, ale nemohu.

Tato akce bude reagovat na volání o pomoc, jen když msg bude obsahovat jen slovo pomoc …
ne když bude řádek zaslaný vám obsahovat slovo ‚pomoc’…

Příklad:

on 5:TEXT:ahoj*:?:/notice $nick Taky vás zdravím !

Tato akce bude reagovat jen na řádky v soukromých zprávách poslaných vám a začínajících slovem ‚ahoj‘.

ACTION akce Podívejte se na TEXT akci …. funguje úplně stejně….

NOTICE akce Podívejte se na TEXT akci …. funguje úplně stejně….

CHAT akce Funguje stejně jako TEXT ale sleduje DCC Chat text.

Příklad:

on 1:CHAT:blabla:/msg $me $nick vám řekl $1- v DCC Chatu.

SERV akce Funguje jako CHAT akce ale sleduje tex DCC Fileserveru.

Příklad:

on 1:SERV:get mirc:/echo server 6 To $nick mIRC zip se posílá.

JOIN akce Proběhne, když přijde uživatel do kanálu.

Příklad:
on 1:JOIN:#test:/notice $nick Vítejte v kanále #test!

Pošle oznámení říkající „Vítejte v kanále #test!“ všem, kteří přijdou do #test.

Příklad:

on 25:JOIN:#cool:/kick $chan $nick Nejste tu vítán!

Vykopne každého uživatele s úrovní 25, který přijde do kanálu #cool se zprávou: „Nejste tu vítán!“

PART akce Proběhne, když uživatel odejde z kanálu.

Příklad:

on 10:PART:#:/notice $nick Hej, díky za návštěvu $chan !

Pošle oznámení říkající, „Hej, díky za návštěvu {kanál} !“ každému uživateli s úrovní 10, který odejde z kanálu, kde jste vy.

Příklad:

on 90:PART:#:/msg $chan Júúúú! $nick odešel! Pošle zprávu do kanálu říkající,
„Júúúú, {přezdívka} odešel!“ když někdo s úrovní 90 odejde z kanálu, kde jste vy.

CONNECT akce Tato akce, která se spustí když je dosažen konec MOTD po připojení
k serveru (stejné jako perform sekce). Příklad:

on 1:CONNECT:/echo Úspěšné připojení k $server!

DISCONNECT akce Spustí se, když ztratíte spojení se serverem.

on 1:DISCONNECT:/echo Ooops… ztratili jste spojení.

KICK akce Proběhne, když je nějaký uživatel vykopnut z kanálu.

Příklad:

on 100:KICK:#:/kick $chan $nick | /invite $knick $chan | /notice $nick Tato osoba je můj přítel!

Pokud je nějaká osoba s úrovní 100 vykopnuta z nějakého kanálu, vykopnete toho kdo to udělal,
pozvete vykopnutou osobu zpátky a pošlete oznámení „Tato osoba je můj přítel!“ tomu kdo osobu vykopl.

POZNÁMKA: $knick je parametr pro vykopnutou přezdívku v této akci. Také upozorňujeme, že
tento příklad ukazuje více příkazů najednou. Funguje stejně jako u Dálkových Příkazů.

OP akce Proběhne, když je uživatel opnut.

Poznámka: Tato akce vyžaduje mít lidi podle PŘEZDÍVKY ve vašem seznamu Dálkových uživatelů !

Příklad:

on 1:OP:#test:/notice $opnick Opnul vás $nick . Vítejte!

Když je někndo opnut v #test, pošlete mu oznámení: „Opnul vás {operátor}.

Vítejte!“

POZNÁMKA: $opnick je parametr pro přezdívku opnutého uživatele v této akci.

DEOP akce Proběhne, když je někdo deopnut.

Poznámka: Tato akce vyžaduje mít lidi podle PŘEZDÍVKY ve vašem seznamu Dálkových uživatelů !

Příklad:

on 1:DEOP:#:/msg $opnick Lituji. Deopnul vás $nick

Když je někdo deopnut, pošlete mu zprávu: „Lituji. Deopnul vás {operátor}.

POZNÁMKA: $opnick je parametr pro přezdívku deopnutého uživatele v této akci.


POZNÁMKA
Vysvětlení OP, DEOP, SERVEROP a také třeba NOTIFY akce je v tuto chvíli velmi důležité.
Kvůli tomu, že servery hlásí jen přezdívky lidí, kteří jsou opnuti, deopnuti nebo oznamováni
v kanálu nebo na IRC, tak OP, DEOP, SERVEROP a NOTIFY akce fungují správně jen když přezdívky
lidí kteří jsou opnuti, deopnuti nebo oznamováni jsou v seznamu uživatelů. Určení úplné
adresy (přezdívka!účet@počítač.adresa.cz) NESTAČÍ…

Pokud chcete dát lidem úrovně pro vaše OP, DEOP, SERVEROP nebo NOTIFY akce, musíte
je umístit do vašeho seznamu Uživatelů podle přezdívky, třeba:

3:přítelaspřezdívka

5:přítelbspřezdívka

5:přítelcspřezdívka

10:přítelbspřezdívka!účetb@bspočítač.cz

Tato konstrukce vám může dát dobrý důvod k určení lidí do vašeho seznamu uživatelů podle jejich obou úplných
adres (zástupné znaky jsou povoleny) a jejich přezdívky. To pak bude garantovat správnou reakci
na OP, DEOP nebo SERVEROP bez toho, aby VŠICHNI lidé okolo bez nehody (?) se stejnou přezdívkou
neměli stejná práva jako vaši přátelé (nebo nepřátelé).


BAN akce

UNBAN akceS akcí BAN můžete snadno auto-odbanovat vaše přátele.

Příklad:
on 5:BAN:#tree:/mode $chan -b $banmask

Parametr $banmask obsahuje přezdívku, adresu a doménu banovaného uživatele, nebo jen třeba doménu.

INVITE akce Proběhne, když vás někdo pozve do kanálu.

Příklad:

on 5:INVITE:#test:/join $chan | /describe $chan děkuje za pozvání!

Když jste pozváni do #test, přijdete do kanálu a použijete akci k řečení „{me} děkuje za pozvání!“

NICK akce Proběhne, když si uživatel změní svou přezdívku.

Příklad:

on 1:NICK:/notice $newnick Myslím, že $nick byla pěkná přezdívka!

Pošle oznámení každému, kdo změní přezdívku, „Myslím, že {stará_přezdívka} byla pěkná přezdívka!“

POZNÁMKA: $nick je parametr pro starou přezdívku a $newnick pro (co asi?) novou.

POZNÁMKA: Část {kde} se nepoužívá u ON NICK akce.

QUIT akce Proběhne, když uživatel opustí IRC.

Příklad:

on 2:QUIT:/notice $me Čas na párty! $nick právě opustil IRC!

Když někdo opustí IRC, pošlete si oznámení: „Čas na párty! {Přezdívka} právě opustil IRC!“

POZNÁMKA: Část {kde} se nepoužívá u QUIT akce.

TOPIC akce Proběhne, když je změněno téma kanálu.

Příklad:

on 1:TOPIC:#:/msg $chan Hmm, Mám rád nové téma!

Když je změněno téma kanálu, pošlete do kanálu zprávu říkající, „Hmm, Mám rád nové téma!“

SERVEROP akce Proběhne, když server opne (zpátky) uživatele v kanále.

Poznámka: Tato akce vyžaduje mít lidi podle PŘEZDÍVKY ve vašem seznamu Dálkových uživatelů !

Příklad:

on 1:SERVEROP:#mirc:/mode $chan -o $nick | /notice $opnick Promiňte, serveropy nejsou povoleny v $chan

Když je opnuta osoba v #mirc serverem, opnutá osoba je deopnuta a obdrží oznámení:
„Promiňte, serveropy nejsou povoleny v #mirc“ Serveropy normálně probíhají po netsplitu dvou sítí
při výměně a aktualizaci všech módů kanálu.

NOTIFY akce

UNOTIFY akce Tyto akce se spouštějí když lidé z vašeho seznamu oznamování přijdou nebo opustí IRC.

Poznámka: Tato akce vyžaduje mít lidi podle PŘEZDÍVKY ve vašem seznamu Dálkových uživatelů !

Tuto akci můžete využít k věcem jako třeba provedení /whois na oznamovanou přezdívku ke zjištění,
zda se jedná o správného člověka…. Nezapomínejte, že tato akce funguje POUZE s přezdívkami ze seznamu Dálkových uživatelů
podle PŘEZDÍVEK…. (jako OP, DEOP a SERVEROP) To je kvůli tomu, že IRC protokoly nejdou přes
adresu oznamované osoby… Umístěte přezdívku v Soubor/Možnosti/Seznam_Oznamování
a pak když později mIRC detekuje osobu na IRC, tak se spustí tato akce. Akce UNOTIFY se spustí
když mIRC detekuje, že přezdívka opustila IRC; člověk upustil IRC nebo změnil přezdívku.

Příklady:

on 1:NOTIFY:/notice $nick Když jste skutečně $nick pak prosím přijďte do #mine !

on 1:UNOTIFY:/echo $active $nick opustil IRC.
on 3:NOTIFY:/whois $nick

on 5:NOTIFY:/beep 10 50 | /whois $nick

MODE akce

SERVERMODE akce Tyto akce mohou ovlivnit některá nastavení módů kanálu.
Akce MODE má změněnou syntaxi. Již neovlivňuje módy. $1- je nyní vyplněn změnou módu,
která proběhla. Používejte tuto akci k reagování na změny módů kanálu.

on 1!:MODE:#name:/echo 6 Změna módu na $1- od $nick v $chan !

on 1!:SERVERMODE:#name:/echo 6 server změnil mód na $1-

Myslete na to, že když umožníte osobám s vyšší úrovní měnit nastavení módů bez vaší reakce,
uživatelé s nižší úrovní to neuvidí ! Když později změní mód (nebo server změní mód), pak se
nastaví ovlivněné módy; mIRC NEUMÍ zpracovat část nových módů, které byly nastaveny osobami
s vyšší úrovní … Také pozor na více lidí v kanále nastavujících špatné módy !!

USERMODE akce Tato akce proběhne, když změníte svůj uživatelský mód.
Když se změní váš uživatelský mód (na +i například), tato akce to detekuje a můžete na to
automaticky reagovat.

VOICE akce

DEVOICE akceTyto akce reagují na lidi, kteří dostali nebo ztratili voice(hlas) v kanálech. Příklady:

on 1:VOICE:/notice $nick Vítejte v mluvícím světě!

on 1:DEVOICE:/notice $vnick Hej, $nick má povoleno zde mluvit!

SNOTICE akce Tato akce sleduje oznámení sereveru. Oznámení serveru vám říkají
všechny druhy věcí dějící se na a s IRC serverem, který používáte. Abyste tato oznámení dostávali,
nastavte svůj uživatelský mód na +s (/mode #přezdívka +s). Většina lidí nepořebuje toto nastavení…
Je většinou pro IRCOpy a správce serveru. S touto akcí můžete filtrovat oznámení serveru
posílané vám a pak s nimi různě nakládat, např. zabránit v zobrazení nebo automaticky na ně reagovat.
Syntaxe je velmi podobná jako u TEXT akce…

on 1:SNOTICE:server_text:/echo 6 status Server vám oznamuje, že $1-

FILESENT akce Tato akce reaguje na všechny úspěšné DCC Posílácí přenosy souborů.
Můžete to využít k poslání krátké zprávy vám nebo příjemci…

on 1:FILESENT:*.txt,*.ini:/echo Poslán $filename k $nick ( $+ $address $+ )

on 1:FILESENT:mirc581s.exe:/notice $nick Příjemnou zábavu s 16-bit mIRC

on 1:FILESENT:mirc581t.exe:/notice $nick Příjemnou zábavu s 32-bit mIRC

FILERCVD akce Tato akce reaguje na všechny úspěšné DCC Přijímací přenosy souborů.
Proběhne když je soubor úspěšně přenesen na váš harddisk.
Můžete to využít k poslání krátké zprávy vám nebo odesílateli, nebo ke spuštění pomocné aplikace
k prohlédnutí přijatého obrázku, k přehrání zvukového souboru nebo k přečtení textu.

on 1:FILERCVD:*.txt,*.ini:/run notepad.exe $filename

on 1:FILERCVD:*.wav:/wavplay $filename

on 1:FILERCVD:*.gif:/run c:windowswingifwingif.exe $filename

on 1:FILERCVD:*.jpg:/run c:windowslviewlviewp19.exe $filename

on 1:FILERCVD:*.mid,*.voc:/run wplany.exe $filename

on 1:FILERCVD:*.*:/notice $nick Díky za soubor!

SENDFAIL akce

GETFAIL akce Tyto akce proběhnou, když DCC přenos selže kvůli ztrátě
spojení nebo prodlevám přenosu. Příklady:

on 1:SENDFAIL:*.txt:/echo selhalo posílání $filename k $nick

on 1:GETFAIL:*.txt:/echo selhal příjem $filename od $nick

CTCPREPLY akce Sleduje odezvy na ctcp. např.:
on 1:CTCPREPLY:PING*:/echo $active Ping odezva od $nick

on 1:CTCPREPLY:*mirc*:/echo $active Hmm $nick také používá mIRC!

MIDIEND akce Tato akce proběhne, když midi ukončí přehrávání (ale ne když zastavíte
přehráváním jiného midi nebo použijete /splay stop). Příklad:

on 1:MIDIEND:/echo mIRC ukončilo přehrávání midi souboru!

INPUT akce Tato akce proběhne, když zadáte nějaký text zprávy do příkazového
řádku a stisknete Enter. Můžete zpracovat řádek skriptem nebo cokoliv budete pak chtít!
Příkazem /halt zamezíte standartnímu zpracování textu. Příklad:

on 1:INPUT:/echo zadali jste $1-

LOAD akce Proběhne, když je spuštěno mIRC a načteny skripty.

START akce Proběhne, když váš (nový) skript je připraven k provozu.

on 1:LOAD:/echo skript úspěšně zaveden
on 1:START:/echo skript úspěšně spuštěn

S akcí LOAD můžete zadat příkazy když mIRC načítá skripty. K zadání
inicializačních příkazů, které se spustí při prvním spuštění mIRC (a načte skripty
automaticky) použijte akci START. Sekce START se také spouští po sekci LOAD,
když je skript nejdříve načten. Když je skript načten bez dálkového dialogu, auto-spustitelné
příkazy nebudou spuštěny, dkoud nebude zavřen dialog.
Speciální identifikátory pro řádky sekce Dálkové/Akce/.
$nick, $address, $site atd. jsou všechno identifikátory specálně vytvořené pro použití v dálkových řádcích.
Můžete je použít kde chcete v řádcích spouštěných dálkovými akcemi…
$nick Přezdívka osoby, která poslala příkaz nebo aktivovala akci.

$address Úplná adresa osoby, která poslala příkaz.

$site Doména osoby, která poslala příkaz.

$level Reprezentuje úroveň dálkového uživatele.

$chan Kanál, ve kterém proběhla akce.