aitch
Участник
- Сообщения
- 9
- Реакции
- 1
Я столкнулся с проблемой, что в момент, когда игрок прыгает, мы не можем напрямую работать с его скоростью. Т.е. если бы мы в этот момент телепортировали игрока с измененной скоростью, то у нас ничего бы не вышло. Так вот, меня интересуют возможные способы решения данной проблемы. Делать это в следующем тике не выгодно, так как ведется статистика.
Этот вариант самый действенный из всех, но самый ужасный, потому что скорость меняется только в следующем тике, а в этом тике уже ведется статистика и она получается некорректной.
Этот вариант самый действенный из всех, но самый ужасный, потому что скорость меняется только в следующем тике, а в этом тике уже ведется статистика и она получается некорректной.
C-подобный:
void Takeoff()
{
float speed = Movement_GetSpeed(this.jumper);
if (speed > JumpTypesPre[this.type])
{
float velocity[3];
Movement_GetVelocity(this.jumper, velocity);
float diff = JumpTypesPre[this.type] / speed;
velocity[0] = -(velocity[0] - velocity[0] * diff);
velocity[1] = -(velocity[1] - velocity[1] * diff);
velocity[2] = 0.0;
SetEntPropVector(this.jumper, Prop_Send, "m_vecBaseVelocity", velocity);
}
}