fire64 писал: Да потому, что ты собирался писать свою VGUI.
свою писать не получится по простой причине - она будет несовместима с модами. А даже если мне и удастся каким-то чудом их совместить, всё равно это будет больше гемороя, чем пользы.
Задача простая - завести стандартный vgui.dll чтобы он хоть как-то реагировал на вызовы движка и клиента.
В аттаче - текущая заглушка. С нею моды не вылетают, т.е. VGUI-указатели как минимум не пустые (хотя и не факт что правильные).
Это тебе в качестве референса. Можно написать отдельную маленькую аппликуху для теста, клиент-движок не обязателен.
VGui_Startup - вызывается до загрузки клиентки и каждый раз при смене уровня (изменяет текущий размер окна вгуи).
VGui_Shutdown - когда весь двиг уходит в шутдаун.
VGui_Paint - вызывается из движка каждый кадр. Тут, собственно и кроется засада - я не знаю какую функцию надо вызывать у этого долбаного вгуи, чтобы он в оконцове вызвал сквозь клиентку
VGui_ViewportPaintBackground, который по идее должен рисовать всё что ему клиент насоздавал.
VGui_GetPanel - корневая панелька, которую создает движок и подсовывает клиенту. Собственно последние две функции доступны из клиента, остальные - чисто движковые.
Но, повторюсь, это совершенно неважно. С таким же успехом можно этот кусочек кода из клиента перенести в общее приложение и экспериментировать с вызовами прямо в нем, общей сути это не меняет.
Итак, повторюсь, основная задача - заставить Vgui_ViewportPaintBackground вызываться какждый кадр.
В халфовском клиенте его вызов происходит из void TeamFortressViewport::paintBackground(). а тот в свою очередь - непосредственно из vgui.dll. Вывод очевиден - надо в движке каждый кадр вызывать у VGUI некий глобальный тчинк (по идее из корневой панельки), а тот в свою очередь будет дергать paintBackground у разных класов и дочерних панелей.
Фишка в том, что я не знаю, какая функция у VGUI.DLL основная.
К тому же они ведь могут не вызваться тупо по той причине что им не установлен режим visible, вообщем масса всяких причин может быть.
Так что необходимо создать такую корневую панель, у которой всё это будет работать. Я думаю всё дело в этом.
Собственно в этом и заключается помощь, о которой я тебя попросил.
Особых знаний тут, я думаю. не требуется, скорее терпение, умение логических осмысливать происходящее, анализировать те или события и просто немного свободного времени
Вложение: vgui_int.rar (1.3 кб)
Этот файл был скачан 425 раз.
Scrama писал: Хм... кустайл с автолумами симпатичным должен быть
там ровно одна текстурка с лумой.
Почему остальные не светятся я не знаю. Либо им изначально неположено, либо у них палитра не совпадает с квейковской.
Во втором случае поможет extragen и пересборка карты.