Исходник Anti defensive / anti lag peek

Статус
В этой теме нельзя размещать новые ответы.
Участник
Статус
Оффлайн
Регистрация
2 Фев 2020
Сообщения
818
Реакции[?]
378
Поинты[?]
0
есть 2 метода анти дефенсива:
1) работает везде -
C++:
static auto is_command_set = false;
if (is_command_set != config::anti_defensive) {
    auto old_team = local_player->team();

    std::string command = "kill; jointeam 1; cl_lagcompensation ";
    command += std::to_string(config::anti_defensive ? 0 : 1) + ";";
    command += "jointeam " + std::to_string(old_team) + "; ";

    sdk::engine->execute_command(command.data());
    is_command_set = config::anti_defensive;
}
2) работает только на серверах что вы хостите -
зайдя в сурсы кски и поискав мы можем увидеть это кусок кода (в CServerGameClients::ClientSettingsChanged)1633175435808.png
однако он не будет применятся только когда вы живы, если вы отбитый -
хукаете g_pGameRules->IsConnectedUserInfoChangeAllowed и g_ClientDLL->IsConnectedUserInfoChangeAllowed и вы сможете использовать команду всегда, а если вы адекватный человек -
C++:
*reinterpret_cast<bool*>(uintptr_t(player) + 0xCC0) = false; // player->m_bLagCompensation = false
лично я вызываю второй код в хуке фун-ки start_lagcomp, перед вызовом original'a(server.dll -> 55 8B EC 83 E4 F8 83 EC 48 56 8B F1 C7 44 24 ? ? ? ? ?)
но вы можете в фсне перед анимфиксом выполнять этот код на всех игроков
----
что бы это работало вам нужно будет допилить ваш анимфикс (в обоих случаях)
ps: хочу принести извинения, изначально был залит вронг код, сейчас уже все исправлено
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
28 Сен 2021
Сообщения
3
Реакции[?]
9
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
clown post, нихуя себе, а каким таким хуем ты доступ к памяти сервера получил?:roflanEbalo:
 
Забаненный
Статус
Оффлайн
Регистрация
29 Сен 2021
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Спасибо за смену серверной переменной!
p.s: вот соуфив лох не додумался ратнуть сервер, и поменять одну переменную
 
Последнее редактирование:
самарский помойный аукцион
Эксперт
Статус
Оффлайн
Регистрация
30 Июн 2019
Сообщения
1,248
Реакции[?]
578
Поинты[?]
44K
Эксперт
Статус
Оффлайн
Регистрация
17 Фев 2017
Сообщения
864
Реакции[?]
420
Поинты[?]
1K
Все уже знают что можно форсить cl_lagcompensation 0 и вы будете "фиксить дефенсив", но это мем
зайдя в сурсы кски и поискав мы можем увидеть это кусок кода (в CServerGameClients::ClientSettingsChanged)Посмотреть вложение 174196
однако он не будет применятся когда вы живы, если вы отбитый -
хукаете g_pGameRules->IsConnectedUserInfoChangeAllowed и g_ClientDLL->IsConnectedUserInfoChangeAllowed и вы сможете использовать команду всегда, а если вы адекватный человек -
C++:
*reinterpret_cast<bool*>(uintptr_t(player) + 0xCC0) = false; // player->m_bLagCompensation = false
лично я вызываю этот код в хуке фун-ки start_lagcomp, перед вызовом original'a(server.dll -> 55 8B EC 83 E4 F8 83 EC 48 56 8B F1 C7 44 24 ? ? ? ? ?)
но вы можете в фсне перед анимфиксом выполнять этот код на всех игроков
что бы это работало вам нужно будет допилить ваш анимфикс, но это уже не мои траблы
ps: помогать я не буду, я и так дал много инфы
ps2: оно лучше консольной команды тк не нужно заходить в спекты
Скрытое содержимоеСкрытое содержимое
$$$ sponsored by berlinhook & zigachanger $$$
Спс, все просто и понятно. А кстати, а есть способ детектить дефенсив что б подрубить этот фикс только для конкретного случая, а не на любой рекорд?
 
Участник
Статус
Оффлайн
Регистрация
2 Фев 2020
Сообщения
818
Реакции[?]
378
Поинты[?]
0
а есть способ детектить дефенсив что б подрубить этот фикс только для конкретного случая
он детектится как и брик лц (олд симтайм > симтайма), но только на пике
 
Забаненный
Статус
Оффлайн
Регистрация
28 Сен 2021
Сообщения
3
Реакции[?]
9
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
server.dll находится на клиенте, о чем речь?
Находится да, и используется только на локальном сервере, который ты напрямую через кску хостишь. В случае коннекта к другому серверу модуль неактивен и не используется. Ты на учете в психоневрологическом диспансере стоишь или просто очень жирно рофлишь?
 
Участник
Статус
Оффлайн
Регистрация
2 Фев 2020
Сообщения
818
Реакции[?]
378
Поинты[?]
0
снесу тему и уроки пиздуй делать, школьник психически неуравновешенный:joycat::joycat:
я выше сказал что тесты проводились на локальных серверах и там все работало, я не знал что функция StartLagCompensation не вызывается на обычных серверах, обсер я исправил, код рабочий приложил, так что считаю что я все исправил
 
Забаненный
Статус
Оффлайн
Регистрация
17 Апр 2021
Сообщения
22
Реакции[?]
11
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
я выше сказал что тесты проводились на локальных серверах и там все работало, я не знал что функция StartLagCompensation не вызывается не на локальных серверах, обсер я исправил, код рабочий приложил, так что считаю что я все исправил
раз она не вызывается на обычных серверах, зачем мы сетаем cl_lagcompensation на 0 ??
 
Эксперт
Статус
Оффлайн
Регистрация
17 Фев 2017
Сообщения
864
Реакции[?]
420
Поинты[?]
1K
он детектится как и брик лц (олд симтайм > симтайма), но только на пике
Ну такой варик не канает, щас везде анимфиксы урезают рекорды где симтайм меньше предыдущего. Даже если эту штуку вернуть, надо будет думать, как получать апдейты от сервера и сохранять их в буфер. Видимо что-то ещё хукать, что связанно с обновлением данных, но точно не через сим тайм это делать.
Плюс насколько вообще целесообразно ставить фолс для
player->m_bLagCompensation, не совсем уверен, что данные не были бы изменены ещё до того, как это попадет в систему анимаций где уже будет своя логика.
 
Участник
Статус
Оффлайн
Регистрация
2 Фев 2020
Сообщения
818
Реакции[?]
378
Поинты[?]
0
Плюс насколько вообще целесообразно ставить фолс для
player->m_bLagCompensation, не совсем уверен, что данные не были бы изменены ещё до того, как это попадет в систему анимаций где уже будет своя логика.
Я уже писал что оригинальный метод ( теперь он 2ой в теме) не работает на обычных серверах. Лагкомпенсация происходит только в момент выстрела, трабл в том что она считает рекорды с олдсимтайм больше симтайма инвалид и даже если выстрелить в него, то сервер применит ласт валид рекорд и при расчете попадания игра будет думать что выстрел просто был в пустоту, а не в игрока на экране.
 
Эксперт
Статус
Оффлайн
Регистрация
17 Фев 2017
Сообщения
864
Реакции[?]
420
Поинты[?]
1K
Я уже писал что оригинальный метод ( теперь он 2ой в теме) не работает на обычных серверах. Лагкомпенсация происходит только в момент выстрела, трабл в том что она считает рекорды с олдсимтайм больше симтайма инвалид и даже если выстрелить в него, то сервер применит ласт валид рекорд и при расчете попадания игра будет думать что выстрел просто был в пустоту, а не в игрока на экране.
Там ещё в чем фишка, что оно пытается Лерпать рекорды когда Олд > текущего. Видимо это и объясняет такие подёргивания. Я не знаю, как в современном движке сурс под КС, но скорее всего, там при Брик лц просто телепортирует без применения интерполяции, а при ДТ лерп может быть нужно пересобрать в обратную сторону что б он двигался вперёд, а не назад. Но эту инфу надо проверить будет

Код:
if ( prevRecord &&
         (record->m_flSimulationTime < flTargetTime) &&
         (record->m_flSimulationTime < prevRecord->m_flSimulationTime) )
    {
        // we didn't find the exact time but have a valid previous record
        // so interpolate between these two records;

        Assert( prevRecord->m_flSimulationTime > record->m_flSimulationTime );
        Assert( flTargetTime < prevRecord->m_flSimulationTime );

        // calc fraction between both records
        frac = ( flTargetTime - record->m_flSimulationTime ) /
            ( prevRecord->m_flSimulationTime - record->m_flSimulationTime );

        Assert( frac > 0 && frac < 1 ); // should never extrapolate

        ang                = Lerp( frac, record->m_vecAngles, prevRecord->m_vecAngles );
        org                = Lerp( frac, record->m_vecOrigin, prevRecord->m_vecOrigin );
        minsPreScaled    = Lerp( frac, record->m_vecMinsPreScaled, prevRecord->m_vecMinsPreScaled );
        maxsPreScaled    = Lerp( frac, record->m_vecMaxsPreScaled, prevRecord->m_vecMaxsPreScaled );
    }
    else
    {
        // we found the exact record or no other record to interpolate with
        // just copy these values since they are the best we have
        org                = record->m_vecOrigin;
        ang                = record->m_vecAngles;
        minsPreScaled    = record->m_vecMinsPreScaled;
        maxsPreScaled    = record->m_vecMaxsPreScaled;
    }
 
Забаненный
Статус
Оффлайн
Регистрация
13 Окт 2021
Сообщения
4
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
есть 2 метода анти дефенсива:
1) работает везде -
C++:
static auto is_command_set = false;
if (is_command_set != config::anti_defensive) {
    auto old_team = local_player->team();

    std::string command = "kill; jointeam 1; cl_lagcompensation ";
    command += std::to_string(config::anti_defensive ? 0 : 1) + ";";
    command += "jointeam " + std::to_string(old_team) + "; ";

    sdk::engine->execute_command(command.data());
    is_command_set = config::anti_defensive;
}
2) работает только на серверах что вы хостите -
зайдя в сурсы кски и поискав мы можем увидеть это кусок кода (в CServerGameClients::ClientSettingsChanged)Посмотреть вложение 174196
однако он не будет применятся только когда вы живы, если вы отбитый -
хукаете g_pGameRules->IsConnectedUserInfoChangeAllowed и g_ClientDLL->IsConnectedUserInfoChangeAllowed и вы сможете использовать команду всегда, а если вы адекватный человек -
C++:
*reinterpret_cast<bool*>(uintptr_t(player) + 0xCC0) = false; // player->m_bLagCompensation = false
лично я вызываю второй код в хуке фун-ки start_lagcomp, перед вызовом original'a(server.dll -> 55 8B EC 83 E4 F8 83 EC 48 56 8B F1 C7 44 24 ? ? ? ? ?)
но вы можете в фсне перед анимфиксом выполнять этот код на всех игроков
----
что бы это работало вам нужно будет допилить ваш анимфикс (в обоих случаях)
ps: хочу принести извинения, изначально был залит вронг код, сейчас уже все исправлено
oh u heck server memory......
 
Участник
Статус
Оффлайн
Регистрация
19 Апр 2020
Сообщения
1,172
Реакции[?]
314
Поинты[?]
152K
Для лв
C++:
static auto is_command_set = false;
if (is_command_set != g_cfg.misc.anti_defensive) {
    auto old_team = g_ctx.local()->m_iTeamNum();

    std::string command = "kill; jointeam 1; cl_lagcompensation ";
    command += std::to_string(g_cfg.misc.anti_defensive ? 0 : 1) + ";";
    command += "jointeam " + std::to_string(old_team) + "; ";

    m_engine()->ExecuteClientCmd(command.data());
    is_command_set = g_cfg.misc.anti_defensive;
}
 
Начинающий
Статус
Оффлайн
Регистрация
23 Май 2021
Сообщения
34
Реакции[?]
2
Поинты[?]
0
Для лв
C++:
static auto is_command_set = false;
if (is_command_set != g_cfg.misc.anti_defensive) {
    auto old_team = g_ctx.local()->m_iTeamNum();

    std::string command = "kill; jointeam 1; cl_lagcompensation ";
    command += std::to_string(g_cfg.misc.anti_defensive ? 0 : 1) + ";";
    command += "jointeam " + std::to_string(old_team) + "; ";

    m_engine()->ExecuteClientCmd(command.data());
    is_command_set = g_cfg.misc.anti_defensive;
}
в какой файл закинуть?
 
Эксперт
Статус
Оффлайн
Регистрация
14 Июл 2019
Сообщения
1,102
Реакции[?]
496
Поинты[?]
31K
Русские хакеры взломали валв и теперь могут делать с памятью сервера чо хотят?????
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу