На днях, поглядев ролики
perforator с
журеньем топов FastCup'a и уличением в читах увидел у его замедленный просмотр демо-записи, и перемотку той самой записи в различном порядке с различной скоростью. Мне стало интересно, как он это реализовал. И.... оказалось весьма костыльно, по отношению к скриптовым возможностям клиента игры. Была задействована сторонняя программа, а так же самописно-хардкоженные алиасы. Ситуация мне эта не пришлась по нраву, в следствии чего я решил попробовать сделать примерно то же, но с лучшей реализацией и подобием гибкости в настройке. В коей-то мере мне это удалось сделать.
Немного о том, как я познал клиент игры и его возможности по "программированию" внутри игры.
В 2009 году я вдоволь познал тёмную сторону CS 1.6 с читами и ударился в поиски различных хитростей для легального использования в CS. На то время, популярен был "35 патч" NonSteam CS, в котором очень не плохо работали скрипты и эти возможности с радостью использовали для построения целых пользовательских сборок, в которых с помощью кнопки H (+commandmenu) производились даже настройки: пинга, положения руки, громкости, стрельбы (
), смена карт, управление CW сервером и многого другого. Всё это осталось и можно качать тут:
Counter-Strike 1.6 > GUIs Command Menu .
В целом - обилие скриптов и их возможностей - меня порадовало. Мне стало интересно и полез я во всё это внутрь. Через несколько месяцев - познав базовые навыки работы с alias и "грязными хаками" на основе loop-команды _special - я уже делал свои "DLC" для игры, а именно:
AutoBhop, стрейф-паттерны на основе найденных и многое другое. Пробовал делать CW меню, где задействовал RCON управление для сервера. Было интересно познавать всё, с чем бы не столкнулся, что к конечному итоге приводило меня к всё большим знаниям и полученному опыту.
Столкнувшись с кладью и базой читов и прочего относящегося на ресурсе zhykru - я даже умудрился собрать свою чито-подделку, которая, к удивлению очень хорошо разошлась в широких кругах. (Ни о чём не жалею...
). К сожалению или счастью - не продолжил интенсивно заниматься в этом "направлении".
К сути...
Решил я сделать для сообщества, возможно, полезную сборку скриптов, которая поможет в управлении не лёгким demoplayer'ом, который не умеет многое конечно же.
Решил начать с реализации перемотки "Вперёд-Назад", так сказать с реверсом и выбором скорости. И вот, спустя несколько лет - я снова написал скрипт, основанный на возможностях клиента и работой с alias.
К моему сожалению, начиная с 43 патча -
_special
(loop-команду) в игре удачно приглушили для противодействия вредоносному коду, который даже мог досить сервера и наносить вред в какой-то мере. С чем сообщество читеров успешно справилось и просто разблокировали (подменяли) проверки в hw.dll редактором HEX.
А позже и вовсе вырезали из игры её, ибо как оказалось, нужна она была только для TFC.
Сей факт меня конечно огорчил, но не остановил. Благодаря помощи
juice,
@a1batross - я поправил код CS Fixes от
Garey ,
в котором сделал PR и вновь внёс _special, однако уже под именем _zpecial, дабы не трогать hw.dll и не нуллить там проверки. (
И радости моей не было предела )
Позже, опишу причины, по которым _special не работает на нынче на клиенте, возможно данный опыт поможет другим. Ибо с первых попыток гугла - мне ясно дали знать, что
простым редактированием hw.dll в 2018 году можно включить обратно _special, но.... к сожалению это не так и с билдами клиента 7***+ не прокатывает.
Возможно мой опыт будет полезен другим хоть чуточку.
(c) see you later
Таким макаром происходит блокировка команд в hw.dll (.so).
При написании на клиенте команды
special
вызывается функция, которая должна вызывать
_special
.
Однако, в последних версиях CS эту строку и вовсе с кода выкинули (#ifndef). И теперь, как ни старайся, она вызвана не будет. В следствии чего приходится регистрировать на клиенте эту команду и производить самому вызов.
Как это сейчас сделано в CS Fixes у меня.
Но,
в TFC команда все так же продолжает функционировать.
Так же благодарен
shaid за помощь в поисках аналогичных решений в ресурсах, где разблокирована команда special.