Вес игрока, высота прыжка и скорость ходьбы в положении сидя
Хл1
1 - Где находятся параметры высоты прыжка игрока (не гравитации), ну там может множитель какой..
2 - Где указан физический вес игрока, у всяких же предметов, выпадающих из функ_брекейблов, гильз, гибсов разный вес? Где у них он указан? От чего зависит то, что, например, гильзы и гибсы при падении об землю, отскакивают вверх?
3 - Как регулировать скорость ходьбы в duck? Хочу сделать чуть быстрее, не меняя при этом обычную скорость ходьбы\бега
1. pmmove.cpp или как-то так. это в pmshared
там все скорости игрока.
2. у каждой подобной энтити есть параметр pev->gravity и pev->friction отскакивание от поверхностей - толкьо с с параметром pev->bounce или pev>bouncemissile
3. см.п. 1
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Спасибо, я так понял, ты про pm_shared.c сейчас бегло осмотрел, там есть много всяких PM_ может ты знаешь в каком из них указана функция прыжка? Прыжок связан с friction или фрикшн отвечает только скольжение объектов на земле?
2 - А можно ли сделать, чтобы игрок при падении или прыжке отскакивал также как эти гибсы? (изменением муветипа и т.д.)
Добавлено 25-01-2015 в 21:48:
Сейчас в плеер.цпп в разделе спаун нашёл pev->gravity = 1.0, вообщем-то он меняет высоту прыжка, правда скорость прыжка как менять пока не нашёл..
Yo Den
1. pmshared.c, PM_Jump() в чистом SDK это 2565 строчка, в общем где идет проверка на longjump смотри выражения вида
C++ Source Code:
pmove->velocity[2] = sqrt(2 * 800 * 45.0);
в кваке, например, там не квадраный корень, а фиксированное значение 270, можешь или изменять формулу в стиле sqrt(2 * 800 * XX.0) или же подставить заместо свое фиксированное значение.
2. Как такового веса там нет, чтобы игрок отскакивал, можно попробовать задать pmove->movetype == MOVETYPE_BOUNCE, но ничего хорошего из этого, имхо не получится. Достаточно просто увеличить параметр overbounce во всех вызовах PM_ClipVelocity, ну ил не во всех, а там, где требуется. Опять же, игрока будет довольно сильно колбасить, если переборщить, не вижу в этом особого смысла.
3. В PM_Duck отредактировать условие
C++ Source Code:
1
if ( pmove->flags & FL_DUCKING )
2
{
3
pmove->cmd.forwardmove *= 0.333;
4
pmove->cmd.sidemove *= 0.333;
5
pmove->cmd.upmove *= 0.333;
6
}
Вообще, задачи, по-моему достаточно тривиальные, рекомендую попробовать вникнуть самому
от души, очень выручил, все ок) Муветип в плеер.цпп на баунс я менял, вообще ничего не изменилось. Умножил на 2 overbounce в PM_ClipVelocity (только он там насколько я понял один раз встречается, а не "во ВСЕХ вызовах") очень прикольный эффект получился, игрок прыгает как мячик и отскакивет от стен, надо будет еще с этим поиграться
какая-то странная штука с этим параметром. Если pmove->velocity[2] = 125; то все-нормально, прыжок становится ниже, но если, поставить, например, 124, то прыжки начинают залипать при просмотре себе под ноги и в стороны. При 123 еще хуже: смотришь вперёд, прыгаешь - все нормально, смотришь под ноги или в стороны, прыжок не осуществляется вообще
Yo Den значит, вероятно, где-то векторная операция с таким значением округляется до нуля. А зачем вообще делать такой низкий прыжок, у тебя игрок рахит что-ли?
KiQ писал: Yo Den значит, вероятно, где-то векторная операция с таким значением округляется до нуля. А зачем вообще делать такой низкий прыжок, у тебя игрок рахит что-ли?
ну я просто сначала понизил значение гравитации вдвое, соответственно прыжок стал слишком большим, ну да ладно, верну обратно