This is ideally for a help channel on UnrealIRCd/(Anope|Atheme) networks.
Load it into a bot, load the commented snippet into your client.
For the Services half of the script, type:
!help NICK cs register
!help NICK hs on
!help NICK ms check
Or similar combinations.
For the UnrealIRCd half of the script, type:
!helpop SUBJECT
Operserv is not supported because users coming in for help either don't need to know about it, or know where to get the info themselves (IRCops and IRCop hopefuls should be competent)
;Use this to activate the script:
;on *:input:#:{ if ($1 == !help) .ctcp YOURBOT help $2- } }
;Replace YOURBOT with the name of your bot
ctcp 1:help:*:{
if ($istok(cs ns hs ms bs, $3, 32)) {
$3 help $$4-
set %helpnick $2
set %helpword $4-
if ($3 == cs) set %service Chanserv
if ($3 == ns) set %service Nickserv
if ($3 == bs) set %service Botserv
if ($3 == hs) set %service Hostserv
if ($3 == ms) set %service Memoserv
}
else .notice $nick Not a valid service type. Options: (cs, ns, hs, ms, bs)
}
on 1:notice:*:?:{
if ($nick == %service) && ($1 == Syntax:) {
.notice %helpnick $replace($1-,Syntax:,Usage: /msg %service)
.notice %helpnick For further information, type /msg %service help %helpword
unset %helpnick %helpword %service
}
}
on *:text:!helpop &:#:{
if ($nick isop #) || ($nick ishop #) {
helpop ? $+ $2
set %helpopmethod .msg #
}
else {
helpop ? $+ $2
set %helpopmethod .notice $nick
}
}
raw 292:*:{
if (%helpopmethod) && ($2 != -) {
%helpopmethod $2-
.timer 1 5 unset %helpop*
}
}