Событие присылается при изменении объекта под курсором.
поля: state: string - может принимать следующие значения: - "interface" - курсор находится над элементом интерфейса, кроме основного 3d-view - "main_view_3d_none" - курсор находится на основном 3d-view, под ним нет юнитов - "main_view_3d_unit" - курсор находится на основном 3d-view, под ним находится юнит Для этого случая присылается дополнительное поле: unitId: ObjectId (not nil) - идентификатор юнита под курсором - "main_view_3d_device" - курсор находится на основном 3d-view, под ним находится устройство (не юниты, сундуки и пр.) Для этого случая присылаются дополнительные поля: deviceId: ObjectId (not nil) - идентификатор устройства под курсором canUse: boolean - можно ли использовать устройство в текущий момент (в частности, учитывается расстояние до него) - "main_view_3d_astral_unit" - курсор находится на основном 3d-view, под ним находится астральный юнит Для этого случая присылается дополнительное поле: unitId: ObjectId (not nil) - идентификатор астрального юнита под курсором - "main_view_3d_interactive_device_element" - курсор находится на интерактивном элементе какого-либо устройства, при работе с этим устройством. Для этого случая присылается дополнительные поля: deviceType: number (enum USDEV_...) - тип корабельного устройства Если это USDEV_SCANER, то дополнительные поля: type: number (enum HT_...) - тип хаба {HT_NONE, HT_UNKNOWN, HT_OUR, HT_ENEMYSHIP, HT_PORTAL, HT_ALLOD, HT_ISLAND} name: WString or nil - название хаба, если это HT_PORTAL