AnGelBot-Portal²

Normale Version: Allroundbedienungsscript
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hab 3 scripte zusammengefügt um den bot über trigger nice bedienenzu können

Code:
' Allroundbedienungs-Script zusammengefügt von Idefix
' thx to:

' ================================================================================​==========================
' Op/Voice/Kick Script by samiyah!
' [ #lamerpark @ de.quakenet.org - www.lamerpark.com ]
' ================================================================================​==========================

' ================================================================================​==========================
' PartyLine-Script 1.0a
' Programmiert von gangasta
' ================================================================================​==========================

' ================================================================================​==========================
' Channel-Join 1.0a  by Idefix
' ================================================================================​==========================

Dim cmd_prefix, max_matches, protect_me, protect_owner

Sub Init()
    Script "Allroundbedienungs-Script 1.0a"
    Hook "Chan_Msg"
    cmd_prefix = ReadINIString("Others", "CMDPrefix", "!", "angel.ini")


    ' //- CONFIG/README -\\

    ' BEFEHLE:
    ' !kick [wildcard] [wildcard] ...
    ' !op [wildcard] [wildcard] ...
    ' !deop [wildcard] [wildcard] ...
    ' !v [wildcard] [wildcard] ...
    ' !dev [wildcard] [wildcard] ...

    ' ERKLÄRUNG:
    ' !op         - ohne Parameter, wird DICH oppen, dasselbe gilt für alle anderen Befehle
    ' !op *     - wird alle User Kicken, es sei denn max_matches lässt dies nicht zu
    ' !op b* a* -alph* -br* ist das selbe wie: !op +b* +a* -alph* -br*
    ' Kickt alle User die mit a oder b anfangen, ausser die die mit alph oder br anfangen, das + ist Optional!
    ' Bedingung ist das der User der das Kommando ausführt +o als ChannelFlag im Bot hat

    ' EINSTELLUNGEN:

    ' Hier können noch einige Sachen eingestellt werden:

    ' max_matches (0/1,2,3,...): Wieviel User dürfen Maximal betroffen sein,
    ' max_matches = 4 verhindert !kick * (da nur maximal 4 User betroffen sein dürfen)
    ' max_matches = 0 erlaubt !kick *
    max_matches = 0

    ' protect_me (0/1): Schützt Bot vor Bot-DeOp und davor sich selbst zu kicken
    protect_me = 1

    ' protect_owner (0/1): Schützt den SuperOwner vor DeOp oder Kick durch andere
    protect_owner = 1

    ' Schutz trifft nur bei Op/DeOp/Kick in Kraft, bei Voice/DeVoice nicht!

    ' \\- CONFIG/README ENDE -//

   '  Readme:
   '
   '  Befehle nur für Owner ausführbar.
   '
   '  Befehle: ( != Prefix )
   '  !join <#channel>       Bringt den Bot dazu <#channel> zu Joinen.
   '  !part                  Bringt den Bot dazu den aktiven Channel zu verlassen.
   '  !part <#channel>       Bringt den Bot dazu <#channel> zu verlassen.
   '  !perform               Bringt den Bot dazu den aktiven Channel zur Permanenten Channelliste hinzuzfügen.
   '  !perform <#channel>    Bringt den Bot dazu <#channel>  zur Permanenten Channelliste hinzuzfügen.
   '  !endperform            Bringt den Bot dazu den aktiven Channel von Permanenten Channelliste zu streichen.
   '  !endperform <#channel> Bringt den Bot dazu <#channel>  von Permanenten Channelliste zu streichen.
   '  !rejoin                Bringt den Bot dazu im aktiven Channel zu Hoppen.
   '  !rejoin <#channel>     Bringt den Bot dazu <#channel> zu Hoppen.
   '  !adduser <nick>        Fügt neuen Benutzer mit Standardflags zu.
   '  !remuser <nick>        Löscht Benutzer.
   '  !flags <nick> +-flags  Fügt dem Benützer Globale flags zu (+afijmnopstvw), bzw. löscht sie (-afijmnopstvw)
   '  !flags <nick> +-flags <#channel> Fügt dem Benützer flags (+afijmnopstvw) in <#channel> zu, bzw. löscht sie (-afijmnopstvw)
   '                      
   '   Für den befehl !flags müssen Nick und Benutzername gleich sein.

End Sub

Sub Chan_Msg(Chan, Nick, RegUser, Line)

Select Case lcase(Param(Line,1))
    Case cmd_prefix & "op"
        if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") then Exit Sub
        if (Param(Line,2) = "") then SendLine "MODE " & Chan & " +o " & Nick, 1: Exit Sub
        
        Exeqt Chan, "MODE %chan% +o %nick%", GetRest(Line,2), Nick, 1
        
    case cmd_prefix & "deop"
            if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") then Exit Sub    
            if (Param(Line,2) = "") then SendLine "MODE " & Chan & " -o " & Nick, 3: Exit Sub
        
        Exeqt Chan, "MODE %chan% -o %nick%", GetRest(Line,2), Nick, 1

    case cmd_prefix & "kick"
            if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") then Exit Sub    
            if (Param(Line,2) = "") then SendLine "KICK " & Chan & " " & Nick, 3: Exit Sub
        
        Exeqt Chan, "KICK %chan% %nick% Bye!", GetRest(Line,2), Nick, 1

    case cmd_prefix & "v"
        if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") then Exit Sub
        if (Param(Line,2) = "") then SendLine "MODE " & Chan & " +v " & Nick, 1: Exit Sub
        
        Exeqt Chan, "MODE %chan% +v %nick%", GetRest(Line,2), Nick, 0

    case cmd_prefix & "dev"
        if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") then Exit Sub
            if (Param(Line,2) = "") then SendLine "MODE " & Chan & " -v " & Nick, 3: Exit Sub
        
        Exeqt Chan, "MODE %chan% -v %nick%", GetRest(Line,2), Nick, 0
End Select



Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "join"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
         ExecuteCommand 0 , ".join "  & Param(Line, 2)
         SendLine "NOTICE " & Nick & " :Joining Channel "  & Param(Line, 2) & " ....  Successfull!", 2
      Else            
       SendLine "NOTICE " & Nick & " :Nice Try ;)", 2  
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "part"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
       If Param(line, 2) = "" then  
        ExecuteCommand 0 , ".part "  & chan
       Else
        ExecuteCommand 0 , ".part "  & Param(line, 2)
        SendLine "NOTICE " & Nick & " :I Left " & Param(Line, 2)  ,2  
       End If  
      Else            
       SendLine "NOTICE " & Nick & " :Nice Try ;)", 2  
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "perform"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "" Then
         ExecuteCommand 0 , ".+chan " & chan
         SendLine "NOTICE " & Nick & " :Added This Channel to My perform list ! ", 2
        ELSE
         ExecuteCommand 0 , ".+chan "  & Param(Line, 2)
         SendLine "NOTICE " & Nick & " :Added Channel "  & Param(Line, 2) & " to My perform list!", 2
        End If
      Else            
       SendLine "NOTICE " & Nick & " :Nice Try ;)", 2  
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "endperform"
     If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
      If Param(Line, 2) = "" then    
       ExecuteCommand 0 , ".-chan "  & chan
       SendLine "NOTICE " & Nick & " :Removed This Channel from My perform list ! ", 2
      ELSE
       ExecuteCommand 0 , ".-chan " & Param(Line, 2)
       SendLine "NOTICE " & Nick & " :Removed " & Param(Line, 2) & " from MY perform list ! ",2
      End If
     Else            
      SendLine "NOTICE " & Nick & " :Nice Try ;)", 2  
     End If
  End Select
  Select Case LCase(Param(Line, 1))
   Case cmd_prefix & "rejoin"
     If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
      If Param(Line, 2) = "" then    
       ExecuteCommand 0 , ".rejoin "  & chan
      ELSE
       ExecuteCommand 0 , ".rejoin " & Param(Line, 2)
      End If
     Else            
      SendLine "NOTICE " & Nick & " :Nice Try ;)", 2  
     End If
  End Select


Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "adduser"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "*" Then
          For i = 1 To ChanUserCount(ChanNum(Chan))
            If ChanUser(ChanNum(Chan), i, CU_RegUser) = vbNullString Then
              ExecuteCommand 0, ".adduser " & ChanUser(ChanNum(Chan), i, CU_Nick)
            End If
          Next
          SendLine "NOTICE " & Nick & " :All users in " & Chan & " have been added!", 2
        ElseIf IsOn(Param(Line, 2), Chan) Then
          ExecuteCommand 0, ".adduser " & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :User has been added!", 2
        Else
          SendLine "NOTICE " & Nick & " :No such user in " & Chan, 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick & , 2  
      End If
    Case cmd_prefix & "flags"
      If IsOn(Param(Line, 2), Chan) Then
        If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
          ExecuteCommand 0, ".chattr " & GetRest(Line, 2)
          SendLine "NOTICE " & Nick & " :Flags set!", 2
        Else
          SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick & , 2  
        End If
      Else
        SendLine "NOTICE " & Nick & " :No such user in " & Chan, 2
      End If
    Case cmd_prefix & "remuser"
      If IsOn(Param(Line, 2), Chan) Then
        If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
          ExecuteCommand 0, ".remuser " & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :User has been removed with all data!", 2
        Else
          SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick & , 2  
        End If
      Else
        SendLine "NOTICE " & Nick & " :No such user in " & Chan, 2
      End If
  End Select

End Sub

Sub Exeqt(Chan, CmdStr, Line, Nick, protected)
Dim matchnicks

matchnicks = GetMatches(Chan,Line,protected)

if (protected) and (max_matches > 0) and (ubound(matchnicks) + 1 > max_matches) then SendLine "NOTICE " & Nick & " :Zuviele Matches!",3:Exit Sub

for u = 0 to ubound(matchnicks)
    SendLine replace(replace(CmdStr,"%nick%",matchnicks(u)),"%chan%",Chan), 2
next

End Sub

Function GetMatches(Chan,Line,Protect)
    dim nicks, match_tmp, match_nicks
    dim schutz, betroffen

    nicks = Split(Line,chr(32))
    CNum = ChanNum(Chan)

    For i = 1 To ChanUserCount(CNum)
        schutz = 0
        betroffen = 0

        for j = 0 to ubound(nicks)
            select case left(nicks(j),1)
                case "-"
                    if wildmatch(mid(nicks(j),2),ChanUser(CNum, i, CU_Nick)) then schutz = 1
                case "+"
                    if wildmatch(mid(nicks(j),2),ChanUser(CNum, i, CU_Nick)) then betroffen = 1
                case else
                    if wildmatch(nicks(j),ChanUser(CNum, i, CU_Nick)) then betroffen = 1
            end select
        next

        if (Protect) and (ChanUser(CNum,i,CU_Nick) = MyNick) And (protect_me) then schutz = 1
        if (Protect) and (ChanUser(CNum,i,CU_RegUser) <> "") And (MatchFlags(GetUserChanFlags(ChanUser(CNum,i,CU_RegUser), Chan),"+s")) And (protect_owner) then schutz = 1

        if not schutz and betroffen then match_tmp = match_tmp & " " & ChanUser(CNum,i,CU_Nick)
    Next

    match_nicks = split(Trim(match_tmp),chr(32))

    GetMatches = match_nicks
End Function

vllt braucht das ja jemand

greets ide
Nächstes mal bitte Code-Tag benutzen. Zum zweiten ist dein Script einwenig buggy. Es lässt sich nicht einmal einwandfrei laden. (Zumindest nicht bei mir). Wäre schön wenn du das noch ändern könntest.

Hab deinen Beitrag zwecks des Code-Tags editiert.

sts
Ups Smile
Thx für die Korrektur.

2. Versuch:

Code:
'Allroundbedienungs-Script zusammengefügt von Idefix
'thx to:

'===============================================================================​===========================
'Op/Voice/Kick Script by samiyah!
'[ #lamerpark @ de.quakenet.org - www.lamerpark.com ]
'===============================================================================​===========================

'===============================================================================​===========================
'PartyLine-Script 1.0a
'Programmiert von gangasta
'===============================================================================​===========================

'===============================================================================​===========================
'Channel-Join 1.0a  by Idefix
'===============================================================================​===========================

Dim cmd_prefix, max_matches, protect_me, protect_owner

Sub Init()
  Script "Allroundbedienungs-Script 1.0a"
  Hook "Chan_Msg"
  cmd_prefix = ReadINIString("Others", "CMDPrefix", "!", "angel.ini")
  
  
  '//- CONFIG/README -\\
  
  'BEFEHLE:
  '!kick [wildcard] [wildcard] ...
  '!op [wildcard] [wildcard] ...
  '!deop [wildcard] [wildcard] ...
  '!v [wildcard] [wildcard] ...
  '!dev [wildcard] [wildcard] ...
  
  'ERKLÄRUNG:
  '!op       - ohne Parameter, wird DICH oppen, dasselbe gilt für alle anderen Befehle
  '!op *    - wird alle User Kicken, es sei denn max_matches lässt dies nicht zu
  '!op b* a* -alph* -br* ist das selbe wie: !op +b* +a* -alph* -br*
  'Kickt alle User die mit a oder b anfangen, ausser die die mit alph oder br anfangen, das + ist Optional!
  'Bedingung ist das der User der das Kommando ausführt +o als ChannelFlag im Bot hat
  
  'EINSTELLUNGEN:
  
  'Hier können noch einige Sachen eingestellt werden:
  
  'max_matches (0/1,2,3,...): Wieviel User dürfen Maximal betroffen sein,
  'max_matches = 4 verhindert !kick * (da nur maximal 4 User betroffen sein dürfen)
  'max_matches = 0 erlaubt !kick *
  max_matches = 0
  
  'protect_me (0/1): Schützt Bot vor Bot-DeOp und davor sich selbst zu kicken
  protect_me = 1
  
  'protect_owner (0/1): Schützt den SuperOwner vor DeOp oder Kick durch andere
  protect_owner = 1
  
  'Schutz trifft nur bei Op/DeOp/Kick in Kraft, bei Voice/DeVoice nicht!
  
  '\\- CONFIG/README ENDE -//
  
  ' Readme:
  '
  ' Befehle nur für Owner ausführbar.
  '
  ' Befehle: ( != Prefix )
  ' !join <#channel>       Bringt den Bot dazu <#channel> zu Joinen.
  ' !part                  Bringt den Bot dazu den aktiven Channel zu verlassen.
  ' !part <#channel>       Bringt den Bot dazu <#channel> zu verlassen.
  ' !perform               Bringt den Bot dazu den aktiven Channel zur Permanenten Channelliste hinzuzfügen.
  ' !perform <#channel>    Bringt den Bot dazu <#channel>  zur Permanenten Channelliste hinzuzfügen.
  ' !endperform            Bringt den Bot dazu den aktiven Channel von Permanenten Channelliste zu streichen.
  ' !endperform <#channel> Bringt den Bot dazu <#channel>  von Permanenten Channelliste zu streichen.
  ' !rejoin                Bringt den Bot dazu im aktiven Channel zu Hoppen.
  ' !rejoin <#channel>     Bringt den Bot dazu <#channel> zu Hoppen.
  ' !adduser <nick>        Fügt neuen Benutzer mit Standardflags zu.
  ' !remuser <nick>        Löscht Benutzer.
  ' !flags <nick> +-flags  Fügt dem Benützer Globale flags zu (+afijmnopstvw), bzw. löscht sie (-afijmnopstvw)
  ' !flags <nick> +-flags <#channel> Fügt dem Benützer flags (+afijmnopstvw) in <#channel> zu, bzw. löscht sie (-afijmnopstvw)
  '
  '  Für den befehl !flags müssen Nick und Benutzername gleich sein.
  
End Sub

Sub Chan_Msg(Chan, Nick, RegUser, Line)
  
  Select Case lcase(Param(Line,1))
    Case cmd_prefix & "op"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "MODE " & Chan & " +o " & Nick, 1: Exit Sub
      
      Exeqt Chan, "MODE %chan% +o %nick%", GetRest(Line,2), Nick, 1
      
    Case cmd_prefix & "deop"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "MODE " & Chan & " -o " & Nick, 3: Exit Sub
      
      Exeqt Chan, "MODE %chan% -o %nick%", GetRest(Line,2), Nick, 1
      
    Case cmd_prefix & "kick"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "KICK " & Chan & " " & Nick, 3: Exit Sub
      
      Exeqt Chan, "KICK %chan% %nick% Bye!", GetRest(Line,2), Nick, 1
      
    Case cmd_prefix & "v"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "MODE " & Chan & " +v " & Nick, 1: Exit Sub
      
      Exeqt Chan, "MODE %chan% +v %nick%", GetRest(Line,2), Nick, 0
      
    Case cmd_prefix & "dev"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "MODE " & Chan & " -v " & Nick, 3: Exit Sub
      
      Exeqt Chan, "MODE %chan% -v %nick%", GetRest(Line,2), Nick, 0
  End Select
  
  
  
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "join"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        ExecuteCommand 0 , ".join "  & Param(Line, 2)
        SendLine "NOTICE " & Nick & " :Joining Channel "  & Param(Line, 2) & " ....  Successfull!", 2
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "part"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(line, 2) = "" then
          ExecuteCommand 0 , ".part "  & chan
        Else
          ExecuteCommand 0 , ".part "  & Param(line, 2)
          SendLine "NOTICE " & Nick & " :I Left " & Param(Line, 2)  ,2
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "perform"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "" Then
          ExecuteCommand 0 , ".+chan " & chan
          SendLine "NOTICE " & Nick & " :Added This Channel to My perform list ! ", 2
        Else
          ExecuteCommand 0 , ".+chan "  & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :Added Channel "  & Param(Line, 2) & " to My perform list!", 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "endperform"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "" then
          ExecuteCommand 0 , ".-chan "  & chan
          SendLine "NOTICE " & Nick & " :Removed This Channel from My perform list ! ", 2
        Else
          ExecuteCommand 0 , ".-chan " & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :Removed " & Param(Line, 2) & " from MY perform list ! ",2
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "rejoin"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "" then
          ExecuteCommand 0 , ".rejoin "  & chan
        Else
          ExecuteCommand 0 , ".rejoin " & Param(Line, 2)
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  
  
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "adduser"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "*" Then
          For i = 1 To ChanUserCount(ChanNum(Chan))
            If ChanUser(ChanNum(Chan), i, CU_RegUser) = vbNullString Then
              ExecuteCommand 0, ".adduser " & ChanUser(ChanNum(Chan), i, CU_Nick)
            End If
          Next
          SendLine "NOTICE " & Nick & " :All users in " & Chan & " have been added!", 2
        ElseIf IsOn(Param(Line, 2), Chan) Then
          ExecuteCommand 0, ".adduser " & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :User has been added!", 2
        Else
          SendLine "NOTICE " & Nick & " :No such user in " & Chan, 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick & , 2
      End If
    Case cmd_prefix & "flags"
      If IsOn(Param(Line, 2), Chan) Then
        If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
          ExecuteCommand 0, ".chattr " & GetRest(Line, 2)
          SendLine "NOTICE " & Nick & " :Flags set!", 2
        Else
          SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick & , 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :No such user in " & Chan, 2
      End If
    Case cmd_prefix & "remuser"
      If IsOn(Param(Line, 2), Chan) Then
        If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
          ExecuteCommand 0, ".remuser " & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :User has been removed with all data!", 2
        Else
          SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick & , 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :No such user in " & Chan, 2
      End If
  End Select
  
End Sub

Sub Exeqt(Chan, CmdStr, Line, Nick, protected)
  Dim matchnicks
  
  matchnicks = GetMatches(Chan,Line,protected)
  
  if (protected) and (max_matches > 0) and (ubound(matchnicks) + 1 > max_matches) Then SendLine "NOTICE " & Nick & " :Zuviele Matches!",3:Exit Sub
  
  For u = 0 To ubound(matchnicks)
    SendLine replace(replace(CmdStr,"%nick%",matchnicks(u)),"%chan%",Chan), 2
  Next
  
End Sub

Function GetMatches(Chan,Line,Protect)
  Dim nicks, match_tmp, match_nicks
  Dim schutz, betroffen
  
  nicks = Split(Line,chr(32))
  CNum = ChanNum(Chan)
  
  For i = 1 To ChanUserCount(CNum)
    schutz = 0
    betroffen = 0
    
    For j = 0 To ubound(nicks)
      Select Case left(nicks(j),1)
        Case "-"
          if wildmatch(mid(nicks(j),2),ChanUser(CNum, i, CU_Nick)) Then schutz = 1
        Case "+"
          if wildmatch(mid(nicks(j),2),ChanUser(CNum, i, CU_Nick)) Then betroffen = 1
        Case else
          if wildmatch(nicks(j),ChanUser(CNum, i, CU_Nick)) Then betroffen = 1
      End Select
    Next
    
    if (Protect) and (ChanUser(CNum,i,CU_Nick) = MyNick) And (protect_me) Then schutz = 1
    if (Protect) and (ChanUser(CNum,i,CU_RegUser) <> "") And (MatchFlags(GetUserChanFlags(ChanUser(CNum,i,CU_RegUser), Chan),"+s")) And (protect_owner) Then schutz = 1
    
    if not schutz and betroffen Then match_tmp = match_tmp & " " & ChanUser(CNum,i,CU_Nick)
  Next
  
  match_nicks = split(Trim(match_tmp),chr(32))
  
  GetMatches = match_nicks
End Function
[15:51:17] [LuxSide] Error : 1002 (Syntaxfehler)
[15:51:17] [LuxSide] Position: Line 201, Column 74
[15:51:17] [LuxSide] Context : " SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick & , 2"
[15:51:17] [LuxSide] *** End of error message
[15:51:17] [LuxSide] *** Sorry, the script couldn't be added.
Code:
'Allroundbedienungs-Script zusammengefügt von Idefix
'thx to:

'===============================================================================​===========================
'Op/Voice/Kick Script by samiyah!
'[ #lamerpark @ de.quakenet.org - www.lamerpark.com ]
'===============================================================================​===========================

'===============================================================================​===========================
'PartyLine-Script 1.0a
'Programmiert von gangasta
'===============================================================================​===========================

'===============================================================================​===========================
'Channel-Join 1.0a  by Idefix
'===============================================================================​===========================

Dim cmd_prefix, max_matches, protect_me, protect_owner

Sub Init()
  Script "Allroundbedienungs-Script 1.0a"
  Hook "Chan_Msg"
  cmd_prefix = ReadINIString("Others", "CMDPrefix", "!", "angel.ini")


  '//- CONFIG/README -\\

  'BEFEHLE:
  '!kick [wildcard] [wildcard] ...
  '!op [wildcard] [wildcard] ...
  '!deop [wildcard] [wildcard] ...
  '!v [wildcard] [wildcard] ...
  '!dev [wildcard] [wildcard] ...

  'ERKLÄRUNG:
  '!op       - ohne Parameter, wird DICH oppen, dasselbe gilt für alle anderen Befehle
  '!op *    - wird alle User Kicken, es sei denn max_matches lässt dies nicht zu
  '!op b* a* -alph* -br* ist das selbe wie: !op +b* +a* -alph* -br*
  'Kickt alle User die mit a oder b anfangen, ausser die die mit alph oder br anfangen, das + ist Optional!
  'Bedingung ist das der User der das Kommando ausführt +o als ChannelFlag im Bot hat

  'EINSTELLUNGEN:

  'Hier können noch einige Sachen eingestellt werden:

  'max_matches (0/1,2,3,...): Wieviel User dürfen Maximal betroffen sein,
  'max_matches = 4 verhindert !kick * (da nur maximal 4 User betroffen sein dürfen)
  'max_matches = 0 erlaubt !kick *
  max_matches = 0

  'protect_me (0/1): Schützt Bot vor Bot-DeOp und davor sich selbst zu kicken
  protect_me = 1

  'protect_owner (0/1): Schützt den SuperOwner vor DeOp oder Kick durch andere
  protect_owner = 1

  'Schutz trifft nur bei Op/DeOp/Kick in Kraft, bei Voice/DeVoice nicht!

  '\\- CONFIG/README ENDE -//

  ' Readme:
  '
  ' Befehle nur für Owner ausführbar.
  '
  ' Befehle: ( != Prefix )
  ' !join <#channel>       Bringt den Bot dazu <#channel> zu Joinen.
  ' !part                  Bringt den Bot dazu den aktiven Channel zu verlassen.
  ' !part <#channel>       Bringt den Bot dazu <#channel> zu verlassen.
  ' !perform               Bringt den Bot dazu den aktiven Channel zur Permanenten Channelliste hinzuzfügen.
  ' !perform <#channel>    Bringt den Bot dazu <#channel>  zur Permanenten Channelliste hinzuzfügen.
  ' !endperform            Bringt den Bot dazu den aktiven Channel von Permanenten Channelliste zu streichen.
  ' !endperform <#channel> Bringt den Bot dazu <#channel>  von Permanenten Channelliste zu streichen.
  ' !rejoin                Bringt den Bot dazu im aktiven Channel zu Hoppen.
  ' !rejoin <#channel>     Bringt den Bot dazu <#channel> zu Hoppen.
  ' !adduser <nick>        Fügt neuen Benutzer mit Standardflags zu.
  ' !remuser <nick>        Löscht Benutzer.
  ' !flags <nick> +-flags  Fügt dem Benützer Globale flags zu (+afijmnopstvw), bzw. löscht sie (-afijmnopstvw)
  ' !flags <nick> +-flags <#channel> Fügt dem Benützer flags (+afijmnopstvw) in <#channel> zu, bzw. löscht sie (-afijmnopstvw)
  '
  '  Für den befehl !flags müssen Nick und Benutzername gleich sein.

End Sub

Sub Chan_Msg(Chan, Nick, RegUser, Line)

  Select Case lcase(Param(Line,1))
    Case cmd_prefix & "op"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "MODE " & Chan & " +o " & Nick, 1: Exit Sub
    
      Exeqt Chan, "MODE %chan% +o %nick%", GetRest(Line,2), Nick, 1
    
    Case cmd_prefix & "deop"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "MODE " & Chan & " -o " & Nick, 3: Exit Sub
    
      Exeqt Chan, "MODE %chan% -o %nick%", GetRest(Line,2), Nick, 1
    
    Case cmd_prefix & "kick"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "KICK " & Chan & " " & Nick, 3: Exit Sub
    
      Exeqt Chan, "KICK %chan% %nick% Bye!", GetRest(Line,2), Nick, 1
    
    Case cmd_prefix & "v"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "MODE " & Chan & " +v " & Nick, 1: Exit Sub
    
      Exeqt Chan, "MODE %chan% +v %nick%", GetRest(Line,2), Nick, 0
    
    Case cmd_prefix & "dev"
      if not MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then Exit Sub
      if (Param(Line,2) = "") Then SendLine "MODE " & Chan & " -v " & Nick, 3: Exit Sub
    
      Exeqt Chan, "MODE %chan% -v %nick%", GetRest(Line,2), Nick, 0
  End Select



  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "join"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        ExecuteCommand 0 , ".join "  & Param(Line, 2)
        SendLine "NOTICE " & Nick & " :Joining Channel "  & Param(Line, 2) & " ....  Successfull!", 2
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "part"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(line, 2) = "" then
          ExecuteCommand 0 , ".part "  & chan
        Else
          ExecuteCommand 0 , ".part "  & Param(line, 2)
          SendLine "NOTICE " & Nick & " :I Left " & Param(Line, 2)  ,2
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "perform"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "" Then
          ExecuteCommand 0 , ".+chan " & chan
          SendLine "NOTICE " & Nick & " :Added This Channel to My perform list ! ", 2
        Else
          ExecuteCommand 0 , ".+chan "  & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :Added Channel "  & Param(Line, 2) & " to My perform list!", 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "endperform"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "" then
          ExecuteCommand 0 , ".-chan "  & chan
          SendLine "NOTICE " & Nick & " :Removed This Channel from My perform list ! ", 2
        Else
          ExecuteCommand 0 , ".-chan " & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :Removed " & Param(Line, 2) & " from MY perform list ! ",2
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select
  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "rejoin"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "" then
          ExecuteCommand 0 , ".rejoin "  & chan
        Else
          ExecuteCommand 0 , ".rejoin " & Param(Line, 2)
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
  End Select


  Select Case LCase(Param(Line, 1))
    Case cmd_prefix & "adduser"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(Line, 2) = "*" Then
          For i = 1 To ChanUserCount(ChanNum(Chan))
            If ChanUser(ChanNum(Chan), i, CU_RegUser) = vbNullString Then
              ExecuteCommand 0, ".adduser " & ChanUser(ChanNum(Chan), i, CU_Nick)
            End If
          Next
          SendLine "NOTICE " & Nick & " :All users in " & Chan & " have been added!", 2
        ElseIf IsOn(Param(Line, 2), Chan) Then
          ExecuteCommand 0, ".adduser " & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :User has been added!", 2
        Else
          SendLine "NOTICE " & Nick & " :No such user in " & Chan, 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick, 2
      End If
    Case cmd_prefix & "flags"
      If IsOn(Param(Line, 2), Chan) Then
        If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
          ExecuteCommand 0, ".chattr " & GetRest(Line, 2)
          SendLine "NOTICE " & Nick & " :Flags set!", 2
        Else
          SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick, 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :No such user in " & Chan, 2
      End If
    Case cmd_prefix & "remuser"
      If IsOn(Param(Line, 2), Chan) Then
        If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
          ExecuteCommand 0, ".remuser " & Param(Line, 2)
          SendLine "NOTICE " & Nick & " :User has been removed with all data!", 2
        Else
          SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick, 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :No such user in " & Chan, 2
      End If
  End Select

End Sub

Sub Exeqt(Chan, CmdStr, Line, Nick, protected)
  Dim matchnicks

  matchnicks = GetMatches(Chan,Line,protected)

  if (protected) and (max_matches > 0) and (ubound(matchnicks) + 1 > max_matches) Then SendLine "NOTICE " & Nick & " :Zuviele Matches!",3:Exit Sub

  For u = 0 To ubound(matchnicks)
    SendLine replace(replace(CmdStr,"%nick%",matchnicks(u)),"%chan%",Chan), 2
  Next

End Sub

Function GetMatches(Chan,Line,Protect)
  Dim nicks, match_tmp, match_nicks
  Dim schutz, betroffen

  nicks = Split(Line,chr(32))
  CNum = ChanNum(Chan)

  For i = 1 To ChanUserCount(CNum)
    schutz = 0
    betroffen = 0
  
    For j = 0 To ubound(nicks)
      Select Case left(nicks(j),1)
        Case "-"
          if wildmatch(mid(nicks(j),2),ChanUser(CNum, i, CU_Nick)) Then schutz = 1
        Case "+"
          if wildmatch(mid(nicks(j),2),ChanUser(CNum, i, CU_Nick)) Then betroffen = 1
        Case else
          if wildmatch(nicks(j),ChanUser(CNum, i, CU_Nick)) Then betroffen = 1
      End Select
    Next
  
    if (Protect) and (ChanUser(CNum,i,CU_Nick) = MyNick) And (protect_me) Then schutz = 1
    if (Protect) and (ChanUser(CNum,i,CU_RegUser) <> "") And (MatchFlags(GetUserChanFlags(ChanUser(CNum,i,CU_RegUser), Chan),"+s")) And (protect_owner) Then schutz = 1
  
    if not schutz and betroffen Then match_tmp = match_tmp & " " & ChanUser(CNum,i,CU_Nick)
  Next

  match_nicks = split(Trim(match_tmp),chr(32))

  GetMatches = match_nicks
End Function
Wenn du das nächste mal irgendwelche Scripts zusammenkopierst, dann achte bitte auf Fehler. Wink
hab da noch den gleichen fehler:

[20:45:38] [LuxSide] Error : 1002 (Syntaxfehler)
[20:45:38] [LuxSide] Position: Line 209, Column 76
[20:45:39] [LuxSide] Context : " SendLine "NOTICE " & Nick & " :You aren't a owner of " & MyNick & , 2"
[20:45:39] [LuxSide] *** End of error message
[20:45:39] [LuxSide] *** Sorry, the script couldn't be added.
sollte nun gehen.
funzt super .. vielen dank ..

aber

[21:53:02] [luxside] [21:53:02] *** Svennie did .join #ich.scheiss.auf.alles
[21:53:02] [luxside] [21:53:02] *** partyline2.asc did .join #ich.scheiss.auf.alles

der befehl kommt an .. wird jedoch nicht ausgeführt ... grübel
wozu .join O_o....
das geht doch viel einfacher!

Code:
'Join und part by etat|hell
'thx to stride

Sub Init
  Script "Join and part by etat|hell loaded..."
  Hook "Chan_msg"
End Sub

Sub Chan_msg(chan, nick, reguser, line)
  If MatchFlags(GetUserFlags(RegUser), "+s") Then
    Select Case LCase(Param(Line,1))
     Case "!j", "!join"
        If param(line,2) = "" Then Exit Sub
         Sendline "JOIN " & (param(line,2)), 2
     Case "!p", "!part"
        If param(line,2) = "" Then Exit Sub
         Sendline "PART " & (param(line,2)), 2
    End Select
  End If
End Sub
soo...^^ das funzt 100% ^^
so, hab mir mal erlaubt das in meine Script-Sammlung aufzunehemn und eine Versions-Nummer zu vergeben (für das zuletzt gepostete Script): v1.3

Wenn einer an dem Script rumfummeln und etwas verbessern sollte wäre es schön die Versions-Nummer einen hoch zu setzen, dann kann man es auseinander halten. Danke!
Seiten: 1 2
Referenz-URLs