04.08.2005, 19:37 Uhr
Hab 3 scripte zusammengefügt um den bot über trigger nice bedienenzu können
vllt braucht das ja jemand
greets ide
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 Functionvllt braucht das ja jemand
greets ide
