HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > несколько вопросов
Страницы (78): « Первая ... « 31 32 33 34 [35] 36 37 38 39 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

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

Рейтинг



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

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 02-01-2012 12:40
-
 XaeroX
Crystice Softworks

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

Рейтинг



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


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

Всю жизнь наивно полагал, что вычисляется она из m_flFallVelocity, а тут прям какой-то срыв покровов

См. CBasePlayer::PostThink, CHalfLifeRules::FlPlayerFallDamage

Или ты хочешь сказать, что в PM-коде баг и велосити нарастает, если игрок застрял?

__________________

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

Старое сообщение 02-01-2012 13:15
-
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
XaeroX писал:
Всю жизнь наивно полагал, что вычисляется она из m_flFallVelocity, а тут прям какой-то срыв покровов

хыхыхыхыхыхыххыхыххы. А fallvelocity по твоему как считается? От времени проведенного в воздухе. Чем больше времени в воздухе провёл - тем она выше. На первый взгляд это правильно, игрок падает на землю с возрастающей скоростью, но! Существуют случаи, когда игрок чотко застревает между двумя брашами, которые сходятся под определенным углом. Там где-то интересный баг в PM_FlyMove, благодаря которому считается что игрок по прежнему летит вниз, хотя на самом деле он висит между двумя брашами, зажав кнопку "вперед". Баг воспроизводим и на ксаше и в халфе.
Цитата:
XaeroX писал:
и велосити нарастает, если игрок застрял?

не застрял, говорю же! Есть случаи, когда можно висеть в воздухе, зажав кнопку "вперед". Причём висеть неограниченно долго.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 02-01-2012 14:05
-
qpAHToMAS
Интернетовское трепло

Дата регистрации: Sep 2007
Проживает: (void)
Сообщений: 1788
Возраст: 34

Рейтинг



Дядя Миша, а про Edge Bug так же раскидать сможешь? Когда с любой высоты (даже очень огромной) можно приземлиться уголком игрока на край плоскости (едва коснуться) и не потерять ни HP.

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

Старое сообщение 02-01-2012 14:10
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



qpAHToMAS скорее всего pmove->onground раньше обнуляет flFallVelocity чем она успевает причинить игроку повреждения. Ты краешком коснулся тебе назначили землю и ускорение обнулилось.
Что-то такое, но я толком не разбирался.
Таких забавных багов в первой халфе предостаточно, но их никто не правит, потому что они дают охрененные преимсущества тем, кто их освоил.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 02-01-2012 14:18
-
 XaeroX
Crystice Softworks

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

Рейтинг



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


Цитата:
Дядя Миша писал:
А fallvelocity по твоему как считается?

-pev->velocity.z
Цитата:
Дядя Миша писал:
Там где-то интересный баг в PM_FlyMove, благодаря которому считается что игрок по прежнему летит вниз, хотя на самом деле он висит между двумя брашами, зажав кнопку "вперед".

Я с халфовским пмувом не особо знаком, но логично предположить, что есть wishvel, которая увеличивается перед Pmovesingle, и есть реальная скорость, которая присваивается после колоизации и клипвелосити по бампплейнам.

__________________

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

Старое сообщение 02-01-2012 14:35
-
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
XaeroX писал:
-pev->velocity.z

не. в PM_AddCorrectGravity();
Туда постоянно что-то пишется, а если игрок стоит на земле, то pmove->velocity[2] обнуляется каждый кадр.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 02-01-2012 15:58
-
 XaeroX
Crystice Softworks

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

Рейтинг



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


Цитата:
Дядя Миша писал:
не

Что - не?

__________________

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

Старое сообщение 02-01-2012 16:02
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



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


Дядя Миша если повреждения считаются по времени проведенному в воздухе, то как можно в опфоре подпрыгнуть на батуте на огромную высоту и не потерять хп?

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

Старое сообщение 02-01-2012 17:59
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
Government-Man писал:
то как можно в опфоре подпрыгнуть на батуте на огромную высоту и не потерять хп?

там запас положительного велосити большой. Пока AddCorrectGravity его обратно отнимет, времени пройдет в два раза больше.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 02-01-2012 18:18
-
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



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


Дядя Миша дык... получается что повреждение рассчитывается по дистанции которую пролетел игрок вниз по оси Z - ну это совсем другое дело...

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

Старое сообщение 03-01-2012 00:29
- За что?
marikcool
Житель форума

Дата регистрации: Jul 2011
Проживает: kz
Сообщений: 1522
Возраст: 39

Рейтинг



Цитата:
Government-Man писал:
Дядя Миша дык... получается что повреждение рассчитывается по дистанции которую пролетел игрок вниз по оси Z - ну это совсем другое дело...

он же написал что по времени в воздухе а не по z
как я понял, что дальше мы получаем fallvelocity а потом уже расчитываем дамадж там по mp_falldamage и величины fallvelocity

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

Старое сообщение 03-01-2012 16:55
- За что?
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



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


marikcool а с какого момента начинает считаться это время? С момента отрыва ног от земли или же с того момента когда вертикальная скорость стала отрицательной?

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

Старое сообщение 03-01-2012 22:06
- За что?
marikcool
Житель форума

Дата регистрации: Jul 2011
Проживает: kz
Сообщений: 1522
Возраст: 39

Рейтинг



Цитата:
Government-Man писал:
marikcool а с какого момента начинает считаться это время? С момента отрыва ног от земли или же с того момента когда вертикальная скорость стала отрицательной?

получается с момента как он оторвался от земли.
в претхинке
C++ Source Code:
1
if ( !FBitSet ( pev->flags, FL_ONGROUND ) )
2
{
3
  m_flFallVelocity = -pev->velocity.z;
4
}

в постхинке
C++ Source Code:
1
if (FBitSet(pev->flags, FL_ONGROUND))
2
{
3
  //..
4
  m_flFallVelocity = 0;
5
}


само выставление флага FL_ONGROUND я чето ненашол, походу сам движок его выставляет я хз,
я искал конструкцию типо как тут, у класса игрока и у тех классов у кого он наследуется.
C++ Source Code:
1
void CFlockingFlyer :: FallHack( void )
2
{
3
  if ( pev->flags & FL_ONGROUND )
4
  {
5
    if ( !FClassnameIs ( pev->groundentity, "worldspawn" ) )
6
    {
7
      pev->flags &= ~FL_ONGROUND;
8
      ...



интересно бы разобрать полную цепочку от получения новых координат от клиента, валидации данных, предикт игрока, обновления данных в логике игры.

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

Старое сообщение 03-01-2012 22:59
- За что?
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



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


Цитата:
marikcool писал:
m_flFallVelocity = -pev->velocity.z;


Ну... вертикальная скорость... так и должно быть по логике. Где тут зависимость повреждения от времени проведенного в воздухе ваще?

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

Старое сообщение 04-01-2012 00:36
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 21:10. Новая тема    Ответить
Страницы (78): « Первая ... « 31 32 33 34 [35] 36 37 38 39 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > несколько вопросов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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