PDA

View Full Version : |Pedido| Codigo que lida com o efeito dos Itens quando sobem de levele do (+0 a +15)



ADMTec
09-27-2022, 02:31 PM
pessoal alguem saberia me informar como e que o main cria o efeito no item quando ele sobe de level ??? eu estou querendo recriar o mesmo efeito na Unreal engine !
se puderem me indicar onde posso achar o codigo fonte que lida com essa questao !

Achei esse parte na source do main da WebZen porem nao sei bem se e o que eu preciso !


#ifdef LDS_MR0_MOD_PATIALPHYSIQMODEL_PHYSICPROCESS_FIX // ºÎºÐ ¹°¸®¸Þ½¬¸¦ Åë ¹°¸®¸Þ½¬ °´Ã¼·Î ó¸®if(p &&
( Type == MODEL_PANTS+18 || // ¹ý»ç ±×·£µå¼Ò¿ï ¹ÙÁö
Type == MODEL_PANTS+19 ||
Type == MODEL_PANTS+22 ) // ¹ý»ç ºí·¢¼Ò¿ï ¹ÙÁö
)
{
if( !p->m_pCloth[0] )
{
int numCloth = 0; // ¹°¸® ¸ðµ¨ °¹¼ö

// 1. Åë¹°¸® ¸ðµ¨ ¼±¾ð
CPhysicsCloth *pCloth[2] = { NULL, NULL };

switch(Type)
{
case MODEL_PANTS+18: // ¹ý»ç ±×·£µå¼Ò¿ï ¹ÙÁö
{
numCloth = 1;
pCloth[0] = new CPhysicsCloth;
pCloth[0]->Create( o, 17, 0.0f, 9.0f, 7.0f, 5, 8, 45.0f, 85.0f,
BITMAP_PANTS_G_SOUL,
BITMAP_PANTS_G_SOUL,
PCT_MASK_ALPHA | PCT_HEAVY | PCT_STICKED | PCT_SHORT_SHOULDER, MODEL_PANTS+18, 2 );
pCloth[0]->AddCollisionSphere( 0.0f, -15.0f, -20.0f, 30.0f, 2);
}
break;
case MODEL_PANTS+19:
{
numCloth = 0;
}
break;
case MODEL_PANTS+22: // ¹ý»ç ºí·¢¼Ò¿ï ¹ÙÁö
{
numCloth = 1;
pCloth[0] = new CPhysicsCloth;
pCloth[0]->Create( o, 17, 0.0f, 9.0f, 7.0f, 7, 5, 50.0f, 100.0f,
BITMAP_PANTS_B_SOUL_PHYSIQMESH,
BITMAP_PANTS_B_SOUL_PHYSIQMESH,
PCT_MASK_ALPHA | PCT_HEAVY | PCT_STICKED | PCT_SHORT_SHOULDER,MODEL_PANTS+18, 2 );
pCloth[0]->AddCollisionSphere( 0.0f, -15.0f, -20.0f, 30.0f, 2);
}
break;
} // switch(Type)

p->m_byNumCloth = numCloth;
p->m_pCloth[0] = ( void*)pCloth[0];
p->m_pCloth[1] = ( void*)pCloth[1];
}
else // if ( !c->Object.m_pCloth)
{
for ( int i=0; i<p->m_byNumCloth; i++ )
{
CPhysicsCloth *pCloth = (CPhysicsCloth*)p->m_pCloth[i];

float Flag = 0.005f;
if( g_isCharacterBuff(o, eDeBuff_Stun )
|| g_isCharacterBuff(o, eDeBuff_Sleep ) )
{
Flag = 0.0f;
}

if ( pCloth[i].GetOwner() == NULL) // Áö¿öÁø ºÎºÐÀÌ¸é ±×¸®Áö ¾Ê°í Åë°úÇÑ´Ù.
{
continue;
}
else
{
if ( !pCloth[i].Move2( Flag, 5))
{
DeleteCloth(NULL, o, p);
}
else // if ( !pCloth[i].Move2( Flag, 5))
{
int iPhysiqMesh = -1;

switch( Type )
{
case MODEL_PANTS+18: // ¹ý»ç ±×·£µå¼Ò¿ï ¹ÙÁö
case MODEL_PANTS+22: // ¹ý»ç ºí·¢¼Ò¿ï ¹ÙÁö
{
iPhysiqMesh = 2;
}
break;
}

vec3_t v3LightPhysicMesh;
if(g_pOption->GetRenderLevel())
{
int iItemLevel = (ItemLevel>>3)&15;

if(iItemLevel < 8 && g_pOption->GetRenderLevel() >= 1) // +7
{
//Vector(Light[0]*0.8f,Light[1]*0.8f,Light[2]*0.8f,b->BodyLight);
//RenderPartObjectBody(b,o,Type,Alpha,RenderType);
//RenderPartObjectBodyColor(b,o,Type,Alpha,RENDER_CH ROME|RENDER_BRIGHT,1.f);

Vector(Light[0]*0.8f,Light[1]*0.8f,Light[2]*0.8f,v3LightPhysicMesh);
pCloth[i].Render( &v3LightPhysicMesh);
pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_CHROME|RENDER_BRIGHT, true, v3LightPhysicMesh, -1, Alpha );
}
else if(iItemLevel < 9 && g_pOption->GetRenderLevel() >= 1) // +8
{
//Vector(Light[0]*0.8f,Light[1]*0.8f,Light[2]*0.8f,b->BodyLight);
//RenderPartObjectBody(b,o,Type,Alpha,RenderType);
//RenderPartObjectBodyColor(b,o,Type,Alpha,RENDER_CH ROME|RENDER_BRIGHT,1.f);

Vector(Light[0]*0.8f,Light[1]*0.8f,Light[2]*0.8f,v3LightPhysicMesh);
pCloth[i].Render( &v3LightPhysicMesh);
pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_CHROME|RENDER_BRIGHT, true, v3LightPhysicMesh, -1, Alpha );
}
else if(iItemLevel < 10 && g_pOption->GetRenderLevel() >= 2) // +9
{
//Vector(Light[0]*0.9f,Light[1]*0.9f,Light[2]*0.9f,b->BodyLight);
//RenderPartObjectBody(b,o,Type,Alpha,RenderType);
//RenderPartObjectBodyColor(b,o,Type,Alpha,RENDER_CH ROME|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);
//RenderPartObjectBodyColor(b,o,Type,Alpha,RENDER_ME TAL|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);

Vector(Light[0]*0.9f,Light[1]*0.9f,Light[2]*0.9f,v3LightPhysicMesh);
pCloth[i].Render( &v3LightPhysicMesh);
pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_CHROME|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, Alpha );
//pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_METAL|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, Alpha );
}
else if(iItemLevel < 11 && g_pOption->GetRenderLevel() >= 2) // +10
{
//Vector(Light[0]*0.9f,Light[1]*0.9f,Light[2]*0.9f,b->BodyLight);
//RenderPartObjectBody(b,o,Type,Alpha,RenderType);
//RenderPartObjectBodyColor(b,o,Type,Alpha,RENDER_CH ROME|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);
//RenderPartObjectBodyColor(b,o,Type,Alpha,RENDER_ME TAL|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);

Vector(Light[0]*0.9f,Light[1]*0.9f,Light[2]*0.9f,v3LightPhysicMesh);
pCloth[i].Render( &v3LightPhysicMesh);
pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_CHROME|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, Alpha );
//pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_METAL|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, Alpha );
}
else if(iItemLevel < 12 && g_pOption->GetRenderLevel() >= 3) // +11
{
//Vector(Light[0]*0.9f,Light[1]*0.9f,Light[2]*0.9f,b->BodyLight);
//RenderPartObjectBody(b,o,Type,Alpha,RenderType);
//RenderPartObjectBodyColor2(b,o,Type,1.f,RENDER_CHR OME2|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);
//RenderPartObjectBodyColor(b,o,Type,Alpha,RENDER_ME TAL|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);
//RenderPartObjectBodyColor(b,o,Type,Alpha,RENDER_CH ROME|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);

Vector(Light[0]*0.9f,Light[1]*0.9f,Light[2]*0.9f,v3LightPhysicMesh);
pCloth[i].Render( &v3LightPhysicMesh);
pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_CHROME2|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, 1.0f );
//pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_METAL|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, Alpha );
pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_CHROME|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, Alpha );
}
else if(iItemLevel < 13 && g_pOption->GetRenderLevel() >= 3) // +12
{
//Vector(Light[0]*0.9f,Light[1]*0.9f,Light[2]*0.9f,b->BodyLight);
//RenderPartObjectBody(b,o,Type,Alpha,RenderType);
//RenderPartObjectBodyColor2(b,o,Type,1.f,RENDER_CHR OME2|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);
//RenderPartObjectBodyColor(b,o,Type,Alpha,RENDER_ME TAL|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);
//RenderPartObjectBodyColor(b,o,Type,Alpha,RENDER_CH ROME|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);

Vector(Light[0]*0.9f,Light[1]*0.9f,Light[2]*0.9f,v3LightPhysicMesh);
pCloth[i].Render( &v3LightPhysicMesh);
pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_CHROME2|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, 1.0f );
//pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_METAL|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, Alpha );
pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_CHROME|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, Alpha );
}
else if(iItemLevel < 14 && g_pOption->GetRenderLevel() >= 4) // +13
{
//Vector(Light[0]*0.9f,Light[1]*0.9f,Light[2]*0.9f,b->BodyLight);
//RenderPartObjectBody(b,o,Type,Alpha,RenderType);
//RenderPartObjectBodyColor2(b,o,Type,1.f,RENDER_CHR OME4|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);
//RenderPartObjectBodyColor(b,o,Type,Alpha,RENDER_ME TAL|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);
//RenderPartObjectBodyColor(b,o,Type,Alpha,RENDER_CH ROME|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),1.f);

Vector(Light[0]*0.9f,Light[1]*0.9f,Light[2]*0.9f,v3LightPhysicMesh);
pCloth[i].Render( &v3LightPhysicMesh);
pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_CHROME4|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, 1.0f );
//pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_METAL|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, Alpha );
pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_CHROME|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, Alpha );
}
else
{
//VectorCopy(Light,b->BodyLight);
//RenderPartObjectBody(b,o,Type,Alpha,RenderType);

Vector(Light[0]*0.8f,Light[1]*0.8f,Light[2]*0.8f,v3LightPhysicMesh);
pCloth[i].Render( &v3LightPhysicMesh);
pCloth[i].Render_MappingOption( *b, iPhysiqMesh, RENDER_CHROME|RENDER_BRIGHT|(RenderType&RENDER_EXTRA), true, v3LightPhysicMesh, -1, 1.0f );
}
} // if(g_pOption->GetRenderLevel())

// ¾×¼³·±Æ® È¿°ú¿¡ ´ëÇÑ Ã³¸®
if((Option1&63)>0)
{
float fLuminosity = sinf(WorldTime*0.002f)*0.5f+0.5f;
Vector(fLuminosity,fLuminosity*0.3f,1.f-fLuminosity,v3LightPhysicMesh);

pCloth[i].Render_MappingOption( *b, iPhysiqMesh,
RENDER_CHROME|RENDER_BRIGHT|(RenderType&RENDER_EXTRA),
true, v3LightPhysicMesh, -1, 1.0f, 1.0f, false );
}

} // if ( !pCloth[i].Move2( Flag, 5))

}
} // for ( int i=0; i<p->m_byNumCloth; i++ )
} // if( p->m_pCloth[0] )
}