HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)
Отправлено Smykov 02-10-2017 в 19:31:
Вопросы по поводу ресурс-файлов(valve/resource).
1) Пример: OptionsSubMouse.res.
//Фрагмент описывающий "бегунок" для чувствительности мыши
"Slider"
{
"ControlName" "CCvarSlider"
"fieldName" "Slider"
"xpos" "40"
"ypos" "222"
"wide" "272"
"tall" "40"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "6"
}
Как программа обращается к элементам, описанным через ресурс-файл? В коде(проекта VS) никаких упоминаний не удалось найти.
2) Как вообще использовать элементы, описанные через ресурс-файл? То есть, как их вывести на экран?
Например, в GameMenu.res описаны пункты главного меню, которые содержат команды, исполняющиеся при нажатии на них.
//Find server(Найти сервер)
"9"
{
"label" "#GameUI_GameMenu_FindServers"
"command" "OpenServerBrowser"
"notsingle" "1"
}
Не могу понять, где описывается команда OpenServerBrowser? Впрочем, как и остальные.
3) Мне бы статейки какие-нибудь на эту тему, может есть? Даже, если от старых версий есть, скиньте пожалуйста, просто из интереса почитать.
Отправлено JPEG 02-10-2017 в 20:01:
Цитата:
semerjon писал:
Вопросы по поводу ресурс-файлов(valve/resource).
1) Пример: OptionsSubMouse.res.
//Фрагмент описывающий "бегунок" для чувствительности мыши
"Slider"
{
"ControlName" "CCvarSlider"
"fieldName" "Slider"
"xpos" "40"
"ypos" "222"
"wide" "272"
"tall" "40"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "6"
}
Как программа обращается к элементам, описанным через ресурс-файл? В коде(проекта VS) никаких упоминаний не удалось найти.
2) Как вообще использовать элементы, описанные через ресурс-файл? То есть, как их вывести на экран?
Например, в GameMenu.res описаны пункты главного меню, которые содержат команды, исполняющиеся при нажатии на них.
//Find server(Найти сервер)
"9"
{
"label" "#GameUI_GameMenu_FindServers"
"command" "OpenServerBrowser"
"notsingle" "1"
}
Не могу понять, где описывается команда OpenServerBrowser? Впрочем, как и остальные.
3) Мне бы статейки какие-нибудь на эту тему, может есть? Даже, если от старых версий есть, скиньте пожалуйста, просто из интереса почитать.
если ты про хл сдк, то там и не должны упоминаться эти ресурс файлы, ведь они появились позже, в стим-версии хл и хл2. Т.е. другие dll за это отвечают. Хотя в кандишн зеро, были дополнительные пункты меню, как и в zbot для кс 1.6, но, думаю, что за это отвечают стимовские длл, поэтому не получится их редактировать. Могу лишь сказать, что в каждом ресурс файле можно использовать только определённый набор команд, характерный конкретно для этого файла (хотя GameMenu.res более гибкий, чем остальные, там можно даже консольные команды юзать)__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Отправлено Smykov 02-10-2017 в 20:24:
Я сюда запостил, потому что тут в принципе раздел посвященный HL, а также чтобы отдельную тему не создавать.
По поводу определённого набора команд и редактирования. Не думаю, что тут всё жестко заточено. Раньше, когда я увлекался разными сборками CS, были сборки Version Pack от cs-redemax.ru. И у них помню в главном меню свой пункт был. То есть, дополнительная пункт, открывающий фрейм, в котором вроде бы указана информация о сборке. То есть, похоже действительно можно создавать свои элементы.
Отправлено JPEG 02-10-2017 в 20:57:
Цитата:
semerjon писал:
Я сюда запостил, потому что тут в принципе раздел посвященный HL, а также чтобы отдельную тему не создавать.
По поводу определённого набора команд и редактирования. Не думаю, что тут всё жестко заточено. Раньше, когда я увлекался разными сборками CS, были сборки Version Pack от cs-redemax.ru. И у них помню в главном меню свой пункт был. То есть, дополнительная пункт, открывающий фрейм, в котором вроде бы указана информация о сборке. То есть, похоже действительно можно создавать свои элементы.
Про тот пункт, что ты говоришь, почти уверен, что это просто отредактированное окно запуска сингла__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Отправлено Smykov 03-10-2017 в 09:36:
Как же тогда окно выбора модели персонажа, меню закупки, а также вспомогательное меню(на клавишу H)?
Отправлено JPEG 03-10-2017 в 13:05:
Цитата:
semerjon писал:
Как же тогда окно выбора модели персонажа, меню закупки, а также вспомогательное меню(на клавишу H)?
так это же другое вообще, там res-файлы не при делах, это vgui, точно видел туторы по этой теме__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Отправлено Ku2zoff 03-10-2017 в 15:52:
Цитата:
Yo Den писал:
Т.е. другие dll за это отвечают.
GameUI.dll, если точнее. Если клиентка принимает экспорты от GameUI (как в этих ваших каэсках), то можно и из клиентки рулить ресурс-файлами и всякой прочей лабудой. Причём, в разных каэс оно разное. До определённого времени 1.6 умел только работать с рес-файлом настройки ботов при создании сервера. А потом научился и кастомизации прицела, и вообще всему, т.к. дллки с CZ стали одинаковые. А вот в Deleted Scenes своя клиентка, она могёт работать с картой мира (выбор заданий), но не могёт всего прочего, что могёт сетевая кс.
Добавлено 03-10-2017 в 22:52:
Цитата:
Yo Den писал:
так это же другое вообще, там res-файлы не при делах, это vgui, точно видел туторы по этой теме
На H вызывается коммандменю, оно и в обычной халфе работает. Изначально эта бяка была написана для ТФК, как и всё VGUI. Кстати, тут многие не в курсе, но при определённом старании можно собрать клиентку ТФК из сорцев на гитхабе. Там всего лишь несколько внешних функций отсутствуют. Лучшы-б сервер выложили. Или там лицензия хитроумная какая-то, что низзя?
Отправлено Smykov 03-10-2017 в 19:10:
Yo Den, cstrike/resource/UI - тут содержатся элементы интерфейса CS.
Ku2zoff, так в итоге есть ли возможность создавать свои элементы интерфейса таким образом? Просто для чего тогда делать такую систему, если ею нельзя пользоваться.
Кстати, не знаю как в старых версиях CS, но в нынешней отсутствует GameUI.dll.
Отправлено JPEG 03-10-2017 в 19:51:
Цитата:
semerjon писал:
Yo Den, cstrike/resource/UI - тут содержатся элементы интерфейса CS.
Ku2zoff, так в итоге есть ли возможность создавать свои элементы интерфейса таким образом? Просто для чего тогда делать такую систему, если ею нельзя пользоваться.
Кстати, не знаю как в старых версиях CS, но в нынешней отсутствует GameUI.dll.
если тебе нужно меню внутри игры (как закупки, меню ботов и прочее), то можно без проблем, где-то были туторы, поищи тут или на csm, я не помню их названия__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Отправлено a1batross 03-10-2017 в 19:55:
Если вам интересно как использовать VGUI2 внутри клиентки, то вот есть https://github.com/CKFDevPowered/CKF3Alpha. Рекомендую почитать. Китайцы восстановили хедеры и прикрутили VGUI2, прям как в CS.
Саму по себе логику работы GameUI менять нельзя, поскольку вальва в движке захардкодила путь к GameUI.dll как valve/cl_dlls/GameUI.dll. Никаким образом заменить в моде не выйдет. (Кроме перезаписи памяти)
В res-файлах на те же кнопки можно повесить команды. Как там слайдеры ставить я ее знвю.
Отправлено JPEG 03-10-2017 в 20:05:
Цитата:
semerjon писал:
Yo Den, cstrike/resource/UI - тут содержатся элементы интерфейса CS.
Ku2zoff, так в итоге есть ли возможность создавать свои элементы интерфейса таким образом? Просто для чего тогда делать такую систему, если ею нельзя пользоваться.
Кстати, не знаю как в старых версиях CS, но в нынешней отсутствует GameUI.dll.
нашёл http://ralertmod.narod.ru/sham-vgui.htm
Добавлено 03-10-2017 в 23:05:
ну а если нужно редактировать меню, которое оконное (find servers, options...), то там с помощью блокнота можно поменять цветовую тему (TrackerScheme.res), вставить картинки, включить/выключить некоторые пункты в меню (пункт type в либлисте), переименовать все надписи, добавить свои консольные команды в пункты меню GameMenu.res (например "command" "engine noclip; cd eject; mp3 play sound/UI/loading"). Есть ещё user.scr и settings.scr для опции настройки мультиплеерной игры__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Отправлено Smykov 03-10-2017 в 21:05:
Yo Den, спасибо. То что элементы редактировать можно это я понимаю. Я интересуюсь именно про создание новых. То есть, создать свой res-файл, каким-либо образом создать команду для пункта command файла GameMenu.res, чтобы тот открывал мой элемент. Вообщем, похоже тут плачевно.
А так, про VGUI-элементы я уже читал, а сейчас интересуюсь созданием элементов интерфейса через res. Ведь как-то же в CS реализовали такую систему, хотя может тут уже вэлв постарались, а кроме CS не могу привести пример.
Отправлено Sigurth 04-10-2017 в 03:20:
Цитата:
a1batross писал:
вальва в движке захардкодила путь к GameUI.dll как valve/cl_dlls/GameUI.dll
Не знаю, с чего ты так решил, но я только что разрушил этот миф и перенес GameUI.dll из valve в свой мод, и как результат, халфа не запускается, а мод прекрасно работает. А значит, что пусть все таки не захардкоден. Причем как и в более старой версии отученной от стим пиратки, так и в лицензии. Так что движок спокойно схавает кастомный GameUI.dll в папке с модом. Вот только толку__________________
Никогда не поздно сделать мод под хл1
Отправлено Ku2zoff 04-10-2017 в 07:23:
Цитата:
a1batross писал:
Если вам интересно как использовать VGUI2 внутри клиентки, то вот есть
Там мод Chicken Fortress, и CSBTE - вроде бы опенсорсный клон CSO. Как игры интереса не представляют, но как источники закрытого кода и примеры использования недокументированных интерфейсов полезны. Кстати, там есть ещё сорцы GameUI.dll. Да, да. Только совместима ли она с последней версией голдсорса - хз.
Отправлено a1batross 04-10-2017 в 09:05:
Sigurth в бинарнике движка строка присутствует именно такой, какой я описал. 
Ku2zoff в CSBTE сорцы неполные, так как реализована только та часть, которая посредством перезвписи кода в памяти будет заменена. То есть он использует оригинальный клиент. А в ckf исходники полные. Бери и компиляй.