Reset an area. By Taka You may use this code freely as long as you credit
me by leaving the comments in tact. Simply type area and select the area
number then areset # and viola area is reset. On dancer i added the
ability to name the area as well by adding an is_number check and if not
is_number the use strprefix to compare to areas names.
in INTERP.C
{ "areset", do_areset, POS_DEAD, L3, LOG_ALWAYS, 1, CT_IMM, "" }, /* 1109A */
in INTERP.H
DECLARE_DO_FUN( do_areset ); /* 1109A */
in ACT_WIZ.C
/* 1109A */
/* Taka added area reset */
void do_areset args( ( CHAR_DATA *ch, char *argument ) )
{
char buf[MSL];
char arg[MIL];
int number;
AREA_DATA *pArea;
one_argument( argument, arg );
number = atoi(arg);
for ( pArea = area_first; pArea != NULL; pArea = pArea->next )
{
ROOM_INDEX_DATA *pRoomIndex;
if(pArea->vnum == number)
{
pArea->age = 999;
sprintf(buf, "{MArea {W%s {Mis being reset!{x\n\r", pArea->name);
send_to_char(buf, ch);
reset_area( pArea );
sprintf(buf,"{W%s {Ghas just been reset!{x\n\r",pArea->name);
wiznet(buf,NULL,NULL,WIZ_RESETS,0,0);
pArea->age = number_range( 0, 3 );
pRoomIndex = get_room_index( ROOM_VNUM_SCHOOL );
if ( pRoomIndex != NULL && pArea == pRoomIndex->area )
pArea->age = 15 - 2;
else if (pArea->nplayer == 0)
pArea->empty = TRUE;
}
}
return;
}