Faldt lige over dette script. Mener jeg lavede det til GamersCity for noget tid siden. Nå men måske nogen der kan få lidt inspiration (:
Scriptet har commands som så mange andre admin scripts. Dog kan dette lidt mere.
Cmds for bruger: !admin spg.
Admins: !online - !offline - !svar "id"
Iden med dette er at man har en privat admin channel, hvor det så er muligt at vælge om man vil svare på et spg. eller ikke.
Alle spg. og hvilken admin der svare vil blive skrevet ned i en log så man har lidt stats over det.
Er der ingen admins online vil botten automatisk skrive at man kan kontaktes på TLF: blabla og mail: blabla.
Botten tjekker også selv efter hvis en admin ændre sit nick til afk og er online bliver han automatisk sat som offline.
Tror ikke der er så meget mere at sige:p
on *:nick: {
if ($readini(admin.ini,online,$auth($nick))) && (bnc isin $newnick) || (afk isin $newnick) || (off isin $newnick) || (0ff isin $newnick) || (away isin $newnick) {
.remini admin.ini online $auth($nick)
.msg $readini(admin.ini,info,adminchan) $+ $nick har ændret sit nick til $newnick - Jeg formoder at du nu er afk eller off - Brug !adminstatus for at se hvem der er online
}
}
on *:quit: {
if ($readini(admin.ini,online,$auth($nick))) {
.remini admin.ini online $auth($nick)
.msg $readini(admin.ini,info,adminchan) $+ $nick har lukket sin IRC client ned og er der med off - Brug !adminstatus for at se hvem der er online
}
}
on *:part:#:{
if ($readini(admin.ini,online,$auth($nick))) {
.remini admin.ini online $auth($nick)
.msg $readini(admin.ini,info,adminchan) $+ $nick har forladt chanlen og er der med off - Brug !adminstatus for at se hvem der er online
}
if ($ini(auth.ini,auth,$ini(auth.ini,auth,$lavom($nick)))) { .remini auth.ini nick $auth($nick) | .remini auth.ini auth $ini(auth.ini,auth,$ini(auth.ini,auth,$lavom($nick))) }
}
on *:connect: {
.writeini admin.ini info scriptklar NEJ - Mangler info
if (!$readini(admin.ini,info,adminchan)) { .writeini admin.ini info adminchan $$?="Skriv hvilken channel der skal være admin chanlen - F.eks: #GreatGames.privat" }
if (!$readini(admin.ini,info,chan)) { .writeini admin.ini info chan $$?="Skriv hvilken channel folk skal kunne skrive !admin på - F.eks: #GreatGames" }
if (!$readini(admin.ini,info,tlfnum)) { .writeini admin.ini info tlfnum $$?="Indtast et eller flere tlf. nummre som en bruger må kontakte en admin på - F.eks: 88888888" }
if (!$readini(admin.ini,info,mail)) { .writeini admin.ini info mail $$?="Skriv hvilken mail en kunde kan kontakte en eller flere admins på - F.eks: admin@GreatGames.dk" }
.writeini admin.ini info scriptklar yessir
.echo -a Følgende indstillinger er sat:
.echo -a Admin chan: $readini(admin.ini,info,adminchan)
.echo -a Chan: $readini(admin.ini,info,chan)
.echo -a TLF Nummer: $readini(admin.ini,info,tlfnum)
.echo -a Kontakt mail: $readini(admin.ini,info,mail)
}
on *:text:*:#: {
if ($readini(admin.ini,info,scriptklar) == yessir) {
if ($chan == $readini(admin.ini,info,chan)) {
if ($1 == !admin) {
if ($len($2) >= 4) {
if ($ini(admin.ini,online) == 0) {
.notice $nick Du har prøvet at tilkalde en admin - Der er desværre ingen online PT. Vi vil råde dig til at sende en mail til $readini(admin.ini,info,mail) og hvis det haster rigtig meget kan vi kontaktes på TLF: $readini(admin.ini,info,tlfnum) $+
}
.elseif ($ini(admin.ini,online,0) >= 1) {
.inc %admin.id
.write adminlog.txt $date $time $chr(160) ID: %admin.id $chr(160) Navn: $nick $chr(160) Bedsked: $2-
.msg $readini(admin.ini,info,adminchan) $nick søger en admin - Der er PT. $ini(admin.ini,online,0) admins online - Hans bedsked: $2- - Dato: $fulldate - Ønsker du at kontakte ham? Brug !svar %admin.id - Bliver han ikke besvared inden 10 min. vil han blive sendt vidre til TLF/mail supporten!
.var %i = 1 | while (%i <= $ini(admin.ini,online,0)) {
.msg $nauth($ini(admin.ini,online,%i)) $nick søger en admin - Der er PT. $ini(admin.ini,online,0) admins online - Hans bedsked: $2- - Dato: $fulldate - Ønsker du at kontakte ham? Brug !svar %admin.id - Bliver han ikke besvared inden 10 min. vil han blive sendt vidre til TLF/mail supporten!
.inc %i
}
.notice $nick Du er nu blevet sat i køen til at blive besvaret på dit spørgsmål ang. " $+ $2- $+ " - Der er PT. $ini(admin.ini,online,0) admins online - Vent venligst!
.timeradminid [ $+ [ %admin.id ] ] 1 $calc(10 * 60) .adminsendvidre %admin.id $nick $2-
}
}
.else { .notice $nick Du har prøvet at tilkalde en admin - Før du kan det bliver du nød til at vedlæge en bedsked! F.eks: !admin Jeg mangler hjælp med server 33.453.323.4:27015 }
}
}
if ($chan == $readini(admin.ini,info,adminchan)) {
if ($1 == !svar) {
if ($2 isnum) {
.msg $chan $nick tager sig nu af id: $2 - Noteret i loggen - HUSK NU AT SKRIVE TIL PERSONEN!
.write adminlog.txt $date $time $chr(160) Admin svar $chr(160) ID: $2 $chr(160) Navn: $nick
.timeradminid [ $+ [ $2 ] ] off
}
.else { .notice $nick ERROR!: Du skal indtaste et gyldigt id. $2 er ikke et gyldigt id! F.eks: !svar 58 }
}
if ($1 == !online) {
if (!$readini(admin.ini,online,$auth($nick))) {
.writeini admin.ini online $auth($nick) online
.msg $chan $nick $+ , du er nu sat som online og kan svare en kunde hvis han har problemer. Online admins ialt: $ini(admin.ini,online,0) $+ .
}
else { .msg $chan Error: Du er allerede ONLINE - Brug !offline for at hoppe af. }
}
if ($1 == !offline) {
if ($readini(admin.ini,online,$auth($nick))) {
.remini admin.ini online $auth($nick)
.msg $chan Du er nu sat som OFFLINE - Du vil ikke blive kontaktet hvis en kunde har brug for hjælp.
}
else { .msg $chan Error: Du er allerde OFFLINE - Brug !online for at gå online! }
}
if ($1 == !adminstatus) {
.var %i = 1 | while (%i <= $ini(admin.ini,online,0)) {
.var %admins %admins $nauth($ini(admin.ini,online,%i))
.inc %i
}
.msg $chan Admins online: %admins
}
}
}
}
alias adminsendvidre {
.msg $2 Der var desvære ingen admins online til at kunne hjælpe dig. Vi vil råde dig til at kontakte os på mail: $readini(admin.ini,info,mail) eller hvis det haster meget kan du ringe til os på: $readini(admin.ini,info,tlfnum) - Mvh $readini(admin.ini,info,chan)
.msg $readini(admin.ini,info,adminchan) ID: $1 - Navn: $2 er nu blevet sendt vidre til TLF/Mail supporten da der ikke var nogen der svarede ham inden for 10 min.
.write adminlog.txt $date $time $chr(160) ID: $1 $chr(160) Blev vidrestillet til email: $readini(admin.ini,info,mail) og TLF num: $readini(admin.ini,info,tlfnum)
}
alias auth {
if (*.users.quakenet.org iswm $address($1,2)) {
return $gettok($remove($address($1,2),*!*@),1,46)
}
}
UPDATE: Kan se at jeg glemte at smide et auth script ind i:/
Det er nu med og håber ikke det har givet for mange problemer.