/***************************************************************************
* Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, *
* Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. *
* *
* Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael *
* Chastain, Michael Quan, and Mitchell Tse. *
* *
* Envy Diku Mud improvements copyright (C) 1994 by Michael Quan, David *
* Love, Guilherme 'Willie' Arnold, and Mitchell Tse. *
* *
* EnvyMud 2.0 improvements copyright (C) 1995 by Michael Quan and *
* Mitchell Tse. *
* *
* EnvyMud 2.2 improvements copyright (C) 1996, 1997 by Michael Quan. *
* *
* In order to use any part of this Envy Diku Mud, you must comply with *
* the original Diku license in 'license.doc', the Merc license in *
* 'license.txt', as well as the Envy license in 'license.nvy'. *
* In particular, you may not remove either of these copyright notices. *
* *
* Much time and thought has gone into this software and you are *
* benefitting. We hope that you share your changes too. What goes *
* around, comes around. *
* *
* Wiznet 0.1 improvements copyright (C) 1996 by The Maniac. *
* Written by The Maniac from Mythran Mud. *
* *
* History: *
* 07/28/96 0.1 Initial version *
* 08/14/97 0.1a Rewrote do_wiznet from scratch - Zen *
***************************************************************************/
#if defined( macintosh )
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "merc.h"
void do_wiznet( CHAR_DATA* ch, char *argument )
{
char arg[ MAX_STRING_LENGTH ];
CHAR_DATA * rch;
rch = get_char( ch );
if ( !authorized( rch, "wiznet" ) )
return;
one_argument( argument, arg );
if ( arg[0] == '\0' )
{
send_to_char( "[ Keyword ] Option\n\r", ch );
send_to_char( IS_SET( rch->pcdata->wiznet, WIZ_ON )
? "[+WIZNET ] Wiznet is on.\n\r"
: "[-wiznet ] Wiznet is off.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_TICKS )
? "[+TICKS ] You see are notified of ticks.\n\r"
: "[-ticks ] You aren't notified of ticks.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_LOGINS )
? "[+LOGINS ] You are notified of logins.\n\r"
: "[-logins ] You aren't notified of logins.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_DEATHS )
? "[+DEATHS ] You are notified of deaths.\n\r"
: "[-deaths ] You aren't notified of deaths.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_RESETS )
? "[+RESETS ] You are notified of area resets.\n\r"
: "[-resets ] You aren't notified of area resets.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_FLAGS )
? "[+FLAGS ] You are notified of KILLER, THIEF and PK flags.\n\r"
: "[-flags ] You aren't notified of KILLER, THIEF and PK flags.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_SACCING )
? "[+SACCING ] \n\r"
: "[-saccing ] \n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_LEVELS )
? "[+LEVELS ] You are notified when a player levels.\n\r"
: "[-levels ] You aren't notified when a player levels.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_SECURE )
? "[+SECURE ] You are notified of all logs.\n\r"
: "[-secure ] You aren't notified of logs.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_SWITCHES )
? "[+SWITCHES ] You are notified of switching immortals.\n\r"
: "[-switches ] You aren't notified of switching immortals.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_SNOOPS )
? "[+SNOOPS ] You are notified of other immortals snoops.\n\r"
: "[-snoops ] You aren't notified of other immortals snoops.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_RESTORE )
? "[+RESTORE ] You are notified of all restores.\n\r"
: "[-restore ] You aren't notified of restores.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_LOAD )
? "[+LOAD ] You are notified of all mloads and oloads.\n\r"
: "[-load ] You aren't notified of mloads and oloads.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_NEWBIE )
? "[+NEWBIE ] You are notified of incoming newbies.\n\r"
: "[-newbie ] You aren't notified of incoming newbies\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_SPAM )
? "[+SPAM ] You are notified of input spamming.\n\r"
: "[-spam ] You aren't notified of input spamming.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_CHAT )
? "[+CHAT ] \n\r"
: "[-chat ] \n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_DEBUG )
? "[+DEBUG ] You are notified of all bugs.\n\r"
: "[-debug ] You aren't notified of bugs.\n\r"
, ch );
send_to_char( WCHAN( rch, WIZ_PETITION )
? "[+PETITION ] You can hear player petitions.\n\r"
: "[-petition ] You can't hear player petitions.\n\r"
, ch );
}
else
{
char buf [ MAX_STRING_LENGTH ];
int bit;
bool fSet;
if ( arg[0] == '+' ) fSet = TRUE;
else if ( arg[0] == '-' ) fSet = FALSE;
else
{
send_to_char( "Wiznet: config -option or +option?\n\r", ch );
return;
}
if ( !str_cmp( arg+1, "ticks" ) ) bit = WIZ_TICKS;
else if ( !str_cmp( arg+1, "logins" ) ) bit = WIZ_LOGINS;
else if ( !str_cmp( arg+1, "deaths" ) ) bit = WIZ_DEATHS;
else if ( !str_cmp( arg+1, "resets" ) ) bit = WIZ_RESETS;
else if ( !str_cmp( arg+1, "flags" ) ) bit = WIZ_FLAGS;
else if ( !str_cmp( arg+1, "saccing" ) ) bit = WIZ_SACCING;
else if ( !str_cmp( arg+1, "levels" ) ) bit = WIZ_LEVELS;
else if ( !str_cmp( arg+1, "secure" ) ) bit = WIZ_SECURE;
else if ( !str_cmp( arg+1, "switches" ) ) bit = WIZ_SWITCHES;
else if ( !str_cmp( arg+1, "snoops" ) ) bit = WIZ_SNOOPS;
else if ( !str_cmp( arg+1, "restore" ) ) bit = WIZ_RESTORE;
else if ( !str_cmp( arg+1, "load" ) ) bit = WIZ_LOAD;
else if ( !str_cmp( arg+1, "newbie" ) ) bit = WIZ_NEWBIE;
else if ( !str_cmp( arg+1, "spam" ) ) bit = WIZ_SPAM;
else if ( !str_cmp( arg+1, "chat" ) ) bit = WIZ_CHAT;
else if ( !str_cmp( arg+1, "debug" ) ) bit = WIZ_DEBUG;
else if ( !str_cmp( arg+1, "petition" ) ) bit = WIZ_PETITION;
else if ( !str_cmp( arg+1, "wiznet" ) ) bit = WIZ_ON;
else
{
send_to_char( "Wiznet: config which option?\n\r", ch );
return;
}
if ( fSet )
{
SET_BIT ( rch->pcdata->wiznet, bit );
sprintf( buf, "%s is now ON.\n\r", arg+1 );
buf[0] = UPPER( buf[0] );
send_to_char( buf, ch );
}
else
{
REMOVE_BIT ( rch->pcdata->wiznet, bit );
sprintf( buf, "%s is now OFF.\n\r", arg+1 );
buf[0] = UPPER( buf[0] );
send_to_char( buf, ch );
}
}
return;
}
void wiznet( CHAR_DATA *ch, int chan, int level, const char *string )
{
DESCRIPTOR_DATA *d;
char buf[ MAX_STRING_LENGTH ];
buf[ 0 ] = '\0';
strcat( buf, "&+b[&+mWIZNET&+b]&n" );
switch ( chan )
{
default:
strcat( buf, "" );
break;
case WIZ_TICKS:
strcat( buf, "[TICK] " );
break;
case WIZ_DEATHS:
strcat( buf, "[DEATH] " );
break;
case WIZ_RESETS:
strcat( buf, "[RESET] " );
break;
case WIZ_FLAGS:
strcat( buf, "[FLAG] " );
break;
case WIZ_SACCING:
strcat( buf, "[SACCING] " );
break;
case WIZ_LEVELS:
strcat( buf, "[LEVEL] " );
break;
case WIZ_SECURE:
strcat( buf, ">> " );
break;
case WIZ_SWITCHES:
strcat( buf, "[SWITCH] " );
break;
case WIZ_SNOOPS:
strcat( buf, "[SNOOP] " );
break;
case WIZ_RESTORE:
strcat( buf, "[RESTORE] " );
break;
case WIZ_LOAD:
strcat( buf, "[LOAD] " );
break;
case WIZ_NEWBIE:
strcat( buf, "[NEWBIE] " );
break;
case WIZ_SPAM:
strcat( buf, "[SPAM] " );
break;
case WIZ_CHAT:
strcat( buf, "[CHAT] " );
break;
case WIZ_DEBUG:
strcat( buf, "[**DEBUG**] " );
break;
case WIZ_PETITION:
strcat( buf, " " );
break;
}
strcat( buf, string );
strcat( buf, "\n\r" );
for ( d = descriptor_list; d; d = d->next )
{
if ( d->connected == CON_PLAYING
&& !d->original
&& IS_IMMORTAL( d->character )
&& get_trust( d->character ) >= level
&& WCHAN( d->character, chan )
&& WCHAN( d->character, WIZ_ON )
&& d->character != ch
&& ( ch ? can_see( d->character, ch ) : TRUE ) )
send_to_char( buf, d->character );
}
return;
}