подмена txd

arekaj

Новичок
Автор темы
3
0
как подменить txd в момент инициализации скрипта? с hud.txd на hud2.txd например или определённый элемент внутри hud.txd
 

tanksoftik

Новичок
10
1
C++:
void __cdecl CHudInitialise()
{
    int txd; // esi
    CSprite2d* v1; // edi
    char** v2; // esi
    int i; // ebx

    txd = CTxdStore::AddTxdSlot("hud");
    CTxdStore::LoadTxd(txd, "MODELS\\HUD2.TXD");
    CTxdStore::AddRef(txd);
    CTxdStore::PushCurrentTxd();
    CTxdStore::SetCurrentTxd(txd);
    v1 = CHud::Sprites;
    v2 = (char**)(0x8D128C);
    i = 6;
    do
    {
        v1->SetTexture(*v2, v2[1]);
        v2 += 2;
        v1 = (v1 + 4);
        --i;
    } while (i);
    CTxdStore::PopCurrentTxd();
    CHud::ReInitialise();
}

class HookCHudInitialise {
public:
    HookCHudInitialise() {
        patch::RedirectCall(0x5BD76F, CHudInitialise);

    };
} CHudInitialisePlugin;
 

arekaj

Новичок
Автор темы
3
0
C++:
void __cdecl CHudInitialise()
{
    int txd; // esi
    CSprite2d* v1; // edi
    char** v2; // esi
    int i; // ebx

    txd = CTxdStore::AddTxdSlot("hud");
    CTxdStore::LoadTxd(txd, "MODELS\\HUD2.TXD");
    CTxdStore::AddRef(txd);
    CTxdStore::PushCurrentTxd();
    CTxdStore::SetCurrentTxd(txd);
    v1 = CHud::Sprites;
    v2 = (char**)(0x8D128C);
    i = 6;
    do
    {
        v1->SetTexture(*v2, v2[1]);
        v2 += 2;
        v1 = (v1 + 4);
        --i;
    } while (i);
    CTxdStore::PopCurrentTxd();
    CHud::ReInitialise();
}

class HookCHudInitialise {
public:
    HookCHudInitialise() {
        patch::RedirectCall(0x5BD76F, CHudInitialise);

    };
} CHudInitialisePlugin;
радар становится полностью чёрный после подмены

1748264968194.png
 

tanksoftik

Новичок
10
1