А как это сделать, если это оф.клиент отсылает сообщение "Я офлайн"?
Нет ведь возможности проверить, то ли на той стороне клиент вырубили, то ли просто человек сел играть в полноэкранную игру/смотреть полноэкранное кинцо и не трогает клиент.
Поставьте собеседникам Миранду

Хотя, есть один обходной путь. Нужно поставить SeenPlugin. Разработчики сегодня научили (придёт в ближайшем обновлении) мирандовскую реализацию протокола получать время, когда у контакта была последняя активность и складывать его в базу. А SeenPlugin берёт это значение и показывает его в меню контакта.
Если же вы используете Tipper, то можно выводить это время последней активности в подсказку. Для этого нужно в настройках Tipper создать пункт подсказки
Имя: ?translate(Last seen):
Значение: %lastseen_date% @ %lastseen_time%
Механизм такой же: протокол получает последнюю активность клиента, кладёт в базу, оттуда её берёт SeenPlugin и перекладывает в базу уже в свой раздел, а Tipper берёт информацию у SeenPlugin и выводит в подсказке.
Таким образом, можно примерно определить, имеет смысл писать человеку или он уже год активность не проявлял. Но описанную выше проблему "он выключил комп или ушёл кинцо смотреть на 2 часа?" это не решает.