25.10.2005, 14:26 Uhr
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 SubBei diesem script wie melde ich mich als supporter an ? ?
Danke im Voraus1