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

[lua] Фрэймы

Содержание:
Более компактно это же описано в статье UI: OriginFrames.

Фрэймы заданные константами ORIGIN_FRAME_* можно получить с помощью функции BlzGetOriginFrame:
---@param frameType originframetype
---@param index integer
---@return framehandle
function BlzGetOriginFrame(frameType, index) end
Список всех originframetype выглядит так:

O​R​I​G​I​N_​F​R​A​M​E_​G​A​M​E_​U​I

local GAME_UI = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0)
  • Размер: 0:0
Так или иначе является родителем всех фрэймов, скрыв его вы увидите чёрный экран. Имеет родителя, которого можно получить с помощью функции BlzFrameGetParent:
local GAME_UI_PARENT = BlzFrameGetParent(GAME_UI)
Любые действия с которым вызывают фатал игры.

O​R​I​G​I​N_​F​R​A​M​E_​W​O​R​L​D_​F​R​A​M​E

local WORLD_FRAME = BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0)
  • Родитель: ORIGIN_FRAME_GAME_UI
  • Размер: 0:0
Фрэйм, в котором рисуются все игровые объекты. Можно использовать BlzFrameSetVisible чтоб скрыть от игрока происходящее на карте, например для выбора героя.
BlzFrameSetVisible(WORLD_FRAME, false)
Так же ему можно изменить точки крепления чтоб убрать чёрные рамки от интерфейса:
BlzFrameSetAllPoints(WORLD_FRAME,GAME_UI)

O​R​I​G​I​N_​F​R​A​M​E_​S​Y​S​T​E​M_​B​U​T​T​O​N

local SYSTEM_BUTTON  = {
	BlzGetOriginFrame(ORIGIN_FRAME_SYSTEM_BUTTON, 0), -- Меню
	BlzGetOriginFrame(ORIGIN_FRAME_SYSTEM_BUTTON, 1), -- Союзники
	BlzGetOriginFrame(ORIGIN_FRAME_SYSTEM_BUTTON, 2), -- Чат
	BlzGetOriginFrame(ORIGIN_FRAME_SYSTEM_BUTTON, 3) -- Задания
}
  • Родитель: неизвестен
  • Размер: 0.085:0.022

O​R​I​G​I​N_​F​R​A​M​E_​H​E​R​O_​B​A​R

  • Родитель: неизвестен
  • Размер: 0.038:0.35825
Является родителем для иконок героев. Скрытие этого фрэйма также скрывает все геройские иконки. Из-за поддержки широкоформатных разрешений, очень странно ведёт себя при попытке изменить точки крепления.

O​R​I​G​I​N_​F​R​A​M​E_​H​E​R​O_​B​U​T​T​O​N

local HERO_BUTTON= {
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON, 0), -- 1ый герой, клавиша F1
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON, 1), -- 2ой герой, клавиша F2
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON, 2), -- 3ий герой, клавиша F3
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON, 3), -- 4ый герой, клавиша F4
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON, 4), -- 5ый герой, клавиша F5
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON, 5), -- 6ой герой
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON, 6) -- 7ой герой
}
  • Родитель: ORIGIN_FRAME_HERO_BAR
  • Размер: 0.038:0.038
Иконки героев.

O​R​I​G​I​N_​F​R​A​M​E_​H​E​R​O_​H​P_​B​A​R

local HERO_HP_BAR   = {
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_HP_BAR, 0), -- Полоска жизни 1го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_HP_BAR, 1), -- Полоска жизни 2го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_HP_BAR, 2), -- Полоска жизни 3го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_HP_BAR, 3), -- Полоска жизни 4го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_HP_BAR, 4), -- Полоска жизни 5го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_HP_BAR, 5), -- Полоска жизни 6го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_HP_BAR, 6) -- Полоска жизни 7го героя
}
  • Родитель: ORIGIN_FRAME_HERO_BUTTON с тем же индексом
  • Размер: 0.038:0.003125
Полоски жизни под иконками героев.

O​R​I​G​I​N_​F​R​A​M​E_​H​E​R​O_​M​A​N​A_​B​A​R

local MANA_BAR= {
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_MANA_BAR, 0), -- Полоска маны 1го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_MANA_BAR, 1), -- Полоска маны 2го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_MANA_BAR, 2), -- Полоска маны 3го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_MANA_BAR, 3), -- Полоска маны 4го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_MANA_BAR, 4), -- Полоска маны 5го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_MANA_BAR, 5), -- Полоска маны 6го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_MANA_BAR, 6) -- Полоска маны 7го героя
}
  • Родитель: ORIGIN_FRAME_HERO_BUTTON с тем же индексом
  • Размер: 0.038:0.003125
Полоски маны под полосками жизни под иконками героев.

O​R​I​G​I​N_​F​R​A​M​E_​H​E​R​O_​B​U​T​T​O​N_​I​N​D​I​C​A​T​O​R

local HERO_BUTTON_INDICATOR = {
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON_INDICATOR, 0), -- Свечение вокруг иконки 1го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON_INDICATOR, 1), -- Свечение вокруг иконки 2го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON_INDICATOR, 2), -- Свечение вокруг иконки 3го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON_INDICATOR, 3), -- Свечение вокруг иконки 4го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON_INDICATOR, 4), -- Свечение вокруг иконки 5го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON_INDICATOR, 5), -- Свечение вокруг иконки 6го героя
	BlzGetOriginFrame(ORIGIN_FRAME_HERO_BUTTON_INDICATOR, 6) -- Свечение вокруг иконки 7го героя
}
  • Родитель: неизвестен
  • Размер: 0.0401:0.0397
Свечение вокруг иконки героя при получении уровня.

Продолжение следует...


Содержание
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
8
5 лет назад
Отредактирован Castiel
0
Не видел еще нигде этого, но если создать допустим фрейм не важно какой, но чаще всего возникает создание иконки пустой ячейки под предметы после скрытия всего интерфейса, то лучше привязывать как к родителю ORIGIN_FRAME_WORLD_FRAME. Если приязать к ORIGIN_FRAME_GAME_UI, то предметы будут под фреймами, ну как то так!
0
29
5 лет назад
Отредактирован nazarpunk
0
то лучше привязывать как к родителю ORIGIN_FRAME_WORLD_FRAME. Если приязать к ORIGIN_FRAME_GAME_UI
Вы посмотрите на родителя ORIGIN_FRAME_WORLD_FRAME.
Если приязать к ORIGIN_FRAME_GAME_UI, то предметы будут под фреймами, ну как то так!
Видимость фрэймов имеющих одного родителя определяется порядком их создания.
0
5
5 лет назад
0
NazarPunk:
Видимость фрэймов имеющих одного родителя определяется порядком их создания.
так то да, но просто привязать backdrop к game_ui, то предметы будут под фреймом, а если использовать фрейм в качестве пустой ячейки для предмета то лучше привязать в world_frame, тогда предметы будут отображаться поверх созданных фреймов)))
2
5
4 года назад
2
В редакторе беты Warcraft 3: Reforged черная рамка интерфейса теперь не убирается с помощью этого:
BlzFrameSetAllPoints(WORLD_FRAME,GAME_UI)
Я так понял, что черные рамки от интерфейса были в 1.31. В 1.32 их нет и не нужно изменять точки крепления:
BlzFrameSetAllPoints(WORLD_FRAME,GAME_UI)
Достаточно скрыть этот элемент интерфейса:
BlzFrameSetVisible(BlzGetFrameByName("ConsoleUIBackdrop", 0), false)
1
2
3 года назад
Отредактирован Rejuvenation
1
А все это работает для 1.26, 1.27?
И как можно узнать например фрейм, таблицы результатов в доте, которая справа вверху, галочка, выпадающий список типо?
0
13
2 года назад
Отредактирован deleted_114301
0
Та же самая статья, что и с оригинала, копипаста и ничего нового
Чтобы оставить комментарий, пожалуйста, войдите на сайт.