Вопрос Сломалась энтити система

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
9 Сен 2025
Сообщения
17
Реакции
0
После недавних апдейтов заметил стало крашить, валвосы что-то опять перелопатили, мои главные подозрения на энтити систему, если кто-то решил проблему подскажите пожалуйста
 
debug maybe????? my entitysystem is working fine without me touching anything lol
GetEntityByIndexFunction - 81 FA ? ? ? ? 77 ? 8B C2 C1 F8 ? 83 F8 ? 77 ? 48 98 48 8B 4C C1 ? 48 85 C9 74 ? 8B C2 25 ? ? ? ? 48 6B C0 ? 48 03 C8 74 ? 8B 41 ? 25 ? ? ? ? 3B C2 75 ? 48 8B 01

GetHighestEntityIndex - 0x1510

inline auto gEntitySystem = *reinterpret_cast<CGameEntitySystem**>(schema.resolve_rip(schema.FindPattern("client.dll", "48 8B 0D ?? ?? ?? ?? 48 89 7C 24 ?? 8B FA C1 EB"), 3, 7));

is that correct??
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
GetEntityByIndexFunction - 81 FA ? ? ? ? 77 ? 8B C2 C1 F8 ? 83 F8 ? 77 ? 48 98 48 8B 4C C1 ? 48 85 C9 74 ? 8B C2 25 ? ? ? ? 48 6B C0 ? 48 03 C8 74 ? 8B 41 ? 25 ? ? ? ? 3B C2 75 ? 48 8B 01

GetHighestEntityIndex - 0x1510

inline auto gEntitySystem = *reinterpret_cast<CGameEntitySystem**>(schema.resolve_rip(schema.FindPattern("client.dll", "48 8B 0D ?? ?? ?? ?? 48 89 7C 24 ?? 8B FA C1 EB"), 3, 7));

is that correct??
GetEntityByIndexFunction -> 4C 8D 49 ? 81 FA
GetHighestEntityIndex -> 0x20f0u
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
If call inline auto gEntitySystem = *reinterpret_cast<CGameEntitySystem**>(schema.FindPattern("client.dll", "4C 8B C9 81 FA"));
gEntitySystem->GetBaseEntity() = nullptr

void* GetEntityByIndexFunction(int Index)
{
SCHEMA schema;
using fnGetBaseEntity = void* (__thiscall*)(void*, int);
static auto GetBaseEntity = reinterpret_cast<fnGetBaseEntity>(schema.FindPattern("client.dll", "4C 8D 49 ? 81 FA"));
return GetBaseEntity(this, Index);
}

GetLocalPlayerIndex = 53

C_CSPlayerController* C_CSPlayerController::GetLocalPlayerController() {
const int nIndex = engine_interface->GetLocalPlayerIndex();
return (C_CSPlayerController*)gEntitySystem->GetEntity<C_CSPlayerController>(nIndex);
}

This is where the problem.
You have any ideas why that problem give me nullptr??

someone told me correct for now 48 8B 0D ? ? ? ? 0F 28 DE 4C 89 6C 24 ? 4C 8B C0 4C 89 6C 24 ? 49 8B D6

but...

An exception was thrown at 0x00007FFD9E387B29 (client.dll) in cs2.exe: 0xC0000005: Access violation reading from 0xFFFFFFFFFFFFFFFF.

C_CSPlayerController* C_CSPlayerController::GetLocalPlayerController() {
const int nIndex = engine_interface->GetLocalPlayerIndex();
return (C_CSPlayerController*)gEntitySystem->GetEntity<C_CSPlayerController>(nIndex);
}

engineinterface = Source2EngineToClient001

inline auto gEntitySystem = *reinterpret_cast<CGameEntitySystem**>(schema.FindPattern("client.dll", "48 8B 0D ? ? ? ? 0F 28 DE 4C 89 6C 24 ? 4C 8B C0 4C 89 6C 24 ? 49 8B D6"));
давай на русском ты знаешь в чем проблема просто я уже не обновлял чит более года вот сейчас занимаюсь фиксом просто не понимаю что не так у меня
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
If call inline auto gEntitySystem = *reinterpret_cast<CGameEntitySystem**>(schema.FindPattern("client.dll", "4C 8B C9 81 FA"));
gEntitySystem->GetBaseEntity() = nullptr

void* GetEntityByIndexFunction(int Index)
{
SCHEMA schema;
using fnGetBaseEntity = void* (__thiscall*)(void*, int);
static auto GetBaseEntity = reinterpret_cast<fnGetBaseEntity>(schema.FindPattern("client.dll", "4C 8D 49 ? 81 FA"));
return GetBaseEntity(this, Index);
}

GetLocalPlayerIndex = 53

C_CSPlayerController* C_CSPlayerController::GetLocalPlayerController() {
const int nIndex = engine_interface->GetLocalPlayerIndex();
return (C_CSPlayerController*)gEntitySystem->GetEntity<C_CSPlayerController>(nIndex);
}

This is where the problem.
You have any ideas why that problem give me nullptr??

someone told me correct for now 48 8B 0D ? ? ? ? 0F 28 DE 4C 89 6C 24 ? 4C 8B C0 4C 89 6C 24 ? 49 8B D6

but...

An exception was thrown at 0x00007FFD9E387B29 (client.dll) in cs2.exe: 0xC0000005: Access violation reading from 0xFFFFFFFFFFFFFFFF.

C_CSPlayerController* C_CSPlayerController::GetLocalPlayerController() {
const int nIndex = engine_interface->GetLocalPlayerIndex();
return (C_CSPlayerController*)gEntitySystem->GetEntity<C_CSPlayerController>(nIndex);
}

engineinterface = Source2EngineToClient001

inline auto gEntitySystem = *reinterpret_cast<CGameEntitySystem**>(schema.FindPattern("client.dll", "48 8B 0D ? ? ? ? 0F 28 DE 4C 89 6C 24 ? 4C 8B C0 4C 89 6C 24 ? 49 8B D6"));
давай на русском ты знаешь в чем проблема просто я уже не обновлял чит более года вот сейчас занимаюсь фиксом просто не понимаю что не так у меня
хз мне похуй
исходя из твоего крутого дебаг лога
ты что то пытаешься прочитать по нулевому/невалидному адресу "Access violation reading from 0xFFFFFFFFFFFFFFFF."
 
хз мне похуй
исходя из твоего крутого дебаг лога
ты что то пытаешься прочитать по нулевому/невалидному адресу "Access violation reading from 0xFFFFFFFFFFFFFFFF."
Я хочу тупо получить локального игрока по индексу из entitysystem я просто вывожу его. У тебя разве эта сигнатура работает?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я хочу тупо получить локального игрока по индексу из entitysystem я просто вывожу его. У тебя разве эта сигнатура работает?
я получал локал плеер павн/контроллер через GetSlitScreenViewPawn/Controller
 
debug maybe????? my entitysystem is working fine without me touching anything lol
При смене сторон, в дебагере пишет что я пытался что-то не то прочитать, когда заходил за другую команду и бот переходил за мою видимо его адрес становился не валидным
 
Я хочу тупо получить локального игрока по индексу из entitysystem я просто вывожу его. У тебя разве эта сигнатура работает?
У локального контроллера всегда 1 индекс и 0 слот
 
That's exactly how it is for me
int GetLocalPlayerIndex() {
SCHEMA scheme;
int nIndex = -1;
schema.CallVMT<void, 52>(this, std::ref(nIndex), 0);
return nIndex + 1;
}

but it's beautiful
C++:
Expand Collapse Copy
CCSPlayerController* SDK::GetLocalPlayerControler()
{
    using fn = CCSPlayerController*(__fastcall*)(int index);
    static fn GetLocalPlayerControler = reinterpret_cast<fn>(
        Utils::PatternScan(CLIENT_DLL, X("48 83 EC ? 83 F9 ? 75 ? 48 8B 0D ? ? ? ? 48 8D 54 24 ? 48 8B 01 FF 90 ? ? ? ? 8B 08 48 63 C1 48 8D 0D ? ? ? ? 48 8B 04 C1 48 83 C4 ? C3 CC CC CC CC CC CC CC CC CC CC CC CC CC 48 83 EC ? 83 F9")));
    return GetLocalPlayerControler == nullptr ? nullptr : reinterpret_cast<CCSPlayerController*>(GetLocalPlayerControler(0));
}


You can get pawn by accessing the m_hPawn member inside the controller class.
 
C++:
Expand Collapse Copy
CCSPlayerController* SDK::GetLocalPlayerControler()
{
    using fn = CCSPlayerController*(__fastcall*)(int index);
    static fn GetLocalPlayerControler = reinterpret_cast<fn>(
        Utils::PatternScan(CLIENT_DLL, X("48 83 EC ? 83 F9 ? 75 ? 48 8B 0D ? ? ? ? 48 8D 54 24 ? 48 8B 01 FF 90 ? ? ? ? 8B 08 48 63 C1 48 8D 0D ? ? ? ? 48 8B 04 C1 48 83 C4 ? C3 CC CC CC CC CC CC CC CC CC CC CC CC CC 48 83 EC ? 83 F9")));
    return GetLocalPlayerControler == nullptr ? nullptr : reinterpret_cast<CCSPlayerController*>(GetLocalPlayerControler(0));
}


You can get pawn by accessing the m_hPawn member inside the controller class.
i think that method will be crash after next update or no? And how me need now make for other entity?? (if gEntitySystem-GetEntity() + gEntitySystem->GetHighestEntityIndex())??
 
Последнее редактирование:
i think that method will be crash after next update or no? And how me need now make for other entity?? (if gEntitySystem-GetEntity() + gEntitySystem->GetHighestEntityIndex())??
Почему ты думаешь что он сломается после обновы?
Что бы получить всех энтити подряд можно много путей юзать, но через хай индекс нужен цикл int от 0 до хай индекса, и там получать энтити по индексам
 
Почему ты думаешь что он сломается после обновы?
Что бы получить всех энтити подряд можно много путей юзать, но через хай индекс нужен цикл int от 0 до хай индекса, и там получать энтити по индексам
Я использую для этого engine_interface->GetMaxClients()
но крашит именно в gEntitySystem->GetEntity

я попытался изменить с gEntitySystem->GetEntity через resource_service но это тоже не помогло решить проблему
как по мне где-то проблема в сигнатуре GetEntityByIndexFunction то есть (4C 8D 49 ? 81 FA), потому что gEntitySystem схож по структуре с прошлым вариантом. я не знаю это лишь догадка но крашит у меня в моменте получения энтити gEntitySystem->GetEntity
 
Я использую для этого engine_interface->GetMaxClients()
но крашит именно в gEntitySystem->GetEntity

я попытался изменить с gEntitySystem->GetEntity через resource_service но это тоже не помогло решить проблему
как по мне где-то проблема в сигнатуре GetEntityByIndexFunction то есть (4C 8D 49 ? 81 FA), потому что gEntitySystem схож по структуре с прошлым вариантом. я не знаю это лишь догадка но крашит у меня в моменте получения энтити gEntitySystem->GetEntity
Реализуй свою функцию получения энтити и все, я могу вечером дать ее и париться не надо с патернами
 
Реализуй свою функцию получения энтити и все, я могу вечером дать ее и париться не надо с патернами
да кинь пожалуйста я уже не могу понять нихуя и вопрос если можешь пойдем в дискорд если да кинь свой юз кину в друзья
 
i think that method will be crash after next update or no? And how me need now make for other entity?? (if gEntitySystem-GetEntity() + gEntitySystem->GetHighestEntityIndex())??
Why would it crash lmao its calling the game's function to get the localplayer controller

for other entities you can do

C++:
Expand Collapse Copy
C_BaseEntity* SDK::GetBaseEntityByIndex(int i)
{
    using GetBaseEntityByIndexFn = void* (__fastcall*)(int index);
    static GetBaseEntityByIndexFn GetBaseEntityByIndex = reinterpret_cast<GetBaseEntityByIndexFn>(
        Utils::PatternScan(CLIENT_DLL, X("8B D1 48 8B 0D ? ? ? ? E9 ? ? ? ? CC CC 48 8B 89")));
    return GetBaseEntityByIndex == nullptr ? nullptr : reinterpret_cast<C_BaseEntity*>(GetBaseEntityByIndex(i));
}
 
Назад
Сверху Снизу