Quote:
Originally Posted by srslynub
Code:
CItemElem* pItemElem = GetEquipItem( PARTS_MASK );
if( pItemElem && pItemElem->GetProp()->dwItemKind3 == IK3_MASK )
dwMotion += MTI_STAND_11;
|
ich habs auch so
edit:
habe jetz nur das problem das man die flügel nicht sieht
hab das mit der animation so gemacht
Code:
CItemElem* pItemProp2 = m_Inventory.GetEquip( PARTS_MASK );
if( pRideProp && pRideProp->dwItemKind3 == IK3_WING )
{
static const int SPINE1_BONE = 4; // ¸ö ºÎ±Ù ôÃß(³¯°³ÀÇ ¿òÁ÷ÀÓÀº ij¸¯ÅÍ ¸öÀÇ ¿òÁ÷ÀÓÀ» µû¸¥´Ù)
static const int SPINE2_BONE = 5; // ¸ñ ºÎ±Ù ôÃß(³¯°³°¡ ¸öÀÇ ¿òÁ÷ÀÓÀ» µû¸£´õ¶óµµ À§Ä¡´Â ¸ñ ºÎ±Ù¿¡ ºÙÀδÙ)
D3DXMATRIX* pmatSpine1Bone = pModel->GetMatrixBone( SPINE1_BONE );
D3DXMATRIX* pmatSpine2Bone = pModel->GetMatrixBone( SPINE2_BONE );
if( pmatSpine1Bone && pmatSpine2Bone )
{
D3DXMATRIX matEvent;
D3DXMatrixIdentity( &matEvent );
D3DXMATRIX matRotation;
D3DXMatrixIdentity( &matRotation );
D3DXMatrixRotationX( &matRotation, D3DXToRadian( 180 ) );
D3DXMatrixMultiply( &matEvent, &matRotation, &matEvent );
D3DXMatrixRotationZ( &matRotation, D3DXToRadian( -90 ) );
D3DXMatrixMultiply( &matEvent, &matRotation, &matEvent );
D3DXMatrixMultiply( &matEvent, &matEvent, pmatSpine1Bone );
// ±êÅÐ ³¯°³¿¡ ´ëÇØ¼*¸¸ Àӽà À§Ä¡ º¸Á¤ (ÃßÈÄ ¹Ýµå½Ã ¸ðµç ³¯°³°¡ else ÂÊ ÄÚµå·Î ÅëÀϵǾî¾ß ÇÔ)
if( pRideProp && ( pRideProp->dwID == II_RID_RID_WIN_FEATHER01 || pRideProp->dwID == II_RID_RID_WIN_FEATHER02 ) )
{
matEvent._41 = pmatSpine2Bone->_41;
matEvent._42 = pmatSpine2Bone->_42 - 0.02f;
matEvent._43 = pmatSpine2Bone->_43 + 0.1f;
}
else
{
matEvent._41 = pmatSpine2Bone->_41;
matEvent._42 = pmatSpine2Bone->_42;
matEvent._43 = pmatSpine2Bone->_43;
}
D3DXMatrixMultiply( &mRide, &matEvent, &m_matWorld );
}
}
else if( pItemProp2 )
{
ItemProp* pItemProp3 = pItemProp2->GetProp();
if( pItemProp3 && pItemProp3->dwItemKind3 == IK3_MASK_WING )
{
static const int SPINE1_BONE = 4; // ¸ö ºÎ±Ù ôÃß(³¯°³ÀÇ ¿òÁ÷ÀÓÀº ij¸¯ÅÍ ¸öÀÇ ¿òÁ÷ÀÓÀ» µû¸¥´Ù)
static const int SPINE2_BONE = 5; // ¸ñ ºÎ±Ù ôÃß(³¯°³°¡ ¸öÀÇ ¿òÁ÷ÀÓÀ» µû¸£´õ¶óµµ À§Ä¡´Â ¸ñ ºÎ±Ù¿¡ ºÙÀδÙ)
D3DXMATRIX* pmatSpine1Bone = pModel->GetMatrixBone( SPINE1_BONE );
D3DXMATRIX* pmatSpine2Bone = pModel->GetMatrixBone( SPINE2_BONE );
if( pmatSpine1Bone && pmatSpine2Bone )
{
D3DXMATRIX matEvent;
D3DXMatrixIdentity( &matEvent );
D3DXMATRIX matRotation;
D3DXMatrixIdentity( &matRotation );
D3DXMatrixRotationX( &matRotation, D3DXToRadian( 180 ) );
D3DXMatrixMultiply( &matEvent, &matRotation, &matEvent );
D3DXMatrixRotationZ( &matRotation, D3DXToRadian( -90 ) );
D3DXMatrixMultiply( &matEvent, &matRotation, &matEvent );
D3DXMatrixMultiply( &matEvent, &matEvent, pmatSpine1Bone );
// ±êÅÐ ³¯°³¿¡ ´ëÇØ¼*¸¸ Àӽà À§Ä¡ º¸Á¤ (ÃßÈÄ ¹Ýµå½Ã ¸ðµç ³¯°³°¡ else ÂÊ ÄÚµå·Î ÅëÀϵǾî¾ß ÇÔ)
if( pItemProp3 && ( pItemProp3->dwID == 40901 ) )
{
matEvent._41 = pmatSpine2Bone->_41;
matEvent._42 = pmatSpine2Bone->_42 - 0.02f;
matEvent._43 = pmatSpine2Bone->_43 + 0.1f;
}
else
{
matEvent._41 = pmatSpine2Bone->_41;
matEvent._42 = pmatSpine2Bone->_42;
matEvent._43 = pmatSpine2Bone->_43;
}
D3DXMatrixMultiply( &mRide, &matEvent, &m_matWorld );
}
}
}
aber man sieht die flügel nur als PART_RIDE und nicht als PART_MASK
weiß wer wie mans ändert?