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)
Отправлено Дядя Миша 17-01-2024 в 19:17:
Цитата:
Crystallize писал:
Там ещё остается какая-то гравитация которая приходит из vecAbsVelocity
Не гравитация, а просто вектор недообнуляется, наверное. Такое вполне может быть. Он же обнуляется не просто с течением времени, а по наступлению некоторого события, например если игрок нащупал дно.
Добавлено 17-01-2024 в 22:17:
Да я же вам рассказывал про забавный баг в первом Квейке. На e1m3 в конце уровня есть такой лифт к выходу с уровня и там игрока подстерегают два демона. Если убить их так, что они останутся на этом подъемнике, то, когда подъемник начнёт опускаться, мёртвые демоны поедут куда-то влево-вправо, ну вообщем кто куда. Почему так происходит? Демоны обычно гибнут в полёте, когда их велосити не равен нулю и падают на землю с актуальным велосити. Но поскольку монстр при падении получает флаг FL_ONGROUND это уже не имеет значения. А вот когда подъемник начинает опускаться вместе с демонами, он им обнуляет флаг FL_ONGROUND и велосити вновь начинает применяться. Вот они и продолжают ехать в ту сторону, куда прыгали перед смертью. Но - строго в 2д плоскости
Добавлено 17-01-2024 в 22:17:
И таких приколов в кушной физике довольно много.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Sigurth 20-01-2024 в 04:16:
Прилипание игрока к полу
Подскажите, как можно убрать "прилипание" игрока к полу по время FlyMove и NoClipMove? Подобный эффект можно наблюдать в режиме спектатора, особенно в кс 1.6, когда в летите прямо, у вас под ногами наклонная поверхность, и вы в итоге летите не прямо, а "скользите" по поверхности вниз. Можете проверить на de_dust2. Но если на режим спектатора мне глубоко начихать, то вот после уменьшения скорости передвижения по лестницам, при малом PITCH игроку не хватает скорости, чтобы отлипнуть от пола и начать подниматься, что меня очень огорчает. Фиксил кто-нибудь такое?
__________________
Никогда не поздно сделать мод под хл1
Отправлено Crystallize 20-01-2024 в 07:25:
Sigurth я такое замечал на ксашмоде в начале 2020 когда игрался с переносом уровней из хл2, но Дядя Миша меня толи не понял, толи не поверил.
Отправлено Aynekko 20-01-2024 в 07:55:
Цитата:
Sigurth писал:
Подскажите, как можно убрать "прилипание" игрока к полу по время FlyMove и NoClipMove?
void PM_CatagorizePosition (void):
C++ Source Code:
1 | if( pmove->movetype == MOVETYPE_NOCLIP || pmove->spectator ) |
2 | point[2] = pmove->origin[2]; // diffusion - no glueing with ground when noclipping or spectating |
4 | point[2] = pmove->origin[2] - 2; |
__________________
Мой мод на Xash
Отправлено Дядя Миша 20-01-2024 в 08:49:
Было:
C++ Source Code:
1 | // Always try and unstick us unless we are in NOCLIP mode |
2 | if ( pmove->movetype != MOVETYPE_NOCLIP && pmove->movetype != MOVETYPE_NONE ) |
6 | return; // Can't move, we're stuck |
10 | // Now that we are "unstuck", see where we are ( waterlevel and type, pmove->onground ). |
11 | PM_CatagorizePosition(); |
Стало:
C++ Source Code:
1 | // Always try and unstick us unless we are in NOCLIP mode |
2 | if ( pmove->movetype != MOVETYPE_NOCLIP && pmove->movetype != MOVETYPE_NONE ) |
6 | return; // Can't move, we're stuck |
9 | // Now that we are "unstuck", see where we are ( waterlevel and type, pmove->onground ). |
10 | PM_CatagorizePosition(); |
Так сложно догадаться, правда?
Добавлено 20-01-2024 в 11:49:
Собственно вот это говно, которое заставляет игрока "прилипать"
C++ Source Code:
1 | // If we are on something... |
2 | if (pmove->onground != -1) |
4 | // Then we are not in water jump sequence |
5 | pmove->waterjumptime = 0; |
6 | // If we could make the move, drop us down that 1 pixel |
7 | if (pmove->waterlevel < 2 && !tr.startsolid && !tr.allsolid) |
8 | VectorCopy (tr.endpos, pmove->origin); |
Но вам вообще не нужен весь этот код в режиме полёта.
Цитата:
Crystallize писал:
но Дядя Миша меня толи не понял, толи не поверил.
Дядя Миша не отвечает на вопросы из разряда, кушоет ли он мёд.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 25-01-2024 в 14:49:
я хотел написать Vector c = array[ (byte)(a*b) ]
а написал Vector c = array[ (byte)a*b ]
И у вектора отдельно компонент x запортился. Не выдался неверный элемент, не запортился весь вектор, а только один компонент. Странно.
Отправлено nemyax 25-01-2024 в 23:38:
Цитата:
Crystallize писал:
я хотел написать Vector c = array[ (byte)(a*b) ]
Что оно должно было делать по твоей задумке?
Отправлено Crystallize 26-01-2024 в 01:28:
nemyax Массив с положительными и отрицательными ячейками, чтобы знать какие рельсины впереди а какие позади тебя. Не все, просто пара ближайших. Один множитель это индекс -2 -1 1 2, другой это направление 1 -1 по или против нумерации. Ну а байт это переполнение буфера чтобы -1 стало 255.
Отправлено Дядя Миша 26-01-2024 в 05:46:
Цитата:
Crystallize писал:
Массив с положительными и отрицательными ячейками, чтобы знать какие рельсины впереди а какие позади тебя
Позади тебя очевидно рельсы, которые ты уже проехал. Впереди тебя рельсы, которые ты собираешься проехать.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 26-01-2024 в 06:00:
Цитата:
Дядя Миша писал:
if (pmove->onground != -1)
Интересно кстати, почему -1? Он же по идее вообще булевым должен быть.__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено Crystallize 26-01-2024 в 06:37:
Цитата:
Дядя Миша писал:
Позади тебя очевидно рельсы, которые ты уже проехал. Впереди тебя рельсы, которые ты собираешься проехать.
Да никто не знает что там позади тебя а что впереди. Особенно когда неизвестно с какой стороны ты прилетел и в какую сторону поехал. Есть только сегмент на котором ты сел, чей он таргет, кто его таргет, и переменная с направлением движения. Она и создаёт концепцию "позади тебя", "впереди тебя" и т.д.
Отправлено Дядя Миша 26-01-2024 в 07:05:
Цитата:
FiEctro писал:
Интересно кстати, почему -1? Он же по идее вообще булевым должен быть.
Не, там номер энтити хранится.
Цитата:
Crystallize писал:
Да никто не знает что там позади тебя а что впереди.
Так у тебя же там двусвязный список из патч-треков.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 26-01-2024 в 07:55:
Цитата:
Дядя Миша писал:
Не, там номер энтити хранится.
Там же написано on ground. Зачем в onground хранить номер энтитии? Да ещё и так хардкодить его ?__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено Crystallize 26-01-2024 в 08:32:
Цитата:
Дядя Миша писал:
Так у тебя же там двусвязный список из патч-треков.
Так он субъективен для самой рельсы. Если ты на него посмотришь не с той стороны, то для тебя он инвертирован.
Добавлено 26-01-2024 в 15:32:
Цитата:
FiEctro писал:
Там же написано on ground. Зачем в onground хранить номер энтитии? Да ещё и так хардкодить его ?
Наверное потому что энтити бывают брашевыми и при этом солидными.
Отправлено nemyax 26-01-2024 в 09:43:
Цитата:
Crystallize писал:
Есть только сегмент на котором ты сел, чей он таргет, кто его таргет, и переменная с направлением движения.
Тогда зачем ещё и массив строить? Всё ж и так есть.