Страница 1 из 11
Модератор форума: FanG, Аdmin, FantomICW, BoBaH_671 
Форум » S.T.A.L.K.E.R. Модификации » Помощь в моддинге » Скрипты, конфиги, логика, движок » [COP] GUI Окна поверх стандартных (Использование AddDialogToRender() и RemoveDialogToRender())
[COP] GUI Окна поверх стандартных
Украина  alex1197
Вторник, 28.11.2017, 19:50 | Сообщение # 1
Статус:
Отмычка:
Сообщений: 151
Награды: 6
Регистрация: 09.03.2014

GUI и Окна поверх стандартных


Доброго времени суток, господа. И так, знаю, много кто любит играться с GUI-интерфейсами. Но все наверняка знают что можно вывести скриптами какой-то свой элемент интерфейса на экран.
Естественно это - AddCustomStatic(string,bool) и RemoveCustomStatic(string):
Код

function staticToScreen()
local hud = get_hud()
local elementGUI = hud:GetCustomStatic("element_name")
if(lemenetGUI == nil) then
    hud:AddCustomStatic("element_name",true)
end
if(not db.actor:alive) then
    hud:RemoveCustomStatic("element_name")
end
end

Но беда в том что, все эти элементы будут под оригинальным интерфейсом с точки зрения "иерархии" элементов на экране, в самом низу. И с этаким элементом-статиком сильно не поиграешься.

- Что же делать тогда?
- Вариант есть!

Можно воспользоваться функциями AddDialogToRender(wnd) и RemoveDialogToRender(wnd) из класса get_hud()

Схема предельно простая:
Код

local hud = get_hud() -- Объявляем переменную которая ссылается на класс худа
local window = MyWindowDialog() -- Может быть любое ваше название класса CUIScriptWnd

hud:AddDialogToRender(window) -- Добавляет окно поверх интерфейса

hud:RemoveDialogToRender(window) -- Удаляет окно

-- Дальше можно вызывать функции из этого окна
window:ShowDialog(false/true) -- Показать окно, скрыв попутно интерфейс (true/false)
window:HideDialog() -- Скрывает окно
window:ВашаФункция() -- и так любая функция в этом окне


Допустим, Вам надо вывести прогресс бар в инвентаре, не знаю, может вы захотели отображать вес не в цифрах, а в виде шкалы которая заполняется и т.д. в зависимости от ваших желаний.
И тогда как мы поступим:





Теперь, после всех этапов, когда мы запустим игру, при открытии инвентаря, над значением веса будет зелёный прогресс бар, заполненный на все 100%.
Сообщение отредактировал alex1197 - Вторник, 28.11.2017, 19:55
  Злобная реклама
Вторник, 28.11.2017, 19:50
Статус:
Сообщений: 666
Регистрация: 09.03.2014
Форум » S.T.A.L.K.E.R. Модификации » Помощь в моддинге » Скрипты, конфиги, логика, движок » [COP] GUI Окна поверх стандартных (Использование AddDialogToRender() и RemoveDialogToRender())
Страница 1 из 11
Поиск: