@@ This file is a TF /quote script file.  To upload, just /quote the file
@@ into the MUSH (preferable as a wizard) then sit back and watch.
@@ It will auto-configure everything.  
@@ It is compatable with TINY, PENN, MUX, and all variations of those.
@@ When completed, put the ComSystem into the master room.
@@
@@ New Addition:  There are 'checkpoints' for /quoting up the file as there
@@ is a bug with the tinyfugue /quote when quoting up large files.  It may
@@ lose (garble) one of the lines.  The checkpointing will help you pinpoint
@@ Where the /quote failed so that you can extract that area of code and re-install.
@@ If you need to reinstall, you will have to enter the ComSystem for it to
@@ store the attributes correctly.
@@
@@ New Addition:  There are reference points for every checkpoint.  These
@@ 'Reference Points' are <X-#> (ie: <C-99>).  You use this with the
@@ Included com_patch.sh script.  Look at the script for help.
@@
@@ This script has been modified to work with ALL flavors of PENN, TINY, and MUX.
@@ Likewise, the comsystem itself has been modified to work with all flavors of
@@ PENN, TINY, and MUX (and all derivitives therein)

@set me=quiet
@fo me=&VERSION me=[ucstr(version())]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=Com: Main installation initiated...;@pemit/silent me=Com: Designing Objects.},{@pemit me=Com: Main installation initiated...;@pemit me=Com: Designing Objects...}
@create FunctionDB
@create ComSystem
@create HelpDB
@create OptionDB
@create ChannelDB
@create AliasDB
@create MonitorDB
@create DescribeDB
@set functiondb=!halt
@set comsystem=!halt
@set helpdb=!halt
@set optiondb=!halt
@set channeldb=!halt
@set aliasdb=!halt
@set monitordb=!halt
@set functiondb=inherit
@set comsystem=inherit
@set monitordb=inherit
@set optiondb=inherit
@set helpdb=inherit
@set optiondb=halt
@set channeldb=halt
@set aliasdb=halt
@set describedb=halt
@set functiondb=safe
@set comsystem=safe
@set helpdb=safe
@set optiondb=safe
@set channeldb=safe
@set aliasdb=safe
@set monitordb=safe
@set describedb=safe
@prefix monitordb=\[*MONITOR*\]
@set monitordb=audible
@link functiondb=comsystem
@link helpdb=comsystem
@link optiondb=comsystem
@link channeldb=comsystem
@link aliasdb=comsystem
@link monitordb=comsystem
@link describedb=comsystem
@fo Comsystem=&O-DB FunctionDB=[num(optiondb)]
@fo Comsystem=&CH-DB FunctionDB=[num(channeldb)]
@fo Comsystem=&A-DB FunctionDB=[num(aliasdb)]
@fo Comsystem=&M-DB FunctionDB=[num(monitordb)]
@fo Comsystem=&F-DB FunctionDB=[num(functiondb)]
@fo Comsystem=&H-DB FunctionDB=[num(helpdb)]
@fo Comsystem=&D-DB FunctionDB=[num(describedb)]
@fo Comsystem=&O-DB ComSystem=[num(optiondb)]
@fo Comsystem=&CH-DB ComSystem=[num(channeldb)]
@fo Comsystem=&A-DB ComSystem=[num(aliasdb)]
@fo Comsystem=&M-DB ComSystem=[num(monitordb)]
@fo Comsystem=&F-DB ComSystem=[num(functiondb)]
@fo Comsystem=&H-DB ComSystem=[num(helpdb)]
@fo Comsystem=&D-DB ComSystem=[num(describedb)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=Com: Detecting version of MUSH running... <START>},{@pemit/silent me=Com: Detecting version of MUSH running... <START>}
@swi/f [v(version)]=*PENN*,{@pemit/silent me=[space(5)]PENN... kuul.  Configuration for PENN chosen...;&COMVER me=PENN}
@swi/f [v(version)]=*PennMUSH version 1.6*,{@pemit/silent me=[space(5)]--- NOTE: Marking AUTO patch for PENN 1.6.x and higher.;&PATCH_COM me=YES;@pemit/silent me=[space(5)]WARNING!: This version doesn't evaluate u() correctly and may not work!}
@swi/f [v(version)]=*PennMUSH version 1.7*,{@pemit/silent me=[space(5)]--- NOTE: Marking AUTO patch for PENN 1.6.x and higher.;&PATCH_COM me=YES}
@swi/f [v(version)]=*TINYMUS*,{@pemit me=[space(5)]TINY... Excellent!  Configuration for TINY chosen...;&COMVER me=TINY}
@swi/f [v(version)]=*MUX*,{@pemit me=[space(5)]MUX... Funky.  Configuration for MUX chosen...;&COMVER me=MUX}
@swi/f [v(version)]=*Rhost*,{@pemit me=[space(5)]RhostshylMUSH?  AWESOME!  Configuration stored.;&COMVER me=TINY}
@swi/f [v(version)]=*SEAWOLF*,{@pemit me=[space(5)]RhostshylMUSH?  AWESOME!  Configuration stored.;&COMVER me=TINY}
@swi/f [v(version)]=*MURE*,{@pemit me=[space(5)]TinyMURE.  Cool!  Configuration stored.;&COMVER me=TINY}
@swi/f [words(v(COMVER))]=0,{@pemit me=[space(5)]WARNING: Undefined MUSH version... assuming TINY based.;&COMVER me=TINY}
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=Com: Object designation complete... Function Initialization... please wait...;@pemit/silent me=[space(5)]: Function Checkpoint #1 <F-1>},{@pemit me=Com: Object designation complete... Function Initialization... please wait...;@pemit me=[space(5)]: Function Checkpoint #1 <F-1>}
&WSET-L FunctionDB=PASSIVE_LOCK DEFINE_ERRHELP ENABLE_WIZ_NOSPOOF
&WSETUPF FunctionDB=[u(wizard,%2)][gt(match(ON YES,%1),0)][gt(match(v(WSET-L),%0),0)]
&WSETUPM0 FunctionDB=[u(ERRORDEF)]
&WSETUPM1 FunctionDB=WIZCom: ERROR - Invalid configuration '[secure(%0)]'.
&WSETUPM2 FunctionDB=WIZCom: ERROR - Invalid configuration '[secure(%0)]'.
&WSETUPM3 FunctionDB=WIZCom: Global setting '[ucstr(%0)]' removed.
&WSETUPM4 FunctionDB=WIZCom: Global setting '[ucstr(%0)]' established.
&WSETUPS101 FunctionDB=%0
&WSETUPS111 FunctionDB=%0
&WSETUPSET0 FunctionDB=[setdiff(get([v(O-DB)]/W_CONFIG_SET),ucstr(%0))]
&WSETUPSET1 FunctionDB=[setunion(get([v(O-DB)]/W_CONFIG_SET),ucstr(%0))]
&CONFIGS0 FunctionDB=[setdiff(v(conf-l),get([v(O-DB)]/w_conf-l))]
&CONFIGS1 FunctionDB=[v(CONF-L)]
&WOPTIONSET1 FunctionDB=[setunion(get([v(O-DB)]/W_COM-L),ucstr(%0))]
&WOPTIONSET2 FunctionDB=[setdiff(get([v(O-DB)]/W_COM-L),ucstr(%0))]
&WOPTIONF FunctionDB=[u(wizard,%2)][member(+ -,%0)][gt(member(get([v(O-DB)]/W_COM-L),ucstr(%1)),0)][gt(match(v(COM-L),%1),0)]
&WCONFIGF FunctionDB=[u(wizard,%2)][member(+ -,%0)][gt(member(get([v(O-DB)]/W_CONF-L),ucstr(%1)),0)][gt(match(v(CONF-L),%1),0)]
&WCONFIGM0 FunctionDB=[u(WCONFIGM0[mid(%2,0,1)],%0,%1,%2,%3)]
&WCONFIGM00 FunctionDB=[u(ERRORDEF)]
&WCONFIGM01 FunctionDB=WIZCom: ERROR - Invalid %3 '[secure(%1)]'.%r[space(8)]Use one of: [switch(%3,config*,v(CONF-L),v(COM-L))]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #2 <F-2>},{@pemit me=[space(5)]: Function Checkpoint #2 <F-2>}
&WCONFIGM1 FunctionDB=WIZCom: ERROR - Invalid argument '[secure(%0)]'.%r[space(8)]Use '+' or '-'.
&WCONFIGM2 FunctionDB=[u(WCONFIGM1,%0)]
&WCONFIGM3 FunctionDB=WIZCom: Option '[ucstr(%1)]' has been disabled.
&WCONFIGM4 FunctionDB=WIZCom: Option '[ucstr(%1)]' is already disabled.
&WCONFIGM5 FunctionDB=WIZCom: Option '[ucstr(%1)]' is already enabled.
&WCONFIGM6 FunctionDB=WIZCom: Option '[ucstr(%1)]' has been re-enabled.
&WCONFIGS1101 FunctionDB=%0
&WCONFIGS1211 FunctionDB=%0
&WCONFIGSET1 FunctionDB=[setunion(get([v(O-DB)]/W_CONF-L),ucstr(%0))]
&WCONFIGSET2 FunctionDB=[setdiff(get([v(O-DB)]/W_CONF-L),ucstr(%0))]
&WALIASCHANF FunctionDB=[u(wizard,%2)][member(+ -,%0)]
&WALIASCHANM00 FunctionDB=[u(ERRORDEF)]
&WALIASCHANM01 FunctionDB=[u(ERRORDEF)]
&WALIASCHANM02 FunctionDB=[u(ERRORDEF)]
&WALIASCHANM10 FunctionDB=WIZCom: ERROR - Invalid argument '[secure(%0)]'.%r[space(8)]Use either '+' or '-'.
&WALIASCHANM11 FunctionDB=WIZCom: The following channels have been added for alias viewing:%r[space(8)][setdiff(ucstr(%1),get([v(O-DB)]/W_CHANNELS))]
&WALIASCHANM12 FunctionDB=WIZCom: The following channels have been removed from alias viewing:%r[space(8)][setunion(ucstr(%1),get([v(O-DB)]/W_CHANNELS))]
&WALIASCHANS11 FunctionDB=%0
&WALIASCHANS12 FunctionDB=%0
&WALIASCHANSET1 FunctionDB=[setunion(get([v(O-DB)]/W_CHANNELS),ucstr(%0))]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #3 <F-3>},{@pemit me=[space(5)]: Function Checkpoint #3 <F-3>}
&WALIASCHANSET2 FunctionDB=[setdiff(get([v(O-DB)]/W_CHANNELS),ucstr(%0))]
&WSHOWCONFIG0 FunctionDB=[u(ERRORDEF)]
&WSHOWCONFIG1 FunctionDB=[u(WSHOWCONFIG_[words(%0)],%0)]
&WSHOWCONFIG_0 FunctionDB=WIZCom: Configurations currently set:%r[v(lines)]%rChannels set up for Alias Viewing:%r[get([v(O-DB)]/W_CHANNELS)]%r%rConfigure Options Disabled:%r[get([v(O-DB)]/W_CONF-L)]%r%rCom Options Disabled:%r[get([v(O-DB)]/W_COM-L)]%r%rWizards defined by: [v(wizard)]%rWizards DARK defined by: [v(dark)]%rCurrent error message defined as:%r[v(errordef)]%r[v(lines)]%rWIZCom: Configuration display completed.
&WSHOWCONFIG_1 FunctionDB=WIZCom: Configurations for '[name(%0)]':%r[v(lines)]%rCom Options Set: [get([v(O-DB)]/U[num(*%0)])]%rAlias: [switch(get(%0/CALIAS),*@*,[ljust(%[Randomized%],20)],,[ljust(DEFAULT,20)],[ljust(mid(get(%0/calias),0,19),20)])]Title: [switch(get(%0/CTITLE),*@*,[ljust(%[Randomized%],20)],,[ljust(DEFAULT,20)],[ljust(mid(get(%0/ctitle),0,19),20)])]ComDefault: [switch(setinter(get(%0/CDEF),v(COM-L)),,DEFAULT,[get(%0/CDEF)] %([s(extract(v(COM-L-WORDS),member(v(COM-L),get(%0/CDEF)),1))]%))]%rTotal Channel-Specific Aliases: [words(lattr(%0/CALIAS-*))]%rTotal Channel-Specific Titles: %b[words(lattr(%0/CTITLE-*))]%rTotal Aliases for '=' command: %b[words(get([v(A-DB)]/A[v(0)]))]%rLines Per Page Value: [max(get([v(O-DB)]/U_%0PAGE),10)]%r[v(lines)]
&WPATCHM1 FunctionDB=[space(8)]Searching Patch [get(%0/P_VERSION)]...
&WPATCHM2 FunctionDB=WIZCom: Patch Installation Completed.
&WPATCHM00 FunctionDB=[u(ERRORDEF)]
&WPATCHM01 FunctionDB=[u(ERRORDEF)]
&WPATCHM10 FunctionDB=WIZCom: ERROR - '[secure(%0)]' not a valid ComSystem Patch.
&WPATCHM11 FunctionDB=WIZCom: Installing patch. Please wait...
&WPATCHDO11 FunctionDB=%0
&WPATCHF FunctionDB=[u(wizard,%1)][eq(words(setinter(I_PATCH P_VERSION,lattr(%0))),2)]
&WPURGEF FunctionDB=[u(wizard,%0)][match(player,type(*%1))]
&WPURGEM00 FunctionDB=[u(ERRORDEF)]
&WPURGEM01 FunctionDB=[u(ERRORDEF)]
&WPURGEM10 FunctionDB=WIZCom: ERROR - '[secure(v(0))]' not a valid player
&WPURGEM11 FunctionDB=WIZCom: All channels purged of player '[name(*%0)]'.
&WPURGEDO11 FunctionDB=[lattr([v(CH-DB)])]
&WPURGEDO00 FunctionDB=[v(9)]
&WPURGEDO01 FunctionDB=[v(9)]
&WPURGEDO10 FunctionDB=[v(9)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #4 <F-4>},{@pemit me=[space(5)]: Function Checkpoint #4 <F-4>}
&DODEFAULT1 FunctionDB=[v(0)]
&WUSRLOCKF FunctionDB=[u(wizard,%0)][match(player,type(*%1))][match(STATUS,v(2))]
&ERRORDEF FunctionDB=Huh? %b\(Type "help" for help.\)
&ERRORSETF FunctionDB=[u(wizard,%0)][or(match(RESET,%1),eq(words(%1),0))]
&ERRORSETM00 FunctionDB=[u(ERRORDEF)]
&ERRORSETM01 FunctionDB=[u(ERRORDEF)]
&ERRORSETM10 FunctionDB=WIZCom: Error message Set to '[edit(v(0),$,)]'.
&WUSRLOCKM000 FunctionDB=u(ERRORDEF)]
&WUSRLOCKM010 FunctionDB=u(ERRORDEF)]
&WUSRLOCKM001 FunctionDB=u(ERRORDEF)]
&WUSRLOCKM011 FunctionDB=u(ERRORDEF)]
&WUSRLOCKM100 FunctionDB=WIZCom: ERROR - '[secure(v(0))]' not a player.
&WUSRLOCKM110 FunctionDB=WIZCom: [u(WUSRFLAG[match(+ -,v(1))],%0,%1)]
&WUSRLOCKM101 FunctionDB=WIZCom: Status report of currently locked people:%r[v(lines)]%r[iter(v(wusrlist),[name(##)]\(##[flags(##)]\))]%r[v(lines)]
&WUSRLOCKM111 FunctionDB=WIZCom: Status report of currently locked people:%r[v(lines)]%r[iter(v(wusrlist),[name(##)]\(##[flags(##)]\))]%r[v(lines)]%r*NOTE* A player exists by the name 'STATUS'. If you wish to add/remove%r[space(7)]this user, use his dbrief# '[num(*%0)]'.
&ERRORSETM11 FunctionDB=WIZCom: Error message reset to default of 'Huh? %%b\\\(Type "help" for help.\\\)'.
&WUSRLOCK110 FunctionDB=[v(F-DB)]
&WUSRFLAG0 FunctionDB=ERROR - Invalid switch '[v(1)]' specified.
&WUSRFLAG1 FunctionDB='[name(*%0)]' locked from using the ComSystem.
&WUSRFLAG2 FunctionDB='[name(*%0)]' allowed to use the ComSystem.
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #5 <F-5>},{@pemit me=[space(5)]: Function Checkpoint #5 <F-5>}
&WUSRLOCK0 FunctionDB=[v(wusrlist)]
&WUSRLOCK1 FunctionDB=[setunion(v(wusrlist),num(*%0))]
&WCLOAKF FunctionDB=[u(wizard,%0)][match(/STATUS,%1)][gt(words(get([v(CH-DB)]/[v(1)])),0)]
&WCLOAKM100 FunctionDB=WIZCom: ERROR - '[secure(v(1))]' not a valid channel.
&WCLOAKM101 FunctionDB=WIZCom: You have just [switch(gt(match(get([v(O-DB)]/C-[s(v(1))]),v(0)),0),0,CLOAKED,DE-CLOAKED)] on channel '[capstr(lcstr(v(1)))][switch(match(get([v(CH-DB)]/[v(1)]),*L*),0,',+')].
&WCLOAKM000 FunctionDB=[u(ERRORDEF)]
&WCLOAKM010 FunctionDB=[u(ERRORDEF)]
&WCLOAKM001 FunctionDB=[u(ERRORDEF)]
&WCLOAKM011 FunctionDB=[u(ERRORDEF)]
&WCLOAKM110 FunctionDB=WIZCom: Listing all channels currently cloaked:%r[v(lines)]%r[s(edit(iter(lattr([v(O-DB)]),switch(match(##,C-*),1,##)),C-,))]%r[v(lines)]
&WCLOAKM111 FunctionDB=WIZCom: *WARNING* Channel name exists with '/STATUS'. Destroy it.%r[u(WCLOAKM110,%0,%1)]
&WUSRLOCK2 FunctionDB=[setdiff(v(wusrlist),num(*%0))]
&WCLOAKS101 FunctionDB=[v(O-DB)]
&WCLOAKDO0 FunctionDB=[setunion(get([v(O-DB)]/C-[s(v(0))]),v(1))]
&WCLOAKDO1 FunctionDB=[setdiff(get([v(O-DB)]/C-[s(v(0))]),v(1))]
&SETWIZM0 FunctionDB=[u(ERRORDEF)]
&SETWIZM1 FunctionDB=WIZCom: Wizards are now recognized by string '[v(wizard)]'.
&SETWIZFUNC FunctionDB=[or(u(wizard,%0),match(owner(me),%0))]
&SETWIZ1 FunctionDB=[v(F-DB)]
&CPFUNC_OLD FunctionDB=[gt(match(get([v(CH-DB)]/[extract(v(1),1,1)]),L),0)][gt(match(get([v(CH-DB)]/[extract(v(1),1,1)]),v(0)),0)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #6 <F-6>},{@pemit me=[space(5)]: Function Checkpoint #6 <F-6>}
&CPFUNC FunctionDB=[gt(match(get([v(CH-DB)]/[extract(v(1),1,1)]),L),0)][or(match(get([v(CH-DB)]/[extract(v(1),1,1)]),v(0)),not(u(VINVF,%1,%0)))]
&CLFUNC FunctionDB=[and(match(before(get([v(CH-DB)]/[v(0)]),L),v(1)),match(get([v(CH-DB)]/[v(0)]),L))][gt(words(setdiff(iter(v(2),num(*##)),#-1 [v(3)])),0)]
&CLFUNC2 FunctionDB=[switch(gt(words(setdiff(iter(v(1),num(*##)),#-1 [v(3)])),1),1,the following:%b,user%b)][setdiff(iter(v(1),num(*##)),#-1 [v(3)])]
&CULFUNC FunctionDB=[gt(words(setinter(iter(v(1),num(*##)),v(3))),0)][and(match(before(get([v(CH-DB)]/[v(0)]),L),v(2)),match(get([v(CH-DB)]/[v(0)]),L))]
&CULFUNC2 FunctionDB=[switch(gt(words(setinter(iter(v(0),num(*##)),v(3))),1),1,the following:%b,user%b)][setinter(iter(v(0),num(*##)),v(3))]
&COLFUNC FunctionDB=[gt(words(setdiff(setinter(iter(v(1),num(*##)),v(3)),get([v(O-DB)]/C-[v(0)]))),0)][and(match(before(get([v(CH-DB)]/[v(0)]),L),v(2)),match(get([v(CH-DB)]/[v(0)]),L))]
&COLFUNC2 FunctionDB=[switch(gt(words(setdiff(setinter(iter(v(1),num(*##)),v(3)),get([v(O-DB)]/C-[v(0)]))),1),1,list:%b)][setdiff(setinter(iter(v(1),num(*##)),v(3)),get([v(O-DB)]/C-[v(0)]))]
&COFUNC FunctionDB=[and(match(before(get([v(CH-DB)]/[v(0)]),L),v(1)),match(get([v(CH-DB)]/[v(0)]),L))][gt(words(setdiff(iter(v(2),num(*##)),#-1 [v(3)] [get([v(O-DB)]/C-[v(0)])])),0)]
&COFUNC2 FunctionDB=[switch(gt(words(setdiff(iter(v(1),num(*##)),#-1 [v(3)] [get([v(O-DB)]/C-[v(0)])])),1),1,list:%b)][setdiff(iter(v(1),num(*##)),#-1 [v(3)] [get([v(O-DB)]/C-[v(0)])])]
&CHOWNFUNC FunctionDB=[u(wizard,%0)][gt(match(get([v(CH-DB)]/[first(v(1))]),L),0)][gt(words(setdiff(iter(v(2),num(*##)),#-1)),0)]
&MAKEFUNC FunctionDB=[u(wizard,%0)][gt(match(get([v(CH-DB)]/[first(v(1))]),L),0)][gt(words(get([v(CH-DB)]/[first(v(1))])),0)]
&AUTHOR FunctionDB=Ashen-Shugar%rFor information about the author, he can be reached at the following addresses: %rphoenix@medsys.med.wayne.edu
&LISTUSER FunctionDB=[iter(after(get([v(CH-DB)]/[v(0)]),L),switch(match(PLAYER,type(##)),1,name(##)))]
&LISTUSER_0 FunctionDB=[iter(after(get([v(CH-DB)]/[v(0)]),L),switch(match(PLAYER,type(##)),1,name(##)))]
&LISTUSER_1 FunctionDB=[words(iter(after(get([v(CH-DB)]/[v(0)]),L),switch(match(PLAYER,type(##)),1,name(##))))]
&LISTOWNER FunctionDB=[iter(setdiff(before(get([v(CH-DB)]/[v(0)]),L),get([v(O-DB)]/C-[v(0)])),switch(match(PLAYER,type(##)),1,name(##)))]
&LISTOWNER2 FunctionDB=[iter(before(get([v(CH-DB)]/[v(0)]),L),switch(match(PLAYER,type(##)),1,name(##)))]
&LISTOWNER_0 FunctionDB=[iter(setdiff(before(get([v(CH-DB)]/[v(0)]),L),get([v(O-DB)]/C-[v(0)])),switch(match(PLAYER,type(##)),1,name(##)))]
&LISTOWNER_1 FunctionDB=[words(iter(setdiff(before(get([v(CH-DB)]/[v(0)]),L),get([v(O-DB)]/C-[v(0)])),switch(match(PLAYER,type(##)),1,name(##))))]
&LISTOWNER2_0 FunctionDB=[iter(before(get([v(CH-DB)]/[v(0)]),L),switch(match(PLAYER,type(##)),1,name(##)))]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #7 <F-7>},{@pemit me=[space(5)]: Function Checkpoint #7 <F-7>}
&LISTOWNER2_1 FunctionDB=[words(iter(before(get([v(CH-DB)]/[v(0)]),L),switch(match(PLAYER,type(##)),1,name(##))))]
&NOTAUSER FunctionDB=[u(NOTAUSER1,[iter(setdiff(get([v(CH-DB)]/[v(0)]),L),switch(match(PLAYER,type(##)),0,[name(##)]\(##\)))])]
&COPYRIGHT FunctionDB=(c) Ashen-Shugar, all rights reserved. This code was done with a lot of hard work be a single individual and input from several others. The author retains all rights to this code and any piece of code contained herein. This code may be copied freely, but may not be altered without concent of the original author. Any who use this code are asked to notify the author so that he may keep in touch with you for future upgrades and/or modifications.
&COMFUNC FunctionDB=[gt(match(get([v(CH-DB)]/[extract(before(v(0),=),1,1)]),v(1)),0)][gt(match(who,extract(after(v(0),=),1,2)),0)]
&COMFORMAT FunctionDB=[u(COMFORMAT[member(ucstr(s(before(%0,=))),ucstr(get([v(O-DB)]/NAME_[s(before(%0,=))])))],%0,%1,%2,%3)]
&COMFORMAT0 FunctionDB=\[[capstr(lcstr(extract(before(v(0),=),1,1)))][switch(gt(member(get([v(CH-DB)]/[extract(before(v(0),=),1,1)]),L),0),1,+)]\]
&COMFORMAT1 FunctionDB=\[[get([v(O-DB)]/NAME_[s(before(%0,=))])][switch(gt(member(get([v(CH-DB)]/[s(before(%0,=))]),L),0),1,+)]\]
&LINES FunctionDB=------------------------------------------------------------------------------
&WORDIT FunctionDB=[iter(v(0),switch(pos(#,##),#-1,##,[name(##)]))]
&DELFUNC FunctionDB=[gt(words(get([v(CH-DB)]/[first(v(0))])),0)][gt(match(get([v(CH-DB)]/[first(v(0))]),L),0)][gt(match(before(get([v(CH-DB)]/[first(v(0))]),L),v(1)),0)]
&WDELFUNC FunctionDB=[gt(words(get([v(CH-DB)]/[first(v(0))])),0)][u(wizard,%1)][match(/QUIET,%2)]
&WREMOVE1 FunctionDB=[setinter(lwho(),get([v(CH-DB)]/[v(0)]))]
&WREMOVE0 FunctionDB=[v(9)]
&SREMOVE111 FunctionDB=[v(0)]
&SREMOVE110 FunctionDB=[v(0)]
&ERRREMOVE000 FunctionDB=[u(ERRORDEF)]
&ERRREMOVE010 FunctionDB=WIZCom: ERROR - Unrecognized channel '[capstr(first(v(1)))]'
&ERRREMOVE001 FunctionDB=[u(ERRORDEF)]
&ERRREMOVE100 FunctionDB=[u(ERRORDEF)]
&ERRREMOVE110 FunctionDB=WIZCom: Channel '[capstr(first(v(1)))]' is toast.
&ERRREMOVE011 FunctionDB=WIZCom: ERROR - Unrecognized channel '[capstr(first(v(1)))]'
&ERRREMOVE101 FunctionDB=[u(ERRORDEF)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #8 <F-8>},{@pemit me=[space(5)]: Function Checkpoint #8 <F-8>}
&ERRREMOVE111 FunctionDB=WIZCom: Channel '[capstr(first(v(1)))]' is STEALTH-toast
&MONADDF FunctionDB=[gt(match(get([v(M-DB)]/forwardlist),%0),0)][u(wizard,%0)]
&MONSETM00 FunctionDB=[u(ERRORDEF)]
&MONSETM10 FunctionDB=[u(ERRORDEF)]
&MONSETM01 FunctionDB=WIZCom: You have been added to the built-in monitoring channel.
&MONSETM11 FunctionDB=WIZCom: You have been removed from the built-in monitoring channel.
&COMCK1 FunctionDB=[setq(6,get([v(CH-DB)]/[s(before(%0,=))]))][setdiff(setinter([setdiff(r(6),iter(r(6),num(*##)))] [lwho()],r(6)),[get([v(O-DB)]/[extract(before(%0,=),1,1)])] [get([v(O-DB)]/SET_ARG_CODING)])]
&COMCK0 FunctionDB=[v(9)]
&COMCKM FunctionDB=[u(COMCKM_[u(wizard,%1)],%0)]
&COMCKM0 FunctionDB=[member(v(COM-L),mid(extract(after(v(0),=),1,1),0,1))]
&COMCKM1 FunctionDB=0
&COMCKM_0 FunctionDB=[u(COMCKM[gt(member(get([v(O-DB)]/W_COM-L),mid(extract(after(%0,=),1,1),0,1)),0)],%0)]
&COMCKM_1 FunctionDB=[u(COMCKM0,%0)]
&COM-L FunctionDB=; : " ~ ! ' ^ _ < > @
&COM-L-WORDS FunctionDB=POSSPOSE POSE%b%b%b%b SAY%b%b%b%b%b SPOOF%b%b%b TITLE%b%b%b ALIAS%b%b%b OMIT%b%b%b%b SPECIFIC REVERSE%b REVWORDS DIRECTED
&COM-SPK0 FunctionDB=[switch(match(u(COM-SPK_[u(wizard,%1)],get([v(1)]/CDEF)),get([v(1)]/CDEF)),0,u(COM-SPK00,%0,%1,%2),u(COM-SPK[match(u(COM-SPK_[u(wizard,%1)],get([v(1)]/CDEF)),get([v(1)]/CDEF))],[before(%0,=)]=[extract(v(COM-L),match(u(COM-SPK_[u(wizard,%1)],get([v(1)]/CDEF)),get([v(1)]/CDEF)),1)][after(%0,=)],%1,%2))]
&COM-SPK00 FunctionDB=[u(comformat,%0)] [u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)]: [after(v(0),=)]
&COM-SPK_0 FunctionDB=[switch(member(get([v(O-DB)]/W_COM-L),%0),0,v(COM-L),%t)]
&COM-SPK_1 FunctionDB=[v(COM-L)]
&COM-ANS0 FunctionDB=[v(9)]
&COM-ANS1 FunctionDB=Com: The following are on channel: '[capstr(lcstr(before(v(0),=)))]'%r[v(lines)][u(COM-WHO[u(wizard,%1)],%0,%1)]%r[v(lines)]%rListing of channel '[capstr(lcstr(before(v(0),=)))]' concluded
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #9 <F-9>},{@pemit me=[space(5)]: Function Checkpoint #9 <F-9>}
&WSETDARKM0 FunctionDB=[u(errordef)]
&WSETDARKM1 FunctionDB=WIZCom: DARK now recognized by '[get([v(F-DB)]/DARK)]'.
&WSETDARKS1 FunctionDB=%0
&DARK FunctionDB=[hasflag(%0,dark)]
&COM-WHO0 FunctionDB=[iter(u(comckz,%0,%1),switch(and(or(u(dark,##),match(get([v(O-DB)]/C-[before(v(0),=)]),##)),u(wizard,##)),0,%r[u(COM-WHO-[and(or(words(get(##/calias)),words(get(##/calias-[before(%0,=)]))),match(get([v(O-DB)]/w_channels),extract(before(%0,=),1,1)))],##,%1,%0)][space(sub(40,strlen(u(COM-WHO-[and(or(words(get(##/calias)),words(get(##/calias-[before(%0,=)]))),match(get([v(O-DB)]/w_channels),extract(before(%0,=),1,1)))],##,%1,%0))))][U(OPT0[gt(match(get([v(O-DB)]/[extract(before(v(0),=),1,1)]),##),0)][gt(match(get([v(O-DB)]/SET_ARG_CODING),##),0)])]))]
&COM-WHO1 FunctionDB=[iter(u(comckz,%0),%r[u(COM-WHO-[and(or(words(get(##/calias)),words(get(##/calias-[before(%0,=)]))),match(get([v(O-DB)]/w_channels),extract(before(%0,=),1,1)))],##,%1,%0)]\(##[flags(##)]\)[space(sub(50,strlen([u(COM-WHO-[and(or(words(get(##/calias)),words(get(##/calias-[before(%0,=)]))),match(get([v(O-DB)]/w_channels),extract(before(%0,=),1,1)))],##,%1,%0)]##[flags(##)])))][U(OPT[gt(match(get([v(O-DB)]/U##),NOSPOOF),0)][gt(match(get([v(O-DB)]/[extract(before(v(0),=),1,1)]),##),0)][gt(match(get([v(O-DB)]/SET_ARG_CODING),##),0)])])]
&COM-WHO-0 FunctionDB=[name(%0)]
&COM-WHO-1 FunctionDB=[switch([match(get([v(O-DB)]/U%1),NOALIAS)]|[eq(words(get(%0/calias-[before(%2,=)])),0)],0|0,secure(get(%0/calias-[before(%2,=)])),0*,secure(get(%0/calias)),name(%0))]
&COM-SPK1 FunctionDB=[u(comformat,%0)] [u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)][after(after(v(0),=),extract(v(com-l),1,1))]
&COM-SPK2 FunctionDB=[u(comformat,%0)] [u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)] [after(after(v(0),=),extract(v(com-l),2,1))]
&COM-SPK3 FunctionDB=[u(comformat,%0)] [u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)] says "[after(after(v(0),=),extract(v(com-l),3,1))]"
&COM-SPK4 FunctionDB=[u(comformat,%0)] [switch(and(match(get([v(O-DB)]/U[v(2)]),NOSPOOF),not(and(match(get([v(O-DB)]/W_CONFIG_SET),ENABLE_WIZ_NOSPOOF),u(wizard,%1)))),1,<[u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)]>%b)][after(after(v(0),=),extract(v(com-l),4,1))]
&CONF-L FunctionDB=NOSPOOF COMPRESS_LISTCHAN LASTCHAN NOALIAS RANDTITLE RANDALIAS USE_ALIAS
&CONFMSG0 FunctionDB=Com: ERROR - Configure option '[secure(v(0))]' unrecognized.
&CONFMSG1 FunctionDB=Com: Configure option '[secure(v(0))]' [switch(gt(match(on yes,%1),0),1,-> Set,-> Unset)]
&CONFSET1 FunctionDB=[u(COM-S[gt(match(on yes,%1),0)],%0,%1,%2)]
&COM-S1 FunctionDB=[setunion(get([v(O-DB)]/U[v(2)]),ucstr(v(0)))]
&COM-S0 FunctionDB=[setdiff(get([v(O-DB)]/U[v(2)]),ucstr(v(0)))]
&COM-SPK5 FunctionDB=[u(comformat,%0)] [u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)] <[u(DOTITLE-[gt(words(get(%1/CTITLE-[s(before(%0,=))])),0)],%0,%1,%2)]> [after(after(v(0),=),extract(v(com-l),5,1))]
&DOTITLE0 FunctionDB=The Untitled
&DOTITLE1 FunctionDB=[u(DOTITLE1[gt(match(get([v(O-DB)]/U%1),RANDTITLE),0)],%0,%1,%2)]
&DOTITLE-0 FunctionDB=[u(DOTITLE[gt(words(get(%1/ctitle)),0)],%0,%1,%2)]
&DOTITLE-1 FunctionDB=[mid(secure(get(%1/CTITLE-[s(before(%0,=))])),0,25)]
&DOTITLE10 FunctionDB=[mid(secure(get(%1/ctitle)),0,25)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #10 <F-10>},{@pemit me=[space(5)]: Function Checkpoint #10 <F-10>}
&DOTITLE11 FunctionDB=[mid(secure(index(get(%1/ctitle),@,add(rand(add(sub(strlen(get(%1/ctitle)),strlen(edit(get(%1/ctitle),@,))),1)),1),1)),0,25)]
&COM-SPK6 FunctionDB=[u(DOALIAS-[gt(words(get(%1/CALIAS-[s(before(%0,=))])),0)],%0,%1,%2)]
&DOALIAS0 FunctionDB=[u(comformat,%0)] [switch(words(%2),0,Anonymous:,[mid(secure(%2),0,25)]:)] [after(after(v(0),=),extract(v(com-l),6,1))]
&DOALIAS1 FunctionDB=[u(comformat,%0)] <[name(%1)]> [switch(words(%2),0,Anonymous:,[mid(secure(%2),0,25)]:)] [after(after(v(0),=),extract(v(com-l),6,1))]
&DOALIAS-1 FunctionDB=[u(DOALIAS[gt(match(get([v(O-DB)]/U[v(2)]),NOSPOOF),0)],%0,%1,[get(%1/CALIAS-[s(before(%0,=))])])]
&DOALIAS-0 FunctionDB=[u(DOALIAS[gt(match(get([v(O-DB)]/U[v(2)]),NOSPOOF),0)],%0,%1,[u(DOALIASRAND[gt(match(get([v(O-DB)]/U%1),RANDALIAS),0)],%0,%1)])]
&DOALIASRAND0 FunctionDB=[get(%1/CALIAS)]
&DOALIASRAND1 FunctionDB=[index(get(%1/CALIAS),@,add(rand(add(sub(strlen(get(%1/calias)),strlen(edit(get(%1/calias),@,))),1)),1),1)]
&COM-SPK7 FunctionDB=[switch(gt(pos(extract(v(com-l),7,1),after(v(0),extract(v(com-l),7,1))),0),0,u(COM-SPK00,%0,%1,%2),u(COM-SPK7A,%0,%1,%2))]
&COM-SPK7 me=[switch(gt(edit(first(pos(extract(v(com-l),7,1),after(v(0),extract(v(com-l),7,1)))),#-1,0),0),0,u(COM-SPK00,%0,%1,%2),u(COM-SPK7A,%0,%1,%2))]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&COM-SPK7 FunctionDB=v(COM-SPK7);@wait 5=&COM-SPK7 me},&COM-SPK7 me
&COM-SPK7A FunctionDB=[u(DOOMIT[gt(match([iter(before(after(v(0),extract(v(com-l),7,1)),extract(v(com-l),7,1)),num(*##))],v(2)),0)],%0,%1,%2)]
&DOOMIT0 FunctionDB=[u(comformat,%0)] [u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)]: [after(after(v(0),extract(v(com-l),7,1)),extract(v(com-l),7,1))]
&DOOMIT1 FunctionDB=[switch(u(wizard,%2),1,[u(comformat,%0)] [u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)]: <OMIT - EXCLUDED> [after(after(v(0),extract(v(com-l),7,1)),extract(v(com-l),7,1))])]
&COM-SPK8 FunctionDB=[switch(gt(pos(extract(v(com-l),8,1),after(v(0),extract(v(com-l),8,1))),0),0,u(COM-SPK00,%0,%1,%2),u(COM-SPK8A,%0,%1,%2))]
&COM-SPK8 me=[switch(gt(edit(first(pos(extract(v(com-l),8,1),after(v(0),extract(v(com-l),8,1)))),#-1,0),0),0,u(COM-SPK00,%0,%1,%2),u(COM-SPK8A,%0,%1,%2))]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&COM-SPK8 FunctionDB=v(COM-SPK8);@wait 5=&COM-SPK8 me},&COM-SPK8 me
&COM-SPK8A FunctionDB=[u(DOPRIV[gt(match([iter(before(after(v(0),extract(v(com-l),8,1)),extract(v(com-l),8,1)),num(*##))],v(2)),0)],%0,%1,%2)]
&COM-SPK9 FunctionDB=[u(comformat,%0)] [u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)] [reverse(after(after(v(0),=),extract(v(com-l),9,1)))]
&COM-SPK10 FunctionDB=[u(comformat,%0)] [u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)] [revwords(after(after(v(0),=),extract(v(com-l),10,1)))]
&DOPRIV1 FunctionDB=[u(comformat,%0)] [u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)]: [after(after(v(0),extract(v(com-l),8,1)),extract(v(com-l),8,1))]
&DOPRIV0 FunctionDB=[switch(u(wizard,%2),1,[u(comformat,%0)] [u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)]: <OMIT - PRIVATE> [after(after(v(0),extract(v(com-l),8,1)),extract(v(com-l),8,1))])]
&COM-SPK11 FunctionDB=[switch(gt(pos(extract(v(com-l),11,1),after(v(0),extract(v(com-l),11,1))),0),0,u(COM-SPK00,%0,%1,%2),u(COM-SPK11A,%0,%1,%2))]
&COM-SPK11 me=[switch(gt(edit(first(pos(extract(v(com-l),11,1),after(v(0),extract(v(com-l),11,1)))),#-1,0),0),0,u(COM-SPK00,%0,%1,%2),u(COM-SPK11A,%0,%1,%2))]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&COM-SPK11 FunctionDB=v(COM-SPK11);@wait 5=&COM-SPK11 me},&COM-SPK11 me
&COM-SPK11A FunctionDB=[u(comformat,%0)] [u(COM-SPKNAME[and(match(get([v(O-DB)]/U%1),USE_ALIAS),words(get(%1/CALIAS-[s(before(%0,=))])))],%1,%0,%2)] [u(DODIRECTED[min(3,words(before(after(%0,extract(v(com-l),11,1)),extract(v(com-l),11,1)),\,))],before(after(%0,extract(v(com-l),11,1)),extract(v(com-l),11,1)))]: [after(after(%0,extract(v(com-l),11,1)),extract(v(com-l),11,1))]
&DODIRECTED0 FunctionDB=%(To: Everyone%)
&DODIRECTED1 FunctionDB=%(To: %0%)
&DODIRECTED2 FunctionDB=%(To: [extract(%0,1,1,\,)] & [extract(%0,2,1,\,)]%)
&DODIRECTED3 FunctionDB=%(To: [setq(9,[extract(%0,1,[sub(words(%0,\,),1)],\,)])][iter(r(9),##\,,\,)] & [extract(%0,words(%0,\,),1,\,)]%)
&COM-ANS2 FunctionDB=Com: ERROR - You are not on channel '[capstr(lcstr(before(v(0),=)))]'
&COM-ANS3 FunctionDB=Com: ERROR - You are not on channel '[capstr(lcstr(before(v(0),=)))]'
&COM-ANS4 FunctionDB=[u(COM-ANS4[gt(match(get([v(O-DB)]/[before(%0,=)]),%1),0)][gt(match(get([v(O-DB)]/SET_ARG_CODING),%1),0)],%0,%1)]
&COM-ANS410 FunctionDB=Com: WARNING - you are set 'QUIET' on channel '[capstr(lcstr(before(%0,=)))]'.%r[space(15)]Use '+QUIET [ucstr(before(%0,=))]' to reactivate.
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #11 <F-11>},{@pemit me=[space(5)]: Function Checkpoint #11 <F-11>}
&COM-ANS411 FunctionDB=Com: WARNING - you are set 'QUIET' on channel '[capstr(lcstr(before(%0,=)))]'.%r[space(15)]Use '+QUIET [ucstr(before(%0,=))]' to reactivate.%r[space(5)]WARNING - you are set 'CODING' and can see no output.%r[space(15)]Use '+CODING' to reactivate.
&COM-ANS401 FunctionDB=Com: WARNING - you are set 'CODING' and can see no output.%r[space(15)]Use '+CODING' to reactivate.
&QFUNC FunctionDB=[u(QSET[gt(match(get([v(A-DB)]/A[v(1)]),first(v(0))),0)],%0,%1)]
&QSET0 FunctionDB=[u(QSETA[gt(words(get([v(A-DB)]/D[v(1)])),0)],%0,%1)]
&QSET1 FunctionDB=[extract(get([v(A-DB)]/C[v(1)]),match(get([v(A-DB)]/A[v(1)]),first(v(0))),1)]
&QSETA0 FunctionDB=PUBLIC
&QSETA1 FunctionDB=[get([v(A-DB)]/D[v(1)])]
&QFUNC2 FunctionDB=[u(QANS[gt(match(get([v(A-DB)]/A[v(1)]),first(v(0))),0)],%0,%1)]
&QANS0 FunctionDB=[v(0)]
&QANS1 FunctionDB=[rest(v(0))]
&QUIET00 FunctionDB=[u(QUIET[match(/LIST,%0)],%0,%1,%2)]
&QUIET01 FunctionDB=Com: ERROR - Channel '[capstr(lcstr(secure(first(v(0)))))]' is not a locked channel.
&QUIET10 FunctionDB=Com: Channel '[capstr(lcstr(secure(first(v(0)))))]' is now quieted.
&QUIET11 FunctionDB=Com: Channel '[capstr(lcstr(secure(first(v(0)))))]' is now active.
&QUIETF FunctionDB=[gt(match(get([v(CH-DB)]/[v(0)]),L),0)][gt(match(get([v(O-DB)]/[v(0)]),v(1)),0)]
&QUIETS10 FunctionDB=[secure(first(v(0)))]
&QUIETS11 FunctionDB=[secure(first(v(0)))]
&QUIETSET11 FunctionDB=[setdiff(get([v(O-DB)]/[v(0)]),v(1))]
&QUIETSET10 FunctionDB=[setunion(get([v(O-DB)]/[v(0)]),v(1))]
&QUIET0 FunctionDB=Com: ERROR - Channel '[capstr(lcstr(secure(first(v(0)))))]' is not a locked channel.
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #12 <F-12>},{@pemit me=[space(5)]: Function Checkpoint #12 <F-12>}
&QUIET1 FunctionDB=Com: Listing all channels you currently have quieted:%r[v(lines)][setq(0,setinter(lattr(v(O-DB)),lattr(v(CH-DB))))][iter([r(0)],u(QUIET-[gt(match(get([v(O-DB)]/##),%1),0)],%0,%1,##,mod(sub(match([r(0)],##),1),3)))]%r[v(lines)]%rListing: Completed.[u(LISTCHANCODING[gt(match(get([v(O-DB)]/set_arg_coding),%1),0)])]
&QUIET-1 FunctionDB=[switch(%3,0,%r[space(4)][ljust(mid(capstr(lcstr(%2)),0,24),25)],[ljust(mid(capstr(lcstr(%2)),0,24),25)])]
&COMCKZ FunctionDB=[setinter(lwho(),get([v(CH-DB)]/[extract(before(v(0),=),1,1)]))]
&COMCKZFIX FunctionDB=[setinter(objeval(%1,lwho()),get([v(CH-DB)]/[extract(before(v(0),=),1,1)]))]
@swi/f [version()]=*Rhost*,@cpattr/clear FunctionDB/COMCKZFIX=FunctionDB/COMCKZ
@swi/f [version()]=*MURE*,&COMCKZ FunctionDB=get(FunctionDB/COMCKZFIX)
@wait 1=&COMCKZFIX FunctionDB=
&OPT000 FunctionDB=%b
&OPT001 FunctionDB=[space(14)]CODING
&OPT010 FunctionDB=[space(8)]QUIET
&OPT100 FunctionDB=NOSPOOF
&OPT110 FunctionDB=NOSPOOF/QUIET
&OPT011 FunctionDB=[space(8)]QUIET/CODING
&OPT101 FunctionDB=NOSPOOF[space(7)]CODING
&OPT111 FunctionDB=NOSPOOF/QUIET/CODING
&MINUSCH01 FunctionDB=[v(CH-DB)]
&PLUSCH00 FunctionDB=[v(CH-DB)]
&WOWNERF FunctionDB=[gt(match(get([v(CH-DB)]/[first(v(1))]),L),0)][match(/QUIET,v(0))][u(wizard,%2)][gt(words(setdiff(iter(v(3),num(*##)),#-1 [v(4)])),0)]
&WOWNER0 FunctionDB=[u(ERRORDEF)]
&WOWNER1 FunctionDB=WIZCom: ERROR - Channel '[secure(v(0))]' not a locked channel.
&WOWNER2 FunctionDB=WIZCom: ERROR - Channel '[secure(v(0))]' not a locked channel.
&WOWNER3 FunctionDB=WIZCom: ERROR - Validation shows empty user list.
&WOWNER4 FunctionDB=WIZCom: ERROR - Channel '[secure(v(0))]' not a locked channel.
&WOWNER5 FunctionDB=WIZCom: ERROR - Validation shows empty user list.
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #13 <F-13>},{@pemit me=[space(5)]: Function Checkpoint #13 <F-13>}
&WOWNER6 FunctionDB=WIZCom: ERROR - Channel '[secure(v(0))]' not a locked channel.
&WOWNER7 FunctionDB=[v(9)]
&WOWNER8 FunctionDB=WIZCom: QUIETMODE - Following owner(s) added to channel '[capstr(lcstr(v(0)))]': [setdiff(u(wordit,[u(cofunc2,%0,%1,%2,%3)]),list:)]
&WOWNERDO0 FunctionDB=[v(9)]
&WOWNERDO1 FunctionDB=[setinter(lwho(),setunion(iter(v(0),num(*##)),[get([v(CH- DB)]/[v(2)])] [v(1)]))]
&WOWNERS1111 FunctionDB=[v(CH-DB)]
&WOWNERS1011 FunctionDB=[v(CH-DB)]
&WUSERF FunctionDB=[gt(match(get([v(CH-DB)]/[first(v(1))]),L),0)][match(/QUIET,v(0))][u(wizard,%2)][gt(words(setdiff(iter(v(3),num(*##)),#-1 [v(4)])),0)]
&WUSERM0 FunctionDB=[u(ERRORDEF)]
&WUSERM1 FunctionDB=WIZCom: ERROR - Channel '[secure(v(0))]' not a locked channel.
&WUSERM2 FunctionDB=WIZCom: ERROR - Channel '[secure(v(0))]' not a locked channel.
&WUSERM3 FunctionDB=WIZCom: ERROR - Validation shows empty user list.
&WUSERM4 FunctionDB=WIZCom: ERROR - Channel '[secure(v(0))]' not a locked channel.
&WUSERM5 FunctionDB=WIZCom: ERROR - Validation shows empty user list.
&WUSERM6 FunctionDB=WIZCom: ERROR - Channel '[secure(v(0))]' not a locked channel.
&WUSERM7 FunctionDB=[v(9)]
&WUSERM8 FunctionDB=WIZCom: QUIETMODE - Following user(s) added to channel '[capstr(lcstr(v(0)))]': [setdiff(rest(u(wordit,u(clfunc2,%0,%1,%2,%3))),following:)]
&WUSERDO1 FunctionDB=[setinter(lwho(),setunion(iter(v(0),num(*##)),[get([v(CH-DB)]/[v(2)])] [v(1)]))]
&WUSERDO0 FunctionDB=[v(9)]
&WUSERS1111 FunctionDB=[v(0)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #14 <F-14>},{@pemit me=[space(5)]: Function Checkpoint #14 <F-14>}
&WUSERS1011 FunctionDB=[v(0)]
&WUNUSERF FunctionDB=[gt(match(get([v(CH-DB)]/[first(v(1))]),L),0)][match(/QUIET,v(0))][u(wizard,%2)][gt(words(setinter([v(4)],iter(v(3),num(*##)))),0)]
&WUNUSERM0 FunctionDB=[u(ERRORDEF)]
&WUNUSERM1 FunctionDB=WIZCom: ERROR - Channel '[secure(v(1))]' not a locked channel.
&WUNUSERM2 FunctionDB=WIZCom: ERROR - Channel '[secure(v(1))]' not a locked channel.
&WUNUSERM3 FunctionDB=WIZCom: ERROR - Validation shows empty user list.
&WUNUSERM4 FunctionDB=WIZCom: ERROR - Channel '[secure(v(1))]' not a locked channel.
&WUNUSERM5 FunctionDB=WIZCom: ERROR - Validation shows empty user list.
&WUNUSERM6 FunctionDB=WIZCom: ERROR - Channel '[secure(v(1))]' not a locked channel.
&WUNUSERDO0 FunctionDB=[v(9)]
&WUNUSERDO1 FunctionDB=[setinter(lwho(),[get([v(CH-DB)]/[v(0)])] [v(2)])]
&WUNUSERS1111 FunctionDB=[v(0)]
&WUNUSERS1011 FunctionDB=[v(0)]
&WREMF FunctionDB=[u(wizard,%2)][gt(words(setinter(get([v(CH-DB)]/[v(0)]),v(1))),0)]
&WREMM00 FunctionDB=[u(ERRORDEF)]
&WREMM01 FunctionDB=[u(ERRORDEF)]
&WREMM10 FunctionDB=WIZCom: ERROR - Validation shows empty user list.
&WREMM11 FunctionDB=WIZCom: The following user(s) were removed from '[capstr(lcstr(v(0)))]': [iter(setinter(%1,get([v(CH-DB)]/[v(0)])),name(##))]
&WREMS11 FunctionDB=[v(CH-DB)]
&WREMDO1 FunctionDB=[setdiff(before(get([v(CH-DB)]/[v(0)]),L),%1)] L [setdiff(after(get([v(CH-DB)]/[v(0)]),L),%1)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #15 <F-15>},{@pemit me=[space(5)]: Function Checkpoint #15 <F-15>}
&WREMDO0 FunctionDB=[setdiff(get([v(CH-DB)]/[v(0)]),%1)]
&LISTPUB0 FunctionDB=[setq(0,iter(lattr(v(CH-DB)),switch(match(get([v(CH-DB)]/##),L),0,##)))][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(%0,div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[ljust(##,20)] - Public Access %([words(get([v(CH-DB)]/##))] Total Players%))][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r----- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] ----,%r---- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing -> Completed ----)]
&LISTPRIV0 FunctionDB=[u(ERRORDEF)]
&LISTPRIV1 FunctionDB=The following private (LOCKED) channels currently exist:[setq(0,iter(lattr(v(CH-DB)),switch(gt(match(get([v(CH-DB)]/##),L),0),1,##)))][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(%0,div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[ljust(##,20)] - Private Access[space(3)]Users: [ljust(words(after(get([v(CH-DB)]/##),L)),5)]Owners: [words(before(get([v(CH-DB)]/##),L))][space(3)][u(badlistusr,##)])][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r----- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] -----,%r----- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing Completed -----)]
&WIPEF FunctionDB=[u(wizard,%1)][and(match(before(get([v(CH-DB)]/[v(0)]),L),%1),match(get([v(CH-DB)]/[v(0)]),L))][gt(words(get([v(CH-DB)]/[first(v(0))])),0)]
&WIPEM001 FunctionDB=Com: ERROR - You have no authority over channel '[capstr(lcstr(first(secure(v(0)))))]'
&WIPEM000 FunctionDB=Com: ERROR - Channel '[capstr(lcstr(first(secure(v(0)))))]' non-existant.
&WIPEM100 FunctionDB=Com: ERROR - Channel '[capstr(lcstr(first(secure(v(0)))))]' non-existant.
&WIPEM010 FunctionDB=Com: ERROR - Channel '[capstr(lcstr(first(secure(v(0)))))]' non-existant.
&WIPEM110 FunctionDB=Com: ERROR - Channel '[capstr(lcstr(first(secure(v(0)))))]' non-existant.
&WIPEM101 FunctionDB=Com: Wiping all non-identifiable players from channel '[capstr(lcstr(first(v(0))))]'.
&WIPEM111 FunctionDB=Com: Wiping all non-identifiable players from channel '[capstr(lcstr(first(v(0))))]'.
&WIPEM011 FunctionDB=Com: Wiping all non-identifiable players from channel '[capstr(lcstr(first(v(0))))]'.
&WIPES1 FunctionDB=[v(CH-DB)]
&WIPEDO0 FunctionDB=[setdiff(iter(get([v(CH-DB)]/[v(0)]),num(*[name(##)])),#-1)]
&WIPEDO1 FunctionDB=[setdiff(iter(before(get([v(CH-DB)]/[v(0)]),L),num(*[name(##)])),#-1)] L [setdiff(iter(after(get([v(CH-DB)]/[v(0)]),L),num(*[name(##)])),#-1)]
&WJOINF FunctionDB=[u(wizard,%1)][gt(match(get([v(CH-DB)]/[v(0)]),L),0)]
&WJOINM11 FunctionDB=WIZCom: STEALTH [switch(gt(match(get([v(CH-DB)]/[v(0)]),v(#)),0),0,joined,left)] locked channel '[capstr(lcstr(secure(first(v(0)))))]+'.
&WJOINM00 FunctionDB=[u(ERRORDEF)]
&WJOINM01 FunctionDB=[u(ERRORDEF)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #16 <F-16>},{@pemit me=[space(5)]: Function Checkpoint #16 <F-16>}
&WJOINM10 FunctionDB=WIZCom: ERROR - '[capstr(lcstr(secure(first(v(0)))))]' not a locked channel. Use '+chan' to join.
&WUNOWNERDO1 FunctionDB=[setinter(lwho(),[get([v(CH-DB)]/[v(0)])] [v(2)])]
&WUNOWNERS1111 FunctionDB=[v(CH-DB)]
&WUNOWNERS1011 FunctionDB=[v(CH-DB)]
&WUNOWNERF FunctionDB=[gt(match(get([v(CH-DB)]/[first(v(1))]),L),0)][match(/QUIET,v(0))][u(wizard,%2)][gt(words(setdiff(v(3),#-1 [v(4)])),0)]
&WLISTF FunctionDB=[u(wizard,%1)][gt(words(get([v(CH-DB)]/[v(0)])),0)]
&WLISTM00 FunctionDB=[u(ERRORDEF)]
&WLISTM01 FunctionDB=[u(ERRORDEF)]
&WLISTM10 FunctionDB=WIZCom: ERROR - Non-existant channel '[capstr(lcstr(first(secure(v(0)))))]'
&WLISTM11 FunctionDB=WIZCom: Listing specifics on channel '[capstr(lcstr(v(0)))]'%r[u(WLISTM[gt(match(get([v(CH-DB)]/[v(0)]),L),0)],%0,%1)]%rWIZCom: Listing completed.
&WLISTM1 FunctionDB=Owners: [iter(before(v(1),L),[name(##)]\(##\))]%rUsers : [iter(after(v(1),L),[name(##)]\(##\))]%rInvalid Users: [iter(setdiff(get([v(CH-DB)]/[v(0)]),[v(1)] L),[name(##)]\(##\))]%rEstablished Lock: [get([v(O-DB)]/F-%0)]
&WLISTM0 FunctionDB=Users: [iter(v(1),[name(##)]\(##\))]%rInvalid Users: [iter(setdiff(get([v(CH-DB)]/[v(0)]),[v(1)] L),[name(##)]\(##\))]
&CHANOPTS FunctionDB=+CHAN +USER +OWNER +WUSER +WOWNER +CHOWN +WLOCK +WUNLOCK +LISTCHAN +WLIST +CREATE +DESTROY +WDESTROY +MONUNCON +MONCON +MONSET +COM = +QUIET +DEFAULT +LISTPUB +LISTPRIV +SETWIZARD +WREMOVE +WIPE +WADDLOCK +CHANJOIN +WCHANJOIN +ALIAS +CONFIG +COMINDEX +COMSTATUS +ADDLOCK +WINSTSQ +WUNINSTSQ +WUSRLOCK +WCLOAK +WERRORSET +WPURGE +VALID +WVALID +WINVALID +WMAXCHAN +MVCHAN +CPCHAN +CODING +WINSTALL +WDEFHELP +WCONFIG +WOPTION +WALIASCHAN +WPATCH +WSHOWCONFIG +WSETUP +LISTREF +LISTALL +COMDESC +WGALIAS +WRENAME +WDEFCOMOPT +WSETDARK +NEWBIE +UNNEWBIE +WDEFNEWBIE
&CHANENABDIAB FunctionDB=CHAN UNCHAN@USER UNUSER@OWNER UNOWNER@WUSER WUNUSER@WOWNER WUNOWNER@CHOWN@WLOCK@WUNLOCK@LISTCHAN@WLIST@CREATE@DESTROY@WDESTROY@MONUNCON@MONCON@MONSET@COMSPEAK@COMQUICK@QUIET@DEFAULT@LISTPUB@LISTPRIV@#-1NA#-1@WREMOVE@WIPE@WADDLOCK@CHANJOIN@WCHANJOIN@ALIASA ALIASD ALIASH ALIASC ALIASH-O@CONFIG@COMINDEX@COMSTATUS@ADDLOCK@WINSTSQ@WUNINSTSQ@WUSRLOCK@WCLOAK@WERRORSET@WPURGE@VALID@WVALID@WINVALID@WMAXCHAN@MVCHAN@CPCHAN@CODING@WINSTALL@WDEFHELP@WCONFIG@WOPTION@WALIASCHAN@WPATCH@WSHOWCONFIG@WSETUP@LISTREF@LISTALL@COMDESC@WGALIAS WGALIASLIST@WRENAME@WDEFCOMOPT@WSETDARK@NEWBIE@UNNEWBIE@WDEFNEWBIE
&LISTPUB1 FunctionDB=[setq(0,iter(lattr(v(CH-DB)),switch(match(get([v(CH-DB)]/##),L),0,##)))][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(%0,div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[ljust(##,20)] - Public Access %([words(get([v(CH-DB)]/##))] Total Players%) [u(badlistusr,##)])][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r----- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] ----,%r---- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing -> Completed ----)]
&USROPTS FunctionDB=+CHAN +USER +OWNER +LISTCHAN +CREATE +DESTROY +COM = +QUIET +DEFAULT +LISTPUB +WIPE +CHANJOIN +ALIAS +CONFIG +COMINDEX +HELP +COMSTATUS +ADDLOCK +SETPAGE +VALID +MVCHAN +CPCHAN +CODING +LISTREF +LISTALL +COMDESC +NEWBIE +UNNEWBIE
&CHANOPTS FunctionDB=+CHAN +USER +OWNER +WUSER +WOWNER +CHOWN +WLOCK +WUNLOCK +LISTCHAN +WLIST +CREATE +DESTROY +WDESTROY +MONUNCON +MONCON +MONSET +COM = +QUIET +DEFAULT +LISTPUB +LISTPRIV +SETWIZARD +WREMOVE +WIPE +WADDLOCK +CHANJOIN +WCHANJOIN +ALIAS +CONFIG +COMINDEX +COMSTATUS +CONFIG +ADDLOCK +WINSTSQ +WUNINSTSQ +WUSRLOCK +WCLOAK +WERRORSET +WPURGE +VALID +WVALID +WINVALID +WMAXCHAN +MVCHAN +CPCHAN +CODING +WINSTALL +WDEFHELP +WCONFIG +WOPTION +WALIASCHAN +WPATCH +WSHOWCONFIG +WSETUP +LISTREF +LISTALL +COMDESC +WGALIAS +WRENAME +WDEFCOMOPT +WSETDARK
&WIZOPTS FunctionDB=+WUSER +WOWNER +CHOWN +WLOCK +WUNLOCK +WLIST +LISTCHAN +WDESTROY +MONUNCON +MONCON +MONSET +LISTPRIV +SETWIZARD +WREMOVE +WCHANJOIN +WADDLOCK +WIPE +WENABLE +WDISABLE +WINSTSQ +WUNINSTSQ +WCLOAK +WERRORSET +WUSRLOCK +WPURGE +WVALID +WINVALID +WMAXCHAN +WINSTALL +WDEFHELP +WSHOWCONFIG +WCONFIG +WOPTION +WALIASCHAN +WPATCH +WSETUP +WGALIAS +WRENAME +WDEFCOMOPT +WSETDARK +WDEFNEWBIE
&REF_USROPTS FunctionDB=Joins/Leaves/Creates public channels.@Adds users to locked channels.@Adds owners to locked channels.@Lists all channels you are currently on.@Creates locked channels.@Destroys/Removes locked channels.@Talks on channels.@Talks on channels w or w/o aliases.@Quiets locked channels.@Defines your default channel for '='.@Lists all public channels.@Wipes invalid users from locked channel.@Joins locked channels where you pass the lock.@Set/Remove/Modify/Display channel aliases.@Set up user-defined configurations.@List all available commands.@Displays how to use channel help.@Give current statistics/configuratons of comsystem.@Adds a function-lock to locked channel.@Set number of lines per page.@Shows valid channel names to choose from.@Moves/Renames a locked channel.@Copies a locked channel.@Quiets *ALL* channels.@Lists short definition of all commands available.@Lists all channels with descriptions you can access.@Allows viewing/editing/adding/removing descriptions.@Joins newbie channels.@Leaves newbie channels.
&REF_WIZOPTS FunctionDB=Adds users to any locked channel.@Adds owners to any locked channel.@Chowns a locked channel to destination.@Converts a public channel to a locked channel.@Converts a locked channel to a public channel.@Lists configurations/specifics of specified channel.@Lists channels of other players.@Destroys/Removes any channel.@Attach to master-room's ACONNECT for monitoring logins.@Attach to master-room's ADISCONNECT to monitor logouts.@Toggle on/off your listening into monitor system.@Lists all currently created locked channels.@Defines how a wizard is recognized by the comsystem.@Removes users from a specified channel.@Joins any locked channel.@Defines a hand-specified lock for a channel.@Wipe any channel for invalid users.@Enables previously disabled comsystem options.@Disables specified comsystem options.@Installs setq() functionality.@Removes setq() functionality.@Cloaks you from showing up on a channel.@Defines how the comsystem displays errors.@Locks out users from using the comsystem.@Removes a given user from *ALL* channels.@Defines channel-names to be used as channels.@Defines strings that are disallowed for channel-names.@Defines the total number of channels allowed.@Installs a new comsystem over the old one.@Defines the command for showing help.@Shows current wizard configurations.@Disables/Enables specified +CONFIG options.@Disables/Enables specified +COM arguments.@Defines what channels to show user-aliases.@Patches the comsystem with upgrades.@Set/Unsets wizard configurations.@Sets/Removes global alises for channels@Sets/Removes alternate typecasting of channel names.@Allows viewing/modifying +COM special characters@Defines/Redefines how wizards go dark on comsystem.@Lists/Adds/Removes/Clears NEWBIE channel listing
&EX_USROPTS FunctionDB=+chan [+|-]<channel>@+user <channel> +<player-list>@+owner <channel> +<player-list>@+listchan[/switch]@+create <channel>@+destroy <channel>@+com <channel>=[<character>]<text|WHO>@=[<alias>][<character>]<text|WHO>@+quiet <channel>@+default <channel>@+listpub [<page number>]@+wipe <channel>@+chanjoin <channel>@+alias <c|+<alias> <channel>|d <alias>>@+config <config option>=<on|off>@+comindex@+help[/switch] <topic|*wildcardsearch*>@+comstatus@+addlock[/switch] <channel>[=<lock(s)>]@+setpage <value>@+valid@+mvchan <oldchannel>=<newchannel>@+cpchan <oldchannel>=<newchannel>@+coding@+listref[/switch] [page number]@+listall [page number]@+comdesc[/switch] [<channel>=<description>]@+newbie[/switch]@+unnewbie[/switch]
&EX_WIZOPTS FunctionDB=+wuser <channel> +<player-list>@+wowner <channel> +<player-list>@+chown <channel> [+<player-list>]@+wlock <channel> [+<player-list>]@+wunlock <channel>@+wlist <channel>@+listchan[/switch] <player>@+wdestroy <channel>@+monuncon (attached to masterroom adisconnect)@+moncon (attached to masterroom aconnect)@+monset@+listpriv [page number]@+setwizard <function>@+wremove <channel> -<player-list>@+wchanjoin <channel>@+waddlock <channel>[=<function>]@+wipe <channel>@+wenable <comsystem command>@+wdisable <comsystem command>@+winstsq (disabled)@+wuninstsq (disabled)@+wcloak[/switch] <channel>@+werrorset [<function>]@+wusrlock <status|[+|-] <player>>@+wpurge <player>@+wvalid[/switch] <channel-list>@+winvalid[/switch] <channel-list>@+wmaxchan <value>@+winstall <dbrief#>@+wdefhelp [string]@+wshowconfig [player]@+wconfig [+|-]<character>@+woption [+|-]<config>@+waliaschan <+|-> <channel names>@+wpatch <dbrief#>@+wsetup <option>=<on|off>@+wgalias[/switch] <channel>=<alias>@+wrename <channel>=<newname>@+wdefcomopt[/switch] [<Reference Number>=<newcharacter>]@+wsetdark <function>@+wdefnewbie[/switch] [<list of channels>]
&ABLEF FunctionDB=[u(wizard,%1)][gt(match(v(chanopts),v(0)),0)]
&WDISABLEM00 FunctionDB=[u(ERRORDEF)]
&WDISABLEM01 FunctionDB=[u(ERRORDEF)]
&WDISABLEM10 FunctionDB=WIZCom: ERROR - Unavailable option '[secure(first(ucstr(v(0))))]'.
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #17 <F-17>},{@pemit me=[space(5)]: Function Checkpoint #17 <F-17>}
&WDISABLEM11 FunctionDB=WIZCom: Option '[ucstr(v(0))]' disabled from use.
&WENABLEM00 FunctionDB=[u(ERRORDEF)]
&WENABLEM01 FunctionDB=[u(ERRORDEF)]
&WENABLEM10 FunctionDB=WIZCom: ERROR - Unavailable option '[secure(first(ucstr(v(0))))]'
&WENABLEM11 FunctionDB=WIZCom: Option '[ucstr(v(0))]' enabled to use.
&WDISABLEDO11 FunctionDB=[extract(v(chanenabdiab),member(v(chanopts),ucstr(%0)),1,@)]
&WABLES11 FunctionDB=[v(F-DB)]
&COMSTATUSF FunctionDB=Channel Information: %[Locked: [rjust(%0,4)]%] %[Public: [rjust(sub(words(lattr(v(CH-DB))),%0),4)]%] %[Maximum Allowed: [rjust(switch(add(v(MAXCHAN),0),0,Inf,v(MAXCHAN)),5)]%]
&COMSTATUSM-0 FunctionDB=%1
&COMSTATUSM-1 FunctionDB=%0
&VERSION FunctionDB=Version 6.24
&COMTITLE FunctionDB=Com System [v(version)][space(5)](c) Ashen-Shugar, All rights reserved.
&THANKS FunctionDB=This com system was done with the hard work of one individual%rwith enormous input and criticizm by various others.%r%rSpecial thanks go to:%r[space(5)][ljust(Trey,20)][ljust(Blackthorne,20)]Seth%r[space(5)][ljust(Darksoul,20)][ljust(Zeus,20)]RatCatcher%r[space(5)][ljust(Theseus,20)][ljust(Mordred,20)]Rath%r[space(5)][ljust(Enkil,20)][ljust(daemon,20)]Zara%r[space(5)][ljust(Serpentis,20)]%r%rYou can see expanded information on each player by typing:%r[space(5)][v(DEF_HELP)] THANK_<user>%r%rThere have been obviously many others who have halped in their own way%rwith the implementation of this com system. For those that were not%rmentioned, let it be known that you are thanked as well. Unfortunately,%rI am unable to document everyone involved as it'd take up more space%rthan the help for this com system currently does, or so I would assume. :)
&COPYRIGHT2 FunctionDB=[v(lines)]%rCopyright: Ashen-Shugar (c), All rights reserved%rCom System Revised Edition [v(version)]%r%r[Space(8)]This code was done with hours of extensive work and debugging. It is%rfreely given out, but any copying of code either partial or total is not %rallowed. If any major modifications are done, it is asked to mail the author %rso future upgrades/options could be added. I like to be kept up on things. %rLikewise, anyone who uses this code is asked to mail the author so that %rupgrades and/or fixes can be sent.%r%rAny questions or additions required should be forwarded to:%r[Center(phoenix@madant.med.wayne.edu // phoenix@solbianca.anet-chi.com,78)]%r[v(lines)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #18 <F-18>},{@pemit me=[space(5)]: Function Checkpoint #18 <F-18>}
&LISTCHM2 FunctionDB=[u(LISTCHM_2_[u(listchanf,%0,%1)],%0,%1)]
&LISTCHM_2_01 FunctionDB=[u(listchm_2_00,%0,%1)]
&LISTCHM_2_00 FunctionDB=[u(LISTCHL,edit(iter(lattr(v(O-DB)),switch(and(match(##,F-*),u([v(O-DB)]/##,%1)),1,##)),F-,),%1)]%rChannel Listing -> Completed
&LISTCHM_2_10 FunctionDB=[switch(words(%0),0,u(listchm_2_00,%0,%1),WIZCom: ERROR - '[secure(%0)]' not a player.)]
&LISTCHM_2_11 FunctionDB=[u(LISTCHL,edit(iter(lattr(v(O-DB)),switch(and(match(##,F-*),u([v(O-DB)]/##,[num(*%0)])),1,##)),F-,),[num(*%0)])]%rChanenl Listing -> Completed
&LISTCHM_01 FunctionDB=[u(listchm_00,%0,%1)]
&LISTCHMQ0 FunctionDB=%b[u(LISTCHMA[gt(match(get([v(O-DB)]/W_CHANNELS),%0),0)])]%b
&LISTCHMQ1 FunctionDB=*[u(LISTCHMA[gt(match(get([v(O-DB)]/W_CHANNELS),%0),0)])]%b
&LISTCHMA0 FunctionDB=%b
&LISTCHMA1 FunctionDB=!
&LISTCHM_00 FunctionDB=Your channel quick-list is as follows:[setq(0,iter(lattr(v(CH-DB)),switch(gt(match(get([v(CH-DB)]/##),%1),0),1,capstr(lcstr(##)))))][setq(1,iter(r(0),switch(gt(match(get([v(CH-DB)]/##),L),0),1,##)))]%r[v(lines)]%r[center(Public Channels:,78)]%r[center(----------------,78)][iter([setq(2,setdiff(r(0),r(1)))][r(2)],switch(mod(sub(match(r(2),##),1),3),0,%r[space(3)][ljust([delete(u(LISTCHMQ0,##),2,1)],2)][ljust(##,23)],[ljust([delete(u(LISTCHMQ0,##),2,1)],2)][ljust(##,23)]))]%r%r[center(Private Channels:,78)]%r[center(-----------------,78)][iter(r(1),switch(mod(sub(match(r(1),##),1),3),0,%r[space(3)][ljust([delete(u(LISTCHMQ[gt(match(get([v(O-DB)]/##),%1),0)],##),2,1)],2)][ljust(##,23)],[ljust([delete(u(LISTCHMQ[gt(match(get([v(O-DB)]/##),%1),0)],##),2,1)],2)][ljust(##,23)]))]%r%rChannels with a '*' denotes quieted channels.%rChannels with a '!' denotes alias-whoable channels.%r[v(lines)]%rCom: Quick-Channel listing completed.
&LISTCHM_11 FunctionDB=[name(*%0)]'s channel quick-list is as follows:[setq(0,iter(lattr(v(CH-DB)),switch(gt(match(get([v(CH-DB)]/##),num(*%0)),0),1,capstr(lcstr(##)))))][setq(1,iter(r(0),switch(gt(match(get([v(CH-DB)]/##),L),0),1,##)))]%r[v(lines)]%r[center(Public Channels:,78)]%r[center(----------------,78)][iter([setq(2,setdiff(r(0),r(1)))][r(2)],switch(mod(sub(match(r(2),##),1),3),0,%r[space(3)][ljust([delete(u(LISTCHMQ0,##),2,1)],2)][ljust(##,23)],[ljust([delete(u(LISTCHMQ0,##),2,1)],2)][ljust(##,23)]))]%r%r[center(Private Channels:,78)]%r[center(-----------------,78)][iter(r(1),switch(mod(sub(match(r(1),##),1),3),0,%r[space(3)][ljust([delete(u(LISTCHMQ[gt(match(get([v(O-DB)]/##),num(*%0)),0)],##),2,1)],2)][ljust(##,23)],[ljust([delete(u(LISTCHMQ[gt(match(get([v(O-DB)]/##),num(*%0)),0)],##),2,1)],2)][ljust(##,23)]))]%r%rChannels with a '*' denotes quieted channels.%rChannels with a '!' denotes alias-whoable channels.%r[v(lines)]%rCom: Quick-Channel listing completed.
&LISTCHM_10 FunctionDB=[switch(words(v(0)),0,u(listchm_00,%0,%1),WIZCom: ERROR - '[secure(v(0))]' not a player.)]
&LISTCHM0 FunctionDB=[u(LISTCHM[u(listchanf,%0,%1)],%0,%1)]
&LISTCHM1 FunctionDB=[u(LISTCHM_[u(listchanf,%0,%1)],%0,%1)]
&LISTCHM00 FunctionDB=Your channel list is as follows:%rQA Channels[space(7)]Channel Status%r[v(lines)][iter(lattr([v(CH-DB)]),switch([gt(match(before(get([v(CH-DB)]/##),L),%1),0)][gt(match(after(get([v(CH-DB)]/##),L),%1),0)][gt(match(get([v(CH-DB)]/##),L),0)],101,%r[u(LISTCHMQ[gt(match(get([v(O-DB)]/##),%1),0)],##)][capstr(lcstr(##))]+[space(sub(14,strlen(##)))]:Owned and Locked%r[space(22)]Users: %b[u(listuser_[gt(match(get([v(O-DB)]/U%1),COMPRESS_LISTCHAN),0)],##)]%r[space(22)]Owners: [switch(u(wizard,%1),1,u(listowner2_[gt(match(get([v(O-DB)]/U%1),COMPRESS_LISTCHAN),0)],##),u(listowner_[gt(match(get([v(O-DB)]/U%1),COMPRESS_LISTCHAN),0)],##))]%r[u(NOTAUSER,##)],011,%r[u(LISTCHMQ[gt(match(get([v(O-DB)]/##),%1),0)],##)][capstr(lcstr(##))]+[space(sub(14,strlen(##)))]:Locked, 100,%r[u(LISTCHMQ[gt(match(get([v(O-DB)]/##),%1),0)],##)][capstr(lcstr(##))][space(sub(15,strlen(##)))]:Member))]%r[v(lines)][u(LISTCHL,edit(iter(lattr(v(O-DB)),switch(and(match(##,F-*),u([v(O-DB)]/##,%1)),1,##)),F-,),%1)]%rChannel Listing -> Completed
&LISTCHM11 FunctionDB=WIZCom: [name(*%0)]'s channel list is as follows:%rQA Channels:[space(7)]Channel Status%r[v(lines)][iter(lattr([v(CH-DB)]),switch([gt(match(before(get([v(CH-DB)]/##),L),[num(*%0)]),0)][gt(match(after(get([v(CH-DB)]/##),L),[num(*%0)]),0)][gt(match(get([v(CH-DB)]/##),L),0)],101,%r[u(LISTCHMQ[gt(match(get([v(O-DB)]/##),num(*%0)),0)],##)][capstr(lcstr(##))]+[space(sub(14,strlen(##)))] Owned and Locked%r[space(21)]Users: [u(listuser_[gt(match(get([v(O-DB)]/U%1),COMPRESS_LISTCHAN),0)],##)]%r[space(21)]Owners: [u(listowner2_[gt(match(get([v(O-DB)]/U%1),COMPRESS_LISTCHAN),0)],##)]%r[u(NOTAUSER,##)],011,%r[u(LISTCHMQ[gt(match(get([v(O-DB)]/##),num(*%0)),0)],##)][capstr(lcstr(##))]+[space(sub(14,strlen(##)))]:Locked,100,%r[u(LISTCHMQ[gt(match(get([v(O-DB)]/##),num(*%0)),0)],##)][capstr(lcstr(##))][space(sub(15,strlen(##)))]:Member))]%r[v(lines)][u(LISTCHL,edit(iter(lattr(v(O-DB)),switch(and(match(##,F-*),u([v(O-DB)]/##,*%0)),1,##)),F-,),num(*%0))]%rWIZCom: Channel Listing Completed.
&LISTCHL FunctionDB=[switch(gt(words(v(0)),0),1,%rDisplaying all locked channels currently accessable by +CHANJOIN:%r[v(lines)][iter(v(0),%r## [mid(repeat(.,80),0,sub(30,strlen(##)))] Status: [u(LISTCHLA[gt(match(get([v(CH-DB)]/##),v(1)),0)])] Privalages: [u(LISTCHL[or(match(before(get([v(CH-DB)]/##),L),v(1)),match(get([v(O-DB)]/O-##),v(1)))])])]%r[v(lines)])]
&LISTCHLA0 FunctionDB=OFFLINE ....
&LISTCHLA1 FunctionDB=ONLINE .....
&LISTCHANF FunctionDB=[u(wizard,%1)][match(PLAYER,type(*%0))]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoing #19 <F-19>},{@pemit me=[space(5)]: Function Checkpoint #19 <F-19>}
&LISTCHM01 FunctionDB=[u(listchm00,%0,%1)]
&LISTCHM10 FunctionDB=[switch(words(v(0)),0,u(listchm00,%0,%1),WIZCom: ERROR - '[secure(v(0))]' not a player.)]
&LISTCHL0 FunctionDB=User
&LISTCHL1 FunctionDB=Owner
&DOINDEX FunctionDB=[u(center,Index Listing)]%r[u(center,-------------)]%r%b[iter(v(usropts),switch(mod(member(v(usropts),##),6),0,[u(DOINDEX[gt(match(v(disablelist),##),0)],##)]%r,[ljust(u(DOINDEX[gt(match(v(disablelist),##),0)],##),12)]))]%r[switch(u(wizard,%#),1,%r[u(center,Wizard Index Listing)]%r[u(center,--------------------)]%r%b[iter(v(wizopts),switch(mod(member(v(wizopts),##),6),0,[u(DOINDEX[gt(match(v(disablelist),##),0)],##)]%r,[ljust(u(DOINDEX[gt(match(v(disablelist),##),0)],##),12)]))])]%r%rCommands surrounced by %[]'s have been disabled.%rIndividual help is available by typing: [v(DEF_HELP)] <option>%r[v(lines)]
&DOINDEX1 FunctionDB=%[%0%]
&DOINDEX0 FunctionDB=%0
&CENTER FunctionDB=[space(sub(40,div(strlen(%0),2)))][v(0)]
&JOINF FunctionDB=[gt(match(get([v(CH-DB)]/[v(0)]),L),0)][and(u([v(O-DB)]/F-[v(0)],%1),1)][gt(match(before(get([v(CH-DB)]/[v(0)]),L),v(1)),0)]
&JOINM000 FunctionDB=Com: ERROR - Unable to apply '+CHANJOIN' for public channels. Use '+CHAN +[ucstr(first(v(0)))]'.
&JOINM010 FunctionDB=Com: ERROR - LOCK existing for public channel '[capstr(lcstr(v(0)))]'. Notify an administrator.
&JOINM100 FunctionDB=Com: ERROR - you were manually added as you don't match the lock. Unable to '+CHANJOIN'.
&JOINM110 FunctionDB=[v(9)]
&JOINM001 FunctionDB=Com: ERROR - Unable to apply '+CHANJOIN' for public channels. Use '+CHAN +[ucstr(first(v(0)))]'.
&JOINM101 FunctionDB=Com: ERROR - you were manually added as you don't match the lock. Unable to '+CHANJOIN'.
&JOINM011 FunctionDB=Com: ERROR - LOCK exisiting for public channel '[capstr(lcstr(v(0)))]'. Notify an administrator.
&JOINM111 FunctionDB=[v(9)]
&JOINDO1 FunctionDB=[setinter(lwho(),[v(1)] [get([v(CH-DB)]/[first(v(0))])])]
&JOINDO0 FunctionDB=[v(9)]
&JOINSET000 FunctionDB=[before(get([v(CH-DB)]/[v(0)]),L)] L [setunion(after(get([v(CH-DB)]/[v(0)]),L),%1)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #20 <F-20>},{@pemit me=[space(5)]: Function Checkpoint #20 <F-20>}
&JOINSET100 FunctionDB=[before(get([v(CH-DB)]/[v(0)]),L)] L [setdiff(after(get([v(CH-DB)]/[v(0)]),L),%1)]
&JOINSET010 FunctionDB=[setdiff(before(get([v(CH-DB)]/[v(0)]),L),v(1))] L [after(get([v(CH-DB)]/[v(0)]),L)]
&JOINS110 FunctionDB=[v(CH-DB)]
&JOIN111 FunctionDB=[v(O-DB)]
&ADDLOCKF FunctionDB=[or(and(u(wizard,%2),match(get([v(CH-DB)]/[setdiff(ucstr(%0),/LIST /REMOVE)]),L)),and(match(get([v(CH-DB)]/[setdiff(ucstr(%0),/LIST /REMOVE)]),L),match(before(get([v(CH-DB)]/[setdiff(ucstr(%0),/LIST /REMOVE)]),L),%2)))][or(match(%1,*:*),match(%1,*~*),match(%1,*@*),match(/REMOVE,ucstr(%0)))]
&ADDLOCKM1_0 FunctionDB=[u(ADDLOCKM00,%0)]
&ADDLOCKM1_1 FunctionDB=Com: Displaying lock on '[capstr(lcstr(secure(%0)))]':%r[space(5)] : [get([v(O-DB)]/F-[secure(%0)])]%rCom: Display completed.
&ADDLOCKM0 FunctionDB=[u(ADDLOCKM%0,%1,%2)]
&ADDLOCKM1 FunctionDB=[u(ADDLOCKM1_[eq(mid(%0,0,1),1)],rest(%1))]
&ADDLOCKM2 FunctionDB=[u(ADDLOCKM2_[eq(mid(%0,0,1),1)],rest(%1))]
&ADDLOCKM2_0 FunctionDB=[u(ADDLOCKM00,%0)]
&ADDLOCKM2_1 FunctionDB=Com: Lock on '[capstr(lcstr(secure(%0)))]' removed.
&ADDLOCKM00 FunctionDB=Com: ERROR - You are not an owner of channel '[capstr(lcstr(secure(v(0))))]'.
&ADDLOCKM10 FunctionDB=Com: ERROR - Empty lock list. Restoring previous lock.
&ADDLOCKM11 FunctionDB=Com: Lock(s) established on channel '[capstr(lcstr(v(0)))]'.
&ADDLOCKM01 FunctionDB=Com: ERROR - You are not an owner of channel '[capstr(lcstr(secure(v(0))))]'.
&ADDLOCKS11 FunctionDB=[v(O-DB)]
&ADDLOCKDO FunctionDB=\[and\([iter(%1,u(parselock[gt(pos(!,##),0)],max(match(##,*:*),mul(match(##,*~*),2),mul(match(##,*@*),3)),##))]1\)\]
&ADDLOCKDO me=\[and\([iter(%1,u(parselock[gt(edit(first(pos(!,##)),#-1,0),0)],max(match(##,*:*),mul(match(##,*~*),2),mul(match(##,*@*),3)),##))]1\)\]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&ADDLOCKDO FunctionDB=v(addlockdo);@wait 5=&ADDLOCKDO me},&ADDLOCKDO me
&ADDLOCKDO0 FunctionDB=[u(ADDLOCKDO_[eq(match(%1,|*),1)],%0,edit(%1,|,))]
&ADDLOCKDO_0 FunctionDB=[u(ADDLOCKDO,%0,%1)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #21 <F-21>},{@pemit me=[space(5)]: Function Checkpoint #21 <F-21>}
&ADDLOCKDO_1 FunctionDB=[u(ADDLOCKDO_ALT,%0,%1)]
&ADDLOCKDO_ALT FunctionDB=\[or\([iter(%1,u(parselock[gt(pos(!,##),0)],max(match(##,*:*),mul(match(##,*~*),2),mul(match(##,*@*),3)),##))]0\)\]
&ADDLOCKDO_ALT me=\[or\([iter(%1,u(parselock[gt(edit(first(pos(!,##)),#-1,0),0)],max(match(##,*:*),mul(match(##,*~*),2),mul(match(##,*@*),3)),##))]0\)\]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&ADDLOCKDO_ALT FunctionDB=v(addlockdo_alt);@wait 5=&ADDLOCKDO_ALT me},&ADDLOCKDO_ALT me
&PARSELOCK FunctionDB=match\(%1,get\(%%0/%0\)\)\,
&PARSELOCK0 FunctionDB=[u(PARSELOCK_%0,%1)]
&PARSELOCK1 FunctionDB=[u(PARSELOCKN_%0,edit(%1,!,))]
&PARSELOCK_0 FunctionDB=ERROR
&PARSELOCK_1 FunctionDB=[u(PARSELOCK_1[gt(match(%0,*::*),0)],edit(%0,::,:))]
&PARSELOCK_10 FunctionDB=match\([after(%0,:)],get\(%%0/[before(%0,:)]\)\)\,
&PARSELOCK_11 FunctionDB=match\(get\(%%0/[before(%0,:)]\),[after(%0,:)]\)\,
&PARSELOCK_2 FunctionDB=hasflag\(%%0,[after(%0,~)]\)\,
&PARSELOCKN_1 FunctionDB=[u(PARSELOCKN_1[gt(match(%0,*::*),0)],edit(%0,::,:))]
&PARSELOCKN_10 FunctionDB=not\(match\([after(%0,:)],get\(%%0/[before(%0,:)]\)\)\)\,
&PARSELOCKN_11 FunctionDB=not\(match\(get\(%%0/[before(%0,:)]\),[after(%0,:)]\)\)\,
&PARSELOCKN_2 FunctionDB=not\(hasflag\(%%0,[after(%0,~)]\)\)\,
&PARSELOCK_3 FunctionDB=match\(%%0,[num(*[after(%0,@)])]\)\,
&PARSELOCKN_3 FunctionDB=not\(match\(%%0,[num(*[after(%0,@)])]\)\)\,
&SETQLIST FunctionDB=CHAN UNCHAN UNUSER OWNER UNOWNER CHOWN USER WUSER WOWNER WUNUSER WUNOWNER WLOCK WUNLOCK CREATE DESTROY WDESTROY MONUNCON MONSET COMSPEAK QUICKSPEAK QUIET WREMOVE WIPE WADDLOCK CHANJOIN WCHANJOIN WDISABLE WENABLE ALIASA ALIASD ADDLOCK WPURGE
&HUSROPTS FunctionDB=+CHAN +USER +OWNER +LISTCHAN +LISTCHAN2 +CREATE +DESTROY +COM = +QUIET +DEFAULT +LISTPUB +WIPE +CHANJOIN +ALIAS +ALIAS2 +CONFIG +CONFIG2 +CONFIG3 +CONFIG4 +CONFIG5 +COMINDEX +HELP +COMSTATUS INDEX USING USING2 LOCKING LOCKING2 LOCKING3 ALIAS COM CHANNEL COMPATABILITY CHANGES VER1 VER2 VER3 VER4 VER5 VER5-2 VER6 VER6-2 VER6-3 NEW FUTURE THANKS THANK_TREY THANK_BLACKTHORNE THANK_SETH THANK_DARKSOUL THANK_ZEUS THANK_RATCATCHER THANK_THESEUS THANK_MORDRED THANK_RATH THANK_ENKIL THANK_DAEMON THANK_ZARA THANK_SERPENTIS COMPATABILITY COPYRIGHT +ADDLOCK +ADDLOCK2 +COM2 +COM3 +SETPAGE +VALID +MVCHAN +CPCHAN +CODING +LISTREF +LISTALL +COMDESC +COMDESC2 +NEWBIE +UNNEWBIE
&HWIZOPTS FunctionDB=+WUSER +WUSER2 +WOWNER +CHOWN +WLOCK +WUNLOCK +WLIST +LISTCHAN +WDESTROY +MONUNCON +MONCON +MONSET +LISTPRIV +SETWIZARD +SETWIZARD2 +WREMOVE +WCHANJOIN +WADDLOCK +WIPE +WENABLE +WDISABLE +WINSTSQ +WUNINSTSQ WIZARD WIZARD2 WIZARD3 WIZARD4 WIZARD5 WIZARD6 +ADDLOCK +COM4 +WUSRLOCK +WCLOAK +WERRORSET +WPURGE +WVALID +WINVALID +WMAXCHAN +WINSTALL +WDEFHELP +WSHOWCONFIG +WCONFIG +WOPTION +WALIASCHAN +WPATCH +WSETUP HOWTO +WGALIAS +WRENAME +WDEFCOMOPT +WSETDARK +WDEFNEWBIE
&HELPF FunctionDB=[or(and(u(wizard,%1),match(v(hwizopts),v(0))),match(v(husropts),v(0)))]
&DOHELP0 FunctionDB=[switch(gt(match(get([v(O-DB)]/W_CONFIG_SET),DEFINE_ERRHELP),0),1,[Com: Help for topic '[secure(%0)]' not found. Type: '[v(DEF_HELP)] INDEX' for commands.])]
&DOHELP1 FunctionDB=[u([v(H-DB)]/H[v(0)],%1,[v(F-DB)])]
&DOHELP-0 FunctionDB=[u(DOHELP_[gt(pos(*,%0),0)],u(helpf,%0,%#),%0,%#)]
&DOHELP-0 me=[u(DOHELP_[gt(edit(first(pos(*,%0)),#-1,0),0)],u(helpf,%0,%#),%0,%#)]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&DOHELP-0 FunctionDB=v(dohelp-0);@wait 5=&DOHELP-0 me},&DOHELP-0 me
&DOHELP-1 FunctionDB=Com: Listing all help topics that contain search element '[secure(%0)]':%r[space(5)][setq(0,iter(switch(u(wizard,%1),1,setunion(v(HUSROPTS),v(HWIZOPTS)),v(HUSROPTS)),switch(strmatch(get([v(H-DB)]/H##),*%0*),0,,##)))][switch(words(r(0)),0,*** NO TOPICS WITH REQUIRED CONTENTS ***,[s(r(0))])]%rCom: Listing completed. Individual help can be done by typing: [v(DEF_HELP)] <topic>
&DOHELP_0 FunctionDB=[u(DOHELP%0,%1,%2)]
&DOHELP_1 FunctionDB=Com: Listing all matching help topics for '[secure(%1)]':%r[space(5)][setq(0,iter(switch(u(wizard,%2),1,setunion(v(HUSROPTS),v(HWIZOPTS)),v(HUSROPTS)),switch(match(##,%1),1,##)))][switch(words(r(0)),0,*** NO MATCHING TOPICS ***,[s(r(0))])]%rCom: Listing completed. Individual help can be done by typing: [v(DEF_HELP)] <topic>
&WIZARD FunctionDB=[hasflag(%0,wizard)]
&WIZARDFIX FunctionDB=[gte(bittype(%0),5)]
@swi/f [version()]=*Rhost*,@cpattr/clear FunctionDB/WIZARDFIX=FunctionDB/WIZARD,&WIZARDFIX FunctionDB=
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #22 <F-22>},{@pemit me=[space(5)]: Function Checkpoint #22 <F-22>}
&AFD FunctionDB=[gt(match(get([v(A-DB)]/A[v(0)]),v(1)),0)]
&AFA FunctionDB=[gt(match(get([v(A-DB)]/A[v(0)]),v(1)),0)][gt(match(get([v(A-DB)]/C[v(0)]),v(2)),0)]
&ALA11 FunctionDB=Alias: ERROR - Alias '[capstr(lcstr(secure(v(0))))]' exists.
&ALA10 FunctionDB=Alias: ERROR - Alias '[capstr(lcstr(secure(v(0))))]' exists.
&ALA00 FunctionDB=Alias: Alias '[capstr(lcstr(secure(v(0))))]' set for channel '[capstr(lcstr(secure(v(1))))]'
&ALA01 FunctionDB=Alias: Channel '[capstr(lcstr(secure(first(v(1)))))]' modified with alias '[capstr(lcstr(secure(v(0))))]'
&ASA11 FunctionDB=[get([v(A-DB)]/A[v(1)])]
&ASA10 FunctionDB=[get([v(A-DB)]/A[v(1)])]
&ASA00 FunctionDB=[cat(get([v(A-DB)]/A[v(1)]),secure(v(0)))]
&ASC11 FunctionDB=[get([v(A-DB)]/C[v(1)])]
&ASC10 FunctionDB=[get([v(A-DB)]/C[v(1)])]
&ASC01 FunctionDB=[get([v(A-DB)]/C[v(1)])]
&ASC00 FunctionDB=[cat(get([v(A-DB)]/C[v(1)]),secure(first(v(0))))]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #23 <F-23>},{@pemit me=[space(5)]: Function Checkpoint #23 <F-23>}
&ASA-S0 FunctionDB=[replace(get([v(A-DB)]/A[v(1)]),match(get([v(A-DB)]/C[v(1)]),v(2)),secure(v(0)))]
&ASA-S1 FunctionDB=[secure(v(0))]
&ASA01 FunctionDB=[extract(get([v(A-DB)]/A[v(1)]),1,sub(match(get([v(A-DB)]/C[v(1)]),v(2)),1))] [secure(v(0))] [extract(get([v(A-DB)]/A[v(1)]),add(match(get([v(A-DB)]/C[v(1)]),v(2)),1),4000)]
&ALD0 FunctionDB=Alias: ERROR - Alias '[capstr(lcstr(secure(v(0))))]' doesn't exist.
&ALD1 FunctionDB=Alias: Alias '[capstr(lcstr(secure(v(0))))]' deleted
&ADC0 FunctionDB=[get([v(A-DB)]/C[v(1)])]
&ADC1 FunctionDB=[extract(get([v(A-DB)]/C[v(1)]),1,sub(member(get([v(A-DB)]/A[v(1)]),v(0)),1))] [extract(get([v(A-DB)]/C[v(1)]),add(member(get([v(A-DB)]/A[v(1)]),v(0)),1),4000)]
&ADA0 FunctionDB=[get([v(A-DB)]/A[v(1)])]
&ADA1 FunctionDB=[extract(get([v(A-DB)]/A[v(1)]),1,sub(match(get([v(A-DB)]/A[v(1)]),v(0)),1))] [extract(get([v(A-DB)]/A[v(1)]),add(match(get([v(A-DB)]/A[v(1)]),v(0)),1),4000)]
&ALSH0 FunctionDB=%r[extract(get([v(A-DB)]/A[v(1)]),v(0),1)] [repeat(-,sub(7,strlen(extract(get([v(A-DB)]/A[v(1)]),v(0),1))))] [extract(get([v(A-DB)]/C[v(1)]),v(0),1)] [space(sub(15,strlen(extract(get([v(A-DB)]/C[v(1)]),v(0),1))))]
&ALSH1 FunctionDB=[extract(get([v(A-DB)]/A[v(1)]),v(0),1)] [repeat(-,sub(7,strlen(extract(get([v(A-DB)]/A[v(1)]),v(0),1))))] [extract(get([v(A-DB)]/C[v(1)]),v(0),1)] [space(sub(15,strlen(extract(get([v(A-DB)]/C[v(1)]),v(0),1))))]
&JOIN110 FunctionDB=[v(O-DB)]
&JOINSET001 FunctionDB=[setunion(before(get([v(CH-DB)]/[v(0)]),L),v(1))] L [after(get([v(CH-DB)]/[v(0)]),L)]
&JOINS111 FunctionDB=[v(CH-DB)]
&JOINSETO000 FunctionDB=[get([v(O-DB)]/O-[v(0)])]
&JOINSETO100 FunctionDB=[get([v(O-DB)]/O-[v(0)])]
&JOINSETO010 FunctionDB=[setunion(get([v(O-DB)]/O-[v(0)]),v(1))]
&JOINSETO001 FunctionDB=[setdiff(get([v(O-DB)]/O-[v(0)]),v(1))]
&NOTAUSER1 FunctionDB=[switch(gt(words(v(0)),0),1,[space(21)]Invalid Users: [v(0)])]
&BADLISTUSR FunctionDB=[u(BADLISTUSR1,iter(setdiff(get([v(CH-DB)]/[v(0)]),L),switch(match(player,type(##)),0,##)))]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #24 <F-24>},{@pemit me=[space(5)]: Function Checkpoint #24 <F-24>}
&BADLISTUSR1 FunctionDB=[switch(words(v(0)),0,,Invalid Users \([words(v(0))] Total\))]
&MONSET00 FunctionDB=[get([v(M-DB)]/forwardlist)]
&MONSET10 FunctionDB=[get([v(M-DB)]/forwardlist)]
&MONSET01 FunctionDB=[setunion(get([v(M-DB)]/forwardlist),v(0))]
&MONSET11 FunctionDB=[setdiff(get([v(M-DB)]/forwardlist),v(0))]
&WJOINS11 FunctionDB=[v(CH-DB)]
&WJOINDO0 FunctionDB=[setunion(before(get([v(CH-DB)]/[v(0)]),L),v(1))] L [setdiff(after(get([v(CH-DB)]/[v(0)]),L),v(1))]
&WJOINDO1 FunctionDB=[setdiff(before(get([v(CH-DB)]/[v(0)]),L),v(1))] L [setdiff(after(get([v(CH-DB)]/[v(0)]),L),v(1))]
&WUNUSERM7 FunctionDB=[v(9)]
&WUNUSERM8 FunctionDB=WIZCom: QUIETMODE - Following user(s) removed from channel '[capstr(lcstr(v(1)))]': [setdiff(rest(u(wordit,u(culfunc2,%4,%1,%2,%3))),following:)]
&WUNOWNER8 FunctionDB=WIZCom: QUIETMODE - Following user(s) removed from channel '[capstr(lcstr(v(0)))]': [setdiff(u(wordit,[u(colfunc2,%0,%1,%2,%3)]),list:)]
&WADDLOCKF FunctionDB=[u(wizard,%1)][or(eq(words(get([v(CH-DB)]/[first(v(0))])),0),match(get([v(CH-DB)]/[first(v(0))]),L))]
&WADDLOCKM00 FunctionDB=[u(ERRORDEF)]
&WADDLOCKM01 FunctionDB=[u(ERRORDEF)]
&WADDLOCKM10 FunctionDB=WIZCom: ERROR - Channel '[capstr(lcstr(first(v(0))))]' exists as a public channel. Unable to lock.
&WADDLOCKM11 FunctionDB=WIZCom: Lock [switch(%1,0,established,removed)] for locked channel '[capstr(lcstr(first(v(0))))]'.
&WADDLOCKS1 FunctionDB=[v(CH-DB)]
&WADDLOCKS11 FunctionDB=[v(O-DB)]
&WUNOWNERDO0 FunctionDB=[v(9)]
&WUNOWNERM0 FunctionDB=[u(ERRORDEF)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #25 <F-25>},{@pemit me=[space(5)]: Function Checkpoint #25 <F-25>}
&WUNOWNERM1 FunctionDB=WIZCom: ERROR - Channel '[secure(v(0))]' not a locked channel.
&WUNOWNERM2 FunctionDB=WIZCom: ERROR - Channel '[secure(v(0))]' not a locked channel.
&WUNOWNERM3 FunctionDB=WIZCom: ERROR - Validation shows empty user list.
&WUNOWNERM4 FunctionDB=WIZCom: ERROR - Channel '[secure(v(0))]' not a locked channel.
&WUNOWNERM5 FunctionDB=WIZCom: ERROR - Validation shows empty user list.
&WUNOWNERM6 FunctionDB=WIZCom: ERROR - Channel '[secure(v(0))]' not a locked channel.
&WUNOWNERM7 FunctionDB=[v(9)]
&WUNOWNERM8 FunctionDB=WIZCom: QUIETMODE - Following user(s) removed from channel '[capstr(lcstr(v(0)))]': [setdiff(u(wordit,[u(colfunc2,%0,%1,%2,%3)]),list:)]
&SETPAGE10 FunctionDB=Com: WARNING - Value over maximum. Defaulted to '48'.
&SETPAGE01 FunctionDB=Com: WARNING - Value under minimum. Defaulted to '10'.
&SETPAGE11 FunctionDB=Com: Page value established at '[secure(%0)]'.
&CODINGF FunctionDB=[gt(match(get([v(O-DB)]/set_arg_coding),%0),0)]
&CODING0 FunctionDB=Com: CODING - You have notified the ComSystem that you wish to code.%r[space(14)]All output will be ignored.
&CODING1 FunctionDB=Com: NOTCODING - You have notified the ComSystem that you no longer are coding.%r[space(17)]All output has been restored.
&CODINGSET0 FunctionDB=[setunion(get([v(O-DB)]/set_arg_coding),%0)]
&CODINGSET1 FunctionDB=[setdiff(get([v(O-DB)]/set_arg_coding),%0)]
&WDEFHELPM0 FunctionDB=[u(errordef)]
&WDEFHELPM1 FunctionDB=WIZCom: ComSystem [v(version)] help defined from '[v(def_help)]' to '[secure(%0)]'
&WDEFHELPM2 FunctionDB=WIZCom: ERROR - '%0' already defined within ComSystem.
&WDEFHELPM3 FunctionDB=WIZCom: ComSystem [v(version)] help currently defined as: '[v(def_help)]'.
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #26 <F-26>},{@pemit me=[space(5)]: Function Checkpoint #26 <F-26>}
&WDEFHELPM4 FunctionDB=WIZCom: ComSystem [v(version)] help currently defined as: '[v(def_help)]'.
&WDEFHELPF FunctionDB=[u(wizard,%1)][gt(match([get([v(F-DB)]/HUSROPTS)] [get([v(F-DB)]/HWIZOPTS)],%0),0)][or(eq(words(%0),0),match(/LIST,%0))]
&WDEFHELPS100 FunctionDB=%0
&DEF_HELP FunctionDB=+HELP
&MVORCPF FunctionDB=[or(u(wizard,%2),and(match(get([v(CH-DB)]/%0),L),match(before(get([v(CH-DB)]/%0),L),%2)))][gt(words(get([v(CH-DB)]/%0)),0)][or(words(get([v(CH-DB)]/%1)),not(u(VINVF,%1,%2)))]
&MVORCPS110 FunctionDB=%0
&MVCHANM0 FunctionDB=Com: ERROR - You have no control over target channel '[capstr(lcstr(secure(%0)))]'.
&MVCHANM1 FunctionDB=Com: ERROR - Target channel '[capstr(lcstr(secure(%0)))]' does not exist.
&MVCHANM2 FunctionDB=Com: Channel '[capstr(lcstr(secure(%0)))]' renamed (moved) to '[capstr(lcstr(secure(first(%1))))]'.
&MVCHANM3 FunctionDB=Com: ERROR - Destination channel '[capstr(lcstr(secure(%1)))]' can not be created.
&MVCHANM4 FunctionDB=Com: ERROR - Target channel '[capstr(lcstr(secure(%0)))]' does not exist.
&CPCHANM0 FunctionDB=Com: ERROR - You have no control over target channel '[capstr(lcstr(secure(%0)))]'.
&CPCHANM1 FunctionDB=Com: ERROR - Target channel '[capstr(lcstr(secure(%0)))]' does not exist.
&CPCHANM2 FunctionDB=Com: Channel '[capstr(lcstr(secure(%1)))]' cloned (copied) from '[capstr(lcstr(secure(%0)))]'.
&CPCHANM3 FunctionDB=Com: ERROR - Destination channel '[capstr(lcstr(secure(%1)))]' can not be created.
&CPCHANM4 FunctionDB=Com: ERROR - Target channel '[capstr(lcstr(secure(%0)))]' does not exist.
&VINVF FunctionDB=[or(and(or(eq(words(v(L-VALID)),0),gt(match(v(L-VALID),%0),0)),or(not(setinter(iter(v(L-INVALID),match(%0,##)),1)),and(match(get([v(O-DB)]/W_CONFIG_SET),PASSIVE_LOCK),words(get([v(CH-DB)]/%0)))),or(lt(words(lattr(v(CH-DB))),v(MAXCHAN)),and(gte(words(lattr(v(CH-DB))),v(MAXCHAN)),match(lattr(v(CH-DB)),%0)),eq(add(v(MAXCHAN),0),0))),u(wizard,%1))]
&CHAN_M01 FunctionDB=Com: ERROR - Illegial channel name '[capstr(lcstr(secure(%0)))]' specified.%r[space(5)]For a valid list, type in +VALID
&CHAN_M00 FunctionDB=Com: ERROR - Maximum number of channels %([switch(add(0,v(MAXCHAN)),0,Infinite,v(MAXCHAN))]%) reached.
&CHAN_M0 FunctionDB=[u(CHAN_M0[or(eq(add(v(MAXCHAN),0),0),lt(words(lattr(v(CH-DB))),v(MAXCHAN)))],%0,%1)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #27 <F-27>},{@pemit me=[space(5)]: Function Checkpoint #27 <F-27>}
&CHAN_M1 FunctionDB=Com: ERROR - You are already on channel '[capstr(lcstr(first(%0)))]'.
&WINSTALLF FunctionDB=[match(%1,owner(me))][and(eq(words(setinter(lattr(%0),COMSPEAK F-DB H-DB CH-DB O-DB A-DB)),6),not(match(%0,num(me))))]
&WINSTALLM00 FunctionDB=[u(ERRORDEF)]
&WINSTALLM01 FunctionDB=[u(ERRORDEF)]
&WINSTALLM10 FunctionDB=WIZCom: ERROR - Unrecognized ComSystem '[secure(%0)]' specified.
&WINSTALLM11 FunctionDB=WIZCom: Upgrading ComSystem [get([get(%0/F-DB)]/version)] to [v(version)]...
&WINSTALLDO11 FunctionDB=%0
&WINVALIDF FunctionDB=[u(wizard,%2)][match(/ADD /DEL /LIST,%0)][gt(words(setdiff(%1,v(L-INVALID))),0)]
&WINVALIDM0 FunctionDB=[u(ERRORDEF)]
&WINVALIDM5 FunctionDB=WIZCom: ERROR - Invalid switch '[secure(%0)]'.
&WINVALIDM1 FunctionDB=WIZCom: ERROR - Invalid switch '[secure(%0)]'.
&WINVALIDM2 FunctionDB=WIZCom: ERROR - Duplicate list. Nothing new added.
&WINVALIDM3 FunctionDB=WIZCom: [u(WINVALIDM7[gt(words(setinter(%1,v(L-INVALID))),0)],%0,%1,%2)]
&WINVALIDM7 FunctionDB=WIZCom: [u(WINVALIDM7[gt(words(setinter(%1,v(L-INVALID))),0)],%0,%1,%2)]
&WINVALIDM4 FunctionDB=WIZCom: Following channel list is currently outlawed:%r[v(lines)][switch(words(v(L-INVALID)),0,%r*NO INVALID CHANNELS SPECIFIED - FREE SYSTEM*)][iter(v(L-INVALID),switch(sub(mod(match(v(L-INVALID),##),3),1),0,%r[space(5)][ljust(##,25)],[ljust(##,25)]))]%r%rNote: All wildcarded strings are matched against channels!%r[v(lines)]%rWIZCom: Listing is complete.
&WINVALIDM8 FunctionDB=WIZCom: Following channel list is currently outlawed:%r[v(lines)][switch(words(v(L-INVALID)),0,%r*NO INVALID CHANNELS SPECIFIED - FREE SYSTEM*)][iter(v(L-INVALID),switch(sub(mod(match(v(L-INVALID),##),3),1),0,%r[space(5)][ljust(##,25)],[ljust(##,25)]))]%r%rNote: All wildcarded strings are matched against channels!%r[v(lines)]%rWIZCom: Listing is complete.
&WINVALIDM70 FunctionDB=ERROR - Validation shows no matching strings to remove.
&WINVALIDM71 FunctionDB=Folowing strings have been removed from the 'forbidden channel list': [setinter(%1,v(L-INVALID))]
&WINVALIDM6 FunctionDB=WIZCom: Following strings have been added to the 'forbidden channel list': [setdiff(%1,v(L-INVALID))]
&WINVALIDS120 FunctionDB=%0
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #28 <F-28>},{@pemit me=[space(5)]: Function Checkpoint #28 <F-28>}
&WINVALIDS121 FunctionDB=%0
&WINVALIDS111 FunctionDB=%0
&WINVALIDSET1 FunctionDB=[setunion(v(L-INVALID),%1)]
&WINVALIDSET2 FunctionDB=[setdiff(v(L-INVALID),%1)]
&WMAXCHANF FunctionDB=[u(wizard,%1)][and(gte(%0,0),lte(%0,1000))]
&WMAXCHANF me=[u(wizard,%1)][and(gte(edit(first(add(%0,0)),#-1,0),0),lte(edit(first(add(%0,0)),#-1,0),1000))]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&WMAXCHANF FunctionDB=v(WMAXCHANF);@wait 5=&WMAXCHANF me},&WMAXCHANF me
&WMAXCHANM00 FunctionDB=[u(ERRORDEF)]
&WMAXCHANM01 FunctionDB=[u(ERRORDEF)]
&WMAXCHANM10 FunctionDB=WIZCom: WARNING - Number specified '[secure(%0)]' is not between 0 and 1000.%r[space(8)]---> Default set at [max(min(%0,1000),0)].
&WMAXCHANM11 FunctionDB=WIZCom: Total channels allowed set to '[switch(eq(%0,0),1,Infinity,add(%0,0))]'.
&WMAXCHANS10 FunctionDB=%0
&WMAXCHANS11 FunctionDB=%0
&WVALIDF FunctionDB=[u(wizard,%2)][match(/ADD /DEL /LIST,%0)][gt(words(setdiff(%1,v(L-VALID))),0)]
&WVALIDM0 FunctionDB=[u(ERRORDEF)]
&WVALIDM1 FunctionDB=WIZCom: ERROR - Invalid switch '[secure(%0)]'.
&WVALIDM2 FunctionDB=WIZCom: ERROR - Duplicate channels. No new channels added.
&WVALIDM4 FunctionDB=WIZCom: Following channels currently are allowed as channels:%r[v(lines)][switch(words(v(L-VALID)),0,%r*NO LIMITATION*)][iter(v(L-VALID),switch(sub(mod(match(v(L-VALID),##),3),1),0,%r[space(5)][ljust(##,25)],[ljust(##,25)]))]%r[v(lines)]%rWIZCom: Listing is complete.
&WVALIDM3 FunctionDB=WIZCom: [u(WVALIDM7[gt(words(setinter(%1,v(L-VALID))),0)],%0,%1,%2)]
&WVALIDM6 FunctionDB=WIZCom: Following channels have been added to the 'allowed channel list': [setdiff(%1,v(L-VALID))]
&WVALIDM8 FunctionDB=WIZCom: Following channels currently are allowed as channels:%r[v(lines)][switch(words(v(L-VALID)),0,%r*NO LIMITATION*)][iter(v(L-VALID),switch(sub(mod(match(v(L-VALID),##),3),1),0,%r[space(5)][ljust(##,25)],[ljust(##,25)]))]%r[v(lines)]%rWIZCom: Listing is complete.
&WVALIDM5 FunctionDB=WIZCom: ERROR - Invalid switch '[secure(%0)]'.
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #29 <F-29>},{@pemit me=[space(5)]: Function Checkpoint #29 <F-29>}
&WVALIDM7 FunctionDB=WIZCom: [u(WVALIDM7[gt(words(setinter(%1,v(L-VALID))),0)],%0,%1,%2)]
&WVALIDM70 FunctionDB=ERROR - Validation shows no matching channels to remove.
&WVALIDM71 FunctionDB=Following channels have been removed from the 'allowed channel list': [setinter(%1,v(L-VALID))]
&WVALIDS120 FunctionDB=%0
&WVALIDS111 FunctionDB=%0
&WVALIDS121 FunctionDB=%0
&WVALIDSET1 FunctionDB=[setunion(v(L-VALID),%1)]
&WVALIDSET2 FunctionDB=[setdiff(v(L-VALID),%1)]
&COMREF0 FunctionDB=[setq(0,v(USROPTS))][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(%0,div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[ljust(##,15)] - [index(v(REF_USROPTS),@,match(r(0),##),1)])][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r----- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] -----,%r----- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing -> Completed -----)]
&COMREF1 FunctionDB=[setq(0,[v(USROPTS)] ---Wizard~Options--- [v(WIZOPTS)])][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(%0,div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[switch(match(##,---*---),1,[center(##,80,-)],[ljust(##,15)] - [index([v(REF_USROPTS)]@NULL@[v(REF_WIZOPTS)],@,match(r(0),##),1)])])][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r----- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] -----,%r----- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing -> Completed -----)]
&LISTREF_0 FunctionDB=[u(COMREF%0,%1,%3)]
&LISTREF_1 FunctionDB=[u(COMREFEX%0,%2,%3)]
&COMREFEX0 FunctionDB=[setq(0,v(USROPTS))][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(%0,div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[ljust(##,15)] - [index(v(EX_USROPTS),@,match(r(0),##),1)])][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r----- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] -----,%r----- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing -> Completed -----)]
&COMREFEX1 FunctionDB=[setq(0,[v(USROPTS)] ---Wizard~Options--- [v(WIZOPTS)])][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(%0,div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[switch(match(##,---*---),1,[center(##,80,-)],[ljust(##,15)] - [index([v(EX_USROPTS)]@NULL@[v(EX_WIZOPTS)],@,match(r(0),##),1)])])][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r----- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] -----,%r----- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing -> Completed -----)]
&THANKS FunctionDB=This com system was done with the hard work of one individual%rwith enormous input and criticizm by various others.%r%rSpecial thanks go to:%r[space(5)][ljust(Trey,20)][ljust(Blackthorne,20)]Seth%r[space(5)][ljust(Darksoul,20)][ljust(Zeus,20)]RatCatcher%r[space(5)][ljust(Theseus,20)][ljust(Mordred,20)]Rath%r[space(5)][ljust(Enkil,20)][ljust(daemon,20)]Zara%r%rYou can see expanded information on each player by typing:%r[space(5)][v(DEF_HELP)] THANK_<user>%r%rThere have been obviously many others who have halped in their own way%rwith the implementation of this com system. For those that were not%rmentioned, let it be known that you are thanked as well. Unfortunately,%rI am unable to document everyone involved as it'd take up more space%rthan the help for this com system currently does, or so I would assume. :)
&LISTALL0 FunctionDB=[setq(0,iter(lattr([v(O-DB)]/ALIAS_*),switch(words(get([v(CH-DB)]/[get([v(O-DB)]/##)])),0,,##)))][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(%0,div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[ljust(capstr(lcstr(get([v(O-DB)]/##))),23,.)] [after(##,ALIAS_)])][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r----- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] -----,%r----- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing Completed -----)]
&LISTALL1 FunctionDB=[setq(8,iter([setq(9,lattr(v(CH-DB)))][r(9)],u(LISTALL_[gt(match(get([v(CH-DB)]/##),L),0)],##)))][setq(7,setdiff(r(9),r(8)))][setq(6,iter(r(8),u(LISTALL_[u(wizard,%1)],##)))][setq(5,iter(setdiff(r(8),r(6)),u(LISTALL_[gt(match(before(get([v(CH-DB)]/##),L),%1),0)],##)))][setq(4,iter(setdiff(r(8),[r(6)] [r(5)]),u(LISTALL_[u([v(O-DB)]/F-##,%1)],##)))][setq(0,setdiff([r(4)] [r(5)] [r(6)] [r(7)],#-1))][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(%0,div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[ljust(u(LISTALLPARSE[not(match(get([v(CH-DB)]/##),L))],%9,%1,u(LISTALLPARSE[and(u([v(O-DB)]/F-##,%1),1)],%[j%],%9,%[L%])),4)][ljust(##,23,.)][u(LISTALLPARSE[not(words(get([v(D-DB)]/##)))],%[Generic channel [capstr(lcstr(##))]%],%9,u(LISTALLPARSE[gt(strlen(get([v(D-DB)]/##)),50)],[mid(get([v(D-DB)]/##),0,47)]>>>,%9,get([v(D-DB)]/##)))])][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r----- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] -----,%r----- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing Completed -----)]
&LISTALL_1 FunctionDB=%0
&LISTALLPARSE1 FunctionDB=%0
&LISTALLPARSE0 FunctionDB=%2
&COMDESCF2 FunctionDB=[or(u(wizard,%3),and(match(get([v(CH-DB)]/%2),L),match(before(get([v(CH-DB)]/%2),L),%3)))]
&COMDESCF FunctionDB=[or(u(wizard,%3),and(match(get([v(CH-DB)]/%1),L),match(before(get([v(CH-DB)]/%1),L),%3)))][match(/ADD /DEL /EDIT /COPY /LIST /VIEW,%0)]
&COMDESCS11 FunctionDB=%0
&COMDESCS12 FunctionDB=%0
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #30 <F-30>},{@pemit me=[space(5)]: Function Checkpoint #30 <F-30>}
&COMDESCS13 FunctionDB=%0
&COMDESCS14 FunctionDB=[switch(u(comdescf2,%1,%2,%3,%5),1,%0)]
&COMDESCSET11 FunctionDB=%2
&COMDESCSET13 FunctionDB=[edit(get([v(D-DB)]/%1),before(%2,|),after(%2,|))]
&COMDESCSET14 FunctionDB=[get([v(D-DB)]/%2)]
&COMDESCM0 FunctionDB=[u(COMDESCM0_[gt(match(/add /del /edit /copy,%0),0)],%0,%1,%2,%4)]
&COMDESCM0_0 FunctionDB=Com: ERROR - You do not control channel '[capstr(lcstr(%1))]'.
&COMDESCM0_1 FunctionDB=Com: ERROR - Invalid switch '[secure(%0)]' specified for channel '[capstr(lcstr(%1))]'.
&COMDESCM1 FunctionDB=[switch(mid(%0,0,1),/,Com: ERROR - Invalid switch '[secure(%0)]' specified.,u(COMDESCM6,max(sub(%0,1),0),%3))]
&COMDESCM2 FunctionDB=[switch(gt(strlen(%2),50),1,[space(5)]*WARNING* : Description [sub(strlen(%2),50)] characters over viewable 50 character limit.%r)]Com: Description added for channel '[capstr(lcstr(%1))]' %([strlen(%2)]/50 chars%).
&COMDESCM3 FunctionDB=Com: Description removed for channel '[capstr(lcstr(%1))]'.
&COMDESCM4 FunctionDB=[u(COMDESCM4_[or(strmatch(get([v(D-DB)]/%1),*[before(%2,|)]*),member($ ^,before(%2,|)))],%0,%1,%2,%3)]
&COMDESCM4_0 FunctionDB=Com: ERROR - String '[before(%2,|)]' not found.
&COMDESCM4_1 FunctionDB=[switch(gt(strlen([setq(9,edit(get([v(D-DB)]/%1),before(%2,|),after(%2,|)))][r(9)]),50),1,[space(5)]*WARNING* : Description [sub(strlen(r(9)),50)] characters over 50 chartacter limit.%r)]Com: Edited '[capstr(lcstr(%1))]' - changed '[before(%2,|)]' to '[after(%2,|)]'.
&COMDESCM5 FunctionDB=[u(COMDESCM5_[u(comdescf2,%0,%1,%2,%3)],%0,%1,%2,%3)]
&COMDESCM5_0 FunctionDB=Com: ERROR - You do not control channel '[capstr(lcstr(%2))]'.
&COMDESCM5_1 FunctionDB=Com: Copied description from '[capstr(lcstr(%1))]' to '[capstr(lcstr(%2))]'.
&COMDESCM7 FunctionDB=Com: Viewing full description of '[capstr(lcstr(%1))]':%r[center(*** NOTE : Descriptions on +listall cut off at 50 characters ***,78,*)]%rDescription:%r[get([v(D-DB)]/%1)]%r[switch(gt(strlen(get([v(D-DB)]/%1)),50),1,[center(* WARNING : Description [sub(strlen(get([v(D-DB)]/%1)),50)] characters over limit! *,78,*)])]%r[repeat(*,78)]
&COMDESCM6 FunctionDB=Com: Listing all channels with descriptions:%r[v(lines)]%r[ljust(Flg,5)][Ljust(Channel Name,30)]Channel Description%r[v(lines)][setq(0,lattr(v(D-DB)))][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(%0,div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[u(COMDESCM6_[eq(words(get([v(CH-DB)]/##)),0)],*D*,%b,4)][ljust(mid(capstr(lcstr(##)),0,20),23,.)][u(COMDESCM6_[gt(strlen(get([v(D-DB)]/##)),50)],[mid(get([v(D-DB)]/##),0,47)]>>>,get([v(D-DB)]/##))])]%r[v(lines)][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r---- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] ----,%r---- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing -> Completed)]
&COMDESCM6 me=Com: Listing all channels with descriptions:%r[v(lines)]%r[ljust(Flg,5)][Ljust(Channel Name,30)]Channel Description%r[v(lines)][setq(0,lattr(v(D-DB)))][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(edit(first(add(%0,0)),#-1,0),div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[u(COMDESCM6_[eq(words(get([v(CH-DB)]/##)),0)],*D*,%b,4)][ljust(mid(capstr(lcstr(##)),0,20),23,.)][u(COMDESCM6_[gt(strlen(get([v(D-DB)]/##)),50)],[mid(get([v(D-DB)]/##),0,47)]>>>,get([v(D-DB)]/##))])]%r[v(lines)][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r---- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] ----,%r---- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing -> Completed)]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&COMDESCM6 FunctionDB=v(comdescm6);@wait 5=&COMDESCM6 me},&COMDESCM6 me
&COMDESCM6_1 FunctionDB=[ljust(%0,%2)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #31 <F-31>},{@pemit me=[space(5)]: Function Checkpoint #31 <F-31>}
&COMDESCM6_0 FunctionDB=[ljust(%1,%2)]
&COM-SPKNAME0 FunctionDB=[name(%0)]
&COM-SPKNAME1 FunctionDB=[switch([and(u(wizard,%2),match(get([v(O-DB)]/U%2),NOSPOOF))],1,<[name(%0)]>%b)][get(%0/CALIAS-[s(before(%1,=))])]
&CHKVALIDCHAN0 FunctionDB=%1
&CHKVALIDCHAN1 FunctionDB=[switch(words(before(%0,=)),0,%1,%0)]
&WRENAMEF FunctionDB=[u(wizard,%3)][match(/DEL /LIST,%0)]
&WRENAMEM0 FunctionDB=[u(ERRORDEF)]
&WRENAMEM1 FunctionDB=WIZCom: Name specified for channel '[capstr(lcstr(s(%1)))]' -> '[secure(%2)]'.
&WRENAMEM2 FunctionDB=WIZCom: Name for channel '[capstr(lcstr(%1))]' deleted.
&WRENAMEM3 FunctionDB=WIZCom: Listing all channels with alternate names:%r[v(lines)]%r[ljust(Flg,5)][ljust(Channel Name,30)]Alternate Name%r[v(lines)][setq(0,lattr([v(O-DB)]/NAME_*))][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(%0,div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[u(COMDESCM6_[eq(words(get([v(CH-DB)]/[after(##,NAME_)])),0)],*D*,%b,5)][ljust(after(##,NAME_),29,.)] [get([v(O-DB)]/##)])]%r[v(lines)][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r---- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] ----,%r---- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing -> Completed)] 
&WRENAMES10 FunctionDB=%0
&WRENAMES11 FunctionDB=%0
&WRENAME2 FunctionDB=WIZCom: Name for channel '[capstr(lcstr(s(%1)))]' deleted.
&WRENAMESET0 FunctionDB=[capstr(lcstr(s(%1)))]
&WRENAMESET1 FunctionDB=%0
&WGALIASF FunctionDB=[u(wizard,%2)][eq(words(get([v(O-DB)]/alias_%1)),0)][gt(words(get([v(CH-DB)]/%0)),0)]
&WGALIASM0 FunctionDB=[u(WGALIASM_[match(100 101 110 111,u(wgaliasf,%1,%2,%3))],%1,%2,%3)]
&WGALIASM1 FunctionDB=WIZCom: Alias for channel '[capstr(lcstr(get([v(O-DB)]/alias_%2)))]' has been removed.
&WGALIASM_0 FunctionDB=[u(ERRORDEF)]
&WGALIASM_1 FunctionDB=WIZCom: ERROR - Alias '[secure(%1)]' exists and channel '[capstr(lcstr(%0))]' does not exist.
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #32 <F-32>},{@pemit me=[space(5)]: Function Checkpoint #32 <F-32>}
&WGALIASM_2 FunctionDB=WIZCom: ERROR - Alias '[secure(%1)]' already exists.
&WGALIASM_3 FunctionDB=WIZCom: ERROR - Channel '[capstr(lcstr(%0))]' does not exist.
&WGALIASM_4 FunctionDB=WIZCom: Alias '[secure(%1)]' set for channel '[capstr(lcstr(%0))]'.
&WGALIASS111 FunctionDB=%0
&WGALIASLISTM0 FunctionDB=[u(ERRORDEF)]
&WGALIASLISTM1 FunctionDB=WIZCom: Listing all channels with global aliases:%r[v(lines)]%r[ljust(Flg,5)][ljust(Channel Name,30)]Alias%r[v(lines)][setq(0,lattr([v(O-DB)]/ALIAS_*))][setq(1,max(get([v(O-DB)]/u_%1page),10))][setq(2,min(%0,div(sub(words(r(0)),1),r(1))))][iter(extract(r(0),add(mul(r(2),r(1)),1),r(1)),%r[u(COMDESCM6_[eq(words(get([v(CH-DB)]/[get([v(O-DB)]/##)])),0)],*D*,%b,5)][ljust(capstr(lcstr(get([v(O-DB)]/##))),29,.)] [after(##,_)])]%r[v(lines)][switch(gt(words(r(0)),mul(add(r(2),1),r(1))),1,%r---- MORE %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] ----,%r---- %[Page [add(r(2),1)] of [add(div(sub(words(r(0)),1),r(1)),1)]%] Listing -> Completed)] 
&WGALIASSET111 FunctionDB=[secure(%0)]
&WGALIASSET0 FunctionDB=[u(WGALIASSET%0,%1,%2,%3)]
&WGALIASS1 FunctionDB=%0
&WGALIASS0 FunctionDB=[u(WGALIASS%1,%0)]
&WDEFCOMOPTF FunctionDB=[u(wizard,%2)][or(match(/list,%0),eq(words(%0),0))][and(words(%1),not(member(v(com-l),%1)),gte(%0,1),lte(%0,words(v(com-l))),eq(strlen(%1),1))]
&WDEFCOMOPTM0 FunctionDB=[u(ERRORDEF)]
&WDEFCOMOPTM1 FunctionDB=WIZCom: ERROR - [u(WDEFCOMOPTM1[gt(member(v(com-l),%1),0)],%0,%1,%2)]
&WDEFCOMOPTM2 FunctionDB=WIZCom: Defined [s(s(extract(v(com-l-words),%0,1)))] %(Ref#: %0%) to be character %1
&WDEFCOMOPTM3 FunctionDB=WIZCom: Listing current com configurations ---%r[v(lines)]%rRef# %b [ljust(Char,9)][ljust(Definition,12)]%r[v(lines)][iter(v(com-l),%r#%[[ljust([setq(7,member(v(com-l),##))][r(7)],2)]%] [center(##,5)] -- %b[ljust(s(extract(v(com-l-words),r(7),1)),12)][u(WDEFCOMOPTM3_[gt(member(get([v(O-DB)]/W_COM-L),##),0)])])]%r[v(lines)]
&WDEFCOMOPTS101 FunctionDB=%0
&WDEFCOMOPTM10 FunctionDB=Invalid argument of '[secure(%0)]' or '%1'
&WDEFCOMOPTM11 FunctionDB=Character %1 already exists as a +COM option
&WDEFCOMOPTM3_1 FunctionDB=%( DISABLED %)
&GENERAL1 FunctionDB=%0
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #33 <F-33>},{@pemit me=[space(5)]: Function Checkpoint #33 <F-33>}
&CHANCHKM0 FunctionDB=[setq(1,[switch(u(wizard,%2),0,[capstr(lcstr(first(v(1))))] %N has joined this channel.)])][switch([setq(0,u(cpfunc,%2,%1))][r(0)],00,[switch(u(wizard,%2),1,Com: Channel '[capstr(lcstr(first(v(1))))]' -> Added)],01,[u(CHAN_M[gt(match(get([V(CH-DB)]/[extract(%1,1,1)]),%2),0)],%1,%2)],1*,Com: ERROR - Channel '[capstr(lcstr(first(v(1))))]' is a locked channel)]
&CHANCHKM1 FunctionDB=[u(CHANCHKM1[gt(match(get([v(CH-DB)]/[s(first(%1))]),%2),0)],%1,%1,%2)]
&CHANCHKM11 FunctionDB=Com: ERROR - You are already on channel '[capstr(lcstr(s(%1)))]'.
&CHANCHKM10 FunctionDB=[setq(1,[capstr(lcstr(first(v(0))))] %n has been [switch([setq(0,[gt(match(after(get([v(CH-DB)]/[v(0)]),L),v(2)),0)][gt(match(before(get([v(CH-DB)]/[v(0)]),L),v(2)),0)][gt(match(get([v(O-DB)]/O-[v(0)]),v(2)),0)])][r(0)],000,added to,001,added as an owner to,1??,removed from,01?,removed as an owner from)] this channel.)][u(JOINM[setq(2,u(joinf,%0,%2))][r(2)],%0)]
&CHANCHKDO0 FunctionDB=[switch([r(0)][u(wizard,%2)],000,[setinter(lwho(),[get([v(CH-DB)]/[first(v(1))])] [v(2)])])]
&CHANCHKDO1 FunctionDB=[u(CHANCHKDO1%3,%1,%1,%2)]
&CHANCHKDO11 FunctionDB=[u(JOINDO[gt(match(110 111,r(2)),0)],%0,%2)]
&CHANCHKSB0 FunctionDB=[u(PLUSCH[r(0)])]
&CHANCHKSB1 FunctionDB=[u(CHANCHKSB1%3,%1,%1,%2)]
&CHANCHKSB11 FunctionDB=[u(JOINS[r(2)])]
&CHANCHKSA0 FunctionDB=[setunion(get([v(CH-DB)]/[first(v(1))]),v(2))]
&CHANCHKSA1 FunctionDB=[u(JOINSET[r(0)],%1,%2)]
&UNCHANCHKM0 FunctionDB=[switch([setq(0,u(cpfunc_old,%2,%1))][r(0)],01,[switch(u(wizard,%2),1,Com: Channel '[capstr(lcstr(first(v(1))))]' -> Deleted)],00,Com: ERROR - You are not on Channel '[capstr(lcstr(first(v(1))))]',1*,Com: ERROR - Channel '[capstr(lcstr(first(v(1))))]' is a locked channel)][setq(1,[switch(u(wizard,%2),0,[capstr(lcstr(first(v(1))))] %N has left this channel.)])]
&UNCHANCHKM1 FunctionDB=[u(UNCHANCHKM1[eq(match(get([v(CH-DB)]/[s(first(%1))]),%2),0)],%1,%1,%2)]
&UNCHANCHKM11 FunctionDB=Com: ERROR - You are not on channel '[capstr(lcstr(s(%1)))]'.
&UNCHANCHKM10 FunctionDB=[setq(1,[capstr(lcstr(first(v(0))))] %n has been [switch([setq(0,[gt(match(after(get([v(CH-DB)]/[v(0)]),L),v(2)),0)][gt(match(before(get([v(CH-DB)]/[v(0)]),L),v(2)),0)][gt(match(get([v(O-DB)]/O-[v(0)]),v(2)),0)])][r(0)],000,added to,001,added as an owner to,1??,removed from,01?,removed as an owner from)] this channel.)][u(JOINM[setq(2,u(joinf,%0,%2))][r(2)],%0)]
&UNCHANCHKDO0 FunctionDB=[switch([r(0)][u(wizard,%2)],010,[setinter(lwho(),get([v(CH-DB)]/[first(v(1))]))])]
&UNCHANCHKDO1 FunctionDB=[u(UNCHANCHKDO1%3,%1,%1,%2)]
&UNCHANCHKDO11 FunctionDB=[u(JOINDO[gt(match(110 111,r(2)),0)],%0,%2)]
&UNCHANCHKSB0 FunctionDB=[u(MINUSCH[r(0)])]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Function Checkpoint #34 <F-34>},{@pemit me=[space(5)]: Function Checkpoint #34 <F-34>}
&UNCHANCHKSB1 FunctionDB=[u(UNCHANCHKSB1%3,%1,%1,%2)]
&UNCHANCHKSB11 FunctionDB=[u(JOINS[r(2)])]
&UNCHANCHKSA0 FunctionDB=[setdiff(get([v(CH-DB)]/[first(v(1))]),v(2))]
&UNCHANCHKSA1 FunctionDB=[u(JOINSET[r(0)],%1,%2)]
&W_NEWBIE_CHANNEL OptionDB=public
&NEWBIEF FunctionDB=[or(not(match(get([v(CH-DB)]/%0),*L*)),u([v(O-DB)]/F-%0,%1))]
&NEWBIES0 FunctionDB=[setunion(get([v(CH-DB)]/%0),%1)]
&NEWBIES1 FunctionDB=[u(NEWBIES1[gt(match(get([v(O-DB)]/O-%0),%1),0)],%0,%1)]
&NEWBIES10 FunctionDB=[setdiff(before(get([v(CH-DB)]/%0),L),%1)] L [setunion(after(get([v(CH-DB)]/%0),L),%1)]
&NEWBIES11 FunctionDB=[setunion(before(get([v(CH-DB)]/%0),L),%1)] L [setdiff(after(get([v(CH-DB)]/%0),L),%1)]
&UNNEWBIES0 FunctionDB=[setdiff(get([v(CH-DB)]/%0),%1)]
&UNNEWBIES1 FunctionDB=[setdiff(before(get([v(CH-DB)]/%0),L),%1)] L [setdiff(after(get([v(CH-DB)]/%0),L),%1)]
&WDEFNEWBIEF FunctionDB=[u(wizard,%2)][match(/del /clear /add /list,%0)]
&WDEFNEWBIEM0 FunctionDB=[u(ERRORDEF)]
&WDEFNEWBIEM1 FunctionDB=[u(WDEFNEWBIEM5,%0,%1,%2)]
&WDEFNEWBIEM2 FunctionDB=WIZCom: [setq(1,setinter(get([v(O-DB)]/W_NEWBIE_CHANNEL),ucstr(%1)))][switch(words(r(1)),0,ERROR - Validation shows empty list to remove.,Following channels removed from newbielist: [r(1)])]
&WDEFNEWBIEM3 FunctionDB=WIZCom: Newbie channel list has been purged.  No channels exist for newbies.
&WDEFNEWBIEM4 FunctionDB=WIZCom: [setq(1,setdiff(ucstr(%1),get([v(O-DB)]/W_NEWBIE_CHANNEL)))][switch(words(r(1)),0,ERROR - Validation shows empty list to add.,Following channels added to newbielist: [r(1)])]
&WDEFNEWBIEM5 FunctionDB=WIZCom: Following channels exist for newbies:%r[v(lines)][iter([setq(1,get([v(O-DB)]/W_NEWBIE_CHANNEL))][r(1)],[u(GENERAL[eq(mod(sub(match(r(1),##),1),3),0)],%r)][ljust(##,25)])]%r[v(lines)]%rListing completed.
&WDEFNEWBIES1 FunctionDB=[setdiff(get([v(O-DB)]/W_NEWBIE_CHANNEL),ucstr(%0))]
&WDEFNEWBIES2 FunctionDB=[setunion(get([v(O-DB)]/W_NEWBIE_CHANNEL),ucstr(%0))]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=Com: Functionality completed... Help Initialization... please wait...},{@pemit me=Com: Functionality completed... Help Initialization... please wait...}
&HINDEX HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Command Index)]%r[u(%1/center,-------------)]%r[u(%1/doindex)]
&LINES HelpDB=------------------------------------------------------------------------------
&HUSING HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Using the ComSystem page 1 of 2)]%r[u(%1/center,-----------------------------------------)]%r+COM[space(11)]- Used to 'talk' on channels.%r[space(15)]Syntax: +COM <channel>=<message>%r=[space(14)]- Shorthand for '+COM'%r[space(15)]Syntax: =\[alias\] <message>%r+QUIET[space(9)]-Toggle output on specified channel%r[space(15)]Syntax: +QUIET <Channel>%r+DEFAULT[space(7)]- Set default channel for '=' command.%r[space(15)]Syntax: +DEFAULT <channel>%r+LISTPUB[space(7)]- List all public channels.%r[space(15)]Syntax: +LISTPUB%r%rType '[get(%1/DEF_HELP)] USING2' for more help.%rFor more information, extended help and examples are available: [get(%1/DEF_HELP)] <Option>%r%rSee Also: LOCKING ALIAS COM CHANNEL +CONFIG +COMSTATUS +COM +CHAN =%r[v(lines)]
&HUSING2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Using the ComSystem page 2 of 2)]%r[u(%1/center,-----------------------------------------)]%r+CHAN[space(10)]- Used to join/unjoin public channels.%r[space(15)]Syntax: +CHAN <+/-><channel>%r+LISTCHAN[space(6)]-Lists all channels you belong to.%r[space(15)]Syntax: +LISTCHAN%r+COMINDEX[space(6)]- List all available commands.%r[space(15)]Syntax: +COMINDEX%r+CREATE[space(8)]- Creates a locked (private) channel.%r[space(15)]Syntax: +CREATE <Channel>%r+CHANJOIN[space(6)]- Join/Unjoin locked (private) channel%r[space(15)]Syntax: +CHANJOIN <Channel>%r+ALIAS[space(9)]- Show/add/delete aliases for channels.%r[space(15)]Syntax: +ALIAS (shows all aliases)%r[space(23)]+ALIAS +<alias> <channel> (add/modify alias)%r[space(23)]+ALIAS -<alias> (delete/remove alias)%r[space(23)]+ALIAS CLEAR (remove all aliases)%r%rFor more information, extended help and examples are available: [get(%1/DEF_HELP)] <Option>%r%rSee Also: LOCKING ALIAS COM CHANNEL +CONFIG +COMSTATUS +COM +CHAN =%r[v(lines)]
&HLOCKING HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Locking Channels page 1 of 3)]%r[u(%1/center,--------------------------------------)]%r+USER[space(10)]- Used to add/remove users to locked channel you own.%r[space(15)]Syntax: +USER <Channel> +<User1 ... UserX>%r[space(23)]+USER <Channel> -<User1 ... UserX>%r+OWNER[space(9)]- Used to add/remove owners to locked channels you own.%r[space(15)]Syntax: +OWNER <Channel> +<User1 ... UserX>%r[space(23)]+OWNER <Channel> -<User1 ... UserX>%r+LISTCHAN[space(6)]- Used to list channels you own and users/owners on it.%r[space(15)]Syntax: +LISTCHAN%r+CREATE[space(8)]- Used to create a locked (private) channel.%r[space(15)]Syntax: +CREATE <Channel>%r+DESTROY[space(7)]- Used to remove a locked (private) channel you control.%r[space(15)]Syntax: +DESTROY <Channel>%r%rType '[get(%1/DEF_HELP)] LOCKING2' for more help.%rFor more information, extended help and examples are available: [get(%1/DEF_HELP)] <Option>%r%rSee Also: ALIAS COM CHANNEL USING +CONFIG +COMSTATUS CHANGES INDEX%r[v(lines)]
&HLOCKING2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Locking Channels page 2 of 3)]%r[u(%1/center,--------------------------------------)]%r+COM[space(11)]- Used to talk on a locked channel%r[space(15)]Syntax: +COM <Channel>=<Message>%r=[space(14)]- Shorthand for '+COM' and used with the alias system.%r[space(15)]Syntax: = <Message> (For default channel)%r[space(23)]=<alias> <Message> (for channel with 'alias')%r+QUIET[space(9)]- Used to toggle output on given locked channel.%r[space(15)]Syntax: +QUIET <Channel>%r+CHANJOIN[space(6)]- Used to toggle joining locked (private) channel that%r[space(15)]you match the function-lock on previously set.%r[space(15)]Syntax: +CHANJOIN <Channel>%r%rType '[get(%1/DEF_HELP)] LOCKING3' for more help.%rFor more information,extended help and examples are available: [get(%1/DEF_HELP)] <Option>%r%rSee Also: ALIAS COM CHANNEL USING +CONFIG COMSTATUS INDEX CHANGES%r[v(lines)]
&HLOCKING3 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Locking Channels page 3 of 3)]%r[u(%1/center,--------------------------------------)]%r+ALIAS[space(9)]- Used to add/remove/change aliases for channels.%r[space(15)]Syntax: +ALIAS (shows all aliases currently defined)%r[space(23)]+ALIAS +<alias> <Channel> (adds/modifies an alias)%r[space(23)]+ALIAS -<alias> (removes the alias for that channel)%r[space(23)]+ALIAS CLEAR (clears your alias listing)%r[space(23)]=<alias> <message> (talks on channel defined by alias)%r+WIPE[space(10)]- This removes all non-players (nuked) from the locked channel.%r[space(15)]Syntax: +WIPE <Channel>%r%rFor more information,extended help and examples are available: [get(%1/DEF_HELP)] <Option>%r%rSee Also: ALIAS COM CHANNEL USING +CONFIG COMSTATUS INDEX CHANGES%r[v(lines)]
&HALIAS HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Using the Alias System)]%r[u(%1/center,--------------------------------)]%r+ALIAS - Used to display current alias list, add/remove aliases, and clear%r[Space(9)]the alias list. This is used with the '=' command%r[space(9)]for easier channel control in using it.%r%rSyntax: +ALIAS[space(24)]- Shows aliases you currently have.[switch(u(%1/wizard,%0),1,%r[space(8)]+ALIAS/<Player>[space(15)]- Shows aliases others have)]%r[space(8)]+ALIAS +<alias> <channel>[space(5)]- Adds/modifies an aliases to the channel.%r[space(8)]+ALIAS -<alias>[space(15)]- Removes an alias for that channel.%r[space(8)]+ALIAS CLEAR[space(18)]- Clears your alias list.%r[space(8)]=<alias> <message>[space(12)]- Speak on the channel your alias is for.%r%rFor more information, extended help and examples are available: [get(%1/DEF_HELP)] <Option>%r%rSee Also: COM CHANNEL USING +CONFIG +COMSTATUS CHANGES LOCKING = +ALIAS%r[v(lines)]
&HCOM HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Information - Com System)]%r[u(%1/center,------------------------)]%r%rThe following are used to create channels:%r[space(5)]+CREATE +CHAN +MVCHAN +CPCHAN%rThe following is used to talk on channels:%r[space(5)]+COM +ALIAS +QUIET +CODING%b %b =%rThe following are used with locking channels:%r[space(5)]+OWNER +USER +CREATE +ADDLOCK +VALID +MVCHAN +CPCHAN +CHANJOIN%rThe following are used with viewing channels:%r[space(5)]+LISTCHAN +LISTPUB +VALID%rThe following shows various statistics of the comsystem:%r[space(5)]+VALID +LISTPUB +LISTCHAN +ALIAS +COMINDEX +COMSTATUS%r%rFor a quick reference of all commands: [get(%1/DEF_HELP)] INDEX%rFor a quick tutorial of existing commands: [get(%1/DEF_HELP)] USING%r%rFor more information, extended help and examples: [get(%1/DEF_HELP)] <option>%r%(Options are viewed by '[get(%1/DEF_HELP)] INDEX'%)%r%rType '[get(%1/DEF_HELP)] CHANNEL' for the master menu.%r[v(lines)]
&HCHANNEL HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,MasterMenu - Com System)]%r[u(%1/center,-----------------------)]%r%r[get(%1/DEF_HELP)] COM - shows quick reference of most used commands.%r[get(%1/DEF_HELP)] CHANNEL - shows this screen.%r[get(%1/DEF_HELP)] CHANGES - shows changes with the various versions.%r[get(%1/DEF_HELP)] USING - shows how to use the com system.%r[get(%1/DEF_HELP)] ALIAS - shows available commands involving the alias system.%r[get(%1/DEF_HELP)] LOCKING - shows available commands involving the locking system.%r[get(%1/DEF_HELP)] INDEX - shows all available commands involving the channel system.%r[get(%1/DEF_HELP)] THANKS - Special thanks to all who helped make this possible.%r[get(%1/DEF_HELP)] COMPATABILITY - shows compatability to MUSH versions.%r[get(%1/DEF_HELP)] COPYRIGHT - shows rules for copies/examples.%r[get(%1/DEF_HELP)] NEW - shows what's new with this version.[switch(u(%1/wizard,%0),1,%r[get(%1/DEF_HELP)] WIZARD - shows all commands available to a wizard/staff/admin%r[get(%1/DEF_HELP)] HOWTO - answers some questions you may have)]%r%rFor more information, extended help and examples: [get(%1/DEF_HELP)] <Option>%r%r[v(lines)]
&HCHANGES HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Changes Regarding the Com System)]%r[u(%1/center,------------------------------------------)]%r%r[space(5)]VER1 %b -- Versions 1.0 - 1.9 modifications and changes.%r[space(5)]VER2 %b -- Versions 2.0 - 2.9 modifications and changes.%r[space(5)]VER3 %b -- Versions 3.0 - 3.9 modifications and changes.%r[space(5)]VER4 %b -- Versions 4.0 - 4.9 modifications and changes.%r[space(5)]VER5 %b -- Versions 5.0 - 5.9 modifications and changes.%r[space(5)]VER6 %b -- Versions 6.0 - Present modifications and changes.%r[space(5)]FUTURE -- Future ideas that may or may not be implemented.%r%rType '[get(%1/DEF_HELP)] <option> for information on each version.%r%rSee Also: +COMSTATUS INDEX THANKS COMPATABILITY%r[v(lines)]
&HTHANKS HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Special Thanks)]%r[u(%1/center,------------------------)]%r%r[u(%1/thanks)]%r%r[v(lines)]
&HCOPYRIGHT HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Copyright Information)]%r[u(%1/center,-------------------------------)]%r%r[u(%1/copyright2)]%r%r[v(lines)]
&HWIZARD HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Wizard Commands Page 1 of 6)]%r[u(%1/center,-------------------------------------)]%r+WUSER[space(9)]- Add/Remove users from any locked channel.%r[space(15)]Syntax: +WUSER <Channel> <+/-><User1 ... UserX>%r+WOWNER[space(8)]- Add/Remove owners from any locked channel.%r[space(15)]Syntax: +WOWNER <Channel> <+/-><User1 ... UserX>%r+CHOWN[space(9)]- Chown the channel to the given user(s).%r[space(15)]Syntax: +CHOWN <Channel> +<User1 ... UserX>%r+WLOCK[space(9)]- Locks the given public channel with optional users.%r[space(15)]Syntax: +WLOCK <Channel> \[+User1 ... +UserX\]%r+WUNLOCK[space(7)]- Unlocks the given private (locked) channel.%r[space(15)]Syntax: +WUNLOCK <Channel>%r+WLIST[space(9)]- List all users on the given channel.%r[space(15)]Syntax: +WLIST <Channel>%r+LISTCHAN[space(7)]- Lists channels given user is on.%r[space(15)]Syntax: +LISTCHAN \[User\]%r%rType '[get(%1/DEF_HELP)] WIZARD2' for more help.%rFor more information, extended help and examples: [get(%1/DEF_HELP)] <Option>%r%rSee Also: USING LOCKING CHANGES INDEX%r[v(lines)]
&HWIZARD2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Wizard Commands Page 2 of 6)]%r[u(%1/center,-------------------------------------)]%r+WDESTROY[space(6)]- Destroys the given channel (private or public)%r[space(15)]Syntax: +WDESTROY\[/QUIET\] <Channel>%r+MONCON[space(8)]- When on the master-room will show connections%r[space(15)]of users. The master-room must recognize connects/disconnects.%r+MONUNCON[space(6)]- When on master-room will show disconnections%r[space(15)]of users. The master-room must recognize connects/disconnects.%r+MONSET[space(8)]- Toggle to allow wizards to join/leave monitor system.%r[space(15)]Syntax: +MONSET%r+LISTPRIV[space(6)]- Lists all private (locked) channels.%r[space(15)]Syntax: +LISTPRIV%r+SETWIZARD[space(5)]- Sets function wizards are defined by.%r[space(15)]Syntax: +SETWIZARD <Function>%r+WREMOVE[space(7)]- Removes users from channel (private/public).%r[space(15)]Syntax: +WREMOVE <Channel> -<User1 ... UserX>%r%rType '[get(%1/DEF_HELP)] WIZARD3' for more help.%rFor more information, extended help and examples: [get(%1/DEF_HELP)] <Option>%r%rSee Also: USING LOCKING CHANGES INDEX%r[v(lines)]
&HWIZARD3 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Wizard Commands Page 3 of 6)]%r[u(%1/center,-------------------------------------)]%r+WCHANJOIN[space(5)]- Toggles wizard as owner of given locked channel.%r[space(15)]Syntax: +WCHANJOIN <Channel>%r+WADDLOCK[space(6)]- Adds functionality lock to locked channel.%r[space(15)]+WADDLOCK <Channel>=<Function>%r+WIPE[space(10)]- Removes all non-users (nuked) from any channel.%r[space(15)]Syntax: +WIPE <Channel>%r+WENABLE[space(7)]- Enables a disabled ComSystem command.%r[space(15)]Syntax: +WENABLE <Command>%r+WDISABLE[space(6)]- Disables an enabled ComSystem command.%r[space(15)]Syntax: +WDISABLE <Command>%r+WINSTSQ[space(5)]- Installs setq() functionality into the%r[space(15)]ComSystem. This is the default setting.%r[space(15)]Syntax: +WINSTSQ%r+WUNINSTSQ[space(3)]-Uninstalls setq() functionality into the%r[space(15)]ComSystem removing all occurances of setq().%r[space(15)]Syntax: +WUNINSTSQ%r%rType '[get(%1/DEF_HELP)] WIZARD4' for more help.%rFor more information, extended help and examples: [get(%1/DEF_HELP)] <Option>%r%rSee Also: USING LOCKING CHANGES INDEX%r[v(lines)]
&HWIZARD4 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Wizard Commands Page 4 of 6)]%r[u(%1/center,-------------------------------------)]%r+WCLOAK[space(8)]- Allows a wizard to cloak on a locked channel.%r[space(15)]Syntax: +WCLOAK\[/STATUS\] <Channel>%r+WERRORSET[space(5)]- Allows a wizard to set what the error message looks like.%r[space(15)]Syntax: +WERRORSET <String>%r+WUSRLOCK[space(6)]- Allows a wizard to add/remove user from using ComSystem.%r[space(15)]Syntax: +WUSRLOCK <+/-><User>%r+WPURGE[space(8)]- Allows removing player from all channels.%r[space(15)]Syntax: +WPURGE <User>%r+WVALID[space(8)]- Allows defining useable channels.%r[space(15)]Syntax: +WVALID <channel-name list>%r+WINVALID[space(6)]- Allows defining unusable channels.%r[space(15)]Syntax: +WINVALID <list of strings to match against>%r[space(24)](Wildcards Accepted)%r%rType '[get(%1/DEF_HELP)] WIZARD5' for more help.%rFor more information, extended help and examples: [get(%1/DEF_HELP)] <Option>%r%rSee Also: LOCKING USING INDEX +COMSTATUS%r[v(lines)]
&HWIZARD5 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Wizard Commands Page 5 of 6)]%r[u(%1/center,-------------------------------------)]%r+WMAXCHAN[space(6)]- Defines total # of channels.%r[space(15)]Syntax: +WMAXCHAN <Number>%r+WINSTALL[space(6)]- Upgrades previous comsystem with this one.%r[space(15)]+Syntax: +WINSTALL <dbrief#>%r+WDEFHELP[space(6)]- Defines help command for comsystem.%r[space(15)]Syntax: +DEFHELP <one word string>%r+WSHOWCONFIG[space(3)]- Shows current wizard configurations.%r[space(15)]Syntax: +WSHOWCONFIG%r+WCONFIG[space(7)]- Enables/Disables +CONFIG options.%r[space(15)]Syntax: +WCONFIG <+/-> <+config option>%r+WOPTION[space(7)]- Enables/Disables +COM arguments.%r[space(15)]Syntax: +WOPTION <+/-> <+com argument>%r%rType '[get(%1/DEF_HELP)] WIZARD6' for more help.%rFor more information, extended help and examples: [get(%1/DEF_HELP)] <Option>%r%rSee Also: LOCKING USING INDEX +COMSTATUS%r[v(lines)]
&HWIZARD6 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Wizard Commands Page 6 of 6)]%r[u(%1/center,-------------------------------------)]%r+WALIASCHAN[space(4)]- Defines what channels display aliases for WHO%r[space(15)]Syntax: +WALIASCHAN <+/-><List of Channels>%r+WPATCH[space(8)]- Patches the comsystem with new patches.%r[space(15)]Syntax: +WPATCH <dbrief#>%r+WSETUP[space(8)]- Defines wizard config options.%r[space(15)]Syntax: +WSETUP <Wiz-Config>=<ON/OFF>%r+WGALIAS[space(7)] - Defines aliases for channels%r[space(15)]Syntax: +WGALIAS%[/switch%] <chan>=<alias>%r+WRENAME[space(7)]- Gives channels new namecase%r[space(15)]Syntax: +WRENAME <channel>=<re-case>%r+WDEFCOMOPT[space(4)]- Redefines +COM special chars.%r[space(15)]Syntax: +WDEFCOMOPT%[/switch%] <Ref#>=<Char>%r+WSETDARK[space(6)]- Redefines how wizards are DARK%(cloaked%)%r[space(15)]Syntax: +WSETDARK <definition>%r%rFor more information, extended help and examples: [get(%1/DEF_HELP)] <Option>%r%rSee Also: LOCKING USING INDEX +COMSTATUS%r[v(lines)]
&H+CHAN HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +CHAN)]%r[u(%1/center,-----------)]%rSyntax: +CHAN <Option>%r%rOptions: +CHAN +<Channel> -- Adds you to a given public/privalage channel.%r[space(9)]+CHAN -<Channel> -- removes you from a given public/privalage channel.%r%rExamples: +CHAN +PUBLIC \(This adds you to the channel 'Public'.\)%r[space(10)]+CHAN -PUBLIC \(This removes you from the channel 'Public'.\)%r%rDescription: The +CHAN option is used to add or remove a channel that%r[space(13)]you control. This includes PUBLIC or PRIVALAGED channels.%r[space(13)]A privalaged channel is any locked channel that you%r[space(13)]can pass the lock on. The options given to it are '+' and '-'%r[space(13)]to add or remove a given channel respectively. Do note,%r[space(13)]the +CHAN option when used with a non-existant channel creates%r[space(13)]that PUBLIC channel. If you are the last one to leave%r[space(13)]a PUBLIC channel, +CHAN destroyes that channel. So, to be%r[space(13)]frank, the +CHAN is used to join/leave PUBLIC and PRIVALAGED%r[space(13)]channels or to create new PUBLIC channels. It will not join you%r[space(13)]to locked channels that you do not pass the join/leave lock for.%r%rSee Also: +CREATE +CHANJOIN +USER +OWNER%r[v(lines)]
&H+WPURGE HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WPURGE)]%r[u(%1/center,----------------------------)]%rSyntax: +WPURGE <Player>%r%rOptions: +WPURGE <player-name> -- purges all channels of player%r%rExamples: +WPURGE Amberyl \(removes Amberyl from all existing channels\)%r%rDescription: The +WPURGE function is used to remove an existing player from%r[space(13)]ALL existing channels, both public and private. This is%r[space(13)]useful before nuking players to avoid invalid player names.%r%rSee Also: +WREMOVE +WIPE%r[v(lines)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Help Checkpoint #1 <H-1>},{@pemit me=[space(5)]: Help Checkpoint #1 <H-1>}
&H+USER HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +USER)]%r[u(%1/center,-----------)]%rSyntax: +USER <Option>%r%rOptions: +USER <Channel> +<User-List> -- adds one or more users to the channel.%r[space(9)]+USER <Channel> -<User-List> -- removes one or more users from the%r[space(9)]channel.%r%rExamples: +USER Wizard +Fred Bertha \(Adds users 'Fred' and 'Bertha' to locked%r[space(10)]channel 'Wizard'\)%r[space(10)]+USER Wizard -Fred \(Removes 'Fred' from locked channel 'Wizard'\)%r%rDescription: The +USER option is used to add or remove one or more users from a%r[space(13)]locked channel that you are an owner of. Use '+' or '-' to add or%r[space(13)]remove the list of users respectively as shown above.%r%rSee Also: +OWNER +CREATE +DESTROY +CHAN +CHANJOIN +ADDLOCK%r[v(lines)]
&H+OWNER HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +OWNER)]%r[u(%1/center,------------)]%rSyntax: +OWNER <Option>%r%rOptions: +OWNER <Channel> +<User-List> -- adds one or more owners to the%r[space(9)]channel.%r[space(9)]+OWNER <Channel> -<User-List> -- removes one or more users from the%r[space(9)]channel.%r%rExamples: +OWNER Wizard +Bob Ed \(Adds owners 'Bob' and 'Ed' to locked channel%r[space(10)]'Wizard'\)%r[space(10)]+OWNER Wizard -Ed \(Removes owner 'Ed' from locked channel 'Wizard'\)%r%rDescription: The +OWNER option is used to add or remove one or more owners from%r[space(13)]a locked channel that you are an owner of. Use '+' or '-' to add%r[space(13)]or remove the list of owners respectively as shown above.%r%rSee Also: +USER +CREATE +DESTROY +CHAN +CHANJOIN +ADDLOCK%r[v(lines)]
&H+LISTCHAN HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +LISTCHAN %(1 of 2%))]%r[u(%1/center,------------------------)]%rSyntax: +LISTCHAN%[<switch>%] [switch(u(%1/wizard,%0),1,<Option>)]%r%rOptions: +LISTCHAN/QUICK -- Quick listing of channels.%r[space(9)]+LISTCHAN/JOIN %b--Quick listing of +chanjoin available channels.%r[space(9)]+LISTCHAN -- formal listing of channels.[switch(u(%1/wizard,%0),1,%r[space(9)]+LISTCHAN%[<switch>%] <player> -- as above but for specified player>.)]%r%rExamples: +LISTCHAN %(This lists all public and locked channels you belong to.%)[switch(u(%1/wizard,%0),1,%r[space(10)]+LISTCHAN Fred %(Lists all public and private channels for 'Fred'.%))]%r%r*NOTE* If you wish to disable the listing of owners and users on%r[space(7)]locked channels you control (own), you may do so with a%r[space(7)]+CONFIG option of COMPRESS_LISTCHAN. This displays numeric form instead.%r%rFor continuation, please type in [get(%1/DEF_HELP)] +LISTCHAN2%r[v(lines)]
&H+LISTCHAN2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +LISTCHAN %(2 of 2%))]%r[u(%1/center,------------------------)]%r%rDescription: The +LISTCHAN option is used to list out all your channels.%r[switch(u(%1/wizard,%0),1,[[space(13)]If you are a wizard, you may do it to any specified player.%r])][space(13)]For channels that you control (own), you will be able to see the%r[space(13)]list of owners, users, and any invalid (non-existant) users that%r[space(13)]may exist on your channel. You will also get a list%r[space(13)]of all channels available to you with the +CHANJOIN command.%r[space(13)]The 'Q' column shows quieted channels.  The 'A' column shows%r[space(13)]ALIASED channels.  Aliased channels are channels that when you%r[space(13)]do a 'WHO' on you get a list of aliases instead of player names.%r[space(13)]To see player names instead, use the +CONFIG option "NOALIAS".%r[space(13)]Quiet channels are marked by a '*' while alias channels are '!'.%r[space(13)]For a list of all your quieted channels, use +QUIET/LIST%r%rSee Also: +USER +OWNER +CREATE +CHAN +QUIET +DESTROY +CHANJOIN +LISTPUB%r[v(lines)] 
&H+CREATE HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +CREATE)]%r[u(%1/center,-------------)]%rSyntax: +CREATE <Option>%r%rOptions: +CREATE <Channel> -- creates the specified locked channel.%r%rExamples: +CREATE Frump \(This will create a locked channel named 'Frump' that%r[space(10)]you own.\)%r%rDescription: The +CREATE option is used to create a locked channel and specify %r[space(13)]you as the owner of that given channel. As the example above would%r[space(13)]indicate, you would, after typing '+CREATE Frump' own a locked %r[space(13)]channel named 'Frump'.%r%rSee Also: +USER +OWNER +CHAN +QUIET +DESTROY +WIPE +CHANJOIN +ADDLOCK%r[v(lines)]
&H+DESTROY HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +DESTROY)]%r[u(%1/center,-------------)]%rSyntax: +DESTROY <Option>%r%rOptions: +DESTROY <Channel> -- deletes the specified locked channel.%r%rExamples: +DESTROY Frump \(Deletes a locked channel named 'Frump' that you own.\)%r%rDescription: The +DESTROY option is used to delete a locked channel that you own. %r[space(13)]Any users or owners on that channel are also summarilly removed %r[space(13)]along with the channel. As the example above shows, +DESTROY Frump%r[space(13)]will totally delete the channel 'Frump' if you are listed as an%r[space(13)]owner of it.%r%rSee Also: +USER +OWNER +CREATE +CHAN +QUIET +WIPE +CHANJOIN +ADDLOCK%r[v(lines)]
&H+COM HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +COM: Page 1 of 3)]%r[u(%1/center,-----------------------)]%rSyntax: +COM <Option>=<Option>%r%rOptions: +COM <Channel> = <Message> -- standard com message %(Default%)%r[space(9)]+COM <Channel> = [extract(get(%1/com-l),1,1)]<Message> -- possessive posing com message%r[space(9)]+COM <Channel> = [extract(get(%1/com-l),2,1)]<Message> -- posing com message%r[space(9)]+COM <Channel> = [extract(get(%1/com-l),3,1)]<Message> -- saying com messages %(as in 'say'%)%r[space(9)]+COM <Channel> = [extract(get(%1/com-l),4,1)]<Message> -- spoofing com messages.%r[space(9)]+COM <Channel> = [extract(get(%1/com-l),5,1)]<Message> -- auto-title insertion with com messages%r[space(9)]+COM <Channel> = [extract(get(%1/com-l),6,1)]<Message> -- auto-alias insertion with com message%r[space(9)]+COM <Channel> = [extract(get(%1/com-l),7,1)]<User-List>[extract(get(%1/com-l),7,1)]<Message> -- omit list of users%r[space(9)]+COM <Channel> = [extract(get(%1/com-l),8,1)]<User-List>[extract(get(%1/com-l),8,1)]<Message> -- just to specified users%r[space(9)]+COM <Channel> = [extract(get(%1/com-l),9,1)]<Message> -- reverses the text typed.%r[space(9)]+COM <Channel> = [extract(get(%1/com-l),10,1)]<Message> -- reverses the words.%r[space(9)]+COM <Channel> = [extract(get(%1/com-l),11,1)]<User-List>[extract(get(%1/com-l),11,1)]<Message> -- direct to list of users%r[space(9)]+COM <Channel> = WHO -- list all active users on given channel%r%rAs '+COM' is complex, examples are available by typing: [get(%1/DEF_HELP)] +COM2%rSee Also: = +QUIET +ALIAS +CHAN +CHANJOIN +LISTCHAN +CONFIG +COM2 +COM3%r[v(lines)]
&H+COM2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +COM: Page 2 of 3)]%r[u(%1/center,-----------------------)]%rExamples: +COM Public = Hi \(displays '\[Public\] [name(%0)]: Hi'\)%r[space(10)]+COM Public = [extract(get(%1/com-l),1,1)]waves \(Displays '\[Public\] [name(%0)]waves'\)%r[space(10)]+COM Public = [extract(get(%1/com-l),2,1)]waves \(Displays '\[Public\] [name(%0)] waves'\)%r[space(10)]+COM Public = [extract(get(%1/com-l),3,1)]Hi \(Displays '\[Public\] [name(%0)] says "Hi"'\)%r[space(10)]+COM Public = [extract(get(%1/com-l),4,1)]spoof! \(Displays '\[Public\] spoof!'\)%r[space(20)]To see SPOOFING, review help on +CONFIG%r[space(10)]+COM Public = [extract(get(%1/com-l),5,1)]Hi \(Displays '\[Public\] [name(%0)] <Title> Hi'\)%r[space(10)]+COM Public = [extract(get(%1/com-l),6,1)]Hi \(Displays '\[Public\] <Your Alias>: Hi'\)%r[space(10)]+COM Public = [extract(get(%1/com-l),7,1)]Bob[extract(get(%1/com-l),7,1)]Heh \(Displays '\[Public\] [name(%0)]: heh'\)%r[space(20)]This would display to everyone but 'Bob'%r[space(10)]+COM Public = [extract(get(%1/com-l),8,1)]Bob[extract(get(%1/com-l),8,1)]Heh \(Displays '\[Public\] [name(%0)]: heh'\)%r[space(20)]This displays just to Bob %(If connected%)%r[space(10)]+COM Public = [extract(get(%1/com-l),9,1)]Oh Wow! \(Displays '\[Public\] [name(%0)] !woW hO'\)%r[space(10)]+COM Public = [extract(get(%1/com-l),10,1)]Oh Wow! \(Displays '\[Public\] [name(%0)] Wow! Oh\)%r[space(10)]+COM Public = [extract(get(%1/com-l),11,1)]Lord Bob, Joey[extract(get(%1/com-l),11,1)]Dork!\(Displays %r[space(20)]'\[Public\] [name(%0)] \(To: Lord Bob & Joey\): Dork!'\)%r%rAs '+COM' is complex, detail is available by typing: [get(%1/DEF_HELP)] +COM3%rSee Also: = +QUIET +ALIAS +CHAN +CHANJOIN +COM +COM3 +LIST%r[v(lines)]
&H+COM4 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +COM: Wizard Information)]%r[u(%1/center,------------------------------)]%r%rDescription: Special consideration was implimented for the ^ and _%r[space(13)]options of the +COM command. If you are OMITED either%r[space(13)]by being excluded or because of a private message,%r[space(13)]you will see on your screen the following:%r[space(20)]\[Channel\] User: <OMIT - EXCLUDED> Message \(If OMITED\)%r[space(20)]\[Channel\] User: <OMIT - PRIVATE> Message \(If PRIVATE\)%r[space(13)]You, as a wizard, will always get all messages on any%r[space(13)]channel you belong to. I feel no wizard should%r[space(13)]be talked to behind his/her back. Do make note%r[space(13)]however, that the user doing it is not aware that you%r[space(13)]can see this. Reveal it on your own decision.%r%rSee Also: = +QUIET +CONFIG +ALIAS +CHAN +CHANJOIN +LISTCHAN +COM +COM2 +COM3%r[v(lines)]
&H+WERRORSET HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WERRORSET)]%r[u(%1/center,-------------------------------)]%rSyntax: +WERRORSET <Option>%r%rOptions: +WERRORSET RESET -- resets the error message.%r[space(9)]+WERRORSET <Message> -- sets the error message to the desired message.%r%rExamples: +WERRORSET RESET \(Resets error message to 'Huh? %b\(Type ... \)'\)%r[space(10)]+WERRORSET *BLEEP* \(Sets error message to '*BLEEP*'.\)%r%rDescription: The +WERRORSET command is used to pre-define what%r[space(13)]you wish to have as the default error message%r[space(13)]when you use the com.  MUSH comes standard with%r[space(13)]Huh? %b\(Type "help" for help.\) as the error%r[space(13)]message, but some places have redefined them or even%r[space(13)]randomized them.  The message is called in a ufun\(\)/u\(\)%r[space(13)]function so that pretty much anything can be generated.%r%rSee Also: +COMSTATUS +COMINDEX +WINSTSETQ +WUNINSTSETQ%r[v(lines)]
&H+WCLOAK HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WCLOAK)]%r[u(%1/center,----------------------------)]%rSyntax: +WCLOAK <Options>%r%rOptions: +WCLOAK/STATUS -- Displays currently 'cloaked' channels.%r[space(9)]+WCLOAK <Channel> -- toggles cloak on and off on existing channels.%r%rExamples: +WCLOAK/STATUS \(Displays all channels currently cloaked on\)%r[space(10)]+WCLOAK Public \(Will 'cloak' you on the channel 'public'\)%r[space(13)]this effectively hides you from +LISTCHAN, +USER, +OWNER, etc.%r[space(13)]but only on locked channels you *OWN*.%r%rDescription: The +WCLOAK function is used to hide your presence%r[space(13)]so that mortals can not locate you on a channel they%r[space(13)]own and/or belong to. When cloaked, mortals%r[space(13)]are also unable to remove you or add you to that given%r[space(13)]channel. Do note however, that you are *NOT* cloaked if%r[space(13)]you belong to the locked channel as a user!%r[space(13)]This also stops users from locating you with a 'who' %r%rSee Also: +LISTCHAN +WLIST +WREMOVE +USER +OWNER +WOWNER +WUSER%r[v(lines)]
&H+WUSRLOCK HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WUSRLOCK)]%r[u(%1/center,------------------------------)]%rSyntax: +WUSRLOCK <Options>%r%rOptions: +WUSRLOCK +User -- Disables specified user from using system.%r[space(9)]+WUSRLOCK -User -- Enables specified user to use system.%r[space(9)]+WUSRLOCK STATUS -- displays status of who currently is disabled.%r%rExamples: +WUSRLOCK +Bob \(Locks 'Bob' from using the com system\)%r[space(10)]+WUSRLOCK -Bob \(Enables 'Bob' to use the com system\)%r[space(10)]+WUSRLOCK STATUS \(shows status of who currently is disallowed.\)%r%rDescription: +WUSRLOCK is used to allow wizards the ability%r[space(13)]to disallow anyone from using the com system.  When%r[space(13)]set, the only ways to re-allow them is to use this%r[space(13)]command or manually re-add them to the @uselock on the%r[space(13)]comsystem.  Yes, all it is is a @uselock, but not everyone who's%r[space(13)]seen as 'wizard' by the com will be a wizard.%r%rSee Also: +WLIST +WENABLE +WDISABLE +COMINDEX +COMSTATUS%r[v(lines)]
&H+WLOCK HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WLOCK)]%r[u(%1/center,---------------------------)]%rSyntax: +WLOCK <Options>%r%rOptions: +WLOCK Channel -- locks the specified public channel w/o owners.%r[space(9)]+WLOCK Channel +User1 ... UserX -- makes the specified public channel %r[space(9)]locked with the specified users as owners.%r%rExamples: +WLOCK Public \(Locks channel 'Public' w/o owners.\)%r[space(10)]+WLOCK Public +BlackThorne \(Locks 'Public' with owner 'Blackthorne'.\)%r%rDescription: +WLOCK is used to allow wizards to lock a given public channel %r[space(13)]with an optional user-list. This is a handy thing for channels %r[space(13)]that get out of hand.%r%rSee Also: +WUNLOCK +WLIST +WUSER +WOWNER +CHOWN +WDESTROY +WADDLOCK%r[v(lines)]
&H+WUNLOCK HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WUNLOCK)]%r[u(%1/center,-----------------------------)]%rSyntax: +WUNLOCK <Option>%r%rOptions: +WUNLOCK Channel -- makes the specified locked channel public.%r%rExamples: +WUNLOCK Admin \(Sets locked channel 'Admin' public access.\)%r%rDescription: +WUNLOCK is used to allow wizards the ability to unlock any locked%r[space(13)]channel. To see full channel status, use the command '+WLIST'.%r%rSee Also: +WUSER +WOWNER +WLOCK +CHOWN +WADDLOCK +WDESTROY +LISTPRIV%r[v(lines)]
&H+WLIST HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WLIST)]%r[u(%1/center,---------------------------)]%rSyntax: +WLIST <Channel>%r%rOptions: +WLIST Channel -- lists all users, owners, and invalid users.%r%rExamples: +WLIST Public \(Lists all users, owners, and non-players on 'Public'\)%r%rDescription: +WLIST is used to list everyone \(owners, users, and non-players\)%r[space(13)]on the specified channel and works on any channel (public/private)%r%rSee Also: +LISTCHAN +WDESTROY +LISTPRIV +LISTPUB%r[v(lines)]
&H+WDESTROY HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WDESTROY)]%r[u(%1/center,-----------------------------)]%rSyntax: +WDESTROY <Channel>%r%rOptions: +WDESTROY Channel -- destroys the given channel \(public or private\)%r[space(9)]+WDESTROY/QUIET Admin -- quietly destroys the given channel.%r%rExamples: +WDESTROY Admin \(Destroys channel 'Admin'. You need not be an owner\)%r[space(10)]+WDESTROY/QUIET Admin \(Quietly destroys channel 'Admin'.\)%r%rDescription: +WDESTROY is used to totally obliterate a channel. It wipes the%r[space(13)]existance of the given channel and all owners/users/etc of it.%r[space(13)]You need not have control of the channel before +WDESTROYing it.%r%rSee Also: +CHOWN +LISTPRIV +LISTCHAN +LISTPUB +WUSER +WOWNER +WLIST%r[v(lines)]
&H+MONUNCON HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +MONUNCON)]%r[u(%1/center,------------------------------)]%rSyntax: +MONUNCON%r%rOptions: None%r%rExamples: +MONUNCON \(used to monitor disconnections\)%r%rDescription: +MONUNCON when installed in the master room%r[space(13)]for those systems that have working aconnects/adisconnects, it %r[space(13)]will monitor anyone's disconnection(s) and the total time %r[space(13)]connected displaying this to all players \(generally wizards\) who %r[space(13)]are on that given option. If your system does not have the %r[space(13)]'monitoring' ability, you may add this to every player's %r[space(13)]adisconnect \(Not a fun thing to do\) or find the patch to apply.%r%rSee Also: +MONCON +MONSET +WENABLE +WDISABLE%r[v(lines)]
&H+MONCON HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +MONCON)]%r[u(%1/center,----------------------------)]%rSyntax: +MONCON%r%rOptions: None%r%rExamples: +MONCON \(used to monitor connections and lastsites\)%r%rDescription: +MONCON when installed in the master room for those%r[space(13)]systems that have working aconnects/adisconnects, it will monitor%r[space(13)]anyone's connection(s) and the site the user logged in from and %r[space(13)]display that information to all players \(generally wizards\) who %r[space(13)]are on that given option. If your system does not have the %r[space(13)]'monitoring' ability, you may add this to every player's aconnect%r[space(13)]\(Not a fun thing to do\) or find the patch to apply.%r%rSee Also: +MONUNCON +MONSET +WENABLE +WDISABLE%r[v(lines)]
&H+MONSET HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +MONSET)]%r[u(%1/center,----------------------------)]%rSyntax: +MONSET%r%rOptions: None \(Auto-toggles\)%r%rExample: +MONSET \(Will, depending if you're already added or not, add/remove %r[space(9)]you from the monitoring system\)%r%rDescription: +MONSET is a toggle that when added to the monitoring system will%r[space(13)]remove you from the system and when not added will add you to it. %r[space(13)]If your system does not recognize connects/disconnects in the %r[space(13)]master room, you will have to add the '+MONCON' and '+MONUNCON' to%r[space(13)]users by hand \(not a pretty sight\), modify your hard code with the %r[space(13)]patch, or ignore this option(s) entirelly.%r%rSee Also: +MONCON +MONUNCON +WENABLE +WDISABLE%r[v(lines)]
&H+LISTPRIV HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +LISTPRIV)]%r[u(%1/center,------------------------------)]%rSyntax: +LISTPRIV %[#%]%r%rOptions: +LISTPRIV %(Shows first page%)%r[space(9)]+LISTPRIV 1 %(Ditto%)%r[space(9)]+LISTPRIV 2 %(Shows second page%)%r%rExample: +LISTPRIV %(lists all locked channels, owners, users, and non-players%)%r[space(19)]%(This lists only page 1%)%r[space(9)]+LISTPRIV 3 %(Lists page 3 of locked channels%)%r%rDescription: +LISTPRIV is used to list all currently recognized locked channels.%r[space(13)]With the channel, it lists out total number of owners, users, and %r[space(13)]invalid players. This comes helpful with the +WIPE command. The %r[space(13)]'public' dirivitive is of course, +LISTPUB which also shows %r[space(13)]invalid players for +WIPE. There has reciently been added%r[space(13)]an addition of a paging feature so that overflowing%r[space(13)]of functionality does not exist. For help on this, look%r[space(13)]at help on +setpage.%r%rSee Also: +LISTPUB +WLIST +WIPE +LISTCHAN +SETPAGE%r[v(lines)]
&H+SETWIZARD HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +SETWIZARD)]%r[u(%1/center,-------------------------------)]%rSyntax: +SETWIZARD <Option>%r%rOptions: +SETWIZARD <Function> -- establishes how a wizard is defined.%r[space(34)]The default is: \[hasflag(%%0,wizard)]%r%rExamples: +SETWIZARD %%%[hasflag%%%(%%%%0,wizard%%%)%%%] \(Sets wizards as flag 'wizard'.\)%r[space(10)]+SETWIZARD %%%[match%%%(#1 #2 #3,%%%%0%%%)%%%] \(Sets wizards as users #1-#3.\)%r%r*NOTE* As displayed, you *MUST* delimiter all ()'s and %[%]'s so that the %r[space(7)]function is stored and not it's result. The player being checked is %r[space(7)]always referenced as %%0.%r%rTo see enhanced descriptions of the +SETWIZARD command, type: [get(%1/DEF_HELP)] +SETWIZARD2%r[v(lines)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Help Checkpoint #2 <H-2>},{@pemit me=[space(5)]: Help Checkpoint #2 <H-2>}
&H+WREMOVE HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WREMOVE)]%r[u(%1/center,-----------------------------)]%rSyntax: +WREMOVE <Channel> <Options>%r%rOptions: +WREMOVE Channel -User1 ... UserX -- removes one or more players.%r%rExamples: +WREMOVE Admin -Bob Ed \(Removes 'Ed' and 'Bob' from channel 'Admin'\)%r[space(10)]+WREMOVE Admin -Ed \(Removes just 'Ed' from channel 'Admin'\)%r%rDescription: +WREMOVE is used to remove one or more users from a given channel. %r[space(13)]The channel may be locked or public and the user may be an owner %r[space(13)]or user. It quite frankly makes no difference.%r%rSee Also: +WIPE +WUSER +WOWNER +CHOWN +WDESTROY%r[v(lines)]
&H+WCHANJOIN HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WCHANJOIN)]%r[u(%1/center,-------------------------------)]%rSyntax: +WCHANJOIN <Channel>%r%rOptions: +WCHANJOIN <Channel> -- toggles you as an owner to the locked channel%r%rExample: +WCHANJOIN Admin \(Adds/removes you quietly as an owner to 'Admin'.\)%r%rDescription: +WCHANJOIN is used to quietly join and unjoin any locked channel%r[space(13)]as an owner. You need not previously be an owner of a channel nor%r[space(13)]is there any need of control. It just is.%r%rSee Also: +WIPE +WUSER +WOWNER +CHOWN +WDESTROY +LISTCHAN%r[v(lines)]
&H+WENABLE HelpDB=v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WENABLE)]%r[u(%1/center,-----------------------------)]%rSyntax: +WENABLE <Option>%r%rOptions: The following options can be enabled%r%r[u(%1/chanopts)]%r%rExamples: +WENABLE +CHAN \(This would let +CHAN to be used if it was disabled\)%r%rDescription: +WENABLE is used to enable previously disabled options on the com%r[space(13)]system. Nearly every command can be disabled from working in order%r[space(13)]to allow fully compatable systems for various roll playing needs. %r[space(13)]If any options are needed/wanted, email the author and it will try%r[space(13)]to be done next revision.%r%rSee Also: +WDISABLE +WINSTSETQ +WUNINSTSETQ +COMSTATUS +COMINDEX%r[v(lines)]
&H+WADDLOCK HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WADDLOCK)]%r[u(%1/center,------------------------------)]%rSyntax: +WADDLOCK <Channel>=<Options>%r%rOptions: +WADDLOCK <Channel>=<Function(s)> -- establishes lock for channel.%r%rExamples: +WADDLOCK Admin=%%%[hasflag%%%(%%%0,wizard%%%)%%%] \(Sets lock to wizards.\)%r%r*NOTE* You must escape out all ()'s and %[%]'s like shown above for example. %%0 %r[space(7)]is parsed as the user that's being checked and all functionality must %r[space(7)]return a 0 (for failure) or a 1 (for success). If you find a better way %r[space(7)]to set this VIA $-command, notify the author for future revisions.%r%rDescription: +WADDLOCK is used to set a user-defined lock to a given channel. %r[space(13)]All brackets and parenthesis must be escaped out with %% or \\. Any %r[space(13)]lock may be used but must return a 0 or a 1. Error handling can %r[space(13)]handle cases where it does not but the lock may not work the way %r[space(13)]you intended. If you leave the function empty, it will remove%r[space(13)]the lock.%r%rSee Also: +WOWNER +WUSER +WCHANJOIN +WDESTROY +WIPE +LISTPRIV%r[v(lines)]
&H+WDISABLE HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WDISABLE)]%r[u(%1/center,------------------------------)]%rSyntax: +WDISABLE <Option>%r%rOptions: The following options can be disabled%r%r[u(%1/chanopts)]%r%rExamples: +WDISABLE +CHAN \(This would disable +CHAN from being used.\)%r%rDescription: +WDISABLE is used to disable options from being used by the public.%r[space(13)]In the above example, +CHAN would be disabled thus removing the%r[space(13)]ability to join/leave public channels using '+CHAN'. This is done %r[space(13)]in the hopes to better generalize the com system for use on %r[space(13)]various platforms. If any further options are desired feel free to %r[space(13)]email the author and he will try to install the desired options %r[space(13)]next revision.%r%rSee Also: +WENABLE +WINSTSETQ +WUNINSTSETQ +COMSTATUS +COMINDEX%r[v(lines)]
&H+WINSTSQ HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WINSTSQ)]%r[u(%1/center,-------------------------------)]%rSyntax: +WINSTSQ%r%rOptions: None%r%rExamples: +WINSTSQ \(Install setq() functionality into com system\)%r%rDescription: +WINSTSQ is used to install setq() functionality into the com %r[space(13)]system. This is the default as most systems today use setq(), but %r[space(13)]if any desire is done not to use setq() then later revisions of %r[space(13)]MU* make you wish to have setq(), this allows you to install the %r[space(13)]functionality. This options takes up some extra database space %r[space(13)](Say approximately 20K for backups in setq() and non-setq() %r[space(13)]functionality, but it was my intention to make this fully %r[space(13)]standardized.)%r%rSee Also: +WUNINSTSQ +WENABLE +WDISABLE +COMINDEX +COMSTATUS%r[v(lines)]
&H+WUNINSTSQ HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WUNINSTSQ)]%r[u(%1/center,--------------------------------)]%rSyntax: +WUNINSTSQ%r%rOptions: None%r%rExamples: +WUNINSTSQ \(Install NON-setq() functionality into commands\)%r%rDescription: This is used to unset setq() functionality in case your system %r[space(13)]does not support setq() functions or if setq() on your system %r[space(13)]happens to be buggy. It ws the authors intent to make this %r[space(13)]compatable with as many MU*'s as possible.%r%rSee Also: +WINSTSQ +WENABLE +WDISABLE +COMINDEX +COMSTATUS%r[v(lines)]
&H+WUNINSTSETQ HelpDB=
&H+WINSTSETQ HelpDB=
&H+ALIAS2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +ALIAS)]%r[u(%1/center,------------)]%r%rDescription: The +ALIAS function is used to define, display, and delete your%r[space(13)]established aliases for your channels. You can have anything as%r[space(13)]an alias from one character to however many you want, though%r[space(13)]having a 50 character alias is a bit silly. You may have the com%r[space(13)]system's pre-defined keys \(like ':'\) as an alias, but to pose you%r[space(13)]will have to type TWO ':''s. One for the alias, one for the %r[space(13)]special pose-feature. You may also put a space between the '=' %r[space(13)]and the ':' to pose.%r%rSee Also: = +COM +QUIET +CONFIG +CHAN +CREATE +CHANJOIN%r[v(lines)]
&H+WUSER2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WUSER)]%r[u(%1/center,---------------------------)]%rDescription: +WUSER is used to allow wizards to add and/or remove users from%r[space(13)]any locked channel weither they're owners of it or not. To see %r[space(13)]who is on a given channel, use '+WLIST <Channel>'. To add and/or %r[space(13)]remove users quietly use the /QUIET switch.%r%rSee Also: +WUSER +WLIST +WOWNER +CHOWN +WUNLOCK +LISTCHAN +WCHANJOIN%r[v(lines)]
&H+SETWIZARD2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +SETWIZARD)]%r[u(%1/center,-------------------------------)]%r%rDescription: +SETWIZARD allows \(the owner of the com system or whoever is %r[space(13)]currently recognized as a wizard\) the ability to specify who a %r[space(13)]wizard is. Ie: The players who get the special commands and %r[space(13)]abilities with the Com System. If this way is%r[space(13)]too confusing or annoying, and you know of a better way, notify %r[space(13)]the author and it shall be installed with the next revision.%r%rSee Also: +SETWIZARD +WENABLE +WDISABLE +WADDLOCK +WINSTSETQ +WUNINSTSETQ%r[v(lines)]
&H+ADDLOCK HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +ADDLOCK %(1 of 2%))]%r[u(%1/center,-----------------------)]%rSyntax: +ADDLOCK%[<swi>%] <Chan>=%[%[|%] %[%[!%]<attr:str>%] %[%[!%]<~flag>%] %[%[!%]<@user>%] %]%r%rOptions: +ADDLOCK <Channel>=<attr1:str1> <attr2:str2> ... <attrx:strx>%r[space(9)]+ADDLOCK <Channel>=<attr1::str1> <attr2::str2> ... <attrx::strx>%r[space(9)]-- The above two locks by attributes on players.%r[space(9)]+ADDLOCK <Channel>=!<attr1:str1> !<attr2:str2> ... !<attrx:strx>%r[space(9)]-- This locks against attributes on players.%r[space(9)]+ADDLOCK <Channel>=<~flag1> <~flag2> ... <~flagx>%r[space(9)]-- This locks by specific flag type%r[space(9)]+ADDLOCK <Channel>=!<~flag1> !<~flag2> ... !<~flagx>%r[space(9)]-- This locks against specific flag types.%r[space(9)]+ADDLOCK <Channel>=<@player1> <@player2> ... <@playerx>%r[space(9)]-- This locks by the specified players.%r[space(9)]+ADDLOCK <Channel>=!<@player1> !<@player2> ... !<@playerx>%r[space(9)]-- This locks against specified players.%r[space(9)]+ADDLOCK/LIST <Channel> -- displays current lock.%r[space(9)]+ADDLOCK/REMOVE <Channel> -- removes the lock.%r[space(9)]+ADDLOCK <Channel>=| <options>%r[space(9)]-- This switches from 'and' to 'or' in the function lock.%r%rFor continuation, please type +HELP +ADDLOCK2%r[v(lines)]
&H+ADDLOCK2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +ADDLOCK %(2 of 2%))]%r[u(%1/center,-----------------------)]%rExample: +ADDLOCK Admin=sex:male !guild:elf !~inherit ~halt !@Tinyjerk%r[space(9)]-- This will lock the channel 'Admin' to all males%r[space(12)]not in the guild 'elf' who is not set inherit%r[space(12)]who has the halt flag and is not the player 'Tinyjerk'.%r%rDescription: The +ADDLOCK has been modified and enhanced to give%r[space(13)]a wide range of locking features. Hopefully in it's%r[space(13)]current state, it will give enough freedom to%r[space(13)]sufficiently lock any channel in any way the owner requires.%r[space(13)]The attribute lock with ':' puts what you are matching%r[space(13)]the attribute against first while the '::' puts%r[space(13)]what you are matching against second. Ie:%r[space(13)]: - match(string,get(player/attribute))%r[space(13)]:: - match(get(player/attribute),string)%r%rThis allows you to place wildcard matching in either instance.%r%r[switch(u(wizard,%0),1,NOTE: Wizards may establish locks on *ANY* locked channel.%r%r)]See also: +LISTCHAN +CHAN +CREATE +OWNER +USER +CHANJOIN%r[v(lines)]
&H+ALIAS HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +ALIAS)]%r[u(%1/center,------------)]%rSyntax: +ALIAS <Options>%r%rOptions: +ALIAS -- used to display which aliases you have for which channels.[switch(u(%1/wizard,%0),1,%r[space(9)]+ALIAS/<Player> -- used to show other's aliases)]%r[space(9)]+ALIAS +<Alias> <Channel> -- used to set or modify \(if already %r[space(10)]existing\) an alias for the desired channel.%r[space(9)]+ALIAS -<Alias> -- Used to remove the desired alias.%r[space(9)]+ALIAS CLEAR -- totally removes all aliases you have defined.%r%rExamples: +ALIAS +p Public \(Establishes alias 'p' for channel 'Public'\)%r[space(10)]+ALIAS -p \(Removes alias 'p' from your list\)%r[space(10)]+ALIAS \(Displays all your aliases with corresponding channel\)[switch(u(%1/wizard,%0),1,%r[space(10)]+ALIAS/Fred \(Displays all of Fred's aliases\))]%r[space(10)]+ALIAS CLEAR \(Totally removes all your stored aliases... *POOF*.\)%r%rTo see enhanced descriptions of the +ALIAS command, type: [get(%1/DEF_HELP)] +ALIAS2%r[v(lines)]
&H+CHANJOIN HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +CHANJOIN)]%r[u(%1/center,---------------)]%rSyntax: +CHANJOIN <Option>%r%rOptions: +CHANJOIN <Channel> -- used to join/unjoin the locked channel%r%r*NOTE* You must pass the lock on the channel before being able to use this %r[space(7)]command. You will be notified of failure to pass the lock. Also, if you%r[space(7)]were a prior owner of the channel you leave by '+CHANJOIN', it retains%r[space(7)]this and resets you as an owner when you 'join' it again with%r[space(7)]+CHANJOIN%r%rExamples: +CHANJOIN Admin \(This joins you to channel 'Admin'\)%r%rDescription: +CHANJOIN is used to allow users the freedom of joining and %r[space(13)]leaving locked channels at their leasure if a pre-defined lock %r[space(13)]was set up. The lock is established by a channel owner or by a%r[space(13)]wizard, or administrator.%r%rSee Also: +ADDLOCK +CREATE +USER +OWNER +LISTCHAN +DESTROY +WIPE +QUIET%r[v(lines)]
&H+COM3 HelpDB=v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +COM: Page 3 of 3)]%r[u(%1/center,-----------------------)]%r%rDescription: The +COM is used for the sending of messages to and from the %r[space(13)]channel system. The various options and examples of them are %r[space(13)]available on pages 1 and 2 by typing [get(%1/DEF_HELP)] +COM1 and [get(%1/DEF_HELP)] +COM2. %r[space(13)]All configurations and setup can be seen by typing [get(%1/DEF_HELP)] +CONFIG. %r[space(13)]Such configurations include setting up your alias \(You can do this%r[space(13)]by hand by typing: &CALIAS me=<Alias> which it will explain in %r[space(13)]detail in [get(%1/DEF_HELP)] +CONFIG\). LIkewise, setting up your title (done by%r[space(13)]typing &CTITLE me=<Title>\) is also explained well in [get(%1/DEF_HELP)] %r[space(13)]+CONFIG. As page 1 and 2 explains, the options to +COM is a %r[space(13)]channel, an equals, and a message with some delimiter \(again, %r[space(13)]explained in pages 1 and 2\). If any further help is required, %r[space(13)]notify the author of this system and he will explain it in debth%r[space(13)]along with a future modification to the help for better %r[space(13)]understanding.%r%r[switch(u(%1/wizard,%0),1,For wizard information involving +COM\, type: [get(%1/DEF_HELP)] +COM4)]%r%rSee Also: = +QUIET +CONFIG +ALIAS +CHAN +CHANJOIN +LISTCHAN +COM +COM2%r[v(lines)]
&H+CHOWN HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +CHOWN)]%r[u(%1/center,---------------------------)]%rSyntax: +CHOWN <Channel> <Option>%r%rOptions: +CHOWN Channel +User1 ... UserX -- chowns the locked channel %r[space(9)]establishing one or more users as owners.%r%rExamples: +CHOWN Admin +Seth \(Chowns locked channel 'Admin' to player 'Seth'\)%r%rDescription: +CHOWN allows wizards to chown any locked channel to a list of %r[space(13)]one or more users. This will only work for locked channel and will%r[space(13)]keep the current users on the channel and move old owners to the %r[space(13)]user status. To lock public channels or unlock locked ones, use %r[space(13)]'+WLOCK' and '+WUNLOCK' respectively.%r%rSee Also: +WLOCK +WUNLOCK +WLIST +WUSER +WOWNER +WCHANJOIN%r[v(lines)]
&H+COMINDEX HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +COMINDEX)]%r[u(%1/center,---------------)]%r[u(%1/doindex)]%r[v(lines)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Help Checkpoint #3 <H-3>},{@pemit me=[space(5)]: Help Checkpoint #3 <H-3>}
&H+CONFIG HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +CONFIG %(1 of 5%))]%r[u(%1/center,----------------------)]%rSyntax: +CONFIG <Option>=<Argument>%r%rOptions: +CONFIG NOSPOOF=%[ON|YES%]/%[OFF|NO%] - Toggles nospoof.%r[space(9)]+CONFIG LASTCHAN=%[ON|YES%]/%[OFF|NO%] -- '=' for last channel spoken on.%r[space(9)]+CONFIG COMPRESS_LISTCHAN=%[ON|YES%]/%[OFF|NO%] -- Compress +listchan%r[space(9)]+CONFIG NOALIAS=%[ON|YES%]/%[OFF|NO%] -- Shows aliases on WHO%r[space(9)]+CONFIG RANDTITLE=%[ON|YES%]/%[OFF|NO%] -- Toggles randomizing titles%r[space(9)]+CONFIG RANDALIAS=%[ON|YES%]/%[OFF|NO%] -- Toggles randomizing aliases.%r[space(9)]+CONFIG USE_ALIAS=%[ON|YES%]/%[OFF|NO%] -- Toggles default alias use.%r%rFor examples of these, please type: [get(%1/DEF_HELP)] +CONFIG2%r[v(lines)]
&H+CONFIG2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +CONFIG %(2 of 5%))]%r[u(%1/center,----------------------)]%rExamples: +CONFIG NOSPOOF=ON -- Enables nospoof to see spoofers.%r[space(10)]+CONFIG NOSPOOF=OFF -- Disables nospoof%r[space(10)]+CONFIG LASTCHAN=ON -- Enables '=' to be last channel used.%r[space(10)]+CONFIG LASTCHAN=OFF -- Disables lastchan use of '='%r[space(10)]+CONFIG COMPRESS_LISTCHAN=ON -- Compressed +listchan output for%r[space(20)]user/owner display on locked channels so it shows%r[space(20)]up as total #'s instead of listing players.%r[space(10)]+CONFIG COMPRESS_LISTCHAN=OFF -- Disables the +listchan compression.%r[space(10)]+CONFIG NOALIAS=ON -- Shows aliases on channel WHO listings.%r[space(10)]+CONFIG NOALIAS=OFF -- Disables seeing aliases on WHO listings.%r[space(10)]+CONFIG RANDTITLE=ON -- Enables randomizing your Titles%r[space(10)]+CONFIG RANDTITLE=OFF -- Disables title randomization%r[space(10)]+CONFIG RANDALIAS=ON -- Enables randomizing your alias%r[space(10)]+CONFIG RANDALIAS=OFF -- Disables alias randomization%r[space(10)]+CONFIG USE_ALIAS=ON -- Enables player's aliases showing up.%r[space(10)]+CONFIG USE_ALIAS=OFF -- Disables player's aliases%r%rFor user configurations, please type: [get(%1/DEF_HELP)] +CONFIG3%r[v(lines)]
&H+CONFIG3 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +CONFIG %(3 of 5%))]%r[u(%1/center,---------------------)]%r*NOTE* Any other +CONFIG configurations are done by hand:%r[space(5)]For the TITLE in the comsystem: &CTITLE me=<Title you desire>%r[space(5)]For the ALIAS in the comsystem: &CALIAS me=<Alias you want>%r[space(5)]For a default way to speak on a channel: &CDEF me=<char>%r[space(10)]- Char must be one of the special characters recognized by%r[space(12)]The comsystem currently. These currently are%b%b [get(%1/COM-L)].%r[space(10)]- To reset this to the default, enter nothing for 'char'.%r[space(12)]This will remove the attribute on your character.%r%rDescription: +CONFIG is used to set the various configurations available for %r[space(13)]the ComSystem. As of now, only [words(get(%1/CONF-L))] exist. In the future, with%r[space(13)]more revisions, more will be available for the given user. I try%r[space(13)]to design future portability for new options. But then, shouldn't%r[space(13)]everyone? 8%)%r%rFor detailed help on user-configurations, type: [get(%1/DEF_HELP)] +CONFIG4%r[v(lines)]
&H+CONFIG4 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +CONFIG %(4 of 5%))]%r[u(%1/center,---------------------)]%r%r&CDEF me=!%r[space(10)]-This would set the default speaking for the comsystem to use the title%r[space(10)] so you would not have to type a '!' to talk on a channel.%r%r&CALIAS me=<String>%r[space(10)]-This sets a standard alias for the comsystem.%r&CALIAS-<Channel> me=<String>%r[space(10)]-This sets up an alias for the specified channel <Channel>%r[space(10)] IE: &CALIAS-PUBLIC me=My Title%r[space(10)] To set up randomizing aliases, type the following:%r[space(15)]&CALIAS me=<first alias>@<second alias>@<third alias>@...%r[space(10)]-Essentially seperate your aliases in CALIAS with a '@' so that%r[space(10)] you can have multiple aliases.%r[space(10)]-To enable this, you need to set the +CONFIG option 'RANDALIAS'%r[space(10)] IE: +CONFIG RANDALIAS=ON%r[space(10)]-To default this alias for your name, you need USE_ALIAS%r[space(10)] IE: +CONFIG USE_ALIAS=ON%r%rFor continuation of user-configurations, type: [get(%1/DEF_HELP)] +CONFIG5%r[v(lines)]
&H+CONFIG5 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +CONFIG %(5 of 5%))]%r[u(%1/center,---------------------)]%r%r&CTITLE me=<String>%r[space(10)]-This sets a standard title for the comsystem.%r&CTITLE-<Channel> me=<String>%r[space(10)]-Like alias above, this sets a title for the specified channel.%r[space(10)] To randomize the TITLE, do like above for alias.%r[space(10)] IE: &CALIAS me=<Title1>@<Title2>@<Title3>@...%r[space(10)] To enable this, you need to set the +CONFIG option 'RANDTITLE'%r[space(10)] IE: +CONFIG RANDTITLE=ON%r%r*NOTE* Specific aliases or titles per channel will override the random%r[space(7)]generating alias/title. IE: CALIAS-PUBLIC will not allow aliases on%r[space(7)]public to be randomly generated.%r%rSee Also: +COMSTATUS +COMINDEX +ALIAS +COM = +LISTCHAN%r[v(lines)]
&H+DEFAULT HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +DEFAULT)]%r[u(%1/center,--------------)]%rSyntax: +DEFAULT <Option>%r%rOptions: +DEFAULT <Channel> -- This sets your default channel name.%r%rExample: +DEFAULT Public \(This sets 'Public' to be your default channel.\)%r%r*NOTE* Unless otherwise specified, 'Public' will be your default channel.%r[space(7)]&CDEF me=<arg> -- this establishes your default format for%r[space(7)]speaking on channels.  The default for this is in the form:%r[space(12)][channel] [name(%0)]: Blah-Blah-Blah%r[space(7)]The default can be restored by clearing off your CDEF attribute if%r[space(7)]it exists by typing: &CDEF me%r%rDescription: The +DEFAULT function is used to establish your default channel %r[space(13)]in use with the '=' command and alias system. Help is available %r[space(13)]on both of the options with examples for both.%r%rSee Also: = +ALIAS +COM +CONFIG%r[v(lines)]
&H+COMSTATUS HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +COMSTATUS)]%r[u(%1/center,----------------)]%rSyntax: +COMSTATUS%r%rOptions: None%r%rExamples: +COMSTATUS \(Gives you valuable information on current configurations\)%r%rDescription: +COMSTATUS is used to see the current version, disabled functions,%r[space(13)]# of channels currently in use \(Locked and Public\) and general%r[space(13)]overall running.  You also see your current configurations%r[space(13)]that you have set.  Currently those are your channel alias,%r[space(13)]title, and default speaking format.%r%rSee Also: +CONFIG +COMINDEX THANKS CHANGES [get(%1/DEF_HELP)]%r[v(lines)]
&H+HELP HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using [get(%1/DEF_HELP)])]%r[u(%1/center,------[mid(v(lines),0,strlen(get(%1/def_help)))])]%rSyntax: [get(%1/DEF_HELP)]%[/switch%] <Option>%r%rOptions: [get(%1/DEF_HELP)] <topic> -- this displays help for the comsystem topic.%r[space(9)][get(%1/DEF_HELP)] *<partial-name>* -- searches for all matching topics.%r[space(9)][get(%1/DEF_HELP)]/SEARCH <string> -- scans all help files for matching contents.%r%rExamples: [get(%1/DEF_HELP)] +COM %(Gives help on comsystem topic '+COM'%)%r[space(10)][get(%1/DEF_HELP)] *COM* %(Returns all comsystem commands matching 'COM'%)%r[space(10)][get(%1/DEF_HELP)]/SEARCH user*config %(Returns topics containing 'user config'%)%r%rDescription: The [get(%1/DEF_HELP)] is used to display help for various functions%r[space(13)]of the comsystem.  In addition, it can also search%r[space(13)]for matching command topics, or search all the%r[space(13)]help entries in the comsystem help for the matching search string.%r%rSee Also: INDEX COM CHANNEL%r[v(lines)]  
&H+LISTPUB HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +LISTPUB)]%r[u(%1/center,--------------)]%rSyntax: +LISTPUB %[#%]%r%rOptions: +LISTPUB %(This lists the first page of public channels%)%r[space(9)]+LISTPUB 1 %(This does the same as above%)%r[space(9)]+LISTPUB 2% (This lists the second page%)%r%rExample: +LISTPUB \(Lists all public channels available for current joining\)%r%r*NOTE* These just are current channels and doesn't mean you can't make your own%r[space(7)]unless this option has been disabled. \(See '+COMSTATUS' for settings.\)%r%rDescription: The +LISTPUB is used to list out all currently defined public %r[space(13)]channels. It will also display the number of users currently on%r[space(13)]incase a desire is felt for joining heavilly populated channels.%r[space(13)]There is currently a paging system built into this option%r[space(13)]in hopes that function overflow no longer occurs.%r[switch(u(%1/wizard,%0),1,[space(13)]Wizards also are able to see non-valid users.%r)]%rSee Also: +COMSTATUS +LISTCHAN +COM +CONFIG +CHAN +CREATE +SETPAGE%r[v(lines)]
&H+QUIET HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +QUIET)]%r[u(%1/center,------------)]%rSyntax: +QUIET%[/LIST%] <Option>%r%rOptions: +QUIET/LIST -- displays all quieted channels.%r[space(9)]+QUIET <Channel> -- this sets/unsets quiet mode on the defined locked%r[space(9)]channel.%r%rExample: +QUIET Admin \(This stops all display and output from channel 'Admin'\)%r[space(9)]+QUIET Admin \(This allows display to once again be seen on 'Admin' %r[space(9)]\(if quieted before\)\)%r%r*NOTE* You will be unable to see what you type on a QUIETED channel, therefore, %r[space(7)]you will be notified of what channel you speak on you are quiet on.%r%rDescription: The +QUIET function is used to supress output on a locked channel %r[space(13)]without the need to leave the channel \(Handy for channels without%r[space(13)]function locks\). As it is a toggle, it will automatically add or%r[space(13)]remove your QUIET status depending if you were set QUIET on that%r[space(13)]given channel before.%r%rSee Also: +CREATE +OWNER +USER +COM = +CONFIG +ADDLOCK +CHANJOIN%r[v(lines)]
&H+WIPE HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +WIPE)]%r[u(%1/center,-----------)]%rSyntax: +WIPE <Option>%r%rOptions: +WIPE <Channel> -- used to remove non-players from channel you own.[switch(u(%1/wizard,%0),1,%r[space(9)]\(The above is available for all channels by you Mr. Wizard... duh-huh\))]%r%rExamples: +WIPE Coding \(This removes all non-players from the channel 'Coding'\)%r%rDescription: +WIPE is used for the purpose of removing non-players from the%r[space(13)]named channel. How do non-players get on the channel you ask? Well, %r[space(13)]usually by the destruction of the character \(The dreaded @nuke\). %r[space(13)]Testing has been done to eliminate all other chances of non-players %r[space(13)]showing up on channels, but you can only do so much with MUSH code. %r[space(13)]Gimmie C++ anytime.%r%rSee Also: +CREATE +USER +OWNER +ADDLOCK +CHANJOIN +LISTCHAN%r[v(lines)]
&H+WOWNER HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WOWNER)]%r[u(%1/center,----------------------------)]%rSyntax: +WOWNER<Option> <Channel> <Options>%r%rOptions: +WOWNER Channel +User1 ... UserX -- adds one or more owners.%r[space(9)]+WOWNER/QUIET Channel +User1 ... UserX -- adds owners quietly.%r[space(9)]+WOWNER Channel -User1 ... UserX -- removes one or more owners.%r[space(9)]+WOWNER/QUIET Channel -User1 ... UserX -- removes owners quietly.%r%rExamples: +WOWNER Admin +Biff \(Adds owner 'Biff' to 'Admin' for all to see.\)%r[space(10)]+WOWNER/QUIET Admin +Bob \(Adds 'Bob' to channel 'Admin' quietly\)%r[space(10)]+WOWNER Admin -Bob \(Removes 'Bob' from 'Admin' for all to see\)%r[space(10)]+WOWNER/QUIET Admin -Amberyl \(Removes 'Amberyl' quietly from 'Admin'\)%r%rDescription: The +WOWNER command is used to add and/or remove owners with or%r[space(13)]without notification to the members currently on that channel. %r[space(13)]Only wizards can do this command and they do not need to be %r[space(13)]owners of the channel to do so. To see who exists on a given %r[space(13)]channel, use '+WLIST'.%r%rSee Also: +WLIST +WUSER +CHOWN +WUNLOCK +LISTCHAN +WCHANJOIN%r[v(lines)]
&H+WUSER HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WUSER)]%r[u(%1/center,---------------------------)]%rSyntax: +WUSER<Option> <Channel> <Options>%r%rOptions: +WUSER Channel +User1 User2 ... UserX -- add one or more users.%r[space(9)]+WUSER Channel -User1 User2 ... UserX -- remove one or more users.%r[space(9)]+WUSER/QUIET Channel +User1 ... UserX -- adds users w/o notification.%r[space(9)]+WUSER/QUIET Channel -User1 ... UserX -- removes w/o notification.%r%rExamples: +WUSER Admin +Fred Bob \(Adds 'Fred' and 'Bob' to Channel 'Admin' and %r[space(10)]notifies all users on 'Admin' of the adding\)%r[space(10)]+WUSER/QUIET Admin +Ed \(Adds 'Ed' to 'Admin' w/o notification\)%r[space(10)]+WUSER Admin -Fred \(Removes 'Fred' from channel 'Admin' notifying %r[space(10)]all on channel 'Admin'\)%r[space(10)]+WUSER/QUIET Admin -Amberyl \(Removes 'Amberyl' from 'Admin' w/o%r[space(10)]notification.\)%r%rTo see enhanced descriptions of the +WUSER command, type: [get(%1/DEF_HELP)] +WUSER2%r[v(lines)]
&H\= HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using =: The COM/ALIAS Quick-Macros)]%r[u(%1/center,-----------------------------------)]%rSyntax: =<Options>%r%rOptions: =<Message> -- This displays the message on the default channel.%r[space(20)]\(To establish a default channel, look at +DEFAULT\)%r[space(9)]=<Alias> <Message> -- This displays the message on the specified alias%r[space(20)]\(To establish aliases, look at +ALIAS\)%r%r*NOTE* The '=' will take all the arguments that +COM does for messages%r[space(10)]IE: ~ ' : ; " ^ ! etc... etc...%r[space(10)]Example: =:waves \(Displays on your default channel '\[Default-Channel\] %r[space(20)][name(%0)] waves'\)%r%rExamples: =p Hiya! \(If 'p' was the alias for 'public', the output would be:%r[space(21)]'\[Public\] [name(%0)]: Hiya!'\)%r%rDescription: The '=' is a quick macros for '+COM'. It is also used in junction%r[space(13)]with the alias system \([get(%1/DEF_HELP)] +ALIAS\). This gives a user a better %r[space(13)]control of using the channel system and I hope a more relaxed %r[space(13)]feeling for it as well.%r%rSee Also: +COM +CHAN +ALIAS +QUIET +LISTCHAN +CHANJOIN +CREATE%r[v(lines)]
&H+SETPAGE HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +SETPAGE)]%r[u(%1/center,--------------)]%rSyntax: +SETPAGE <value>%r%rOptions: None%r%rExamples: +SETPAGE 20 %(This changes your lines per page to 20%)%r%rDescription: The +SETPAGE is used to set the number of lines per page you%r[space(13)]recieve when doing various commands. This currently%r[space(13)]is only meaningful for +listpub[switch(u(%1/wizard,%0),1, %band +listpriv)] but hopefully%r[space(13)]later down the road will be used for more and more functions when%r[space(13)]there is a requirement to do so.%r%rSee Also: +LISTPUB +LISTPRIV +CONFIG +COMSTATUS%r[v(lines)]
&H+CODING HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +CODING)]%r[u(%1/center,-------------)]%rSyntax: +CODING%r%rOptions: None%r%rExamples: +CODING %(Toggles output from the comsystem on and off%)%r%rDescription: +CODING is a toggle that is used to turn off *ALL* output%r[space(13)]from the comsystem at any given time. This is used%r[space(13)]primarilly for those budding coders out there who don't like%r[space(13)]all the spam that the com system gives and does%r[space(13)]not wish to turn off every single channel they currently are on.%r%rSee Also: +QUIET +LISTCHAN%r[v(lines)]
&H+WINSTALL HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +WINSTALL)]%r[u(%1/center,---------------)]%rSyntax: +WINSTALL <Dbrief# of Old ComSystem>%r%rOptions: None%r%rExamples: +WINSTALL #211 %(Upgrades old ComSystem #211%)%r%rDescription: The +WINSTALL can *ONLY* be used by the owner of the com system.%r[space(13)]In addition, you *MUST* specify a valid comsystem (other than%r[space(13)]the current one) as the comsystem to upgrade. Once successful,%r[space(13)]this option will be deactivated.%r%r*NOTE* If you are not going to use this command, set WINSTALL on%r[space(8)]the ComSystem NO_COMMAND!!!%r%rSee Also: +COMINDEX%r[v(lines)]
&H+WDEFHELP HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +WDEFHELP)]%r[u(%1/center,---------------)]%rSyntax: +WDEFHELP%[%[/LIST%] %[<string>%]%]%r%rOptions: +WDEFHELP -- Shows current command for ComSystem help.%r[space(9)]+WDEFHELP/LIST -- same as above%r[space(9)]+WDEFHELP <string> -- defines new command for help.%r%rExamples: +WDEFHELP/LIST %(Displays current help command%)%r[space(10)]+WDEFHELP +CHELP %(Redefines help to +chelp%)%r%rDescription: The +WDEFHELP command is used to display the%r[space(13)]current command used to obtain help for the comsystem, or%r[space(13)]to re-define the command used to obtain help for the%r[space(13)]comsystem. You can not use a pre-existing command.%r%rSee Also: +COMINDEX%r[v(lines)]
&HVER1 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rVersion 1.0:%r[space(5)]-Added ability to join/leave public channels.%r[space(5)]-Added ability to see who was on a given channel.%r[space(5)]-Added ability to pose, talk, or 'say' on channels.%r%rVersion 1.5:%r[space(5)]-Moved channels to seperate database for ease of listing.%r%r[v(lines)]
&HVER2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rVersion 2.0:%r[space(5)]-Added locking capabilities to comsystem.%r[space(5)]-Added ability to spoof on channels.%r%rVersion 2.5:%r[space(5)]-Fixed bug with locking channel.%r%r[v(lines)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Help Checkpoint #4 <H-4>},{@pemit me=[space(5)]: Help Checkpoint #4 <H-4>}
&HVER3 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rVersion 3.0:%r[space(5)]-Added multiple owners ability to locked channels.%r[space(5)]-Added adding/removing of owners and users of locked channels.%r[space(5)]-Added quieting locked channels.%r[space(5)]-Added ability of '=' for quickspeaking.%r%rVersion 3.5:%r[space(5)]-Fixed bug with locking to owner.%r[space(5)]-Added ability to add/remove multiple owners/users.%r[space(5)]-Added ability for users to remove locked channels.%r%r[v(lines)]
&HVER4 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rVersion 4.0:%r[space(5)]-Added ability to see users on channels.%r[space(5)]-Added functionality lock for locked channels.%r[space(5)]-Added ability for owners/users to leave/join locked channels.%r[space(5)]-Added abilities for wizards for high-end control of com system maintanence.%r[space(5)]-Added ability to show comstatus/channels in use.%r%rVersion 4.5:%r[space(5)]-Added titles, aliases, and other speak options.%r[space(5)]-Added alias system to com system.%r[space(5)]-Fixed minor bugs in wizard commands and locking mechanism.%r%r[v(lines)]
&HVER5 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rVersion 5.0:%r[space(5)]-Recoded entire comsystem for speed and effecency.%r[space(5)]-Revamped comsystem help for easier understanding.%r[space(5)]-Added private/omit options to comsystem.%r[space(5)]-Added better error control to comsystem.%r[space(5)]-Added ability to see channels you can join.%r[space(5)]-Added better wizard control.%r[space(5)]-Added better channel-locking protocol.%r[space(5)]-Changed format of command structure for easer use.%r%rVersion 5.1:%r[space(5)]-Fixed major problem with error control for channels.%r[space(5)]-Reformatted help to fit the screen better.%r[space(5)]-Fixed some major spelling errors.%r%rVersion 5.2:%r[space(5)]-Added ability to wipe channels of nonusers.%r[space(5)]-Added ability to establish private configurations per player.%r%rType '[get(%1/DEF_HELP)] VER5-2' to continue.%r[v(lines)]
&HVER5-2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rVersion 5.3:%r[space(5)]-Recoded help to give better examples and detail.%r%rVersion 5.4 to 5.5:%r[space(5)]-Revised wizard commands for better quality control.%r%rVersion 5.6:%r[space(5)]-Added wizard control for multiple channel/player control.%r%rVersion 5.7:%r[space(5)]-Added defaulting '=' command.%r[space(5)]-Fixed brief starter kit to help users understand comsystem.%r%r[v(lines)]
&HVER6 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rVersion 6.0:%r[space(5)]-Added multiple configurations for addlock.%r[space(5)]-Formatted output for listing channels.%r[space(5)]-Multiple configurations for quiet, listchan, +listpub, +config added.%r[space(5)]-Added channel validation system for channel control.%r[space(5)]-Added ability to move or copy channels.%r[space(5)]-Added coding option for mass nullification of output.%r[space(5)]-Made help more understandable.%r[space(5)]-Added auto-help definer.%r[space(5)]-Added auto-installation for ease of upgrading.%r[space(5)]-setq()less code is no longer supported.%r[space(5)]+WINSTSETQ renamed to +WINSTSQ and disabled.%r[space(5)]+WUNINSTSETQ renamed to +WUNINSTSQ and disabled.%r%rType '[get(%1/DEF_HELP)] VER6-2' to continue.%r[v(lines)]
&HVER6-2 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rVersion 6.11:%r[space(5)]-Added configurability for +COM arguments.%r[space(5)]-Added configurability for +CONFIG options.%r[space(5)]-Added ability to specify channels where ALIASES show up.%r%rVersion 6.12-6.13:%r[space(5)]-Fixed bug in +wmaxnum.%r[space(5)]-Added randomized aliases/titles.%r[space(5)]-Added channel-specific aliases and titles.%rVersion 6.14:%r[space(5)]-+LISTCHAN marks channels that shows aliases with a 'WHO'.%r[space(5)]-Added option to toggle error display on non-matching comhelp.%rVersion 6.15:%r[space(5)]-Comsystem help modified for search engines.%r[space(5)]-Added new 'Directed' speaking to +comsystem.%r[space(5)]-Added more wizard functionality.%r%r[v(lines)]
&HVER6-3 HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rVersion 6.16:%r[space(5)]-Fixed minor bugs in syntax.%r%rVersion 6.20:%r[space(5)]-Added ability to attach descriptions to channels.%r[space(5)]-Added ability to view descriptions on channels you can join.%r[space(5)]-Added functionality for attribute matching in +addlock%r[space(5)]-Added global channel aliasing/renaming%r[space(5)]-Added default alias usage%r%rVersion 6.21-6.23:%r[space(5)]-Added ability for objects to listen/talk on comsystem.%r[space(5)]-Gave wizards more control.%r[space(5)]-Gave way to describe channels.%r[space(5)]-Increased how auto-installer works.%r[space(5)]-Added way to define +com special characters on-line.%r[v(lines)]
&HFUTURE HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rFuture Upgrade Possibilities and Additions:%r[space(5)]-Installation of /switch command set alternative.%r[space(5)]-Ability to configure for multiple wizards.%r[space(5)]-Ability to reconfigure commands from wizard access to mortal.%r[space(5)]-Ability to reconfigure mortal commands to wizard.%r[space(5)]-Ability to lock output (ie: gag) from specified players.%r[space(5)]-Ability to update on-line with given pre-defined modules.%r[space(5)]-Adding ANSI functionality via PATCHES%rIf you have any ideas you would like to see added to this com system,%rplease notify the author at the following email:%r[space(10)]phoenix@madant.med.wayne.edu%r%rInclude what to add, why you would like it added, and what use it'll have.%r%r[v(lines)]
&HTHANK_TREY HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rTrey and I met several years ago around 1993 if memory serves. Through%rmost of the time we've known each other, we naturally have had good times%rand bad times. However, Trey is one of the better coders I know of and%rhas an excellent eye for security. My thanks go to you my friend for%rhelping with ideas, spell checking my com system with free time, and offering%rsuggestions for new ways to write the help.%r%rTrey can currently be found on Gamehenge (a mush he runs), Mysthaven, and%rRhostshyl. I am sure he is elsewhere, but that's where I run into him.%r%r[v(lines)]
&HTHANK_BLACKTHORNE HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rBlackthorne was someone I ran into early on. I can't remember the date, but%rI believe it was early 1992. He is an excellent coder and has given me%rcountless additions and ideas that you see available in the comsystem.%rYes blackthorne, I'll get to the /switch version one of these days. :)%r%rBlackthorne can be found on an endless number of mushes. I run%rinto him the most on Mysthaven.%r%r[v(lines)]
&HTHANK_SETH HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rSeth and I go way back. He is probably one of my best friends, and%ralso probably one of the weirdest. He also happens to be one of the%rbest coders I have had the pleasure to run into. Seth, to you goes my%rthanks for sticking by me through rough times, giving me countless %rsuggestions on new options or altering old options, and actually%rhaving the time to sit down and bugcheck both the help and comsystem%rline by line. Other than that, you owe me a grasshopper :)%r%rSeth can be found occasionally on Rhostshyl and on Mysthaven. He is also on%rseveral other mushes which I don't frequent as much these days.%r%r[v(lines)]
&HTHANK_DARKSOUL HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rDarksoul, my old friend, I owe you a lot. Darksoul has gone by more names%rthan I remember, but I first ran into him on Rhostshyl around 1991?%rHe's helped give ideas for better user interfaces, and%rhas been an excellent beta tester for my com system.%r%rDarksoul can currently be found on Fantasia, Mysthaven, and Rhostshyl%rthough I'm sure he's on others, I'm unaware of them.%r%r[v(lines)]
&HTHANK_ZEUS HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rZeus, I remember, from a few years ago around 1994ish. Zeus, I wish to thank%ryou for allowing me to test on your machine as well as helping beta test%rmy com system.%r%rZeus may be on the internet still, but I am unaware of what sites he visits.%r%r[v(lines)]
&HTHANK_RATCATCHER HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rRatty, you ol' dog. To you goes a large ammount of thanks and appreciation.%rRatcatcher is by far one of the best MUSH coders online today. We spent%rmany hours discussing the arts of coding, and though we both have different%rtechniques, sharing ideas and er, criticism (*grin*) has been fun to say%rthe least! My only hope is that I have been able to help him as he has me.%r%rRatcatcher can be seen on Mysthaven and I'm sure a slew of other systems.%r%r[v(lines)]
&HTHANK_THESEUS HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rTheseus, a friend from 1993(?), has been probably the largest help with the way%rthe comsystem's help presently looks. To you I give thanks for helping with%rthe new help display format so that users don't get so lost.%r%rAs far as I know, Theseus no longer mushes.%r%r[v(lines)]
&HTHANK_MORDRED HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rMordred, you ol' hacker! Mordred has been a close friend since early 1992/1993.%rHis ability with security holes is astounding and my greatest thanks to you%ris in your inability to be able to hack my com system :). Thanks for testing it%rcodewise and I hope you continue to do so in the near and far future.%r%rMordred can be found on Rhostshyl, and I'm sure others as well.%r%r[v(lines)]
&HTHANK_RATH HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rMy thanks go to Rath for help supporting sites in which to test the comsystem%ras well as helping debug the commands and interface. I'm hoping in time we can%rsplit a beer and talk old times.%r%rRath can be found occasionally on Rhostshyl and various other systems.%r%r[v(lines)]
&HTHANK_ENKIL HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rEnkil was most beneficial for setting up a PENN based system for development %rtesting. Due to the availability of his time, the time devoted for production %rmodels were greatly reduced.%r%rUnfortunately, I am unsure if Enkil still MUSHes.%r%r[v(lines)]
&HTHANK_DAEMON HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rDaemon, my friend, special thanks for allowing your machine for development %rwork to the 5.x version of the comsystem. Most of the grunt work was done%ron his machine. Though I am out of contact with him, it would be enjoyable to%rwork with him again.%r%rDaemon can be found occasionally on Gamehenge, Discordia, and various others.%r%r[v(lines)]
&HTHANK_ZARA HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rZara, my greatest thanks go to you. Not only have you put up with my %rstubbornness and illogic, but have given me countless ideas and examples to%rbase the newest commands of the comsystem on. Zara has reciently made a %rmultidescer for master rooms that should be compatable with all known MUSH%rtypes. Not only is she an excellent coder but she's also my wife. %r(Guess that accounts for her tolerance 8b)%r%rZara can be found on Rhostshyl, Mysthaven, Gamehenge, and various others.%r%r[v(lines)]
&HTHANK_SERPENTIS HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r%rSerpentis was someone who I have only known reciently but who has%rgiven me endless (and I mean endless *grin*) supply of new%rideas.  Thanks for the idea with seperate titles/aliases for%reach channel, and helping with new ideas for functionality.%r%rSerpentis can be found on SailormoonMUSH, Rhostshyl and several other systems%r[v(lines)]
&HCOMPATABILITY HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,SubMenu - Compatability of the ComSystem)]%r[u(%1/center,----------------------------------------)]%r%r[space(5)]PENN - The com system is fully compatabile with PENN code.%r[space(5)]TINY - The com system is fully compatabile with TINY code.%r[space(5)]MUX%b - The com system is fully compatable with MUX code.%r%rAny variations of the above, as long as the general comparability remains%rsimiliar, will result in the com system working fully.%r%rSome small tweeks (like flags) will be required, but should take care of it%rautomatically without user intervention. If you find a MUSh based system%runable to run this comsystem, refer it to the author and he will%rdo whatever he can to see that it is compatable with the next revision.%r%rThe Author is Ashen-Shugar and can be reached at:%r[space(5)]phoenix@madant.med.wayne.edu%r[v(lines)]
&H+VALID HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +VALID)]%r[u(%1/center,------------)]%rSyntax: +VALID%r%rOptions: None%r%rExamples: +VALID %(This lists all valid channel names you can make%)%r%rDescription: The +VALID command is used to display%r[space(13)]all channel names you can presently make %(both private%r[space(13)]and public%). If there is no limitation%r[space(13)]in place, you can make any named channel. To create locked channels%r[space(13)]use the +CREATE option. To create public%r[space(13)]channels, use the +CHAN option.%r%rSee also: +CHAN +CREATE +COMSTATUS%r[v(lines)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: Help Checkpoint #5 <H-5>},{@pemit me=[space(5)]: Help Checkpoint #5 <H-5>}
&H+WVALID HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WVALID)]%r[u(%1/center,---------------------------)]%rSyntax: +WVALID%[/switch%] %[list of channel names%]%r%rOptions: +WVALID/LIST -- Lists all valid channels%r[space(9)]+WVALID/ADD <list> -- adds the list to valid channels.%r[space(9)]+WVALID/DEL <list> -- removes the list from valid channels.%r%rExamples: +WVALID/ADD Fred Foo %(Channel creation limited to 'Fred' and 'Foo'%)%r[space(10)]+WVALID/DEL Foo %(Foo removed as a valid channelname%)%r%rDescription: The +WVALID option is used to limit the total number of channels%r[space(13)]that can be created using the com system. If, for%r[space(13)]example you wanted to just have 'Public' and 'Chat' as channels%r[space(13)]you can now do this with the +WVALID option. Wizards override%r[space(13)]this feature and can thusly, make any channel name as%r[space(13)]before. If none are specified, any channel name can be made.%r%rSee Also: +WINVALID +COMSTATUS +CREATE +CHAN%r[v(lines)]
&H+WINVALID HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center, Using Wizard-Command +WINVALID)]%r[u(%1/center,------------------------------)]%rSyntax: +WINVALID%[/switch%] %[list of strings%]%r%rOptions: +WINVALID/LIST -- Lists all invalid strings.%r[space(9)]+WINVALID/ADD <string> -- adds the string to invalid name matching.%r[space(9)]+WINVALID/DEL <string> -- removes string from invalid name matching.%r%rExamples: +WINVALID/ADD *zot* boo %(Matches occurances of *zot* and boo%)%r[space(10)]+WINVALID/DEL boo %(Removes matching to 'boo'%)%r%rDescription: The +WINVALID function is used to remove any matching%r[space(13)]string, wildcarded or not, to any channel being made. For%r[space(13)]example if you did not want to have any channel containing%r[space(13)]the phrase 'shit', you can do +WINVALID/ADD *SHIT*. This does%r[space(13)]not limital ready existing channel, and wizards can override.%r%rSee Also: +WVALID +CREATE +CHAN +COMSTATUS%r[v(lines)]
&H+CPCHAN HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +CPCHAN)]%r[u(%1/center,-------------)]%rSyntax: +CPCHAN <old channel>=<new channel>%r%rOptions: None%r%rExamples: +CPCHAN Wizards=Admins %(This clones Wizards to Admins%)%r%rDescription: The +CPCHAN function is used to clone a channel that you have%r[space(13)]control over to a new channel. This will in effect clone the%r[space(13)]channel, all locks, attributes, and all the users/owners.%r[space(13)]You must control the original channel to copy it. This includes%r[space(13)]owners of locked channels and wizards.%r%rSee Also: +MVCHAN +CHAN +CREATE +DESTROY +WIPE%r[v(lines)]
&H+MVCHAN HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +MVCHAN)]%r[u(%1/center,-------------)]%rSyntax: +MVCHAN <old channel>=<new channel>%r%rOptions: None%r%rExamples: +MVCHAN Wizards=Admins %(This moves Wizards to Admins%)%r%rDescription: The +MVCHAN function is used to move a channel that you have%r[space(13)]control over to a new channel. This will in effect rename the%r[space(13)]channel, all locks, attributes, and all the users/owners.%r[space(13)]You must control the original channel to move it. This includes%r[space(13)]owners of locked channels and wizards.%r%rSee Also: +CPCHAN +CHAN +CREATE +DESTROY +WIPE%r[v(lines)]
&H+WMAXCHAN HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WMAXCHAN)]%r[u(%1/center,------------------------------)]%rSyntax: +WMAXCHAN%[<Value>%]%r%rOptions: +WMAXCHAN -- clears the value.%r[space(9)]+WMAXCHAN 0 -- clears the value%r[space(9)]+WMAXCHAN <value> -- sets value to 'value'.%r%rExamples: +WMAXCHAN 100 %(This sets total allowed channels to 100%)%r[space(10)]+WMAXCHAN %(This removes (sets to infinity) max allowed channels%)%r%rDescription: The +WMAXCHAN function is used to allow a wizard a way to%r[space(13)]maintain how many total channels their MUSH is to use. The value%r[space(13)]is specified between 0 and 1000 (o being infinite). You can see%r[space(13)]the value by typing either '+comstatus' or '+valid'.%r%rSee Also: +WINVALID +WVALID +VALID +COMSTATUS%r[v(lines)]
&H+WOPTION HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WOPTION)]%r[u(%1/center,-----------------------------)]%rSyntax: +WOPTION <Argument><+Com Argument>%r%rOptions: +WOPTION +<Option> -- Disables the +Com Argument.%r[space(9)]+WOPTION -<Option> -- Re-enables the +Com Argument.%r%rExamples: +WOPTION +~ -- Disables spoofing on channels.%r[space(10)]+WOPTION -~ -- Reenables spoofing on channels.%r%rDescription: The +WOPTION option is used to enable or disable options listed%r[space(13)]in +HELP +COM. Any special character (like ~) can be toggled. As%r[space(13)]usual, anyone defined as a wizard overrides this and can use them.%r[space(13)]Currently, the options are: [get(%1/COM-L)]%r%rSee Also: +WCONFIG +WALIASCHAN +WSHOWCONFIG +COMSTATUS%r[v(lines)]
&H+WCONFIG HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WCONFIG)]%r[u(%1/center,-----------------------------)]%rSyntax: +WCONFIG <Argument><Configuration Parameter>%r%rOptions: +WCONFIG +<Option> -- Disables the Config parameter.%r[space(9)]+WCONFIG -<Option> -- Re-enables the Config parameter.%r%rExamples: +WCONFIG +NOSPOOF -- Disables NOSPOOF from being used.%r[space(10)]+WCONFIG -NOSPOOF -- Reenables NOSPOOF to be used.%r%rDescription: The +WCONFIG option is used to enable or disable options listed %r[space(13)]in +CONFIG. Any person the comsystem recognizes as a wizard can%r[space(13)]use the config parameter so in effect, this does not%r[space(13)]effect wizards.%r%rSee Also: +WOPTION +WALIASCHAN +WSHOWCONFIG +COMSTATUS%r[v(lines)]
&H+WALIASCHAN HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WALIASCHAN)]%r[u(%1/center,--------------------------------)]%rSyntax: +WALIASCHAN <Argument><List of Channel Names>%r%rOptions: +WALIASCHAN +<Channel(s)>%r[space(20)]-- Adds channel(s) to list that shows aliases with WHO%r[space(9)]+WALIASCHAN -<Channel(s)>%r[space(20)]-- Removes channel(s) from alias WHO listing.%r%rExamples: +WALIASCHAN +RP JUDGE %(Adds RP and JUDGE%)%r[space(10)]+WALIASCHAN -RP JUDGE %(Removes RP and JUDGE%)%r%rDescription: +WALIASCHAN is used to add and remove channels from a list%r[space(13)]that tells the com system what channels a player will receive%r[space(13)]aliases in the WHO instead of their real name. To see the true%r[space(13)]name, you must toggle on the NOALIAS +config parameter.%r%rSee Also: +CONFIG +WCONFIG +WOPTION +WSHOWCONFIG%r[v(lines)]
&H+WSHOWCONFIG HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WSHOWCONFIG)]%r[u(%1/center,----------------------------------)]%rSyntax: +WSHOWCONFIG <arg>%r%rOptions: +WSHOWCONFIG%r[space(9)]+WSHOWCONFIG <name>%r%rExamples: +WSHOWCONFIG %(Shows current toggled configurations%)%r[space(10)]+WSHOWCONFIG Fred %(Shows Fred's personal configurations%)%r%rDescription: The +WSHOWCONFIG option is used to display wizard configured%r[space(13)]options and user-defined configurations. These include toggled%r[space(13)]options for +config or speaking arguments. Any disabled%r[space(13)]options can still be used by wizards.%r%rSee Also: +WOPTION +WCONFIG +WALIASCHAN +COMSTATUS%r[v(lines)]
&H+WPATCH HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WPATCH)]%r[u(%1/center,----------------------------)]%rSyntax: +WPATCH <dbrief#>%r%rOptions: +WPATCH <Patch Object Dbrief#>%r%rExamples: +WPATCH #1000 %(Installs patch object #1000%)%r%rDescription: The +WPATCH command is used to patch the comsystem with%r[space(13)]authentic comsystem patches. This is an alternative to having%r[space(13)]to upgrade the entire comsystem for only small alterations.%r%rSee Also: +WINSTALL%r[v(lines)]
&H+WSETUP HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WSETUP)]%r[u(%1/center,---------------------------)]%rSyntax: +WSETUP <Config Parameter>=<Arg>%r%rOptions: +WSETUP <Config>=%[ON|YES%] -- Enables option.%r[space(9)]+WSETUP <Config>=%[OFF|NO%] -- Disables option.%r%rExamples: +WSETUP PASSIVE_LOCK=ON %(Enables PASSIVE locks%)%r[space(10)]+WSETUP PASSIVE_LOCK=OFF %(Disables PASSIVE locks%)%r%rDescription: The +WSETUP option is used to enable or disable%r[space(13)]commands globally on the comsystem.  Currently,%r[space(13)]there are only [words(get(%1/WSET-L))] option(s). PASSIVE_LOCK is%r[space(13)]currently used to relax a bit on locking channels%r[space(13)]in that with PASSIVE_LOCK enabled, you can use +chan%r[space(13)]to join and unjoin already existing public channels.%rAvailable options: [get(%1/WSET-L)]%r%rSee Also: +WOPTION +CONFIG +COMSTATUS +WCONFIG%r[v(lines)]
&HHOWTO HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Questions and Answers)]%r[u(%1/center,---------------------)]%rQ: How do I set it so only wizards can make channels?%rA: +winvalid/add * %(Disables channels matching '*'%)%r%rQ: When I do the above, no one can join existing public channels?%rA: +WSETUP PASSIVE_LOCK=ON %(Allows less restrictions for public channels%)%r%rQ: How do I purge channels of nuked players?%rA: +WIPE them.%r%rQ: How do I disable certain options from players?  Like spoofing?%rA: +WCONFIG and +WOPTION can do this. Check the help on them.%r%rQ: How do I add or remove owners/users from channels I'm not on?%rA: +WOWNER and +WUSER.  Check the help on these.%r%rQ: What all can this comsystem do?%rA: That's a big one.  Go through the +HELP for your answer.%r%rQ: What if I have +HELP and don't want the comsystem to use +HELP?%rA: Use +WDEFHELP to redefine the help.%r%rQ: When I use +WINSTALL or +WPATCH, will it overright existing stuff?%rA: No.  It keeps all current channels/configurations.%r%rQ: This doesn't quite do what I want.  What can I do?%rA: EMail the author and he'll look into the possibility of modifying it.%r[space(3)]phoenix@madant.med.wayne.edu%r[v(lines)]
&HNEW HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,What's New?)]%r[u(%1/center,-----------)]%r[u(%1/center,Public Options That Are New)]%r[u(%1/center,---------------------------)]%r[u(%1/H_PUBLIC)][switch(u(%1/wizard,%0),1,%r%r[u(%1/center,Wizard Options That Are New)]%r[u(%1/center,---------------------------)]%r[u(%1/H_WIZARD)])]%r%rFor help on topics, type: [get(%1/DEF_HELP)] <option> %(Option is in quotes%)%r%rSee Also: [get(%1/DEF_HELP)] CHANNEL%r[v(lines)]
&H_PUBLIC HelpDB=
&H_WIZARD HelpDB=
&H_PUBLIC FunctionDB=- Fixed minor bugs with &CDEF%r- Fixed bug to allow objects to speak on channels.%r- Allowed descriptions of channels.%r- Show examples of comsystem commands with +LISTREF
&H_WIZARD FunctionDB=- Allowed wizards to define how wizards go dark%r- Increased optimization of comsystem%r- Allowed wizards to define how com options are defined.
&H+WSETUP HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WSETUP)]%r[u(%1/center,---------------------------)]%rSyntax: +WSETUP <Config Parameter>=<Arg>%r%rOptions: +WSETUP <Config>=%[ON|YES%] -- Enables option.%r[space(9)]+WSETUP <Config>=%[OFF|NO%] -- Disables option.%r%rExamples: +WSETUP PASSIVE_LOCK=ON %(Enables PASSIVE locks%)%r[space(10)]+WSETUP PASSIVE_LOCK=OFF %(Disables PASSIVE locks%)%r[space(10)]+WSETUP DEFINE_ERRHELP=ON %(Enables error handling for help%)%r[space(10)]+WSETUP DEFINE_ERRHELP=OFF %(Disables error handling%)%r%rDescription: The +WSETUP option is used to enable or disable%r[space(13)]commands globally on the comsystem.  Currently,%r[space(13)]there are only [words(get(%1/WSET-L))] option(s). PASSIVE_LOCK is%r[space(13)]currently used to relax a bit on locking channels%r[space(13)]in that with PASSIVE_LOCK enabled, you can use +chan%r[space(13)]to join and unjoin already existing public channels.%r%rAvailable options: [get(%1/WSET-L)]%r%rSee Also: +WOPTION +CONFIG +COMSTATUS +WCONFIG%r[v(lines)]
&H+LISTREF HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +LISTREF)]%r[u(%1/center,--------------)]%rSyntax: +LISTREF%[/switch%] %[#%]%r%rOptions: +LISTREF %(This lists first page of references%)%r[space(9)]+LISTREF # %(This lists '#' page of references%)%r[space(9)]+LISTREF/EXAMPLES %(This shows examples for all commands%)%r%rExample: +LISTREF 3 %(Lists the third page of references%)%r[space(10)]+LISTREF %(This lists first page of references)%r[space(10)]+LISTREF/EXAMPLES %(This lists first page of examples%)%r%rDescription: The +LISTREF is used to list a short synopsis of each command%r[space(13)]that you have access to.  How many per line is dependant on the%r[space(13)]value you inputed with the +SETPAGE function.%r%rSee Also: +COMINDEX INDEX USING COM%r[v(lines)]
&H+LISTALL HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +LISTALL)]%r[u(%1/center,--------------)]%rSyntax: +LISTALL%[/switch%] %[#%]%r%rOptions: +LISTALL/ALIAS %(This lists the global channel aliases%)%r[space(9)]+LISTALL %(This lists the first page of accessable channels%)%r[space(9)]+LISTALL 1 %(This does the same as above%)%r[space(9)]+LISTALL 2 %(This lists the second page%)%r%rExamples: +LISTALL %(Lists all channels you can access%)%r[space(10)]+LISTALL/ALIAS %(Lists all global channel aliases%)%r%rDescription: The +LISTALL is used to list out all channels%r[space(13)]that you can access and displays a short description of that%r[space(13)]given channel. Unlike +listpub, it also will display locked %r[space(13)]channels that you either control or can join. There is a paging%r[space(13)]system built into this option for ease of viewing. For help on%r[space(13)]this, review +SETPAGE.%r%rSee Also: +COMSTATUS +LISTCHAN +LISTPUB +SETPAGE +COM +CHAN +CREATE%r[v(lines)]
&H+COMDESC HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +COMDESC)]%r[u(%1/center,--------------)]%rSyntax: +COMDESC%[%[/switch%] %[arguments%]%]%r%rOptions: +COMDESC/ADD <channel>=<desc> -- Adds desc to channel.%r[space(9)]+COMDESC/DEL <channel> -- removes desc from channel.%r[space(9)]+COMDESC/EDIT <channel>=<oldtext>|<newtext> -- edits desc%r[space(9)]+COMDESC/VIEW <channel> -- views channel's description.%r[switch(u(%1/wizard,%0),1,[space(9)]+COMDESC -- lists all channels with descriptions.%r[space(9)]+COMDESC/LIST -- same as above.%r)]%rExample: +COMDESC/ADD Public=This is a desc %(Adds desc to Public%)%r[space(9)]+COMDESC/DEL Public %(Removes desc from Public%)%r[space(9)]+COMDESC/EDIT Public=is|was %(Changes 'is' to 'was'%)%r[space(9)]+COMDESC/VIEW Public %(Views description on Public%)%r[switch(u(%1/wizard,%0),1,[space(9)]+COMDESC/LIST %(Lists all channels with descs%)%r[space(9)]+COMDESC %(Same as above%)%r)]%rFor detailed descriptions on the use of +COMDESC, type '[get(%1/DEF_HELP)] +COMDESC2'%r[v(lines)]
&H+WGALIAS HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WGALIAS)]%r[u(%1/center,-----------------------------)]%rSyntax: +WGALIAS%[/switch%] <channel>=<alias>%r%rOptions: +WGALIAS/LIST -- lists all aliases for given channel(s).%r[space(9)]+WGALIAS/DEL <channel>=<alias> -- deletes matching alias%r[space(9)]+WGALIAS <channel>=<alias> -- defines the given alias for channel.%r%rExamples: +WGALIAS Emergency=911 %(Defines '911' to be 'Emergency'%)%r[space(10)]+WGALIAS/LIST %(Will display the current aliases%)%r[space(10)]+WGALIAS/DEL Emergency=911 %(Purges alias '911'%)%r%rDescription: The +WGALIAS command is used to set global alises for%r[space(13)]channels. You can have multiple aliases for a single channel.%r[space(13)]Each alias can be used as an alternave with '=' or +com to%r[space(13)]talk on the specified channel. In the above example%r[space(13)]one could say +com 911=<text> as you'd say +com Emergency=<text>.%r[space(13)]This is to allow more freedom for channel name conventions.%r%rSee also: +WRENAME +COM +CHAN +CREATE%r[v(lines)]
&H+WRENAME HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WRENAME)]%r[u(%1/center,-----------------------------)]%rSyntax: +WRENAME%[/switch%] <channel>=<typecast>%r%rOptions: +WRENAME/LIST -- Lists all re-typecasted channels.%r[space(9)]+WRENAME/DEL <channel> -- deletes typecasting from channel.%r[space(9)]+WRENAME <channel>=<typecast> -- typecast the channel.%r%rExamples: +WRENAME Rndwork=RNDWork %(Typecast to new format%)%r[space(10)]+WRENAME/DEL rndwork %(Purges typecast from Rndwork%)%r[space(10)]+WRENAME/LIST %(Lists all typecasted channels%)%r%rDescription: +WRENAME is used to typecast a channel. Typecasting is where you%r[space(13)]have the freedom to specify the capitalization and format of%r[space(13)]the channel name. So instead of being stuck with 'Public' you can%r[space(13)]now have something like 'PuBlIc' or 'pUBLIc' or whatever.%r[space(13)]This is to help with formatting of channel names.%r%rSee Also: +WGALIAS +CHAN +CREATE +COM%r[v(lines)]
&H+WDEFCOMOPT HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WDEFCOMOPT)]%r[u(%1/center,--------------------------------)]%rSyntax: +WDEFCOMOPT%[%[/switch%] <reference #>=<new character>%r%rOptions: +WDEFCOMOPT -- Shows current +COM configurations%r[space(9)]+WDEFCOMOPT/LIST -- Shows current +COM configurations%r[space(9)]+WDEFCOMOPT <Ref#>=<Character> -- Defines new character%r%rExamples: +WDEFCOMOPT 6=? %(Defines ALIAS %(Ref #6%) to be '?'%)%r[space(10)]+WDEFCOMOPT %(Shows configurations with reference #'s%)%r%rDescription: The +WDEFCOMOPT command allows you to redefine what special%r[space(13)]characters are recognized by the +COM command. For example, if%r[space(13)]you do not want < and > to reverse text, you can use%r[space(13)]this command to redefine it to another character. For a list of%r[space(13)]reference numbers, which you *NEED* for character changing, just%r[space(13)]type: '+WDEFCOMOPT'%r[space(13)]You can also see disabled options this way%r%rSee also: +WOPTION, +COM, =%r[v(lines)]
&H+WSETDARK HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WSETDARK)]%r[u(%1/center,-----------------------------)]%rSyntax: +WSETDARK <string>%r%rOptions: None%r%rExamples: +WSETDARK %%%[hasflag(%%%%0,dark)%%%]%r%rDescription: The +WSETDARK command is used to define how the comsystem%r[space(13)]recognizes how wizards are DARK on the comsystem.%r%rSee Also: +SETWIZARD%r[v(lines)]
&H+NEWBIE HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +NEWBIE)]%r[u(%1/center,-------------)]%rSyntax: +NEWBIE%[/switch%]%r%rOptions: +NEWBIE -- joins you on all 'beginning' channels.%r[space(9)]+NEWBIE/QUIET -- quietly joins you to channels.%r%rExamples: +NEWBIE %(This would add you to predefined channels%)%r%rDescription: The +NEWBIE command is used to help the MUD maintainers%r[space(13)]maintain that new players automatically join the starting%r[space(13)]channels. This commands needs to be added to the master room's%r[space(13)]aconnect. The default channel is 'public'.%r%rSee Also: +UNNEWBIE [switch(u(%1/wizard,%0),1,%+WDEFNEWBIE)]%r[v(lines)]
&H+UNNEWBIE HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using +UNNEWBIE)]%r[u(%1/center,---------------)]%rSyntax: +UNNEWBIE%[/switch%]%r%rOptions: +UNNEWBIE -- removes you from all 'beginning' channels.%r[space(9)]+NEWBIE/QUIET -- quietly removes you from channels.%r%rExamples: +UNNEWBIE %(This would remove you from predefined channels%)%r%rDescription: The +NEWBIE command is used to help the MUD maintainers%r[space(13)]maintain that new players automatically leave the starting%r[space(13)]channels. This commands needs to be added to the master room's%r[space(13)]aconnect. The default channel is 'public'.%r%rSee Also: +NEWBIE [switch(u(%1/wizard,%0),1,%+WDEFNEWBIE)]%r[v(lines)]
&H+WDEFNEWBIE HelpDB=[v(lines)]%r[u(%1/comtitle)]%r[v(lines)]%r[u(%1/center,Using Wizard-Command +WDEFNEWBIE)]%r[u(%1/center,--------------------------------)]%rSyntax: +WDEFNEWBIE%[/<switch>%] %[<channel-list>%]%r%rOptions: +WDEFNEWBIE -- lists currently channels defined for newbies.%r[space(9)]+WDEFNEWBIE/LIST -- same as above.%r[space(9)]+WDEFNEWBIE/ADD <channel-list> -- adds list of channels to newbie list%r[space(9)]+WDEFNEWBIE/DEL <channel-list> -- removes list of channels from newbie list%r[space(9)]+WDEFNEWBIE/CLEAR -- purges the newbie list (wipes it clean)%r%rExamples: +WDEFNEWBIE/ADD newbie fred %(Adds 'newbie' and 'fred' to channel list%)%r[space(10)]+WDEFNEWBIE/DEL public %(Removes 'public' from channel list%)%r[space(10)]+WDEFNEWBIE/LIST %(Shows that 'newbie' and 'fred' exist%)%r%rDescription: The +WDEFNEWBIE command is used to define what channels a newbie%r[space(13)]can join with use of the +newbie command. When put on the master%r[space(13)]room's aconnect, the +newbie command and it's corresponding%r[space(13)]+unnewbie command can be used to control what channels people%r[space(13)]join/leave when the player connects or disconnects.%r%rSee Also: +NEWBIE, +UNNEWBIE%r[v(lines)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=Com: Help installation completed... Installing main command set.  Please wait...},{@pemit me=Com: Help installation completed... Installing main command set.  Please wait...}
&HELP ComSystem=$+HELP* *:@pemit %#=[u(dohelp-[match(/search,%0)],%1,%#)]
&WPURGE ComSystem=$+wpurge *:@pemit %#=[u(WPURGEM[setq(0,u(wpurgef,%#,%0))][r(0)],%0)];@dolist [u(WPURGEDO[r(0)])]=&## [v(CH-DB)]=[remove(get([v(CH-DB)]/##),[num(*%0)])]
&WERRORSET ComSystem=$+werrorset*:@pemit %#=[u(ERRORSETM[u(errorsetf,%#,s(%0))],s(%0))];&ERRORDEF [v(F-DB)]=[switch(or(eq(words(v(0)),0),match(RESET,s(%0))),1,Huh? %%b\\\(Type "help" for help.\\\),edit(s(%0),$,))]
&WCLOAK ComSystem=$+wcloak*:@pemit %#=[u(WCLOAKM[setq(0,u(wcloakf,%#,[s(v(0))]))][r(0)],%#,[s(v(0))])];&C-[s(secure(first(v(0))))] [u(WCLOAKS[r(0)])]=[u(WCLOAKDO[gt(match(get([v(O-DB)]/C-[s(v(0))]),v(#)),0)],%0,%#)]
&WUSRLOCK ComSystem=$+wusrlock *:&WUSRLIST [u(WUSRLOCK[setq(0,[u(wusrlockf,%#,[setq(1,mid(v(0),1,100))][r(1)],v(0))])][r(0)],r(1))]=[u(WUSRLOCK[match(+ -,[setq(2,mid(v(0),0,1))][r(2)])],r(1),r(2))];@pemit %#=[u(WUSRLOCKM[r(0)],r(1),r(2),v(0))];@lock/u me=last:?*[iter(v(wusrlist),&!##)]
&CHAN ComSystem=$+cha* +*:@pemit %#=[u(CHANCHKM[setq(6,gt(match(get([v(CH-DB)]/[s(first(%1))]),*L*),0))][r(6)],%0,%1,%#)];&O-[secure(first(%1))] [u(GENERAL[setq(7,and(r(6),not(match(get([v(CH-DB)]/[s(first(%1))]),%#))))][r(7)],u(JOIN[r(2)]))]=[u(JOINSETO[r(0)],%0,%#)];@dolist [u(CHANCHKDO[r(6)],%0,%1,%#,r(7))]=@pemit ##=[u(comformat,first(r(1)),%#,##)] [rest(r(1))];&[secure(first(%1))] [u(CHANCHKSB[r(6)],%0,%1,%#,r(7))]=[u(CHANCHKSA[r(6)],%0,%1,%#)]
&UNCHAN ComSystem=$+cha* -*:@pemit %#=[u(UNCHANCHKM[setq(6,gt(match(get([v(CH-DB)]/[s(first(%1))]),*L*),0))][r(6)],%0,%1,%#)];&O-[secure(first(%1))] [u(GENERAL[setq(7,and(r(6),match(get([v(CH-DB)]/[s(first(%1))]),%#)))][r(7)],u(JOIN[r(2)]))]=[u(JOINSETO[r(0)],%0,%#)];@dolist [u(UNCHANCHKDO[r(6)],%0,%1,%#,r(7))]=@pemit ##=[u(comformat,first(r(1)),%#,##)] [rest(r(1))];&[secure(first(%1))] [u(UNCHANCHKSB[r(6)],%0,%1,%#,r(7))]=[u(UNCHANCHKSA[r(6)],%0,%1,%#)]
&USER ComSystem=$+user * +*:@pemit %#=[setq(0,after(get([v(CH-DB)]/[v(0)]),L))][setq(1,%[[capstr(lcstr(v(0)))]+%] %n has added [u(wordit,[u(clfunc2,v(0),v(1),v(#),r(0))])])][switch([setq(3,u(clfunc,%0,%#,%1,r(0)))][r(3)],0?,Com: ERROR - You have no authority over [switch(match(get([v(CH-DB)]/[v(0)]),L),0,channel,locked channel)] '[capstr(lcstr(v(0)))]'.,?0,Com: ERROR - List validation shows empty name list.)];@dolist [switch(r(3),11,setinter(lwho(),setunion([setq(4,iter(v(1),num(*##)))][r(4)],get([v(CH-DB)]/[v(0)]))))]=@pemit ##=[r(1)];&[switch(r(3),11,secure(v(0)),#)] [v(CH-DB)]=[setdiff(before(get([v(CH-DB)]/[v(0)]),L),r(4))] L [setunion(r(0),setdiff(r(4),#-1))];&[switch(r(3),11,C-[v(0)],#)] [v(O-DB)]=[setdiff(get([v(O-DB)]/C-[v(0)]),r(4))]
&WUSER ComSystem=$+wuser* * +*:@pemit %#=[setq(0,after(get([v(CH-DB)]/[v(1)]),L))][setq(1,%[[capstr(lcstr(v(1)))]+%] %N has added [u(wordit,[u(clfunc2,v(1),v(2),v(#),r(0))])])][u(WUSERM[match(0010 0011 1010 0110 1110 0111 1011 1111,[setq(2,u(wuserf,%0,%1,%#,%2,r(0)))][r(2)])],%1,%2,%#,r(0))];@dolist [u(WUSERDO[match(1011,r(2))],%2,%#,%1)]=@pemit ##=[r(1)];&[secure(first(v(1)))] [u(WUSERS[r(2)],[v(CH-DB)])]=[setdiff(before(get([v(CH-DB)]/[v(1)]),L),[setq(3,iter(v(2),num(*##)))][r(3)])] L [setunion(r(0),setdiff(r(3),#-1))];&C-[first(v(1))] [u(WUSERS[r(2)],[v(O-DB)])]=[setdiff(get([v(O-DB)]/C-[v(1)]),r(3))]
&WOWNER ComSystem=$+wowner* * +*:@pemit %#=[setq(0,setunion(before(get([v(CH-DB)]/[v(1)]),L),get([v(O-DB)]/O-[v(1)])))][setq(1,%[[capstr(lcstr(v(1)))]+%] %N has added owner [u(wordit,[u(cofunc2,%1,%2,%#,r(0))])])][u(WOWNER[match(0010 0011 1010 0110 1110 0111 1011 1111,[setq(2,u(wownerf,%0,%1,%#,%2,r(0)))][r(2)])],%1,%2,%#,r(0))];@dolist [u(WUSERDO[match(1011,r(2))],%2,%#,%1)]=@pemit ##=[r(1)];&[secure(v(1))] [u(WOWNERS[r(2)])]=[setunion(r(0),setdiff([setq(3,iter(v(2),num(*##)))][r(3)],#-1))] L [setdiff(after(get([v(CH-DB)]/[v(1)]),L),r(3))]
&WUNUSER ComSystem=$+wuser* * -*:@pemit %#=[setq(0,after(get([v(CH-DB)]/[v(1)]),L))][setq(1,u(wunuserf,%0,%1,%#,%2,r(0)))][setq(2,%[[capstr(lcstr(v(1)))]+%] %N has deleted [u(wordit,[u(culfunc2,%2,%1,%#,r(0))])])][u(WUNUSERM[match(0010 0011 1010 0110 1110 0111 1011 1111,r(1))],%0,%1,%#,r(0),%2)];@dolist [u(WUNUSERDO[match(1011,r(1))],%1,%2,%#)]=@pemit ##=[r(2)];&[secure(v(1))] [u(WUNUSERS[r(1)],[v(CH-DB)])]=[before(get([v(CH-DB)]/[v(1)]),L)] L [setdiff(r(0),[setq(3,iter(v(2),num(*##)))][r(3)])];&[secure(v(1))] [u(WUNUSERS[r(1)],[v(O-DB)])]=[setdiff(get([v(O-DB)]/[v(1)]),r(3))]
&WUNOWNER ComSystem=$+wowner* * -*:@pemit %#=[setq(0,setunion(before(get([v(CH-DB)]/[v(1)]),L),get([v(O-DB)]/O-[v(1)])))][setq(1,%[[capstr(lcstr(v(1)))]+%] %N has deleted [u(wordit,[u(colfunc2,%1,%2,%#,r(0))])])][u(WUNOWNERM[match(0010 0011 1010 0110 1110 0111 1011 1111,[setq(3,u(wunuserf,%0,%1,%#,[setq(4,iter(v(2),num(*##)))][r(4)],r(0)))][r(3)])],%1,%2,%#,r(0))];@dolist [u(WUNOWNERDO[match(1011,r(3))],%1,%2,%#)]=@pemit ##=[r(1)];&[secure(v(1))] [u(WUNOWNERS[r(3)])]=[setdiff(r(0),r(4))] L [after(get([v(CH-DB)]/[v(1)]),L)];&O-[secure(v(1))] [switch(r(3),??1?,[v(O-DB)])]=[setdiff(get([v(O-DB)]/O-[v(1)]),r(4))];&[secure(v(1))] [switch(r(3),??1?,[v(O-DB)])]=[setdiff(get([v(O-DB)]/[v(1)]),r(4))];&C-[secure(v(1))] [switch(r(3),??1?,[v(O-DB)])]=[setdiff(get([v(O-DB)]/C-[v(1)]),r(4))]
&UNUSER ComSystem=$+user * -*:@pemit %#=[setq(0,after(get([v(CH-DB)]/[v(0)]),L))][setq(1,%[[capstr(lcstr(v(0)))]+%] %N has deleted [u(wordit,[u(culfunc2,%1,%0,%#,r(0))])])][switch([setq(2,u(culfunc,%0,%1,%#,r(0)))][r(2)],01,Com: ERROR - Validation shows empty user list.,?0,Com: ERROR - You have no authority over locked channel '[capstr(lcstr(v(0)))]'.)];@dolist [switch(r(2),11,setinter(lwho(),get([v(CH-DB)]/[v(0)])))]=@pemit ##=[r(1)];&[switch(r(2),11,secure(v(0)),#)] [v(CH-DB)]=[before(get([v(CH-DB)]/[v(0)]),L)] L [setdiff(r(0),[setq(3,iter(v(1),num(*##)))][r(3)])];&[switch(r(2),11,secure(v(0)),#)] [v(O-DB)]=[setdiff(get([v(O-DB)]/[v(0)]),r(3))]
&OWNER ComSystem=$+owner * +*:@pemit %#=[setq(0,before(get([v(CH-DB)]/[v(0)]),L))][setq(1,%[[capstr(lcstr(v(0)))]+%] %n has added owner [u(wordit,[u(cofunc2,v(0),v(1),v(#),r(0))])])][switch([setq(2,u(cofunc,v(0),v(#),v(1),r(0)))][r(2)],0?,Com: ERROR - You have no authority over [switch(match(get([v(CH-DB)]/[v(0)]),L),0,channel,locked channel)] '[capstr(lcstr(v(0)))]'.,?0,Com: ERROR - List validation shows empty name list)];@dolist [switch(r(2),11,setinter(lwho(),setunion([setq(3,iter(v(1),num(*##)))][r(3)],get([v(CH-DB)]/[v(0)]))))]=@pemit ##=[r(1)];&[switch(r(2),11,secure(v(0)),#)] [v(CH-DB)]=[setunion(r(0),setdiff(r(3),#-1))] L [setdiff(after(get([v(CH-DB)]/[v(0)]),L),r(3))]
&UNOWNER ComSystem=$+owner * -*:@pemit %#=[setq(0,before(get([v(CH-DB)]/[v(0)]),L))][setq(1,%[[capstr(lcstr(v(0)))]+%] %N has deleted owner [u(wordit,[u(colfunc2,%0,%1,%#,r(0))])])][switch([setq(2,u(colfunc,%0,%1,%#,r(0)))][r(2)],01,Com: ERROR - Validation shows empty user list,?0,Com: ERROR - You have no authority over locked channel '[capstr(lcstr(v(0)))]')];@dolist [switch(r(2),11,setinter(lwho(),get([v(CH-DB)]/[v(0)])))]=@pemit ##=[r(1)];&[switch(r(2),11,secure(v(0)),#)] [v(CH-DB)]=[setdiff(r(0),[setq(3,iter(v(1),num(*##)))][r(3)])] L [setdiff(after(get([v(CH-DB)]/[v(0)]),L),r(3))];&[switch(r(2),11,O-[v(0)],#)] [v(O-DB)]=[setdiff(get([v(O-DB)]/O-[v(0)]),r(3))];&[switch(r(2),11,secure(v(0)),#)] [v(O-DB)]=[setdiff(get([v(O-DB)]/[v(0)]),r(3))];&[switch(r(2),11,O-[v(0)],#)] [v(O-DB)]=[setdiff(get([v(O-DB)]/C-[v(0)]),r(3))]
&CHOWN ComSystem=$+chown * +*:@pemit %#=[switch([setq(0,u(chownfunc,%#,%0,%1))][r(0)],111,WIZCom: Channel '[capstr(lcstr(first(v(0))))]' CHOWNED to [switch(gt(words([setq(1,setdiff(iter(v(1),num(*##)),#-1))][r(1)]),0),1,list:%b)][iter(r(1),name(##))],0??,u(ERRORDEF),10?,WIZCom: ERROR - Channel '[capstr(lcstr(first(v(0))))]' is not a locked channel.,110,WIZCom: ERROR - Validation shows empty list)];&[switch(r(0),111,first(v(0)),#)] [v(CH-DB)]=[r(1)] L [setdiff(get([v(CH-DB)]/[first(v(0))]),L [r(1)])];&[switch(r(0),111,O-[first(v(0))],#)] [v(O-DB)]=[setdiff(get([v(O-DB)]/O-[first(v(0))]),r(1))];&[switch(r(0),111,C-[first(v(0))],#)] [v(O-DB)]=[setdiff(get([v(O-DB)]/C-[first(v(0))]),r(1))]
&WLOCK ComSystem=$+wlock *:@pemit %#=[setq(1,setdiff(iter(edit(rest(v(0)),+,),num(*##)),#-1))][switch([setq(0,u(makefunc,%#,first(%0)))][r(0)],101,WIZCom: Channel '[capstr(lcstr(first(v(0))))]' now a LOCKED channel.%rOwners: [switch(words(r(1)),0,NONE,iter(r(1),[name(##)]\(##\)))],0??,u(ERRORDEF),11?,WIZCom: ERROR - Channel '[capstr(lcstr(first(v(0))))]+' already a locked channel.,100,WIZCom: ERROR - Channel '[capstr(lcstr(first(v(0))))]' non-existant.)];&[switch(r(0),101,first(v(0)),#)] [v(CH-DB)]=[r(1)] L [setdiff(get([v(CH-DB)]/[first(v(0))]),L [r(1)])]
&WUNLOCK ComSystem=$+wunlock *:@pemit %#=[switch([setq(0,u(makefunc,%#,%0))][r(0)],111,WIZCom: Channel '[capstr(lcstr(first(v(0))))]' now an UNLOCKED channel,0??,u(ERRORDEF),101,WIZCom: ERROR - Channel '[capstr(lcstr(first(v(0))))]' already an unlocked channel,100,WIZCom: ERROR - Channel '[capstr(lcstr(first(v(0))))]' non-existant -> Aborted)];&[switch(r(0),111,first(v(0)),#)] [v(CH-DB)]=[setdiff(get([v(CH-DB)]/[first(v(0))]),L)];&[switch(r(0),111,first(v(0)),#)] [v(O-DB)];&[switch(r(0),111,O-[first(v(0))],#)] [v(O-DB)];&[switch(r(0),111,F-[first(v(0))],#)] [v(O-DB)];&[switch(r(0),111,C-[first(v(0))],#)] [v(O-DB)]
&LISTCHAN ComSystem=$+listch*:@pemit %#=[u(LISTCHM[match(QUICK JOIN,after(first(%0),/))],rest(%0),%#)][u(LISTCHANCODING[gt(match(get([v(O-DB)]/set_arg_coding),%#),0)])]
&WLIST ComSystem=$+wlist *:@pemit %#=[u(WLISTM[u(wlistf,%0,%#)],%0,iter(get([v(CH-DB)]/[v(0)]),switch([match(PLAYER,type(##))][match(##,L)],?1,##,1?,##)))]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: ComSystem Checkpoint #1 <C-1>},{@pemit me=[space(5)]: ComSystem Checkpoint #1 <C-1>}
&CREATE ComSystem=$+create *:@pemit %#=[switch([setq(0,[gt(words(get([v(CH-DB)]/[first(%0)])),0)][u(VINVF,%0,%#)])][r(0)],1*,Com: ERROR - Already existing channel list as '[capstr(lcstr(first(%0)))]',?0,[u(CHAN_M0[or(eq(add(v(MAXCHAN),0),0),lt(words(lattr(v(CH-DB))),v(MAXCHAN)))],%0,%1)],01,Com: Locked channel '[capstr(lcstr(first(%0)))]' created)];&[secure(first(%0))] [switch(r(0),01,v(CH-DB))]=%# L
&DESTROY ComSystem=$+destroy *:@pemit %#=[switch([setq(0,u(delfunc,%0,%#))][r(0)],0??,Com: ERROR - Non-Existant Channel '[capstr(lcstr(first(v(0))))]+',110,Com: ERROR - You are not an owner of the channel '[capstr(lcstr(first(v(0))))]+'.,10?,Com: ERROR - '[capstr(lcstr(first(v(0))))]' is not a locked channel.)][setq(1,%[[capstr(lcstr(first(v(0))))]+%] %N has *DESTROYED* this channel.)];@dolist [switch(r(0),111,setinter(lwho(),get([v(CH-DB)]/[first(v(0))])))]=@pemit ##=[r(1)];&[switch(r(0),111,first(v(0)),#)] [v(O-DB)];&[switch(r(0),111,first(v(0)),#)] [v(CH-DB)];&[switch(r(0),111,O-[first(v(0))],#)] [v(O-DB)];&[switch(r(0),111,F-[v(0)],#)] [v(O-DB)];&[switch(r(0),111,C-[v(0)],#)] [v(O-DB)]
&WDESTROY ComSystem=$+wdestroy* *:@pemit %#=[u(ERRREMOVE[setq(0,u(wdelfunc,%1,%#,%0))][r(0)],%0,%1)][setq(1,%[[capstr(lcstr(first(v(1))))]+%] %N has *DESTROYED* this channel.)];@dolist [u(WREMOVE[match(110,r(0))],first(%1))]=@pemit ##=[r(1)];&[u(SREMOVE[r(0)],first(v(1)))] [v(CH-DB)];&[u(SREMOVE[r(0)],O-[first(v(1))])] [v(O-DB)];&[u(SREMOVE[r(0)],first(v(1)))] [v(O-DB)];&[u(SREMOVE[r(0)],F-[first(v(1))])] [v(O-DB)];&[u(SREMOVE[r(0)],C-[first(v(1))])] [v(O-DB)]
&MONUNCON ComSystem=$+monuncon:@pemit [v(M-DB)]=%N\(%#\) has disconnected: %[[div([setq(0,sub(secs(),convtime(get(%#/last))))][r(0)],3600)]h [div(mod(r(0),3600),60)]m [mod(r(0),60)]s%]
&MONUNCON me=$+monuncon:@pemit/list [get([v(M-DB)]/FORWARDLIST)]=%[*MONITOR*%] %N\(%#\) has disconnected: %[[div([setq(0,sub(secs(),convtime(get(%#/last))))][r(0)],3600)]h [div(mod(r(0),3600),60)]m [mod(r(0),60)]s%]
@swi/f [ucstr(version())]=*PENN*,@fo me={&MONUNCON ComSystem=v(monuncon);@wait 5=&MONUNCON me}&MONCON me
&MONCON ComSystem=$+moncon:@pemit/list [get([v(M-DB)]/FORWARDLIST)]=%N\(%#\) has connected \[[ucstr(get(%#/lastsite))]\]
&MONCON me=$+moncon:@pemit [v(M-DB)]=%[*MONITOR*%] %N\(%#\) has connected \[[ucstr(get(%#/lastsite))]\]
@swi/f [ucstr(version())]=*PENN*,@fo me={&MONCON ComSystem=v(moncon);@wait 5=&MONCON me},&MONCON me
&MONSET ComSystem=$+monset:@pemit %#=[u(MONSETM[setq(0,u(monaddf,%#))][r(0)])];@forwardlist [v(M-DB)]=[u(MONSET[r(0)],%#)]
&MONSET me=$+monset:@pemit %#=[u(MONSETM[setq(0,u(monaddf,%#))][r(0)])];&forwardlist [v(M-DB)]=[u(MONSET[r(0)],%#)]
@swi/f [ucstr(version())]=*PENN*,@fo me={&MONSET ComSystem=v(monset);@wait 5=&MONSET me},&MONSET me
&COMSPEAK ComSystem=$+com *:@pemit %#=[setq(7,u(CHKVALIDCHAN[eq(words(get([v(CH-DB)]/[s(before(%0,=))])),0)],[get([v(O-DB)]/ALIAS_[s(before(%0,=))])]=[after(%0,=)],%0))][u(COM-ANS[match(11 01 00 10,[setq(0,u(comfunc,r(7),%#))][r(0)])],r(7),%#)][setq(1,u(comckm,r(7),%#))];@dolist [u(COMCK[match(10,r(0))],r(7))]=@pemit ##=[u(COM-SPK[r(1)],r(7),%#,##)];&D[v(#)] [u(DODEFAULT[gt(match(get([v(O-DB)]/U[v(#)]),LASTCHAN),0)],[v(A-DB)])]=[secure(first(before(v(0),=)))]
&CONFIG ComSystem=$+config *=*:@pemit %#=[u(CONFMSG[gt(match(u(CONFIGS[u(wizard,%#)]),v(0)),0)],%0,%1)];&U[v(#)] [v(O-DB)]=[u(CONFSET[gt(match(u(CONFIGS[u(wizard,%#)]),v(0)),0)],%0,%1,%#)]
&QUICKSPEAK ComSystem=$=*:@pemit %#=[setq(0,[u(qfunc,%0,%#)]\=[u(qfunc2,%0,%#)])][setq(7,u(CHKVALIDCHAN[eq(words(get([v(CH-DB)]/[s(before(r(0),=))])),0)],[get([v(O-DB)]/ALIAS_[s(before(r(0),=))])]=[after(r(0),=)],r(0)))][u(COM-ANS[match(11 01 00 10,[setq(1,u(comfunc,r(7),%#))][r(1)])],r(7),%#)][setq(2,u(comckm,r(7),%#))];@dolist [u(COMCK[match(10,r(1))],r(7))]=@pemit ##=[u(COM-SPK[r(2)],r(7),%#,##)];&D[v(#)] [u(DODEFAULT[gt(match(get([v(O-DB)]/U[v(#)]),LASTCHAN),0)],[v(A-DB)])]=[secure(first(before(r(7),=)))] 
&QUIET ComSystem=$+quiet*:@pemit %#=[u(QUIET[setq(0,u(quietf,s(%0),%#))][r(0)],s(%0),%#)];&[u(QUIETS[r(0)],s(%0))] [v(O-DB)]=[u(QUIETSET[r(0)],s(%0),%#)]
&DEFAULT ComSystem=$+DEFAULT *:@pemit %#=Com: Default set to '[capstr(lcstr(first(v(0))))]';&D[v(#)] [v(A-DB)]=[secure(first(ucstr(v(0))))]
&LISTPUB ComSystem=$+listpub*:@pemit %#=The following public channels currently exist:[u(listpub[u(wizard,%#)],max(sub(%0,1),0),%#)]
&LISTPUB me=$+listpub*:@pemit %#=The following public channels currently exist:[u(listpub[u(wizard,%#)],max(edit(first(sub(%0,1)),#-1,0),0),%#)]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&LISTPUB ComSystem=v(listpub);@wait 5=&LISTPUB me},&LISTPUB me
&LISTPRIVATE ComSystem=$+listpriv*:@pemit %#=[u(listpriv[u(wizard,%#)],max(sub(%0,1),0),%#)]
&LISTPRIVATE me=$+listpriv*:@pemit %#=[u(listpriv[u(wizard,%#)],max(edit(first(sub(%0,1)),#-1,0),0),%#)]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&LISTPRIVATE ComSystem=v(listprivate);@wait 5=&LISTPRIVATE me},&LISTPRIVATE me
&SETWIZARD ComSystem=$+setwizard *:&WIZARD [u(SETWIZ[u(SETWIZFUNC,%#)])]=[edit(v(0),$,)];@pemit %#=[u(SETWIZM[u(SETWIZFUNC,%#)])]
&SETWIZARD me=$+setwizard *:&WIZARD [u(SETWIZ[u(SETWIZFUNC,%#)])]=%[edit%(first%(and%(1,[edit(v(0),$,)]%)%),#-1,0%)%];@pemit %#=[u(SETWIZM[u(SETWIZFUNC,%#)])]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&SETWIZARD ComSystem=v(setwizard);@wait 5=&SETWIZARD me},&SETWIZARD me
&WREMOVE ComSystem=$+wremove * -*:@pemit %#=[u(WREMM[setq(0,u(wremf,%0,[setq(1,iter(%1,num(*##)))][r(1)],%#))][r(0)],%0,r(1))];&[secure(v(0))] [u(WREMS[r(0)])]=[u(WREMDO[gt(match(get([v(CH-DB)]/[v(0)]),L),0)],%0,r(1))];&[switch(r(0),1*,O-[v(0)],#)] [v(O-DB)]=[setdiff(get([v(O-DB)]/O-[v(0)]),r(1))];&[switch(r(0),1*,[secure(v(0))],#)] [v(O-DB)]=[setdiff(get([v(O-DB)]/[v(0)]),r(1))];&[switch(r(0),1*,C-[v(0)],#)] [v(O-DB)]=[setdiff(get([v(O-DB)]/C-[v(0)]),r(1))]
&WIPE ComSystem=$+wipe *:@pemit %#=[u(WIPEM[setq(0,u(wipef,%0,%#))][r(0)],%0)];&[secure(v(0))] [u(WIPES[gt(match(101 011 111,r(0)),0)])]=[u(WIPEDO[gt(match(get([v(CH-DB)]/[v(0)]),L),0)],%0)];&O-[secure(v(0))] [v(O-DB)]=[setdiff(iter(get([v(O-DB)]/O-[v(0)]),num(*[name(##)])),#-1)];&[secure(v(0))] [v(O-DB)]=[setdiff(iter(get([v(O-DB)]/[v(0)]),num(*[name(##)])),#-1)];&C-[secure(v(0))] [v(O-DB)]=[setdiff(iter(get([v(O-DB)]/C-[v(0)]),num(*[name(##)])),#-1)]
&WADDLOCK ComSystem=$+waddlock *=*:@pemit %#=[u(WADDLOCKM[setq(0,u(waddlockf,%0,%#))][r(0)],%0,eq(words(%1),0))];&[secure(first(v(0)))] [u(WADDLOCKS[eq(words(get([v(CH-DB)]/[first(v(0))])),0)])]=L;&F-[secure(first(v(0)))] [u(WADDLOCKS[r(0)])]=[edit(v(1),$,)]
&WADDLOCK me=$+waddlock *=*:@pemit %#=[u(WADDLOCKM[setq(0,u(waddlockf,%0,%#))][r(0)],%0,eq(words(%1),0))];&[secure(first(v(0)))] [u(WADDLOCKS[eq(words(get([v(CH-DB)]/[first(v(0))])),0)])]=L;&F-[secure(first(v(0)))] [u(WADDLOCKS[r(0)])]=%[edit%(first%(and%(1,[edit(v(0),$,)]%)%),#-1,0%)%]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&WADDLOCK ComSystem=v(waddlock);@wait 5=&WADDLOCK me},&WADDLOCK me
&ADDLOCK ComSystem=$+addlock*:@pemit %#=[u(ADDLOCKM[match(/LIST /REMOVE,first(%0))],[setq(0,u(addlockf,s(before(%0,=)),after(%0,=),%#))][r(0)],before(s(%0),=),after(%0,=))];&F-[secure(first(setdiff(before(ucstr(%0),=),/LIST /REMOVE)))] [u(ADDLOCKS[r(0)],first(%0))]=[u(ADDLOCKDO[match(first(%0),/REMOVE)],s(before(%0,=)),after(%0,=))]
&CHANJOIN ComSystem=$+chanjoin *:@pemit %#=[setq(0,%[[capstr(lcstr(first(v(0))))]+%] %n has been [switch([setq(1,[gt(match(after(get([v(CH-DB)]/[v(0)]),L),v(#)),0)][gt(match(before(get([v(CH-DB)]/[v(0)]),L),v(#)),0)][gt(match(get([v(O-DB)]/O-[v(0)]),v(#)),0)])][r(1)],000,added to,001,added as an owner to,1??,removed from,01?,removed as an owner from)] this channel.)][u(JOINM[setq(2,u(joinf,%0,%#))][r(2)],%0)];&O-[secure(first(v(0)))] [u(JOIN[r(2)])]=[u(JOINSETO[r(1)],%0,%#)];&[secure(first(v(0)))] [u(JOINS[r(2)])]=[u(JOINSET[r(1)],%0,%#)];@dolist [u(JOINDO[gt(match(110 111,r(2)),0)],%0,%#)]=@pemit ##=[r(0)]
&WCHANJOIN ComSystem=$+wchanjoin *:@pemit %#=[u(WJOINM[setq(0,u(wjoinf,%0,%#))][r(0)],%0)];&[secure(first(v(0)))] [u(WJOINS[r(0)])]=[u(WJOINDO[gt(match(get([v(CH-DB)]/[v(0)]),v(#)),0)],%0,%#)]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: ComSystem Checkpoint #2 <C-2>},{@pemit me=[space(5)]: ComSystem Checkpoint #2 <C-2>}
&COMINDEX ComSystem=$+comindex:@pemit %#=[v(lines)]%r[u(comtitle)]%r[v(lines)]%r[u(doindex)]
&WDISABLE ComSystem=$+wdisable *:@pemit %#=[u(WDISABLEM[setq(0,u(ablef,%0,%#))][r(0)],%0)];@dolist [u(WDISABLEDO[r(0)],%0)]=@set me/##=no_command;&DISABLELIST [u(WABLES[r(0)])]=[setunion(v(disablelist),ucstr(v(0)))]
&COMSTATUS ComSystem=$+comstatus:@pemit %#=[v(lines)]%r[u(comtitle)]%r[v(lines)][setq(0,setdiff(v(disablelist),v(wizopts)))][u(COMSTATUSM-[gt(words(r(0)),0)],%rDisabled Options: [r(0)])][u(COMSTATUSM-[setq(1,setinter(v(disablelist),v(wizopts)))][and(words(r(1)),u(wizard,%#))],%rDisabled Wizard-Options: [r(1)])][u(COMSTATUSM-[u(wizard,%#)],%rCurrent Error Message:%r[v(ERRORDEF)]%rError Message Evaluates as:%r[u(ERRORDEF)]%r[v(lines)])]%r[u(COMSTATUSF,words(iter(lattr(v(CH-DB)),switch(gt(match(get([v(CH-DB)]/##),L),0),1,##))))]%rChannel LockOut Enforcement: [u(COMSTATUSM-[or(words(v(L-VALID)),words(v(L-INVALID)))],-- ACTIVE --,INACTIVE)][u(COMSTATUSM-[gt(words(get([v(O-DB)]/W_CONF-L)),0)],%r+CONFIG Options Disabled: [get([v(O-DB)]/W_CONF-L)])][u(COMSTATUSM-[gt(words(get([v(O-DB)]/W_COM-L)),0)],%r+COM Arguments Disabled: [get([v(O-DB)]/W_COM-L)])][u(COMSTATUSM-[and(u(wizard,%#),words(get([v(O-DB)]/W_CONFIG_SET)))],%rWizard Settings Enabled: [get([v(O-DB)]/W_CONFIG_SET)])]%r[v(lines)]%rCom Options Set: [get([v(O-DB)]/U[v(#)])]%rLines Per Page Value: [max(get([v(O-DB)]/U_%#PAGE),10)]%rAlias: [switch(get(%#/CALIAS),*@*,[ljust(%[Randomized%],20)],,[ljust(DEFAULT,20)],[ljust(mid(get(%#/calias),0,19),20)])]Title: [switch(get(%#/CTITLE),*@*,[ljust(%[Randomized%],20)],,[ljust(DEFAULT,20)],[ljust(mid(get(%#/ctitle),0,19),20)])]ComDefault: [switch(setinter(get(%#/CDEF),v(COM-L)),,DEFAULT,[get(%#/CDEF)] %([s(extract(v(COM-L-WORDS),member(v(COM-L),get(%#/CDEF)),1))]%))]%rTotal Channel-Specific Aliases: [words(lattr(%#/CALIAS-*))]%rTotal Channel-Specific Titles: %b[words(lattr(%#/CTITLE-*))]%rTotal Aliases for '=' command: %b[words(get([v(A-DB)]/A[v(#)]))]%r[v(lines)]
&WENABLE ComSystem=$+wenable *:@pemit %#=[u(WENABLEM[setq(0,u(ablef,%0,%#))][r(0)],%0)];@dolist [u(WDISABLEDO[r(0)],%0)]=@set me/##=!no_command;&DISABLELIST [u(WABLES[r(0)])]=[setdiff(v(disablelist),ucstr(v(0)))]
&WINSTSQ ComSystem=$+winstsq:@pemit %#=[switch(u(wizard,%#),1,[WIZCom: This command is unsupported and disabled.%r[space(10)]If a need for this exists, contact the author.],u(ERRORDEF))]
&WINSTSETQ ComSystem=
&WUNINSTSQ ComSystem=$+wuninstsq:@pemit %#=[switch(u(wizard,%#),1,[WIZCom: This command is unsupported and disabled.%r[space(10)]If a need for this exists, contact the author.],u(ERRORDEF))]
&WUNINSTSETQ ComSystem=
&SETPAGE ComSystem=$+setpage *:@pemit %#=[u(SETPAGE[gte(%0,10)][lte(%0,48)],%0)];&U_%#PAGE [v(O-DB)]=[max(min(%0,48),10)]
&SETPAGE me=$+setpage *:@pemit %#=[u(SETPAGE[gte(edit(first(add(%0,0)),#-1,0),,10)][lte(edit(first(add(%0,0)),#-1,0),48)],%0)];&U_%#PAGE [v(O-DB)]=[max(min(edit(first(add(%0,0)),#-1,0),48),10)]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&SETPAGE ComSystem=v(setpage);@wait 5=&SETPAGE me},&SETPAGE me
&CODING ComSystem=$+coding:@pemit %#=[u(CODING[setq(0,u(codingf,%#))][r(0)],%#)];&SET_ARG_CODING [v(O-DB)]=[u(CODINGSET[r(0)],%#)]
&WDEFHELP ComSystem=$+wdefhelp*:@pemit %#=[setq(0,s(ucstr(first(%0))))][u(wdefhelpm[setq(1,u(wdefhelpf,r(0),%#))][match(100 110 101 111,r(1))],r(0))];@wait 1=@fo me=@edit [u(wdefhelps[r(1)],[v(F-DB)]/*opts)]=[v(DEF_HELP)],[r(0)];@wait 1=@fo me=@edit [u(wdefhelps[r(1)],me/help)]=[v(DEF_HELP)],[r(0)];&H[r(0)] [u(wdefhelps[r(1)],v(H-DB))]=[get([v(H-DB)]/H[v(DEF_HELP)])];@wait 1=&H[v(DEF_HELP)] [u(wdefhelps[r(1)],v(H-DB))]=;@wait 2=&DEF_HELP [u(wdefhelps[r(1)],v(F-DB))]=[r(0)]
&MVCHAN ComSystem=$+mvchan *=*:@pemit %#=[u(MVCHANM[setq(0,u(mvorcpf,%0,%1,%#))][match(100 110 111 101,r(0))],%0,%1,%#)];&C-[first(%1)] [u(MVORCPS[r(0)],v(O-DB))]=[get([v(O-DB)]/C-[first(%0)])];&C-[first(%0)] [u(MVORCPS[r(0)],v(O-DB))];&O-[first(%1)] [u(MVORCPS[r(0)],v(O-DB))]=[get([v(O-DB)]/O-[first(%0)])];&O-[first(%0)] [u(MVORCPS[r(0)],v(O-DB))];&F-[first(%1)] [u(MVORCPS[r(0)],v(O-DB))]=[get([v(O-DB)]/F-[first(%0)])];&F-[first(%0)] [u(MVORCPS[r(0)],v(O-DB))];&[first(%1)] [u(MVORCPS[r(0)],v(O-DB))]=[get([v(O-DB)]/[first(%0)])];&[first(%0)] [u(MVORCPS[r(0)],v(O-DB))];&[first(%1)] [u(MVORCPS[r(0)],v(CH-DB))]=[get([v(CH-DB)]/[first(%0)])];&[first(%0)] [u(MVORCPS[r(0)],v(CH-DB))];&[first(%1)] [u(MVORCPS[r(0)],v(D-DB))]=[get([v(D-DB)]/[first(%0)])];&[first(%0)] [u(MVORCPS[r(0)],v(D-DB))]
&CPCHAN ComSystem=$+cpchan *=*:@pemit %#=[u(CPCHANM[setq(0,u(mvorcpf,%0,%1,%#))][match(100 110 111 101,r(0))],%0,%1,%#)];&C-[first(%1)] [u(MVORCPS[r(0)],v(O-DB))]=[get([v(O-DB)]/C-[first(%0)])];&O-[first(%1)] [u(MVORCPS[r(0)],v(O-DB))]=[get([v(O-DB)]/O-[first(%0)])];&F-[first(%1)] [u(MVORCPS[r(0)],v(O-DB))]=[get([v(O-DB)]/F-[first(%0)])];&[first(%1)] [u(MVORCPS[r(0)],v(O-DB))]=[get([v(O-DB)]/[first(%0)])];&[first(%1)] [u(MVORCPS[r(0)],v(CH-DB))]=[get([v(CH-DB)]/[first(%0)])];&[first(%1)] [u(MVORCPS[r(0)],v(D-DB))]=[get([v(D-DB)]/[first(%0)])]
&VALID ComSystem=$+valid:@pemit %#=Com: Listing all valid channels available for creating.%r[v(lines)]%r[switch(gt(words(v(L-VALID)),0),0,*FREE* - There is no limit on channel names.,[v(L-VALID)])]%r[switch(gt(v(MAXCHAN),0),1,Number Lock Detected: Total number of channels allowed are '[v(MAXCHAN)]'%r)][v(lines)]%rNote: Wizards can lock out specific strings to channels. So eventhough%rthere may be 'free' channels, there could be limitations.%r[v(lines)]%rCom: Listing completed.
&WINSTALL ComSystem=$+winstall *:@pemit %#=[u(WINSTALLM[setq(0,u(winstallf,%0,%#))][r(0)],%0)];@set [u(WINSTALLDO[r(0)],me/winstall)]=no_command;@dolist [u(WINSTALLDO[r(0)],A-DB O-DB CH-DB D-DB)]={@set [v(##)]=!safe;@destroy/override [v(##)];&## me=[get(%0/##)];&## [v(F-DB)]=[get(%0/##)];@link [get(%0/##)]=me;@tel [get(%0/##)]=home};@pemit [u(WINSTALLDO[r(0)],%#)]=[space(5)]---> Purging newly created duplicates and installing existing copies.;@wait 5={@dolist [u(WINSTALLDO[r(0)][setq(1,[get([get(%0/F-DB)]/version)])],%0 [get(%0/F-DB)] [get(%0/M-DB)] [get(%0/ALT-DB)] [get(%0/ORIG-DB)] [get(%0/H-DB)])]={@set ##=!safe;@destroy/override ##};@pemit [u(WINSTALLDO[r(0)],%#)]=[space(5)]---> Purging old system [r(1)] to [v(version)];@wait 5=@pemit [u(WINSTALLDO[r(0)],%#)]=WIZCom: Installation Completed. Disabling command.}
&WINVALID ComSystem=$+winvalid*:@pemit %#=[u(WINVALIDM[setq(0,u(winvalidf,first(%0),ucstr(rest(%0)),%#))][match(100 110 120 130 101 111 121 131,[r(0)])],first(%0),ucstr(rest(%0)),%#)];&L-INVALID [u(WINVALIDS[r(0)],v(F-DB))]=[u(WINVALIDSET[mid([r(0)],1,1)],first(%0),ucstr(rest(%0)),%#)]
&WMAXCHAN ComSystem=$+wmaxchan*:@pemit %#=[u(WMAXCHANM[setq(0,u(wmaxchanf,%0,%#))][r(0)],%0)];&MAXCHAN [u(WMAXCHANS[r(0)],v(F-DB))]=[max(min(%0,1000),0)]
&WMAXCHAN me=$+wmaxchan*:@pemit %#=[u(WMAXCHANM[setq(0,u(wmaxchanf,edit(first(add(%0,0)),#-1,0),%#))][r(0)],edit(first(add(%0,0)),#-1,0))];&MAXCHAN [u(WMAXCHANS[r(0)],v(F-DB))]=[max(min(edit(first(add(%0,0)),#-1,0),1000),0)]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&WMAXCHAN ComSystem=v(wmaxchan);@wait 5=&WMAXCHAN me},&WMAXCHAN me
&WVALID ComSystem=$+wvalid*:@pemit %#=[u(WVALIDM[setq(0,u(wvalidf,first(%0),ucstr(rest(%0)),%#))][match(100 110 120 130 101 111 121 131,[r(0)])],first(%0),ucstr(rest(%0)),%#)];&L-VALID [u(WVALIDS[r(0)],v(F-DB))]=[u(WVALIDSET[mid([r(0)],1,1)],first(%0),ucstr(rest(%0)),%#)]
&WALIASCHAN ComSystem=$+waliaschan ?*:@pemit %#=[u(WALIASCHANM[setq(0,u(waliaschanf,%0,%1,%#))][r(0)],%0,%1,%#)];&W_CHANNELS [u(WALIASCHANS[r(0)],v(O-DB))]=[u(WALIASCHANSET[mid(r(0),1,1)],%1)]
&WSHOWCONFIG ComSystem=$+wshowconfig*:@pemit %#=[u(WSHOWCONFIG[u(wizard,%#)],setdiff(num(*%0),#-1))]
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: ComSystem Checkpoint #3 <C-3>},{@pemit me=[space(5)]: ComSystem Checkpoint #3 <C-3>}
&WPATCH ComSystem=$+wpatch *:@pemit %#=[u(WPATCHM[setq(0,u(wpatchf,%0,%#))][r(0)],%0)];@dolist [u(WPATCHDO[r(0)],#-1 [get(%0/I_PATCH)] #-2)]={@pemit %#=[u(WPATCHM[match(#-1 #-2,##)],%0,##)];&[after(##,//)] [before(##,//)]=[get(%0/[after(##,//)])]}
&WCONFIG ComSystem=$+wconfig ?*:@pemit %#=[u(WCONFIGM[setq(0,u(wconfigf,%0,%1,%#))][match(1001 1011 1101 1111 1201 1211,r(0))],%0,%1,r(0),configuration)];&W_CONF-L [u(WCONFIGS[r(0)],v(O-DB))]=[u(WCONFIGSET[mid(r(0),1,1)],%1)]
&WOPTION ComSystem=$+woption ?*:@pemit %#=[u(WCONFIGM[setq(0,u(woptionf,%0,%1,%#))][match(1001 1011 1101 1111 1201 1211,r(0))],%0,%1,r(0),com option)];&W_COM-L [u(WCONFIGS[r(0)],v(O-DB))]=[u(WOPTIONSET[mid(r(0),1,1)],%1)]
&WSETUP ComSystem=$+wsetup *=*:@pemit %#=[u(WSETUPM[setq(0,u(wsetupf,%0,%1,%#))][match(100 110 101 111,r(0))],%0,%1,%#)];&W_CONFIG_SET [u(WSETUPS[r(0)],v(O-DB))]=[u(WSETUPSET[mid(r(0),1,1)],%0,%1,%#)]
&LISTREF ComSystem=$+listref*:@pemit %#=Listing Reference for available commands:[u(LISTREF_[match([first(%0)],*/EX*)],[u(wizard,%#)],max(sub(first(%0),1),0),max(sub(rest(%0),1),0),%#)]
&LISTREF me=$+listref*:@pemit %#=Listing Reference for available commands:[u(LISTREF_[match([first(%0)],*/EX*)],[u(wizard,%#)],max(sub(edit(first(add(first(%0),0)),#-1,0),1),0),max(sub(edit(first(add(rest(%0),0)),#-1,0),1),0),%#)]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&LISTREF ComSystem=v(listref);@wait 5=&LISTREF me},&LISTREF me
&ALIASA ComSystem=$+alias +* *:@pemit %#=[u(ALA[setq(0,u(AFA,%#,%0,%1))][r(0)],%0,%1)];&A[v(#)] [v(A-DB)]=[u(ASA[r(0)],%0,%#,%1)];&C[v(#)] [v(A-DB)]=[u(ASC[r(0)],%1,%#,%0)]
&ALIASD ComSystem=$+alias -*:@pemit %#=[u(ALD[setq(0,u(AFD,%#,%0))][r(0)],%0,%1)];&C[v(#)] [v(A-DB)]=[u(ADC[r(0)],%0,%#)];&A[v(#)] [v(A-DB)]=[u(ADA[r(0)],%0,%#,%1)]
&ALIASH-O ComSystem=$+alias/*:@pemit %#=[switch(u(wizard,%#),0,u(errordef),[setq(0,switch(num(*%0),#-1,%#,num(*%0)))][v(lines)]%r[u(comtitle)]%r[v(lines)]%r[center([name(r(0))]'s Alias List:,78)]%r[v(lines)][setq(1,iter(remove(lnum(add(words(get([v(A-DB)]/A[r(0)])),1)),0),u(ALSH[or(eq(0,##),gt(mod(sub(##,1),3),0))],##,r(0))))][r(1)][switch(words(r(1)),0,%r[center(** NO ALIASES DEFINED **,78,*)])]%r[v(lines)])]
&ALIASH ComSystem=$+alias:@pemit %#=[v(lines)]%r[u(comtitle)]%r[v(lines)]%r[space(35)]Alias List:%r[v(lines)][setq(0,iter(remove(lnum(add(words(get([v(A-DB)]/A[v(#)])),1)),0),u(ALSH[or(eq(0,##),gt(mod(sub(##,1),3),0))],##,%#)))][r(0)][switch(words(r(0)),0,%r[center(** NO ALIASES DEFINED **,78,*)])]%r[v(lines)]
&ALIASC ComSystem=$+alias clear:@pemit %#=Alias: List cleared!;&A[v(#)] [v(A-DB)];&C[v(#)] [v(A-DB)]
&LISTALL ComSystem=$+listall*:@pemit %#=The following channels exist: [switch(match(first(%0),/ALIAS),0,%(Description Listing%)[u(listall1,max(sub(%0,1),0),%#)],%(Alias Listing%)[u(listall0,max(sub(rest(%0),1),0),%#)])]
&LISTALL me=$+listall*:@pemit %#=The following channels exist: [switch(match(first(%0),/ALIAS),0,%(Description Listing%)[u(listall1,max(sub(edit(first(add(%0,0)),#-1,0),1),0),%#)],%(Alias Listing%)[u(listall0,max(sub(edit(first(add(rest(%0),0)),#-1,0),1),0),%#)])]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&LISTALL ComSystem=v(listall);@wait 5=&LISTALL me},&LISTALL me
&COMDESC ComSystem=$+comdesc*:@pemit %#=[setq(0,s(first(%0)))][setq(1,before(rest(%0),=))][setq(2,after(rest(%0),=))][u(COMDESCM[match(10 11 12 13 14 15 16,[setq(3,u(comdescf,r(0),r(1),r(2),%#))][r(3)])],r(0),r(1),r(2),%#)];&[r(1)] [u(COMDESCS[r(3)],v(D-DB),r(0),r(1),r(2),r(3),%#)]=[u(COMDESCSET[r(3)],r(0),r(1),r(2),r(3),%#)]
&WRENAME ComSystem=$+wrename*:@pemit %#=[u(WRENAMEM[setq(0,u(wrenamef,first(%0),before(remove(ucstr(%0),/DEL),=),after(%0,=),%#))][match(10 11 12,r(0))],first(%0),before(remove(ucstr(%0),/DEL),=),after(%0,=))];&NAME_[s(before(remove(ucstr(%0),/DEL),=))] [u(WRENAMES[r(0)],v(O-DB))]=[u(WRENAMESET[match(after(%0,=),s(before(%0,=)))],secure(after(%0,=)),before(remove(ucstr(%0),/DEL),=))]
&WGALIAS ComSystem=$+wgalias* *=*:@pemit %#=[u(WGALIASM[and(words(%0),match(%0,/DEL),u(wizard,%#))],%0,%1,%2,%#)];&ALIAS_%2 [u(WGALIASS[setq(0,u(wgaliasf,%1,%2,%#))][match(%0,/DEL)],v(O-DB),r(0))]=[u(WGALIASSET[match(%0,/DEL)],r(0),%1,%2,%#)]
&WGALIASLIST ComSystem=$+wgalias/list:@pemit %#=[u(WGALIASLISTM[u(wizard,%#)])]
&WDEFCOMOPT ComSystem=$+wdefcomopt*:@pemit %#=[setq(0,before(first(s(%0)),=))][setq(1,s(after(%0,=)))][u(wdefcomoptm[setq(2,u(wdefcomoptf,r(0),r(1),%#))][match(100 101 110,r(2))],r(0),r(1))][setq(3,extract(v(com-l),r(0),1))];&COM-L [u(wdefcomopts[r(2)],v(F-DB))]=[extract(v(com-l),1,sub(r(0),1))] [r(1)] [extract(v(com-l),add(r(0),1),words(v(com-l)))];&W_COM-L [u(wdefcomopts[r(2)],v(O-DB))]=[replace(get([v(O-DB)]/W_COM-L),member(get([v(O-DB)]/W_COM-L),r(3)),r(1))]
&WSETDARK ComSystem=$+wsetdark *:@pemit %#=[u(WSETDARKM[u(wizard,%#)])];&DARK [u(WSETDARKS[u(wizard,%#)],v(F-DB))]=%[and%(%0,1%)%]
&WSETDARK me=$+wsetdark *:@pemit %#=[u(WSETDARKM[u(wizard,%#)])];&DARK [u(WSETDARKS[u(wizard,%#)],v(F-DB))]=%[edit%(first%(and%(%0,1%)%),#-1,0%)%]
@swi/f [v(PATCH_COM)]=YES,@wait 1=@fo me={&WSETDARK ComSystem=v(wsetdark);@wait 5=&WSETDARK me},&WSETDARK me
&NEWBIE ComSystem=$+newbie*:@set %#=!halt;@dolist [setq(8,u(GENERAL[eq(match(%0,/quiet),0)],%#))][iter(get([v(O-DB)]/W_NEWBIE_CHANNEL),u(GENERAL[not(match(get([v(CH-DB)]/##),%#))],##))]=@fo [r(8)]=+chan +##;@dolist [u(GENERAL[gt(match(%0,/quiet),0)],get([v(O-DB)]/W_NEWBIE_CHANNEL))]={&## [u(GENERAL[and(u(newbief,##,%#),not(match(get([v(CH-DB)]/##),%#)))],v(CH-DB))]=[u(NEWBIES[gt(match(get([v(CH-DB)]/##),*L*),0)],##,%#)];&O-## [v(O-DB)]=[setdiff(get([v(O-DB)]/O-##),%#)]}
&UNNEWBIE ComSystem=$+unnewbie*:@set %#=!halt;@dolist [setq(8,u(GENERAL[eq(match(%0,/quiet),0)],%#))][iter(get([v(O-DB)]/W_NEWBIE_CHANNEL),u(GENERAL[gt(match(get([v(CH-DB)]/##),%#),0)],##))]=@fo [r(8)]=+chan -##;@dolist [u(GENERAL[gt(match(%0,/quiet),0)],get([v(O-DB)]/W_NEWBIE_CHANNEL))]={&O-## [u(GENERAL[and(match(before(get([v(CH-DB)]/##),L),%#),match(get([v(CH-DB)]/##),*L*))],v(O-DB))]=[setunion(get([v(O-DB)]/O-##),%#)];&## [v(CH-DB)]=[u(UNNEWBIES[gt(match(get([v(CH-DB)]/##),*L*),0)],##,%#)]}
&WDEFNEWBIE ComSystem=$+wdefnewbie*:@pemit %#=[u(WDEFNEWBIEM[setq(0,u(wdefnewbief,first(%0),rest(%0),%#))][match(10 11 12 13 14,r(0))],first(%0),rest(%0),%#)];&W_NEWBIE_CHANNEL [u(GENERAL[and(match(/del /add /clear,first(%0)),u(wizard,%#))],v(O-DB))]=[u(WDEFNEWBIES[match(/del /add /clear,first(%0))],rest(%0))]
@fo ComSystem=@lock/UseLock me=Last:?*
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=[space(5)]: ComSystem Checkpoint Finished <END>;@pemit/silent me=Com: MAIN installation completed.  Finish work and cleanup...},{@pemit me=[space(5)]: ComSystem Checkpoint Finished <END>;@pemit me=Com: MAIN installation completed.  Finish work and cleanup...}
@parent ComSystem=functiondb
@tel monitordb=home
@tel helpdb=home
@tel optiondb=home
@tel functiondb=home
@tel aliasdb=home
@tel channeldb=home
@tel describedb=home
@lock ComSystem=#0
@swi/f [v(COMVER)]=*PENN*,{@pemit me=Com: Installing PENN flag patch... please wait...;@dolist setdiff(lcon(comsystem),[v(M-DB)] [v(F-DB)] [v(H-DB)])=@set ##=!no_command;@set ComSystem=wizard;@set ComSystem=!no_command}
@swi/f [v(VERSION)]|||[v(COMVER)]=*2.*|||TINY,{@fo ComSystem=@set ComSystem=command}
@swi/f [v(VERSION)]=*MURE*,{@fo ComSystem=@set ComSystem=command}
@swi/f [v(version)]=*Rhost*,@set Coms=indestructable
@swi/f [ucstr(version())]=*PENN*,{@pemit/silent me=Com: Finish on Install %[[get([get(comsystem/F-DB)]/version)]%].  Review the help on +WINSTALL before anything else.;@pemit/silent me=[space(5)]Type in: +help +winstall now please.},{@pemit me=Com: Finish on Install %[[get([get(comsystem/F-DB)]/version)]%].  Review the help on +WINSTALL before anything else.;@pemit me=[space(5)]Type in: +help +winstall now please.}
&VERSION me=
&COMVER me=
@set me=!quiet
