// for WIZ_PRESENT #include <creator.h> inherit "/cmds/base"; string format_data( object *items, object victim, object target ) { int size; string vname, tname; vname = victim->the_short(); tname = target->the_short(); switch( size = sizeof( items ) ) { case 0: return "No objects in " + vname + " were cloned by " + tname; case 1: return "One object, " + query_multiple_short( items ) + " in " + vname + "'s inventory was cloned by " + tname; default: return query_num( size, 100 ) + " objects in " + vname + "'s inventory were cloned by " + tname; } } /* format_data() */ void describe_objects( object player1, object player2 ) { string mess; mapping data; data = filter( unique_mapping( all_inventory( player1 ), (: $1->query_cloned_by() :) ), (: $1 == $(player2)->query_name() :) ); if ( !sizeof( data ) ) { data[ player1->query_name() ] = ({ }); } mess = implode( values( map( data, (: format_data( $2, $(player1), $(player2) ) :) ) ), "\n" ); tell_object( this_player(), "$P$compare$P$" + mess + "." ); } /* describe_objects() */ int cmd( object player1, object player2 ) { describe_objects( player1, player2 ); describe_objects( player2, player1 ); return 1; } /* cmd() */ mixed *query_patterns() { return ({ "<indirect:wiz-present> {against|with|and} " "<indirect:wiz-present>", (: cmd( $1[0][0], $1[1][0] ) :) }); } /* query_patterns() */