Участник
-
Автор темы
- #121
1) хп - C_BaseEntity::m_iHealth
2) имя персонажа - можно из айдентити брать(CEntityInstance::m_pEntity, CEntityIdentity::m_name), можно C_DOTA_BaseNPC::m_iszUnitName
3) это не ентитилист, это список объектов типа C_NextBotCombatCharacter(или ниже по иерархии, например C_DOTA_BaseNPC и тд - они все являются валидными инстанциями C_NextBotCombatCharacter)
4) у локал плеера(или локал героя) есть DOTATeam_t C_BaseEntity::m_iTeamNum. если у кого-либо тима равна той что у локал игрока/героя = это союзник. нет = враг
5) у контроллера есть хендл героя C_DOTAPlayerController::m_hAssignedHero, а у героя C_BaseEntity::m_hOwnerEntity будет равен хендлу контроллера
6) локальный герой либо через CEngineClient/CNetworkGameClient, либо у контроллера есть CBasePlayerController::m_bIsLocalPlayerController
7) список контроллеров есть либо в C_DOTA_PlayerResource(плеер айдишники), либо в энтитисистеме сам отфильтруешь(как хочешь - по ртти по имени по метахуйне всякой), либо в метахуйне(то что ты назвал "энтитилистом" это список объектов C_NextBotCombatCharacter, существует также список объектов и C_DOTAPlayerController)
тебе прежде всего локальный контроллер(игрок) нужен
пизжу немножко нету списка контроллеров такого же как списка C_NextBotCombatCharacter, это внутренний список который в конструкторе C_NextBotCombatCharacter пополняется(контроллер такой список не ведёт в конструкторе). ну сути это конечно не меняет - это все равно не энтитилист;пошла возня, спасибо
еще можно локал плеер контроллера в теории брать из CPrediction(Source2ClientPrediction001 @ 0x7ffeb603f700(client.dll+0x430f700) -> CPrediction) там на оффсете 0x50 лежит попробуй я не тестил
дамп обновил(19 апр 2024)
Пожалуйста, авторизуйтесь для просмотра ссылки.
Последнее редактирование: