Preserve killfeed

SAMOWARE-PROJECT
Забаненный
Статус
Оффлайн
Регистрация
5 Янв 2020
Сообщения
183
Реакции[?]
21
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Крч спастил пресерв киллфид из пандоры в веаве,всё бы ничего,но когда вкл чекбокс , то киллфид пропадает вовсе,если я его оффну,то всё вернётся на круги своя,но будет пропадать)
Перепробовал уже множество киллфидов,и все говно,буду очень признателен вам за код

C++:
void KillFeed() {
                        static bool clear_notices = false;
                        static bool old_setting = vars.misc.killfeed;
                        if (!interfaces.engine->IsInGame() || !csgo->local)
                            return;

                        if (!csgo->local) {

                            // invalidate the clear death notice address if local goes invalid.
                            if (F::ZClearDeathNotices) {
                                F::ZClearDeathNotices = nullptr;
                            }

                            // invalidate the death notice address if local goes invalid.
                            if (F::deathNotice) {
                                F::deathNotice = nullptr;
                            }

                            // that's it, exit out.
                            return;
                        }

                        // only do the following if local is alive.
                        if (csgo->local->isAlive()) {
                            // get the death notice addr.
                            if (!F::deathNotice) {
                                F::deathNotice = FindHudElement<DWORD>("CCSGO_HudDeathNotice");
                            }

                            // get the clear death notice addr.
                            if (!F::ZClearDeathNotices) {
                                F::ZClearDeathNotices = (void(__thiscall*)(DWORD))csgo->Utils.FindPatternIDA(GetModuleHandleA(hs::client_dll::s().c_str()),
                                    hs::death_notice::s().c_str());
                            }

                            // only do the following if both addresses were found and are valid.
                            if (F::ZClearDeathNotices && F::deathNotice) {
                                // grab the local death notice time.
                                float* local_death_notice_time = (float*)((DWORD)F::deathNotice + 0x50);
                                static float backup_local_death_notice_time = *local_death_notice_time;

                                // extend killfeed time.
                                if (csgo->round == true) {
                                    if (local_death_notice_time && vars.misc.killfeed) {
                                        *local_death_notice_time = vars.misc.preserve ? FLT_MAX : 1.5f;
                                    }
                                }

                                // if we disable the option, clear the death notices.
                                if (old_setting != vars.misc.killfeed) {
                                    if (!vars.misc.killfeed) {
                                        if (local_death_notice_time) {
                                            // reset back to the regular death notice time.
                                            *local_death_notice_time = backup_local_death_notice_time;
                                        }

                                        clear_notices = true;
                                    }
                                    old_setting = vars.misc.killfeed;
                                }

                                // if we have the option enabled and we need to clear the death notices.
                                if (vars.misc.killfeed) {
                                    if (csgo->round == false && F::deathNotice - 0x14) {
                                        clear_notices = true;
                                    }
                                }

                                // clear the death notices.
                                if (clear_notices) {
                                    F::ZClearDeathNotices(((uintptr_t)F::deathNotice - 0x14));
                                    clear_notices = false;
                                }
                            }
                        }
                        else {
                            // invalidate clear death notice address.
                            if (F::ZClearDeathNotices) {
                                F::ZClearDeathNotices = nullptr;
                            }

                            // invalidate death notice address.
                            if (F::deathNotice) {
                                F::deathNotice = nullptr;
                            }
                        }
                    }
namespace
C++:
namespace F
{
     DWORD* deathNotice;
     void(__thiscall* ZClearDeathNotices)(DWORD);


}
Паттерны
C++:
    _(p_this, "B9 ? ? ? ? E8 ? ? ? ? 8B 5D 08"); // effects
    _(hud, "55 8B EC 53 8B 5D 08 56 57 8B F9 33 F6 39"); // hud
    _(death_notice, "55 8B EC 83 EC 0C 53 56 8B 71 58");
 
Сверху Снизу