Лично я вызвал в пресент хуке и я ахуел что оно фиксит всёЗато самопис
А ещё я его в фреймстейдже вызываю
Мне понравилосьТак значит будем делать топ легит резольвер ака пастить из монеона
так смотрим как сделано в монеоне
а потом пастим
тут всё очень просто и понятно, вызывать надо в хуке CreateMoveКод:void Resolver(CBaseEntity* pPlayer) { if (pPlayer->GetAnimState()) { Vector vVelocity = pPlayer->GetVelocity(); float flSpeed = vVelocity.Length2D(); if (flSpeed == 0.0f) { if (bLegitResolver) { Vector vEyeAngles = pPlayer->GetEyeAngles(); float flLowerBody = remainderf(pPlayer->GetLowerBodyYaw(), 360.f); if (flLowerBody - remainderf(vEyeAngles.y, 360.f) >= 60.f) pPlayer->GetAnimState()->m_flGoalFeetYaw = NormalizeYaw(remainderf(pPlayer->GetLowerBodyYaw() + 180.f, 360.f)); } } } }
вот полностью готовый код:
резольвер просто пи, кодеры монеона красавчики тупа лучшие!Код:void Resolver(CBaseEntity* pPlayer) { if (pPlayer->GetAnimState()) { Vector vVelocity = pPlayer->GetVelocity(); float flSpeed = vVelocity.Length2D(); if (flSpeed == 0.0f) { if (bLegitResolver) { Vector vEyeAngles = pPlayer->GetEyeAngles(); float flLowerBody = remainderf(pPlayer->GetLowerBodyYaw(), 360.f); if (flLowerBody - remainderf(vEyeAngles.y, 360.f) >= 60.f) pPlayer->GetAnimState()->m_flGoalFeetYaw = NormalizeYaw(remainderf(pPlayer->GetLowerBodyYaw() + 180.f, 360.f)); } } } } void CreateMove_Hooked(CUserCmd* pCmd) { //... for (int i = 1; i < g_pEngine->GetMaxClients(); i++) { CBaseEntity* pEntity = g_pEntityList->GetEntity(i); if (!pEntity) continue; if (!pEntity->IsAlive()) continue; if (pEntity == pLocalPlayer) continue; Resolver(pEntity); } //... }
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz