Вопросы по поводу ресурс-файлов(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) Мне бы статейки какие-нибудь на эту тему, может есть? Даже, если от старых версий есть, скиньте пожалуйста, просто из интереса почитать.
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 более гибкий, чем остальные, там можно даже консольные команды юзать)
Я сюда запостил, потому что тут в принципе раздел посвященный HL, а также чтобы отдельную тему не создавать.
По поводу определённого набора команд и редактирования. Не думаю, что тут всё жестко заточено. Раньше, когда я увлекался разными сборками CS, были сборки Version Pack от cs-redemax.ru. И у них помню в главном меню свой пункт был. То есть, дополнительная пункт, открывающий фрейм, в котором вроде бы указана информация о сборке. То есть, похоже действительно можно создавать свои элементы.
semerjon писал: Я сюда запостил, потому что тут в принципе раздел посвященный HL, а также чтобы отдельную тему не создавать.
По поводу определённого набора команд и редактирования. Не думаю, что тут всё жестко заточено. Раньше, когда я увлекался разными сборками CS, были сборки Version Pack от cs-redemax.ru. И у них помню в главном меню свой пункт был. То есть, дополнительная пункт, открывающий фрейм, в котором вроде бы указана информация о сборке. То есть, похоже действительно можно создавать свои элементы.
Про тот пункт, что ты говоришь, почти уверен, что это просто отредактированное окно запуска сингла
GameUI.dll, если точнее. Если клиентка принимает экспорты от GameUI (как в этих ваших каэсках), то можно и из клиентки рулить ресурс-файлами и всякой прочей лабудой. Причём, в разных каэс оно разное. До определённого времени 1.6 умел только работать с рес-файлом настройки ботов при создании сервера. А потом научился и кастомизации прицела, и вообще всему, т.к. дллки с CZ стали одинаковые. А вот в Deleted Scenes своя клиентка, она могёт работать с картой мира (выбор заданий), но не могёт всего прочего, что могёт сетевая кс.
Добавлено 03-10-2017 в 22:52:
Цитата:
Yo Den писал: так это же другое вообще, там res-файлы не при делах, это vgui, точно видел туторы по этой теме
На H вызывается коммандменю, оно и в обычной халфе работает. Изначально эта бяка была написана для ТФК, как и всё VGUI. Кстати, тут многие не в курсе, но при определённом старании можно собрать клиентку ТФК из сорцев на гитхабе. Там всего лишь несколько внешних функций отсутствуют. Лучшы-б сервер выложили. Или там лицензия хитроумная какая-то, что низзя?
Yo Den, cstrike/resource/UI - тут содержатся элементы интерфейса CS. Ku2zoff, так в итоге есть ли возможность создавать свои элементы интерфейса таким образом? Просто для чего тогда делать такую систему, если ею нельзя пользоваться.
Кстати, не знаю как в старых версиях CS, но в нынешней отсутствует GameUI.dll.
semerjon писал: Yo Den, cstrike/resource/UI - тут содержатся элементы интерфейса CS. Ku2zoff, так в итоге есть ли возможность создавать свои элементы интерфейса таким образом? Просто для чего тогда делать такую систему, если ею нельзя пользоваться.
Кстати, не знаю как в старых версиях CS, но в нынешней отсутствует GameUI.dll.
если тебе нужно меню внутри игры (как закупки, меню ботов и прочее), то можно без проблем, где-то были туторы, поищи тут или на csm, я не помню их названия
Если вам интересно как использовать VGUI2 внутри клиентки, то вот есть https://github.com/CKFDevPowered/CKF3Alpha. Рекомендую почитать. Китайцы восстановили хедеры и прикрутили VGUI2, прям как в CS.
Саму по себе логику работы GameUI менять нельзя, поскольку вальва в движке захардкодила путь к GameUI.dll как valve/cl_dlls/GameUI.dll. Никаким образом заменить в моде не выйдет. (Кроме перезаписи памяти)
В res-файлах на те же кнопки можно повесить команды. Как там слайдеры ставить я ее знвю.
semerjon писал: Yo Den, cstrike/resource/UI - тут содержатся элементы интерфейса CS. Ku2zoff, так в итоге есть ли возможность создавать свои элементы интерфейса таким образом? Просто для чего тогда делать такую систему, если ею нельзя пользоваться.
Кстати, не знаю как в старых версиях CS, но в нынешней отсутствует GameUI.dll.
ну а если нужно редактировать меню, которое оконное (find servers, options...), то там с помощью блокнота можно поменять цветовую тему (TrackerScheme.res), вставить картинки, включить/выключить некоторые пункты в меню (пункт type в либлисте), переименовать все надписи, добавить свои консольные команды в пункты меню GameMenu.res (например "command" "engine noclip; cd eject; mp3 play sound/UI/loading"). Есть ещё user.scr и settings.scr для опции настройки мультиплеерной игры
Yo Den, спасибо. То что элементы редактировать можно это я понимаю. Я интересуюсь именно про создание новых. То есть, создать свой res-файл, каким-либо образом создать команду для пункта command файла GameMenu.res, чтобы тот открывал мой элемент. Вообщем, похоже тут плачевно.
А так, про VGUI-элементы я уже читал, а сейчас интересуюсь созданием элементов интерфейса через res. Ведь как-то же в CS реализовали такую систему, хотя может тут уже вэлв постарались, а кроме CS не могу привести пример.
a1batross писал: вальва в движке захардкодила путь к GameUI.dll как valve/cl_dlls/GameUI.dll
Не знаю, с чего ты так решил, но я только что разрушил этот миф и перенес GameUI.dll из valve в свой мод, и как результат, халфа не запускается, а мод прекрасно работает. А значит, что пусть все таки не захардкоден. Причем как и в более старой версии отученной от стим пиратки, так и в лицензии. Так что движок спокойно схавает кастомный GameUI.dll в папке с модом. Вот только толку
__________________ Никогда не поздно сделать мод под хл1
a1batross писал: Если вам интересно как использовать VGUI2 внутри клиентки, то вот есть
Там мод Chicken Fortress, и CSBTE - вроде бы опенсорсный клон CSO. Как игры интереса не представляют, но как источники закрытого кода и примеры использования недокументированных интерфейсов полезны. Кстати, там есть ещё сорцы GameUI.dll. Да, да. Только совместима ли она с последней версией голдсорса - хз.
Sigurth в бинарнике движка строка присутствует именно такой, какой я описал.
Ku2zoff в CSBTE сорцы неполные, так как реализована только та часть, которая посредством перезвписи кода в памяти будет заменена. То есть он использует оригинальный клиент. А в ckf исходники полные. Бери и компиляй.