AnGelBot-Portal²

Normale Version: AntiAd umgeschrieben -> DeVoice 5 min -> HOP nicht mög
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Grundlage war das AntiAd-Script von Sp33d.

Allerdings wollte ich nur DeVoice für 5 min.

Problem war, dass der User /hop't und schon hatter wieder voice.

Hier isses so dass der Bot den User anlegt (.adduser). Mit der Flag +D aus dem Auto-DeVoiceScript (muss installiert sein). Sonst keine Flags.
Nach den 5 Minuten wird der User removed, und bekommt so wieder sein Voice.... bis zur nächsten ad Smile

Code:
Const INIFile_Chan = "ini_AntiAdChan.ini"
Const INIFile_User = "ini_AntiAdUser.ini"
Const Version = "AntiAd Script 1.0c by Sp33d | modified by Virus"

Sub Init()
  Script Version
  AddCommand "adsetup", Cl_Mas, "+m", "2*** .adsetup <#channel>##  14Zeigt das Setup zum angegebenen Channel an."
  Hook "Chan_Msg"
  Hook "Commands"
End Sub

Sub Commands(vSock, RegUser, Flags, Line)
  If LCase(Param(Line, 1)) = ".adsetup" Then
    If Param(Line, 2) <> "" Then
      If Left(Param(Line, 2), 1) = "#" Then
        GrabUser vSock, "Anti-Ad Setup", "AntiAd"
        SetSockTag vSock, "~drawmenu~ " & Param(Line, 2)
        AntiAd vSock, RegUser, Flags, ""
      Else
        TU vSock, "5*** Usage: .adsetup <[+#&]channel>"
      End If
    Else
      TU vSock, "5*** Usage: .adsetup <[+#&]channel>"
    End If
  End If
End Sub

Sub AntiAd(vSock, RegUser, Flags, Line)
  If Param(Line, 1) = "0" Then
    If LCase(Param(GetSockTag(vSock), 1)) = "mainmenu" Then
      TU vsock, "10*** Saving settings..."
      ReleaseUser vSock
    ElseIf InStr(1, LCase(GetSockTag(vSock)), "submenu") > 0 Then
      SetSockTag vSock, "~drawmenu~"
      AntiAd vSock, RegUser, Flags, ""
    End If
    Exit Sub
  End If  

  Select Case LCase(Param(GetSockTag(vSock), 1))
    Case "~drawmenu~"
      TU vSock, " 11,0,%0,11%'12,11,%11,12%'2,12,%12,2%'1,2,%2,1%'1,1_______________2,1'​%1,2%,12,2'%2,12%,11,12'%12,11%,0,11'%11,0%,"
      TU vSock, "11,0,%0,11%'12,11,%11,12%'2,12,%12,2%'1,2,%2,1%'1,1_0,1 Anti-Ad Setup 1,1_2,1'%1,2%,12,2'%2,12%,11,12'%12,11%,0,11'%11,0%,"
      TU vSock, " 11,0,%0,11%'12,11,%11,12%'2,12,%12,2%'1,2,%2,1%'1,1_______________2,1'​%1,2%,12,2'%2,12%,11,12'%12,11%,0,11'%11,0%,"
      TU vSock, " "
      TU vSock, "Welcome to the setup of " & Version & "!"
      TU vSock, "Current settings for " & Param(GetSockTag(vSock), 2) & ":"
      TU vSock, " "
      TU vSock, "2 1) Anti-Ad14...: " & IIf(LCase(ReadINIString(Param(GetSockTag(vSock), 2), "Status", "", INIFile_Chan)) = "on", "3ON", "4OFF")
      TU vSock, "2 2) DeVoice ops14..: " & IIf(LCase(ReadINIString(Param(GetSockTag(vSock), 2), "DVOps", "", INIFile_Chan)) = "yes", "3YES", "4NO")
      TU vSock, " "
      TU vSock, "Enter a setting number or enter '0' to leave the setup."
      TU vSock, "You can use shortcuts like '1 yes' or '2 no'."
      SetSockTag vSock, "MainMenu " & Param(GetSockTag(vSock), 2)
    Case "mainmenu"
      Select Case Param(Line, 1)
        Case 1, 2
          If Left(Line, 1) = "." Then
            TU vSock, "5*** You can't use bot commands in phpBackend-Setup!"
            Exit Sub
          End If
          If Param(Line, 2) <> "" Then
            Select Case LCase(Param(Line, 1))
              Case 1
                If LCase(Param(Line, 2)) = "on" Then
                  WriteINIString Param(GetSockTag(vSock), 2), "Status", "on", INIFile_Chan
                  SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 2)
                  AntiAd vSock, RegUser, Flags, ""
                ElseIf LCase(Param(Line, 2)) = "off" Then
                  WriteINIString Param(GetSockTag(vSock), 2), "Status", "off", INIFile_Chan
                  SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 2)
                  AntiAd vSock, RegUser, Flags, ""
                Else
                  TU vSock, "5*** Please enter 'on' or 'off' after the setting number."
                  Exit Sub
                End If
              Case 2
                If LCase(Param(Line, 2)) = "yes" Then
                  WriteINIString Param(GetSockTag(vSock), 2), "DVOps", "yes", INIFile_Chan
                  SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 2)
                  AntiAd vSock, RegUser, Flags, ""
                ElseIf LCase(Param(Line, 2)) = "no" Then
                  WriteINIString Param(GetSockTag(vSock), 2), "DVOps", "no", INIFile_Chan
                  SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 2)
                  AntiAd vSock, RegUser, Flags, ""
                Else
                  TU vSock, "5*** Please enter 'yes' or 'no' after the setting number."
                  Exit Sub
                End If
            End Select
          Else
            SetSockTag vSock, "~drawsubmenu~ " & Param(GetSockTag(vSock), 2)
            AntiAd vSock, RegUser, Flags, Param(Line, 1)
          End If
        Case Else
          TU vSock, "5*** Please enter a valid number."
      End Select
    Case "~drawsubmenu~"
      If Left(Line, 1) = "." Then
        TU vSock, "5*** You can't use bot commands in phpBackend-Setup!"
        Exit Sub
      End If
      Select Case Param(Line, 1)
        Case 1
          TU vSock, "21) 1Anti-Ad"
          TU vSock, "14    Specifies wheter the Ad-Protection is"
          TU vSock, "14    activated or not."
          TU vSock, ""
          TU vSock, "Choose wheter 'on' or 'off' to either activate or"
          TU vSock, "deactivate it, type '0' to cancel setup."
          SetSockTag vSock, "submenu 1 " & Param(GetSockTag(vSock), 2)
        Case 2
          TU vSock, "22) 1DeVoice-Ops"
          TU vSock, "14    Specifies wheter Anti-Ad is allowed to harm"
          TU vSock, "14    Ops as well."
          TU vSock, ""
          TU vSock, "Choose wheter 'yes' or 'no' to either activate or"
          TU vSock, "deactivate it, type '0' to cancel setup."
          SetSockTag vSock, "submenu 2 " & Param(GetSockTag(vSock), 2)
       End Select
    Case "submenu"
      Select Case Param(GetSockTag(vSock), 2)
        Case 1
          If LCase(Param(Line, 1)) = "on" Then
            WriteINIString Param(GetSockTag(vSock), 3), "Status", "on", INIFile_Chan
            SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 3)
            AntiAd vSock, RegUser, Flags, ""
          ElseIf LCase(Param(Line, 1)) = "off" Then
            WriteINIString Param(GetSockTag(vSock), 3), "Status", "off", INIFile_Chan
            SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 3)
            AntiAd vSock, RegUser, Flags, ""
          Else
            TU vSock, "5*** Please enter 'on', 'off' or '0'."
            Exit Sub
          End If
        Case 2
          If LCase(Param(Line, 1)) = "yes" Then
            WriteINIString Param(GetSockTag(vSock), 3), "DVOps", "yes", INIFile_Chan
            SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 3)
            AntiAd vSock, RegUser, Flags, ""
          ElseIf LCase(Param(Line, 1)) = "no" Then
            WriteINIString Param(GetSockTag(vSock), 3), "DVOps", "no", INIFile_Chan
            SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 3)
            AntiAd vSock, RegUser, Flags, ""
          Else
            TU vSock, "5*** Please enter 'yes', 'no' or '0'."
            Exit Sub
          End If
      End Select
  End Select
End Sub

Sub Chan_Msg(Chan, Nick, RegUser, Line)
  If ReadINIString(Chan, "Status", "", INIFile_Chan) = "on" Then
    If Instr(1, LCase(Line), "#") > 0 Or Instr(1, LCase(Line), "www.") > 0 Or Instr(1, LCase(Line), "http://") > 0 Then
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+f") Or MatchFlags(GetUserChanFlags(RegUser, Chan), "+b") Then
        SendLine "NOTICE " & Nick & " :Violation: Do not advertise on " & Chan & "! [next time: warning]", 1
        Exit Sub
      ElseIf IsOp(Nick, Chan) And ReadINIString(Chan, "DVOps", "yes", INIFile_Chan) = "no" then
        SendLine "NOTICE " & Nick & " :Violation: Do not advertise on " & Chan & "! [next time: warning]", 1
        Exit Sub
      End If
      Select Case ReadINIString(Nick, "Violations", "0", INIFile_User)
        Case "0"
          WriteINIString Nick, "Violations", "0", INIFile_User
          TimedCommand "DoReVoice " & Chr(34) & Chan & Chr(34) & ", " & Chr(34) & Nick & Chr(34), 300
          SendLine "MODE " & Chan & " -v " & Nick , 1
      ExecuteCommand 0, ".adduser " & Nick
      ExecuteCommand 0, ".chattr " & Nick & " +D-fp "
      SendLine "NOTICE " & Nick & " :Violation: Do not advertise on " & Chan & "! [you got: 5 min temp-devoice]", 3
      End Select
    End If
  End If
End Sub

Sub DoReVoice(Chan, Nick)
  ExecuteCommand 0, ".chattr " & Nick & " -D "
  ExecuteCommand 0, ".remuser " & Nick
  SendLine "MODE " & Chan & " +v " & Nick, 1
End Sub

Viel Spass,
Virus

(Hoffe das hat keine Bugs... Smile )
Das is cool aba es gibt einen neuen Trend man schreibt jetzt [raute]channel kann man das auch noch irgendwie einbringen als violation?
Standart:
Code:
If Instr(1, LCase(Line), "#") > 0 Or Instr(1, LCase(Line), "www.") > 0 Or Instr(1, LCase(Line), "http://") > 0 Then

Verändert:
Code:
If Instr(1, LCase(Line), "#") > 0 Or Instr(1, LCase(Line), "www.") > 0 Or Instr(1, LCase(Line), "http://") > 0 Or Instr(1, LCase(Line), "[r]") > 0 Or Instr(1, LCase(Line), "[raute]") > 0 Then
Es hat aber nicht jeder +m in seinem Channel. Am besten ist es doch dem User Op zu nehmen und dann einen Time-Ban auf seinen Host zu setzen. Er kann dann nicht mehr reden und auch keinen mehr stören. Smile
Referenz-URLs