Исходник Repachino Stickrpg reversed resolver

bash

Меценат

bash

Меценат
Не в сети
5 Авг 2019
173
138
  • bash

  • Тот самый стик-рпг с видео репачино, там где он всех ебет

    Код:
    int __usercall AnimationFix::Resolver@<eax>(double a1@<st0>, int entity)
    
    {
    
      int result; // eax
    
      int v3; // esi
    
      float v4; // xmm0_4
    
      float flYawModifier; // xmm0_4
    
      float v6; // ST18_4
    
      float v7; // ST14_4
    
      float v8; // xmm0_4
    
      float v9; // xmm0_4
    
      int m_flMaxBodyYaw; // [esp+24h] [ebp-2Ch]
    
      int m_flMinBodyYaw; // [esp+28h] [ebp-28h]
    
      float v12; // [esp+2Ch] [ebp-24h]
    
      float ResolvedYaw; // [esp+3Ch] [ebp-14h]
    
      float m_flEyeYaw; // [esp+40h] [ebp-10h]
    
      float speed; // [esp+44h] [ebp-Ch]
    
      float v16; // [esp+48h] [ebp-8h]
    
      int animstate; // [esp+4Ch] [ebp-4h]
    
    
    
      result = *(unsigned __int8 *)(sub_1000A440() + 16);
    
      if ( result )
    
      {
    
        v3 = sub_100072F0();
    
        result = sub_100072F0();
    
        if ( v3 != result )
    
        {
    
          result = sub_1000EB70(entity);
    
          animstate = result;
    
          if ( result )
    
          {
    
            if ( dword_100D37A0[(*(int (__thiscall **)(int))(*(_DWORD *)(entity + 8) + 40))(entity + 8)] <= 2 )// missed shot <= 2
    
            {
    
              sub_1000A2D0(COERCE_INT((float)*(signed int *)(animstate + 0x70) - *(float *)(animstate + 0x6C)));// m_nLastFrame - m_flLastUpdateTime (excuse me wat the fuck ?)
    
              if ( *(float *)(animstate + 0xF8) < 0.0 )// check standing
    
              {
    
                speed = 0.0;
    
              }
    
              else
    
              {
    
                a1 = fminf(*(_DWORD *)(animstate + 0xF8), 1065353216);
    
                speed = a1;
    
              }
    
              v4 = (*(float *)(animstate + 0x11C) * -0.30000001 - 0.19999999) * speed;
    
              flYawModifier = v4 + 1.0;
    
              if ( *(float *)(animstate + 0xA4) > 0.0 && *(float *)(animstate + 0xFC) >= 0.0 )// onduck and moving
    
                a1 = fminf(*(_DWORD *)(animstate + 0xFC), 1065353216);
    
              *(float *)&m_flMaxBodyYaw = (float)*(char *)(animstate + 0x334) * flYawModifier;
    
              *(float *)&m_flMinBodyYaw = (float)*(char *)(animstate + 0x330) * flYawModifier;
    
              ResolvedYaw = 0.0;
    
              m_flEyeYaw = *(float *)(animstate + 0x78);
    
              sub_1000A2D0(COERCE_INT(m_flEyeYaw - *(float *)(animstate + 0x80)));// m_flEyeYaw m_flAbsRotation delta
    
              v12 = a1;
    
              if ( *(float *)&m_flMaxBodyYaw < v12 )
    
              {
    
                sub_1000A2D0(m_flMaxBodyYaw);
    
                v7 = a1;
    
                ResolvedYaw = m_flEyeYaw - v7;
    
              }
    
              else if ( *(float *)&m_flMinBodyYaw > v12 )
    
              {
    
                sub_1000A2D0(m_flMinBodyYaw);
    
                v6 = a1;
    
                ResolvedYaw = v6 + m_flEyeYaw;
    
              }
    
              result = sub_10014650(SLODWORD(ResolvedYaw), 360.0);// fmod
    
              v16 = a1;
    
              if ( v16 > 180.0 )                    // clamp
    
              {
    
                v8 = v16 - 360.0;
    
                v16 = v8;
    
              }
    
              if ( v16 < 180.0 )
    
              {
    
                v9 = v16 + 360.0;
    
                v16 = v9;
    
              }
    
              *(float *)(animstate + 0x80) = v16;
    
            }
    
            else
    
            {
    
              result = (*(int (__thiscall **)(int))(*(_DWORD *)(entity + 8) + 40))(entity + 8);
    
              switch ( dword_100D37A0[result] % 4 ) // Cool bruteforce
    
              {
    
                case 0:
    
                  result = animstate;
    
                  *(float *)(animstate + 0x80) = *(float *)(animstate + 128) + 45.0;// animstate + 128 (0x80) m_flAbsRotation
    
                  break;
    
                case 1:
    
                  result = animstate;
    
                  *(float *)(animstate + 128) = *(float *)(animstate + 128) - 45.0;
    
                  break;
    
                case 2:
    
                  *(float *)(animstate + 128) = *(float *)(animstate + 128) - 30.0;
    
                  break;
    
                case 3:
    
                  result = animstate;
    
                  *(float *)(animstate + 128) = *(float *)(animstate + 128) + 30.0;
    
                  break;
    
                default:
    
                  return result;
    
              }
    
            }
    
          }
    
        }
    
      }
    
      return result;
    
    }
     
    Последнее редактирование модератором:
    • Мне нравится
    Реакции: SashaOmega