Исходник Получение анимации персонажа. [external]

Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
C++:
static const char* ReadStringMemoryPtr(uint64_t dwAddress)
 {
    if (uint64_t v0 = Read<uint64_t>(dwAddress))
    {
        char buffer[1024];
        pMemory.get()->Rpm(v0, &buffer, sizeof(buffer));
        return buffer;
    }
    else
        return "----NULL";
 }

std::string GetAnimation(IActor* pActor)
{
    using QWORD = unsigned long long;
    QWORD a1 = Read<QWORD>(reinterpret_cast<uint64_t>(pActor) + 0x13B8);
    uint64_t vtablePtr = Read<uint64_t>(a1);
    uint64_t* animationGraphState = reinterpret_cast<uint64_t*>(vtablePtr + 0x60);
    QWORD a3 = Read<QWORD>(reinterpret_cast<QWORD>(animationGraphState) + 0x18);

    unsigned short a4 = Read<unsigned short>(Read<uint64_t>(a3) + 0x32);
    if (a4 == 0xFFFF)return "<no state>";
    QWORD a5 = 112 * static_cast<QWORD>(a4);
    uint64_t vtablePtr1 = Read<uint64_t>(a3);
    auto v32 = vtablePtr1 + 0x28;
    QWORD a6 = Read<QWORD>(Read<uint64_t>(v32) + 0x80);
    return  std::string( ReadStringMemoryPtr(a5 + a6));
}
Чтение\запись через драйвер.
 
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
Начинающий
Статус
Оффлайн
Регистрация
27 Фев 2020
Сообщения
420
Реакции[?]
19
Поинты[?]
14K
Я не знаю что ты там в дУше делаешь. Но явно не то что нужно, если не знаешь для чего это.
ну так можно проверить на смерть, но нахуя если есть куда проще? да и вщ эту хуню что ты скинул не юзаю
C++:
struct IActor{
public:

    int GetHealth(){
        float fValue = 100.0f;
        if (int v1 = driver::ReadProcessMemory<int>((uintptr_t)this + 0x64, public_pid)) {
            int v2 = v1 ^ driver::ReadProcessMemory<int>((uintptr_t)this + 0x60, public_pid);
            *(__int32*)&fValue = v2;
        }
        return fValue;
    }

    bool IsDead() {

        int health = GetHealth();
       
        if (health <= 0) return true;
        else return false;
    }
}

void Realizations(){
    IActor* pActor = pActorSystem->GetActor(framework->GetEntityId());

    if (!pActor->IsDead()) continue;

}
 
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
ну так можно проверить на смерть, но нахуя если есть куда проще? да и вщ эту хуню что ты скинул не юзаю
C++:
struct IActor{
public:

    int GetHealth(){
        float fValue = 100.0f;
        if (int v1 = driver::ReadProcessMemory<int>((uintptr_t)this + 0x64, public_pid)) {
            int v2 = v1 ^ driver::ReadProcessMemory<int>((uintptr_t)this + 0x60, public_pid);
            *(__int32*)&fValue = v2;
        }
        return fValue;
    }

    bool IsDead() {

        int health = GetHealth();
      
        if (health <= 0) return true;
        else return false;
    }
}

void Realizations(){
    IActor* pActor = pActorSystem->GetActor(framework->GetEntityId());

    if (!pActor->IsDead()) continue;

}
А при чем тут смерть?
 
Начинающий
Статус
Оффлайн
Регистрация
22 Дек 2023
Сообщения
267
Реакции[?]
16
Поинты[?]
17K
ну так можно проверить на смерть, но нахуя если есть куда проще? да и вщ эту хуню что ты скинул не юзаю
C++:
struct IActor{
public:

    int GetHealth(){
        float fValue = 100.0f;
        if (int v1 = driver::ReadProcessMemory<int>((uintptr_t)this + 0x64, public_pid)) {
            int v2 = v1 ^ driver::ReadProcessMemory<int>((uintptr_t)this + 0x60, public_pid);
            *(__int32*)&fValue = v2;
        }
        return fValue;
    }

    bool IsDead() {

        int health = GetHealth();
    
        if (health <= 0) return true;
        else return false;
    }
}

void Realizations(){
    IActor* pActor = pActorSystem->GetActor(framework->GetEntityId());

    if (!pActor->IsDead()) continue;

}
Код:
int GetHealth() {
    return driver::ReadProcessMemory<TMaskedFloat>((uintptr_t)this + 0x60, public_pid);
}
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
27 Фев 2020
Сообщения
420
Реакции[?]
19
Поинты[?]
14K
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
разве так можно получить здоровье в external?
C++:
    int64 GetHealth()
    {
        int v1; // eax
        int v2;
        __int64 result; // rax
        float v3; // [rsp+8h] [rbp+8h]

        v1 = Read<int32>((DWORD64)this + 0x64);
        v2 = Read<int32>((DWORD64)this + 0x60);
        v3 = 0.0;
        if (v1 || v2)
            LODWORD(v3) = v2 ^ v1;
        result = (unsigned int)(int)v3;
        if (v3 > (float)(int)v3)
            result = (unsigned int)(result + 1);
        return result;
    }
Ну а нахуя тогда это использовать? В цели чего? Я такое вообще не юзаю
Упал сэд, получаем его анимацию и наш аим на него не агрится. Также к примеру с Дроидом на марсе.
На пвп проверять живой\мертвый, когда тебя могут реанимировать, у тебя всё ровно 0 ХП, а через анимацию смерти этого можно избежать.
Можно без проблем определить когда таблица результатов и т.д и т.п.
 
Начинающий
Статус
Оффлайн
Регистрация
22 Дек 2023
Сообщения
267
Реакции[?]
16
Поинты[?]
17K
C++:
    int64 GetHealth()
    {
        int v1; // eax
        int v2;
        __int64 result; // rax
        float v3; // [rsp+8h] [rbp+8h]

        v1 = Read<int32>((DWORD64)this + 0x64);
        v2 = Read<int32>((DWORD64)this + 0x60);
        v3 = 0.0;
        if (v1 || v2)
            LODWORD(v3) = v2 ^ v1;
        result = (unsigned int)(int)v3;
        if (v3 > (float)(int)v3)
            result = (unsigned int)(result + 1);
        return result;
    }
Упал сэд, получаем его анимацию и наш аим на него не агрится. Также к примеру с Дроидом на марсе.
На пвп проверять живой\мертвый, когда тебя могут реанимировать, у тебя всё ровно 0 ХП, а через анимацию смерти этого можно избежать.
Можно без проблем определить когда таблица результатов и т.д и т.п.
кринж
разве так можно получить здоровье в external?
да легко
 
Начинающий
Статус
Оффлайн
Регистрация
27 Фев 2020
Сообщения
420
Реакции[?]
19
Поинты[?]
14K
Упал сэд, получаем его анимацию и наш аим на него не агрится. Также к примеру с Дроидом на марсе.
На пвп проверять живой\мертвый, когда тебя могут реанимировать, у тебя всё ровно 0 ХП, а через анимацию смерти этого можно избежать.
Можно без проблем определить когда таблица результатов и т.д и т.п.
Хз, мы не в 20 году, когда СЭД был играбельный, а про марс хз даже, ведь эт не интернал, типа лол, зачем идти на марс с экстерналом?
 
HvH Legend
Пользователь
Статус
Оффлайн
Регистрация
23 Окт 2022
Сообщения
389
Реакции[?]
95
Поинты[?]
25K
C++:
static const char* ReadStringMemoryPtr(uint64_t dwAddress)
{
    if (uint64_t v0 = Read<uint64_t>(dwAddress))
    {
        char buffer[1024];
        pMemory.get()->Rpm(v0, &buffer, sizeof(buffer));
        return buffer;
    }
    else
        return "----NULL";
}

std::string GetAnimation(IActor* pActor)
{
    using QWORD = unsigned long long;
    QWORD a1 = Read<QWORD>(reinterpret_cast<uint64_t>(pActor) + 0x13B8);
    uint64_t vtablePtr = Read<uint64_t>(a1);
    uint64_t* animationGraphState = reinterpret_cast<uint64_t*>(vtablePtr + 0x60);
    QWORD a3 = Read<QWORD>(reinterpret_cast<QWORD>(animationGraphState) + 0x18);

    unsigned short a4 = Read<unsigned short>(Read<uint64_t>(a3) + 0x32);
    if (a4 == 0xFFFF)return "<no state>";
    QWORD a5 = 112 * static_cast<QWORD>(a4);
    uint64_t vtablePtr1 = Read<uint64_t>(a3);
    auto v32 = vtablePtr1 + 0x28;
    QWORD a6 = Read<QWORD>(Read<uint64_t>(v32) + 0x80);
    return  std::string( ReadStringMemoryPtr(a5 + a6));
}
Чтение\запись через драйвер.
мужик...да ты крышей поехал...🍓
 
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
ну так можно проверить на смерть, но нахуя если есть куда проще? да и вщ эту хуню что ты скинул не юзаю
А как на счет этого,
И реализации можно придумать очень много.
Если это интернал, то это намного проще сделать.
 
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
ну так можно проверить на смерть, но нахуя если есть куда проще? да и вщ эту хуню что ты скинул не юзаю
А как на счет этого,
И реализации можно придумать очень много.
Если это интернал, то это намного проще сделать.

cryptoe
В состоянии только адреса обновить?
А пищишь от того, что "да и вщ эту хуню", очень познавательно было читать.
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
27 Фев 2020
Сообщения
420
Реакции[?]
19
Поинты[?]
14K
А как на счет этого,
И реализации можно придумать очень много.
Если это интернал, то это намного проще сделать.

cryptoe
В состоянии только адреса обновить?
А пищишь от того, что "да и вщ эту хуню", очень познавательно было читать.
Можно куда проще реализовать телепорт щита. Даже в папке levels\survival в клиенте игры даже есть названия стадий миссий, теперь просто получаем название карты и сверяем на акты миссий, там акты где используется щит разные act1, act2, act3 (примерные). Теперь просто проверить на щит в руках и сделать телепорт.

То, что ты в теме скинул этой ( https://yougame.biz/threads/317533/#post-3083891 ) - действительно понятия не имею для чего это даже может пригодится..
А как на счет этого,
И реализации можно придумать очень много.
Если это интернал, то это намного проще сделать.

cryptoe
В состоянии только адреса обновить?
А пищишь от того, что "да и вщ эту хуню", очень познавательно было читать.
Ну, в твой реализации - это да, может еще понадобится, но я думаю что есть куда проще варианты реализаций
 
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
Можно куда проще реализовать телепорт щита. Даже в папке levels\survival в клиенте игры даже есть названия стадий миссий, теперь просто получаем название карты и сверяем на акты миссий, там акты где используется щит разные act1, act2, act3 (примерные). Теперь просто проверить на щит в руках и сделать телепорт.

То, что ты в теме скинул этой ( https://yougame.biz/threads/317533/#post-3083891 ) - действительно понятия не имею для чего это даже может пригодится..

Ну, в твой реализации - это да, может еще понадобится, но я думаю что есть куда проще варианты реализаций
Примеры кода приведи. А то рассуждать можно очень долго.
 
Начинающий
Статус
Оффлайн
Регистрация
27 Фев 2020
Сообщения
420
Реакции[?]
19
Поинты[?]
14K
C++:
Vec3 vPos_Shield;




if (pFramework->GetLevelName() != L"intro/japan_act2" || pFramework->GetLevelName() != L"intro/japan_act3")
{
    vPos_Shield = { 674.915405f, 706.425842f, 46.875000f };
}



if (pFramework->GetLevelName() == L"intro/japan_act2")
{
    vPos_Shield = { 855.9778442, 1346.8364258f, 75.4551239f };
}

if (pFramework->GetLevelName() == L"intro/japan_act3")
{
    vPos_Shield = { 1809.648926f, 424.261902f, 95.510071f };
}


if (pFramework->GetLevelName() == L"intro/japan_act3" || pFramework->GetLevelName() == L"intro/japan_act2" pFramework->GetLevelName() == L"intro/japan_act1")
{
    if (GetAsyncKeyState(EKey::B) & 1)
    {
        SetLocalPos(vPos_Shield);
    }
}
Примеры кода приведи. А то рассуждать можно очень долго.
Покажу реализацию, классы и так у всех есть
 
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
C++:
Vec3 vPos_Shield;




if (pFramework->GetLevelName() != L"intro/japan_act2" || pFramework->GetLevelName() != L"intro/japan_act3")
{
    vPos_Shield = { 674.915405f, 706.425842f, 46.875000f };
}



if (pFramework->GetLevelName() == L"intro/japan_act2")
{
    vPos_Shield = { 855.9778442, 1346.8364258f, 75.4551239f };
}

if (pFramework->GetLevelName() == L"intro/japan_act3")
{
    vPos_Shield = { 1809.648926f, 424.261902f, 95.510071f };
}


if (pFramework->GetLevelName() == L"intro/japan_act3" || pFramework->GetLevelName() == L"intro/japan_act2" pFramework->GetLevelName() == L"intro/japan_act1")
{
    if (GetAsyncKeyState(EKey::B) & 1)
    {
        SetLocalPos(vPos_Shield);
    }
}

Покажу реализацию, классы и так у всех есть
Как ты получил данное имя карты?
Когда функция выводит другое имя.

Я от этого и отталкивался.
1714229513317.png
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
27 Фев 2020
Сообщения
420
Реакции[?]
19
Поинты[?]
14K
Сверху Снизу