发声脚本错误
Voicing Script Bug
我正在为一个 mIRC 机器人开发一个自动 voice/devoice 脚本片段,当昵称是小写时它会读出昵称。然后,当昵称更改为大写时,它应该让人们发声,或者如果有一个大写的昵称到小写的昵称,它就会发出声音。我的问题是它无法识别语音的细微变化或用户的声音。
#lowercheck on
alias -l _c return #
alias startwithlower {
if ( ) {
return $islower($left($regsubex($,/\W+/g,$null),1))
}
else return $false
}
on @*:JOIN:#Tristram_Halls:{
if ( $startwithlower($nick) == $true ) {
mode $_c +v $nick
}
}
on @*:NICK:{
if ( ( $startwithlower($newnick) == $false ) && ( $newnick !isvoice $_c ) ) {
mode $_c -v $newnick
}
elseif ( ( $startwithlower($newnick) == $true ) && ( $newnick isvoice $_c ) ) {
mode $_c +v $newnick
}
}
ON NICK
是在 nick 上发生并为每个频道执行的动作,如果你的机器人应该处理许多频道,它应该改变你在每个频道中向用户发声的方式,你想授予他一个声音。
如果机器人仅在 1 个通道中具有 OP+ 控制,那么以下将解决您的问题(对于这两种情况,您在 isvoice
之间切换):
on @*:NICK:{
if ( ( $startwithlower($newnick) == $false ) && ( $newnick isvoice $_c ) ) {
mode $_c -v $newnick
}
elseif ( ( $startwithlower($newnick) == $true ) && ( $newnick !isvoice $_c ) ) {
mode $_c +v $newnick
}
}
更好的实现是:
#lowercheck on
alias -l _c return #
alias startwithlower {
return && $islower($left($regsubex($,/\W+/g,$null),1))
}
on @*:JOIN:#Tristram_Halls:{
if ($startwithlower($nick)) {
mode $_c +v $nick
}
}
on @*:NICK:{
if ($startwithlower($newnick)) {
if ($newnick !isvoice $_c) {
mode $_c +v $newnick
}
}
else
{
if ($newnick isvoice $_c) {
mode $_c -v $newnick
}
}
}
我正在为一个 mIRC 机器人开发一个自动 voice/devoice 脚本片段,当昵称是小写时它会读出昵称。然后,当昵称更改为大写时,它应该让人们发声,或者如果有一个大写的昵称到小写的昵称,它就会发出声音。我的问题是它无法识别语音的细微变化或用户的声音。
#lowercheck on
alias -l _c return #
alias startwithlower {
if ( ) {
return $islower($left($regsubex($,/\W+/g,$null),1))
}
else return $false
}
on @*:JOIN:#Tristram_Halls:{
if ( $startwithlower($nick) == $true ) {
mode $_c +v $nick
}
}
on @*:NICK:{
if ( ( $startwithlower($newnick) == $false ) && ( $newnick !isvoice $_c ) ) {
mode $_c -v $newnick
}
elseif ( ( $startwithlower($newnick) == $true ) && ( $newnick isvoice $_c ) ) {
mode $_c +v $newnick
}
}
ON NICK
是在 nick 上发生并为每个频道执行的动作,如果你的机器人应该处理许多频道,它应该改变你在每个频道中向用户发声的方式,你想授予他一个声音。
如果机器人仅在 1 个通道中具有 OP+ 控制,那么以下将解决您的问题(对于这两种情况,您在 isvoice
之间切换):
on @*:NICK:{
if ( ( $startwithlower($newnick) == $false ) && ( $newnick isvoice $_c ) ) {
mode $_c -v $newnick
}
elseif ( ( $startwithlower($newnick) == $true ) && ( $newnick !isvoice $_c ) ) {
mode $_c +v $newnick
}
}
更好的实现是:
#lowercheck on
alias -l _c return #
alias startwithlower {
return && $islower($left($regsubex($,/\W+/g,$null),1))
}
on @*:JOIN:#Tristram_Halls:{
if ($startwithlower($nick)) {
mode $_c +v $nick
}
}
on @*:NICK:{
if ($startwithlower($newnick)) {
if ($newnick !isvoice $_c) {
mode $_c +v $newnick
}
}
else
{
if ($newnick isvoice $_c) {
mode $_c -v $newnick
}
}
}