Да функция работает, но как я и думал - она и задним ходом когда я еду - срабатывает, потому что и задним ходом можно поворачивать на такие же углы. Хотя функция полезная. Спасибо)
Вид для печати
Я не все знаю, поэтому и спрашиваю) Я думал есть еще какие-то возможности. Функция все равно полезная)
- - - Добавлено - - -
Кстати недавно столкнулся с проблемой - античит на телепорт дает ложные даже при телепорте через команду, потому что функция GetPlayerPos возвращает старое положение игрока, когда в переменных отвечаюх за хранение положения игрока - уже новые данные. Это происходит насколько я понял потому что компьютеры не у всех мощные и подвисает игрок во время телепорта - и соответственно координаты у него старые а таймер античита уже по нему пробежался. Я так понимаю придется либо делать задержку либо переменную которая будет отвечать за количество предупреждений (типо больше 3-х раз произошло - уже пишем сообщение о чите) или есть еще какой то способ?
Ну правильно, я так и делаю.
Есть у меня таймер который проверяет игрока каждые 250мс, в этом таймере я получаю новую позицию игрока через GetPlayerPos и через
GetPlayerDistanceFromPoint - получаю расстояние от позиции игрока которая лежит в переменных(значение которым я присваиваю перехватив фукнцию SetPlayerPos). Получается что я игрока телепортировал - в переменных лежат уже координаты места куда я его телепортировал, функция SetPlayerPos тоже игрока переместила - но проблема в том что игрок во время этого повис - и GetPlayerPos - возвращает координаты того места где находился игрок, пока сам игрок не отвиснет и не появится на месте куда его телепортировали.
Таким образом пока игрок висит - он будет ловится как читер.
Прочитай внимательно каждое слово: "Нужно проверять новую и предыдущую позиции."
Вот здесь я реализовал эту систему: https://github.com/Open-GTO/protecti...n/teleport.inc