/**************************************************************************/ // jail.cpp - jail code /*************************************************************************** * The Dawn of Time v1.69r (c)1997-2004 Michael Garratt * * >> A number of people have contributed to the Dawn codebase, with the * * majority of code written by Michael Garratt - www.dawnoftime.org * * >> To use this source code, you must fully comply with the dawn license * * in licenses.txt... In particular, you may not remove this copyright * * notice. * **************************************************************************/ #include "include.h" /**************************************************************************/ //** Jail a player ** void do_jail( char_data *ch, char *argument ) { char arg1[MIL]; char_data *victim; argument = one_argument( argument, arg1 ); if(IS_NULLSTR(arg1)){ ch->println("syntax: jail <playername>"); ch->printlnf("The jail command transfers players to room %d.", ROOM_VNUM_JAIL); ch->println("Players can not delete in this room, nor talk on public channels."); return; } victim = get_whovis_player_world( ch, arg1 ); if(!victim){ ch->printlnf("You can't seem to find '%s' to jail.", arg1); return; } if (IS_NPC(victim)){ ch->println("You can't jail mobiles!"); return; } if ( victim->level >= ch->level ){ ch->println( "I don't think they'd like that too much."); return; } if(victim->in_room_vnum()==ROOM_VNUM_JAIL){ ch->println("They are already in jail."); return; } if(!get_room_index( ROOM_VNUM_JAIL )){ ch->println("There is no jail room set, this is configured in gameedit."); return; } char_from_room( victim ); char_to_room( victim, get_room_index( ROOM_VNUM_JAIL )); info_broadcast(victim ,"%s has been jailed!",victim->name); victim->println("`WYou `Chave `Rbeen `Bjailed `Yfor `Mbreaking `Cthe `ylaw!`x"); act( "You have placed $N in jail.", ch, NULL, victim, TO_CHAR ); ch->printlnf("The jail room is %d... the room should have the norecall and ooc flags set.", ROOM_VNUM_JAIL); ch->println("The code prevents players from deleting in this room."); } /**************************************************************************/ //** Release a Jailed Player ** void do_release( char_data *ch, char *argument ) { char arg1 [MIL]; char_data *victim; ROOM_INDEX_DATA *location; argument = one_argument( argument, arg1 ); if(IS_NULLSTR(arg1)){ ch->println( "Release whom from jail?" ); return; } victim = get_whovis_player_world( ch, arg1 ); if(!victim){ ch->printlnf("You can't seem to find %s to release.", arg1 ); return; } if (IS_NPC(victim)){ ch->println("You can't release mobiles!"); return; } if (( victim->level >= ch->level )) { ch->println( "You cannot release players that are a higher " "than or equal to level that you are."); return; } if(victim->in_room_vnum()!=ROOM_VNUM_JAIL) { ch->println("They aren't in jail."); return; } { char_from_room( victim ); if ( class_table[victim->clss].recall) { location = get_room_index( class_table[victim->clss].recall ); // Class } else { // Class recall room non-existant, check race room location = get_room_index( race_table[victim->race]->recall_room); // Race } char_to_room(victim, location); info_broadcast(victim ,"%s has been released from jail!",victim->name); victim->println("`BYou `Ghave `Ybeen `Rreleased `Mfrom `Cjail!`x"); act( "You have released $N from jail.", ch, NULL, victim, TO_CHAR ); } } /**************************************************************************/ /**************************************************************************/