/*Thanks to Turrican, Gruper, and Mansarde, without whom I would have given up on this project.
- Aragorn */
inherit COMMAND_BASE;
int cmd( object player ) {
object *corpses, corpse;
int i;
/* Obviously we'll only want to search player corpses */
corpses = filter( children( "/obj/corpse" ),
(: $1 && $1->query_property("player" ) :) );
/* Now we look for corpses they own */
corpses = filter( corpses,
(: $1 &&
$1->query_ownership() == $( this_player()->query_name() ) :) );
if( sizeof( corpses ) ) {
foreach( corpse in corpses ){
if ( member_array( player->query_name(), corpse->query_permitted() ) != -1 ){ /*Let's see if any of these corpses have already been permitted*/
i++;
} else {
/*
* The heart of the command, this adds the name to the corpses
* array of permitted players
*/
corpse->give_permission( player->query_name() );
}
}
} else {
/* Whoops, we don't have any corpses loaded */
add_failed_mess("You don't seem to have a corpse! Why not die and try "
"again?%^RESET%^\n");
return 0;
}
/* Let them know if we were successful or if we just wasted our time */
if( i == sizeof( corpses ) ){
write(capitalize(player->query_name()) + " is already permitted to "
"remove items from your corpse.%^RESET%^\n" );
} else {
write(capitalize(player->query_name()) + " is now permitted to "
"remove items from your corpse.%^RESET%^\n" );
tell_object(player, "%^BOLD%^%^GREEN%^You now have permission to get "
"items from " + this_player()->query_cap_name() +
"'s corpse.%^RESET%^\n");
}
return 1;
}
mixed *query_patterns() {
return ({ "<indirect:player>", (: cmd($1[0]) :) });
} /* query_patterns() */