• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос LocalPlayer в доте

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
26 Дек 2024
Сообщения
22
Реакции
0
Как находить эти адреса и оффсеты без значений???
Буду рад объяснению
 
Как находить эти адреса и оффсеты без значений???
Буду рад объяснению
как и в других сурс играх, первые 64(ну мб отличается в некоторых играх но в доте 64) индексов сущностей после мира(мир всегда сущность номер ноль) занимают игроки(т.е. от 1 до 64 включительно индексы начиная с нуля)
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
is always entity 0, while indices 1 to <
Пожалуйста, авторизуйтесь для просмотра ссылки.
> are reserved for players.
(maxplayer=64 в доте)
следовательно ты просто можешь взять всех 64 потенциальных игроков, взять только тех которые реально есть(остальные будут пустыми(незаполненными, без сущности и с инвалидным хендлом(7FFF индекс будет)) в ентитилисте) и найти того, у которого m_bIsLocalPlayerController == true(клиент доты сам выставит локальному игроку эту шнягу в тру, это не нетворкабл переменная, но тем не менее рефлексируемая(оффсет на нее можно сдампить)). это твой локальный игрок(контроллер - он контроллит курьеров, призванных/прирученных крипов, и твоего героя(а может и сразу нескольких - те же иллюзии клоны и т.д.) - считай что это типа твоя "камера"). у игрока есть основной герой(которого он пикал на стадии пика) - в нетваре m_hAssignedHero(это хендл), получаешь через энтитисистему из него героя(-1 будет если герой не выбран) и радуешься. всё это(и как энтитисистему найти) есть на форуме, ищи
 
Штота непонятно, быть может на практике сможешь?
Да и дампы уже устаревшие, вчера патч вышел
 
Штота непонятно, быть может на практике сможешь?
на форуме всё есть - и словесные описания, и псевдокод, и конкретный код
Да и дампы уже устаревшие, вчера патч вышел
 
Так ничего и не нашёл, вообще изначально на хп должен был быть вопрос
 
Так ничего и не нашёл, вообще изначально на хп должен был быть вопрос
значит ты невероятно плохо искал. учись искать.
еще раз скидываю ссылку которую уже кидал в этом треде
цитата
C++:
Expand Collapse Copy
GetLocalPlayer():
    for i ∈ [1; 64]:
        entity = g_pEntitySystem?.GetEntityByIndex(i)
        if entity?.CBasePlayerController::m_bIsLocalPlayerController:
            return entity
    return null
(это псевдокод, естественно)
если сделать поиск по GetEntityByIndex то найдется релевантная инфа
если сделать поиск по g_pEntitySystem, тоже
если по m_bIsLocalPlayerController, тоже
если по "здоровье" или m_iHealth, тоже...
 
значит ты невероятно плохо искал. учись искать.
еще раз скидываю ссылку которую уже кидал в этом треде
цитата
C++:
Expand Collapse Copy
GetLocalPlayer():
    for i ∈ [1; 64]:
        entity = g_pEntitySystem?.GetEntityByIndex(i)
        if entity?.CBasePlayerController::m_bIsLocalPlayerController:
            return entity
    return null
(это псевдокод, естественно)
если сделать поиск по GetEntityByIndex то найдется релевантная инфа
если сделать поиск по g_pEntitySystem, тоже
если по m_bIsLocalPlayerController, тоже
если по "здоровье" или m_iHealth, тоже...
Что-то начал понимать после третьего прочтения, завтра к практике перейду
 
так ничего и не понял, можно пасту тогда уж? :)
 
так ничего и не понял, можно пасту тогда уж? :)
когда у тебя есть множество ошибок или проблем, можно как правило(не всегда) сфокусироваться на самой первой(а другие отложить на второй план), потому что остальные или некоторые из них могут вытекать или зависеть из первой(следовательно, реальное количество независимых проблем может быть гораздо меньше чем кажется).
если ты "ничего" не понял - так остановись на самой первой вещи которую ты не понял, а на остальные пока забей потом к ним вернешься(некоторые из них могут сразу же стать понятными после того как первую поймешь). что конкретно ты не понял?
 
когда у тебя есть множество ошибок или проблем, можно как правило(не всегда) сфокусироваться на самой первой(а другие отложить на второй план), потому что остальные или некоторые из них могут вытекать или зависеть из первой(следовательно, реальное количество независимых проблем может быть гораздо меньше чем кажется).
если ты "ничего" не понял - так остановись на самой первой вещи которую ты не понял, а на остальные пока забей потом к ним вернешься(некоторые из них могут сразу же стать понятными после того как первую поймешь). что конкретно ты не понял?
Спасибо, я постараюсь научиться
 
можно пасту тогда уж?
паста из пасты

C++:
Expand Collapse Copy
void* LocalPlayerController() {

    for (int i = 1; i <= 12; ++i) {

        void* playerController = GetEntityByIndex((void*)CGameEntSystem, i);

        if(*(bool*)((char*)playerController + m_bIsLocalPlayerController))
            return playerController;

    }
return nullptr;
}
GetEntityByIndex:
чтобы читать чужие сурсы прочитай:
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
паста из пасты

C++:
Expand Collapse Copy
void* LocalPlayerController() {

    for (int i = 1; i <= 12; ++i) {

        void* playerController = GetEntityByIndex((void*)CGameEntSystem, i);

        if(*(bool*)((char*)playerController + m_bIsLocalPlayerController))
            return playerController;

    }
return nullptr;
}
GetEntityByIndex:
чтобы читать чужие сурсы прочитай:
Пожалуйста, авторизуйтесь для просмотра ссылки.
ну во-первых не 12 а 64 - в кастомках может быть например больше игроков чем в стандартной доте(но все равно макс 64)
во-вторых на нуллптр не хочешь почекать?
 
Назад
Сверху Снизу