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

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 22-08-2017 в 11:50:

Я не совсем понятно написал. В одном из абзацев написано:
"При нажатии на кнопку, как и задумано, панель со свистом закрывается, курсор исчезает, и мы можем бегать как обычно. Чтобы показать нашу панель опять, надо откуда-нибудь вызвать gViewPort->m_pMyPanel->setVisible(true), а затем UpdateCursorState. Откуда это вызывать - это, конечно, ваше дело. Можете создать мессадж или эвент, и при его приеме показывать панель (создание мессаджей и эвентов в этой статье не рассматривается)"
И я так понял у него есть статьи на эти темы. Возможно, там будет рассказано про то, как какой-либо клавише назначить процедуру открытия VGUI. А так, всё то что написано в статье про VGUI, всё ясно.


Отправлено Crystallize 22-08-2017 в 11:53:

Цитата:
Crystallize писал:
Я беру у Trigger_Camera его yaw и передаю мессагой на клиент, прибавляю его ко viewangles игрока. Таким образом, утрируя, W и S всегда двигают игрока по оси камеры. Однако при стрейфе мы не движемся по ровному кругу вокруг камеры, как должны бы, а быстро уходим прочь по спирали. Чтобы идти по кругу, нужно повернуться к камере на лишние примерно 20 градусов. Это тот самый предиктинг виноват? Просто у камеры стоит SetNextThink ( 0 ), так что не похоже. Я пробовал менять cl_lc, cl_lw, безрезультатно. Попытался прикрутить для сглаживания углов функцию V_SmoothInterpolateAngles ( ) которая во view.cpp, но я вроде кормлю ей такие же vec3_t, а она выдаёт ошибку преобразования типов.

Я попробовал по-дядемишиному сделать, отталкиваясь от v_origin камеры, получилось конечно проще, но в результате то же самое: для кругового движения вокруг камеры отклонение джойстика на 90 градусов должно иметь погрешность, и чем дальше игрок от камеры, тем меньше погрешность. Тут штука в том, что уходя вбок от следящей за ним камеры, игрок будет двигаться по идеальной окружности только в реальности, видимо, а в симуляции он движется по многоугольнику. Сколько там, 1000 отсчётов в секунду?


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

Цитата:
semerjon писал:
И я так понял у него есть статьи на эти темы.

ЕМНИП, то нет. В данном контексте мессаджи - это User Messages, отправляемые с сервера на клиент. Поищи по проектам gmsgCurWeapon и MsgFunc_CurWeapon, например. Там, в принципе, всё расписано в комментариях в коде: как создавать эти мессаги на сервере, как их отправлять и как принимать на клиенте, можно узнать из кода оригинальных вальвоских библиотек. Единственные подводные камни для новичка - это типы сообщений (MSG_ONE, MSG_ALL) и размер мессаги в байтах. Я думаю, ты сможешь разобраться.
Эвенты - это предиктабельные (в случае с оружиями) аналоги пользовательских мессаг, но передающие в себе всегда фиксированный набор данных. Ищи по строчке PLAYBACK_EVENT_FULL на сервере и файлам .sc в папке events.


Отправлено Smykov 29-08-2017 в 16:35:

Есть какой-нибудь тутор по редактированию меню? Я так понял, его описывает файл menu.cpp, но что-то после пары поправочек, изменений не происходит.


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

semerjon меню шлётся с сервера. В виде строк. А с клиента отправляются команды при выборе строки. Зачем что-то менять на клиенте, если все изменения идут с сервера? Опиши точнее, что ты хочешь сделать.
Касательно ВГУИ это не действует. Там менюшки строятся на клиенте. Можно конечно передавать с сервера что-то, вроде MOTD.TXT, но сами меню пишутся на клиенте.


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

Ku2zoff Я имел ввиду меню паузы(или, ещё проще, Главное меню), в котором содержатся пункты меню: Resume game; Create Server и прочее. А так просто, интересно, можно ли переоформить меню. Вместо пунктов меню, сделать что-то наподобие быстрой строки из DOS-овских программ. Там ещё писали F3 Open и т.д.


Отправлено Ku2zoff 30-08-2017 в 13:38:

semerjon в меню можно изменить только текст, фон и звуки. В вон-версии текст в виде большой BMP-картинки, фон тоже BMP + видеоролик в верхней части фона. В стим-версии текст находится в GameMenu.res, + можно поменять шрифт. Фон там в виде нескольких tga-картинок, есть специальная прога, которая нарезает готовое изображение на части и делает текстовик с масштабом под разные разрешения: BackgroundLayout.txt
Больше в халфе ты ничего сделать не сможешь. А вот в ксаше можно как угодно кастомизировать меню, т.к. его исходный код открыт.


Отправлено Cybermax 31-08-2017 в 01:26:

Ku2zoff а как насчет Cry of Fear?


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

Cybermax там кастомный лаунчер, написанный на б-гмерзком дотнете, который по определённым адресам делает инъекции в движок, на манер AMXX.


Отправлено Crystallize 01-09-2017 в 01:48:

Как из input32.cpp получить доступ к viewentity->angle?


Отправлено Ku2zoff 01-09-2017 в 05:17:

Crystallize ну я думаю, что доступ можно получить только в view.cpp. А из инпута слать команды с помощью глобальных переменных. А что за надобность такая возникла?

Добавлено 01-09-2017 в 12:17:

Есть ли возможность активировать ScreenShake на клиенте? На сервере это пользовательское сообщение, а вот на клиенте нет ответки, она зашита в движок. Не хотелось бы тащить из ксаша код на клиент.


Отправлено Crystallize 01-09-2017 в 07:05:

Цитата:
Ku2zoff писал:
Crystallize ну я думаю, что доступ можно получить только в view.cpp. А из инпута слать команды с помощью глобальных переменных. А что за надобность такая возникла?

Мне нужно yaw камеры узнать, чтобы управлять игроком в её координатах, а не глобальных. За неумением камера пока что маппингом, а не thirdperson или ещё какая. Хотя наверное в этом и корень многих проблем.

Добавлено 01-09-2017 в 14:05:

Кстати для общего развития, почему доступ можно получить только из view.cpp? Это какой-то инклуд просто или что?


Отправлено Ku2zoff 01-09-2017 в 16:14:

Цитата:
Crystallize писал:
почему доступ можно получить только из view.cpp? Это какой-то инклуд просто или что?

ref_params_s. Вот. Их можно получить из V_CalcRefdef. ЕМНИП, это экспортная функция, которую хавает движок, засылая в неё ref_params_s. Но никто не мешает завести в классе CHud клиентскую энтитю, которая будет ссылкой на pparams->viewentity. Таким образом, ты сможешь получить доступ к ней во всей клиентке.

Добавлено 01-09-2017 в 23:14:

Корочи вот, в функции V_CalcRefdef можно сделать так:
C++ Source Code:
1
// override all previous settings if the viewent isn't the client
2
if ( pparams->viewentity > pparams->maxclients )
3
{
4
  cl_entity_t *viewentity;
5
  viewentity = gEngfuncs.GetEntityByIndex( pparams->viewentity );
6
  if ( viewentity )
7
  {
8
    VectorCopy( viewentity->origin, pparams->vieworg );
9
    VectorCopy( viewentity->angles, pparams->viewangles );
10
 
11
    // Store off overridden viewangles
12
    v_angles = pparams->viewangles;
13
 
14
    [color=red]gHUD.viewentity = viewentity;[/color]
15
  }
16
}


Отправлено Дядя Миша 01-09-2017 в 16:41:

А еще проще взять внешний указатель на весь ref_params_t

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 02-09-2017 в 15:58:

2Ku2zoffя дополнил структурки Chud но он говорит ошибка 2274 на твою строчку.
2Дядя Миша
В общем я понял, нужно GetEntityByIndex делать всегда. Поганый Си уводит не в том направлении, говорит непроинициализировано.

Зачем нужны структурные переменные, ну те которые в халфе оканчиваются на _t? Почему нельзя сразу обратиться к переменным из которых состоит сама структура blah_s?
Зачем вот этот "треугольник":

code:
struct blah_s {...} blah_t struct blah_s *lol *lol = &blah_t


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

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