Вопрос Как найти LocalHero Entity

Начинающий
Статус
Оффлайн
Регистрация
26 Янв 2022
Сообщения
70
Реакции[?]
7
Поинты[?]
0
у меня есть список ентити [ent1, ent2, ...]
как мне понять какие их этих сущностей принадлежат мне (мой герой, моя кура и тд)

в данный момент мне нужно просто получить имя моего героя
получение имени у меня уже есть, только нужно узнать адрес локального героя
Python:
class DotaEntity(object):
    def __init__(self, ent_addr) -> None:
        self.addr = ent_addr

    @property
    def name(self):
        _name = "unknown"

        try:
            _name = dota.read_string(ui(ui(ui(self.addr) + 0x10) + 0x18))

        except pymem.exception.MemoryReadError:
            try:
                _name = dota.read_string(ui(ui(ui(self.addr) + 0x10) + 0x20))
            except pymem.exception.MemoryReadError:
                pass

        return _name

    @property
    def health(self):
        _health = None

        try:
            _health = dota.read_int(ui(self.addr) + 812)
        except pymem.exception.MemoryReadError:
            pass

        return _health

    @property
    def isLocal(self):
        # здесь должно быть что то умное 
        return True # False
моя структура
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
774
Реакции[?]
330
Поинты[?]
62K
1645456884700.png
это айди сущности игрока(сплитскринслот бери 0).
игрок в ентитилисте(CDOTAPlayer или как его там), его айди получаешь с движка.
находишь по айди получаешь своего CDOTAPlayer, и сущности у которых m_hOwnerEntity или както так нетвар стоит в хендл этого твоего игрока - это твои сущности(кура герой и тд)
альтернативно реверси методы из CScriptBindingPR_Players в джаваскрипте
Пожалуйста, авторизуйтесь для просмотра ссылки.

движок(CEngineClient) - engine2.dll, Source2EngineToClient001
 
Сверху Снизу