HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- несколько вопросов (https://hlfx.ru/forum/showthread.php?threadid=2935)
Отправлено Дядя Миша 09-08-2012 в 20:28:
Цитата:
FaL_DissecTor писал:
на что тогда влияет те движения что я делаю мышкой?
cl_viewangles.
Цитата:
FaL_DissecTor писал:
Если да, то почему так все сложно, отчего не использовать 1 вектор конкретно куда сейчас смотрит игрок а не плодить тысячу векторов для модели, для эмм панча?
Чтобы это понять, надо самому написать хотя бы один движок.
Без этого все разговоры неизбежно сведутся к злому умыслу и коварному заговору. Причём в любой области.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено underworlddemon 10-08-2012 в 00:58:
Цитата:
Shapirlic писал:
Была бы какая нить инструкция по написанию хорошего кода Ну там что то типа
1.Не употребляй непроинициилизированные указатели.
2.Обнуляй переменные... и тд.
По этой инструкции можно было бы проверить весь код ))
есть такая весЧь как статические анализаторы кода
но они малоэффективны на малых объёмах кода
если у тебя С++, то попробуй PVS-Studio
у них есть демовариант использования
Отправлено CrazyRussian 10-08-2012 в 04:54:
Цитата:
Shapirlic писал:
Была бы какая нить инструкция по написанию хорошего кода
Ну там что то типа
1.Не употребляй непроинициилизированные указатели.
2.Обнуляй переменные... и тд.
По этой инструкции можно было бы проверить весь код ))
Маниакальное использование ассерта и обнуление всех переменных. У меня так ILE пишется.__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов
Отправлено Дядя Миша 10-08-2012 в 05:39:
underworlddemon PVS-Studio не хочит работать с шестой студией.
Я пробывал ужо.
Добавлено 10-08-2012 в 09:39:
Цитата:
CrazyRussian писал:
Маниакальное использование ассерта и обнуление всех переменных. У меня так ILE пишется.
Но это не мешает ему переодически вылетать. Так что, не панацея.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Shapirlic 10-08-2012 в 07:36:
Спасибо парни за ответы.Ещё один вопрос -
Я пытаюсь на клиенте симулировать серверные пули. Сделал передачу через евент в оружии всех нужных параметров для пули.Осталось только одно - синхронизировать движение\полёт.
Как в общем случае описать движение\полёт? Как я понимаю,оригин меняется по такому закону -
C++ Source Code:
origin += velocity * frametime. |
Ну и там трейс от оригина до получившегося вектора для проверки попал ли во что или нет.А как меняется скорость со временем? Точнее как меняется скорость от гравитации? Имеется скорость (velocity),гравитация самой ентити (pev->gravity) и серверная гравитация (sv_gravity).Как это всё связать? У меня написано что то типа C++ Source Code:
velocity.z = velocity.z - (gravity * frameT * (float)sv_grv); |
Я точно знаю, что это не правильно,так как при стрельбе видно,что попадание серверной пули находится немного ниже,чем попадание клиентской.И там точно не линейная зависимость как у меня.Подскажите правильную формулу.
Отправлено Дядя Миша 10-08-2012 в 10:34:
Цитата:
Shapirlic писал:
Как в общем случае описать движение\полёт?
Используй корочи UTIL_ParametricRocket. Это как раз то самое, что тебе надо.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Shapirlic 10-08-2012 в 10:58:
Цитата:
Дядя Миша писал:
UTIL_ParametricRocket
Там ничего нету про гравитацию.Там только расчёт времени полёта и точки попадания. Мне же нужна формула изменения скорости полёта от гравитации со временем. Я в Ксаше порылся на этот счёт,но ничего не нашёл. Оно там стопудово есть,просто я просмотрел. Ты должен знать 
Добавлено 10-08-2012 в 14:58:
И вы говорили про статичные анализаторы кода - я нашёл и заюзал CPPCheck. Несколько десятков ошибок и варнингов он выдал и был прав.Но были и ложные срабатывания.
Отправлено KiQ 10-08-2012 в 11:09:
Цитата:
Shapirlic писал:
Оно там стопудово есть,просто я просмотрел.
Это ты с чего взял? 
__________________
-Brain is dead-
Отправлено Shapirlic 10-08-2012 в 11:11:
Цитата:
KiQ писал:
Это ты с чего взял?
Т.к в Ксаше есть летающие ентити. Как бы нетрудно догадаться что там просчёт полёта должен быть.Просто я просмотрел его.
Отправлено Дядя Миша 10-08-2012 в 12:52:
Цитата:
Shapirlic писал:
Там ничего нету про гравитацию
на пули не влияет гравитация, что это тебе - стрелы арбалета?
Тогда и поправку на ветер давай вводи. А то иш - одна гравитация.
Добавлено 10-08-2012 в 16:52:
Цитата:
Shapirlic писал:
Но были и ложные срабатывания.
Можно пример ложнова?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Shapirlic 10-08-2012 в 13:09:
Насчёт пуль - я сто раз говорил что у меня в моде физика пуль другая.У меня пули - ентити.Они летят время,они падают со временем,теряют скорость,рикошетят,пробивают стены и другие ентити.Так что на них влияет гравитация.На сервере у меня невидимая ентитя пуля,которая дамажит,пробивает и всё остальное.А на клиенте трейсер,который имеет такие-же параметры,как и серверная ентитя.Поэтому мне нужно на клинете сделать симуляцию серверной физики.
А про ложные срабатывания - прога говорила -
This value is never used.
Но при детальном разборе оказывалось что это не так.
Зато она нашла одну плохую ошибку - выход за границы массива в одном месте.Это могло спровоцировать падение.
Отправлено Дядя Миша 10-08-2012 в 13:24:
Цитата:
Shapirlic писал:
У меня пули - ентити
Я понимаю. Но это никак не отменяет того факта, что на малых расстояниях влиянием гравитации можно пренебречь.
Цитата:
Shapirlic писал:
выход за границы массива в одном месте.Это могло спровоцировать падение.
Скорее зависание, если соседний участок памяти содержал бы в себе флоаты, а твой цикл там что-нибудь портил и в результате получался NAN.
PS. Скачал поглядел, забавная прожка. Вот на это место выдало
C++ Source Code:
3 | if( gpGlobals->time < m_flNextAttack ) |
6 | if( pController->pev->button & IN_ATTACK ) |
9 | UTIL_MakeVectorsPrivate( GetAbsAngles(), forward, NULL, NULL ); |
11 | // to make sure the gun doesn't fire too many bullets |
12 | m_fireLast = gpGlobals->time - (1.0f / m_fireRate ) - 0.01f; |
14 | TryFire( BarrelPosition(), forward, pController->pev ); |
16 | if( pController && pController->IsPlayer() ) |
17 | ((CBasePlayer *)pController)->m_iWeaponVolume = LOUD_GUN_VOLUME; |
19 | m_flNextAttack = gpGlobals->time + (1.0f / m_fireRate); |
вот такую ошибку:
Цитата:
Possible null pointer dereference: pController - otherwise it is redundant to check if pController is null at line 791
Т.е. первую и главную проверку на валидность она уже благополучно забыла. И какими дешевыми трюками она проверяет валидность кода, спрашивается?
Допроверяю ксаш - отпишусь поподробнее, если кому-то интересно.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Shapirlic 10-08-2012 в 13:27:
Цитата:
Дядя Миша писал:
Я понимаю. Но это никак не отменяет того факта, что на малых расстояниях влиянием гравитации можно пренебречь.
На малых да.Но например в bounce или на других больших картах влияние гравитации заметно.Видно,что клиентский пулевой декал не совпадает с серверным на юнит-два.Конечно мелочи,но хотелось бы сделать точно.Для этого мне нужна формула гравитации или скорости,незнаю как назвать но думаю ты понял что я имею ввиду.
Отправлено Дядя Миша 10-08-2012 в 14:02:
Цитата:
Shapirlic писал:
Для этого мне нужна формула гравитации или скорости
velocity.z -= gravity * frametime
фреймтайм на клиенте можно получить отняв олдтайм от тайма, а гравитацию взять из мовеварсов.
Добавлено 10-08-2012 в 18:02:
Вообщем допроверял я ксаш-мод. Нашел пару непроинициализированных переменных, которые особо ни на что не влияли и одну ошибку с копированием векторов там, где можно было просто взять на них указатели, скорее стилистическое, нежели ошибка. Ерундовая программка вообщем. Но из плюсов я заметил работающий барнакль, да.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Shapirlic 10-08-2012 в 14:04:
Цитата:
Дядя Миша писал:
velocity.z -= gravity * frametime
gravity - то аналог серверной pev->gravity или sv_gravity? или что то другое?
Или ёе только из movevars можно взять?