Показать сообщение отдельно

  #7490  
Старый 03.04.2025, 15:33
tanksoftik
Новичок
Регистрация: 10.03.2025
Сообщений: 17
С нами: 622067

Репутация: 8
По умолчанию

C++:





Код:
int
AddParticle
(
FxSystem_c
*
particle
,
RwV3d
*
position
,
RwV3d
*
velocity
,
float
unk
,
FxPrtMult_c
*
particleData
,
float
a6
,
float
brightness
,
float
a8
,
int
a9
)
{
particle
->
AddParticle
(
position
,
velocity
,
unk
,
particleData
,
a6
,
brightness
,
a8
,
a9
)
;
return
1
;
}


C++:





Код:
patch
::
RedirectCall
(
0x6DF303
,
AddParticle
)
;
patch
::
RedirectCall
(
0x6DEE83
,
AddParticle
)
;
patch
::
RedirectCall
(
0x6DF0C3
,
AddParticle
)
;


функцию AddParticle что в ней передается брал фулл из ida

Цитата:
Сообщение от Спойлер  


psevdocode:





Код:
int __thiscall FxSystem_c::AddParticle(
        FxSystem_c *particle,
        CVector *position,
        CVector *velocity,
        float unk,
        FxPrtMult_c *particleData,
        float a6,
        float brightness,
        float a8,
        int a9)
{
  int v10; // esi
  int result; // eax
  FxPrim_c *particlePrim; // ecx
  float v13; // [esp+18h] [ebp-8h]
  int i; // [esp+3Ch] [ebp+1Ch]

  v10 = (rand() * 0.000030517578 * 100.0);
  result = Fx_c::GetFxQuality(&g_fx);
  if ( result || v10 >= 50 )
  {
    result = Fx_c::GetFxQuality(&g_fx);
    if ( result != FX_MEDIUM || v10 >= 25 )
    {
      v13 = 1.0;
      if ( brightness m_pBluePrint->m_nNumEmitters; i = ++result )
      {
        particlePrim = particle->PrimsList[result];
        if ( particlePrim->m_bEnabled )
        {
          (particlePrim->vtable->field_14)(
            particlePrim,
            position,
            velocity,
            LODWORD(unk),
            particleData,
            LODWORD(a6),
            COERCE_FLOAT(LODWORD(v13)),
            a9);
          result = i;
        }
      }
    }
  }
  return result;
}


но почему то крашит, пробовал пустую функцию делать все равно крашит
 
Ответить с цитированием