Programování mIRC V. – Identifikátory

#

    Identifikátor, který vždy obsahuje jméno kanálu, kde byl alias spuštěn.
    To je důležité kvůli mnoha příkazům, jako třeba příkazy /mode, vyžadující určení jména kanálu.

    Příklad:

    /op /mode # +o $1

    Napište „/op Cindy“ a tento příkaz opne osobu s přezdívkou Cindy v kanále, kde toto napíšete.

$me

    Tento identifikátor vždy obsahuje vaši přezdívku! Můžete jej využít v mnoha situacích.

    Například:

    /nice /me myslí, že $me je skvělá přezdívka ! Nebo

    /offer /me nabízí mIRC verzi 5.8. Napište „/ctcp $me xdcc send #1“ ke stažení. Nebo

    /away /me je pryč ( $1- ) | /away $1- | /say Zprávy pro $me budou uloženy.

    Nebo zkusme alias:

    /nick /say Mám rád $1 více než $me | /nick $1

    a zkuste si pak změnit přezdívku příkazem „/nick {nová_přezdívka}“

$read [-l#] {soubor.txt}

    Tento identifikátor je velmi užitečný. Umí načíst náhodný řádek z určeného souboru a vložit
    tento řádek do aliasu…. Řádek může obsahovat holý text a také příkazy !!
    (pro jeho zjednodušení ;o) Také $!read, který je stejný jako $read kromě toho, že není zpracován
    poprvé jak je vložen do rutin aliasu. To umožňuje použít jej s příkazem /timer,
    když chcete aby $read byl pokaždé zpracován.

    DŮLEŽITÉ : v souboru můžete načíst náhodné řádky od PRVNÍHO řádku až do celkového počtu řádků
    v souboru ! Pokud by se používal jen první řádek …. moc náhodné by to nebylo, že ?

    Například:

    /vtipy /say $read c:mircvtipy.txt

    /kick /kick # $1 $read c:mirckopání.txt

    /silly /say $read -l5 silly.txt

$readini [-n] {inisoubor} {sekce} {předmět}

    Podobný $read tento identifikátor načítá věci z .ini souborů. Je vytvořen v kombinaci s příkazem
    /writeini. Oba se používají ve vnitřních rutinách windows k načítání a ukládání standartních
    Windows .ini souborů. Myslíme, že $readini a /writeini otevřou nové a lepší možnosti pro psaní vašich
    vlastních automatických akcí na IRC. Parametr -n zamezí řádku být zpracován.

$url

    Tento identifikátor vždy obsahuje zrovna prohlíženou stránku ve vašem www prohlížeči Interner Explorer nebo Netscape…

    Například:

    /show /say Hej pánové, Našel jsem supr www-stránku ! Mrkněte na $url

    /mu /me našel tuhle skvělou URL : $url

$ip Vaše IP adresa.

$server Server, který používáte.

$active Název aktivního okna v mIRC.

$time Čas ve vašem PC.

$away Říká, jestli jste pryč nebo ne.

$ticks Vrací počet cyklů od spuštění vašeho OS.

$idle Vrací stejný čas nečinnosti jak ctcp userinfo a finger.

$online Vrací počet sekund uběhlých ve vašem online časovači.

$version Vrací číslo verze mIRC.

$ctime Počet sekund uběhlých od 00:00:00 GMT, 1. Ledna, 1970.

$asctime(N) Vrací hodnoty ctime datumu v plném textovém formátu.

$day Den v týdnu. (Pondělí, Úterý,…)

$date Datum (euvropské pořadí) (ANO !! mIRC -není- vyroben v USA ;o) alternativně lze použít $adate (americký), $fulldate nebo $day.

$duration(sekund) Přeloží čísla jako třeba 123456 na 1den 10hod 17min 36sek.

$logdir, $getdir, $wavedir, $mircdir Vrací cesty k těmto adresářům.

$mircini Vrací cestu k a jméno ini souboru, který používáte.

$nopath(soubor) Vrací jen jméno souboru bez cesty.

$nofile(soubor) Vrací jen cestu k danému souboru.

$exists(soubor) Zkontroluje, zda daný soubor existuje. (Vrací $true nebo $false)

$findfile(adresář,soubor,N) hledá v určeném adresářovám stromě N-tý určený soubor.

$ddename Název DDE služby použivané mIRC.

$abs(N) vrací absolutní hodnotu čísla N.

$chr(N) vrací znak s ascii číslem N.

$asc(C) vrací ascii číslo znaku C.

$len(text) vrací délku „text“.

$upper(text) vrací „text“ ve velkých znacích.

$lower(text) vrací „text“ v malých znacích.

$left(text,N) vrací N znaků zleva z ‚text‘.

$right(text,N) vrací N znaků zprava z ‚text‘.

$mid(text,S,N) vrací N znaků z ‚text‘ začínající na S-té pozici.

$pos(string,substring) vrací pozici substringu ve stringu.

$replace(string,substring,nahrazení) nahradí substring ve stringu.

$remove(string,substring) odebere substring ze stringu.

$strip(text) Odebere všechny tučné, podtržené, reverzní, a barevné ovládací kódy z textu.

$count(string1,string2) vrací hodnotu, kolikrát je string2 obsažen ve string1.

$str(N,text) vrací „text“ opakovaný N-krát.

$rand(X,Y) vrací náhodný znak mezi X a Y.

$lines(soubor) vrací počet řádků v daném souboru.


$usermode vrací váš nynější osobní mód.

$topic(#) vrací téma kanálů, ve kterých se zrovna nacházíte.


$nick(#,N) vrací N-tou přezdívku v kanále #.

$snick(#,N) vrací N-tou vybranou přezdívku v kanále #.

$opnick(#,N) vrací N-tou Op přezdívku v kanále #.

$nopnick(#,N) vrací N-tou ne-Op přezdívku v kanále #.

$vnick(#,N) vrací N-tou voice přezdívku v kanále #.

$nvnick(#,N) vrací N-tou ne-op/ne-voice přezdívku v kanále #.

$comchan(Přezdívka,N) vrací kanály, kde jste vy a daná Přezdívka.

$query(N|Přezdívka) vrací N-té query okno, které máte otevřeno.

$chat(N) vrací přezdívku z N-tého otevřeného dcc chat okna.

$fserv(N) vrací přezdívku z N-tého otevřeného okna fileserveru.

$send(N) a $get(N) vrací přezdívku z N-tého otevřeného posílacího/příjmového okna.

$notify(N) vrací N-tou oznámenou přezdívku, která je na IRC.

$token(N,C,text) vrací N-tý token v ‚text‘ oddělený znakem C (C je ascii číslo znaku)

$addtok(text,token,C) přidá token na konec textu, ale jen pokud již v textu není.

$findtok(text,token,C) vrací N-tou pozici tokenu v textu.

$gettok(text,N,C) vrací N-tý token v textu.

$instok(text,token,N,C) vloží token na N-tou pozici v textu i když již v textu existuje.

$remtok(text,token,C) odebere 1 nalezený token z textu.

$reptok(text,token,nový,C) nahradí 1 nalezený token novým tokenem v textu.


Pro předchozí identifikátory můžete určit N jako 0 (nula) k získání celkového počtu přezdívek/kanálů/atd. pro daný identifikátor.


$snotify vrací přezdívku vybranou v okně oznamování.

$address vrací plnou adresu dálkového uživatele.

$address(přezdívka,typ) prohlíží interní seznam adres a vrací adresu uživatele, je-li nalezen.

$maddress vrací nalezenou adresu uživatele jako akci v dálkových.

$level(adresa) hledá adresu v seznamu dálkových uživatelů a vrací její úroveň.

$ulevel vrací úrovně dálkových uživatelů pro akci.

$clevel vrací úrovně dálkových příkazů pro akci.

$dlevel vrací výchozí úroveň dálkového uživatele.

$mask(adresa,typ) vrací adresu s určeným typem masky.


Identifikátory a proměnné mohou být umístěny v závorkách.

Příklad: /echo $right(3,$left($len(goats),ToMooOrNotToMoo)) výsledkem je ‚ Moo‘

Identifikátory s parametry.


Některé identifikátory mohou být použity se speciálními parametry. To usnadňuje jejich zapomavání jejich syntaxe
a může pomoci v mnoha ohledech. Syntaxe jes $identifikátor(N|#|přezdívka).vlastnost


$server(N|přezdívka) Poskytne přístup k seznamu serverů v Soubor/Nastavení/IRC_Servery.

$server(N|přezdívka) pro adresu, .desc pro popis, .port pro port, .group pro skupinu.

$ial(mask,N) Poskytne přístup k internímu seznamu adres.

$ial(maska,N) pro úplnou adresu, .nick pro přezdívku, .user pro uživatele, .host pro host,
.addr pro adresu.

$url(N) Poskytne přístup k seznamu url.

$url(N) pro adresu, .desc pro popis, .group pro značku

$chan(N|#).property Vrací některá ‚kanálová‘ nastavení kanálů, kde se právě nacházíte.

$chan(N|#) vrací jméno kanálu, .topic(téma), .mode(mód), .key(klíč), .limit(limit),

$chat(N|přezdívka) přezdívka, .ip, .status (aktivní, čeká, neaktivní)

$fserv(N|přezdívka) přezdívka, .ip, .status, .cd (nynější adresář)

$get(N|přezdívka) přezdívka, .ip, .status, .file, .size, .rcvd, .cps, .pc

$send(N|přezdívka) přezdívka, .ip, .status, .file, .size, .sent, .lra, .cps, .pc

$timer(N) Vrací vaše aktivní časovače

$timer(N) pro id, .com, .time, .reps, .delay, .type


Identifikátory definované uživatelem. (Sekci původně napsal Li0nheart)


Jak jste se již naučili, mIRC má velké množství vestavěných identifiekátorů, které vám umožní použití ve vašich
definicích aliasů a dálkových skriptů. Je také možné vytvořit své vlastní identifikátory a ty mahou být nastavitelné
na cokoliv prakticky chcete! Identifikátory se programují v sekci aliasů a vypadají vlastně úplně stejně
jako alias, ale pouze s jedním rozdílem, že na konci je /return X. Můžete mít identifikátor
vracející cokoliv chcete. Například součet dvou čísel:

/soucet {

%temp = $1 + $2

return %temp

}


Nyní můžete identifikátor $soucet použít kdekoliv v aliasech, menu nebo dálkových. Například v součásti menu:

Sečtení:/say Součet čísel 45 a 78 je $soucet(45,78)

Nebo alias:

/secteni /say Součet čísel $1 a $2 je $soucet($1,$2)

(nemá smysl zadávat příkaz jako třeba /soucet .. to nebude fungovat)


Všechny parametry zadávané identifikátoru se oddělují mezerami. Můžete použít i if/then/else
struktury v definici identifikátoru. Můžete například zjišťovat, zda jsou zadány všechny parametry
a případně napsat chybové hlášení. Například tato rutina počítá kolik je X procent z Y.


/perc {

if ($1 == $null) || ($2 == $null) { vrátí Chybu nedostatek parametrů }

if ($2 != 1) { %half = $2 / 2 } | else { %half = 1 }

%dummy = $1 * 100

%perc = %dummy / $2

%remainder = %dummy % $2

if (%perc == 0) { goto return }

elseif (%remainder >= %half) { inc %perc }

:return

return %perc

}


První řádek zjišťuje, zda jsou zadány všechny parametry. Zbytek je výpočet procent.
Identifikátor může být volán například $perc(56,100) což po výpočtu zobrazí 56%.
Čísla nejsou věci, které lze vrátit s identifikátorem. Můžete také udělat návratový text nebo
kombinaci textu a čísel, například čas v americkém formátu (7:52 pm):

/atime {

set %hr $token(1,58,$time)

set %min $token(2,58,$time)

if (%hr == 0) { set %hr 12 | set %sub am }

elseif (%hr < 12) { set %sub am }

elseif (%hr == 12) { set %sub pm }

else { %hr = %hr – 12 | set %sub pm }

return %hr $+ : $+ %min $+ %sub

}


S trochou kreativity, můžete vytvořit identifikátory pro cokoliv chcete. Například pro psaní pozpátku,
zvýrazňování písmen nebo jiné. Příjemnou zábavu!