AnGelBot-Portal²

Normale Version: on voice -> devoice
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
hiho

also ich suchen ein script das sobald ein user von einem op gevoiced wird das der bot den user sofort devoiced

ich hoffe ihr koennt mir helfen
Das folgende Script ist eine kl. Abwandlung vom Auto-Devoice Script und sollte alle User devoicen die nicht +v im Bot haben.

Code:
Const ActiveChannels = "#channel1 #channel2"

Sub Init()
  Script "Auto-Devoice Script 1.0a by Sp33d"
  Hook "Mode"
  Hook "Join"
End Sub

Sub Join(Chan, Nick, RegUser, Flags)
  If Not InStr(1, " " & LCase(ActiveChannels) & " ", " " & LCase(Chan) & " ") > 0 Then Exit Sub

  If Nick = MyNick Then
    CNum = ChanNum(Chan)
    TimedCommand "CheckChan(""" & Chan & """)", 3
  End If
End Sub

Sub CheckChan(Chan)
  CNum = ChanNum(Chan)
  For i = 0 To ChanUserCount(CNum)
    If ChanUser(CNum, i, CU_RegUser) <> vbNullString Then
      Flags = GetUserChanFlags(ChanUser(CNum, i, CU_RegUser), Chan)
      If IsVoice(ChanUser(CNum, i, CU_Nick), Chan) And MatchFlags(Flags, "-v") Then
        SendLine "MODE " & Chan & " -v " & ChanUser(CNum, i, CU_Nick), 1
      End If
    Else
      If IsVoice(ChanUser(CNum, i, CU_Nick), Chan) Then
        SendLine "MODE " & Chan & " -v " & ChanUser(CNum, i, CU_Nick), 1
      End If
    End If
  Next
End Sub

Sub Mode(Nick, RegUser, Chan, Line)
  If Not InStr(1, " " & LCase(ActiveChannels) & " ", " " & LCase(Chan) & " ") > 0 Then Exit Sub

  If MatchFlags(Param(Line, 1), "+v") Then
    Users = Trim(GetRest(Line, 2))
    If InStr(1, Users, " ") Then
      Users = Split(Users, " ")
      For i = 0 To UBound(Users)
        Flags = GetUserChanFlags(GetUsername(Users(i), Chan), Chan)
        If IsVoice(Users(i), Chan) And MatchFlags(Flags, "-v") Then
          SendLine "MODE " & Chan & " -v " & Users(i), 1
        End If
      Next
    Else
      Flags = GetUserChanFlags(GetUsername(Users, Chan), Chan)
      If IsVoice(Users, Chan) And MatchFlags(Flags, "-v") Then
        SendLine "MODE " & Chan & " -v " & Users, 1
      End If
    End If
  End If
End Sub

Function GetUsername(Nick, Chan)
  CNum = ChanNum(Chan)
  For i = 0 To ChanUserCount(CNum)
    If ChanUser(CNum, i, CU_Nick) = Nick Then
      GetUsername = ChanUser(CNum, i, CU_RegUser)
      Exit Function
    End If
  Next
End Function

[edit] Einfach deine Channels oben einsetzen (wo "#channel1 #channel2" steht)
juhu es funtz aber es waere noch gut wenn ich das bloss fuer ein channel aktivierbar waer net fuer alle

scho ma danke ich vorraus :D
Referenz-URLs