AnGelBot-Portal²

Normale Version: banfunktion
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Jo hmm wie soll ich es sagen. Ich bin gerade dabei ein Script etwas zu "ändern" und soweit für mich anzupassen wie ich das brauch / will

Kann mir einer verraten was daran falsch is? Ich will mit !kickban <nick>
das der User in die banlist des channels aufgenommen wird.
Nur irgendwie klappt das nich so ganz da ich das gefühl habe der liest die hostmask des users nit aus. Am liebsten wär es mir wenn der user aufgrund des idents und dem "hinteren" teil des host gebannt wird. also so das neu verbinden ihm erstmal nich viel bringt. Nur wenn ich das jetzt nutze mit z.B. !kickban test kommt das auf der partyline

(20:35:5Cool (vogelnest) [20:35:58] *** allround.asc did .+ban Paulette#vogelpark

und mehr passiert nich :/

Code:
Case cmd_prefix & "kickban"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(line,2) = "" Then
            Sendline " PrivMsg " & chan & " : " & nick & " du musst mir schon sagen wer stört :)) ",3
        Else
            executecommand 0, ".+ban " & Param(line,2) & chan
            SendLine "NOTICE " & Nick & " :Hostmask "  & Param(Line, 2) & " der Banliste hinzugefügt! ", 2
            executecommand 0, ".kick " & Param(line,2) & chan
            SendLine "NOTICE " & Nick & " :Störenfried wurde so eben entfernt ;) ", 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If
Hab mal bissel weitergebastelt.

Habs nun mal so das man den kompletten ident so wie er es sonst will eingeben muss. Sieht so aus

Code:
Case cmd_prefix & "kickban"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(line,2) = "" Then
            SendLine "NOTICE " & Nick & " :Du musst mir schon sagen wer stört. ", 2
        Else
            executecommand 0 , ".+ban " & Param(line,2)
            SendLine "NOTICE " & Nick & " :Hostmask "  & Param(Line, 2) & " der Banliste hinzugefügt! ", 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :Nice Try ;)", 2
      End If

Auf der Partyline erscheint dann das
(18:29:20) (vogelnest) [18:29:20] *** allround.asc did .+ban ode`Ordem!Ordem@odeOrdem.users.quakenet.org

aber es passiert nix. Wenn ich das so dirkt dort eingebe

.+ban ode`Ordem!Ordem@odeOrdem.users.quakenet.org

dann klappt es.
Nen Schimmer was da los sein könnte?
Durch etwas Hilfe von Spiky habe ich es nun geschafft das es funktioniert. Hier die fertige Schleife bisher. Bei Gelegenheit veränder ich das och insoweit das ich nur den Nick angeben muss und der Bot sich den Host automatisch holt.

Code:
Case cmd_prefix & "kickban"
      If MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
        If Param(line,2) = "" Then
            SendLine "NOTICE " & Nick & " :Du musst mir schon sagen wer stört. ", 2
        Else
            ExecuteCommand 0 , ".+ban " & Param(Line,2) & " " & Chan , , RegUser
            SendLine "NOTICE " & Nick & " :Ein Ban auf "  & Param(Line, 2) & " wurde so eben der Banliste hinzugefügt! ", 2
        End If
      Else
        SendLine "NOTICE " & Nick & " :Netter Versuch ;)", 2
      End If
Ich hab noch ein altes Script von mir gefunden evtl. hilft dir das ja ein bisschen . . .

Code:
Sub Init()
  Script "Ban/StickBan Script by Spiky"
  Hook "Chan_Msg"
End Sub

Sub Chan_Msg(Chan, Nick, RegUser, Line)
  If (LCase(Param(Line, 1)) = CommandPrefix & "stickban") And MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
    If IsOn(Param(Line,2), Chan) Then
      If LenB(SearchUserFromHostmask(Hostmask(Chan, Param(Line, 2)))) <> 0 Then
        ExecuteCommand 0, ".-user " & GetRegUser(Chan, Param(Line,2))
        HMask = Hostmask(Chan, Param(Line, 2))
        HMask = IIf(Instr(HMask, ".users.quakenet.org"), Mask(HMask, 2), Mask(HMask, 1))
        ExecuteCommand 0, ".+ban " & HMask & " " & Chan & " 1,0 «4•1»1 4[ Banned ]1 from 4[ " & Nick & " ]1 Reason 4[ " & GetRest(Line, 3) & " ]1 «4•1» ", , RegUser
        ExecuteCommand 0, ".stick " & HMask, , RegUser
      Else
        HMask = Hostmask(Chan, Param(Line, 2))
        HMask = IIf(Instr(HMask, ".users.quakenet.org"), Mask(HMask, 2), Mask(HMask, 1))
        ExecuteCommand 0, ".+ban " & HMask & " " & Chan & " 1,0 «4•1»1 4[ Banned ]1 from 4[ " & Nick & " ]1 Reason 4[ " & GetRest(Line, 3) & " ]1 «4•1» ", , RegUser
        ExecuteCommand 0, ".stick " & HMask, , RegUser
      End If
    Else
      ExecuteCommand 0, ".+ban " & Param(Line,2) & " " & Chan & " 1,0 «4•1»1 4[ Banned ]1 from 4[ " & Nick & " ]1 Reason 4[ " & GetRest(Line, 3) & " ]1 «4•1» ", , RegUser
      ExecuteCommand 0, ".stick " & Param(Line,2), , RegUser
    End If
  ElseIf (LCase(Param(Line, 1)) = CommandPrefix & "ban") And MatchFlags(GetUserChanFlags(RegUser, Chan), "+n") Then
    If IsOn(Param(Line,2), Chan) Then
      If IsNumeric(Param(Line, 3)) Then
        If CInt(Param(Line, 3)) = 0 Then
          HMask = Hostmask(Chan, Param(Line, 2))
          HMask = IIf(Instr(HMask, ".users.quakenet.org"), Mask(HMask, 2), Mask(HMask, 1))
          SendLine "MODE " & Chan & " -o+b " & Param(Line, 2) & " " & HMask, 1
          AddKick Chan, Param(Line, 2), "1,0 «4•1»1 4[ Banned ]1 from 4[ " & Nick & " ]1 Reason 4[ " & GetRest(Line, 4) & " ]1 «4•1» "
        Else
          HMask = Hostmask(Chan, Param(Line, 2))
          HMask = IIf(Instr(HMask, ".users.quakenet.org"), Mask(HMask, 2), Mask(HMask, 1))
          TimedCommand "Unban " & Chr(34) & Chan & Chr(34) & ", " & Chr(34) & HMask & Chr(34), Param(Line, 3) * 60
          SendLine "MODE " & Chan & " -o+b " & Param(Line, 2) & " " & HMask, 1
          AddKick Chan, Param(Line, 2), "1,0 «4•1»1 4[ Banned ]1 from 4[ " & Nick & " ]1 Reason 4[ " & GetRest(Line, 4) & " ]1 «4•1» "
        End If
      Else
        HMask = Hostmask(Chan, Param(Line, 2))
        HMask = IIf(Instr(HMask, ".users.quakenet.org"), Mask(HMask, 2), Mask(HMask, 1))
        SendLine "MODE " & Chan & " -o+b " & Param(Line, 2) & " " & HMask, 1
        AddKick Chan, Param(Line, 2), "1,0 «4•1»1 4[ Banned ]1 from 4[ " & Nick & " ]1 Reason 4[ " & GetRest(Line, 3) & " ]1 «4•1» "
      End If
    Else
      If IsNumeric(Param(Line, 3)) Then
        If CInt(Param(Line, 3)) = 0 Then
          SendLine "MODE " & Chan & " +b " & Param(Line, 2), 1
        Else
          TimedCommand "Unban " & Chr(34) & Chan & Chr(34) & ", " & Chr(34) & Param(Line, 2) & Chr(34), Param(Line, 3) * 60
          SendLine "MODE " & Chan & " +b " & Param(Line, 2), 1
        End If
      Else
        SendLine "MODE " & Chan & " +b " & Param(Line, 2), 1
      End If
    End If
  End If
End Sub

Sub UnBan(Chan, HMask)
  SendLine "MODE " & Chan & " -b " & HMask, 1
End Sub

Function GetRegUser(Chan, Nick)
  For i = 1 To ChanUserCount(ChanNum(Chan))
  If WildMatch(Mask(Hostmask(Chan, Nick), 1), ChanUser(ChanNum(Chan), i, CU_Hostmask)) Then
  GetRegUser = ChanUser(ChanNum(Chan), i, CU_RegUser)
  End If
  Next
End Function
Referenz-URLs