hasta donde vi ya cuenta con una función que rendería las animaciones de los objetos. usarlo o no no causa tal problema como el menciona, simplemente que si ambas funciones se mezclan genera una sobre carga en el main que puede ponerse lento en el select server, o en el select char, la función que se encarga de renderizar al objeto es este.
void RenderSSCObjectVisual(int a1, int a2)
{
vec3_t Bone;
vec3_t Color;
vec3_t WorldPos;
//Select Server
if (World == 75)
{
switch ( *(DWORD *)(a1 + 48) )
{
case 1:
{
BeginRender(1.0);
*(DWORD *)(a1 + 60) = -2;
*(BYTE*)(a2 + 136) = 0;
float v552 = 4000;
float v551 = ((int) (v552 - timeGetTime() * 0.75f) % 4001) * 0.0002500000118743628;
RenderMesh(a2,
0,
66,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
v551,
-1);
*(BYTE*)(a2 + 136) = -1;
EndRender();
}
break;
case 5:
{
BeginRender(1.0);
*(BYTE*)(a2 + 136) = 0;
*(float *)(a2 + 72) = 0.80000001;
*(float *)(a2 + 76) = 0.69999999;
*(float *)(a2 + 80) = 0.30000001;
RenderMesh(a2,
0,
68,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
32042);
RenderMesh(a2,
23,
66,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
-1);
RenderMesh(a2,
23,
68,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
32042);
RenderMesh(a2,
24,
66,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
-1);
RenderMesh(a2,
24,
68,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
32042);
RenderMesh(a2,
25,
66,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
-1);
RenderMesh(a2,
25,
68,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
32042);
RenderMesh(a2,
26,
66,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
-1);
RenderMesh(a2,
26,
68,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
32042);
RenderMesh(a2,
27,
66,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
-1);
RenderMesh(a2,
27,
68,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
32042);
RenderMesh(a2,
28,
66,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
-1);
RenderMesh(a2,
28,
68,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
*(float *)(a1 + 108),
32042);
*(BYTE*)(a2 + 136) = -1;
EndRender();
float v409 = (double)(rand() % 10) / 20.0 + 1.399999976158142;
float v19 = v409 - 0.300000011920929;
Vector( 0.0, 0.0, 0.0, WorldPos);
TransformPosition(a2, Joint(37), WorldPos, Bone, 0);
Vector( 1.0, 0.30000001, 0.0, Color);
CreateSprite(32114, Bone, v409, Color, a1, 0.0, 0);
CreateSprite(32114, Bone, v19, Color, a1, 0.0, 0);
v409 = (double)(rand() % 10) / 20.0 + 1.0;
float v20 = v409 + 0.300000011920929;
CreateSprite(32002, Bone, v20, Color, a1, 0.0, 0);
v409 = (double)(rand() % 8) / 20.0 + 0.4000000059604645;
CreateSprite(32114, Bone, v409, Color, a1, 0.0, 0);
float v21 = v409 - 0.2000000029802322;
CreateSprite(32114, Bone, v21, Color, a1, 0.0, 0);
}
break;
case 38:
{
*(DWORD *)(a1 + 60) = -2;
if ( !(rand() % 6) )
{
Vector( 0.020, 0.020, 0.050, Color);
CreateParticle(32146, a1 + 252, a1 + 264, Color, 20,*(float *)(a1 + 96), a2);
}
}
break;
case 54:
{
*(DWORD *)(a1 + 60) = -2;
if ( !(rand() % 2) )
{
Vector( 0.22, 0.15000001, 0.15000001, Color);
CreateParticle(32287, a1 + 252, a1 + 264, Color, 2, *(float *)(a1 + 96), 0);
}
}
break;
}
}
//Select Character
if (World == 76)
{
switch ( *(DWORD *)(a1 + 48) )
{
case 13:
case 14:
case 15:
case 16:
case 17:
{
*(DWORD *)(a1 + 60) = -2;
}
break;
case 24:
case 25:
case 26:
{
BeginRender(1.0);
*(DWORD *)(a1 + 60) = -2;
*(BYTE*)(a2 + 136) = 0;
float v552 = 2000;
float v551 = ((int)(v552 - timeGetTime()) % 2001) * 0.0005000000237487257;
RenderMesh(a2,
0,
66,
*(float *)(a1 + 152),
*(DWORD *)(a1 + 68),
*(float *)(a1 + 100),
*(float *)(a1 + 104),
v551,
-1);
*(BYTE*)(a2 + 136) = -1;
EndRender();
}
break;
case 31:
{
Vector( 0.0, 0.0, 0.0, WorldPos);
TransformPosition(a2, (int)&BoneTransform, WorldPos, Bone, 0);
Vector( 0.98000002, 0.94, 0.94, Color);
CreateSprite(32604, Bone, 1.0, Color, a1, 0.0, 0);
Vector( 0.77999997, 0.44, 0.75, Color);
TransformPosition(a2, (int)&BoneTransform + 0x30, WorldPos, Bone, 0);
CreateSprite(32604, Bone, 1.2, Color, a1, 0.0, 0);
Vector( 0.57999998, 0.07, 0.56, Color);
TransformPosition(a2, (int)&BoneTransform + 0x60, WorldPos, Bone, 0);
CreateSprite(32604, Bone, 0.80000001, Color, a1, 0.0, 0);
}
break;
case 38:
{
*(DWORD *)(a1 + 60) = -2;
if ( !(rand() % 6) )
{
Vector( 0.02, 0.02, 0.050000001, Color);
CreateParticle(32146, a1 + 252, a1 + 264, Color, 20, *(float *)(a1 + 96), 0);
}
}
break;
case 39:
{
*(DWORD *)(a1 + 60) = -2;
if ( !(rand() % 100) )
{
Vector( 0.0, 0.0, 0.0, WorldPos);
TransformPosition(a2, Joint(0), WorldPos, Bone, 0);
Vector( 0.02, 0.02, 0.050000001, Color);
CreateEffect2(700, Bone, a1 + 264, Color, 0, a1, -1, 0, 0, 0, 0.0, -1);
}
}
break;
case 40:
{
*(DWORD *)(a1 + 60) = -2;
if ( !(rand() % 200) )
{
Vector( 0.0, 0.0, 0.0, WorldPos);
TransformPosition(a2, Joint(0), WorldPos, Bone, 0);
Vector( 0.02, 0.02, 0.050000001, Color);
CreateEffect2(701, Bone, a1 + 264, Color, 1, a1, -1, 0, 0, 0, 0.0, -1);
}
}
break;
case 54:
{
*(DWORD *)(a1 + 60) = -2;
if ( !(rand() % 2) )
{
Vector( 1.0, 1.0, 1.0, Color);
CreateParticle(32287, a1 + 252, a1 + 264, Color, 2, *(float *)(a1 + 96), 0);
}
}
break;
case 55:
{
*(DWORD *)(a1 + 60) = -2;
Vector( 1.0, 1.0, 1.0, Color);
CreateParticle(32289, a1 + 252, a1 + 264, Color, 14, *(float *)(a1 + 96) + *(float *)(a1 + 96), 0);
}
break;
case 56:
{
*(DWORD *)(a1 + 60) = -2;
Vector( 1.0, 1.0, 1.0, Color);
if ( !(rand() % 3) )
{
CreateParticle(32288, a1 + 252, a1 + 264, Color, 2, *(float *)(a1 + 96), 0);
}
}
break;
case 73:
{
Vector( 0.0, 0.0, 0.0, WorldPos);
TransformPosition(a2, Joint(1), WorldPos, Bone, 0);
Vector( 0.5, 1.0, 0.98000002, Color);
float v51 = ((int) timeGetTime() % 3600) * 0.1000000014901161;
float v32 = -v51;
float v50 = ((int) timeGetTime() % 30) / 90.0;
float v33 = v50 + 1.200000047683716;
CreateSprite(32114, Bone, v33, Color, a1, v32, 0);
CreateSprite(32779, Bone, 0.20, Color, a1, 0.0, 0);
if ( !((int) timeGetTime() % 3) )
{
Vector( 1.0, 1.0, 1.0, Color);
v50 = *(float *)(a1 + 96) * 1.799999952316284;
float v34 = v50;
CreateParticle2(32284, Bone, a1 + 264, Color, 0, v34, 0);
}
}
break;
case 80:
{
*(DWORD *)(a1 + 60) = -2;
Vector( 0.98000002, 0.89999998, 0.89999998, Color);
if ( !(rand() % 8) )
{
CreateParticle(32101, a1 + 252, a1 + 264, Color, 69, *(float *)(a1 + 96), 0);
}
}
break;
}
}
//
RenderCryingWolf2ndObjectVisual(a1, a2);
}
yo preferí cambiar de número los mapas, puedes obtar por eso y no usar el código que he subido, de igual forma si colocas en 75 y 76 en código eso quiere decir que en carpeta sería 76 y 77, y la función de renderizado te trabaja perfectamente.