Animfix

get one'd
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
22 Дек 2018
Сообщения
390
Реакции
32
У кого есть нормальный animfix для ксго.
Не local, а хз какой, но что-бы резольвить десинки.
Заранее спасибо
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
У чиркова возьми анимфик$
 
pAnimFix из дампов фаталити, фиксит любой десинк
Код:
Expand Collapse Copy
static auto bInterpolateAnimations = *(intptr_t*)(Utils::PatternScan( "client_panorama.dll", "80 BF ? ? ? ? ? 0F 84 ? ? ? ? 83 BF ? ? ? ? ? 74 7C" ) + 2);

// выбрасываем 2 не нужные кости
// далее используем эту матрицу для аима
matrix3x4_t bone_cache[126];

CBaseEntity* player = GetRagebotTarget();
if(!player)
    return;

DWORD AnimFixTarget = (DWORD)player;
*(DWORD*)(AnimFixTarget + 0xA24) = 0;
*(DWORD*)(AnimFixTarget + 0xA30) = g_GlobalVars->framecount;
*(DWORD*)(AnimFixTarget + 0xF0) &= ~8;
*(DWORD*)(AnimFixTarget + bInterpolateAnimations) = false;
player->InvalidateBoneCache();
player->SetupBones(bone_cache, 126, BONE_USED_BY_ANYTHING, g_GlobalVars->curtime);

// готово, наша матрица костей идеально синхронизированна с сервером, никакие десинки не проблема
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
pAnimFix из дампов фаталити, фиксит любой десинк
Код:
Expand Collapse Copy
OcculusionFrame() = g_GlobalVars->framecount;
OcculusionMask() = 0;

static auto bInterpolateAnimations = *(intptr_t*)(Utils::PatternScan( "client_panorama.dll", "80 BF ? ? ? ? ? 0F 84 ? ? ? ? 83 BF ? ? ? ? ? 74 7C" ) + 2);

// выбрасываем 2 не нужные кости
// далее используем эту матрицу для аима
matrix3x4_t bone_cache[126];

CBaseEntity* player = GetRagebotTarget();
if(!player)
    return;

DWORD AnimFixTarget = (DWORD)player;
*(DWORD*)(AnimFixTarget + 0xA24) = 0;
*(DWORD*)(AnimFixTarget + 0xA30) = g_GlobalVars->framecount;
*(DWORD*)(AnimFixTarget + 0xF0) &= ~8;
*(DWORD*)(AnimFixTarget + bInterpolateAnimations) = false;
player->InvalidateBoneCache();
player->SetupBones(bone_cache, 126, BONE_USED_BY_ANYTHING, g_GlobalVars->curtime);

// готово, наша матрица костей идеально синхронизированна с сервером, никакие десинки не проблема
паттерн правильный?
 
pAnimFix из дампов фаталити, фиксит любой десинк
Код:
Expand Collapse Copy
OcculusionFrame() = g_GlobalVars->framecount;
OcculusionMask() = 0;

static auto bInterpolateAnimations = *(intptr_t*)(Utils::PatternScan( "client_panorama.dll", "80 BF ? ? ? ? ? 0F 84 ? ? ? ? 83 BF ? ? ? ? ? 74 7C" ) + 2);

// выбрасываем 2 не нужные кости
// далее используем эту матрицу для аима
matrix3x4_t bone_cache[126];

CBaseEntity* player = GetRagebotTarget();
if(!player)
    return;

DWORD AnimFixTarget = (DWORD)player;
*(DWORD*)(AnimFixTarget + 0xA24) = 0;
*(DWORD*)(AnimFixTarget + 0xA30) = g_GlobalVars->framecount;
*(DWORD*)(AnimFixTarget + 0xF0) &= ~8;
*(DWORD*)(AnimFixTarget + bInterpolateAnimations) = false;
player->InvalidateBoneCache();
player->SetupBones(bone_cache, 126, BONE_USED_BY_ANYTHING, g_GlobalVars->curtime);

// готово, наша матрица костей идеально синхронизированна с сервером, никакие десинки не проблема

Это мем или реально работает? Что-то слишком просто...
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это мем или реально работает? Что-то слишком просто...
1553593938348.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
И флаг ещё один там нужен
Ты имеешь ввиду "фикс DoExtraBoneProcessing" вот таким методом? (
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
Код:
Expand Collapse Copy
// как он по сути делается
*(DWORD*)(AnimFixTarget + 0x274) &= ~1;
// или вот так...
*(DWORD*)(AnimFixTarget + 0x274) = 0;
К сведению, ты скорее сломаешь SetupBones еще больше, потому что в таком случае setupbones не будет вызывать не только DEBP, но и важную часть кода анимации в AccumulateLayers, которую необходимо вызвать
1553603984531.png

P.S попробуйте реверсить SetupBones на клиенте и на сервере.
 
Последнее редактирование:
Назад
Сверху Снизу