本文整理汇总了C++中CMover::GetActiveHandItemProp方法的典型用法代码示例。如果您正苦于以下问题:C++ CMover::GetActiveHandItemProp方法的具体用法?C++ CMover::GetActiveHandItemProp怎么用?C++ CMover::GetActiveHandItemProp使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMover
的用法示例。
在下文中一共展示了CMover::GetActiveHandItemProp方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
//
// 비행중 공격 액션 처리
//
void CActionMover::_ProcessStateAttack2( DWORD dwState, int nParam )
{
CMover* pMover = m_pMover;
CModelObject *pModel = (CModelObject *)pMover->m_pModel;
switch( dwState )
{
case OBJSTA_ATK1:
if( pModel->IsEndFrame() )
ResetState( OBJSTA_ATK_ALL );
if( pModel->m_nPause > 0 )
{
--pModel->m_nPause;
}
else
{
if( pModel->IsAttrHit() )
{
CMover* pHitObj = prj.GetMover( m_objidHit );
if( IsInvalidObj( pHitObj ) || pHitObj->IsDie() ) // 타겟이 거시기하거나 죽었으면 취소
return;
BOOL bSuccess = pHitObj->m_pActMover->SendDamage( AF_GENERIC, pMover->GetId() );
if( bSuccess == FALSE )
return;
#ifdef __CLIENT
ItemProp* pItemProp = pMover->GetActiveHandItemProp();
if( pItemProp )
{
D3DXVECTOR3 v = pMover->GetPos();
PLAYSND( pItemProp->dwSndAttack1, &v );
}
#endif
if( GetMover()->IsPlayer() )
{
pModel->m_nPause = 5; // frame 멈춤
}
else
{
pModel->m_nPause = 0; // 몬스터는 멈추지 않음
pHitObj->m_pModel->m_nPause = 0;
}
}
}
break;
}
}
示例2: if
//.........这里部分代码省略.........
// 타겟선택 키
if( g_bKeyTable[VK_TAB] && !s_bSelectKeyed )
{
if( m_aFlyTarget.GetSize() > 0 ) // 선택된 타겟있을때.
{
if( m_nSelect >= m_aFlyTarget.GetSize() )
m_nSelect = 0;
OBJID idSelect = m_aFlyTarget.GetAt( m_nSelect++ );
CMover *pSelectMover = prj.GetMover( idSelect );
if( IsValidObj(pSelectMover) )
{
CWorld *pWorld = pMover->GetWorld();
if( pWorld )
{
pWorld->SetObjFocus( pSelectMover ); // 이놈을 타겟으로 설정함.
pMover->m_idTracking = pSelectMover->GetId(); // 탭으로 타겟을 바꾸면 자동추적타겟도 그놈으로 바뀐다.
}
}
}
}
s_bSelectKeyed = g_bKeyTable[VK_TAB];
}
if( /*m_bFlyMove &&*/ m_bLButtonDown || g_bKeyTable[VK_INSERT] ) // 192 = `
{
CObj *pObj = pMover->GetWorld()->GetObjFocus(); // 타겟잡힌놈이 있을때만 휘두를수 있다.
if( pObj && pObj->GetType() == OT_MOVER )
{
if( pMover->IsAttackAble( pObj ) ) // 공격 가능한지 검사.
{
OBJID idTarget = ((CMover *)pObj)->GetId();
ItemProp *pWeapon = pMover->GetActiveHandItemProp();
if( pWeapon )
{
g_pPlayer->PlayCombatMusic();
if( pWeapon->dwItemKind3 == IK3_WAND )
{
D3DXVECTOR3 vFront, vTarget;
AngleToVector( &vFront, g_pPlayer->GetAngle(), -g_pPlayer->GetAngleX(), 1.0f );
vTarget = pObj->GetPos() - g_pPlayer->GetPos();
D3DXVec3Normalize( &vTarget, &vTarget ); // 타겟쪽으로의 벡터의 유닛벡터.
FLOAT fDot = D3DXVec3Dot( &vFront, &vTarget );
if( fDot >= cosf(D3DXToRadian(60.0f)) ) // 타겟이 내가 보는 방향의 +-30도 안에 있으면 발사할수 있다.
{
if( pMover->IsRangeObj( pObj, 64.0f ) ) // 사정거리에 들어오면 발사.
{
pMover->DoAttackMagic( pObj, 0 );
}
}
}
else
{
pMover->SendActMsg( OBJMSG_ATK1, idTarget );
}
}
}
}
}
// fTurnAngle = 0.6f;
ItemProp* pItemProp = prj.GetItemProp( g_pPlayer->GetRideItemIdx() );
if( pItemProp )
{