Rot13-mIrc v3.0 alppa

Versiohistoria

3.0! Creeping featurism: /enable #rotparse säätää päälle <rot>teksti tähän</rot> -tagien toiminnan. Jos bugaa, /disable #rotparse . Erillinen kanavaikkunoissa toimiva /rotmsg rottaa yhden viestin. Have fun.

Fixes in v2.2b: komentojen syöttö rot-ikkunassa ei enää lähetä komentoa enkoodattuna kanavalle.

Fixes in v2.2: /norot - komento lisätty. @rot-ikkunan sulkeminen poistaa eventin käsittelyn, ei enää erheilmoituksia.

Fixes in v2.1: Nickit jätetään rottaamatta (jos ensimmäinen sana päättyy kaksoispisteeseen). Omat viestit @rot-akkunassa saivat nick-prefiksin. Omat rot13-enkoodatut viestit edellämainitussa akkunassa saivat vähän väriä.

Fixes in v2: Multiline enabloitu. Nikin erotus toimii itse kirjoitetussa tekstissä. Nikki @rot-ikkunassa esitetään mIrc-tyylisesti.

v1: Perustoiminnallisuus kasassa.

Käyttö:

Touhu aloitetaan komennolla /rot #kanavanimi, esim. /rot #wanhat .

Lopetus joko sulkemalla ikkuna, tai antamalla komento /norot

Aukeavaan ikkunaan kun kirjoitat, menee kanavalle rotattuna. Kaikki kanavan tekstit rotataan auenneessa akkunassa. Soo simpl.

Asennus (yeah right)

Copypaste laulamaan. Alias-osastoon (valikosta tools/aliases) seuraava pätkä (sinne vaan muiden perään paste):

/rot {
/set %rotchan $1
/window -ek0R @rot
/renwin @rot @rot 13 on $1 - rotmIrc v3.0 (c) P.L.Z.I.
/aline -p 4 @rot Rot-13 enabled on $1
}
/norot {
/set %rotchan 
/window -c @rot
}

/rotmsg {
/say $transrot($$1-)
}

...ja remote-ikkunaan kopiseerataan seuraava pätkä, mielellään events.ini-nimellä (saattaa toimia suoraan copypastettuna presetti-remote.iniinkin. En ole kokeillu, suoraan loin events.ini -tiedoston ja sinne sit väkersin):

alias transrot {
var %t,%o,%k,%m,%c
/set %t $1-
WHILE ($len(%t)>0) {
/set %k $asc($left(%t,1))
if ((%k >= 97) && (%k <= 109)) /inc %k 13
elseif ((%k >= 110) && (%k <= 122)) /dec %k 13
elseif ((%k >= 65) && (%k <= 77)) /inc %k 13
elseif ((%k >= 78) && (%k <= 90)) /dec %k 13
%c = $chr(%k)
if (%k == 32) {
%o = %o %c }
else {
%o = %o $+ %c }

/set %m $mid(%t,2)
/set %t %m
}
return %o
}

#rotparse off
on 1:INPUT:#: {
/var %r, %c = 1, %nc =1, %found = 0
/var %t = $1-
/var %re,%rr
/set -n %re <rot>(.*?)<\/rot>
/set -n %rr [rot13?]
/var %x
WHILE (%nc > 0) {
%nc = $regex(rott,%t,%re)
if (%nc > 0) {
%found = 1
/transrot $regml(rott,1)
%c = $regsub(%t,%re,$result,%x)
%t = %x
}
}
if (%found = 1) {
if ($lower($left(%t,3)) == /me) /describe # $mid(%t,4)
else /msg # %t 
/halt
}
}
#rotparse end

on 1:INPUT:@rot: {
/var %t,%f,%n,%flen
/set %t $1-
/set %f $1
/set %n < $+ $me $+ >
/set %flen $len(%f)

/aline -p @rot %n %t 

if ($asc($left(%f,1)) != 47) {
if ($right(%f,1) == :) {
if ($len(%t) > %flen) {
inc %flen 1
%t = $mid(%t,%flen) }
}
else %f = $chr(0)
/transrot %t
/aline -p 4 @rot %n %f $result
/msg %rotchan %f $result
}
}

on 1:TEXT:*:%rotchan: {
/var %t,%n,%f,%flen
/set %t $1-
/set %n < $+ $nick $+ >
/set %f $1
/set %flen $len(%f)

if ($right(%f,1) == :) {
if ($len(%t) > %flen) {
inc %flen 1
%t = $mid(%t,%flen) }
}
else %f = $chr(0)
/transrot %t
/aline -p @rot %n %f $result
}

on *:CLOSE:@rot:/set %rotchan