28.07.2004, 18:46 Uhr
Sub Init()
Script "Antiovertake v0.9a by CT-Daimond"
Hook "DeOp"
Hook "Ban"
Hook "Kick"
Hook "Raw"
SpreadFlagMessage 0, "+m", "14*** antiovertakecript by CT-Daimond loaded."
End Sub
Const ActiveChannels = " #franc , #pr0gam3r "
Const stdmode = "+nt-il"
Dim rejoin, Name, Channel, host, Check
Const zeit1 = "1"
Const zeit2 = "2"
Sub DeOp(Chan, Nick, RegUser, Flags, DNick, DUser, DFlags, RemovedOp)
If InStr(1, " " & LCase(ActiveChannels) & " ", " " & LCase(Chan) & " ", 1) <= 0 Then Exit Sub
If DNick = MyNick Then
If IsOn("L", Chan) Then
SendLine "Privmsg L :op " & Chan, 1
ElseIf IsOn("Q", Chan) Then
SendLine "Privmsg Q :op " & Chan, 1
End If
End If
If IsMaster(RegUser, Nick) = vbNullString Then
SendLine "MODE " & Chan & " -o+b " & Nick & " " & Mask(Hostmask(Chan, Nick), 2), 1
Sendline "KICK " & Chan & " " & Nick & " :Th!s K!ck was sp0ns0rt by ant!0vertak3 v0.9a", 1
SendLine "MODE " & Chan & " +o " & DNick, 1
Else
SpreadFlagMessage 0, "+m", "3*** " & Nick & " deopt on " & Chan & " - no action "
End If
End Sub
Sub Ban(Nick, RegUser, Chan, HMask)
If InStr(1, " " & LCase(ActiveChannels) & " ", " " & LCase(Chan) & " ", 1) <= 0 Then Exit Sub
If IsMaster(RegUser, Nick) = vbNullString Then
SendLine "MODE " & Chan & " -o+b " & Nick & " " & Mask(Hostmask(Chan, Nick), 2), 1
Sendline "KICK " & Chan & " " & Nick & " :Th!s K!ck was sp0ns0rt by ant!0vertak3 v0.9a", 1
SendLine "MODE " & Chan & " -b " & HMask, 1
Else
If HMask = Mask(Hostmask(Chan, MyNick), 3) Then
SendLine "MODE " & Chan & " -b " & HMask, 1
End If
SpreadFlagMessage 0, "+m", "3*** " & Nick & " bannt on " & Chan & " - no action "
End If
End Sub
Sub Kick(Chan, Nick, RegUser, Flags, KNick, KUser, KFlags, Message)
If InStr(1, " " & LCase(ActiveChannels) & " ", " " & LCase(Chan) & " ", 1) <= 0 Then Exit Sub
If IsMaster(RegUser, Nick) = vbNullString Then
If KNick = MyNick Then
SendLine "PRIVMSG L :invite " & Chan, 1
SendLine "PRIVMSG Q :invite " & Chan, 1
Name = Nick
host = Mask(Hostmask(Chan, Nick), 2)
Channel = Chan
Check = CBOOL(1)
TimedCommand "sicherung", zeit1
TimedCommand "sicherung2", zeit2
Else
SendLine "MODE " & Chan & " -o+b " & Nick & " " & Mask(Hostmask(Chan, Nick), 2), 1
Sendline "KICK " & Chan & " " & Nick & " :Th!s K!ck was sp0ns0rt by ant!0vertak3 v0.9a", 1
SendLine "INVITE " & KNick & " "& Chan, 2
End If
Else
SpreadFlagMessage 0, "+m", "3*** " & Nick & " kickt on " & Chan & " - no action "
End If
End Sub
Sub sicherung()
If Check = CBOOL(1) Then
If Not IsOp(MyNick, Channel) Then
If IsOn("L", Channel) Then
SendLine "Privmsg L :op " & Channel, 1
ElseIf IsOn("Q", Channel) Then
SendLine "Privmsg Q :op " & Channel, 1
End If
End If
TimedCommand "sicherung", zeit1
End If
End Sub
Sub sicherung2()
If Check = CBOOL(1) Then
If IsOp(MyNick, Channel) Then
SendLine "MODE " & Channel & " -o+b " & Name & " " & host, 1
Sendline "KICK " & Channel & " " & Name & " :Th!s K!ck was sp0ns0rt by ant!0vertak3 v0.9a", 1
modes = ChanMode(ChanNum(Channel))
If Not Instr(1, modes, "k", 1) = "0" Then
If Instr(1, modes, "l", 1) = "0" Then
pw = Right(modes, (Len(modes) - Instr(1, modes, " ", 1)))
Sendline "MODE " & Channel & " -k " & pw, 2
Else
pw = Right(modes, (Len(modes) - Instr(((Instr(1, modes, " ", 1)) + 1), modes, " ", 1)))
Sendline "MODE " & Channel & " -k " & pw, 2
End If
End If
Sendline "MODE " & Channel & " " & stdmode, 2
Check = CBOOL(0)
TimedCommand "sicherung2", zeit2
End If
End If
End Sub
Function IsMaster(RegUser, Nick)
If MatchFlags(GetUserFlags(RegUser), "+s") Then
IsMaster = "SuperOwner"
ElseIf MatchFlags(GetUserFlags(RegUser), "+m") Then
IsMaster = "Master"
ElseIf MatchFlags(GetUserFlags(RegUser), "+n") Then
IsMaster = "Owner"
ElseIf Nick = "L" Or Nick = "Q" Then
IsMaster = "ServiceBot"
ElseIf Nick = MyNick Then
IsMaster = "Myself"
End If
End Function
Sub RAW(Line)
If UCase(Param(Line, 2)) = "MODE" Then
'Nur Modeänderungen überwachen
If IsOn(MyNick, Param(Line, 3)) Then
'Es handelt sich um einen Channel in dem der Bot ist
Dim Nick, Host
Host = Mid(Param(Line, 1), 2)
Nick = ParamX(Host, "!", 1)
Call ModeChange(Param(Line, 3), Nick, Host, GetRegUser(Host), GetRest(Line, 4))
End If
End If
End Sub
Function GetRegUser(HMask)
Dim i, j
For i = 1 To BotUserCount
For j = 0 To BotUser(i, BU_Hostmasks, 0)
If WildMatch(LCase(BotUser(i, BU_Hostmasks, j)), LCase(HMask)) Then
GetRegUser = BotUser(i, BU_RegNick)
Exit Function
End If
Next
Next
End Function
Sub ModeChange(Chan, Nick, Host, RegUser, Line)
If Nick = MyNick Then Exit Sub
If InStr(1, " " & LCase(ActiveChannels) & " ", " " & LCase(Chan) & " ", 1) <= 0 Then Exit Sub
If InStr(1, Param(Line, 1), "k", 1) = "0" AND InStr(1, Param(Line, 1), "i", 1) = "0" Then Exit Sub
If (Not MatchFlags(GetUserChanFlags(RegUser, Chan), "+m")) AND (Not Nick = MyNick) Then
If IsOp(MyNick, Chan) Then
SendLine "MODE " & Chan & " -ov+b " & Nick & " " & Nick & " " & Mask(Host, 2), 1
Sendline "KICK " & Chan & " " & Nick & " :Th!s K!ck was sp0ns0rt by ant!0vertak3 v0.9a", 1
Sendline "MODE " & Chan & " " & stdmode, 2
If Not Instr(1, Line, "k", 1) = "0" Then
If Instr(1, Line, "l", 1) = "0" Then
pw = Right(Line, (Len(Line) - Instr(1, Line, " ", 1)))
Sendline "MODE " & Chan & " -k " & pw, 2
Else
pw = Right(Line, (Len(Line) - Instr(((Instr(1, Line, " ", 1)) + 1), Line, " ", 1)))
Sendline "MODE " & Chan & " -k " & pw, 2
End If
End If
End If
End If
End Sub
PS : Ich möchte das wenn mein Bot kicked wird sofort L/Q recover auslöst mehr nicht .. danke
Script "Antiovertake v0.9a by CT-Daimond"
Hook "DeOp"
Hook "Ban"
Hook "Kick"
Hook "Raw"
SpreadFlagMessage 0, "+m", "14*** antiovertakecript by CT-Daimond loaded."
End Sub
Const ActiveChannels = " #franc , #pr0gam3r "
Const stdmode = "+nt-il"
Dim rejoin, Name, Channel, host, Check
Const zeit1 = "1"
Const zeit2 = "2"
Sub DeOp(Chan, Nick, RegUser, Flags, DNick, DUser, DFlags, RemovedOp)
If InStr(1, " " & LCase(ActiveChannels) & " ", " " & LCase(Chan) & " ", 1) <= 0 Then Exit Sub
If DNick = MyNick Then
If IsOn("L", Chan) Then
SendLine "Privmsg L :op " & Chan, 1
ElseIf IsOn("Q", Chan) Then
SendLine "Privmsg Q :op " & Chan, 1
End If
End If
If IsMaster(RegUser, Nick) = vbNullString Then
SendLine "MODE " & Chan & " -o+b " & Nick & " " & Mask(Hostmask(Chan, Nick), 2), 1
Sendline "KICK " & Chan & " " & Nick & " :Th!s K!ck was sp0ns0rt by ant!0vertak3 v0.9a", 1
SendLine "MODE " & Chan & " +o " & DNick, 1
Else
SpreadFlagMessage 0, "+m", "3*** " & Nick & " deopt on " & Chan & " - no action "
End If
End Sub
Sub Ban(Nick, RegUser, Chan, HMask)
If InStr(1, " " & LCase(ActiveChannels) & " ", " " & LCase(Chan) & " ", 1) <= 0 Then Exit Sub
If IsMaster(RegUser, Nick) = vbNullString Then
SendLine "MODE " & Chan & " -o+b " & Nick & " " & Mask(Hostmask(Chan, Nick), 2), 1
Sendline "KICK " & Chan & " " & Nick & " :Th!s K!ck was sp0ns0rt by ant!0vertak3 v0.9a", 1
SendLine "MODE " & Chan & " -b " & HMask, 1
Else
If HMask = Mask(Hostmask(Chan, MyNick), 3) Then
SendLine "MODE " & Chan & " -b " & HMask, 1
End If
SpreadFlagMessage 0, "+m", "3*** " & Nick & " bannt on " & Chan & " - no action "
End If
End Sub
Sub Kick(Chan, Nick, RegUser, Flags, KNick, KUser, KFlags, Message)
If InStr(1, " " & LCase(ActiveChannels) & " ", " " & LCase(Chan) & " ", 1) <= 0 Then Exit Sub
If IsMaster(RegUser, Nick) = vbNullString Then
If KNick = MyNick Then
SendLine "PRIVMSG L :invite " & Chan, 1
SendLine "PRIVMSG Q :invite " & Chan, 1
Name = Nick
host = Mask(Hostmask(Chan, Nick), 2)
Channel = Chan
Check = CBOOL(1)
TimedCommand "sicherung", zeit1
TimedCommand "sicherung2", zeit2
Else
SendLine "MODE " & Chan & " -o+b " & Nick & " " & Mask(Hostmask(Chan, Nick), 2), 1
Sendline "KICK " & Chan & " " & Nick & " :Th!s K!ck was sp0ns0rt by ant!0vertak3 v0.9a", 1
SendLine "INVITE " & KNick & " "& Chan, 2
End If
Else
SpreadFlagMessage 0, "+m", "3*** " & Nick & " kickt on " & Chan & " - no action "
End If
End Sub
Sub sicherung()
If Check = CBOOL(1) Then
If Not IsOp(MyNick, Channel) Then
If IsOn("L", Channel) Then
SendLine "Privmsg L :op " & Channel, 1
ElseIf IsOn("Q", Channel) Then
SendLine "Privmsg Q :op " & Channel, 1
End If
End If
TimedCommand "sicherung", zeit1
End If
End Sub
Sub sicherung2()
If Check = CBOOL(1) Then
If IsOp(MyNick, Channel) Then
SendLine "MODE " & Channel & " -o+b " & Name & " " & host, 1
Sendline "KICK " & Channel & " " & Name & " :Th!s K!ck was sp0ns0rt by ant!0vertak3 v0.9a", 1
modes = ChanMode(ChanNum(Channel))
If Not Instr(1, modes, "k", 1) = "0" Then
If Instr(1, modes, "l", 1) = "0" Then
pw = Right(modes, (Len(modes) - Instr(1, modes, " ", 1)))
Sendline "MODE " & Channel & " -k " & pw, 2
Else
pw = Right(modes, (Len(modes) - Instr(((Instr(1, modes, " ", 1)) + 1), modes, " ", 1)))
Sendline "MODE " & Channel & " -k " & pw, 2
End If
End If
Sendline "MODE " & Channel & " " & stdmode, 2
Check = CBOOL(0)
TimedCommand "sicherung2", zeit2
End If
End If
End Sub
Function IsMaster(RegUser, Nick)
If MatchFlags(GetUserFlags(RegUser), "+s") Then
IsMaster = "SuperOwner"
ElseIf MatchFlags(GetUserFlags(RegUser), "+m") Then
IsMaster = "Master"
ElseIf MatchFlags(GetUserFlags(RegUser), "+n") Then
IsMaster = "Owner"
ElseIf Nick = "L" Or Nick = "Q" Then
IsMaster = "ServiceBot"
ElseIf Nick = MyNick Then
IsMaster = "Myself"
End If
End Function
Sub RAW(Line)
If UCase(Param(Line, 2)) = "MODE" Then
'Nur Modeänderungen überwachen
If IsOn(MyNick, Param(Line, 3)) Then
'Es handelt sich um einen Channel in dem der Bot ist
Dim Nick, Host
Host = Mid(Param(Line, 1), 2)
Nick = ParamX(Host, "!", 1)
Call ModeChange(Param(Line, 3), Nick, Host, GetRegUser(Host), GetRest(Line, 4))
End If
End If
End Sub
Function GetRegUser(HMask)
Dim i, j
For i = 1 To BotUserCount
For j = 0 To BotUser(i, BU_Hostmasks, 0)
If WildMatch(LCase(BotUser(i, BU_Hostmasks, j)), LCase(HMask)) Then
GetRegUser = BotUser(i, BU_RegNick)
Exit Function
End If
Next
Next
End Function
Sub ModeChange(Chan, Nick, Host, RegUser, Line)
If Nick = MyNick Then Exit Sub
If InStr(1, " " & LCase(ActiveChannels) & " ", " " & LCase(Chan) & " ", 1) <= 0 Then Exit Sub
If InStr(1, Param(Line, 1), "k", 1) = "0" AND InStr(1, Param(Line, 1), "i", 1) = "0" Then Exit Sub
If (Not MatchFlags(GetUserChanFlags(RegUser, Chan), "+m")) AND (Not Nick = MyNick) Then
If IsOp(MyNick, Chan) Then
SendLine "MODE " & Chan & " -ov+b " & Nick & " " & Nick & " " & Mask(Host, 2), 1
Sendline "KICK " & Chan & " " & Nick & " :Th!s K!ck was sp0ns0rt by ant!0vertak3 v0.9a", 1
Sendline "MODE " & Chan & " " & stdmode, 2
If Not Instr(1, Line, "k", 1) = "0" Then
If Instr(1, Line, "l", 1) = "0" Then
pw = Right(Line, (Len(Line) - Instr(1, Line, " ", 1)))
Sendline "MODE " & Chan & " -k " & pw, 2
Else
pw = Right(Line, (Len(Line) - Instr(((Instr(1, Line, " ", 1)) + 1), Line, " ", 1)))
Sendline "MODE " & Chan & " -k " & pw, 2
End If
End If
End If
End If
End Sub
PS : Ich möchte das wenn mein Bot kicked wird sofort L/Q recover auslöst mehr nicht .. danke
