Netsplit detector

stevo

Registered
Някой може ли да даде нещо да изкарва в сички канали дето си когато има сплит на мрежи в IRC :lol:
 
stevo каза:
Някой може ли да даде нещо да изкарва в сички канали дето си когато има сплит на мрежи в IRC :lol:
Сплита може да се разбере само по QUIT съобщението
на потребителите които излизат от сплитващия сървър.
Ще опитам да напиша нещо.

П.П.****

Код:
ON *:QUIT: {
  if ($nick != $me) {
    if ($left( $+ $1 $+ ,3) == irc) && ($left( $+ $3 $+ ,3) == irc) { echo -as Засечен Сплит: $1 & $3 }
  }
}

Хич не знам дали работи,
не съм го пробвал.
Кажи ако не бачка ще го
променяме :)
 
Код:
on ^*:quit:{
if (%splitwin) && (((??*.??* ??*.??* iswm $1-) && ($regex($1-,/^[[:alnum:]\.]+ [[:alnum:]\.]+$/)) && (!$regex($1-,/netsplit|fake|script|www\./i))) || ($1- == *.net *.split)) {
var %w = $splitwin
if (!$window(%w)) { window -nk0v %w }
if (!$timer(ntsplt. $+ $cid)) {
echo %w 
thmecho %w Netsplit on $thmhl($iif($network,$+($network,/,$server),$server)) on $thmhl($longtime) $+ ...
}
var %i = $comchan($nick,0),%r
while (%i) {
hadd -mu3600 netsplit. $+ $cid $fulladdress $addtok($hget(netsplit. $+ $cid,$fulladdress),$comchan($nick,%i),32)
dec %i
}
.timerntsplt. $+ $cid 1 20 netsplitchk
haltdef
}
}
on ^*:join:#:{
if (%splitwin) && ($nick != $me) && ($hget(netsplit. $+ $cid,$fulladdress)) {
var %h = $v1
if ($istok(%h,$chan,32)) {
.timerntsplt. $+ $cid -e
hadd -m netsplit.re. $+ $cid $fulladdress $addtok($hget(netsplit.re. $+ $cid,$fulladdress),$chan,32)
hadd -m netsplit. $+ $cid $fulladdress $remtok($hget(netsplit. $+ $cid,$fulladdress),$chan,32)
if (!$hget(netsplit. $+ $cid,$fulladdress)) { hdel netsplit. $+ $cid $fulladdress }
if (!$hget(netsplit. $+ $cid,0).item) { hfree netsplit. $+ $cid }
.timerntsplt.re. $+ $cid 1 20 netsplitchk.rejoin
haltdef
}
}
}
alias netsplitchk.rejoin {
var %h = netsplit.re. $+ $cid
if ($hget(%h)) {
unset %netsplit.tmp.*
var %g = $hget(%h,0).item,%z = %g,%w = $splitwin,%n = $iif($network,$+($network,/,$server),$server)
if (!$window(%w)) { window -nk0v %w }
echo %w 
thmecho %w Netsplit on $thmhl(%n) is (at least partly) over!
thmecho %w The following users have returned from the netsplit:
while (%g) {
tokenize 33 $hget(%h,%g).item
thmecho %w $base($calc(%z - %g +1),10,10,$len(%z)) $+ . $thmhl($1) $+ / $+ $thmhl($2) rejoined $replace($hget(%h,%g).data,$chr(32),$+($chr(44),$chr(32)))
var %tg = $hget(%h,%g).data,%tn = $wd(%tg,0)
while (%tn) {
var %ut = $wd(%tg,%tn)
if (!%netsplit.tmp.done. [ $+ [ %ut ] ]) {
if ($len( %netsplit.tmp. [ $+ [ %ut ] ] ) <= 500) { set %netsplit.tmp. $+ %ut $addtok( %netsplit.tmp. [ $+ [ %ut ] ] ,$1,32) }
else {
set %netsplit.tmp. $+ %ut %netsplit.tmp. [ $+ [ %ut ] ] $+ ...
set %netsplit.tmp.done. $+ %ut 1
}
}
dec %tn
}
dec %g
}
thmecho %w End of list.
var %tv = $var(%netsplit.tmp.*,0)
while (%tv) {
var %tc = $mid($var(%netsplit.tmp.*,%tv),15)
if ($me ison %tc) { thmecho %tc These users have rejoined $thmhl(%tc) $+ : $replace( [ [ $var(%netsplit.tmp.*,%tv) ] ] ,$chr(32),$+($chr(44),$chr(32))) $iif(%splitwin,- check netsplits window for details!) }
dec %tv
}
if ($balloon.trig(s)) { npop Netsplit over! $iif($scid(0) > 1,$nbr($curconserv)) $+ The netsplit on %n is (at least partly) over! }
unset %netsplit.tmp.*
hfree %h
}
}
alias netsplitchk {
var %h = netsplit. $+ $cid
if ($hget(%h)) {
unset %netsplit.tmp.*
var %g = $hget(%h,0).item,%z = %g,%w = $splitwin,%n = $iif($network,$+($network,/,$server),$server)
if (!$window(%w)) { window -nk0v %w }
thmecho %w The following users have been split:
while (%g) {
tokenize 33 $hget(%h,%g).item
if (%splitwin) { thmecho %w $base($calc(%z - %g +1),10,10,$len(%z)) $+ . $thmhl($1) $+ / $+ $thmhl($2) split from $replace($hget(%h,%g).data,$chr(32),$+($chr(44),$chr(32))) }
var %tg = $hget(%h,%g).data,%tn = $wd(%tg,0)
while (%tn) {
var %ut = $wd(%tg,%tn)
if (!%netsplit.tmp.done. [ $+ [ %ut ] ]) {
if ($len( %netsplit.tmp. [ $+ [ %ut ] ] ) <= 500) { set %netsplit.tmp. $+ %ut $addtok( %netsplit.tmp. [ $+ [ %ut ] ] ,$1,32) }
else {
set %netsplit.tmp. $+ %ut %netsplit.tmp. [ $+ [ %ut ] ] $+ ...
set %netsplit.tmp.done. $+ %ut 1
}
}
dec %tn
}
dec %g
}
thmecho %w End of list.
var %tv = $var(%netsplit.tmp.*,0)
while (%tv) {
var %tc = $mid($var(%netsplit.tmp.*,%tv),15)
if ($me ison %tc) { thmecho %tc These users have been split from $thmhl(%tc) $+ : $replace( [ [ $var(%netsplit.tmp.*,%tv) ] ] ,$chr(32),$+($chr(44),$chr(32))) $iif(%splitwin,- check netsplits window for details!) }
dec %tv
}
if ($balloon.trig(s)) { npop Netsplit! $iif($scid(0) > 1,$nbr($curconserv)) $+ A netsplit on %n has been detected! }
unset %netsplit.tmp.*
}
}
alias splitwin { return $+(@Netsplits[,$cid,]) }

Незнам дали ще работи, пробвайте го.
 
Тогава ще стане така :

ON *:QUIT: {
if ($nick != $me) {
if ($left( $+ $1 $+ ,3) == irc) && ($left( $+ $3 $+ ,3) == irc) { msg #pepsi Засечен Сплит: $1 & $3 }
}
}

Пробвай на fena неговото е по вероятно да работи
защото е цял адон а аз го пиша на момента. :?
Ама може и мойто да свърши работа.. знам ли.
Както искаш де :)
 
fena тва бачка ли и в канала ли показва че има сплит или само ти го виждаш :shock:
 
Само ти го виждаш, в отделен прозорец.

Ако търсиш да ти изписва в каналите че има сплит, има такива тцли за drop-те.
 
fena каза:
Само ти го виждаш, в отделен прозорец.

Ако търсиш да ти изписва в каналите че има сплит, има такива тцли за drop-те.

Ама той търси за mIRC и мисля, че му помогнахме.
Ако не е така stevo кажи какво сме испуснали
да допълним :?:
 

Back
Горе