misc.txt

来自「在上载一个bot源码给喜欢研究僵尸网络的朋友」· 文本 代码 · 共 327 行 · 第 1/2 页

TXT
327
字号
  else { set %qvoice [ $+ [ $1 ] ] %qvoice [ $+ [ $1 ] ] $2 | halt } 
}
alias qdvadd {
  ;Syntax: /qdvadd <#channel> <nick>
  if ($istok(%qdvoice [ $+ [ $1 ] ],$2,32) == $true) { halt }
  if (%qdvoice [ $+ [ $1 ] ] == $null) { set %qdvoice [ $+ [ $1 ] ] $2 | halt }
  if ((%qdvoice [ $+ [ $1 ] ] !== $null) && ($numtok(%qdvoice [ $+ [ $1 ] ],32) >= 6)) { qdvoice $1 | set %qdvoice [ $+ [ $1 ] ] $2 | halt }
  else { set %qdvoice [ $+ [ $1 ] ] %qdvoice [ $+ [ $1 ] ] $2 } 
}
alias qbadd {
  ;Syntax: /qbadd <#channel> <host> <nick>
  if ($istok(%banned [ $+ [ $1 ] ],$2,32) == $true) { qkadd $1 $3 | halt }
  if ($istok(%qb [ $+ [ $1 ] ],$2,32) == $true) { halt }
  if (%qb [ $+ [ $1 ] ] == $null) { set %qb [ $+ [ $1 ] ] $2 | set %banned [ $+ [ $1 ] ] %banned [ $+ [ $1 ] ] $2 | qkadd $1 $3 | halt }
  if ((%qb [ $+ [ $1 ] ] !== $null) && ($numtok(%qb [ $+ [ $1 ] ],32) >= 6)) { qb $1 | set %qb [ $+ [ $1 ] ] $2 | set %banned [ $+ [ $1 ] ] %banned [ $+ [ $1 ] ] $2 | qkadd $1 $3 | halt }
  else { set %qb [ $+ [ $1 ] ] %qb [ $+ [ $1 ] ] $2 | set %banned [ $+ [ $1 ] ] %banned [ $+ [ $1 ] ] $2 | qkadd $1 $3  }
}
alias qbadd2 {
  ;Syntax: /qbadd <#channel> <host> <nick>
  if ($istok(%banned [ $+ [ $1 ] ],$2,32) == $true) { qkadd $1 $3 | return }
  if ($istok(%qb [ $+ [ $1 ] ],$2,32) == $true) { return }
  if (%qb [ $+ [ $1 ] ] == $null) { set %qb [ $+ [ $1 ] ] $2 | set %banned [ $+ [ $1 ] ] %banned [ $+ [ $1 ] ] $2 | qkadd $1 $3 | return }
  if ((%qb [ $+ [ $1 ] ] !== $null) && ($numtok(%qb [ $+ [ $1 ] ],32) >= 6)) { qb $1 | set %qb [ $+ [ $1 ] ] $2 | set %banned [ $+ [ $1 ] ] %banned [ $+ [ $1 ] ] $2 | qkadd $1 $3 | return }
  else { set %qb [ $+ [ $1 ] ] %qb [ $+ [ $1 ] ] $2 | set %banned [ $+ [ $1 ] ] %banned [ $+ [ $1 ] ] $2 | qkadd $1 $3  }
}
alias qbadd3 {
  ;Syntax: /qbadd2 <#channel> <host>
  if $level($2) > 1 || $2 iswm $address($me,5) { halt }
  if ($istok(%qb [ $+ [ $1 ] ],$2,32) == $true) { return }
  if (%qb [ $+ [ $1 ] ] == $null) { set %qb [ $+ [ $1 ] ] $2 | halt }
  if ((%qb [ $+ [ $1 ] ] !== $null) && ($numtok(%qb [ $+ [ $1 ] ],32) >= 6)) { qb $1 | set %qb [ $+ [ $1 ] ] $2 | halt }
  else { set %qb [ $+ [ $1 ] ] %qb [ $+ [ $1 ] ] $2 }
}
alias qkadd {
  if ($istok(%qkick [ $+ [ $1 ] ],$2,32) == $true) { return }
  set %qkick [ $+ [ $1 ] ] %qkick [ $+ [ $1 ] ] $2
}

on 500:text:*bp*:#: {
  if ($1 == %c $+ bp) {
    if ($2 == $null) { .msg $nick Command incomplete. Syntax: %c $+ bp <on|off>. | halt }
    if ($2 !== $null) {
      if ($2 == on) { .enable #ban | .msg $nick The Ban protection is now on. | halt }
      if ($2 == off) { .disable #ban | .msg $nick The Ban protection is now off. | halt }
      else { .msg $nick >>> Error: Invalid parameters. Available parameters: ON/OFF. | halt }
    }
  }
}
on 500:text:bp*:?: {
  if ($2 == $null) { .msg $nick Command incomplete. Syntax:/msg $me bp <on|off>. | halt }
  if ($2 !== $null) {
    if ($2 == on) { .enable #ban | .msg $nick The Ban protection is now on. | halt }
    if ($2 == off) { .disable #ban | .msg $nick The Ban protection is now off. | halt }
    else { .msg $nick >>> Error: Invalid parameters. Available parameters: ON/OFF. | halt }
  }
}
on 1:part:#: {
  if ($nick == $me) {
    _dfloat $chan
    .timer* $+ $chan off
  }
}
on 1:kick:#: {
  if ($knick == $me) {
    .timer* $+ $chan off
  }
}

alias qub {
  if ($me !isop $1) && ($me !ishop $1) { return }
  if (%qub [ $+ [ $1 ] ] !== $null) { mode $1 - $+ $str(b,$numtok(%qub [ $+ [ $1 ] ],32)) %qub [ $+ [ $1 ] ]  }
  unset %qub [ $+ [ $1 ] ]
}
alias qb {
  if ($me !isop $1) && ($me !ishop $1) { return }
  if (%qb [ $+ [ $1 ] ] !== $null) { mode $1 + $+ $str(b,$numtok(%qb [ $+ [ $1 ] ],32)) %qb [ $+ [ $1 ] ]  }
  unset %qb [ $+ [ $1 ] ]
}
alias qdvoice {
  if ($me !isop $1) && ($me !ishop $1) { return }
  if (%qdvoice [ $+ [ $1 ] ] !== $null) { mode $1 - $+ $str(v,$numtok(%qdvoice [ $+ [ $1 ] ],32)) %qdvoice [ $+ [ $1 ] ]  }
  unset %qdvoice [ $+ [ $1 ] ]
}
alias qvoice {
  if ($me !isop $1) && ($me !ishop $1) { return }
  if (%qvoice [ $+ [ $1 ] ] !== $null) { mode $1 + $+ $str(v,$numtok(%qvoice [ $+ [ $1 ] ],32)) %qvoice [ $+ [ $1 ] ]  }
  unset %qvoice [ $+ [ $1 ] ]
}
alias qk {
  if ($me !isop $1) && ($me !ishop $1) { return }
  set %qkcount [ $+ [ $1 ] ] 0
  :loop
  inc %qkcount [ $+ [ $1 ] ] 1
  if ($gettok(%qkick [ $+ [ $1 ] ],%qkcount [ $+ [ $1 ] ],32) == $null) { return }
  if ($gettok(%qkick [ $+ [ $1 ] ],%qkcount [ $+ [ $1 ] ],32) !ison $1) { //set %qkick [ $+ [ $1 ] ] $remtok(%qkick [ $+ [ $1 ] ], $gettok(%qkick [ $+ [ $1 ] ], %qkcount [ $+ [ $1 ] ], 32),32) | goto loop }
  if ($gettok(%qkick [ $+ [ $1 ] ],%qkcount [ $+ [ $1 ] ],32) ison $1) {
    kick $1 $gettok(%qkick [ $+ [ $1 ] ],%qkcount [ $+ [ $1 ] ],32) $iif(%kb.reason != $null,$replace(%kb.reason,&url&,$readini(ini\channels.ini,$1,URL)),Out)
    //set %qkick [ $+ [ $1 ] ] $remtok(%qkick [ $+ [ $1 ] ], $gettok(%qkick [ $+ [ $1 ] ], %qkcount [ $+ [ $1 ] ], 32),32)
    goto loop
  }
}
#ban on
on @!*:ban:#: {
  if (($banmask iswm $address($me,5)) && ($level($mask($address($nick,2),2)) == 500)) { 
    if (%qub [ $+ [ $chan ] ] == $null) { set %qub [ $+ [ $chan ] ] $banmask | halt }
    if ((%qub [ $+ [ $chan ] ] !== $null) && ($numtok(%qub [ $+ [ $chan ] ], 32) >= 6)) { qub $chan | set %qub [ $+ [ $chan ] ] $banmask | halt }
    else { set %qub [ $+ [ $chan ] ] %qub [ $+ [ $chan ] ] $banmask | halt } 
  }
  if (($banmask iswm $address($me,5)) && ($level($mask($address($nick,2),2)) !== 500)) {
    mode $chan -o $nick 
    if (%qub [ $+ [ $chan ] ] == $null) { set %qub [ $+ [ $chan ] ] $banmask | halt }
    if ((%qub [ $+ [ $chan ] ] !== $null) && ($numtok(%qub [ $+ [ $chan ] ], 32) >= 6)) { qub $chan | set %qub [ $+ [ $chan ] ] $banmask | halt }
    else { set %qub [ $+ [ $chan ] ] %qub [ $+ [ $chan ] ] $banmask | halt } 
  }
  if (($level($banmask) > 1) && ($level($address($nick,2)) !== 500)) { 
    mode $chan -o $nick 
    if (%qub [ $+ [ $chan ] ] == $null) { set %qub [ $+ [ $chan ] ] $banmask | halt }
    if ((%qub [ $+ [ $chan ] ] !== $null) && ($numtok(%qub [ $+ [ $chan ] ], 32) >= 6)) { qub $chan | set %qub [ $+ [ $chan ] ] $banmask | halt }
    else { set %qub [ $+ [ $chan ] ] %qub [ $+ [ $chan ] ] $banmask | halt } 
  }
  ;if (($level($address($nick,2)) > 1) && ($level($banmask) !< $level($address($nick,2)))) { halt }
  var %ban.total = $ialchan($banmask,$chan,0)
  if (%ban.total > 600) { halt }
  var %ban.current = 0
  while (%ban.total > %ban.current) {
    inc %ban.current
    var %ban.nick = $ialchan($banmask,$chan,%ban.current).nick
    if (%ban.nick == $me)  { continue }
    if ($banmask iswm $address($me,5)) { halt }
    if ($banmask iswm $address(%ban.nick,5)) {
      if (%ban.nick isop $chan)  { halt } 
      else { 
        ;/qkadd <#channel> <nick> - queues output so the bot doesn't flood itself off the server while kicking
        ;also, it won't touch channel ops
        qkadd $chan %ban.nick 
      }
    }
  }
}
#ban end
alias _enforce {
  ;Syntax: /_enforce <#channel> <hostmask>
  set %ban.total [ $+ [ $1 ] ] [ $+ [ $2 ] ]  $ialchan($2,$1,0)
  if (%ban.total [ $+ [ $1 ] ] [ $+ [ $2 ] ] > 600) { halt }
  set %ban.current [ $+ [ $1 ] ] [ $+ [ $2 ] ]  0
  if %ban.total [ $+ [ $1 ] ] [ $+ [ $2 ] ] == 0 { halt }
  qbadd2 $1 $2
  while (%ban.total [ $+ [ $1 ] ] [ $+ [ $2 ] ] > %ban.current [ $+ [ $1 ] ] [ $+ [ $2 ] ]) {
    inc %ban.current [ $+ [ $1 ] ] [ $+ [ $2 ] ]
    set %ban.nick [ $+ [ $1 ] ] [ $+ [ $2 ] ]  $ialchan($2,$1,%ban.current [ $+ [ $1 ] ] [ $+ [ $2 ] ]).nick
    if (%ban.nick [ $+ [ $1 ] ] [ $+ [ $2 ] ] == $me)  { continue }
    if ($2 iswm $address($me,5)) { halt }
    if ($2 iswm $address(%ban.nick [ $+ [ $1 ] ] [ $+ [ $2 ] ],5)) {
      if (%ban.nick [ $+ [ $1 ] ] [ $+ [ $2 ] ] isop $1)  { halt } 
      else { 
        ;/qkadd <#channel> <nick> - queues output so the bot doesn't flood itself off the server while kicking
        ;also, it won't touch channel ops
        qkadd $1 %ban.nick [ $+ [ $1 ] ] [ $+ [ $2 ] ]
      }
    }
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?