Chatd on chatti serveri joka pyörii portissa 8888 eli se aukaisee portin 8888 ja siihen voi ottaa yhteyttä telnetin raw modella ja erillaisilla clienteillä joita voi tulla kysymään #tuobbi-89 @ ircnet kannulta...
chatd_server.mrc
;
; CHATD SERVER 1.0
; By: Oippa
;
; chatd serveri pyörii porttissa 8888
; Virallinen chatd serveri pyörii osoitteessa: vintti.net:8888 (ei 24h)
;
menu * {
.CHATD
..Käynnistä:/chatd
}
alias chatd {
socklisten chatd 8888
}
; Funkkarit ;
alias syota { sockwrite -nt $1- }
alias erota { return $gettok($3,$2,$asc($1)) }
on *:SOCKLISTEN:chatd:{
set %rand $rand(1,10000)
sockaccept yhdistÿ $+ %rand
$syota(yhdistÿ $+ %rand Syötä nimimerkki komennolla /nick <nimimerkki>: )
}
on *:SOCKREAD:yhdist*:{
sockread %yhdistys_data
tokenize 32 %yhdistys_data
if (($left($1,1) == /)) {
if (($upper($1) == /NICK)) {
if (($left($2,1) == @)) { sockclose $sockname }
else {
sockrename $sockname kayttajaÿ $+ $2
$syota(kayttaja* $time *** $erota(ÿ,2,$sockname) liittyi chattiin! )
$syota($sockname ################### )
$syota($sockname - Päivän viesti, $ip - )
$syota($sockname - Tervetuloa chatd serverille! )
$syota($sockname - )
$syota($sockname - MOTD loppuu. )
$syota($sockname ################### )
}
}
else { sockclose $sockname }
}
else { sockclose $sockname }
}
on *:SOCKREAD:kayttaja*:{
sockread %kayttaja_data
tokenize 32 %kayttaja_data
if (($left($1,1) == /)) {
if (($upper($1) == /OPER) && ($2 == %admin_pass)) { $syota(kayttaja* *** $erota(ÿ,2,$sockname) on nyt OP ) | sockrename $sockname kayttajaÿ@ $+ $erota(ÿ,2,$sockname) }
if (($upper($1) == /DEOP) && ($left($erota(ÿ,2,$sockname),1) == @)) { $syota(kayttaja* *** $erota(ÿ,2,$sockname) ottaa moden OP pois $2 $+ :lta ) | sockrename kayttajaÿ@ $+ $2 kayttajaÿ $+ $2 }
if (($upper($1) == /OP) && ($left($erota(ÿ,2,$sockname),1) == @)) { $syota(kayttaja* *** $erota(ÿ,2,$sockname) laittaa moden OP $2 $+ :lle ) | sockrename kayttajaÿ $+ $2 kayttajaÿ@ $+ $2 }
if (($upper($1) == /ME)) { $syota(kayttaja* $time * $erota(ÿ,2,$sockname) $2- ) }
if (($upper($1) == /SAY) && ($left($erota(ÿ,2,$sockname),1) == @)) { $syota(kayttaja* $time $2-) }
if (($upper($1) == /MSG)) { $syota(kayttajaÿ $+ $2 $time MSG $erota(ÿ,2,$sockname) $+ : $3- ) | $syota($sockname $time MSG $erota(ÿ,2,$sockname) $+ : $3- ) }
if (($upper($1) == /QUIT)) {
if (($len($2) <= 20)) { $syota(kayttajaÿ* $time *** $erota(ÿ,2,$sockname) quittasi ( $+ $2- $+ ) ) | sockclose $sockname }
else { $syota($sockname ERROR! (Quit messu on yli 20 sallitun merkkin!) ) }
}
if (($upper($1) == /NICK) && ($left($2,1) != @)) {
if (($len($2) <= 15)) {
if (($left($erota(ÿ,2,$sockname),1) == @)) { $syota(kayttaja* $time *** $erota(ÿ,2,$sockname) on nyt @ $+ $2) | sockrename $sockname kayttajaÿ@ $+ $2 }
else { $syota(kayttaja* $time *** $erota(ÿ,2,$sockname) on nyt $2) | sockrename $sockname kayttajaÿ $+ $2 }
}
else { $syota($sockname ERROR! (Nick on yli 15 sallitun merkkin!) ) }
}
if (($upper($1) == /KICK) && ($left($erota(ÿ,2,$sockname),1) == @)) { $syota(kayttaja* $time *** $erota(ÿ,2,$sockname) potki $2 $+ :n chatistä syy( $+ $3- $+ )) | sockclose kayttajaÿ $+ $2 }
if (($upper($1) == /NIKIT)) {
var %rivit 1
while (%rivit <= $sock(kayttajaÿ*,0)) {
$syota($sockname %rivit $+ . $+ $erota(ÿ,2,$sock(kayttajaÿ*,%rivit)))
inc %rivit
}
}
}
else {
if ((%kayttaja_data != $null)) {
$syota(kayttaja* $time < $+ $erota(ÿ,2,$sockname) $+ > %kayttaja_data )
}
}
}
on *:SOCKCLOSE:kayttajaÿ*:{
$syota(kayttajaÿ* $time *** $erota(ÿ,2,$sockname) quittasi! )
}Aihe on jo aika vanha, joten et voi enää vastata siihen.