Возвращает информацию о действии устройства. Например выстрел из пушки.
-- система: GameState -- библиотека: device -- объявление: function GetUsableDeviceActionInfo( usableDeviceId, actionIndex ) -- параметры: usableDeviceId: ObjectId (not nil) - идентификатор устройства actionIndex: number (int) - номер действия (должен попадать в диапазон [0:actionsCount-1] -- возвращаемое значение: table or nil: таблица с информацией о действии устройстве или nil, если ошибка, поля таблицы: name: WString - название действия description: ValuedText or nil - описание с подставленными текущими значениями параметров image: TextureId (UIState only) - пиктограмма действия enabled: boolean - доступность. Можно ли в принципе использовать это действие сейчас. false - если нельзя (например, включить скорость, находясь в ангаре, или поменять устройство, находясь не в ангаре) active: boolean - true, если это действие активно (это activeAction) cost: number (integer) or nil - цена действия в эманациях, если они требуются isPointed: boolean - требует ли действие указания точки на местности, если требует, то заданы следующие параметры: radius: number - радиус воздействия (только для действий, требующих указания точки на местности) range: number - максимальная дальность применения (только для действий, требующих указания точки на местности) minRange: number - минимальная дальность применения (только для действий, требующих указания точки на местности) cooldown: table or nil - если действие может иметь кулдаун, то таблица с полями: predictedCooldown: number (int64) - прогнозируемое время отката если выполнить действие в данный момент. Прогноз может быть неточным из-за упрощений в механике на клиенте по сравнению с сервером. durationMs: number (int64) - полное время текущего кд, 0 если в данный момент действие не в кд remainingMs: number (int64) - оставшееся время текущего кд, 0 если в данный момент действие не в кд -- пример: local info = device.GetUsableDeviceInfo( usableDeviceId ) if info and info.actionsCount > 0 then LogInfo( "Action list: ) local action = device.GetUsableDeviceActionInfo( usableDeviceId, 0 ) LogInfo( action.name ) else LogInfo( "No actions" ) end