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

Исходник Andromeda - Dota2 SDK + Dota2 Plus + Camera Distance Changer

C++:
Expand Collapse Copy
auto GetProtoCDOTAGameAccountPlusFn = occurence("client.dll", "48 83 EC 38 48 8B 89 ? ? ? ? 48 85 C9 74 45 BA ? ? ? ? E8 ? ? ? ? 48 85 C0 74 36 8B 48 08 85 C9 74 2F 48 8B 40 10 4C 8D 0D ? ? ? ? FF C9 C7 44 24 ? ? ? ? ? 48 63 D1 4C 8D 05 ? ? ? ? 48 8B 0C D0 33 D2 E8 ? ? ? ? 48 83 C4 38 C3 33 C0 48 83 C4 38 C3");
 
Код:
Expand Collapse Copy
        auto localPlayer = I::entitysystem->GetLocalPlayerController();
        printf("localplayer: 0x%p\n", localPlayer);
        CHandle hero = localPlayer->m_hAssignedHero();
        C_BaseEntity* ent = I::entitysystem->GetBaseEntity(hero.GetEntryIndex());
        printf("hero entity Team: %d\n", ent->m_iTeamNum());
ентити лист возвращает не валидные данные. в чем может быть проблема?


1764007766254.png
 
Код:
Expand Collapse Copy
        auto localPlayer = I::entitysystem->GetLocalPlayerController();
        printf("localplayer: 0x%p\n", localPlayer);
        CHandle hero = localPlayer->m_hAssignedHero();
        C_BaseEntity* ent = I::entitysystem->GetBaseEntity(hero.GetEntryIndex());
        printf("hero entity Team: %d\n", ent->m_iTeamNum());
ентити лист возвращает не валидные данные. в чем может быть проблема?


Посмотреть вложение 320793
Проверь размер структуры pIdentity она не 0x78, а 0x70
 
Сделал по фасту активатор дота2 плюс и смену дистанции камеры (менять в меню в самой игре уже):
Мог бы и базу запилить дальше но сильно влом ) мб когда нибудь потом

Инжект: Xenos64
DW:
Пожалуйста, авторизуйтесь для просмотра ссылки.

SS:
Посмотреть вложение 319761
Посмотреть вложение 319763
научи как с персонажем взаимодействовать
типо авто додж или чтот полегче
 
твоим главным фанатом буду! в жопу давать буду! главное продолжай UpDATE) мб дискорд канал регнешь для инфы
UPD: Кому надо мои базы на кс2 дедлок и доту2 можете зайти сюда и узнать
Пожалуйста, авторизуйтесь для просмотра ссылки.

научи как с персонажем взаимодействовать
типо авто додж или чтот полегче
Есть PrepareUnitOrders через которую функцию всё взаимодействует с персонажем что ли, не помню давно делал в амбрелле и уже забыл , вообщем там не сложно понять для доджа нужна инфа об абилках и предметах и партиклях которые можно доджить и по моему расчёт когда прилетит тот или иной спел вообщем для каждого случая и доджа надо отдельно писать код но не для всего думаю, надо просто знать инфу что доджить можно и чем остальное не так и важно
 
Привет. Я смог починить рендер (перешел на нативный DX11 хук), меню и инпут теперь работают отлично.Но я застрял с анлокером Dota Plus. Хук на GetProtoCDOTAGameAccountPlus срабатывает, поинтер валидный. Я пробовал брутфорсить офсеты (писал 1 в диапазоне от 0x0 до 0x500 внутри структуры), но в игре подписка не активируется.Ты уверен, что игра всё еще берет статус из этой структуры для UI? Или проверка переехала в нетвары (Netvars)? Если не сложно, подскажи, как ты обычно ищешь этот офсет m_nStatus?
 
Привет. Я смог починить рендер (перешел на нативный DX11 хук), меню и инпут теперь работают отлично.Но я застрял с анлокером Dota Plus. Хук на GetProtoCDOTAGameAccountPlus срабатывает, поинтер валидный. Я пробовал брутфорсить офсеты (писал 1 в диапазоне от 0x0 до 0x500 внутри структуры), но в игре подписка не активируется.Ты уверен, что игра всё еще берет статус из этой структуры для UI? Или проверка переехала в нетвары (Netvars)? Если не сложно, подскажи, как ты обычно ищешь этот офсет m_nStatus?
C++:
Expand Collapse Copy
class CDOTAGameAccountPlus
{
private:
    PAD(0x2C);
public:
    enum EDotaPlusStatus : int32_t
    {
        STATUS_INVALID = -1,
        STATUS_SUBSCRIBED = 1,
        STATUS_UNSUBSCRIBED = 2,
    };

    int32_t m_nStatus;
};

typedef CDOTAGameAccountPlus* (__fastcall* GetProtoCDOTAGameAccountPlus_t)(__int64 a1);
cDetour<GetProtoCDOTAGameAccountPlus_t>* oGetProtoCDOTAGameAccountPlus_t;
CDOTAGameAccountPlus* __fastcall GetProtoCDOTAGameAccountPlus(__int64 a1)
{
    auto ret_val = oGetProtoCDOTAGameAccountPlus_t->GetTrampoline()(a1);
    if (ret_val)
    {       
        ret_val->m_nStatus = CDOTAGameAccountPlus::EDotaPlusStatus::STATUS_SUBSCRIBED;
    }

    return ret_val;
}
 
Сделал по фасту активатор дота2 плюс и смену дистанции камеры (менять в меню в самой игре уже):
Мог бы и базу запилить дальше но сильно влом ) мб когда нибудь потом

Инжект: Xenos64
DW:
Пожалуйста, авторизуйтесь для просмотра ссылки.

SS:
Посмотреть вложение 319761
Посмотреть вложение 319763


Привет! Спасибо за релиз базы, архитектура топ, особенно инжектор на BlackBone радует - работает как часы.

Сейчас сижу ковыряю код, пытаюсь адаптировать под последний патч Доты и перевести на более свежий Source 2 SDK. Столкнулся с парой затыков, буду благодарен, если подскажешь, в какую сторону копать:

Самое главное ViewMatrix. Старый паттерн на глобал в client.dll, похоже, рипнулся. Ты сейчас матрицу тянешь через поинтер на CRenderGameSystem или через интерфейс EngineClient? Если через рендер, то не подскажешь актуальный оффсет внутри класса? А то мой сканер находит 7 кандидатов, но валидация плавает, не хочется наугад тыкать.

И по NetVars/Schema. Смотрю, у тебя там всё на std::string и мапах построено. Хочу переписать это на рантайм-дампер и FNV1a хеши, чтобы в цикле отрисовки просадок не было. У тебя были какие-то наработки в эту сторону или лучше с нуля под глобал скоуп переписывать?

Ну и по мелочи: заметил, что в Matrix.hpp массив назван m_data, хотя в ванильном SDK обычно просто m. Из-за этого при мерже с другими либами ошибки лезут, пришлось немного подправить.

И еще хотел спросить, Я понимаю, что поддерживать базу под каждый патч — это адский труд. Меня не интересует готовый чит, чтобы играть. Я учусь и хочу понять правильную архитектуру под Source 2 (особенно работу с Entity Cache и иерархией классов).

Может, у тебя остались какие-то старые черновики, нерабочие исходники или просто наработки (WIP), которые не жалко скинуть для науки? Даже если код крашит игру или не компилится — мне главное увидеть твой подход к структуре данных.

Если это приват — без вопросов, понимаю. Но если есть чем поделиться для изучения — с меня причитается.

Еще раз спасибо за софт!
 
Привет! Спасибо за релиз базы, архитектура топ, особенно инжектор на BlackBone радует - работает как часы.

Сейчас сижу ковыряю код, пытаюсь адаптировать под последний патч Доты и перевести на более свежий Source 2 SDK. Столкнулся с парой затыков, буду благодарен, если подскажешь, в какую сторону копать:

Самое главное ViewMatrix. Старый паттерн на глобал в client.dll, похоже, рипнулся. Ты сейчас матрицу тянешь через поинтер на CRenderGameSystem или через интерфейс EngineClient? Если через рендер, то не подскажешь актуальный оффсет внутри класса? А то мой сканер находит 7 кандидатов, но валидация плавает, не хочется наугад тыкать.

И по NetVars/Schema. Смотрю, у тебя там всё на std::string и мапах построено. Хочу переписать это на рантайм-дампер и FNV1a хеши, чтобы в цикле отрисовки просадок не было. У тебя были какие-то наработки в эту сторону или лучше с нуля под глобал скоуп переписывать?

Ну и по мелочи: заметил, что в Matrix.hpp массив назван m_data, хотя в ванильном SDK обычно просто m. Из-за этого при мерже с другими либами ошибки лезут, пришлось немного подправить.

И еще хотел спросить, Я понимаю, что поддерживать базу под каждый патч — это адский труд. Меня не интересует готовый чит, чтобы играть. Я учусь и хочу понять правильную архитектуру под Source 2 (особенно работу с Entity Cache и иерархией классов).

Может, у тебя остались какие-то старые черновики, нерабочие исходники или просто наработки (WIP), которые не жалко скинуть для науки? Даже если код крашит игру или не компилится — мне главное увидеть твой подход к структуре данных.

Если это приват — без вопросов, понимаю. Но если есть чем поделиться для изучения — с меня причитается.

Еще раз спасибо за софт!
Про ViewMatrix можно взять с кс2 того же (моей базы патерны с асфиксей которые обновленные), с рендером лучше не придумаешь там уже, взято с амбреллы способ, да я и сам бы сделал не будь у меня шиза ебаная сука мать её, всё что у меня есть это небольшая память о работы в амбрелле в доте2 когда я их с колен поднимал инфа и сурс движке и по мелочи, шиза всё забрала всю память ... тут уже оклематся то сложно не говоря и кодинге, планирую автоакепт сделать там не сложно всё равно :catjam:
 
Назад
Сверху Снизу