That does not matter friend, I adapted this sources to source louis update 13 without any problems.
But if you have another code then just need to add only the function for generates the effect on pets on Pet.cpp
void CustomPet::AddPetEffect(int a1, int a2, int a3, int a4)
{
Draw_RenderObjectR(a1, a2, a3, a4);
vec3_t Bone;
vec3_t Color;
vec3_t WorldPos;
int ModelE;
LPVOID v392 = pGetModel(pModelThis(), *(DWORD *)(a1 + 48));
ModelE = (int)v392;
if ( v392 )
{
switch ( *(DWORD *)(a1 + 48) )
{
case 0x181:
{
Vector( 1.0, 1.0, 1.0, Color);
Vector( 0.0, 0.0, 0.0, WorldPos);
TransformPosition((int)v392, Joint(15), WorldPos, Bone, 0);
CreateSprite(32002, Bone, 2.0, Color, a1, 0.0, 0);
CreateParticle2(32394, Bone, a1 + 264, Color, 0.0, 1.0, 1);
int v25 = timeGetTime() % 0x400;
if (v25 >= 0 && v25 < 10)
{
CreateEffect(176, a1 + 252, a1 + 264, Color, 3, a1, -1, 0, 0, 0, 0.0, -1);
}
}
break;
}
DWORD dwItemNumber = *(DWORD*)(a1 + 48);
for(int n = 0; n <MAX_PET_EFFECT_DYNAMIC; n++)
{
if(gPetEffectDynamic.m_EffectDynamic[n].ItemIndex+1171 == dwItemNumber && !DisableDynamicEffect)
{
Vector(gPetEffectDynamic.m_EffectDynamic[n].Color[0], gPetEffectDynamic.m_EffectDynamic[n].Color[1], gPetEffectDynamic.m_EffectDynamic[n].Color[2], Color);
Vector( 0.0, 0.0, 0.0, WorldPos);
TransformPosition((int)v392, Joint(gPetEffectDynamic.m_EffectDynamic[n].EffectValue), WorldPos, Bone, 0);
CreateParticle2(gPetEffectDynamic.m_EffectDynamic[n].EffectIndex, Bone, a1 + 264, Color, gPetEffectDynamic.m_EffectDynamic[n].ColorMain, gPetEffectDynamic.m_EffectDynamic[n].ColorSize, gPetEffectDynamic.m_EffectDynamic[n].ColorSide);
}
}
for(int n = 0; n <MAX_PET_EFFECT_STATIC; n++)
{
if(gPetEffectStatic.m_EffectStatic[n].ItemIndex+1171 == dwItemNumber && !DisableStaticEffect)
{
Vector(gPetEffectStatic.m_EffectStatic[n].Color[0], gPetEffectStatic.m_EffectStatic[n].Color[1], gPetEffectStatic.m_EffectStatic[n].Color[2], Color);
Vector( 0.0, 0.0, 0.0, WorldPos);
TransformPosition((int)v392, Joint(gPetEffectStatic.m_EffectStatic[n].EffectValue), WorldPos, Bone, 0);
CreateSprite(gPetEffectStatic.m_EffectStatic[n].EffectIndex, Bone, gPetEffectStatic.m_EffectStatic[n].ColorSize, Color, a1, gPetEffectStatic.m_EffectStatic[n].ColorMain, gPetEffectStatic.m_EffectStatic[n].ColorSide);
}
}
}
for(std::vector<PET_GLOW_INFO>::iterator it = gPetGlow.m_PetGlowInfo.begin();it != gPetGlow.m_PetGlowInfo.end();it++)
{
if(it->ItemIndex== (*(DWORD *)(a1 + 48) - 1171))
{
*(float *)(ModelE + 72) = (float)(it->ColorR / 255.0f);
*(float *)(ModelE + 76) = (float)(it->ColorG / 255.0f);
*(float *)(ModelE + 80) = (float)(it->ColorB / 255.0f);
*(float *)(ModelE + 100) = (float)(it->ColorR / 255.0f);
*(float *)(ModelE + 104) = (float)(it->ColorG / 255.0f);
*(float *)(ModelE + 108) = (float)(it->ColorB / 255.0f);
RenderMesh(ModelE, it->EffectIndex, it->EffectType, *(float *)(a1 + 152), *(float *)(a1 + 68), *(float *)(a1 + 100), *(float *)(a1 + 104), *(float *)(a1 + 108), -1);
}
}
}