in INTERP.H
DECLARE_DO_FUN( do_frecall );
in INTERP.C
{ "frecall", do_frecall, POS_DEAD, IM, LOG_NORMAL, 1 },
in ACT_WIZ.C
at the top add the function protocall
void do_frecall( CHAR_DATA *ch, char *argument );
at the end add this
/*
* forced recall for when a player was accidentally trapped in a
* no recall, no teleport, type area.
* It should only be used if the imm was at fualt for the mess
* It give a message on wiznet.
*
* (c) 2000 TAKA Ghost Dancer MUD Project
* a PYROX - ribbed for her pleasure - original idea!
*
* It will only transfer them to the temple vnum nowhere else
* so i believe it safe for a low level imm.
*/
void do_frecall( CHAR_DATA *ch, char *argument )
{
char arg[MAX_INPUT_LENGTH];
char buf[MAX_STRING_LENGTH];
CHAR_DATA *victim;
one_argument( argument, arg );
if ( arg[0] == '\0' )
{
send_to_char( "{RForce Recall whom?{x\n\r", ch );
return;
}
if ( ( victim = get_char_world( ch, arg ) ) == NULL )
{
send_to_char( "{RThey aren't here.{x\n\r", ch );
return;
}
if ( IS_NPC(victim) )
{
send_to_char( "{RNot on NPC's.{x\n\r", ch );
return;
}
if ( get_trust( victim ) >= get_trust( ch ) )
{
send_to_char( "{RYou failed.{x\n\r", ch );
return;
}
sprintf(buf,"$N force recalled %s",victim->name);
wiznet(buf,ch,NULL,WIZ_PENALTIES,WIZ_SECURE,0);
send_to_char( "Force Recall Done.\n\r", ch );
stop_fighting(victim,TRUE);
sprintf( buf, "%s %d", victim->name, ROOM_VNUM_TEMPLE );
do_transfer( ch, buf);
return;
}