HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Страницы (260): « Первая ... « 189 190 191 192 [193] 194 195 196 197 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Aynekko:

C++ Source Code:
char msg[64];
sprintf(msg, "Float is: %f", flFloat);
UTIL_ShowMessage(msg, (CBaseEntity*)pPlayer);

Только вот я не уверен, правильно ли это. Может быть, стоит подсовывать первым аргументом UTIL_VarArgs("Float is: %f"\n", flFloat).

Сообщить модератору | | IP: Записан
Сообщение: 201947

Старое сообщение 17-05-2021 05:00
- За что?
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1002
Возраст: 31

Рейтинг



Цитата:
Ku2zoff писал:
Aynekko:
C++ Source Code:
char msg[64];
sprintf(msg, "Float is: %f", flFloat);
UTIL_ShowMessage(msg, (CBaseEntity*)pPlayer);

Только вот я не уверен, правильно ли это. Может быть, стоит подсовывать первым аргументом UTIL_VarArgs("Float is: %f"\n", flFloat).

Спасибо большое. Сделал через утил_худмесседж. Там задал параметры, где текст распологается и каким цветом. А что делает вараргс, я что-то не понял. В коде прописал, но не вижу нигде.

__________________
Мой мод на Xash

Отредактировано Aynekko 17-05-2021 в 09:27

Сообщить модератору | | IP: Записан
Сообщение: 201949

Старое сообщение 17-05-2021 09:19
- За что?
nekonomicon
Некомант

Дата регистрации: Jul 2016
Проживает: Екатеринбург
Сообщений: 78

Рейтинг



Цитата:
Aynekko писал:
А что делает вараргс, я что-то не понял. В коде прописал, но не вижу нигде.

Делает почти тоже самое, что и sprintf, только копирует строку в статический буфер и возвращает указатель на него:
https://github.com/ValveSoftware/ha.../util.cpp#L1082
По факту чуть медленнее sprintf и поточно-небезопасная функция, но зато удобная.

Сообщить модератору | | IP: Записан
Сообщение: 202011

Старое сообщение 21-05-2021 06:52
- За что?
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1002
Возраст: 31

Рейтинг



nekonomicon спасибо за разъяснение

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 202012

Старое сообщение 21-05-2021 10:38
- За что?
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1002
Возраст: 31

Рейтинг



Народ, вожусь с trigger_push, прошерстил инет и даже нашел какие-то концы на этом форуме про FL_BASEVELOCITY, но так ни до чего и не додумался. Там что-то с самой физикой игры.
Суть проблемы - есть подводный туннель, который полностью внутри func_water, а внутри туннеля trigger_push. Пуш не толкает. Если включить и выключить noclip, то толкнет один раз и замолкает.
Припоминаю, что в хл2 игрока толкало под водой. Как это исправить, или может есть какие идеи, как еще это реализовать?
На одном сайте была идея поставить кучу мелких пушей друг за другом, чтобы кидало из одного в другой. Но это ж бред…хоть и может сработать.

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 202014

Старое сообщение 21-05-2021 21:32
- За что?
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



Aynekko может флаг Once Only стоит?

Добавлено 22-05-2021 в 03:29:

Алсо, триггер должен быть растянут на весь туннель

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 202015

Старое сообщение 22-05-2021 00:29
- За что?
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1002
Возраст: 31

Рейтинг



Цитата:
KiQ писал:
Aynekko может флаг Once Only стоит?
Алсо, триггер должен быть растянут на весь туннель

Норм все. Я с этой проблемой еще много лет назад сталкивался.

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 202016

Старое сообщение 22-05-2021 06:02
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32190
Нанёс повреждений: 392 ед.

Рейтинг



Там поидее надо не триггер пуш, а несолидный конвейер, чёб игрока извнутри тащило.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 202019

Старое сообщение 22-05-2021 08:17
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1002
Возраст: 31

Рейтинг



Цитата:
Дядя Миша писал:
Там поидее надо не триггер пуш, а несолидный конвейер, чёб игрока извнутри тащило.

Не работает. Несолидный конвеер вообще не имеет эффекта. Проверял "на воздухе". Сделал его солидным, тогда тащит (когда сверху стою).

Добавлено 22-05-2021 в 11:40:

Как всегда, все решается костылем. Но вопрос открытый - как это пофиксить в коде?
А пока я поставил multi_manager, который дергает этот push каждые 0.05 секунды. Включает и выключает его. Если поставить 0.1, то получается дергано. И все, стабильно тащит под водой.

Добавлено 22-05-2021 в 12:17:

Окей, я КАЖЕТСЯ, нашел своеобразный фикс, который сработал, как ни странно.
Было:
C++ Source Code:
pOther->SetBaseVelocity( vecPush );
pevToucher->flags |= FL_BASEVELOCITY;

Стало:
C++ Source Code:
vecPush *= 0.01;
pOther->SetBaseVelocity( vecPush );
//		pevToucher->flags |= FL_BASEVELOCITY;

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

Поэтому, я делаю флаг для хаммера underwater push, где буду юзать этот "фикс" в нужных ситуациях, и на этом вопрос закрыт. Если есть предложения, как это пофиксить правильнее, буду только рад.

UPD: мм, не работает эта шняга при низком фпс. Буду думать дальше.

__________________
Мой мод на Xash

Отредактировано Aynekko 22-05-2021 в 09:24

Сообщить модератору | | IP: Записан
Сообщение: 202021

Старое сообщение 22-05-2021 09:17
- За что?
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1002
Возраст: 31

Рейтинг



Убрал зависимость от фпс, но все равно пуш ведет себя немного странно (ну это немудрено). Если поставить флаг FL_BASEVELOCITY, то получается вообще треш.
Пока получилось так, сделал спаунфлаг, и тестирую два пуша рядом. Снизу оригинал, сверху мой огород. Шестерка подобрана эмпирически.

C++ Source Code:
1
else
2
{
3
  if( pev->spawnflags & EXPERIMENTAL )
4
  {
5
    // Push field, transfer to base velocity
6
    Vector vecPush = (pev->speed * m_vecPushDir) * 6 * gpGlobals->frametime;
7
 
8
    //		if ( pevToucher->flags & FL_BASEVELOCITY )
9
    vecPush = vecPush + pOther->GetBaseVelocity();
10
 
11
    if( vecPush.z > 0 && FBitSet( pOther->pev->flags, FL_ONGROUND ))
12
    {
13
      pOther->pev->flags &= ~FL_ONGROUND;
14
      Vector origin = pOther->GetAbsOrigin();
15
      origin.z += 1.0f;
16
      pOther->SetAbsOrigin( origin );
17
    }
18
 
19
    if( pOther->m_iActorType == ACTOR_DYNAMIC )
20
      WorldPhysic->AddForce( pOther, vecPush * (1.0f / gpGlobals->frametime) * 0.5f );
21
    pOther->SetBaseVelocity( vecPush );
22
    //		pevToucher->flags |= FL_BASEVELOCITY;
23
  }
24
  else
25
  {
26
    // Push field, transfer to base velocity
27
    Vector vecPush = (pev->speed * m_vecPushDir);
28
 
29
    if ( pevToucher->flags & FL_BASEVELOCITY )
30
      vecPush = vecPush + pOther->GetBaseVelocity();
31
 
32
    if( vecPush.z > 0 && FBitSet( pOther->pev->flags, FL_ONGROUND ))
33
    {
34
      pOther->pev->flags &= ~FL_ONGROUND;
35
      Vector origin = pOther->GetAbsOrigin();
36
      origin.z += 1.0f;
37
      pOther->SetAbsOrigin( origin );
38
    }
39
 
40
    if( pOther->m_iActorType == ACTOR_DYNAMIC )
41
      WorldPhysic->AddForce( pOther, vecPush * (1.0f / gpGlobals->frametime) * 0.5f );
42
    pOther->SetBaseVelocity( vecPush );
43
    pevToucher->flags |= FL_BASEVELOCITY;
44
  }
45
}

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

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 202032

Старое сообщение 24-05-2021 14:22
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



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

FOV 100:

https://i.imgur.com/Q2QmNCh.jpg

FOV 90:

https://i.imgur.com/Nx0UoD7.jpg

Добавлено 31-05-2021 в 01:27:

Размер VGUI-меню подгоняется под размер брашевого экрана (привет из тутора про рамки выделения). И все элементы меню динамически меняют своё положение и размер. В теории, какую бы форму не имел монитор, меню в нём спокойно уместится. Тестировал на разных разрешениях, начиная от 640х480. Всё помещается. Но вот с FOV проблема. У меня по дефолту стоит 100 для моего разрешения экрана. Для обычных не широкоформатных мониторов годится 90, а если 1080p и выше, то я думаю, что подойдёт значение 105-110 и т.д. Если получится это победить, то дело останется за малым - дописать парсер текстовиков для мониторов (да, количество кнопок, менюшек, прочего, а также команды и тексты я планирую грузить из файлов). Команды вообще делаются просто, находим активный монитор, который в данный момент юзает игрок, и в client command отправляем что-то типа "monitor_use menu1 param1". Ну а энтить монитора уже разруливает параметры и управляет другими энтитями. Я очень рад, что нашёл альтернативу ксашевским OpenGL-мониторам. Картинка видеонаблюдения на скринах реалтаймовая. И оттуда даже звук есть, в общем, каеф.

Сообщить модератору | | IP: Записан
Сообщение: 202077

Старое сообщение 30-05-2021 18:27
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32190
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Ku2zoff писал:
Я очень рад, что нашёл альтернативу ксашевским OpenGL-мониторам

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 202078

Старое сообщение 30-05-2021 19:07
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Ku2zoff писал:
Я очень рад, что нашёл альтернативу ксашевским OpenGL-мониторам.

pparams->nextView?

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 202079

Старое сообщение 30-05-2021 19:46
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
XaeroX писал:
pparams->nextView?

Да. Из ограничений - нельзя сделать, чтобы монитор рисовал картинку, когда игрок в него не смотрит, а просто стоит рядом. Точнее можно, но она будет заметно плавать, т.к. динамический подбор размера вьюпорта не очень быстро работает. Но попробовать стоит, хотя бы ради пары мест, где это можно заюзать. OpenGL-хаки использовать не хочу, glCopyTexImage2D или как там эта функция правильно называется, не работает нормально на обновлённом рендерере халфы - не масштабируется. Да и не нужны эти эффекты в общем-то. 3D небо я сделал обычным способом, даже научился его переключать, чтобы динамически менять скайбоксы. Осталось научить фонарик равномерно светить при разных скейлах текстуры, и всё в шоколаде.

Сообщить модератору | | IP: Записан
Сообщение: 202080

Старое сообщение 30-05-2021 20:11
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32190
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Ku2zoff писал:
динамический подбор размера вьюпорта не очень быстро работает



Цитата:
Ku2zoff писал:
3D небо я сделал обычным способом

а есть необычный?

Цитата:
Ku2zoff писал:
Осталось научить фонарик равномерно светить при разных скейлах текстуры, и всё в шоколаде.

как мало человеку для счастья нужно

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 202082

Старое сообщение 31-05-2021 04:39
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 10:24. Новая тема    Ответить
Страницы (260): « Первая ... « 189 190 191 192 [193] 194 195 196 197 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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