Tutorial How to find SetAbsAngle & SetAbsOrigin

  • Downloading from our site will require you to have a paid membership. Upgrade to a Premium Membership today!

    Dont forget read our Rules! Also anyone caught Sharing this content will be banned. By using this site you are agreeing to our rules so read them. Saying I did not know is simply not an excuse! You have been warned.

Radio

    Status
    Not open for further replies.

    ven0m

    Administrator
    Staff member
    Administrator
    Moderator
    Platinum
    xenForo 2.x.x
    xenForo 1.x.x
    Contributor
    vBulletin All Access Pass
    The Chest
    Verified
    Ultra Platinum VIP
    Platinum VIP
    Gold VIP
    Silver VIP
    Premium
    Member
    Jul 17, 2005
    20,503
    7,742
    321
    localhost
    Code:
    SetAbsAngle
     
    1. string search "animset_version" and xref it
    2. Now you're in CCSGOAnimState::CacheSequences xref it and you land it CCSGOAnimState
    3. Create Pseudo
     
    void __userpurge CCSGOPlayerAnimState::Update(int a1@<ecx>, int a2@<xmm1>, float a3@<xmm2>, int a4)
    {
      int v4; // edi
      int v5; // ecx
      float *v6; // esi
      float v7; // xmm0_4
      float v8; // xmm1_4
      float v9; // xmm0_4
      long double v10; // st7
      float v11; // xmm0_4
      _DWORD *v12; // eax
      int v13; // eax
      signed int v14; // ecx
      int v15; // eax
      _DWORD *v16; // eax
      bool v17; // zf
      int v18; // eax
      float v19; // xmm3_4
      float v20; // xmm1_4
      float v21; // xmm0_4
      float v22; // xmm2_4
      float v23; // xmm1_4
      float v24; // xmm1_4
      float v25; // xmm2_4
      float v26; // xmm2_4
      float v27; // xmm1_4
      float v28; // xmm4_4
      float v29; // xmm1_4
      int v30; // esi
      float *v31; // ecx
      char v32; // fl
      int v33; // eax
      int v34; // eax
      int v35; // eax
      int v36; // eax
      signed int v37; // eax
      int v38; // esi
      int v39; // esi
      _DWORD *v40; // ecx
      int v41; // xmm0_4
      float *v42; // ecx
      int v43; // ecx
      int v44; // eax
      float v45; // [esp+Ch] [ebp-14h]
      signed int v46; // [esp+Ch] [ebp-14h]
      int v47; // [esp+10h] [ebp-10h]
      float v48; // [esp+10h] [ebp-10h]
      int v49; // [esp+14h] [ebp-Ch]
      int v50; // [esp+18h] [ebp-8h]
      int v51; // [esp+1Ch] [ebp-4h]
     
      v4 = a1;
      v47 = a2;
      v5 = *(a1 + 96);
      if ( v5 && ((*(*v5 + 612))() || *(*(v4 + 96) + 14973)) && CCSGOPlayerAnimState::CacheSequences(v4) )
      {
        v6 = *(v4 + 96);
        v45 = fmod((v6[11854] + a3), 360.0);
        v7 = v45;
        if ( v45 > 180.0 )
        {
          v7 = v45 - 360.0;
          v45 = v45 - 360.0;
        }
        if ( v7 < -180.0 )
          v45 = v7 + 360.0;
        v8 = *(v4 + 108);
        v9 = *(g_pGlobals + 16);
        if ( v8 != v9 && *(v4 + 112) != *(g_pGlobals + 4) )
        {
          byte_10CAC0C8 = 0;
          *(v4 + 116) = fmaxf(v9 - v8, 0.0);
          sub_10796D70();
          *(v4 + 120) = v47;
          v10 = fmod(v45, 360.0);
          v48 = v10;
          v11 = v48;
          if ( v48 > 180.0 )
            v11 = v48 - 360.0;
          if ( v11 < -180.0 )
            v11 = v11 + 360.0;
          *(v4 + 124) = v11;
          v12 = (*(*v6 + 40))(v6);
          *(v4 + 176) = *v12;
          *(v4 + 180) = v12[1];
          *(v4 + 184) = v12[2];
          v13 = (*(**(v4 + 96) + 1060))();
          *(v4 + 100) = v13;
          if ( v13 != *(v4 + 104) || *(v4 + 4) )
          {
            v14 = 0;
            *(*(v4 + 96) + 2608) = 0;
            do
            {
              v15 = *(v4 + 96);
              if ( *(v15 + 10636) )                 // GetAnimOverlay
              {
                v16 = (v14 + *(v15 + 10624));       // GetNumAnimOverlays
                if ( v16 )
                {
                  v16[2] = 0;
                  v16[3] = -1;
                  v16[4] = -1;
                }
              }
              v14 += 56;
            }
            while ( v14 < 728 );
          }
          v17 = sub_103BFE00() == 0;
          v18 = *(v4 + 96);
          if ( v17 )
          {
            v25 = *(v18 + 12204) + *(v4 + 168);
            if ( v25 >= 0.0 )
              v26 = fminf(v25, 1.0);
            else
              v26 = 0.0;
            v27 = *(v4 + 164);
            v28 = *(v4 + 116) * 6.0;
            if ( (v26 - v27) <= v28 )
            {
              if ( COERCE_FLOAT(LODWORD(v28) ^ xmmword_10C35030) <= (v26 - v27) )
                v29 = v26;
              else
                v29 = v27 - v28;
            }
            else
            {
              v29 = v27 + v28;
            }
            if ( v29 >= 0.0 )
              v24 = fminf(v29, 1.0);
            else
              v24 = 0.0;
          }
          else
          {
            if ( *(v18 + 260) & 4 )
              v19 = 1.0;
            else
              v19 = *(v4 + 168);
            v20 = *(v4 + 164);
            if ( v19 <= v20 )
              v21 = 6.0;
            else
              v21 = 3.0999999;
            v22 = *(v4 + 116) * v21;
            if ( (v19 - v20) <= v22 )
            {
              if ( COERCE_FLOAT(LODWORD(v22) ^ xmmword_10C35030) <= (v19 - v20) )
                v23 = v19;
              else
                v23 = v20 - v22;
            }
            else
            {
              v23 = v20 + v22;
            }
            *(v4 + 164) = v23;
            if ( v23 >= 0.0 )
              v24 = fminf(v23, 1.0);
            else
              v24 = 0.0;
          }
          *(v4 + 164) = v24;
          v30 = mdlcache;
          (*(*mdlcache + 132))(mdlcache);
          (*(**(v4 + 96) + 864))(0);
          *(*(v4 + 96) + 2584) = 0;
          v31 = *(v4 + 96);
          if ( v31[645] != 0.0 )
          {
            v31[645] = 0.0;
            sub_101902C0(v31, 8);
          }
          (*(*v30 + 136))(v30);
          CCSGOPlayerAnimState::SetUpVelocity(v4, v10);
          CCSGOPlayerAnimState::SetUpAimMatrix(v4);
          CCSGOPlayerAnimState::SetUpWeaponAction(v4, v4);
          CCSGOPlayerAnimState::SetUpMovement(v4);
          sub_103EBFA0(v4, v32);
          v33 = *(v4 + 96);
          if ( *(v33 + 10636) )
          {
            v34 = *(v33 + 10624) + 448;
            if ( v34 )
            {
              if ( *(v34 + 32) > 0.0 )
              {
                sub_103ED930(8, 0);
                sub_103EDA10(8);
              }
            }
          }
          v35 = *(v4 + 96);
          if ( *(v35 + 10636) )
          {
            if ( *(v35 + 10624) != -504 && *(*(v35 + 10624) + 536) > 0.0 )
            {
              if ( *(v35 + 10636) )
              {
                v36 = *(v35 + 10624) + 504;
                if ( v36 )
                {
                  if ( *(v36 + 36) < 0.0 )
                    sub_103EDA10(9);
                }
              }
            }
          }
          sub_103EBEE0(v4);
          sub_103EBB90(v4);
          v37 = 0;
          v46 = 0;
          do
          {
            v38 = *(v4 + 96);
            if ( *(v38 + 10636) )
            {
              v39 = v37 + *(v38 + 10624);
              if ( v39 )
              {
                if ( !*(v39 + 24) )
                {
                  v40 = *(v39 + 48);
                  if ( v40 )
                  {
                    if ( *(v39 + 32) != 0.0 )
                      sub_101902C0(v40, 16);
                    v37 = v46;
                  }
                  *(v39 + 32) = 0;
                }
              }
            }
            v37 += 56;
            v46 = v37;
          }
          while ( v37 < 728 );
          v41 = *(v4 + 128);
          v42 = *(v4 + 96);
          v49 = 0;
          v50 = v41;
          v51 = 0;
          C_BaseEntity::SetAbsOrigin(v42, &v49); <-------- this is setabsorigin sig that if u want that, if u want setabsangle goto step 4
          v43 = g_pGlobals;
          *(v4 + 104) = *(v4 + 100);
          *(v4 + 188) = *(v4 + 176);
          *(v4 + 192) = *(v4 + 180);
          *(v4 + 196) = *(v4 + 184);
          *(v4 + 4) = 0;
          *(v4 + 108) = *(v43 + 16);
          v44 = *(v43 + 4);
          byte_10CAC0C8 = 1;
          *(v4 + 112) = v44;
        }
      }
    }
     
    4. Goto the assembly of the function that is marked above
     
    .text:101CA9B0
    .text:101CA9B0                               var_60          = byte ptr -60h
    .text:101CA9B0                               var_30          = byte ptr -30h
    .text:101CA9B0                               arg_0           = dword ptr  8
    .text:101CA9B0
    .text:101CA9B0 55                                            push    ebp
    .text:101CA9B1 8B EC                                         mov     ebp, esp
    .text:101CA9B3 83 E4 F8                                      and     esp, 0FFFFFFF8h
    .text:101CA9B6 83 EC 64                                      sub     esp, 64h
    .text:101CA9B9 53                                            push    ebx
    .text:101CA9BA 56                                            push    esi
    .text:101CA9BB 57                                            push    edi
    .text:101CA9BC 8B F1                                         mov     esi, ecx
    .text:101CA9BE E8 5D 08 00 00                                call    C_BaseEntity__SetAbsAngle <--- sig that and done
    .text:101CA9C3 8B 7D 08                                      mov     edi, [ebp+arg_0]
    .text:101CA9C6 F3 0F 10 07                                   movss   xmm0, dword ptr [edi]
    .text:101CA9CA 0F 2E 86 C4 00 00 00                          ucomiss xmm0, dword ptr [esi+0C4h]
    .text:101CA9D1 9F                                            lahf
    .text:101CA9D2 F6 C4 44                                      test    ah, 44h
    .text:101CA9D5 7A 28                                         jp      short loc_101CA9FF
    .text:101CA9D7 F3 0F 10 47 04                                movss   xmm0, dword ptr [edi+4]
    .text:101CA9DC 0F 2E 86 C8 00 00 00                          ucomiss xmm0, dword ptr [esi+0C8h]
    .text:101CA9E3 9F                                            lahf
    .text:101CA9E4 F6 C4 44                                      test    ah, 44h
    .text:101CA9E7 7A 16                                         jp      short loc_101CA9FF
    .text:101CA9E9 F3 0F 10 47 08                                movss   xmm0, dword ptr [edi+8]
    .text:101CA9EE 0F 2E 86 CC 00 00 00                          ucomiss xmm0, dword ptr [esi+0CCh]
    .text:101CA9F5 9F                                            lahf
    .text:101CA9F6 F6 C4 44                                      test    ah, 44h
    .text:101CA9F9 0F 8B 4E 01 00 00                             jnp     loc_101CAB4D
    .text:101CA9FF
    .text:101CA9FF                               loc_101CA9FF:                           ; CODE XREF: C_BaseEntity__SetAbsOrigin+25↑j
    .text:101CA9FF                                                                       ; C_BaseEntity__SetAbsOrigin+37↑j
     
    Status
    Not open for further replies.