HLFX.Ru Forum
Показать все 46 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- VGUI, такое VGUI (https://hlfx.ru/forum/showthread.php?threadid=4595)


Отправлено Ku2zoff 06-05-2015 в 11:13:

Post VGUI, такое VGUI

Поскольку делаю я пока только мультиплеер, дошло дело и до режима наблюдателя. Управление и интерфейс в этом режиме активно юзают VGUI. Я раньше (в 2008 году) делал этот режим копипастой из рикошета. Сейчас же, в новом HLSDK ничего копипастить не надо, режим есть в дллке по-умолчанию. Единственное, что не работает - переключение на конкретного игрока из меню, что открывается большой кнопкой на нижней панели. Это легко фиксится, особенно теперь, когда есть реверс-инжинированные исходники КС, можно тупо скопипастить кусочек кода оттуда.
Ну так вот. В 2008 году мультиплеер я сделал просто как довесок к недоделанному моду для развлечения себя родимого, поэтому ничего толком не тестил и на косяки не обращал внимания. А сейчас, когда всерьёз взялся за него, наткнулся на интересную вещь, см. скрины:

http://pix.academ.org/img/2015/05/06/ca8d2a13a5efe9a041d7482d20465fba.jpg http://pix.academ.org/img/2015/05/06/7da1cb0329dfc4ed23a68aa30a3d504f.jpg

Слева - WON-халфа. Справа - Steam-халфа актуальной версии. То, что вместо нормальных надписей фразы, начинающиеся с # не страшно. Вэлв выпилили парсер modname_язык.тхт из клиентки перед тем, как дать народу свежие сорцы на гитхабе, а текстовики менюшек старые вернуть забыли. Помню, что несколько лет назад всё прекрасно парсилось. С чем это связано, не знаю, возможно код содержит что-то важное от анально-огороженной каэсочки или самого стима, поэтому в общий доступ его не выложили. А вот что действительно приводит в недоумение, так это то, что все элементы на панелях уехали к чертям собачьим куда попало. Внимание, второй скрин сделан с оригинальной стим-халфы, а не с дллки, собранной мной. Такую же бяку можно наблюдать в TFC (сорцы клиентки ведь 1в1). В CS и DoD всё нормально, за исключением того, что VGUI не рассчитано на некоторые разрешения экрана, и поэтому элементы могут выезжать за пределы панелей, а текстовые фразы наскакивать друг на друга. Такой уж у меня монитор, 1680х1050.
Когда я это дело впервые увидел, я вспомнил, что с клиенткой, собранной из старого СДК 2.3 такого не было. Сначала я подумал, что дело в компиляторах и хотел собрать клиентку шестой, а не 2013 студией для проверки. Но поленился, и решил просто посмотреть сорцы. Вэлв наверное понабрали на работу шкальников, если в новых сорцах местами такие вот вещи:

C++ Source Code:
m_TopBorder->setBounds(	XRES(offset), 0, XRES(640 - offset ), PANEL_HEIGHT );

вместо того, что было в 2.3:
C++ Source Code:
m_TopBorder->setBounds(	XRES(offset), 0, XRES(640 - offset ), YRES(PANEL_HEIGHT) );

Козе понятно, что использование XRES и YRES будет давать более сходные результаты на разных разрешениях экрана, чем использование констант. С чем связано то, что от них отказались, я даже не знаю. Судя по тому, что исчезли они не повсеместно, а выборочно, у меня сложилось впечатление, что VGUI переписывали по меньшей мере два разных человека, один из которых либо невнимателен, либо шкальник.
Из-за этой невнимательности получили то, что видим на скринах. А ещё мне кажется, что дело тут не только в людях, но и в компиляторе, которым собираешь дллку, или в движке. Потому что правильный код выдаёт непонятный результат.
К чему всё это предисловие. Когда я этот ужас увидел, особенно в оригинальной дллке, мне даже нехорошо стало. И я стал у себя в моде это исправлять. Причём исправил не только это, но и ещё попутно кучу всяких мелких недочётов. Слева мой мод, а справа КС, на который я частично ориентировался:

http://pix.academ.org/img/2015/05/06/e840cec1ee457738673280a775b126a4.jpg http://pix.academ.org/img/2015/05/06/df3097298ec47d3c119f5d9add99d642.jpg
Я так увлёкся этим делом, что даже нарисовал (точнее скомбинировал из двух других) значок 640_checked.tga для ToggleCommandButton


Отправлено GioHAUS0n 06-05-2015 в 12:11:

Возможно такие искривление получились из-за портирования в Linux. Последнее время, начали серьезно халтурить, даже исходниках DooM3, находили грубые ошибки.

PS. А где нибудь есть полностью исправленный SDK от ошибок?


Отправлено Ghoul [BB] 06-05-2015 в 12:55:

Цитата:
Ku2zoff писал:
Это легко фиксится, особенно теперь, когда есть реверс-инжинированные исходники КС, можно тупо скопипастить кусочек кода оттуда.



Насколько мне известно, там только серверная длл. Поправь меня, если я ошибаюсь.

Добавлено 06-05-2015 в 15:55:

Цитата:
Ku2zoff писал:
Я так увлёкся этим делом, что даже нарисовал (точнее скомбинировал из двух других) значок 640_checked.tga для ToggleCommandButton


А не думал над тем, чтобы модельки оружия впихнуть вместо картинок во VGUI ?

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo


Отправлено Ku2zoff 06-05-2015 в 14:28:

Цитата:
Ghoul [BB] писал:
А не думал над тем, чтобы модельки оружия впихнуть вместо картинок во VGUI ?

Уже давно думал. Опять придётся выделять отдельный проход под это дело, чтоб они в стену не ныряли и рисовались перед VGUI.
Цитата:
Ghoul [BB] писал:
Насколько мне известно, там только серверная длл. Поправь меня, если я ошибаюсь.

Ты не ошибаешься. Функция выбора m_hObserverTarget находится как раз на сервере. А с клиента лишь шлются команды follownext и follow, которые этой функцией (Observer_FindNextPlayer) обрабатываются. В халфе не реализована команда follow, в которой игрок ищется по имени. Сделать-то я её сделал, осталось только починить переключение на игроков с пробелами в именах, а то не работает. Видимо, команда на сервере воспринимает части имени после пробела как второй, третий и т.д. аргумент, а игрок ищется только по первому.
Цитата:
GioHAUS0n писал:
Возможно такие искривление получились из-за портирования в Linux.

Это из-за криворукости кодеров. Я всё исправил, у меня ничего не съезжает, на скрине видно.
Цитата:
GioHAUS0n писал:
А где нибудь есть полностью исправленный SDK от ошибок?

Дело в том, что каждый, кто занимался исправлением ошибок, исправил только какую-то часть. Так что есть несколько "патченных" СДК, и во всех исправлено разное, но кое что и совпадает. Лично я смотрел бы в сторону Дядь Мишиного спирита и правленных сорцев оригинальной халфы, что идут в комплекте с сорцами ксашдвижка.


Отправлено Ku2zoff 07-05-2015 в 11:44:

Допилил до конца, добавил раскрашивание элементов панелей спектатора в цвета команд игроков. Вернее, оно и раньше было, а сейчас я исправил мелкие недочёты:

http://pix.academ.org/img/2015/05/07/eb965dd775392ea97ac06eb76f9a0456.jpg http://pix.academ.org/img/2015/05/07/4075e55cb0d0d647528d8a073d4b2c6f.jpg http://pix.academ.org/img/2015/05/07/74ca8f36fe557eeb40d009dae6217f77.jpg

Стоит в таком виде оставить, или ещё чего поменять?


Отправлено PLut 07-05-2015 в 12:55:

Ku2zoff Полоски по краям экрана жирные ИМХО. В два раза тоньше сделать их можно запросто.

__________________
Base Defense on Steam, ModDB


Отправлено Ku2zoff 07-05-2015 в 13:18:

PLut я на кс ориентировался, там они такие же жирные. Но в самом деле, можно сделать потоньше.


Отправлено FiEctro 07-05-2015 в 15:18:

Ku2zoff
А зачем на таблице счета кнопка "закрыть" так еще и такая кривущая?
И счет команд не отображается.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено KiQ 07-05-2015 в 15:46:

FiEctro счет команд есть же

__________________
-Brain is dead-


Отправлено FiEctro 07-05-2015 в 15:50:

KiQ
http://pix.academ.org/img/2015/05/0...0a775b126a4.jpg
http://pix.academ.org/img/2015/05/0...d9add99d642.jpg
где?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Ku2zoff 07-05-2015 в 17:22:

Цитата:
FiEctro писал:
А зачем на таблице счета кнопка "закрыть" так еще и такая кривущая?

Она отображается только когда видны кнопки на нижней панели. Упустил этот момент, увидел только когда скрины прикрепил. Положение её я уже поправил.
Цитата:
FiEctro писал:
И счет команд не отображается.

Это потому, что я ещё не доделал его. Пока что только строки отображаются. Запилю по-новой систему раундов и gmsgTeamScore, тогда будет отображаться.

Добавлено 07-05-2015 в 23:22:

FiEctro если ты начал придераться, то придерись уже к таймеру на верхней панели, потому что он 00:00 кажет. Я ещё не дописал мессагу для него.
То, что вы видите на скринах - всего лишь новая версия с исправлением косяков. У меня уже полгода как есть довольно играбельная демка. Её щупали пока что два форумчанина, оба словили лулзов и отозвались неплохо.


Отправлено Ku2zoff 08-05-2015 в 06:16:

Короче, товарищи, я обработаю напильником тимплей, систему раундов и ботов и дам вам демку. Может в конце мая, может в начале июня.

Добавлено 08-05-2015 в 12:16:

Классы игроков пока что ещё не все сделаны, может успею закончить пять или шесть из планируемых восьми.


Отправлено PLut 08-05-2015 в 07:39:

Ku2zoff Зачем так много?
Я своих трех долго балансировал и продумывал им способности, если было их на 1 больше, то, наверное, с ума бы сошел. Но то у меня рпг, а у тебя в чем классы заключаются?

__________________
Base Defense on Steam, ModDB


Отправлено Ku2zoff 08-05-2015 в 10:51:

Цитата:
PLut писал:
а у тебя в чем классы заключаются?

Во-первых, почти у каждого уникальное основное оружие. У кого основного уникального нет, - есть какое-то другое уникальное, например аптечка у медика, ключ у инженера, нож у шпиона. Во-вторых, у каждого есть уникальная способность: снайпер стреляет точнее из любого оружия; медик сам лечится и не может быть отравлен; инженер сам восстанавливает себе броню и может строить турели; шпион не издаёт звуков, если идёт пешком и может маскироваться или становиться невидимым; пиротехник не горит и может тушить товарищей по команде. Пулемётчику пока ничего не придумал, может увеличу живучесть как классу обороны, который охраняет базу. Некоторое из этого ещё не сделано. В процессе тестирования будет видно, что стоит изменить или убрать.

Добавлено 08-05-2015 в 16:51:

Скорость бега у всех одинаковая (потому что в tfc меня бесит, когда, играя медленным классом, профукиваешь на пару секунд более быстрого противника с флагом, а другие игроки, играющие быстрыми, профукивают по своей тупости), но различается длительность спринта (стамина заканчивается по-разному). Здоровье у всех одинаковое (опять же по причине тупого дисбаланса в TFC), но броня разная. Броня состоит из трёх частей: шлем, жилет и защитные щитки на руках и ногах. Тяжёлые классы (с тяжёлым оружием, и, по совместительству, классы обороны) - пулемётчик, пиротехник - имеют всё три брони. Средние классы (классы поддержки) - медик, инженер, имеют жилет и шлем. Ну а лёгкие классы - снайпер и шпион - только жилет.
Ещё у всех разные гранаты. У оборонительных такие, которые затормаживают и не пропускают противника - напалмовая и граната с колючками (какие может разбрасывать скаут в TFC). У поддержки такие, которые неприятно вредят врагу - ядовитая газовая и электромагнитная, выводящая из строя гранаты противника и всякие специальные приборы (ПНВ, аптечку, ключ инженера, электронный прицел снайпера). У лёгких классов - гранаты, которые дезориентируют врага и скрывают союзников - дымовая и светошумовая. Ещё думаю о минах и минах-растяжках для обороны, и живых(или дронах) развед-гранатах для шпиона (помните в Deus Ex был такой имплантат?).


Отправлено Chyvachok 08-05-2015 в 11:06:

Ku2zoff смотрю это будет свой аналог тим фортресса? Кстати не хочешь в своем моде восстановить StickyGibs? Их можно использовать как кишки и мозги на стенках, вот я тут пытался восстановить: http://4put.ru/pictures/max/1075/3304369.jpg и http://4put.ru/pictures/max/1075/3304370.jpg

Только они иногда висят там где был взорваный игрок или монстр.

Добавлено 08-05-2015 в 13:03:

Цитата:
Ku2zoff писал:
развед-гранатах для шпиона (помните в Deus Ex был такой имплантат?).


Случаем не дрон-шпион?

Вопрос, коператив против монстров, или возможность включить сингл карту с монстрами будет? В некоторых мультиплеерных модах типа Action Half-Life можно через консоль включить карту из халвы и поиграть в сингл с оружием мода.

Добавлено 08-05-2015 в 13:06:

Цитата:
Ku2zoff писал:
граната с колючками (какие может разбрасывать скаут в TFC)


Кстати хорошая идея для сингл мода какого-нибуть, добавить их бабам-асасинам.


Отправлено Ku2zoff 08-05-2015 в 11:19:

Цитата:
Chyvachok писал:
Кстати не хочешь в своем моде восстановить StickyGibs?

Запишу в блокнот, может быть восстановлю.
Цитата:
Chyvachok писал:
коператив против монстров, или возможность включить сингл карту с монстрами будет?

В первых редакциях я полностью вырезал сингловые геймрулсы и монстров. Сейчас - только монстров. Если народу понравится, могу попробовать сделать кооператив. Если самому понравится, попробую сделать сингл.

Добавлено 08-05-2015 в 17:16:

Цитата:
Chyvachok писал:
Случаем не дрон-шпион?

Он самый.

Добавлено 08-05-2015 в 17:19:

Кооперативный сингл - вообще замечательная идея. Но надо придумать и реализовать механизм перехода всех игроков между уровнями с сохранением параметров.


Отправлено thambs 08-05-2015 в 11:49:

Ku2zoff
у тов икс-вайдера в xdm кооперативный сингл реализован.

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено Chyvachok 08-05-2015 в 13:46:

Ku2zoff кстати а оружие какое приблизительно будет? Как я себе сейчас представляю если будет новое то из TFC? Или еще может что-то с опфора, анрила (как в ХДМ плазма из УТ1 к примеру) или что-то свое новое будет? Пулеметчику М249 к примеру сделать, для снайпера можно оружие с моделью как из Опфора сделать, так из ТФК, первое как просто снайперка, второе как автомат с прицелом, а то в халве снаперским можно назвать только один арбалет, и револьвер в мультиплеере.


Отправлено Ku2zoff 08-05-2015 в 15:00:

Цитата:
Chyvachok писал:
кстати а оружие какое приблизительно будет?

У всех классов по стандарту: вторичное оружие (СМГ или дробовик), третичное (пистолет), оружие ближнего боя. СМГ разные у обеих команд, у шпиона собственная СМГ с глушителем и дисплеем-детектором "свой/чужой", который светится красным, если навести прицел на врага, и зелёным, если на союзника (планирую, чтобы показывал также замаскировавшихся и невидимых шпионов). Дробовики разные у разных классов: у защиты - револьверные многозарядные, у поддержки обычные, у лёгких классов автоматические скорострельные. Пистолеты тоже разные, у шпиона, к примеру, рюгер с глушителем, который может стрелять под водой. У каждого класса в отдельности: классовое основное (пулемёт, огнемёт, снайперская винтовка и ещё что-нибудь у других, пока не придумал). Ну и гранаты как в TFC, только у каждого класса свои. Это своего рода диздок, некоторые оружия пока только на бумаге.

Добавлено 08-05-2015 в 21:00:

СМГ шпиона с дисплеем-детектором мне навеял вот этот скрин:

http://pix.academ.org/img/2015/05/08/f217c83928045fecb8f1abe4e31e2db3.jpg


Отправлено Ghoul [BB] 08-05-2015 в 15:12:

Цитата:
Ku2zoff писал:
Уже давно думал. Опять придётся выделять отдельный проход под это дело, чтоб они в стену не ныряли и рисовались перед VGUI.



Так можешь тот же проход использовать, что и ХУД-модельки.

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo


Отправлено Ku2zoff 08-05-2015 в 15:26:

Раз уж пошли скрины покажу внешний вид. Некоторые модели ещё не доделаны.

http://pix.academ.org/img/2015/05/08/56e22c358efa8e7763b452278582523d.jpg http://pix.academ.org/img/2015/05/08/9dee3cdcdfd9b84df4cef194ea4dd612.jpg http://pix.academ.org/img/2015/05/08/4a4fbad906bc6baf7bddc96b5fcc2086.jpg http://pix.academ.org/img/2015/05/08/45ff525d86eede4f1e60626f83e26203.jpg

Это ближний бой. Пока что больше не сделал. Осталась в принципе только одна аптечка, а лучше инъектор. Который можно спереть из кондишн зеро

Добавлено 08-05-2015 в 21:17:

За разводной ключ огромнейшее спасибо товарищу killsniper с хлру, который в далёком 2007 году по моей просьбе выложил в общий доступ свою модель. Жаль только, что текстуры 1024х1024 я потерял, остались только пожатые 512х512.

Добавлено 08-05-2015 в 21:20:

СМГ зелёной и жёлтой команд соответственно:

http://pix.academ.org/img/2015/05/08/6fdc66d5e6c4271746cf60d0ca66174d.jpg http://pix.academ.org/img/2015/05/08/47b54d4f902272fb4f4d7040d47e1ad8.jpg

Происхождение скрывать не буду, они из DoD. Та, что Grease Gun - чей-то римейк, надо на геймбанане посмотреть, и вписать автора в ридми. А та, что Sten - меш вообще взят из кастомной модели для CSS.

Добавлено 08-05-2015 в 21:23:

СМГ шпиона и винчестер:

http://pix.academ.org/img/2015/05/08/53ae272b4b442b5ce3d9699ec39066e7.jpg http://pix.academ.org/img/2015/05/08/cccc92c6391da65f9f425ba714a5b63d.jpg

У шпиона пока ещё нет детектора.

Добавлено 08-05-2015 в 21:26:

Снайперка и пулемёт:

http://pix.academ.org/img/2015/05/08/685b62dd7e8a8407316052fc28f803d2.jpg http://pix.academ.org/img/2015/05/08/f3af85e1c017245589db7fd880801210.jpg

Пулемёт специально слева, т.к. по своему опыту знаю, что подобные тяжёлые вещи наперевес легче держать правой рукой (если ты правша).


Отправлено ***FantoM*** 08-05-2015 в 16:17:

Цитата:
Ku2zoff писал:
Раз уж пошли скрины покажу внешний вид. Некоторые модели ещё не доделаны.


если нужна помощь
то помогу помочь доделать модели


Отправлено Ku2zoff 08-05-2015 в 17:06:

Цитата:
***FantoM*** писал:
то помогу помочь доделать модели

Это я и сам могу. Мне только руки заменить надо и сделать анимации holster.

Добавлено 08-05-2015 в 23:06:

[оффтоп]VGUI допилил, вроде норм. Сейчас скопипастю систему раундов и таймер из своих старых сорцов, и буду их шлифовать напильником.[/оффтоп]


Отправлено ~ X ~ 16-05-2015 в 15:08:

Добро пожаловать в зло.
Я вгуи мучил недавно. Много всего исправл. ОЧЕНЬ много. Вальве - либо геи либо очень спешили и на всё клали. ВГУИ1 - это жопа.
Я б рекомендовал стырить мою его вариацию, но, думаю, не осилишь

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Ku2zoff 16-05-2015 в 15:30:

>>Я б рекомендовал стырить мою его вариацию, но, думаю, не осилишь
А зачем мне её тырить? Ты хоть распиши чего испавил, мож пригодится что...


Отправлено ~ X ~ 16-05-2015 в 16:36:

Ku2zoff у меня час инета примерно два евро
В вгуи есть нормальные звуки, ООП, драг мышкой, исправленные контролы, 9000 обходов багов от вальве. Даже пару мемори ликов убрал.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 16-05-2015 в 16:37:

Цитата:
~ X ~ писал:
у меня час инета примерно два евро

Ты там насовсем, что ли? Родину за колбасу продал?

Добавлено 16-05-2015 в 22:37:

Цитата:
~ X ~ писал:
9000 обходов багов от вальве

Мышиный курсор кастомный смог реализовать? Я в своё время не смог из-за отсутствия пары эвентов в VGUI App.

__________________

xaerox on Vivino


Отправлено Ku2zoff 16-05-2015 в 17:36:

Цитата:
~ X ~ писал:
В вгуи есть нормальные звуки

Не нужно пока что, да и не думаю, что понадобится.
Цитата:
~ X ~ писал:
ООП

Ну так и у вальвэ элементы ООП используются. Очень много наследования, к примеру. Кстати, на этом я несколько раз запарывался, пытаясь ваять собственные менюшки, пока более-менее не вдумался, для чего нужны ActionSignal и InputSignal. И как вообще обрабатывать события, происходящие с элементами.
Цитата:
~ X ~ писал:
драг мышкой

В оригинале он недоделан. Драг мышкой полезен в ропеге, как у PLut'a в БДеф'е. В сетевом шутере, где нужно всё быстро делать, вообще не представляю, зачем нужно перетаскивание.
Цитата:
~ X ~ писал:
9000 обходов багов от вальве

Вот про эти баги бы поподробнее. Я сам нашёл несколько, но увидел их только в новом кроссплатформенном СДК. И большинство из них связаны с координатами элементов. Помимо того, что я выкладывал на скринах в начале темы, есть ещё такая пакость, когда фон коммандменю (чёрный с прозрачностью) по вертикали выходит на несколько пикселей ниже (или выше) бордера (жёлтого) последней кнопки. На низких разрешениях этого не видно, а вот на высоких очень даже. Я думаю, что при вертикальном разрешении в 2 килопикселя будет вообще АдЪ и Изгаиль, погрешность будет чуть ли не в 3 толщины бордера. И вот такая вот фигня при абсолютно одинаковом коде в старом и новом СДК. Только в старом ничего не вылазит за границы меню. Долго думал, пытался вычитать некое кол-во пикселей из высоты меню, чтобы от этого избавиться, но на низких разрешениях фон в таком случае наоборот не доходил до бордера, и там было абсолютно прозрачное место. Заборол я это дело, округлив координаты, просто преобразовав float в int.

Добавлено 16-05-2015 в 23:36:

Цитата:
XaeroX писал:
Мышиный курсор кастомный смог реализовать? Я в своё время не смог из-за отсутствия пары эвентов в VGUI App.

Вроде раньше достаточно было тга-шку поменять на свою. И квар vgui_emulatemouse поставить в 1. А сейчас этого квара нету, видать вырезали в связи с SDL.


Отправлено ~ X ~ 16-05-2015 в 17:52:

Ku2zoff я не могу перечислить все миллионы багов, что там были. Но кодить окошки и менюшки у меня невпример проще.
Кроме того, у меня есть хороая система приоритетов окон, решающая, что поверх чего может открыватья, и должно ли что-то при этом закрываться (и пр.). Есть многие дефолтные контролы. Т.е. чтобы не делать m_pButtonClose = new vgui::Button(zazazazaza); я делаю просто CDefaultButton m_ButtonClose; Потому что менеджмент памяти в вугуи такооооооой.................. Что иногда кажется, что он отсутствует. Кстати, попробуй свой мод погонять часов 10, постоянно открывая и закрывая всякие окошки-менюшки. Получишь восторга тонны.

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

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено PLut 16-05-2015 в 18:23:

~ X ~ Звуки, драгндроп и фиксы мемори ликов - интересно, будет время - посмотрю. Недавно сам пофиксил мемори лик, но то фмод из древнего ксаша был, предыдущий трек не выгружался из памяти при загрузке нового.

И всё же в бдефе есть еще загадки, каждый раз при рестарте карты откуда-то ~5 мб в память загружается, подозрение на всю ВГУИвскую графику.

__________________
Base Defense on Steam, ModDB


Отправлено Ku2zoff 18-05-2015 в 05:08:

Волнуют серьёзно только утечки памяти. Вроде работает нормально, приоритеты не нужны, потому что окошек мало. Думал перенести ХУД на ВГУИ, но после того, что написал PLut, побаиваюсь.
Вообще, сейчас не до этого, шлифую геймрулсы. Сделал три режима: классический DM, TDM, TDM с раундами, где победы считаются именно по раундам.


Отправлено Chyvachok 18-05-2015 в 05:13:

Цитата:
Ku2zoff писал:
TDM с раундами


Типа как в контре, в смысле где команда должна победить другую без респауна?


Отправлено Ku2zoff 18-05-2015 в 05:28:

Chyvachok да. На основе этого режима потом буду делать escape и assassination. Я наверное отдельную тему заведу для обсуждения режимов и сорцы их покажу. Возиться с ними нет времени, а баги потенциально есть. Может чьи-то опытные глаза укажут на них.


Отправлено Ku2zoff 18-05-2015 в 18:25:

В процессе шлифования геймрулсов так увлёкся, что наговнокодил параллельно кучу вещей, которые планировал сделать позже. Поэтому откатываюсь на бэкап двухнедельной давности, и буду вносить изменения заново более аккуратно. Где-то наговнокодил утечку памяти, даже искать не стал, в процессе переноса отловлю.

Вопрос к знающим людям: серверные квары регистрируются в GameDLLInit. Подсмотрел у тов. ~X~, как он регистрирует квары для каждого конкретного режима в конструкторе его класса. То есть, если геймрулсы устанавливаются дезматчевые, то регаются только квары дезматча. А если раундплей, то только квары раундов. При этом подходе такие квары упорно не хотят брать своё значение из settings.scr, который, грузится раньше, чем устанавливаются геймрулсы. Есть готовое решение, или придётся заводить в классе геймрулсов новую функцию, например RegisterCvars, и вызывать её из GameDLLInit? И можно ли разрегить серверный квар, чтобы при установке новых геймрулсов старые квары не выводились в консоли?

И второй вопрос: имеется консольная команда (серверная) для убийства ботов. Как запретить её использовать не-хосту? Случайно обнаружил, что приконнектившийся игрок может убивать ботов. Никакого решения для проверки на хоста при использовании ClientCommand пока не нашёл.


Отправлено ~ X ~ 19-05-2015 в 15:50:

PLut посмотишь ты только когда я выложу А поскольку я погорелец - то вряд-ли скоро...

Добавлено 19-05-2015 в 18:50:

Цитата:
Ku2zoff писал:
TDM с раундами

ну давай, рассказывай, как ты дро... кодил Особенно как сделал респаун всех брейкаблов, мультименеджеров среднего звена, монстров и пр. сдохшего говна.

Цитата:
Ku2zoff писал:
Подсмотрел у тов. ~X~, как он регистрирует квары для каждого конкретного режима в конструкторе его класса.

не советую этого делать - там ещё с десяток подводных камней

В нынешней рабочей версии, конечно, всё профикшено И раунды есть Только я их не тестил. Ибо не с кем. Т.е. вряд-ли они работают

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Ku2zoff 19-05-2015 в 16:05:

Цитата:
~ X ~ писал:
не советую этого делать - там ещё с десяток подводных камней

Хех, дык я уже понял и отказался от этого.
Цитата:
~ X ~ писал:
Особенно как сделал респаун всех брейкаблов, мультименеджеров среднего звена, монстров и пр. сдохшего говна.

Респаун брейкаблов норм, респаун пушаблей - ггадость. Они застревают в полу. Если поднимать на 1 юнит при респауне, то не застревают, но с каждым раундом поднимаются всё выше и выше, т.к. не хотят падать на пол Логические энтити типа триггеров и мультименеджеров пока не респавнил, т.к. на картах, которые юзаю, их нет.

Добавлено 19-05-2015 в 22:05:

Цитата:
~ X ~ писал:
В нынешней рабочей версии, конечно, всё профикшено

Цитата:
~ X ~ писал:
посмотишь ты только когда я выложу

Ждём-с новую версию с сорцами


Отправлено Ku2zoff 20-05-2015 в 10:06:

Нашёл, почему всё съезжало к чертям собачьим. Солидарен с тов. ~X~:

Цитата:
~ X ~ писал:
Вальве - либо геи либо очень спешили и на всё клали.

Оказывается, всё предельно просто. cl_util.h из нового HLSDK:

C++ Source Code:
#define XRES(x)					(x  * ((float)ScreenWidth / 640))
#define YRES(y)					(y  * ((float)ScreenHeight / 480))


cl_util.h из старого HLSDK:

C++ Source Code:
#define XRES(x)		((int)(float(x)  * ((float)ScreenWidth / 640.0f) + 0.5f))
#define YRES(y)		((int)(float(y)  * ((float)ScreenHeight / 480.0f) + 0.5f))


Вопрос: нахрена? Нахрена было менять?! Я потратил на подбор координат добрых два часа, чтобы всё смотрелось красиво. Маразм в действии, кароч.


Отправлено XaeroX 20-05-2015 в 10:07:

Цитата:
~ X ~ писал:
всё профикшено

Цитата:
~ X ~ писал:
Только я их не тестил

Однако здравствуйте.

__________________

xaerox on Vivino


Отправлено Ku2zoff 20-05-2015 в 10:14:

Короче, я тут сидел исправлял, координаты округлял, излазил весь код ВГУИ в поисках координат и размеров, а они всего-то две строчки изменили. Ну молодцы, чо.


Отправлено XaeroX 20-05-2015 в 10:19:

Ku2zoff
Вот для этого и пишут собственный движок. Чтобы чётко понимать, что, где и как сделано.

__________________

xaerox on Vivino


Отправлено ~ X ~ 20-05-2015 в 11:15:

Цитата:
Ku2zoff писал:
cl_util.h из старого HLSDK:

Правильно. Я тоже на это напаролся года два назад. Давай, отжимайся дальше )) Вроде даже статью об этом катал.

Цитата:
Ku2zoff писал:
Логические энтити типа триггеров и мультименеджеров пока не респавнил, т.к. на картах, которые юзаю, их нет.

Это до первой карты, до первого мапперства. Я в XDM уже больше 4000 карт прогнал, регулярно находя баги у себя, у мапстеров и у вальвстеров.
Но как со всем ЭТИМ справился, я пока не скажу.

Зато запилил шикарнейшую подборку карт.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено PLut 20-05-2015 в 14:02:

Ku2zoff У меня эти строчки из старого сдк, но всё-равно мелочи типа тгашек 8х8 съезжают на разных разрешениях. Причем, я уже даже пробовал выставлять им парента - кнопку, на которой надо отобразить эту мелкую тгашку и нулевые координаты, но всё-равно она съезжает, а кнопка на месте.

__________________
Base Defense on Steam, ModDB


Отправлено GioHAUS0n 20-05-2015 в 23:04:

Цитата:
PLut писал:
Ku2zoff У меня эти строчки из старого сдк, но всё-равно мелочи типа тгашек 8х8 съезжают на разных разрешениях. Причем, я уже даже пробовал выставлять им парента - кнопку, на которой надо отобразить эту мелкую тгашку и нулевые координаты, но всё-равно она съезжает, а кнопка на месте.


Ну тогда надо думать как Кармасюк.
code:
matcolor 1.4-("gui::player_stamina" / 100), 0.6, ("gui::player_stamina" * 0.007), 0.3


Отправлено PLut 21-05-2015 в 08:23:

GioHAUS0n Ну и к чему этот код?

__________________
Base Defense on Steam, ModDB


Отправлено ~ X ~ 21-05-2015 в 11:17:

это код?

ЗЫ: в начаде года у меня тоже были беды с тгашками. Что-то я сделал и они все вдруг кааааааааааак заработают... Аж испугался. Но что правил - уже не помню.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено PLut 21-05-2015 в 16:39:

~ X ~ Я 8х8 засунул в 16х16 с альфой, съезжать перестало.

__________________
Base Defense on Steam, ModDB


Временная зона GMT. Текущее время 05:15.
Показать все 46 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024