AnGelBot-Portal²

Normale Version: Support Script Scorp
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Code:
'Script by Scorp ... Have Fun

'*************************************************************

'Setup:

'Auf der PL einfach mal  .homechannel <#channel> , um den Channel zu adden welcher als ausgabe channel für Support Message genutzt werden soll ( Immer nur 1 möglich )
'Um einen Homechannel zu enfernen geben Sie einfach .remove_homechannel <#channel> ein damit dieser entfernt wird ... beachten sie dass ein homechannel gesetzt sein muss !

'**************************************************************

Sub Init()
  Scriptname = "Support script"
  Hook "Chan_Msg"
  Hook "Priv_Msg"
  SpreadFlagMessage 0, "+m", "14*** " & Scriptname & " loaded."
  Hook "Commands"
  AddCommand "homechannel", Cl_Mas, "+m", "2*** Support Script <#channel> ##  14Fügt <#channel> hinzu der als HomeChannel verwendet werden soll"
  AddCommand "remove_homechannel", Cl_Mas, "+m", "2*** Support Script <#channel> ##  14Entfern <#channel> der als HomeChannel verwendet wird"
End Sub

Sub Chan_msg(Chan, Nick, RegUser, Line)
  select case param(lcase(Line),1)
    case "!support"
       writeinistring Nick, "berechtigt", "ja", "support.ini"
       writeinistring Nick, "namenfeld", "Fehlt", "support.ini"
       writeinistring Nick, "emailfeld", "Fehlt", "support.ini"
       writeinistring Nick, "fragefeld", "Fehlt", "support.ini"
       writeinistring Nick, "contactchan", "Fehlt", "support.ini"
       writeinistring Nick, "status", "offen", "support.ini"
       writeinistring Nick, "name2", Nick, "support.ini"
       sendline "PRIVMSG " & nick & " :Sie haben eine Support Frage gestellt. Sie müssen nun folgendes angeben. Name, eMail, Frage, Kontaktchannel ! Bitte halten Sie diese Daten bereit. Danke. ", 3
       sendline "Notice " & nick & " :Sie haben eine Support Frage gestellt. Bitte werfen sie einen Blick auf ihre Queries, ich habe Sie schon angeschrieben!", 3
       sendline "PRIVMSG " & nick & " :Geben Sie nun NACHEINANDER alle daten ein, die ich von ihnen verlange... ( Trigger: !name , !email , !frage , !channel )", 3
       sendline "PRIVMSG " & nick & " : WICHTIG: Wenn alle Angaben getätigt wurden, geben Sie bitte !abschließen ein um die Supportanfrage weiterzuleiten!  Danke . 7" & MyNick & "", 3

    case "!del"
   If IsOp(Nick, Chan) Then
        DeleteINIstring Param(Line,2), "berechtigt", "support.ini"
        DeleteINIstring Param(Line,2), "", "support.ini"
        DeleteINIstring Param(Line,2), "namenfeld", "support.ini"
        DeleteINIstring Param(Line,2), "emailfeld", "support.ini"
        DeleteINIstring Param(Line,2), "fragefeld", "support.ini"
        DeleteINIstring Param(Line,2), "contactchan", "support.ini"
        DeleteINIstring Param(Line,2), "fertig", "support.ini"
        DeleteINIstring Param(Line,2), "name", "support.ini"
        DeleteINIstring Param(Line,2), "email", "support.ini"
        DeleteINIstring Param(Line,2), "frage", "support.ini"
        DeleteINIstring Param(Line,2), "channel", "support.ini"
        SendLine "Notice " & Nick & " : Komplett gelöscht! ",3
      Else
        SendLine "Notice " & Nick & " : Not possible due user rights !",3
      End If

    Case "!handle"
   frage = ReadINIString(Param(Line, 2), "frage", "", "support.ini")
      If Not IsOp(Nick, Chan) Then
        SendLine "Notice " & Nick & " : Du besitzt keine Berechtigung für diesen Befehl!!!",3
      Else
        If paramcount(line) < 3 then
          SendLine "Notice " & nick & " :Der Befehl geht so: !handle <Nick> <Antwort>", 3
        Else
          If readinistring(Param(Line, 2), "status", "", "support.ini") = "offen" then
            SendLine "notice " & nick & " : Antwort wurde mitgeteilt, in die Datenbank wurde geschrieben dass dieser Support abgeschlossen ist. Er kann gelöscht werden ! ( !del " & Param(Line, 2) & " )",3
            SendLine "notice " & Param(Line, 2) & " : Antwort auf deine Support Anfrage ( " & frage & " ) : " & GetRest(Line, 3) & " ",3
            WriteINIString Param(Line, 2), "status", "supported", "support.ini"
          Else
            If readinistring(Param(Line, 2), "status", "", "support.ini") = "" then
              SendLine "notice " & nick & " : Unter dem Nick " & Param(Line, 2) & " wurde kein Eintrag gefunden tut mir leid.",3
            Else
              If readinistring(Param(Line, 2), "status", "", "support.ini") = "supported" then
                SendLine "notice " & nick & " : Dieser Support wurde schon abgeschlossen ! und kann gelöscht werden ! ( !del " & Param(Line, 2) & " ) ",3
              End If
            End If
          End If
        End If
     End If

    case "!show"
   namensfeld = ReadINIString(Param(Line,2), "namenfeld", "", "support.ini")
   emailfeld = ReadINIString(Param(Line,2), "emailfeld", "", "support.ini")
   fragefeld = ReadINIString(Param(Line,2), "fragefeld", "", "support.ini")
   contactchan = ReadINIString(Param(Line,2), "contactchan", "", "support.ini")
   channel2 = ReadINIString(Param(Line,2), "channel", "", "support.ini")

   frage = ReadINIString(Param(Line,2), "frage", "", "support.ini")
   channel1 = ReadINIString("Setup", "homechannel", "", "support.ini")
   name = ReadINIString(Param(Line,2), "name", "", "support.ini")
   email = ReadINIString(Param(Line,2), "email", "", "support.ini")
   supported = ReadINIString(Param(Line,2), "name2", "", "support.ini")

    If paramcount(line) < 2 then
      SendLine "PRIVMSG " & nick & " : !show < Nick >", 3
    Else
        SendLine "PRIVMSG " & channel1 & " : Der Besucher [ " & supported & " ( " & channel2 & " )] Benötigt Support. Sein RL Name ist " & name & "", 2
        SendLine "PRIVMSG " & channel1 & " : Seine Email adresse ist " & email & "", 2
        SendLine "PRIVMSG " & channel1 & " : Seine Frage war: " & frage & "", 2
        SendLine "PRIVMSG " & channel1 & " : Beantwortet kann dieser Support werden mit !handle " & supported & " (ANTWORT)", 2
    End If

    Case "!on"
      If Not IsOp(Nick, Chan) Then
        SendLine "Notice " & Nick & " : Du besitzt keine Berechtigung für diesen Befehl!!!",3
      Else
          Users = readinistring("Support", "Online", "", "support.ini")
          If InStr(Users, Nick) <> 0 then
            SendLine "notice " & nick & " : Du bist bereits Online",3
          Else
            WriteINIString "Support", "Online", Users & " " & Nick, "support.ini"
            SendLine "notice " & nick & " : Du bist nun angemeldet. Die aktuelle Uhrzeit beträgt 7>> ( " & Time & " ) <<",3
          End If
        End If

    Case "!off"
      If Not IsOp(Nick, Chan) Then
        SendLine "PRIVMSG " & nick & " : Du besitzt keine Berechtigung für diesen Befehl!!!",3
      Else
          Users = ReadINIString("Support", "Online", "", "support.ini")
          If InStr(Users, Param(LCase(Line),2)) <> 0 then
          
            OldOnline = ReadINIString("Support", "Online", "", "support.ini")
            If InStr(1, LCase(OldOnline), LCase(Param(Line,2))) then
              NewOnline = vbNullString
              Chans = Split(OldOnline," ")
              For i = 0 To UBound(Chans)
                If LCase(chans(i)) <> Param(LCase(Line),2) then
                  If NewOnline <> "" then
                    NewOnline = NewOnline & " " & LCase(chans(i))
                  Else
                    NewOnline = LCase(chans(i))
                  End If
                End If
              Next
              WriteINIString "Support", "Online", NewOnline, "support.ini"
              SendLine "Notice " & Nick & " : Du hast dich erfolgreich um 7•( " & Time & " )• abgemeldet",3
            End If
          End If
      End If
  End Select
End Sub

Sub Priv_Msg(Nick, RegUser, Line)
  select case param(lcase(Line),1)
    case "!name"
   namensfeld = ReadINIString(Nick, "namenfeld", "", "support.ini")
   emailfeld = ReadINIString(Nick, "emailfeld", "", "support.ini")
   fragefeld = ReadINIString(Nick, "fragefeld", "", "support.ini")
   contactchan = ReadINIString(Nick, "contactchan", "", "support.ini")

    if ReadINIString(Nick, "fertig", "", "support.ini") = "" then WriteINIString Nick, "fertig", "0", "support.ini"
    If readinistring(Nick, "berechtigt", "", "support.ini") = "ja" Then
    If Param(Line,2) = "" Then
      Sendline " PrivMSG " & Nick & " : Syntax Error ! :   Sie müssen schon einen Namen eingeben ! ( !name Max Mustermann )", 2
    Else
      writeinistring Nick, "name", GetRest(Line, 2), "support.ini"
      writeinistring Nick, "namenfeld", "ok", "support.ini"
      writeinistring Nick, "fertig", readinistring(Nick, "fertig", "", "support.ini") +1, "support.ini"
      sendline "PrivMSG " & nick & " : Name eingetragen ! ", 3
    End If
    End If

    case "!email"
   namensfeld = ReadINIString(Nick, "namenfeld", "", "support.ini")
   emailfeld = ReadINIString(Nick, "emailfeld", "", "support.ini")
   fragefeld = ReadINIString(Nick, "fragefeld", "", "support.ini")
   contactchan = ReadINIString(Nick, "contactchan", "", "support.ini")
    if ReadINIString(Nick, "fertig", "", "support.ini") = "" then WriteINIString Nick, "fertig", "0", "support.ini"
    If readinistring(Nick, "berechtigt", "", "support.ini") = "ja" Then
    If Param(Line,2) = "" Then
      Sendline " PrivMSG " & Nick & " : Syntax Error ! :   Sie müssen schon eine Email adresse eingeben ! ( !email max@mustermann.de )", 2
    Else
      writeinistring Nick, "email", GetRest(Line, 2), "support.ini"
      writeinistring Nick, "emailfeld", "ok", "support.ini"
      writeinistring Nick, "fertig", readinistring(Nick, "fertig", "", "support.ini") +1, "support.ini"
      sendline "PrivMSG " & nick & " : Email eingetragen ! ", 3
    End If
    End If

    case "!frage"
   namensfeld = ReadINIString(Nick, "namenfeld", "", "support.ini")
   emailfeld = ReadINIString(Nick, "emailfeld", "", "support.ini")
   fragefeld = ReadINIString(Nick, "fragefeld", "", "support.ini")
   contactchan = ReadINIString(Nick, "contactchan", "", "support.ini")
    if ReadINIString(Nick, "fertig", "", "support.ini") = "" then WriteINIString Nick, "fertig", "0", "support.ini"
    If readinistring(Nick, "berechtigt", "", "support.ini") = "ja" Then
    If Param(Line,2) = "" Then
      Sendline " PrivMSG " & Nick & " : Syntax Error ! :   Sie müssen schon eine Frage eingeben ! ( !frage Wie schalte ich einen PC ein? )", 2
    Else
      writeinistring Nick, "frage", GetRest(Line, 2), "support.ini"
      writeinistring Nick, "fragefeld", "ok", "support.ini"
      writeinistring Nick, "fertig", readinistring(Nick, "fertig", "", "support.ini") +1, "support.ini"
      sendline "PrivMSG " & nick & " : Frage eingetragen ! ", 3
    End If
    End If

    case "!channel"
   namensfeld = ReadINIString(Nick, "namenfeld", "", "support.ini")
   emailfeld = ReadINIString(Nick, "emailfeld", "", "support.ini")
   fragefeld = ReadINIString(Nick, "fragefeld", "", "support.ini")
   contactchan = ReadINIString(Nick, "contactchan", "", "support.ini")
    if ReadINIString(Nick, "fertig", "", "support.ini") = "" then WriteINIString Nick, "fertig", "0", "support.ini"
    If readinistring(Nick, "berechtigt", "", "support.ini") = "ja" Then
    If Param(Line,2) = "" Then
      Sendline " PrivMSG " & Nick & " : Syntax Error ! :   Sie müssen schon einen Channel eingeben ! ( !channel #musterchannel )", 2
    Else
      writeinistring Nick, "channel", GetRest(Line, 2), "support.ini"
      writeinistring Nick, "contactchan", "ok", "support.ini"
      writeinistring Nick, "fertig", readinistring(Nick, "fertig", "", "support.ini") +1, "support.ini"
      sendline "PrivMSG " & nick & " : Channel eingetragen ! ", 3
    End If
    End If

    Case "!handle"
   channel1 = ReadINIString("Setup", "homechannel", "", "support.ini")
   frage = ReadINIString(Param(Line, 2), "frage", "", "support.ini")

      If Not IsOp(Nick, channel1) Then
        SendLine "Notice " & Nick & " : Du besitzt keine Berechtigung für diesen Befehl!!!",3
      Else
        If paramcount(line) < 3 then
          SendLine "Notice " & nick & " :Der Befehl geht so: !handle <Nick> <Antwort>", 3
        Else
          If readinistring(Param(Line, 2), "status", "", "support.ini") = "offen" then
            SendLine "notice " & nick & " : Antwort wurde mitgeteilt, in die Datenbank wurde geschrieben dass dieser Support abgeschlossen ist. Er kann gelöscht werden ! ( !del " & Param(Line, 2) & " )",3
            SendLine "notice " & Param(Line, 2) & " : Antwort auf deine Support Anfrage ( " & frage & " ) : " & GetRest(Line, 3) & " ",3
            WriteINIString Param(Line, 2), "status", "supported", "support.ini"
            SendLine "PRIVMSG " & channel1 & " : Anfrage bearbeitet von " & nick & "  Auf Supported gesetzt... keine weitere bearbeitung möglich! ",3
          Else
            If readinistring(Param(Line, 2), "status", "", "support.ini") = "" then
              SendLine "notice " & nick & " : Unter dem Nick " & Param(Line, 2) & " wurde kein Eintrag gefunden tut mir leid.",3
            Else
              If readinistring(Param(Line, 2), "status", "", "support.ini") = "supported" then
                SendLine "notice " & nick & " : Dieser Support wurde schon abgeschlossen ! und kann gelöscht werden ! ( !del " & Param(Line, 2) & " ) ",3
              End If
            End If
          End If
        End If
     End If

    case "!del"

   channel1 = ReadINIString("Setup", "homechannel", "", "support.ini")

   If IsOp(Nick, channel1) Then
        DeleteINIstring Param(Line,2), "berechtigt", "support.ini"
        DeleteINIstring Param(Line,2), "", "support.ini"
        DeleteINIstring Param(Line,2), "namenfeld", "support.ini"
        DeleteINIstring Param(Line,2), "emailfeld", "support.ini"
        DeleteINIstring Param(Line,2), "fragefeld", "support.ini"
        DeleteINIstring Param(Line,2), "contactchan", "support.ini"
        DeleteINIstring Param(Line,2), "fertig", "support.ini"
        DeleteINIstring Param(Line,2), "name", "support.ini"
        DeleteINIstring Param(Line,2), "email", "support.ini"
        DeleteINIstring Param(Line,2), "frage", "support.ini"
        DeleteINIstring Param(Line,2), "channel", "support.ini"
        SendLine "Notice " & Nick & " : Komplett gelöscht! ",3
      Else
        SendLine "Notice " & Nick & " : Not possible due user rights !",3
      End If

    case "!abschließen"
   namensfeld = ReadINIString(Nick, "namenfeld", "", "support.ini")
   emailfeld = ReadINIString(Nick, "emailfeld", "", "support.ini")
   fragefeld = ReadINIString(Nick, "fragefeld", "", "support.ini")
   contactchan = ReadINIString(Nick, "contactchan", "", "support.ini")
   channel2 = ReadINIString(Nick, "channel", "", "support.ini")

   frage = ReadINIString(Nick, "frage", "", "support.ini")
   channel1 = ReadINIString("Setup", "homechannel", "", "support.ini")
   name = ReadINIString(Nick, "name", "", "support.ini")
   email = ReadINIString(Nick, "email", "", "support.ini")
    If readinistring(Nick, "berechtigt", "", "support.ini") = "ja" Then
    if ReadINIString(Nick, "fertig", "", "support.ini") = "4" then
      Dummy = Split(ReadINIString("Support", "Online", vbNullString, "support.ini"), " ")
      For i = LBound(Dummy) To UBound(Dummy)
        SendLine "PRIVMSG " & Dummy(i) & " : Bitte schaut mal in den support Channel, es gibt eine Support anfrage, oder tippt ein !show " & nick & "   um Sie anzuzeigen! ", 2
        SendLine "PRIVMSG " & nick & " : Danke für die Eingaben ... die Supporter werden sich um dich kümmern ", 2
        SendLine "PRIVMSG " & channel1 & " : Der Besucher [ " & nick & " ( " & channel2 & " )] Benötigt Support. Sein RL Name ist " & name & "", 2
        SendLine "PRIVMSG " & channel1 & " : Seine Email adresse ist " & email & "", 2
        SendLine "PRIVMSG " & channel1 & " : Seine Frage war: " & frage & "", 2
        SendLine "PRIVMSG " & channel1 & " : Beantwortet kann dieser Support werden mit !handle " & nick & " (ANTWORT)", 2
        WriteINIString Nick, "fertig", "0", "support.ini"
      Next
    Else
    if ReadINIString(Nick, "fertig", "", "support.ini") = "0" then
        sendline "PrivMSG " & nick & " : Keine angaben getätigt seit dem letzten Support!  Abbruch.... ", 3
    Else
        sendline "PrivMSG " & nick & " : Da gibt es ein Problem, Bitte checken Sie in der folgenden Nachricht ob all ihre eingaben getätigt wurden. ", 3
        sendline "PrivMSG " & nick & " : Name: " & namensfeld & "   |   Email Adresse: " & emailfeld & "    |   Frage: " & fragefeld & "   |    Kontaktchannel: " & contactchan & "", 3
    End If
    End If
    End If

  end select
End Sub

Sub Commands(vSock, RegUser, Flags, Line)
  Select Case Param(LCase(Line),1)
    Case ".support"
      TU vSock, "3Folgender Befehl steht zur Auswahl:"
      TU vSock, "3.homechannel ##  14Setzt den Homechannel"
      TU vSock, "3.remove_homechannel ##  14Setzt den Homechannel"
    Case ".homechannel"
      If Param(LCase(Line),2) <> "" then
        homechannel = ReadINIString("Setup", "homechannel", "", "support.ini")
        If homechannel <> "" then
          WriteINIString "Setup", "homechannel", oldchannels & " " & Param(Line,2), "support.ini"
        Else
          WriteINIString "Setup", "homechannel", Param(Line,2), "support.ini"
        End If
        TU vSock, "3Der Channel " & Param(Line,2) & " wurde als homechannel gesetzt!"
      Else
        TU vSock, "3Der Befehl geht z.B. so: .homechannel <#channel>"
      End If
    Case ".remove_homechannel"
      If Param(LCase(Line),2) <> "" then
        oldchannels = ReadINIString("Setup", "homechannel", "", "support.ini")
        If InStr(1, LCase(oldchannels), LCase(Param(Line,2))) then
          newchannels = ""
          chans = Split(oldchannels," ")
          For i = 0 to UBound(Chans)
            If LCase(chans(i)) <> Param(LCase(Line),2) then
              If newchannels <> "" then
                newchannels = newchannels & " " & LCase(chans(i))
              Else
                newchannels = LCase(chans(i))
              End If
            End If
          Next
          WriteINIString "Setup", "homechannel", newchannels, "support.ini"
          TU vSock, "3Der Channel " & Param(Line,2) & " wurde entfernt!"
        Else
          TU vSock, "3Der Channel " & Param(Line,2) & " ist nicht eingetragen!"
        End If
      Else
        TU vSock, "3Der Befehl geht z.B. so: .remove_homechannel <#channel>"
      End If
  End Select
End Sub

Bei diesem script wie melde ich mich als supporter an ? ?

Danke im Voraus1
1. brauchst du OP im Home-Channel
2. kannst du dich mit !on als anwesend anmelden und mit !off wieder als offline
Referenz-URLs