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