mixed *query_verb_info( void ) { return( ({ "", "OBJI", "OBJI to LIV" }) ); } mixed can_give( void ) { return( "Give what to who?" ); } mixed can_give_obj( object obj ) { if( obj->is_undroppable() ) { this_player()->targetted_action( "$N $vare unable to give away $o.", 0, obj ); return( 0 ); } return( "Give " + obj->query_id() + " to who?" ); } mixed can_give_obj_to_liv( object obj, string s, object liv ) { if( obj->is_undroppable() ) { this_player()->targetted_action( "$N $vare unable to give $o to $T.", liv, obj ); return( 0 ); } /* Should check if the target has room in it's inventory.*/ if( liv->is_container() == 0 ) { return( 0 ); } if( liv == this_player() ) return( "What's the point of giving something to yourself?" ); return( 1 ); } mixed do_give_obj_to_liv( object obj, string s, object liv ) { if( obj->is_worn() ) { this_player()->do_remove( obj ); this_player()->targetted_action( obj->query_remove_message(), 0, obj ); } if( obj->is_wielded() ) { this_player()->do_unwield( obj ); this_player()->targetted_action( obj->query_unwield_message(), 0, obj ); } if( obj->move( liv ) ) { this_player()->targetted_action( "$N $vgive $o to $T.", liv, obj ); } else { this_player()->targetted_action( "$N $vtry to give $o to $T, but $vfail.", liv, obj ); } }