Seb icon

Delay Voice +Dm (Undernet)

Seb | PRO | 02/24/26 03:48:25 PM UTC (Edited) | 0 ⭐ | 10067 👁️ | Never ⏰ | [protection, mirc, AdiIRC]
mIRC |

2.79 KB

|

None

|

0 👍

/

0 👎

; ================================================================
; Delay Hidden Voice Script (+Dm Auto Voice Handler)
; ================================================================
; Usage:
; This script is designed for Undernet channels using mode +Dm
; (Delay Join + Moderated). When enabled, users join the channel
; without voice and are automatically voiced (+v) after a short delay.
;
; Features:
; - Automatically scans joining users via NAMES reply (RAW 355)
; - WHOIS checks users before voicing
; - Voices users after a short delay (5 seconds)
; - Includes anti-flood protection when unhiding users
; - Toggle-safe with timer cleanup
;
; Requirements:
; - Must be on Undernet
; - Requires channel operator access to set +Dm and +v
;
; Notes:
; - The script sets channel mode +Dm when enabled.
; - When disabled, it removes +Dm and clears timers.
; - Uses a temporary hash system to prevent voice flooding.
; ================================================================
menu channel, {
  $iif(undernet isin $network,Delay Voice)
  ..ON:husers | mode $chan +Dm
  ..OFF:husers | mode $chan -Dm
}
 
alias dm.off { 
  .names -d $chan
  if ($timer(hUsers) != $null) {
    .timerhUsers off 
    unset %huserchan 
    echo -at Delay Hidden voice Script is Off!
    .mode $chan -Dm
    unhide $chan
  }
}
 
alias dm.on { 
  .timerhUsers 0 15 .names -d $chan 
  set %huserchan $chan
  .mode $chan +Dm
  echo -at Delay Hidden voice Script is On!
}
 
raw 355:*: {
  if ( $4 == $null ) { HALT }
  else {
    set %allnicks $4-
    set %i 1
    :next
    set %nick $gettok(%allnicks,%i, 32)
    if %nick == $null goto done
    if $istok( %nrdone,%nick,32 ) { inc %i | goto next }
    .set -u60 %nrdone %nrdone %nick
    .enable #ghost
    .whois %nick
    ;.timern 1 1 .notice %nick You Are hidden under +Dm channel modes, in a moment you will be voiced(+v) and you will be able to speak.
    .timerv 1 5 mode %huserchan +v %nick
    inc %i
    goto next
    :done
  }
  halt
}
 
raw 366:*: halt
 
#ghost off
raw 301:*: halt
raw 310:*: halt
raw 311:*: { echo -at 4 $+ Scanning Hidden User: $address($2,5)  | halt }
raw 312:*: halt
raw 313:*: halt
raw 330:*: halt
raw 319:*: halt
raw 317:*: halt
raw 318:*: { .timer 1 15 .disable #ghost | haltdef }
#ghost end
 
alias unhide {
  hadd -mu4 noflood plx 1
  .timer 1 0 names -d $1
}
 
raw 355:*:{
  if ( $hget(noflood,plx) ) {
    var %total = $numtok($4-,32)
    hadd -mu15 user list $4-
    var %x = $hget(user,0).item
    while ( %x > 0 ) {
      var %a = $gettok($hget(user,list),1-6,32)
      .timer 1 0 mode $3 +vvvvvv %a
      .timer 1 1 mode $3 -vvvvvv %a
      hadd user list $gettok($hget(user,list),7-,32)
      dec %x 6
    }
    HALT
  }
}
raw 366:*:{ if ( $Hget(noflood,plx) ) { HALT } }
 

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎