Defuse Timer

Пользователь
Статус
Оффлайн
Регистрация
6 Авг 2017
Сообщения
81
Реакции[?]
44
Поинты[?]
0
В общем, решил я тут добавить таймер дефуза в свою сборку индиго, чтобы не смотря на противника было понятно, дефузит ли он и сколько ему еще дефузить. Таймер то я запилил, он перехватывает события bomb_begindefuse и bomb_abortdefuse и, в общем, отлично работает, одна только вот проблема: не могу сделать проверку на наличие китов. Подскажите, как и откуда вытаскивать это значение? И нужно ведь, наверное, еще как-то проверку делать на то, кто дефузит, чтобы делать проверку на наличие китов именно у него.
 
Забаненный
Статус
Оффлайн
Регистрация
26 Июл 2017
Сообщения
30
Реакции[?]
3
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
GetBool->("has_defuser")
 
Пользователь
Статус
Оффлайн
Регистрация
6 Авг 2017
Сообщения
81
Реакции[?]
44
Поинты[?]
0
Пользователь
Статус
Оффлайн
Регистрация
4 Окт 2016
Сообщения
115
Реакции[?]
32
Поинты[?]
0
if (Settings::ESP::defusing && player->IsDefusing())
stringsToShow.push_back("Defusing");
//offsets.DT_CSPlayer.m_bIsDefusing = NetVarManager::GetOffset("DT_CSPlayer", "m_bIsDefusing");
//bool IsDefusing()
//{
//return *(bool*)((uintptr_t)this + offsets.DT_CSPlayer.m_bIsDefusing);
//}
 
Пользователь
Статус
Оффлайн
Регистрация
6 Авг 2017
Сообщения
81
Реакции[?]
44
Поинты[?]
0
if (Settings::ESP::defusing && player->IsDefusing())
stringsToShow.push_back("Defusing");
//offsets.DT_CSPlayer.m_bIsDefusing = NetVarManager::GetOffset("DT_CSPlayer", "m_bIsDefusing");
//bool IsDefusing()
//{
//return *(bool*)((uintptr_t)this + offsets.DT_CSPlayer.m_bIsDefusing);
//}
Спасибо большое за помощь! А игрока брать из EntityList? А то я попробовал, но крашнуло.
 
Пользователь
Статус
Оффлайн
Регистрация
6 Авг 2017
Сообщения
81
Реакции[?]
44
Поинты[?]
0
if (Settings::ESP::defusing && player->IsDefusing())
stringsToShow.push_back("Defusing");
//offsets.DT_CSPlayer.m_bIsDefusing = NetVarManager::GetOffset("DT_CSPlayer", "m_bIsDefusing");
//bool IsDefusing()
//{
//return *(bool*)((uintptr_t)this + offsets.DT_CSPlayer.m_bIsDefusing);
//}
Пытаюсь сделать проверку таким образом, но по ходу как раз тут у меня и ошибка, из-за которой крашит при включении бомб есп
Код:
    for (int EntIndex = 0; EntIndex < Interfaces::EntityList()->GetHighestEntityIndex(); EntIndex++)
    {
        CBaseEntity* pEntity = (CBaseEntity*)Interfaces::EntityList()->GetClientEntity(EntIndex);

        if (Settings::Esp::esp_Bomb && pEntity->IsDefusing())
        {
            g_pRender->Text(5, 5, true, true, Color::Yellow(),
                "Is Defusing!");
        }
    }
Я просто не знаю, где находятся игроки: в EntityList? Если так, то почему тогда крашит?
 
alive forever
Забаненный
Статус
Оффлайн
Регистрация
21 Июн 2017
Сообщения
663
Реакции[?]
400
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Для таких проверок обычно нормальные люди использую нетвар HasDefuser.
DT_CSPlayerResource->m_bHasDefuser
либо же

Код:
class DT_PlantedC4 : DT_BaseAnimating
{
3408 0xD50 Int m_bBombTicking
3420 0xD5C Float m_flC4Blow
3424 0xD60 Float m_flTimerLength
3440 0xD70 Float m_flDefuseLength
3444 0xD74 Float m_flDefuseCountDown
3448 0xD78 Int m_bBombDefused
}
 
Пользователь
Статус
Оффлайн
Регистрация
6 Авг 2017
Сообщения
81
Реакции[?]
44
Поинты[?]
0
Для таких проверок обычно нормальные люди использую нетвар HasDefuser.
DT_CSPlayerResource->m_bHasDefuser
либо же

Код:
class DT_PlantedC4 : DT_BaseAnimating
{
3408 0xD50 Int m_bBombTicking
3420 0xD5C Float m_flC4Blow
3424 0xD60 Float m_flTimerLength
3440 0xD70 Float m_flDefuseLength
3444 0xD74 Float m_flDefuseCountDown
3448 0xD78 Int m_bBombDefused
}
C HasDefuser точно так же крашит, тестил уже) Просто я не нормальный человек, а новичок :D
 
alive forever
Забаненный
Статус
Оффлайн
Регистрация
21 Июн 2017
Сообщения
663
Реакции[?]
400
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C HasDefuser точно так же крашит, тестил уже) Просто я не нормальный человек, а новичок :D
крашит? Вот если я сейчас сделаю и не закрашит,ты будешь жопу жевать.
 
Пользователь
Статус
Оффлайн
Регистрация
6 Авг 2017
Сообщения
81
Реакции[?]
44
Поинты[?]
0
крашит? Вот если я сейчас сделаю и не закрашит,ты будешь жопу жевать.
Ну, во-первых, так со мной разговаривать не нужно, причину краша я уже нашел, и она была в том коде, что я писал выше.
Теперь вопрос в другом. Если я делаю проверку таким кодом (т. е. для всех игроков)
Код:
    for (int EntIndex = 0; EntIndex < Interfaces::EntityList()->GetHighestEntityIndex(); EntIndex++)
    {
        CBaseEntity* pPlayer = (CBaseEntity*)Interfaces::EntityList()->GetClientEntity( EntIndex );

        if (!pPlayer)
            return;

        if (Settings::Esp::esp_Bomb && pPlayer->IsDefusing())
        {
            g_pRender->Text(5, 5, true, true, Color::Yellow(),
                "Is Defusing!");
            if (!pPlayer)
                return;
        }
    }
То он вечно показывает "Is defusing", а не когда кто-то реально дефузит.
Но если я делаю проверку только для себя
Код:
    for (int EntIndex = 0; EntIndex < Interfaces::EntityList()->GetHighestEntityIndex(); EntIndex++)
    {
        CBaseEntity* pEntity = (CBaseEntity*)Interfaces::EntityList()->GetClientEntity( Interfaces::Engine()->GetLocalPlayer() );
        if (!pPlayer)
            return;
        if (Settings::Esp::esp_Bomb && pEntity->IsDefusing())
        {
            g_pRender->Text(5, 5, true, true, Color::Yellow(),
                "Is Defusing!");
        if (!pPlayer)
            return;
        }
    }
то все равботает ок, показывает только тогда, когда я дефужу (только фпс почему-то во время дефуза ооочень ж0стко проседает сразу).
 
Пользователь
Статус
Оффлайн
Регистрация
6 Авг 2017
Сообщения
81
Реакции[?]
44
Поинты[?]
0
В общем, поправил я свой кривой код, проблема решена, даже несколько способов получается есть таймер сделать.
 
Последнее редактирование:
Сверху Снизу