Вопрос Помогите пофиксить краш

Начинающий
Статус
Оффлайн
Регистрация
22 Дек 2018
Сообщения
19
Реакции[?]
6
Поинты[?]
0
1606222409349.png
вкл визуалы == краш
(ебаный xy0)

дебаг сказал туда нам надо ///////////

code:

void c_visuals::DrawPlayers() {

force_crosshair();
int spectator_count = 0;
for (int Index = 1; Index < g_pGlobalVars->maxClients; Index++)
{
auto Entity = g_pEntityList->GetClientEntity(Index);/////////
auto LocalPlayer = Globals::LocalPlayer;

if (Entity && !Entity->IsDormant())
worldWeapon(Entity);

if (!Entity || !LocalPlayer || !Entity->IsAlive())
continue;



ClientClass* cClass = (ClientClass*)Entity->GetClientClass();
if (cClass->ClassID != (int)EClassIds::CBaseWeaponWorldModel && ((strstr(cClass->pNetworkName, "Weapon") || cClass->ClassID == (int)EClassIds::CDEagle || cClass->ClassID == (int)EClassIds::CAK47))) {
DrawWeapon(Entity);
}

bool IsTeammate = Entity->GetTeam() == LocalPlayer->GetTeam();
bool IsEnemy = Entity->GetTeam() != LocalPlayer->GetTeam();
bool IsLocal = Entity == LocalPlayer;

if (!Entity->IsDormant()) {
StoredCurtimePlayer[Entity->EntIndex()] = g_pGlobalVars->curtime;
}

if (Entity->IsDormant() && flPlayerAlpha[Entity->EntIndex()] > 0 && g_pGlobalVars->curtime - StoredCurtimePlayer[Entity->EntIndex()] > 2)
{
flPlayerAlpha[Entity->EntIndex()] -= 5;
}
else if (flPlayerAlpha[Entity->EntIndex()] < 255 && !(Entity->IsDormant()))
{
flPlayerAlpha[Entity->EntIndex()] += 5;
}

//spectators();
if (IsEnemy) {

if (c_config::get().name_enemies) NameESP(Entity);
if (c_config::get().box_enemies) BoxESP(Entity);
if (c_config::get().weapon_enemies) WeaponESP(Entity);
if (c_config::get().ammo_enemy) Ammo(Entity);
if (c_config::get().health_enemies > 0) HealthESP(Entity);
if (c_config::get().fov_arrows_enemy) arrows(Entity);
flags(Entity);
}
}
}
 
Пользователь
Статус
Оффлайн
Регистрация
19 Янв 2019
Сообщения
348
Реакции[?]
99
Поинты[?]
6K
Посмотреть вложение 114579
вкл визуалы == краш
(ебаный xy0)

дебаг сказал туда нам надо ///////////

code:

void c_visuals::DrawPlayers() {

force_crosshair();
int spectator_count = 0;
for (int Index = 1; Index < g_pGlobalVars->maxClients; Index++)
{
auto Entity = g_pEntityList->GetClientEntity(Index);/////////
auto LocalPlayer = Globals::LocalPlayer;

if (Entity && !Entity->IsDormant())
worldWeapon(Entity);

if (!Entity || !LocalPlayer || !Entity->IsAlive())
continue;



ClientClass* cClass = (ClientClass*)Entity->GetClientClass();
if (cClass->ClassID != (int)EClassIds::CBaseWeaponWorldModel && ((strstr(cClass->pNetworkName, "Weapon") || cClass->ClassID == (int)EClassIds::CDEagle || cClass->ClassID == (int)EClassIds::CAK47))) {
DrawWeapon(Entity);
}

bool IsTeammate = Entity->GetTeam() == LocalPlayer->GetTeam();
bool IsEnemy = Entity->GetTeam() != LocalPlayer->GetTeam();
bool IsLocal = Entity == LocalPlayer;

if (!Entity->IsDormant()) {
StoredCurtimePlayer[Entity->EntIndex()] = g_pGlobalVars->curtime;
}

if (Entity->IsDormant() && flPlayerAlpha[Entity->EntIndex()] > 0 && g_pGlobalVars->curtime - StoredCurtimePlayer[Entity->EntIndex()] > 2)
{
flPlayerAlpha[Entity->EntIndex()] -= 5;
}
else if (flPlayerAlpha[Entity->EntIndex()] < 255 && !(Entity->IsDormant()))
{
flPlayerAlpha[Entity->EntIndex()] += 5;
}

//spectators();
if (IsEnemy) {

if (c_config::get().name_enemies) NameESP(Entity);
if (c_config::get().box_enemies) BoxESP(Entity);
if (c_config::get().weapon_enemies) WeaponESP(Entity);
if (c_config::get().ammo_enemy) Ammo(Entity);
if (c_config::get().health_enemies > 0) HealthESP(Entity);
if (c_config::get().fov_arrows_enemy) arrows(Entity);
flags(Entity);
}
}
}
Что за исходник?
 
Пользователь
Статус
Оффлайн
Регистрация
19 Янв 2019
Сообщения
348
Реакции[?]
99
Поинты[?]
6K
То что он показал строку нужную это понятно, но ещё открывается панелька такая маленькая где объясняется причина, и что в этой строке не так, ты этого не показал, и поэтому ответа я не дам
А вообще попробуй сделать так

C++:
for (int num = 1; num <= csgo::Get().Engine->GetMaxClients(); ++num)
    {
        Base_Entity* get_ent = csgo::Get().Entity.List->GetClientEntity(num);

        if (!get_ent || !get_ent->IsAlive()|| get_ent == csgo::Get().Local)
            continue;

        if (get_ent->IsDormant())
            continue;

        if (get_ent->GetTeam() == csgo::Get().Local->GetTeam() && !csgo::Get().Config.Visuals.ShowTeam)
            continue;
    }
Если конечно проблема была в get_ent = null, то это поможет, но если в чём то другом, то будь добр показать
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
19 Янв 2019
Сообщения
348
Реакции[?]
99
Поинты[?]
6K
Самое странное что я тут заметил, это вот:

C++:
if (Entity && !Entity->IsDormant())
worldWeapon(Entity);

if (!Entity || !LocalPlayer || !Entity->IsAlive())
continue;
Ты не сможешь прогрузить оружия, пока

C++:
if (!Entity || !LocalPlayer || !Entity->IsAlive())
continue;
Ибо тебе выдаст null или как там дебаг показывать любит 0x000...
 
Начинающий
Статус
Оффлайн
Регистрация
22 Дек 2018
Сообщения
19
Реакции[?]
6
Поинты[?]
0
пацаны я пофиксил
надо было гвары апдейтнуть сори
 
Пользователь
Статус
Оффлайн
Регистрация
19 Янв 2019
Сообщения
348
Реакции[?]
99
Поинты[?]
6K
И вообще что делает
C++:
 g_pGlobalVars->maxClients
Если тебе нужно вообще
C++:
csgo::Get().Engine->GetMaxClients()
В твоём хуо, это примерно
C++:
g_pEngine->GetMaxClients()
///// или
g_Engine->GetMaxClients()
///// извиняюсь но я хуо не очень помню
И в результате
C++:
 for (int Index = 1; Index < g_pEngine->GetMaxClients(); Index++)
 
Сверху Снизу