HLFX.Ru Forum Страницы (260): « Первая ... « 72 73 74 75 [76] 77 78 79 80 » ... Последняя »
Показать все 3892 сообщений этой темы на одной странице

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)


Отправлено Ku2zoff 04-08-2017 в 10:12:

Цитата:
Дядя Миша писал:
В параное именно так и сделано и никаких проблем и вообще никакого дополнительного кода там не надо - уже и так всё необходимое установлено.

В Паранойе 2.
Цитата:
Дядя Миша писал:
Самым подходящим является вызов отрисовки модели игрока от третьего лица.

StudioDrawPlayer, да. И откуда это вызывать, чтобы оно работало правильно? Вызывается по-умолчанию оно только движком, для локального игрока от 3-го лица и для нелокальных игроков в мультиплеере. Ну ещё из StudioDrawModel для дохлых игроков с особым условием. Дело в том, что для дохлых игроков есть энтить на сервере. Я пробовал создавать энтить для ног и рисовать её похожим способом. Что-то у меня тогда не получилось. Ладно, попробую ещё раз.


Отправлено Дядя Миша 04-08-2017 в 15:00:

Цитата:
Ku2zoff писал:
В Паранойе 2.

И всё, мозг отключился?
Цитата:
Ku2zoff писал:
Вызывается по-умолчанию оно только движком, для локального игрока от 3-го лица и для нелокальных игроков в мультиплеере.

Правильно. А откуда движок узнает, что надо рисовать модель от третьего лица? Правильно, об этом ему говорит клиентка. И сама камера от третьего лица в клиентке. Ну так и скажи движку, что надо рисовать модель от третьего лица, а камере скажи, чтоб не включалась, а вместо это модели рисуй ноги. Правда сложно догадаться?

Добавлено 04-08-2017 в 18:00:

Там единственный момент, вызывающий трудности - движок расхочет рисовать вьюмодель, но это легко обойти, т.к. вызов CL_IsThirdPerson не кэшируется в голдсорсе. Метода такая:
Где-нибудь, ну например в HUD_Frame ставим com_thirdperson = 1;
После того как модель игрока от третьего лица успешно добавлена в лист ( мы об этом узнаем в HUD_AddEntity), ставим com_thirdperson = 0. Движок теперь думает что мы рисуем от первого лица, но и модельку от третьего тоже добавили. А дальше в StudioDrawPlayer делаем просто проверку на com_thirdperson (мы же его сбросили в ноль), и если он равен нулю - рисуем ноги. Аналогично камера от третьего лица не включится, т.к. к моменту её активации com_thirdperson уже сброшен в ноль. Осталось только придумать как восстановить функциональность собственно thirdperson, но это не слишком сложная задачка, так что не буду разжёвывать.
В целом работы по добавлению ног - 8-10 минут. Модельку дольше делать ито.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 04-08-2017 в 18:15:

Цитата:
Дядя Миша писал:
Осталось только придумать как восстановить функциональность собственно thirdperson

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


Отправлено Ku2zoff 05-08-2017 в 03:14:

Придумал. Нам же надо сообщить движку, что thirdperson включён, а потом сразу выключить, чтобы не исчезла вюмодель. При этом не включать камеру от третьего лица. Значит, нужно поменять условия функции CL_IsThirdPerson на такие, которые камеру не включат без команды thirdperson. И все проверки на CL_IsThirdPerson в клиентке (например в view.cpp), поменять на какую-нибудь свою, которая будет знать, включена камера или нет. До кучи добавить колоизацию камеры, чтобы она не проваливалась в стены.


Отправлено fl0wer 06-08-2017 в 00:15:

Как научить npc подниматься по лестнице?


Отправлено Ku2zoff 06-08-2017 в 06:21:

fl0wer либо сделать это скриптом, как в CS CZ: DS дельта снайпер залезает на башню, либо долго и упорно кодить. Ты наверное обратил внимание, что в ХЛ нет монстров с разными мувтипами? Ну то есть таких, которые сначала бегают, а потом летают, или ползают, а потом плавают. Из-за сложностей в реализации, либо из-за ненадобности. Так вот. Чтобы монстр лазил по лестнице, он должен иметь на этот момент MOVETYPE_FLY. Переключить мувтип несложно. Сложно сделать навигацию и код движения, чтобы монстр не тупил. И самое сложное - анимации.

Добавлено 06-08-2017 в 13:21:

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

З.Ы. можно пойти извращенским путём, как мапперы Cube 2: Sauerbraten. В сойере нет вертикальных лестниц, поэтому вертикальные лестницы там - суть обычные лестницы, но с очень короткими ступеньками в 1 тамошний юнит. Игроку, чтобы залезть, достаточно.


Отправлено Дядя Миша 06-08-2017 в 09:59:

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

Это скорее для кваки характерно

Цитата:
Ku2zoff писал:
Сложно сделать навигацию и код движения

Боты же лазают по лестницам

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Smykov 17-08-2017 в 20:23:

1) Не могу понять, что делает функция UTIL_MakeVectors. Во-многих местах её видел. Но не могу понять, что именно она делает. Выделяет в памяти новые вектора? да вроде в отладчике ничего нового не высвечивалось и значение векторов не менялось. Например: UTIL_MakeVectors( m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle ); Что произойдет?
2) В чём отличие pev->angles от pev->v_angle? Хотя, примерно я понимаю, что v_angle (v_ от view) содержит угол обзора из самой камеры, но решил всё проверить какие значения они хранят. Оси Y-и вроде равны, а вот X-ы как-то немного отличаются, разница не существенная, но, просто пока из-за интереса, хотелось бы узнать в каких случаях что и как используется.
3) Есть ли отличие между записью UTIL_SetOrigin(pev, vecOrigin); и pev->origin=vecOrigin;? Или может я не до конца разобрался и для местонахождения сущности используется не только свойство origin.


Отправлено Дядя Миша 17-08-2017 в 20:50:

Цитата:
semerjon писал:
UTIL_MakeVectors( m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle ); Что произойдет?

Углы эйлера разложатся на три вектора
gpGlobals->v_forward
gpGlobals->v_right
gpGlobals->v_up
глобальные значения, потому что этот механизм остался от первокваки с её виртуальной машинкой.

Цитата:
semerjon писал:
В чём отличие pev->angles от pev->v_angle?

Оно только для игрока имеет значение. pev->v_angle хранит угол камеры на клиенте, pev->angles для игрока содержит почти тоже самое, но питч инвертирован и поделён на три. Долго объяснять зачем.

Цитата:
semerjon писал:
Есть ли отличие между записью UTIL_SetOrigin(pev, vecOrigin); и pev->origin=vecOrigin;

Есть. UTIL_SetOrigin, перелинковывает сущность в новый узел AABB-дерева, это используется для выбраковки видимости энтить на сервере, для быстрого нахождения энтить, сквозь которые проходит трасса, итд.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Smykov 21-08-2017 в 15:34:

1) Пожалуйста, можете скинуть инфу или рассказать про создание интерфейса меню. Например, в CS меню закупки, как отрисовывается затемнение экрана(понятно, что прямоугольный примитив, я имею ввиду функцию), как задаётся ширина и высота каждого пункта меню. Я как-то давно смотрел текстовые файлы CS, и какой-то из них как раз описывал пункты данного меню. Но, мне бы узнать как и что описать в самой программе.
2) Есть ли какая-либо документация по программированию для GoldSrc. Я уже на этом сайте где-то видел, что человек объединял гайды из сети в единый файл. Но, я имею ввиду наподобие https://developer.valvesoftware.com/wiki/SDK_Docs. Просто, пока что кое-какие свойства объектов не совсем понятны за что отвечают.


Отправлено Ku2zoff 21-08-2017 в 16:12:

semerjon качай тутор из аттача в этом посте.

Добавлено 21-08-2017 в 23:12:

Цитата:
semerjon писал:
Есть ли какая-либо документация по программированию для GoldSrc.

Это делал Тренсфер. Придётся поискать в интернете, т.к. ссылки давно сдохли. Рекомендую почитать Дядь Мишины статьи по квейк-движкам. А потом раздел туториалы на нашем форуме. А потом поискать туториалы на half-life.ru, wavelength.net. Ну и web.archive.org никто ещё не отменял. Там можно найти снимки collective.valve-erc.com, chatbear, planethalflife... Да много чего. Там есть ОЧЕНЬ древние давно забытые туторы. Вот что действительно надо восстановить и объединить в сборник.


Отправлено Crystallize 21-08-2017 в 16:33:

Ku2zoff По-моему все туторы из веб-архива и так доступны на Wavelength?


Отправлено Ku2zoff 21-08-2017 в 19:28:

Crystallize нет. Например, те, что были на valve-erc недоступны. И на planethalflife некоторые. Кое-где страницы живые ещё, но не полностью.


Отправлено Smykov 21-08-2017 в 23:32:

Ku2zoff Пожалуйста, помогите найти ещё статьи про сообщения и события. Автор про них упоминал в туторе.


Отправлено Ku2zoff 22-08-2017 в 02:23:

semerjon сообщения? Ну это наверное текст из titles.txt. Ничего сложного. Просто добавляешь свои строки туда, вот и всё. А про события в самом туторе написано, функция AddActionSignal. С помощью сигналов можно менять как переменные на клиенте, так и отправлять команды на сервер и клиент. И даже функции какие-либо вызывать.
Вообще, это единственный тутор по ВГУИ, который объясняет теорию, а не только показывает, как сделать на практике. Так что пробуй, делай.


Временная зона GMT. Текущее время 10:51. Страницы (260): « Первая ... « 72 73 74 75 [76] 77 78 79 80 » ... Последняя »
Показать все 3892 сообщений этой темы на одной странице

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