Я не представляю как вы собрались это делать.
А особенно, возвращать его же "roller" обратно после новых алиасов.
Забудьте про эту идею, тут без биндов не обойтись я думаю, другую реализацию не вижу.
Единственный вариант - проверять его на основе статистики bhop'а, так как бинд прыжка на колесо в 90% случаях будет выдавать правильный бхоп, где скорость velocity всегда будет выше, чем когда игрок сам прыгает (но могут быть редкие исключения). В общем, сама идея бесполезна и смысла нет в ней, только гемора больше, чем выгоды.
Примерно так:
Каждый прыжок игрока проверяем его velocity, если velocity > N, то считаем это успешным прыжком, если < N, то прыжок не удался. Отсюда следует, что у нас будет 2 массива (или двумерный массив), типа такого
- Код: Выделить всё
new aJumpStats[MAXPLAYERS + 1][2]
Делается вот как, задается определенный промежуток времени, который будет считывать количество успешных прыжков и неуспешных, записывая их в массив, а по истечению заданного промежутка времени производим математику над числами и получаем примерный процент того, что игрок на алиасах.
Опять же, этот метод не даст 100% вероятности, но пару читеров отловить должен, другими словами, эта идея лишь анализатор клиентских действий, можно еще добавить как вариант 5 заходов по N времени, тогда результат определения (читер или нет) будет более точный, но выбор всегда будет за Админом (банить или нет)