Добавлен , опубликован

Основы Интерфейса

Содержание:
Кратко: Эта подстатья рассказывает как максимально быстро спрятать дефолтный интерфейс с наименьшими затратами. Если знать основные фреймы, в сможете спрятать и заменить собственными самодельными фреймами. И какие нативки могут помочь с этим справиться.
Есть несколько способов. Сам опробовал, и несколько пострадал. Как-то хотелось заменить все своими фреймами.
Первый способ.- скрыть дефолт через нативку BlzHideOriginFrames, а также убрать лишние
Давай рассмотрим пример с хайва.
Если вам не нужны какие-либо из этих дефолтных, можно использовать BlzHideOriginFrames(true), который скрывает все, кроме командных кнопок, чата, сообщений, TimerDialogs, Multiboards и LeaderBoards. Эти скрытые фреймы можно снова сделать видимыми, если вы найдете способ получить к ним доступ. Они не уничтожены, а просто скрыты.
После использования BlzHideOriginFrames(true) экран будет выглядеть так.
Кнопки способностей появятся, как только игрок выберет юнита или выделит отряд.
Начиная с Reforged, World Frame по умолчанию занимает весь экран. Но этот черный фон может все еще беспокоить. Это дополнительный BACKDROP Blizzard, добавленный для нижнего пользовательского интерфейса, но он не скрыт BlzHideOriginFrames, поэтому требуется дополнительная строка кода, которая скрывает:
BlzFrameSetVisible (BlzGetFrameByName ("ConsoleUIBackdrop", 0), false)
действие BlzFrameSetVisible
этим действием можно скрыть любой фрейм. Если конечно он является фреймом, действия с не существующим фреймом вызывает фатал. Однако, некоторые фреймы не существуют в какой то момент, пока не сделаешь какое-то условие: пример фрейм квестов не существует/не видим, пока не откроешь окно задании. Но все же если вам удастся скрыть, некоторые фреймы могут постоянно обновляться (пример при переключении юнита у вас меняется инфо-интерфейс), и они появляются в доле секунды, и исчезают. Не очень хорошо это бывает, но такие фреймы как правило зависят от родителя (пример инфо-интерфейс постоянно меняет панели при переключении, а что если его выключить?). Возможно, родитель виновен, если скрыть его. Еще проблема в том, что не все фреймы можно скрыть, задевает какой то игровой процесс и игра вылетает. Проще скрыть альтернативным методом.
То получим:
Есть и другие варианты, если вы хотите, чтобы фрейм видим для игры, но был невидимым для пользователей: например, можно уменьшить ySize.
BlzFrameSetSize (BlzGetFrameByName ("ConsoleUIBackdrop", 0), 0, 0,0001)
BlzFrameSetSize
такие фреймы очень помогают не нарушать игровой процесс: если скрывать фрейм обычным способом BlzFrameSetVisible, то игра вылетает. Или такое обычное сокрытие видимости еще не могла полностью скрыть фреймы, некоторые скрытые фреймы постоянно обновляются, и перед пользователем мерцают. А через уменьшение размера не бывает таких проблем. Но все же даже у BlzFrameSetSize бывают проблемы: не всем фреймам можно задать размер - вылетает игра. Также от уменьшения размера бывает что-то ломается (пример нарушение положения всех фреймов в инфо-панеле. Скрыл первый фрейм атаки, и все.
Просто к иконке атаки привязаны остальные иконки и текст. Почему так происходит поговорим в след уроке).
Рабочий вариант от Bergi, который полностью скрывает интерфейс. Сам немного доработал, какие то параметры указаны, и буду дорабатывать. Очевидно, что не все может быть, поэтому картоделу придется самому добавлять.
код
просто пишем HideEverything() если хотите скрыть все. В lua удобно работать. Иначе, придеться добавлять параметры.
        --полностью скрывает интерфейс
		--в параметры указывакют флаг фрейма, который вы хотите отобразить
        function HideEverything(ConsoleUIBackdrop,CommandBar,Inventar,InCover,InventoryText)
           BlzHideOriginFrames(true) --скрыть всё
           BlzEnableUIAutoPosition(false)
        
           --убираем черную полосу
           if not ConsoleUIBackdrop then
           BlzFrameSetVisible(BlzGetFrameByName("ConsoleUIBackdrop", 0), false)
           BlzFrameSetAbsPoint(BlzGetFrameByName("ConsoleUIBackdrop", 0), FRAMEPOINT_TOPRIGHT, 0, -0, 8)
           end
           --спрятать кнопки коммандной панели
           if not CommandBar then
                for i = 0, 11 do
                    BlzFrameSetSize(BlzGetFrameByName("CommandButton_" .. 0, 0), 0, 0)-- M в позиции 0,0
                    BlzFrameSetVisible(BlzGetFrameByName("CommandButton_"..i, 0), false) --отключить
               end
               --мертвая зона
               BlzFrameSetScale(BlzFrameGetChild(BlzGetFrameByName("ConsoleUI",0),5), 0.001) --рамка мёртвой зоны отключение
           end
           
           --если нужно отобразить инвентарь
           if Inventar then
                --центральная информационная панель
                --должны включить панель, чтобы видим был инвентарь
                local BottomCenterUI = BlzFrameGetChild(BlzGetFrameByName("ConsoleUI",0),1)
                BlzFrameSetVisible(BottomCenterUI, true)
                
                for a=0,5 do
                    local slot = BlzGetOriginFrame(ORIGIN_FRAME_ITEM_BUTTON, a)
                    BlzFrameSetVisible (slot, true)
                    --BlzFrameSetSize(slot, 0.039, 0.039)
                end
                
                
                --прячем текстуру
                if not InCover then
                    local Inv_cover = BlzFrameGetChild(BottomCenterUI,7)
                    BlzFrameClearAllPoints(Inv_cover)
                    BlzFrameSetAbsPoint(Inv_cover, FRAMEPOINT_CENTER, -8,-8)
                end
                
            end
            --это сокрытая надпись может внезапно появиться, например при перезагрузке 
            if not InventoryText then
                --убираем надпись
                BlzFrameSetScale(BlzGetFrameByName("InventoryText",0), 0.001)
            end
        end
Важно знать что BlzHideOriginFrames(true) имеет недостатки с отображением портрета и текстов хп/маны под портретом. Их не отобразить обратно. Ранее у меня отображалось, но в последнее время портрета и текстов под портретов не наблюдаю.
ссылка <= показан пример как отобразить сокрытые некоторые фреймы, а то забыл совсем.
если у вас заработает, иначе отказаться от этого способа и использовать другой, или как-то лично имитировать отображения текстов триггерами. Мое мнение, что тексты по портретом - не совсем важный параметр, его можно сымитировать, зачем повторять вариковский.
Второй способ - переместить «ConsoleUI»
Есть также некоторые другие варианты «скрытия» частей пользовательского интерфейса. Один из них - переместить «ConsoleUI» немного ниже, что необходимо сделать при инициализации карты, это позже приведет к сбоям.
Кто не понял зачем возвращать все на место, объясняю: фреймы привязаны к ConsoleUI точками. Со смещением Console и привязанные фреймы переместятся за ним.
BlzFrameSetAbsPoint(BlzGetFrameByName("ConsoleUI", 0), FRAMEPOINT_BOTTOM, 0.4, -0.18)
lua-код
local gameUI = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0)


--отображаем нужные элементы интерфейса
function ShowInterfaceE()
   LoadToc("templates.toc")
   --необходимо создать юнита, дабы отобразились кое-какие фреймы
   local unit = CreateUnit(Player(0), FourCC("hfoo"), 0, 0, 0)
                
   SelectUnitSingle(unit)
   TimerStart(CreateTimer(), 0.3, false, function()
                
   --создаем консольные текстуры (по сути переделанная в fdf-file ConsoleUI - убраны бока)
local Console = BlzCreateFrameByType("SIMPLEFRAME","MyConsole",BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0),"MyConsole",0)
--показать ConsoleUIBackdrop (при инициализации почему-то не показывается, только во время игры) w=0.8 h=0.13                BlzFrameClearAllPoints(BlzGetFrameByName("ConsoleUIBackdrop",0))             BlzFrameSetAbsPoint(BlzGetFrameByName("ConsoleUIBackdrop",0), FRAMEPOINT_BOTTOMLEFT, 0.0, 0.0)
--снова возвращаем Portrait на место w=0.06 h=0.08               BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT,0), true)     --BlzFrameClearAllPoints(BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT,0))    --BlzFrameSetAbsPoint(BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT,0), FRAMEPOINT_BOTTOMLEFT, 0.26, 0.03)
--показать Portrait HP/MANA (показываются тексты, когда выделен юнит) text w=0.06 h=0,016
local hpFrame = BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT_HP_TEXT, 0)
BlzFrameClearAllPoints(hpFrame)
BlzFrameSetAbsPoint(hpFrame, FRAMEPOINT_CENTER, 0.253, 0.024)
local mpFrame = BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT_MANA_TEXT, 0)
BlzFrameClearAllPoints(mpFrame)
BlzFrameSetAbsPoint(mpFrame, FRAMEPOINT_CENTER, 0.253, 0.008)
--центральная информационная панель с предметами
local BottomCenterUI = BlzFrameGetChild(BlzGetFrameByName("ConsoleUI",0),1)
--BlzFrameSetVisible(BottomCenterUI, true)
BlzFrameClearAllPoints(BottomCenterUI)
BlzFrameSetAbsPoint(BottomCenterUI, FRAMEPOINT_CENTER, 0.4025,0.0583)
--контейнер кнопки неактивного рабочего W=0.039 h=0.039 (Idle worker Button Container)     BlzFrameSetVisible(BlzFrameGetChild(BlzGetFrameByName("ConsoleUI",0),7), true)          BlzFrameClearAllPoints(BlzFrameGetChild(BlzGetFrameByName("ConsoleUI",0),7))
BlzFrameSetAbsPoint(BlzFrameGetChild(BlzGetFrameByName("ConsoleUI",0),7), FRAMEPOINT_BOTTOMLEFT, 0.0, 0.17)
--мини-карта w=0.139375 h=0.138125
BlzFrameClearAllPoints(BlzGetFrameByName("MiniMapFrame",0))
BlzFrameSetAbsPoint(BlzGetFrameByName("MiniMapFrame",0), FRAMEPOINT_BOTTOMLEFT, 0.009375, 0.006875)
--мини-кнопки w=0.023125 h=0.020625*5
BlzFrameClearAllPoints(BlzGetFrameByName("MinimapSignalButton",0))
BlzFrameSetAbsPoint(BlzGetFrameByName("MinimapSignalButton",0), FRAMEPOINT_TOPLEFT, 0.154375, 0.14375)      BlzFrameClearAllPoints(BlzGetFrameByName("MiniMapTerrainButton",0))
BlzFrameSetAbsPoint(BlzGetFrameByName("MiniMapTerrainButton",0), FRAMEPOINT_TOPLEFT, 0.154375, 0.121875)
BlzFrameClearAllPoints(BlzGetFrameByName("MiniMapAllyButton",0))
BlzFrameSetAbsPoint(BlzGetFrameByName("MiniMapAllyButton",0), FRAMEPOINT_TOPLEFT, 0.154375, 0.1)
BlzFrameClearAllPoints(BlzGetFrameByName("MiniMapCreepButton",0))
BlzFrameSetAbsPoint(BlzGetFrameByName("MiniMapCreepButton",0), FRAMEPOINT_TOPLEFT, 0.154375, 0.0775)
BlzFrameClearAllPoints(BlzGetFrameByName("FormationButton",0))
BlzFrameSetAbsPoint(BlzGetFrameByName("FormationButton",0), FRAMEPOINT_TOPLEFT, 0.154375, 0.05)   
--коммандная панель w=0.1745 h=0.129
BlzFrameClearAllPoints(BlzGetFrameByName("CommandBarFrame",0))
BlzFrameSetAbsPoint(BlzGetFrameByName("CommandBarFrame",0), FRAMEPOINT_CENTER, 0.7+0.0048, 0.146/2-0.0045)
--панель SimpleInventoryCover w = 0.128 h = 0.175
local InventoryCover = BlzFrameGetChild(BottomCenterUI,7)
--BlzFrameSetVisible(InventoryCover, true)
BlzFrameClearAllPoints(InventoryCover)
BlzFrameSetAbsPoint(InventoryCover, FRAMEPOINT_BOTTOMRIGHT, 0.6, 0.0)
--чат (не работает)
 BlzFrameClearAllPoints(BlzGetOriginFrame(ORIGIN_FRAME_CHAT_MSG, 0))
BlzFrameSetAbsPoint(BlzGetOriginFrame(ORIGIN_FRAME_CHAT_MSG, 0), FRAMEPOINT_BOTTOMRIGHT, 0.4, 0.3)
BlzFrameClearAllPoints(BlzGetOriginFrame(ORIGIN_FRAME_UNIT_MSG, 0))
BlzFrameSetAbsPoint(BlzGetOriginFrame(ORIGIN_FRAME_UNIT_MSG, 0), FRAMEPOINT_BOTTOMRIGHT, 0.4, 0.3)
                    
GroupRemoveUnit(QueueOrders.Group,unit)
RemoveUnit(unit)
print("done")
DestroyTimer(GetExpiredTimer())
end)
end

--инициируем игру
   --BlzEnableUIAutoPosition(false)
   --прячем консоль (консольные текстуры вместе с потомками перемещены за пределы экрана, и мы их не видим)
   BlzFrameSetAbsPoint(BlzGetFrameByName("ConsoleUI", 0), FRAMEPOINT_BOTTOM, 0.4, -0.18)
   --Portrait не прячется, но в начале прячем. Тк не красиво будет, тк задержка появления нижней консоли. задержка создана из-за дурацких текстов под портретом
BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT,0), false)
--BlzFrameClearAllPoints(BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT,0))
--BlzFrameSetAbsPoint(BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT,0), FRAMEPOINT_BOTTOM, 0.4, -0.18)
--прячем неактивную кнопку рабочего
BlzFrameSetVisible(BlzFrameGetChild(BlzGetFrameByName("ConsoleUI",0),7), false)
--отображаем нужные элементы
ShowInterfaceE()
--скрываем мертвую рамку командной панели
BlzFrameSetScale(BlzFrameGetChild(BlzGetFrameByName("ConsoleUI",0),5), 0.001)
недостатки этого альтернативного метода:
опустим интерфейс, вернем нужные части на место. Однако, минусом остаются - сообщения чата, и системные желтые подсказки вроде текста при нацеливании “укажите цель” или текст, если запрещено что-то делать, выдаст описание, и многие другие тексты.
хоть интерфейс ConsoleUI опущен вниз, тексты вниз почему не будут опущены, и остаются в пределах экрана. Они будут всегда появляться внизу экрана, если фрейм ConsoleUI опущен внизу. Не как раньше. Просто не красиво смотрится. Поднять тексты вверх я не смог никак, тк не мог найти фреймы отвечающие за это безобразие.
Вывод:
  • Когда вы наводите абилку, у вас снизу обычно текст выскакивал: "выберите цель". Описания всех целевых и предупреждающих подсказок указаны в константах/раздел интерфейса, нужно стереть их. А вместо них придется иммитировать свои подсказки на экране.
  • Эти подсказки/чат можно скрыть. у них есть фреймы, выводящие сбоку сообщения.
  • Возможно, у вас будет интефейс, который скроет эти тексты. Можно текстурами все закрыть.
Третий способ - убрать текстуры ConsoleUI, заменив импортом на пустые
кратко: можно заменить все текстуры ConsoleUI на пустые. Этот способ на крайне случай, если не подошли два варианта выше предложенные автором. Мне кажется они кажутся не идеальными из-за текстов хп и мана под портретом, ибо их не видно в игре. и текстов сообщения чата или системных сообщении, тк торчат в некрасива смотрятся, и их не сдвинуть (для перемещения нужно двигать фрейм ConsoleUI). Тогда вам не нужно будет сдвигать фрейм ConsoleUI
Мертвая зона командной панели
при перестановке / сокрытии вам будет мешать этот фрейм. По причине не знании и пр.
Невидимый фрейм В позиции командной панели, где находятся 12 кнопок CommandButton сверху наложен невидимый фрейм, который блокирует щелчок мышью в этом месте. Внимание: для тех кто в танке, объясняю, что по факту этот фрейм никак не влияет на работу существующих 12 кнопок панели. Но стоит их заменить самодельными кнопками, или поставить свой фрейм в эту область, у вас тут же перестают работать кнопки. Просто этот “невидимый” фрейм находится выше самодельных кнопок, никак не опустить его уровнем ниже, и блокирует нажатие и клики по самодельным фреймам. Короче, из-за него ничего не можем сделать. Некоторые новички могли бы не понять из-за чего происходила ошибка, когда перемещали свои кнопки в область.
На положение и размер этого фрейма влияет ConsoleUI, т.е. ConsoleUI является родителем интерфейса, в том числе нашего “невидимого фрейма”. поэтому до Warcraft 3 V1.32.6 предлагалось сделать что-то с «ConsoleUI», т.е. переместить ConsoleUI за пределами экрана. Но это вам придется слишком много переделывать, тк вместе с ConsoleUI перемещаются Console Texture и многие другие вещи.
Естественно нашлось другое решение:
С 1.32.6 можно получить доступ к этому фрейму и скрыть его напрямую с помощью такого действия.
BlzFrameSetVisible(BlzFrameGetChild(BlzGetFrameByName("ConsoleUI",0),5), false)
или
BlzFrameSetScale(BlzFrameGetChild(BlzGetFrameByName("ConsoleUI",0),5), 0.001)
ИЛИ:
Никаких проблем думаю будет для simpleframe, который можно поднять выше, чем невидимый фрейм. А вот с обычными фреймами такое сделать никак. У обычных фреймов древовидная зависимость “родитель-ребенок”, повышение или понижение влияет только между детьми.
BlzEnableUIAutoPosition
Когда кто-то планирует переместить некоторые исходные кадры, также рекомендуется использовать эту строку
BlzEnableUIAutoPosition (false)
Это остановит репозицию некоторых из этих встроенных фреймов, когда пользователь изменяет разрешение или windowMode.Мб мне это помогло бы ранее с перестановками, щас уже поздно думать.
Pre Reforged Warcraft 3 V1.31
В версии 1.31.1 игровая площадка не доходила до низа. Можно было исправить с помощью строчки кода, но black Background в нижней части в старых версиях не существовало. Следующая строка jass расширяет мир до полноэкранного режима. World_FRAME скопирует все точки Game_UI.
BlzFrameSetAllPoints(BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0), BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0))
Это тогда фрейм World Frame был заменой сегодняшним расширенным возможностям патча 1.32.
в 1.32 расширенного. Код, который превращает мир в полноэкранный режим.

Заключение

ИТОГО: спрятать можно 3 способами (если говорим про вариковские фреймы, то вам нужно подбирать каждый из этих способов. Какой то мб не подойти, переходим к следующему, и так далее):
  • есть специальная нативка сокрытия фрейма BlzFrameSetVisible (frame, false) не все фреймы можно скрыть, тк есть такие фреймы, которые постоянно обновляются. ты скрываешь, а они снова показывают. Пример 1: Если выделить юнита, то спрятанный фрейм инфо-панели покажется на доли секунды, прежде чем спрятаться. Это внутри варкрафта показывает, но наша нативка тут же прячет, и все. Обычно если выбрать объекты на карте, у вас обновляется инфа-панель, короче переключается на объект. Можно повторить несколько раз - попробовать выделить объекты, и это будет не очень красиво смотреться, тут опять появляется и тут же исчезает. Почему здесь появляется информация о юните, если она должна быть сокрытой? Не очень хорошо смотрелось бы. Пример 2: Некоторые фреймы могут мерцать - такие как правило внутриигровым таймером обновляются, показываются на доли секунды, потом прячутся, и потом по снова показываются. И так без конца. Ну и можно перейти к главному: еще можешь сокрытием задеть какой то игровой процесс, и привести может еще и к фаталу. поэтому лучше сокрыть их другими способами, описанные ниже. Помните, что чаще всего удобнее было бы прятать не этого фрейма, а родителя. Именно он отвечает за отображения потомка, и его обновление. По его причине нельзя полностью скрыть Если есть возможность использовать этот способ, то дерзайте. Но если не получается скрыть, переходим к след способу
  • изменить размер BlzFrameSetScale(frame, 0.001) мы можем такой малюсенький размер указать, что его совсем не видно. Так у вас не будет вылетать от закрытия какого процесса. а также поможет от мерцающих и появляющихся фреймов. Но может вылететь, если фрейм не имеет размеров или не приспособлен к этому. Ну еще могут быть проблемы, если к вашему фрейму привязаны другие фреймы с помощью точек framepoints. Ширина и высота прямоугольника задают размеры фрейма, то есть изображение имеет несколько точек - 9 точек (центр, лево, право, вверх, низ, и 4 угла), а если обнулить размеры, точки все в центре лежат. это может разрушить расположение других фреймов, они будет примагничены к центру.
  • фрейм за пределы экрана сдвинуть - самый безопасный. Однако, это делать нужно с фреймами которые существуют. Обычно с невидимыми-не существующими фреймами лучше не работать - игра вылетает. пример BlzFrameSetAbsPoint(frame, FRAMEPOINT_BOTTOM, 0.4, -0.18)

Содержание
`
ОЖИДАНИЕ РЕКЛАМЫ...
25
Кто-нибудь сталкивался мб. Я не знаю как это нормально показать на скрине, но внизу есть какая-то странная прозрачная полоска, под которой не рендерятся тени юнитов и спецэффектов на рельефе. Прям вот натурально их срезает.
Это можно убрать как-то?
Загруженные файлы
27
poisoNDealer, сначала не сразу понял. Там типа подсвечивается снизу?
14
native DzFrameHideInterface takes nothing returns nothing
ещё нативок для фреймов
native DzFrameCageMouse takes integer frame,boolean enable returns nothing
native DzFrameClearAllPoints takes integer frame returns nothing
native DzFrameEditBlackBorders takes real upperHeight,real bottomHeight returns nothing
native DzFrameFindByName takes string name,integer id returns integer
native DzFrameGetAlpha takes integer frame returns integer
native DzFrameGetChatMessage takes nothing returns integer
native DzFrameGetCommandBarButton takes integer row,integer column returns integer
native DzFrameGetEnable takes integer frame returns boolean
native DzFrameGetHeight takes integer frame returns real
native DzFrameGetHeroBarButton takes integer buttonId returns integer
native DzFrameGetHeroHPBar takes integer buttonId returns integer
native DzFrameGetHeroManaBar takes integer buttonId returns integer
native DzFrameGetItemBarButton takes integer buttonId returns integer
native DzFrameGetMinimap takes nothing returns integer
native DzFrameGetMinimapButton takes integer buttonId returns integer
native DzFrameGetName takes integer frame returns string
native DzFrameGetParent takes integer frame returns integer
native DzFrameGetPortrait takes nothing returns integer
native DzFrameGetText takes integer frame returns string
native DzFrameGetTextSizeLimit takes integer frame returns integer
native DzFrameGetTooltip takes nothing returns integer
native DzFrameGetTopMessage takes nothing returns integer
native DzFrameGetUnitMessage takes nothing returns integer
native DzFrameGetUpperButtonBarButton takes integer buttonId returns integer
native DzFrameGetValue takes integer frame returns real
native DzFrameHideInterface takes nothing returns nothing
native DzFrameSetAbsolutePoint takes integer frame,integer point,real x,real y returns nothing
native DzFrameSetAllPoints takes integer frame,integer relativeFrame returns boolean
native DzFrameSetAlpha takes integer frame,integer alpha returns nothing
native DzFrameSetAnimate takes integer frame,integer animId,boolean autocast returns nothing
native DzFrameSetAnimateOffset takes integer frame,real offset returns nothing
native DzFrameSetEnable takes integer name,boolean enable returns nothing
native DzFrameSetFocus takes integer frame,boolean enable returns boolean
native DzFrameSetFont takes integer frame,string fileName,real height,integer flag returns nothing
native DzFrameSetMinMaxValue takes integer frame,real minValue,real maxValue returns nothing
native DzFrameSetModel takes integer frame,string modelFile,integer modelType,integer flag returns nothing
native DzFrameSetParent takes integer frame,integer parent returns nothing
native DzFrameSetPoint takes integer frame,integer point,integer relativeFrame,integer relativePoint,real x,real y returns nothing
native DzFrameSetPriority takes integer frame,integer priority returns nothing
native DzFrameSetScale takes integer frame,real scale returns nothing
native DzFrameSetScript takes integer frame,integer eventId,string func,boolean sync returns nothing
native DzFrameSetScriptByCode takes integer frame,integer eventId,code funcHandle,boolean sync returns nothing
native DzFrameSetSize takes integer frame,real w,real h returns nothing
native DzFrameSetStepValue takes integer frame,real step returns nothing
native DzFrameSetText takes integer frame,string text returns nothing
native DzFrameSetTextAlignment takes integer frame,integer align returns nothing
native DzFrameSetTextColor takes integer frame,integer color returns nothing
native DzFrameSetTextSizeLimit takes integer frame,integer size returns nothing
native DzFrameSetTexture takes integer frame,string texture,integer flag returns nothing
native DzFrameSetTooltip takes integer frame,integer tooltip returns nothing
native DzFrameSetUpdateCallback takes string func returns nothing
native DzFrameSetUpdateCallbackByCode takes code funcHandle returns nothing
native DzFrameSetValue takes integer frame,real value returns nothing
native DzFrameSetVertexColor takes integer frame,integer color returns nothing
native DzFrameShow takes integer frame,boolean enable returns nothing
25
poisoNDealer, сначала не сразу понял. Там типа подсвечивается снизу?
Не, там вот именно если под этой узкой полоской оказывается тень, то эта тень не прорисовывается. Мне кажется, что это какой-то фрейм дефолтный, но я хз.
Кстати, вверху есть ещё какой-то невидимый фрейм в районе ресурс бара и коммандных кнопок, который блочит события мыши.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.