Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Гайд Team Fortress 2 — Получение имени игрока через EntityList в External чите

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
106
Реакции
3
1774180486917.png


Очередной новичок пытается вытащить неймплейты в TF2 через прямое чтение памяти, минуя виртуальные функции. Вижу, человек решил копать внешку, но сильно заблуждается насчет структуры Entity List.

Коротко по фактам для тех, кто решил поиграть в реверс-инженеров:

  1. Entity List Limits: В Source Engine имена игроков не лежат прямо в структуре сущности как примитивные типы вроде здоровья или ID команды. Entity List хранит указатели, а имя (PlayerInfo) вынесено в отдельную структуру через GetPlayerInfo.
  2. External Constraints: Ты не сможешь просто прочитать entity + offset и получить строку, потому что данные по игрокам в TF2 требуют прохода через IVEngineClient::GetPlayerInfo. Это VTable функция.
  3. Memory Layout:Для внешнего чита тебе придется либо:
    1. Имитировать вызов виртуальной функции через создание собственного vtable hook в процессе игры (требует инжекта или специфичного манипулирования памятью).
    2. Либо найти GlobalVars и пройтись по PlayerInfoManager, что для внешнего софта — адский геморрой с оффсетами, которые летят после каждого апдейта Valve.

Если планируешь писать свой лоадер или базу под пасту, забудь про простое чтение по адресу. TF2 — игра старая, но античит Valve хоть и спит, за кривые обращения к памяти прилетит моментально. Не пытайся спастить это как mem.Read<string>, не сработает — получишь мусор в памяти вместо ника, а то и краш игры.

Совет: посмотри SDK под Source Engine, разберись, как работает CPlayerInfoManager. Если хочешь нормальный Name ESP без вызовов функций, ищи способ получить доступ к SignonState и парсить PlayerInfo через кэш, но для новичка это уровень выше среднего.
 
Последнее редактирование модератором:
Назад
Сверху Снизу