Разбираем исходный код игры: почему -tp не работает.

смерть в dota auto chess

Многие из вас, скорее всего, используют команду -tp, насмотревшись стримов топовых игроков. Если вы не в курсе — команда телепортирует вас в центр поля. В этот момент анимация «снарядов», наносящих урон курьеру, летит сначала до точки, где вы стоите, а после телепортации летит еще до середины поля.
Делают это для того, чтобы выиграть доли секунды и, возможно, умереть позже одного из игроков, заняв место выше него. Вам может показаться, что это работает, но сегодня мы докажем, что это не так.

В коде игры эта функция называется LoseARound, она срабатывает при вашем проигрыше.
Обычно, код выполняется построчно и практически мгновенно, но этот код имеет специальную задержку, длительность которой зависит от вашего положения на поле.

Timers:CreateTimer(delay_time,function()
      ...
      hero:SetHealth(after_hp)
      ...
end

Внутри этого блока находится код, отвечающий за установку вашего HP на 0. Длительность задержки хранится в переменной delay_time, которая рассчитывается в 14 строке.

delay_time = (hero:GetAbsOrigin() - u:GetAbsOrigin()):Length2D() / 1000

Время задержки рассчитывается только один раз, когда вы проигрываете, после чего остается неизменным. Игра определяет, где находится ваш курьер на момент проигрыша, а затем рассчитывает задержку до удара. Отсюда важный вывод:
Единственное, что имеет значение — это ваше местоположение на момент смерти последней фигуры на столе!

Поэтому если хотите хоть немного отсрочить свою смерть — в конце раунда отходите подальше от ваших последних фигур.

Оцените статью
Dota underlords & Dota auto chess & Dota 2
Добавить комментарии

Разбираем исходный код игры: почему -tp не работает.
Альянс Воинов
Альянс Воинов — комбинации, предметы и особенности игры